@acorex/platform 18.0.4 → 18.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/common/lib/data/dexie-storage.service.d.ts +0 -1
  2. package/common/lib/layout/grid-layout/grid-layout.types.d.ts +1 -2
  3. package/common/lib/schema/widgets/lookup/lookup-widget-filter.component.d.ts +1 -1
  4. package/common/lib/schema/widgets/lookup/lookup-widget-view.component.d.ts +2 -1
  5. package/common/lib/utils/data-generator.d.ts +13 -1
  6. package/common/lib/utils/index.d.ts +1 -0
  7. package/common/lib/utils/pdf.service.d.ts +25 -0
  8. package/esm2022/common/lib/data/dexie-storage.service.mjs +2 -4
  9. package/esm2022/common/lib/layout/grid-layout/grid-layout.directive.mjs +5 -5
  10. package/esm2022/common/lib/layout/grid-layout/grid-layout.types.mjs +1 -1
  11. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +20 -3
  12. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +20 -3
  13. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-view.component.mjs +5 -5
  14. package/esm2022/common/lib/utils/data-generator.mjs +67 -2
  15. package/esm2022/common/lib/utils/index.mjs +2 -1
  16. package/esm2022/common/lib/utils/pdf.service.mjs +85 -0
  17. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +23 -19
  18. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +27 -8
  19. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +33 -28
  20. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +22 -7
  21. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +1 -2
  22. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +15 -3
  23. package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +3 -4
  24. package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +1 -4
  25. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +4 -1
  26. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +6 -3
  27. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +1 -2
  28. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.mjs +3 -3
  29. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.mjs +14 -8
  30. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-view.component.mjs +3 -2
  31. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +3 -2
  32. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +3 -2
  33. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.mjs +3 -2
  34. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-view.component.mjs +3 -2
  35. package/esm2022/workflow/lib/actions/start-workflow.action.mjs +7 -3
  36. package/esm2022/workflow/lib/workflow.service.mjs +3 -3
  37. package/esm2022/workflow/lib/workflow.types.mjs +11 -10
  38. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-D9UhViUG.mjs → acorex-platform-common-lookup-widget-edit.component-Do_yV2hi.mjs} +19 -2
  39. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-Do_yV2hi.mjs.map +1 -0
  40. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-RWweQQaO.mjs → acorex-platform-common-lookup-widget-filter.component-AKqbYe-l.mjs} +19 -2
  41. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-AKqbYe-l.mjs.map +1 -0
  42. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-mXo8VADX.mjs → acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs} +5 -5
  43. package/fesm2022/acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-common.mjs +159 -13
  45. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-layout-entity.mjs +116 -66
  47. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  48. package/fesm2022/acorex-platform-themes-default.mjs +8 -2
  49. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  50. package/fesm2022/acorex-platform-widgets.mjs +24 -15
  51. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  52. package/fesm2022/acorex-platform-workflow.mjs +18 -13
  53. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  54. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +7 -5
  55. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +7 -5
  56. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +2 -0
  57. package/package.json +1 -1
  58. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +1 -0
  59. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +1 -0
  60. package/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.d.ts +1 -1
  61. package/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.d.ts +3 -2
  62. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +1 -1
  63. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.d.ts +1 -1
  64. package/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.d.ts +1 -1
  65. package/widgets/lib/editors/text-box-widget/text-box-widget-view.component.d.ts +1 -1
  66. package/workflow/lib/workflow.service.d.ts +1 -1
  67. package/workflow/lib/workflow.types.d.ts +4 -3
  68. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-D9UhViUG.mjs.map +0 -1
  69. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-RWweQQaO.mjs.map +0 -1
  70. package/fesm2022/acorex-platform-common-lookup-widget-view.component-mXo8VADX.mjs.map +0 -1
@@ -18,21 +18,20 @@ export class AXPEntityCreatePopupAction extends AXPWorkflowAction {
18
18
  }
19
19
  async execute(context) {
20
20
  const [module, entity] = context.getVariable('entity').split(".");
21
- const dataContext = context.getVariable('context');
21
+ const data = context.getVariable('data');
22
22
  const entityRef = await this.entityRegistery.resolve(module, entity);
23
23
  const com = await this.config.viewers.master.create();
24
24
  const result = await this.popupService.open(com, {
25
25
  title: `Create New ${entityRef.formats.individual}`,
26
26
  size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
27
27
  data: {
28
- vm: await this.factory.create(module, entity, dataContext),
28
+ vm: await this.factory.create(module, entity, data),
29
29
  entity,
30
30
  },
31
31
  });
32
32
  context.setOutput('result', false);
33
33
  if (result.data?.save) {
34
34
  context.setOutput('result', true);
35
- context.setVariable('redirect', result.data.redirect);
36
35
  context.setVariable('data', result.data.item);
37
36
  }
38
37
  }
@@ -87,4 +86,4 @@ export const AXPCreateEntityWorkflow = {
87
86
  },
88
87
  },
89
88
  };
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9jcmVhdGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUUzRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBcUIsbUJBQW1CLENBQUMsQ0FBQztBQUdqRyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBRGpFOztRQUVVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDN0QsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixZQUFPLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbEQsV0FBTSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0tBeUJqRDtJQXJCQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJCO1FBRXZDLE1BQU0sQ0FBQyxN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VUFBVSxFQUFFLHlDQUF5QyxFQUFFLENBQUM7b0JBQ3ZGLFVBQVUsRUFBRSxhQUFhO2lCQUMxQjthQUNGO1NBQ0Y7UUFDRCxhQUFhLEVBQUU7WUFDYixNQUFNLEVBQUUseUJBQXlCO1NBQ2xDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xyXG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcclxuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQsIGNyZWF0ZVdvcmtGbG93RXZlbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYUEVudGl0eUNyZWF0ZVZpZXdNb2RlbEZhY3RvcnkgfSBmcm9tICcuLi9lbnRpdHktbWFzdGVyLWNyZWF0ZS52aWV3bW9kZWwnO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVhQX0VOVElUWV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9lbnRpdHkuY29uZmlnJztcclxuXHJcbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlDcmVhdGVFdmVudCA9IGNyZWF0ZVdvcmtGbG93RXZlbnQ8eyBlbnRpdHk6IHN0cmluZyB9PignW0VudGl0eV0gQ3JlYXRlZCEnKTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVBvcHVwQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xyXG4gIHByaXZhdGUgZW50aXR5UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcclxuICBwcml2YXRlIHBsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xyXG4gIHByaXZhdGUgZmFjdG9yeSA9IGluamVjdChBWFBFbnRpdHlDcmVhdGVWaWV3TW9kZWxGYWN0b3J5KTtcclxuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChBWFBfRU5USVRZX0NPTkZJR19UT0tFTilcclxuXHJcblxyXG5cclxuICBhc3luYyBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIGNvbnN0IFttb2R1bGUsIGVudGl0eV0gPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLnNwbGl0KFwiLlwiKTtcclxuICAgIGNvbnN0IGRhdGFDb250ZXh0ID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdjb250ZXh0Jyk7XHJcbiAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZSwgZW50aXR5KTtcclxuICAgIGNvbnN0IGNvbSA9IGF3YWl0IHRoaXMuY29uZmlnLnZpZXdlcnMubWFzdGVyLmNyZWF0ZSgpO1xyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcclxuICAgICAgdGl0bGU6IGBDcmVhdGUgTmV3ICR7ZW50aXR5UmVmLmZvcm1hdHMuaW5kaXZpZHVhbH1gLFxyXG4gICAgICBzaXplOiB0aGlzLnBsYXRmb3JtLmlzKCdNb2JpbGUnKSB8fCB0aGlzLnBsYXRmb3JtLmlzKCdTTScpID8gJ2Z1bGwnIDogJ21kJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHZtOiBhd2FpdCB0aGlzLmZhY3RvcnkuY3JlYXRlKG1vZHVsZSwgZW50aXR5LCBkYXRhQ29udGV4dCksXHJcbiAgICAgICAgZW50aXR5LFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgZmFsc2UpO1xyXG4gICAgaWYgKHJlc3VsdC5kYXRhPy5zYXZlKSB7XHJcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCB0cnVlKTtcclxuICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgncmVkaXJlY3QnLCByZXN1bHQuZGF0YS5yZWRpcmVjdCk7XHJcbiAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RhdGEnLCByZXN1bHQuZGF0YS5pdGVtKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVTdWJtaXR0ZWRBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XHJcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZGlzcGF0Y2goQVhQRW50aXR5Q3JlYXRlRXZlbnQoeyBlbnRpdHk6IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignZW50aXR5JykgfSkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEFYUENyZWF0ZUVudGl0eVdvcmtmbG93OiBBWFBXb3JrZmxvdyA9IHtcclxuICBzdGFydFN0ZXBJZDogJ3Nob3ctcG9wdXAnLFxyXG4gIHN0ZXBzOiB7XHJcbiAgICBcInNob3ctcG9wdXBcIjoge1xyXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbicsXHJcbiAgICAgIG5leHRTdGVwczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRPdXRwdXQoXCJyZXN1bHRcIikgPT0gdHJ1ZScgfV0sXHJcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc2hvdy10b2FzdCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0sXHJcbiAgICBcInNob3ctdG9hc3RcIjoge1xyXG4gICAgICBhY3Rpb246ICdBWFBUb2FzdEFjdGlvbicsXHJcbiAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcclxuICAgICAgICB0aXRsZTogJ0VudGl0eSBDcmVhdGVkJyxcclxuICAgICAgICBjb250ZW50OiAnTmV3IFJlY29yZCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY3JlYXRlZC4nLFxyXG4gICAgICB9LFxyXG4gICAgICBuZXh0U3RlcHM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjb25kaXRpb25zOiBbXSxcclxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdkaXNwYXRjaC1ldmVudCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0sXHJcbiAgICBcImRpc3BhdGNoLWV2ZW50XCI6IHtcclxuICAgICAgYWN0aW9uOiAnQVhQRW50aXR5Q3JlYXRlU3VibWl0dGVkQWN0aW9uJyxcclxuICAgICAgbmV4dFN0ZXBzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldFZhcmlhYmxlKFwicmVkaXJlY3RcIikgPT0gdHJ1ZScgfV0sXHJcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc2hvdy1lbnRpdHknLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gICAgXCJzaG93LWVudGl0eVwiOiB7XHJcbiAgICAgIGFjdGlvbjogJ0FYUFNob3dEZXRhaWxWaWV3QWN0aW9uJyxcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9jcmVhdGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUUzRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBcUIsbUJBQW1CLENBQUMsQ0FBQztBQUdqRyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBRGpFOztRQUVVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDN0QsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixZQUFPLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbEQsV0FBTSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0tBd0JqRDtJQXBCQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJCO1FBRXZDLE1BQU0sQ0FBQyxN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YUFBYSxFQUFFO1lBQ2IsTUFBTSxFQUFFLHlCQUF5QjtTQUNsQztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcclxuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XHJcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0LCBjcmVhdGVXb3JrRmxvd0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlDcmVhdGVWaWV3TW9kZWxGYWN0b3J5IH0gZnJvbSAnLi4vZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsJztcclxuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vZW50aXR5LmNvbmZpZyc7XHJcblxyXG5leHBvcnQgY29uc3QgQVhQRW50aXR5Q3JlYXRlRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmcgfT4oJ1tFbnRpdHldIENyZWF0ZWQhJyk7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcclxuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcclxuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBwbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcclxuICBwcml2YXRlIGZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5Q3JlYXRlVmlld01vZGVsRmFjdG9yeSk7XHJcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQVhQX0VOVElUWV9DT05GSUdfVE9LRU4pXHJcblxyXG5cclxuXHJcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHJcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKS5zcGxpdChcIi5cIik7XHJcbiAgICBjb25zdCBkYXRhID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdkYXRhJyk7XHJcbiAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZSwgZW50aXR5KTtcclxuICAgIGNvbnN0IGNvbSA9IGF3YWl0IHRoaXMuY29uZmlnLnZpZXdlcnMubWFzdGVyLmNyZWF0ZSgpO1xyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcclxuICAgICAgdGl0bGU6IGBDcmVhdGUgTmV3ICR7ZW50aXR5UmVmLmZvcm1hdHMuaW5kaXZpZHVhbH1gLFxyXG4gICAgICBzaXplOiB0aGlzLnBsYXRmb3JtLmlzKCdNb2JpbGUnKSB8fCB0aGlzLnBsYXRmb3JtLmlzKCdTTScpID8gJ2Z1bGwnIDogJ21kJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHZtOiBhd2FpdCB0aGlzLmZhY3RvcnkuY3JlYXRlKG1vZHVsZSwgZW50aXR5LCBkYXRhKSxcclxuICAgICAgICBlbnRpdHksXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBmYWxzZSk7XHJcbiAgICBpZiAocmVzdWx0LmRhdGE/LnNhdmUpIHtcclxuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIHRydWUpO1xyXG4gICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkYXRhJywgcmVzdWx0LmRhdGEuaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q3JlYXRlU3VibWl0dGVkQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xyXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmRpc3BhdGNoKEFYUEVudGl0eUNyZWF0ZUV2ZW50KHsgZW50aXR5OiBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpIH0pKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdzogQVhQV29ya2Zsb3cgPSB7XHJcbiAgc3RhcnRTdGVwSWQ6ICdzaG93LXBvcHVwJyxcclxuICBzdGVwczoge1xyXG4gICAgXCJzaG93LXBvcHVwXCI6IHtcclxuICAgICAgYWN0aW9uOiAnQVhQRW50aXR5Q3JlYXRlUG9wdXBBY3Rpb24nLFxyXG4gICAgICBuZXh0U3RlcHM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0T3V0cHV0KFwicmVzdWx0XCIpID09IHRydWUnIH1dLFxyXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ3Nob3ctdG9hc3QnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gICAgXCJzaG93LXRvYXN0XCI6IHtcclxuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxyXG4gICAgICBpbnB1dDoge1xyXG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXHJcbiAgICAgICAgdGl0bGU6ICdFbnRpdHkgQ3JlYXRlZCcsXHJcbiAgICAgICAgY29udGVudDogJ05ldyBSZWNvcmQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQuJyxcclxuICAgICAgfSxcclxuICAgICAgbmV4dFN0ZXBzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY29uZGl0aW9uczogW10sXHJcbiAgICAgICAgICBuZXh0U3RlcElkOiAnZGlzcGF0Y2gtZXZlbnQnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gICAgXCJkaXNwYXRjaC1ldmVudFwiOiB7XHJcbiAgICAgIGFjdGlvbjogJ0FYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbicsXHJcbiAgICAgIG5leHRTdGVwczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRWYXJpYWJsZShcInJlZGlyZWN0XCIpID09IHRydWUnIH1dLFxyXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ3Nob3ctZW50aXR5JyxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfSxcclxuICAgIFwic2hvdy1lbnRpdHlcIjoge1xyXG4gICAgICBhY3Rpb246ICdBWFBTaG93RGV0YWlsVmlld0FjdGlvbicsXHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbiJdfQ==
@@ -13,7 +13,6 @@ export class AXPEntityPerformDeleteAction extends AXPWorkflowAction {
13
13
  this.loadingDialog = inject(AXLoadingDialogService);
14
14
  }
15
15
  async execute(context) {
16
- debugger;
17
16
  const moduleEntity = context.getVariable('entity');
18
17
  const [moduleName, entityName] = moduleEntity.split(".");
19
18
  const items = context.getVariable('data');
@@ -63,14 +62,12 @@ export class AXPEntityPerformDeleteAction extends AXPWorkflowAction {
63
62
  if (successfulPromises > 0 && failedPromises === 0) {
64
63
  // All items deleted successfully
65
64
  await this.dialogService.alert('Deletion Successful', `${successfulPromises} item(s) has been deleted.`, 'success');
66
- debugger;
67
65
  // Dispatch actions
68
66
  this.dispatch(AXPEntityDeletedEvent({ entity: moduleEntity, ids: ids }));
69
67
  }
70
68
  else if (successfulPromises > 0 && failedPromises > 0) {
71
69
  // Some items deleted successfully, some failed
72
70
  await this.dialogService.alert('Partial Deletion Completed', `${successfulPromises} item(s) deleted successfully. However, ${failedPromises} item(s) could not be deleted.`, 'warning');
73
- debugger;
74
71
  // Dispatch actions
75
72
  this.dispatch(AXPEntityDeletedEvent({ entity: moduleEntity, ids: ids }));
76
73
  }
@@ -122,4 +119,4 @@ export const AXPDeleteEntityWorkflow = {
122
119
  },
123
120
  },
124
121
  };
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBRUwsaUJBQWlCLEVBRWpCLG1CQUFtQixHQUNwQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUVqRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FDdEQsa0JBQWtCLENBQ25CLENBQUM7QUFHRixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsaUJBQWlCO0lBRG5FOztRQUVVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDN0Qsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsa0JBQWEsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztLQStGeEQ7SUE3RkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUN2QyxRQUFRLENBQUE7UUFDUixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFR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LENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQ2IsK0NBQStDLE1BQU0sQ0FBQyxLQUFLLDRFQUE0RSxDQUN4SSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7OEdBakdVLDRCQUE0QjtrSEFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVOztBQXNHWCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDbEQsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixLQUFLLEVBQUU7UUFDTCxnQkFBZ0IsRUFBRTtZQUNoQixNQUFNLEVBQUUsb0JBQW9CO1lBQzVCLEtBQUssRUFBRTtnQkFDTCxLQUFLLEVBQUUsU0FBUztnQkFDaEIsT0FBTyxFQUFFLCtDQUErQztnQkFDeEQsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNELFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUU7d0JBQ1Y7NEJBQ0UsSUFBSSxFQUFFLEtBQUs7NEJBQ1gsVUFBVSxFQUFFO2dDQUNWLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUscUNBQXFDLEVBQUU7NkJBQ3RFO3lCQUNGO3FCQUNGO29CQUNELFVBQVUsRUFBRSxnQkFBZ0I7aUJBQzdCO2FBQ0Y7U0FDRjtRQUNELGdCQUFnQixFQUFFO1lBQ2hCLE1BQU0sRUFBRSx1QkFBdUI7U0FDaEM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGlhbG9nJztcclxuaW1wb3J0IHsgQVhMb2FkaW5nRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nLWRpYWxvZyc7XHJcbmltcG9ydCB7XHJcbiAgQVhQV29ya2Zsb3csXHJcbiAgQVhQV29ya2Zsb3dBY3Rpb24sXHJcbiAgQVhQV29ya2Zsb3dDb250ZXh0LFxyXG4gIGNyZWF0ZVdvcmtGbG93RXZlbnQsXHJcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlEZWxldGVkRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmc7IGlkczogc3RyaW5nW10gfT4oXHJcbiAgJ1tFbnRpdHldIERlbGV0ZWQnXHJcbik7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlQZXJmb3JtRGVsZXRlQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xyXG4gIHByaXZhdGUgZW50aXR5UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgZGlhbG9nU2VydmljZSA9IGluamVjdChBWERpYWxvZ1NlcnZpY2UpO1xyXG4gIHByaXZhdGUgbG9hZGluZ0RpYWxvZyA9IGluamVjdChBWExvYWRpbmdEaWFsb2dTZXJ2aWNlKTtcclxuXHJcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICBjb25zdCBtb2R1bGVFbnRpdHkgPSBjb250ZXh0LmdldFZhcmlhYmxlKCdlbnRpdHknKTtcclxuICAgIGNvbnN0IFttb2R1bGVOYW1lLCBlbnRpdHlOYW1lXSA9IG1vZHVsZUVudGl0eS5zcGxpdChcIi5cIik7XHJcbiAgICBjb25zdCBpdGVtcyA9IGNvbnRleHQuZ2V0VmFyaWFibGU8YW55W10+KCdkYXRhJyk7XHJcbiAgICBjb25zdCBpZHMgPSBpdGVtcy5tYXAoYyA9PiBjLmlkKTtcclxuICAgIGNvbnN0IGVudGl0eSA9IGF3YWl0IHRoaXMuZW50aXR5UmVnaXN0ZXJ5LnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XHJcbiAgICBsZXQgZGVsZXRlZENvdW50ID0gMDtcclxuICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RlbGV0ZVN1Y2Nlc3NmdWwnLCBmYWxzZSk7XHJcbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmxvYWRpbmdEaWFsb2cuc2hvdyh7XHJcbiAgICAgIHRpdGxlOiAnRGVsZXRpbmcgUmVjb3JkLi4uJyxcclxuICAgICAgbW9kZTogJ2RldGVybWluYXRlJyxcclxuICAgICAgc3RhdHVzOiAnRGVsZXRpbmcuLi4nLFxyXG4gICAgICBwcm9ncmVzc1ZhbHVlOiAwLFxyXG4gICAgICB0ZXh0OiBgMC8ke2lkcy5sZW5ndGh9YCxcclxuICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRleHQ6ICdDYW5jZWwnLFxyXG4gICAgICAgICAgY29sb3I6ICdkYW5nZXInLFxyXG4gICAgICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICBkaWFsb2cuY2xvc2UoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChlbnRpdHkuY29tbWFuZHM/LmRlbGV0ZSAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGRlbGV0ZUV4ZWMgPSBlbnRpdHkuY29tbWFuZHM/LmRlbGV0ZT8uZXhlY3V0ZSBhcyBGdW5jdGlvblxyXG4gICAgICBjb25zdCB3cmFwcGVkUHJvbWlzZXMgPSAoaWRzIGFzIGFueVtdKVxyXG4gICAgICAgIC5tYXAoKGlkLCBpKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmVzb2x2ZShkZWxldGVFeGVjKGlkKSk7XHJcbiAgICAgICAgICAgIH0sIGkgKiAyMDApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAubWFwKChwKSA9PlxyXG4gICAgICAgICAgcD8udGhlbihcclxuICAgICAgICAgICAgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgZGVsZXRlZENvdW50Kys7XHJcbiAgICAgICAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzVGV4dChgJHtkZWxldGVkQ291bnR9LyR7aWRzLmxlbmd0aH1gKTtcclxuICAgICAgICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NWYWx1ZSgoZGVsZXRlZENvdW50IC8gaWRzLmxlbmd0aCkgKiAxMDApO1xyXG4gICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogJ2Z1bGZpbGxlZCcsIHZhbHVlIH07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChyZWFzb24pID0+ICh7IHN0YXR1czogJ3JlamVjdGVkJywgcmVhc29uIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbCh3cmFwcGVkUHJvbWlzZXMpO1xyXG4gICAgICBjb25zdCBzdWNjZXNzZnVsUHJvbWlzZXMgPSByZXN1bHRzLmZpbHRlcigocmVzdWx0KSA9PiByZXN1bHQ/LnN0YXR1cyA9PT0gJ2Z1bGZpbGxlZCcpLmxlbmd0aDtcclxuICAgICAgY29uc3QgZmFpbGVkUHJvbWlzZXMgPSByZXN1bHRzLmZpbHRlcigocmVzdWx0KSA9PiByZXN1bHQ/LnN0YXR1cyA9PT0gJ3JlamVjdGVkJykubGVuZ3RoO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBkaWFsb2cuY2xvc2UoKTtcclxuICAgICAgfSwgMzAwKTtcclxuXHJcbiAgICAgIC8vIEhhbmRsZSBkaWZmZXJlbnQgc2NlbmFyaW9zIGZvciBhbGVydHNcclxuICAgICAgaWYgKHN1Y2Nlc3NmdWxQcm9taXNlcyA+IDAgJiYgZmFpbGVkUHJvbWlzZXMgPT09IDApIHtcclxuICAgICAgICAvLyBBbGwgaXRlbXMgZGVsZXRlZCBzdWNjZXNzZnVsbHlcclxuICAgICAgICBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2UuYWxlcnQoXHJcbiAgICAgICAgICAnRGVsZXRpb24gU3VjY2Vzc2Z1bCcsXHJcbiAgICAgICAgICBgJHtzdWNjZXNzZnVsUHJvbWlzZXN9IGl0ZW0ocykgaGFzIGJlZW4gZGVsZXRlZC5gLFxyXG4gICAgICAgICAgJ3N1Y2Nlc3MnXHJcbiAgICAgICAgKTtcclxuICAgICAgICBkZWJ1Z2dlclxyXG4gICAgICAgIC8vIERpc3BhdGNoIGFjdGlvbnNcclxuICAgICAgICB0aGlzLmRpc3BhdGNoKEFYUEVudGl0eURlbGV0ZWRFdmVudCh7IGVudGl0eTogbW9kdWxlRW50aXR5LCBpZHM6IGlkcyB9KSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoc3VjY2Vzc2Z1bFByb21pc2VzID4gMCAmJiBmYWlsZWRQcm9taXNlcyA+IDApIHtcclxuICAgICAgICAvLyBTb21lIGl0ZW1zIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBzb21lIGZhaWxlZFxyXG4gICAgICAgIGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5hbGVydChcclxuICAgICAgICAgICdQYXJ0aWFsIERlbGV0aW9uIENvbXBsZXRlZCcsXHJcbiAgICAgICAgICBgJHtzdWNjZXNzZnVsUHJvbWlzZXN9IGl0ZW0ocykgZGVsZXRlZCBzdWNjZXNzZnVsbHkuIEhvd2V2ZXIsICR7ZmFpbGVkUHJvbWlzZXN9IGl0ZW0ocykgY291bGQgbm90IGJlIGRlbGV0ZWQuYCxcclxuICAgICAgICAgICd3YXJuaW5nJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgZGVidWdnZXJcclxuICAgICAgICAvLyBEaXNwYXRjaCBhY3Rpb25zXHJcbiAgICAgICAgdGhpcy5kaXNwYXRjaChBWFBFbnRpdHlEZWxldGVkRXZlbnQoeyBlbnRpdHk6IG1vZHVsZUVudGl0eSwgaWRzOiBpZHMgfSkpO1xyXG4gICAgICB9IGVsc2UgaWYgKHN1Y2Nlc3NmdWxQcm9taXNlcyA9PT0gMCAmJiBmYWlsZWRQcm9taXNlcyA+IDApIHtcclxuICAgICAgICAvLyBObyBpdGVtcyBkZWxldGVkLCBhbGwgZmFpbGVkXHJcbiAgICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmFsZXJ0KFxyXG4gICAgICAgICAgJ0RlbGV0aW9uIEZhaWxlZCcsXHJcbiAgICAgICAgICBgTm8gaXRlbXMgd2VyZSBkZWxldGVkLiAke2ZhaWxlZFByb21pc2VzfSBpdGVtKHMpIGZhaWxlZCB0byBkZWxldGUuYCxcclxuICAgICAgICAgICdkYW5nZXInXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBObyBpdGVtcyB0byBkZWxldGUgKG5vIHN1Y2Nlc3NmdWwgb3IgZmFpbGVkIHByb21pc2VzKVxyXG4gICAgICAgIGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5hbGVydCgnTm8gRGVsZXRpb24gTmVlZGVkJywgJ05vIGl0ZW1zIHdlcmUgYXZhaWxhYmxlIHRvIGRlbGV0ZS4nLCAnaW5mbycpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYFRoZSBkZWxldGUgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gJHtlbnRpdHkudGl0bGV9LiBUaGlzIGFjdGlvbiBtaWdodCBiZSByZXN0cmljdGVkIG9yIG5vdCBhcHBsaWNhYmxlIGZvciB0aGUgc2VsZWN0ZWQgaXRlbS5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IEFYUERlbGV0ZUVudGl0eVdvcmtmbG93OiBBWFBXb3JrZmxvdyA9IHtcclxuICBzdGFydFN0ZXBJZDogJ2NvbmZpcm0tZGVsZXRlJyxcclxuICBzdGVwczoge1xyXG4gICAgXCJjb25maXJtLWRlbGV0ZVwiOiB7XHJcbiAgICAgIGFjdGlvbjogJ3Nob3ctcHJvbXB0LWRpYWxvZycsXHJcbiAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgdGl0bGU6ICdXYXJuaW5nJyxcclxuICAgICAgICBtZXNzYWdlOiBgQXJlIHlvdSBzdXJlIHdhbnQgdG8gZGVsZXRlIHNlbGVjdGVkIGl0ZW0ocyk/YCxcclxuICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcclxuICAgICAgfSxcclxuICAgICAgbmV4dFN0ZXBzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY29uZGl0aW9uczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogJ0FORCcsXHJcbiAgICAgICAgICAgICAgY29uZGl0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0T3V0cHV0KFwicmVzdWx0XCIpID09IHRydWUnIH0sXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBuZXh0U3RlcElkOiAncGVyZm9ybS1kZWxldGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gICAgXCJwZXJmb3JtLWRlbGV0ZVwiOiB7XHJcbiAgICAgIGFjdGlvbjogJ2VudGl0eS1wZXJmb3JtLWRlbGV0ZScsXHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBRUwsaUJBQWlCLEVBRWpCLG1CQUFtQixHQUNwQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUVqRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FDdEQsa0JBQWtCLENBQ25CLENBQUM7QUFHRixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsaUJBQWlCO0lBRG5FOztRQUVVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDN0Qsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsa0JBQWEsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztLQTRGeEQ7SUExRkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUN2QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFRLE1BQU0sQ0FBQyxDQUFD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QUNiLCtDQUErQyxNQUFNLENBQUMsS0FBSyw0RUFBNEUsQ0FDeEksQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOzhHQTlGVSw0QkFBNEI7a0hBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVTs7QUFtR1gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWdCO0lBQ2xELFdBQVcsRUFBRSxnQkFBZ0I7SUFDN0IsS0FBSyxFQUFFO1FBQ0wsZ0JBQWdCLEVBQUU7WUFDaEIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLE9BQU8sRUFBRSwrQ0FBK0M7Z0JBQ3hELElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRCxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsVUFBVSxFQUFFO3dCQUNWOzRCQUNFLElBQUksRUFBRSxLQUFLOzRCQUNYLFVBQVUsRUFBRTtnQ0FDVixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLHFDQUFxQyxFQUFFOzZCQUN0RTt5QkFDRjtxQkFDRjtvQkFDRCxVQUFVLEVBQUUsZ0JBQWdCO2lCQUM3QjthQUNGO1NBQ0Y7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFYTG9hZGluZ0RpYWxvZ1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZy1kaWFsb2cnO1xyXG5pbXBvcnQge1xyXG4gIEFYUFdvcmtmbG93LFxyXG4gIEFYUFdvcmtmbG93QWN0aW9uLFxyXG4gIEFYUFdvcmtmbG93Q29udGV4dCxcclxuICBjcmVhdGVXb3JrRmxvd0V2ZW50LFxyXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XHJcblxyXG5leHBvcnQgY29uc3QgQVhQRW50aXR5RGVsZXRlZEV2ZW50ID0gY3JlYXRlV29ya0Zsb3dFdmVudDx7IGVudGl0eTogc3RyaW5nOyBpZHM6IHN0cmluZ1tdIH0+KFxyXG4gICdbRW50aXR5XSBEZWxldGVkJ1xyXG4pO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcclxuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcclxuICBwcml2YXRlIGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoQVhEaWFsb2dTZXJ2aWNlKTtcclxuICBwcml2YXRlIGxvYWRpbmdEaWFsb2cgPSBpbmplY3QoQVhMb2FkaW5nRGlhbG9nU2VydmljZSk7XHJcblxyXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBtb2R1bGVFbnRpdHkgPSBjb250ZXh0LmdldFZhcmlhYmxlKCdlbnRpdHknKTtcclxuICAgIGNvbnN0IFttb2R1bGVOYW1lLCBlbnRpdHlOYW1lXSA9IG1vZHVsZUVudGl0eS5zcGxpdChcIi5cIik7XHJcbiAgICBjb25zdCBpdGVtcyA9IGNvbnRleHQuZ2V0VmFyaWFibGU8YW55W10+KCdkYXRhJyk7XHJcbiAgICBjb25zdCBpZHMgPSBpdGVtcy5tYXAoYyA9PiBjLmlkKTtcclxuICAgIGNvbnN0IGVudGl0eSA9IGF3YWl0IHRoaXMuZW50aXR5UmVnaXN0ZXJ5LnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XHJcbiAgICBsZXQgZGVsZXRlZENvdW50ID0gMDtcclxuICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RlbGV0ZVN1Y2Nlc3NmdWwnLCBmYWxzZSk7XHJcbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmxvYWRpbmdEaWFsb2cuc2hvdyh7XHJcbiAgICAgIHRpdGxlOiAnRGVsZXRpbmcgUmVjb3JkLi4uJyxcclxuICAgICAgbW9kZTogJ2RldGVybWluYXRlJyxcclxuICAgICAgc3RhdHVzOiAnRGVsZXRpbmcuLi4nLFxyXG4gICAgICBwcm9ncmVzc1ZhbHVlOiAwLFxyXG4gICAgICB0ZXh0OiBgMC8ke2lkcy5sZW5ndGh9YCxcclxuICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRleHQ6ICdDYW5jZWwnLFxyXG4gICAgICAgICAgY29sb3I6ICdkYW5nZXInLFxyXG4gICAgICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICBkaWFsb2cuY2xvc2UoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChlbnRpdHkuY29tbWFuZHM/LmRlbGV0ZSAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGRlbGV0ZUV4ZWMgPSBlbnRpdHkuY29tbWFuZHM/LmRlbGV0ZT8uZXhlY3V0ZSBhcyBGdW5jdGlvblxyXG4gICAgICBjb25zdCB3cmFwcGVkUHJvbWlzZXMgPSAoaWRzIGFzIGFueVtdKVxyXG4gICAgICAgIC5tYXAoKGlkLCBpKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmVzb2x2ZShkZWxldGVFeGVjKGlkKSk7XHJcbiAgICAgICAgICAgIH0sIGkgKiAyMDApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAubWFwKChwKSA9PlxyXG4gICAgICAgICAgcD8udGhlbihcclxuICAgICAgICAgICAgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgZGVsZXRlZENvdW50Kys7XHJcbiAgICAgICAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzVGV4dChgJHtkZWxldGVkQ291bnR9LyR7aWRzLmxlbmd0aH1gKTtcclxuICAgICAgICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NWYWx1ZSgoZGVsZXRlZENvdW50IC8gaWRzLmxlbmd0aCkgKiAxMDApO1xyXG4gICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogJ2Z1bGZpbGxlZCcsIHZhbHVlIH07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChyZWFzb24pID0+ICh7IHN0YXR1czogJ3JlamVjdGVkJywgcmVhc29uIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbCh3cmFwcGVkUHJvbWlzZXMpO1xyXG4gICAgICBjb25zdCBzdWNjZXNzZnVsUHJvbWlzZXMgPSByZXN1bHRzLmZpbHRlcigocmVzdWx0KSA9PiByZXN1bHQ/LnN0YXR1cyA9PT0gJ2Z1bGZpbGxlZCcpLmxlbmd0aDtcclxuICAgICAgY29uc3QgZmFpbGVkUHJvbWlzZXMgPSByZXN1bHRzLmZpbHRlcigocmVzdWx0KSA9PiByZXN1bHQ/LnN0YXR1cyA9PT0gJ3JlamVjdGVkJykubGVuZ3RoO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBkaWFsb2cuY2xvc2UoKTtcclxuICAgICAgfSwgMzAwKTtcclxuXHJcbiAgICAgIC8vIEhhbmRsZSBkaWZmZXJlbnQgc2NlbmFyaW9zIGZvciBhbGVydHNcclxuICAgICAgaWYgKHN1Y2Nlc3NmdWxQcm9taXNlcyA+IDAgJiYgZmFpbGVkUHJvbWlzZXMgPT09IDApIHtcclxuICAgICAgICAvLyBBbGwgaXRlbXMgZGVsZXRlZCBzdWNjZXNzZnVsbHlcclxuICAgICAgICBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2UuYWxlcnQoXHJcbiAgICAgICAgICAnRGVsZXRpb24gU3VjY2Vzc2Z1bCcsXHJcbiAgICAgICAgICBgJHtzdWNjZXNzZnVsUHJvbWlzZXN9IGl0ZW0ocykgaGFzIGJlZW4gZGVsZXRlZC5gLFxyXG4gICAgICAgICAgJ3N1Y2Nlc3MnXHJcbiAgICAgICAgKTtcclxuICAgICAgICAvLyBEaXNwYXRjaCBhY3Rpb25zXHJcbiAgICAgICAgdGhpcy5kaXNwYXRjaChBWFBFbnRpdHlEZWxldGVkRXZlbnQoeyBlbnRpdHk6IG1vZHVsZUVudGl0eSwgaWRzOiBpZHMgfSkpO1xyXG4gICAgICB9IGVsc2UgaWYgKHN1Y2Nlc3NmdWxQcm9taXNlcyA+IDAgJiYgZmFpbGVkUHJvbWlzZXMgPiAwKSB7XHJcbiAgICAgICAgLy8gU29tZSBpdGVtcyBkZWxldGVkIHN1Y2Nlc3NmdWxseSwgc29tZSBmYWlsZWRcclxuICAgICAgICBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2UuYWxlcnQoXHJcbiAgICAgICAgICAnUGFydGlhbCBEZWxldGlvbiBDb21wbGV0ZWQnLFxyXG4gICAgICAgICAgYCR7c3VjY2Vzc2Z1bFByb21pc2VzfSBpdGVtKHMpIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5LiBIb3dldmVyLCAke2ZhaWxlZFByb21pc2VzfSBpdGVtKHMpIGNvdWxkIG5vdCBiZSBkZWxldGVkLmAsXHJcbiAgICAgICAgICAnd2FybmluZydcclxuICAgICAgICApO1xyXG4gICAgICAgIC8vIERpc3BhdGNoIGFjdGlvbnNcclxuICAgICAgICB0aGlzLmRpc3BhdGNoKEFYUEVudGl0eURlbGV0ZWRFdmVudCh7IGVudGl0eTogbW9kdWxlRW50aXR5LCBpZHM6IGlkcyB9KSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoc3VjY2Vzc2Z1bFByb21pc2VzID09PSAwICYmIGZhaWxlZFByb21pc2VzID4gMCkge1xyXG4gICAgICAgIC8vIE5vIGl0ZW1zIGRlbGV0ZWQsIGFsbCBmYWlsZWRcclxuICAgICAgICBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2UuYWxlcnQoXHJcbiAgICAgICAgICAnRGVsZXRpb24gRmFpbGVkJyxcclxuICAgICAgICAgIGBObyBpdGVtcyB3ZXJlIGRlbGV0ZWQuICR7ZmFpbGVkUHJvbWlzZXN9IGl0ZW0ocykgZmFpbGVkIHRvIGRlbGV0ZS5gLFxyXG4gICAgICAgICAgJ2RhbmdlcidcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIE5vIGl0ZW1zIHRvIGRlbGV0ZSAobm8gc3VjY2Vzc2Z1bCBvciBmYWlsZWQgcHJvbWlzZXMpXHJcbiAgICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmFsZXJ0KCdObyBEZWxldGlvbiBOZWVkZWQnLCAnTm8gaXRlbXMgd2VyZSBhdmFpbGFibGUgdG8gZGVsZXRlLicsICdpbmZvJyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBgVGhlIGRlbGV0ZSBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCBvbiAke2VudGl0eS50aXRsZX0uIFRoaXMgYWN0aW9uIG1pZ2h0IGJlIHJlc3RyaWN0ZWQgb3Igbm90IGFwcGxpY2FibGUgZm9yIHRoZSBzZWxlY3RlZCBpdGVtLmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY29uc3QgQVhQRGVsZXRlRW50aXR5V29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xyXG4gIHN0YXJ0U3RlcElkOiAnY29uZmlybS1kZWxldGUnLFxyXG4gIHN0ZXBzOiB7XHJcbiAgICBcImNvbmZpcm0tZGVsZXRlXCI6IHtcclxuICAgICAgYWN0aW9uOiAnc2hvdy1wcm9tcHQtZGlhbG9nJyxcclxuICAgICAgaW5wdXQ6IHtcclxuICAgICAgICB0aXRsZTogJ1dhcm5pbmcnLFxyXG4gICAgICAgIG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgd2FudCB0byBkZWxldGUgc2VsZWN0ZWQgaXRlbShzKT9gLFxyXG4gICAgICAgIHR5cGU6ICdkYW5nZXInLFxyXG4gICAgICB9LFxyXG4gICAgICBuZXh0U3RlcHM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjb25kaXRpb25zOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiAnQU5EJyxcclxuICAgICAgICAgICAgICBjb25kaXRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICB7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRPdXRwdXQoXCJyZXN1bHRcIikgPT0gdHJ1ZScgfSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdwZXJmb3JtLWRlbGV0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0sXHJcbiAgICBcInBlcmZvcm0tZGVsZXRlXCI6IHtcclxuICAgICAgYWN0aW9uOiAnZW50aXR5LXBlcmZvcm0tZGVsZXRlJyxcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuIl19
@@ -118,6 +118,9 @@ export class AXPEntityMasterListViewComponent {
118
118
  async handleSelectedRowsChange(rows) {
119
119
  this.vm.selectedItems.set(rows);
120
120
  }
121
+ ngOnDestroy() {
122
+ this.vm.destroy();
123
+ }
121
124
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityMasterListViewComponent, deps: [{ token: i1.AXActionSheetService }, { token: i2.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }
122
125
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityMasterListViewComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\r\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\" #content>\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-gap-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\r\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\r\n <!-------- Begin Toolbar -------->\r\n <!-------- Begin Line 1 -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <!-------- Begin Title -------->\r\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title()}}</div>\r\n @if(vm.description())\r\n {\r\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">{{\r\n vm.description() }}</div>\r\n }\r\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\r\n <ng-template #divider>\r\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\r\n </ng-template>\r\n @for(b of vm.beardcrumbs();track $index;let last=$last)\r\n {\r\n <ax-breadcrumbs-item [active]=\"last\" [class.!ax-font-semibold]=\"last\"\r\n [class.!ax-text-neutral-600]=\"last\" [routerLink]=\"b.url\">\r\n @if(b.icon)\r\n {\r\n <i [class]=\"b.icon\"></i>\r\n }\r\n {{b.title}}\r\n </ax-breadcrumbs-item>\r\n }\r\n </ax-breadcrumbs>\r\n </div>\r\n </div>\r\n <!-------- Finish Title -------->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Action Menu -->\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n @for(tr of vm.primaryActions();track $index)\r\n {\r\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n @if(vm.secondaryActions().length) {\r\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel>\r\n <ax-button-item-list>\r\n @for(tr of vm.secondaryActions();track $index;let first=$first)\r\n {\r\n <ng-container>\r\n @if(tr.separated && !$first)\r\n {\r\n <ax-divider></ax-divider>\r\n }\r\n <ax-button-item [text]=\"tr.title\" class=\"ax-font-semibold ax-text-{{tr.color}}\"\r\n (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ng-container>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n }\r\n </div>\r\n <!-- Finish Action Menu -->\r\n </div>\r\n\r\n <!-------- Finish Line 1 -------->\r\n\r\n <!-------- Begin Line 2 -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\r\n <!-------- Begin Selection -------->\r\n\r\n @if(vm.hasSelectedItems())\r\n {\r\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ vm.selectedItems().length }} Items Selected </span>\r\n <span (click)=\"vm.clearSelection()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n\r\n <!-------- Finish Selection -------->\r\n\r\n } @else {\r\n\r\n <!-------- Begin View -------->\r\n\r\n <ax-button [text]=\"vm.view().title\" #views color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-eye\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of vm.views()\" [text]=\"v.title\" [class.ax-bg-on-surface]=\"vm.view()==v\"\r\n (onClick)=\"vm.setView(v.name)\"></ax-button-item>\r\n <!-- <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item class=\"ax-pe-4 ax-flex ax-justify-between\" *ngFor=\"let v of customViews$ | async\"\r\n [text]=\"v.title\" [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\">\r\n <ax-suffix>\r\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\r\n <ax-icon class=\"far fa-edit\"> </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n </ax-button-item> -->\r\n <!-- <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container> -->\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n <!-------- Finish View -------->\r\n\r\n <!-------- Begin Inline Search -------->\r\n\r\n @if(vm.hasInlineFilters())\r\n {\r\n <div class=\"ax-w-72\" *feature=\"'axp-entity-list-inline-filter'\">\r\n <ax-search-box [placeholder]=\"'Search on '+vm.inlineFiltersPlaceholders().join(', ')\"\r\n (onValueChanged)=\"handleChangeSearchValue($event)\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n }\r\n }\r\n <!-------- Finish Inline Search -------->\r\n </div>\r\n\r\n <!-- Begin View Action Menu -->\r\n @if(!vm.hasSelectedItems())\r\n {\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button text=\"Columns\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge [text]=\"vm.visibleColumnCount().toString()\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\"\r\n *feature=\"'axp-entity-list-advance-filter'\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-sliders\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"3\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n @if(vm.canSort())\r\n {\r\n <ax-button text=\"Sort\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars-sort\"></i>\r\n </ax-prefix>\r\n @if(vm.sortedCount())\r\n {\r\n <ax-suffix>\r\n <ax-badge [text]=\"vm.sortedCount().toString()\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n }\r\n </div>\r\n }\r\n <!-- Finish View Action Menu -->\r\n </div>\r\n <!-------- Finish Line 2 -------->\r\n\r\n <!----- Finish Toolbar ----->\r\n\r\n </div>\r\n </div>\r\n <!----- Begin DataTable ----->\r\n <div class=\"ax-flex ax-flex-1 ax-px-6 ax-py-4 ax-overflow-auto\">\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\r\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\r\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\" (onRowDbClick)=\"handleRowDbClick($event)\">\r\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\r\n @for(col of vm.columns();track col.name) {\r\n @if(col.visible)\r\n {\r\n <axp-widget-column-renderer [caption]=\"col.title\" [node]=\"col.node()\"></axp-widget-column-renderer>\r\n }\r\n }\r\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\r\n </ax-data-table>\r\n </div>\r\n <!----- Finish DataTable ----->\r\n </ax-content>\r\n\r\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-columns [viewModel]=\"vm\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\r\n <!-- <axp-list-view-option-conditions [loader]=\"loader\"\r\n (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions> -->\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [viewModel]=\"vm\"></axp-list-view-option-sorting>\r\n </ax-content>\r\n </ax-drawer>\r\n</ax-drawer-container>", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i5.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i5.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i6.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i6.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i6.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i7.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i8.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i9.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i9.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i10.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i10.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i11.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i12.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i12.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i12.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type:
123
126
  //
@@ -160,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
160
163
  type: ViewChild,
161
164
  args: ['grid']
162
165
  }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUF1RSxNQUFNLCtCQUErQixDQUFDO0FBQzdKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsT0FBTyxFQUF1QixzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFD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QkFDbkIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLEVBQUU7d0JBQ0Ysc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixhQUFhO3dCQUNiLEVBQUU7d0JBQ0Ysa0NBQWtDO3dCQUNsQyxpQ0FBaUM7cUJBRWxDLGNBQ1csSUFBSTtrSEFnQkcsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhBY3Rpb25TaGVldE1vZHVsZSwgQVhBY3Rpb25TaGVldFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYWN0aW9uLXNoZWV0JztcclxuaW1wb3J0IHsgQVhEYXRhVGFibGVDb21wb25lbnQsIEFYRGF0YVRhYmxlTW9kdWxlLCBBWERhdGFUYWJsZVJvd0RiQ2xpY2ssIEFYUm93Q29tbWFuZEl0ZW0sIEFYUm93Q29tbWFuZEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RhdGEtdGFibGUnO1xyXG5pbXBvcnQgeyBBWERyYXdlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xyXG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5cclxuaW1wb3J0IHsgQVhQQWRtaW5MYXlvdXRTdGF0ZSwgQVhQR3JpZExheW91dERpcmVjdGl2ZSwgQVhQTGF5b3V0U2VydmljZSwgQVhQU3RpY2t5RGlyZWN0aXZlLCBnZXRDaGlsZERyYXdlciwgaXNTbWFsbFNjcmVlbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcclxuaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XHJcbmltcG9ydCB7IEFYQnJlYWRjcnVtYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xyXG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xyXG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgQVhEaWFsb2dNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGlhbG9nJztcclxuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XHJcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcclxuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xyXG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XHJcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcclxuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XHJcbmltcG9ydCB7IEFYUFdpZGdldHNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dpZGdldHMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFYUEF1dGhNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xyXG5pbXBvcnQgeyBBWFBMaXN0Vmlld09wdGlvbnNDb2x1bW5zQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LXZpZXctb3B0aW9uLWNvbHVtbnMvbGlzdC12aWV3LW9wdGlvbi1jb2x1bW5zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYUExpc3RWaWV3T3B0aW9uU29ydGluZ0NvbXBvbmVudCB9IGZyb20gJy4vbGlzdC12aWV3LW9wdGlvbi1zb3J0aW5nL2xpc3Qtdmlldy1vcHRpb24tc29ydGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdlbnRpdHktbWFzdGVyLWxpc3Qtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2VudGl0eS1tYXN0ZXItbGlzdC12aWV3LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIEFYQnV0dG9uTW9kdWxlLFxyXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXHJcbiAgICBBWEJhZGdlTW9kdWxlLFxyXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcclxuICAgIEFYUG9wb3Zlck1vZHVsZSxcclxuICAgIEFYRm9ybU1vZHVsZSxcclxuICAgIEFYQWN0aW9uU2hlZXRNb2R1bGUsXHJcbiAgICBBWERyYXdlck1vZHVsZSxcclxuICAgIEFYRGlhbG9nTW9kdWxlLFxyXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxyXG4gICAgQVhUYWJzTW9kdWxlLFxyXG4gICAgQVhUb29sdGlwTW9kdWxlLFxyXG4gICAgQVhCcmVhZGNydW1ic01vZHVsZSxcclxuICAgIEFYU2VhcmNoQm94TW9kdWxlLFxyXG4gICAgQVhEYXRhVGFibGVNb2R1bGUsXHJcbiAgICAvL1xyXG4gICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcclxuICAgIEFYUFdpZGdldHNNb2R1bGUsXHJcbiAgICBBWFBTdGlja3lEaXJlY3RpdmUsXHJcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgQVhQQXV0aE1vZHVsZSxcclxuICAgIC8vXHJcbiAgICBBWFBMaXN0Vmlld09wdGlvbnNDb2x1bW5zQ29tcG9uZW50LFxyXG4gICAgQVhQTGlzdFZpZXdPcHRpb25Tb3J0aW5nQ29tcG9uZW50XHJcblxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3Q29tcG9uZW50IHtcclxuXHJcbiAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0U2VydmljZSk7XHJcbiAgcHJpdmF0ZSBhY3RpdmVSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblxyXG4gIHByb3RlY3RlZCByZWFkb25seSB2bSA9IHRoaXMuYWN0aXZlUm91dGUuc25hcHNob3QuZGF0YVsndm0nXSBhcyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsO1xyXG5cclxuICAvL1xyXG4gIHByaXZhdGUgc3RvcmUgPSBpbmplY3QoU3RvcmU8QVhQQWRtaW5MYXlvdXRTdGF0ZT4pO1xyXG4gIHByb3RlY3RlZCBpc1NNID0gdGhpcy5zdG9yZS5zZWxlY3QoaXNTbWFsbFNjcmVlbigpKTtcclxuICBwcm90ZWN0ZWQgaXNPcGVuID0gdGhpcy5zdG9yZS5zZWxlY3QoZ2V0Q2hpbGREcmF3ZXIoKSk7XHJcbiAgLy9cclxuICBwcm90ZWN0ZWQgZm9jdXNlZFJvdzogYW55O1xyXG4gIC8vXHJcbiAgQFZpZXdDaGlsZCgnZ3JpZCcpIGdyaWQhOiBBWERhdGFUYWJsZUNvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFjdGlvblNoZWV0U2VydmljZTogQVhBY3Rpb25TaGVldFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcGxhdGZvcm06IEFYUGxhdGZvcm0sXHJcbiAgKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzID0gdGhpcy52bS5zZWxlY3RlZEl0ZW1zKCk7XHJcbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xyXG4gICAgLy9cclxuICAgIHRoaXMudm0uZXZlbnRzJC5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIGlmIChlLmFjdGlvbiA9PSBcInJlZnJlc2hcIikge1xyXG4gICAgICAgIHRoaXMuZ3JpZC5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy52bS5zZXRWaWV3KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY2xvc2VEcmF3ZXIobmFtZTogc3RyaW5nLCBjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcclxuICAgIGlmIChjb2xsYXBzZWQpIHtcclxuICAgICAgc3dpdGNoIChuYW1lKSB7XHJcbiAgICAgICAgY2FzZSAnY29uZGl0aW9ucyc6XHJcbiAgICAgICAgICAvL3RoaXMubG9hZGVyLnJlc2V0Q29uZGl0aW9ucygpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnY29sdW1ucyc6XHJcbiAgICAgICAgICB0aGlzLnZtLmFwcGx5Q29sdW1ucygpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzb3J0cyc6XHJcbiAgICAgICAgICAvL3RoaXMudm0ucmVzZXRTb3J0cygpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGFuZ2VTZWFyY2hWYWx1ZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XHJcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xyXG4gICAgICB0aGlzLnZtLmFwcGx5SW5saW5lRmlsdGVyKGUudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkcm9wZG93blJvd0l0ZW1zOiBBWFJvd0NvbW1hbmRJdGVtW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6ICdEZXRhaWxzJyxcclxuICAgICAgaWNvbjogJ2ZhLXNvbGlkIGZhLWV5ZScsXHJcbiAgICAgIG5hbWU6ICdvcGVuLWVudGl0eScsXHJcbiAgICAgIGRpdmlkZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OiAnRGVsZXRlJyxcclxuICAgICAgaWNvbjogJ2ZhLXNvbGlkIGZhLXRyYXNoLWNhbicsXHJcbiAgICAgIG5hbWU6ICdkZWxldGUtZW50aXR5JyxcclxuICAgICAgY29sb3I6ICdkYW5nZXInLFxyXG4gICAgICBkaXNhYmxlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXTtcclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZVJvd0RiQ2xpY2soZTogQVhEYXRhVGFibGVSb3dEYkNsaWNrKSB7XHJcbiAgICBjb25zdCBkOiBBWFJvd0NvbW1hbmRJdGVtQ2xpY2tFdmVudCA9IHtcclxuICAgICAgY29tcG9uZW50OiBlLmNvbXBvbmVudCxcclxuICAgICAgbmFtZTogdGhpcy5kcm9wZG93blJvd0l0ZW1zWzBdLm5hbWUsXHJcbiAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgIH07XHJcbiAgICB0aGlzLmhhbmRsZVJvd0NvbW1hbmRDbGljayhkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXREcm9wZG93blJvd0l0ZW1zID0gKHJvd0RhdGE6IHVua25vd24pOiBQcm9taXNlPEFYUm93Q29tbWFuZEl0ZW1bXT4gPT4ge1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmRyb3Bkb3duUm93SXRlbXMpO1xyXG4gIH07XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVSb3dDb21tYW5kQ2xpY2soZTogQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQpIHtcclxuICAgIHRoaXMudm0uZXhlY3V0ZUNvbW1hbmQoZS5uYW1lLCBlLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNlbGVjdGVkUm93c0NoYW5nZShyb3dzOiB1bmtub3duW10pIHtcclxuICAgIHRoaXMudm0uc2VsZWN0ZWRJdGVtcy5zZXQocm93cyk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YXgtZHJhd2VyLWNvbnRhaW5lcj5cclxuICA8YXgtY29udGVudCBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtb3ZlcmZsb3ctaGlkZGVuXCIgI2NvbnRlbnQ+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1weC00IGF4LXBiLTQgbWQ6YXgtcHgtNiBheC1iZy1zdXJmYWNlICAgYXgtYm9yZGVyLWIgbWQ6YXgtYm9yZGVyLTAgbWQ6YXgtYmctZGVmYXVsdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wdC00IGF4LWdhcC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsXCIgI3N0aWNreT1cImF4cFN0aWNreVwiXHJcbiAgICAgICAgW2F4cFN0aWNreV09XCInYXgtYmctc3VyZmFjZSBheC1weC02IGF4LXB5LTMgLWF4LW14LTYgYXgtc2hhZG93LXhsJ1wiIFtzdGlja3lQYXJlbnRdPVwiY29udGVudC5nZXRIb3N0RWxlbWVudCgpXCI+XHJcbiAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUb29sYmFyICAtLS0tLS0tLT5cclxuICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIExpbmUgMSAgLS0tLS0tLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSAgLS0tLS0tLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMSBheC1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTIgYXgtdHJhbnNpdGlvblwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXhsIG1kOmF4LXRleHQtM3hsIGF4LWZvbnQtYm9sZFwiPnt7IHZtLnRpdGxlKCl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIEBpZih2bS5kZXNjcmlwdGlvbigpKVxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1zbSBheC10ZXh0LW5ldXRyYWwtNjAwXCIgW2NsYXNzLmF4LWhpZGRlbl09XCJzdGlja3kuaXNTdGlja3lcIj57e1xyXG4gICAgICAgICAgICAgICAgdm0uZGVzY3JpcHRpb24oKSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8YXgtYnJlYWRjcnVtYnMgY2xhc3M9XCJjaGlsZDpheC1mb250LW5vcm1hbCBjaGlsZDpheC10ZXh0LW5ldXRyYWwtNDAwXCIgW2NsYXNzLmF4LWhpZGRlbl09XCJpc1NNIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaGV2cm9uLXJpZ2h0IGF4LXRleHQteHMgYXgtbXgtMlwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICBAZm9yKGIgb2Ygdm0uYmVhcmRjcnVtYnMoKTt0cmFjayAkaW5kZXg7bGV0IGxhc3Q9JGxhc3QpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICA8YXgtYnJlYWRjcnVtYnMtaXRlbSBbYWN0aXZlXT1cImxhc3RcIiBbY2xhc3MuIWF4LWZvbnQtc2VtaWJvbGRdPVwibGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy4hYXgtdGV4dC1uZXV0cmFsLTYwMF09XCJsYXN0XCIgW3JvdXRlckxpbmtdPVwiYi51cmxcIj5cclxuICAgICAgICAgICAgICAgICAgQGlmKGIuaWNvbilcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiYi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHt7Yi50aXRsZX19XHJcbiAgICAgICAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9heC1icmVhZGNydW1icz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIFRpdGxlICAtLS0tLS0tLT5cclxuICAgICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgICAgICAgPCEtLSBCZWdpbiBBY3Rpb24gTWVudSAgLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTNcIj5cclxuICAgICAgICAgICAgQGZvcih0ciBvZiB2bS5wcmltYXJ5QWN0aW9ucygpO3RyYWNrICRpbmRleClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cInRyLnRpdGxlXCIgW2NvbG9yXT1cInRyLmNvbG9yXCIgKG9uQ2xpY2spPVwidm0uZXhlY3V0ZUNvbW1hbmQodHIubmFtZSlcIj5cclxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgICAgPGF4LWljb24gW2ljb25dPVwidHIuaWNvblwiPiA8L2F4LWljb24+XHJcbiAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZih2bS5zZWNvbmRhcnlBY3Rpb25zKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIDxheC1idXR0b24gW3RleHRdPVwiKGlzU00gfCBhc3luYykgPyBudWxsIDogJ0FjdGlvbnMnXCIgY29sb3I9XCJnaG9zdFwiPlxyXG4gICAgICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWVsbGlwc2lzLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbD5cclxuICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0PlxyXG4gICAgICAgICAgICAgICAgICBAZm9yKHRyIG9mIHZtLnNlY29uZGFyeUFjdGlvbnMoKTt0cmFjayAkaW5kZXg7bGV0IGZpcnN0PSRmaXJzdClcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZih0ci5zZXBhcmF0ZWQgJiYgISRmaXJzdClcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gW3RleHRdPVwidHIudGl0bGVcIiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGQgYXgtdGV4dC17e3RyLmNvbG9yfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidm0uZXhlY3V0ZUNvbW1hbmQodHIubmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cInRyLmljb25cIj4gPC9heC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cclxuICAgICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxyXG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8IS0tIEZpbmlzaCBBY3Rpb24gTWVudSAgLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIExpbmUgMSAgLS0tLS0tLS0+XHJcblxyXG4gICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gTGluZSAyIC0tLS0tLS0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWp1c3RpZnktYmV0d2VlbiBheC1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWp1c3RpZnktc3RhcnQgYXgtaXRlbXMtY2VudGVyIGF4LWdhcC00XCI+XHJcbiAgICAgICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gU2VsZWN0aW9uICAtLS0tLS0tLT5cclxuXHJcbiAgICAgICAgICAgIEBpZih2bS5oYXNTZWxlY3RlZEl0ZW1zKCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTMgYXgtaXRlbXMtY2VudGVyIGF4LWgtMTBcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXRleHQteGwgYXgtZm9udC1ib2xkXCI+IHt7IHZtLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggfX0gSXRlbXMgU2VsZWN0ZWQgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJ2bS5jbGVhclNlbGVjdGlvbigpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtdGV4dC1zbSBheC10ZXh0LXByaW1hcnkgZGFyazpheC10ZXh0LXByaW1hcnktMzAwIGF4LXVuZGVybGluZSBheC1jdXJzb3ItcG9pbnRlclwiPkNsZWFyXHJcbiAgICAgICAgICAgICAgICBJdGVtczwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tLS0tLS0tIEZpbmlzaCBTZWxlY3Rpb24gIC0tLS0tLS0tPlxyXG5cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcblxyXG4gICAgICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIFZpZXcgIC0tLS0tLS0tPlxyXG5cclxuICAgICAgICAgICAgPGF4LWJ1dHRvbiBbdGV4dF09XCJ2bS52aWV3KCkudGl0bGVcIiAjdmlld3MgY29sb3I9XCJnaG9zdFwiPlxyXG4gICAgICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWV5ZVwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgICA8YXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jYXJldC1kb3duXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbCBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3QgY2xhc3M9XCJheC1iZy1zdXJmYWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxheC10aXRsZSBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC1vcGFjaXR5LTEwMFwiPlB1YmxpYyBWaWV3czwvYXgtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSAqbmdGb3I9XCJsZXQgdiBvZiB2bS52aWV3cygpXCIgW3RleHRdPVwidi50aXRsZVwiIFtjbGFzcy5heC1iZy1vbi1zdXJmYWNlXT1cInZtLnZpZXcoKT09dlwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidm0uc2V0Vmlldyh2Lm5hbWUpXCI+PC9heC1idXR0b24taXRlbT5cclxuICAgICAgICAgICAgICAgICAgPCEtLSA8YXgtdGl0bGUgY2xhc3M9XCJheC1mb250LWJvbGQgYXgtb3BhY2l0eS0xMDBcIiAqbmdJZj1cImhhc0N1c3RvbVZpZXdzJCB8IGFzeW5jXCI+Q3JlYXRlZCBieSBtZTwvYXgtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gY2xhc3M9XCJheC1wZS00IGF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuXCIgKm5nRm9yPVwibGV0IHYgb2YgY3VzdG9tVmlld3MkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICBbdGV4dF09XCJ2LnRpdGxlXCIgW2NsYXNzLmF4LWJnLW9uLXN1cmZhY2VdPVwiKHZpZXckIHwgYXN5bmMpID09IHZcIiAob25DbGljayk9XCJsb2FkZXIuc2V0Vmlldyh2Lm5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxheC1zdWZmaXg+XHJcbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiAob25DbGljayk9XCJ1cGRhdGVWaWV3UG9wdXAoJGV2ZW50LCB2KVwiIGNsYXNzPVwiYXgteHNcIiBsb29rPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYXIgZmEtZWRpdFwiPiA8L2F4LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvYXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqZmVhdHVyZT1cIidheHAtZW50aXR5LWxpc3QtY3VzdG9tLXZpZXcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxheC1kaXZpZGVyPjwvYXgtZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJBZGQgQ3VzdG9tIFZpZXdcIiAob25DbGljayk9XCJhZGRDdXN0b21WaWV3UG9wdXAoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1mb250LXNlbWlib2xkIGF4LXRleHQtcHJpbWFyeVwiPjwvYXgtYnV0dG9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XHJcbiAgICAgICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cclxuICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIFZpZXcgIC0tLS0tLS0tPlxyXG5cclxuICAgICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBJbmxpbmUgU2VhcmNoICAgLS0tLS0tLS0+XHJcblxyXG4gICAgICAgICAgICBAaWYodm0uaGFzSW5saW5lRmlsdGVycygpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC13LTcyXCIgKmZlYXR1cmU9XCInYXhwLWVudGl0eS1saXN0LWlubGluZS1maWx0ZXInXCI+XHJcbiAgICAgICAgICAgICAgPGF4LXNlYXJjaC1ib3ggW3BsYWNlaG9sZGVyXT1cIidTZWFyY2ggb24gJyt2bS5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkuam9pbignLCAnKVwiXHJcbiAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlQ2hhbmdlU2VhcmNoVmFsdWUoJGV2ZW50KVwiPjxheC1jbGVhci1idXR0b24+PC9heC1jbGVhci1idXR0b24+PC9heC1zZWFyY2gtYm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIElubGluZSBTZWFyY2ggLS0tLS0tLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tIEJlZ2luIFZpZXcgQWN0aW9uIE1lbnUgIC0tPlxyXG4gICAgICAgICAgQGlmKCF2bS5oYXNTZWxlY3RlZEl0ZW1zKCkpXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtM1wiPlxyXG4gICAgICAgICAgICA8YXgtYnV0dG9uIHRleHQ9XCJDb2x1bW5zXCIgY29sb3I9XCJnaG9zdFwiIChvbkNsaWNrKT1cImNvbHVtbnNEcmF3ZXIub3BlbigpXCI+XHJcbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtYmFyc1wiPjwvaT5cclxuICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgICA8YXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgICAgPGF4LWJhZGdlIFt0ZXh0XT1cInZtLnZpc2libGVDb2x1bW5Db3VudCgpLnRvU3RyaW5nKClcIiBjb2xvcj1cInByaW1hcnlcIj48L2F4LWJhZGdlPlxyXG4gICAgICAgICAgICAgIDwvYXgtc3VmZml4PlxyXG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0ZXh0PVwiRmlsdGVyc1wiIGNvbG9yPVwiZ2hvc3RcIiAob25DbGljayk9XCJjb25kaXRpb25zRHJhd2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgKmZlYXR1cmU9XCInYXhwLWVudGl0eS1saXN0LWFkdmFuY2UtZmlsdGVyJ1wiPlxyXG4gICAgICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXNsaWRlcnNcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgPGF4LXN1ZmZpeD5cclxuICAgICAgICAgICAgICAgIDxheC1iYWRnZSB0ZXh0PVwiM1wiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICBAaWYodm0uY2FuU29ydCgpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgIDxheC1idXR0b24gdGV4dD1cIlNvcnRcIiBjb2xvcj1cImdob3N0XCIgKG9uQ2xpY2spPVwic29ydHNEcmF3ZXIub3BlbigpXCI+XHJcbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtYmFycy1zb3J0XCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgIEBpZih2bS5zb3J0ZWRDb3VudCgpKVxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICA8YXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgICAgPGF4LWJhZGdlIFt0ZXh0XT1cInZtLnNvcnRlZENvdW50KCkudG9TdHJpbmcoKVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8IS0tIEZpbmlzaCBWaWV3IEFjdGlvbiBNZW51ICAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tLS0tLS0tIEZpbmlzaCBMaW5lIDIgIC0tLS0tLS0tPlxyXG5cclxuICAgICAgICA8IS0tLS0tIEZpbmlzaCBUb29sYmFyICAtLS0tLT5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tLS0tIEJlZ2luIERhdGFUYWJsZSAgLS0tLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LTEgYXgtcHgtNiBheC1weS00ICBheC1vdmVyZmxvdy1hdXRvXCI+XHJcbiAgICAgIDxheC1kYXRhLXRhYmxlICNncmlkIFtzaG93Rm9vdGVyXT1cImZhbHNlXCIgY2xhc3M9XCJheC1mbGV4LTFcIiBbcGFnaW5nXT1cInRydWVcIiBbZmV0Y2hEYXRhTW9kZV09XCInbWFudWFsJ1wiXHJcbiAgICAgICAgW2xvYWRpbmddPVwieyBlbmFibGVkOiB0cnVlLCBhbmltYXRpb246IHRydWUgfVwiIFtkYXRhU291cmNlXT1cInZtLmRhdGFTb3VyY2VcIlxyXG4gICAgICAgIChzZWxlY3RlZFJvd3NDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0ZWRSb3dzQ2hhbmdlKCRldmVudClcIiAob25Sb3dEYkNsaWNrKT1cImhhbmRsZVJvd0RiQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgIDxheC1zZWxlY3QtY29sdW1uIGZpeGVkPVwic3RhcnRcIiBbd2lkdGhdPVwiJzUwcHgnXCI+PC9heC1zZWxlY3QtY29sdW1uPlxyXG4gICAgICAgIEBmb3IoY29sIG9mIHZtLmNvbHVtbnMoKTt0cmFjayBjb2wubmFtZSkge1xyXG4gICAgICAgIEBpZihjb2wudmlzaWJsZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgPGF4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyIFtjYXB0aW9uXT1cImNvbC50aXRsZVwiIFtub2RlXT1cImNvbC5ub2RlKClcIj48L2F4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgPGF4LWRyb3Bkb3duLWNvbW1hbmQtY29sdW1uIGZpeGVkPVwiZW5kXCIgW3dpZHRoXT1cIic2MHB4J1wiIFtpdGVtc109XCJnZXREcm9wZG93blJvd0l0ZW1zXCJcclxuICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJoYW5kbGVSb3dDb21tYW5kQ2xpY2soJGV2ZW50KVwiPjwvYXgtZHJvcGRvd24tY29tbWFuZC1jb2x1bW4+XHJcbiAgICAgIDwvYXgtZGF0YS10YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLS0tLSBGaW5pc2ggRGF0YVRhYmxlICAtLS0tLT5cclxuICA8L2F4LWNvbnRlbnQ+XHJcblxyXG4gIDxheC1kcmF3ZXIgKGNvbGxhcHNlZENoYW5nZSk9XCJjbG9zZURyYXdlcignY29sdW1ucycsICRldmVudClcIiAjY29sdW1uc0RyYXdlciBsb2NhdGlvbj1cImVuZFwiIFttb2RlXT1cIidvdmVybGF5J1wiPlxyXG4gICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJheC13LVs4NXZ3XSBtZDpheC13LVs0NXZ3XSBsZzpheC13LVszNXZ3XSAyeGw6YXgtdy1bMjB2d10gYXgtYm9yZGVyLWVcIj5cclxuICAgICAgPGF4cC1saXN0LXZpZXctb3B0aW9uLWNvbHVtbnMgW3ZpZXdNb2RlbF09XCJ2bVwiIChvbkNsb3NlZCk9XCJjb2x1bW5zRHJhd2VyLmNsb3NlKClcIj48L2F4cC1saXN0LXZpZXctb3B0aW9uLWNvbHVtbnM+XHJcbiAgICA8L2F4LWNvbnRlbnQ+XHJcbiAgPC9heC1kcmF3ZXI+XHJcbiAgPGF4LWRyYXdlciAoY29sbGFwc2VkQ2hhbmdlKT1cImNsb3NlRHJhd2VyKCdjb25kaXRpb25zJywgJGV2ZW50KVwiICNjb25kaXRpb25zRHJhd2VyIGxvY2F0aW9uPVwiZW5kXCIgW21vZGVdPVwiJ292ZXJsYXknXCI+XHJcbiAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LXctWzg1dnddIG1kOmF4LXctWzQ1dnddIGxnOmF4LXctWzM1dnddIDJ4bDpheC13LVsyNXZ3XSBheC1ib3JkZXItZVwiPlxyXG4gICAgICA8IS0tIDxheHAtbGlzdC12aWV3LW9wdGlvbi1jb25kaXRpb25zIFtsb2FkZXJdPVwibG9hZGVyXCJcclxuICAgICAgICAob25DbG9zZWQpPVwiY29uZGl0aW9uc0RyYXdlci5jbG9zZSgpXCI+PC9heHAtbGlzdC12aWV3LW9wdGlvbi1jb25kaXRpb25zPiAtLT5cclxuICAgIDwvYXgtY29udGVudD5cclxuICA8L2F4LWRyYXdlcj5cclxuICA8YXgtZHJhd2VyIChjb2xsYXBzZWRDaGFuZ2UpPVwiY2xvc2VEcmF3ZXIoJ3NvcnRzJywgJGV2ZW50KVwiICNzb3J0c0RyYXdlciBsb2NhdGlvbj1cImVuZFwiIFttb2RlXT1cIidvdmVybGF5J1wiPlxyXG4gICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJheC13LVs4NXZ3XSBtZDpheC13LVs0NXZ3XSBsZzpheC13LVszNXZ3XSAyeGw6YXgtdy1bMjB2d10gYXgtYm9yZGVyLWVcIj5cclxuICAgICAgPGF4cC1saXN0LXZpZXctb3B0aW9uLXNvcnRpbmcgKG9uQ2xvc2VkKT1cInNvcnRzRHJhd2VyLmNsb3NlKClcIiBbdmlld01vZGVsXT1cInZtXCI+PC9heHAtbGlzdC12aWV3LW9wdGlvbi1zb3J0aW5nPlxyXG4gICAgPC9heC1jb250ZW50PlxyXG4gIDwvYXgtZHJhd2VyPlxyXG48L2F4LWRyYXdlci1jb250YWluZXI+Il19
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUF1RSxNQUFNLCtCQUErQixDQUFDO0FBQzdKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsT0FBTyxFQUF1QixzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFD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QWM7d0JBQ2QsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixFQUFFO3dCQUNGLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixFQUFFO3dCQUNGLGtDQUFrQzt3QkFDbEMsaUNBQWlDO3FCQUVsQyxjQUNXLElBQUk7a0hBZ0JHLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQWN0aW9uU2hlZXRNb2R1bGUsIEFYQWN0aW9uU2hlZXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2FjdGlvbi1zaGVldCc7XHJcbmltcG9ydCB7IEFYRGF0YVRhYmxlQ29tcG9uZW50LCBBWERhdGFUYWJsZU1vZHVsZSwgQVhEYXRhVGFibGVSb3dEYkNsaWNrLCBBWFJvd0NvbW1hbmRJdGVtLCBBWFJvd0NvbW1hbmRJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcclxuaW1wb3J0IHsgQVhEcmF3ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJhd2VyJztcclxuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGVmZmVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuXHJcbmltcG9ydCB7IEFYUEFkbWluTGF5b3V0U3RhdGUsIEFYUEdyaWRMYXlvdXREaXJlY3RpdmUsIEFYUExheW91dFNlcnZpY2UsIEFYUFN0aWNreURpcmVjdGl2ZSwgZ2V0Q2hpbGREcmF3ZXIsIGlzU21hbGxTY3JlZW4gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xyXG5pbXBvcnQgeyBBWEJyZWFkY3J1bWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JyZWFkY3J1bWJzJztcclxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcclxuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEFYRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xyXG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XHJcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcclxuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xyXG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XHJcbmltcG9ydCB7IEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcclxuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xyXG5pbXBvcnQgeyBBWFBXaWRnZXRzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQVhTZWFyY2hCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBWFBBdXRoTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcclxuaW1wb3J0IHsgQVhQTGlzdFZpZXdPcHRpb25zQ29sdW1uc0NvbXBvbmVudCB9IGZyb20gJy4vbGlzdC12aWV3LW9wdGlvbi1jb2x1bW5zL2xpc3Qtdmlldy1vcHRpb24tY29sdW1ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFBMaXN0Vmlld09wdGlvblNvcnRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xpc3Qtdmlldy1vcHRpb24tc29ydGluZy9saXN0LXZpZXctb3B0aW9uLXNvcnRpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydlbnRpdHktbWFzdGVyLWxpc3Qtdmlldy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBBWEJ1dHRvbk1vZHVsZSxcclxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxyXG4gICAgQVhCYWRnZU1vZHVsZSxcclxuICAgIEFYRHJvcGRvd25Nb2R1bGUsXHJcbiAgICBBWFBvcG92ZXJNb2R1bGUsXHJcbiAgICBBWEZvcm1Nb2R1bGUsXHJcbiAgICBBWEFjdGlvblNoZWV0TW9kdWxlLFxyXG4gICAgQVhEcmF3ZXJNb2R1bGUsXHJcbiAgICBBWERpYWxvZ01vZHVsZSxcclxuICAgIEFYTG9hZGluZ01vZHVsZSxcclxuICAgIEFYVGFic01vZHVsZSxcclxuICAgIEFYVG9vbHRpcE1vZHVsZSxcclxuICAgIEFYQnJlYWRjcnVtYnNNb2R1bGUsXHJcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcclxuICAgIEFYRGF0YVRhYmxlTW9kdWxlLFxyXG4gICAgLy9cclxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXHJcbiAgICBBWFBXaWRnZXRzTW9kdWxlLFxyXG4gICAgQVhQU3RpY2t5RGlyZWN0aXZlLFxyXG4gICAgQVhQR3JpZExheW91dERpcmVjdGl2ZSxcclxuICAgIEFYUEF1dGhNb2R1bGUsXHJcbiAgICAvL1xyXG4gICAgQVhQTGlzdFZpZXdPcHRpb25zQ29sdW1uc0NvbXBvbmVudCxcclxuICAgIEFYUExpc3RWaWV3T3B0aW9uU29ydGluZ0NvbXBvbmVudFxyXG5cclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld0NvbXBvbmVudCB7XHJcblxyXG4gIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgYWN0aXZlUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdm0gPSB0aGlzLmFjdGl2ZVJvdXRlLnNuYXBzaG90LmRhdGFbJ3ZtJ10gYXMgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbDtcclxuXHJcbiAgLy9cclxuICBwcml2YXRlIHN0b3JlID0gaW5qZWN0KFN0b3JlPEFYUEFkbWluTGF5b3V0U3RhdGU+KTtcclxuICBwcm90ZWN0ZWQgaXNTTSA9IHRoaXMuc3RvcmUuc2VsZWN0KGlzU21hbGxTY3JlZW4oKSk7XHJcbiAgcHJvdGVjdGVkIGlzT3BlbiA9IHRoaXMuc3RvcmUuc2VsZWN0KGdldENoaWxkRHJhd2VyKCkpO1xyXG4gIC8vXHJcbiAgcHJvdGVjdGVkIGZvY3VzZWRSb3c6IGFueTtcclxuICAvL1xyXG4gIEBWaWV3Q2hpbGQoJ2dyaWQnKSBncmlkITogQVhEYXRhVGFibGVDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25TaGVldFNlcnZpY2U6IEFYQWN0aW9uU2hlZXRTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHBsYXRmb3JtOiBBWFBsYXRmb3JtLFxyXG4gICkge1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgdGhpcy5ncmlkLnNlbGVjdGVkUm93cyA9IHRoaXMudm0uc2VsZWN0ZWRJdGVtcygpO1xyXG4gICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcclxuICAgIC8vXHJcbiAgICB0aGlzLnZtLmV2ZW50cyQuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBpZiAoZS5hY3Rpb24gPT0gXCJyZWZyZXNoXCIpIHtcclxuICAgICAgICB0aGlzLmdyaWQucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudm0uc2V0VmlldygpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNsb3NlRHJhd2VyKG5hbWU6IHN0cmluZywgY29sbGFwc2VkOiBib29sZWFuKSB7XHJcbiAgICBpZiAoY29sbGFwc2VkKSB7XHJcbiAgICAgIHN3aXRjaCAobmFtZSkge1xyXG4gICAgICAgIGNhc2UgJ2NvbmRpdGlvbnMnOlxyXG4gICAgICAgICAgLy90aGlzLmxvYWRlci5yZXNldENvbmRpdGlvbnMoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2NvbHVtbnMnOlxyXG4gICAgICAgICAgdGhpcy52bS5hcHBseUNvbHVtbnMoKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc29ydHMnOlxyXG4gICAgICAgICAgLy90aGlzLnZtLnJlc2V0U29ydHMoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hhbmdlU2VhcmNoVmFsdWUoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xyXG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcclxuICAgICAgdGhpcy52bS5hcHBseUlubGluZUZpbHRlcihlLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJvcGRvd25Sb3dJdGVtczogQVhSb3dDb21tYW5kSXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICB0ZXh0OiAnRGV0YWlscycsXHJcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1leWUnLFxyXG4gICAgICBuYW1lOiAnb3Blbi1lbnRpdHknLFxyXG4gICAgICBkaXZpZGVkOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDogJ0RlbGV0ZScsXHJcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS10cmFzaC1jYW4nLFxyXG4gICAgICBuYW1lOiAnZGVsZXRlLWVudGl0eScsXHJcbiAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcclxuICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dEYkNsaWNrKGU6IEFYRGF0YVRhYmxlUm93RGJDbGljaykge1xyXG4gICAgY29uc3QgZDogQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQgPSB7XHJcbiAgICAgIGNvbXBvbmVudDogZS5jb21wb25lbnQsXHJcbiAgICAgIG5hbWU6IHRoaXMuZHJvcGRvd25Sb3dJdGVtc1swXS5uYW1lLFxyXG4gICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5oYW5kbGVSb3dDb21tYW5kQ2xpY2soZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RHJvcGRvd25Sb3dJdGVtcyA9IChyb3dEYXRhOiB1bmtub3duKTogUHJvbWlzZTxBWFJvd0NvbW1hbmRJdGVtW10+ID0+IHtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5kcm9wZG93blJvd0l0ZW1zKTtcclxuICB9O1xyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlUm93Q29tbWFuZENsaWNrKGU6IEFYUm93Q29tbWFuZEl0ZW1DbGlja0V2ZW50KSB7XHJcbiAgICB0aGlzLnZtLmV4ZWN1dGVDb21tYW5kKGUubmFtZSwgZS5kYXRhKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTZWxlY3RlZFJvd3NDaGFuZ2Uocm93czogdW5rbm93bltdKSB7XHJcbiAgICB0aGlzLnZtLnNlbGVjdGVkSXRlbXMuc2V0KHJvd3MpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnZtLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxheC1kcmF3ZXItY29udGFpbmVyPlxyXG4gIDxheC1jb250ZW50IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1vdmVyZmxvdy1oaWRkZW5cIiAjY29udGVudD5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00IGF4LXB4LTQgYXgtcGItNCBtZDpheC1weC02IGF4LWJnLXN1cmZhY2UgICBheC1ib3JkZXItYiBtZDpheC1ib3JkZXItMCBtZDpheC1iZy1kZWZhdWx0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LXB0LTQgYXgtZ2FwLTQgYXgtc3RpY2t5IGF4LXRvcC0wIGF4LXotMTAgYXgtdHJhbnNpdGlvbi1hbGxcIiAjc3RpY2t5PVwiYXhwU3RpY2t5XCJcclxuICAgICAgICBbYXhwU3RpY2t5XT1cIidheC1iZy1zdXJmYWNlIGF4LXB4LTYgYXgtcHktMyAtYXgtbXgtNiBheC1zaGFkb3cteGwnXCIgW3N0aWNreVBhcmVudF09XCJjb250ZW50LmdldEhvc3RFbGVtZW50KClcIj5cclxuICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIFRvb2xiYXIgIC0tLS0tLS0tPlxyXG4gICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gTGluZSAxICAtLS0tLS0tLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIFRpdGxlICAtLS0tLS0tLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0xIGF4LWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMiBheC10cmFuc2l0aW9uXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQteGwgbWQ6YXgtdGV4dC0zeGwgYXgtZm9udC1ib2xkXCI+e3sgdm0udGl0bGUoKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgQGlmKHZtLmRlc2NyaXB0aW9uKCkpXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC02MDBcIiBbY2xhc3MuYXgtaGlkZGVuXT1cInN0aWNreS5pc1N0aWNreVwiPnt7XHJcbiAgICAgICAgICAgICAgICB2bS5kZXNjcmlwdGlvbigpIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDxheC1icmVhZGNydW1icyBjbGFzcz1cImNoaWxkOmF4LWZvbnQtbm9ybWFsIGNoaWxkOmF4LXRleHQtbmV1dHJhbC00MDBcIiBbY2xhc3MuYXgtaGlkZGVuXT1cImlzU00gfCBhc3luY1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNoZXZyb24tcmlnaHQgYXgtdGV4dC14cyBheC1teC0yXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIEBmb3IoYiBvZiB2bS5iZWFyZGNydW1icygpO3RyYWNrICRpbmRleDtsZXQgbGFzdD0kbGFzdClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIDxheC1icmVhZGNydW1icy1pdGVtIFthY3RpdmVdPVwibGFzdFwiIFtjbGFzcy4hYXgtZm9udC1zZW1pYm9sZF09XCJsYXN0XCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLiFheC10ZXh0LW5ldXRyYWwtNjAwXT1cImxhc3RcIiBbcm91dGVyTGlua109XCJiLnVybFwiPlxyXG4gICAgICAgICAgICAgICAgICBAaWYoYi5pY29uKVxyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJiLmljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAge3tiLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgIDwvYXgtYnJlYWRjcnVtYnMtaXRlbT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVGl0bGUgIC0tLS0tLS0tPlxyXG4gICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgICA8IS0tIEJlZ2luIEFjdGlvbiBNZW51ICAtLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtM1wiPlxyXG4gICAgICAgICAgICBAZm9yKHRyIG9mIHZtLnByaW1hcnlBY3Rpb25zKCk7dHJhY2sgJGluZGV4KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgIDxheC1idXR0b24gW3RleHRdPVwidHIudGl0bGVcIiBbY29sb3JdPVwidHIuY29sb3JcIiAob25DbGljayk9XCJ2bS5leGVjdXRlQ29tbWFuZCh0ci5uYW1lKVwiPlxyXG4gICAgICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJ0ci5pY29uXCI+IDwvYXgtaWNvbj5cclxuICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGlmKHZtLnNlY29uZGFyeUFjdGlvbnMoKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgPGF4LWJ1dHRvbiBbdGV4dF09XCIoaXNTTSB8IGFzeW5jKSA/IG51bGwgOiAnQWN0aW9ucydcIiBjb2xvcj1cImdob3N0XCI+XHJcbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZWxsaXBzaXMtdmVydGljYWxcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsPlxyXG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgIEBmb3IodHIgb2Ygdm0uc2Vjb25kYXJ5QWN0aW9ucygpO3RyYWNrICRpbmRleDtsZXQgZmlyc3Q9JGZpcnN0KVxyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmKHRyLnNlcGFyYXRlZCAmJiAhJGZpcnN0KVxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSBbdGV4dF09XCJ0ci50aXRsZVwiIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXt7dHIuY29sb3J9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJ2bS5leGVjdXRlQ29tbWFuZCh0ci5uYW1lKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gW2ljb25dPVwidHIuaWNvblwiPiA8L2F4LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxyXG4gICAgICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gRmluaXNoIEFjdGlvbiBNZW51ICAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggTGluZSAxICAtLS0tLS0tLT5cclxuXHJcbiAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBMaW5lIDIgLS0tLS0tLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1zdGFydCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTRcIj5cclxuICAgICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBTZWxlY3Rpb24gIC0tLS0tLS0tPlxyXG5cclxuICAgICAgICAgICAgQGlmKHZtLmhhc1NlbGVjdGVkSXRlbXMoKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMyBheC1pdGVtcy1jZW50ZXIgYXgtaC0xMFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGRcIj4ge3sgdm0uc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCB9fSBJdGVtcyBTZWxlY3RlZCA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInZtLmNsZWFyU2VsZWN0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC10ZXh0LXNtIGF4LXRleHQtcHJpbWFyeSBkYXJrOmF4LXRleHQtcHJpbWFyeS0zMDAgYXgtdW5kZXJsaW5lIGF4LWN1cnNvci1wb2ludGVyXCI+Q2xlYXJcclxuICAgICAgICAgICAgICAgIEl0ZW1zPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIFNlbGVjdGlvbiAgLS0tLS0tLS0+XHJcblxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gVmlldyAgLS0tLS0tLS0+XHJcblxyXG4gICAgICAgICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cInZtLnZpZXcoKS50aXRsZVwiICN2aWV3cyBjb2xvcj1cImdob3N0XCI+XHJcbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZXllXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgIDxheC1zdWZmaXg+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNhcmV0LWRvd25cIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XHJcbiAgICAgICAgICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdCBjbGFzcz1cImF4LWJnLXN1cmZhY2VcIj5cclxuICAgICAgICAgICAgICAgICAgPGF4LXRpdGxlIGNsYXNzPVwiYXgtZm9udC1ib2xkIGF4LW9wYWNpdHktMTAwXCI+UHVibGljIFZpZXdzPC9heC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtICpuZ0Zvcj1cImxldCB2IG9mIHZtLnZpZXdzKClcIiBbdGV4dF09XCJ2LnRpdGxlXCIgW2NsYXNzLmF4LWJnLW9uLXN1cmZhY2VdPVwidm0udmlldygpPT12XCJcclxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJ2bS5zZXRWaWV3KHYubmFtZSlcIj48L2F4LWJ1dHRvbi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxheC10aXRsZSBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC1vcGFjaXR5LTEwMFwiICpuZ0lmPVwiaGFzQ3VzdG9tVmlld3MkIHwgYXN5bmNcIj5DcmVhdGVkIGJ5IG1lPC9heC10aXRsZT5cclxuICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSBjbGFzcz1cImF4LXBlLTQgYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW5cIiAqbmdGb3I9XCJsZXQgdiBvZiBjdXN0b21WaWV3cyQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cInYudGl0bGVcIiBbY2xhc3MuYXgtYmctb24tc3VyZmFjZV09XCIodmlldyQgfCBhc3luYykgPT0gdlwiIChvbkNsaWNrKT1cImxvYWRlci5zZXRWaWV3KHYubmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgPGF4LXN1ZmZpeD5cclxuICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIChvbkNsaWNrKT1cInVwZGF0ZVZpZXdQb3B1cCgkZXZlbnQsIHYpXCIgY2xhc3M9XCJheC14c1wiIGxvb2s9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhciBmYS1lZGl0XCI+IDwvYXgtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XHJcbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPiAtLT5cclxuICAgICAgICAgICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpmZWF0dXJlPVwiJ2F4cC1lbnRpdHktbGlzdC1jdXN0b20tdmlldydcIj5cclxuICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gdGV4dD1cIkFkZCBDdXN0b20gVmlld1wiIChvbkNsaWNrKT1cImFkZEN1c3RvbVZpZXdQb3B1cCgpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGQgYXgtdGV4dC1wcmltYXJ5XCI+PC9heC1idXR0b24taXRlbT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cclxuICAgICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxyXG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVmlldyAgLS0tLS0tLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIElubGluZSBTZWFyY2ggICAtLS0tLS0tLT5cclxuXHJcbiAgICAgICAgICAgIEBpZih2bS5oYXNJbmxpbmVGaWx0ZXJzKCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXctNzJcIiAqZmVhdHVyZT1cIidheHAtZW50aXR5LWxpc3QtaW5saW5lLWZpbHRlcidcIj5cclxuICAgICAgICAgICAgICA8YXgtc2VhcmNoLWJveCBbcGxhY2Vob2xkZXJdPVwiJ1NlYXJjaCBvbiAnK3ZtLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5qb2luKCcsICcpXCJcclxuICAgICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVDaGFuZ2VTZWFyY2hWYWx1ZSgkZXZlbnQpXCI+PGF4LWNsZWFyLWJ1dHRvbj48L2F4LWNsZWFyLWJ1dHRvbj48L2F4LXNlYXJjaC1ib3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggSW5saW5lIFNlYXJjaCAtLS0tLS0tLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gQmVnaW4gVmlldyBBY3Rpb24gTWVudSAgLS0+XHJcbiAgICAgICAgICBAaWYoIXZtLmhhc1NlbGVjdGVkSXRlbXMoKSlcclxuICAgICAgICAgIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0zXCI+XHJcbiAgICAgICAgICAgIDxheC1idXR0b24gdGV4dD1cIkNvbHVtbnNcIiBjb2xvcj1cImdob3N0XCIgKG9uQ2xpY2spPVwiY29sdW1uc0RyYXdlci5vcGVuKClcIj5cclxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1iYXJzXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgIDxheC1zdWZmaXg+XHJcbiAgICAgICAgICAgICAgICA8YXgtYmFkZ2UgW3RleHRdPVwidm0udmlzaWJsZUNvbHVtbkNvdW50KCkudG9TdHJpbmcoKVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICA8YXgtYnV0dG9uIHRleHQ9XCJGaWx0ZXJzXCIgY29sb3I9XCJnaG9zdFwiIChvbkNsaWNrKT1cImNvbmRpdGlvbnNEcmF3ZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAqZmVhdHVyZT1cIidheHAtZW50aXR5LWxpc3QtYWR2YW5jZS1maWx0ZXInXCI+XHJcbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtc2xpZGVyc1wiPjwvaT5cclxuICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgICA8YXgtc3VmZml4PlxyXG4gICAgICAgICAgICAgICAgPGF4LWJhZGdlIHRleHQ9XCIzXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9heC1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2F4LXN1ZmZpeD5cclxuICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgIEBpZih2bS5jYW5Tb3J0KCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0ZXh0PVwiU29ydFwiIGNvbG9yPVwiZ2hvc3RcIiAob25DbGljayk9XCJzb3J0c0RyYXdlci5vcGVuKClcIj5cclxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1iYXJzLXNvcnRcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgQGlmKHZtLnNvcnRlZENvdW50KCkpXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIDxheC1zdWZmaXg+XHJcbiAgICAgICAgICAgICAgICA8YXgtYmFkZ2UgW3RleHRdPVwidm0uc29ydGVkQ291bnQoKS50b1N0cmluZygpXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9heC1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2F4LXN1ZmZpeD5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDwhLS0gRmluaXNoIFZpZXcgQWN0aW9uIE1lbnUgIC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIExpbmUgMiAgLS0tLS0tLS0+XHJcblxyXG4gICAgICAgIDwhLS0tLS0gRmluaXNoIFRvb2xiYXIgIC0tLS0tPlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0tLS0gQmVnaW4gRGF0YVRhYmxlICAtLS0tLT5cclxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtMSBheC1weC02IGF4LXB5LTQgIGF4LW92ZXJmbG93LWF1dG9cIj5cclxuICAgICAgPGF4LWRhdGEtdGFibGUgI2dyaWQgW3Nob3dGb290ZXJdPVwiZmFsc2VcIiBjbGFzcz1cImF4LWZsZXgtMVwiIFtwYWdpbmddPVwidHJ1ZVwiIFtmZXRjaERhdGFNb2RlXT1cIidtYW51YWwnXCJcclxuICAgICAgICBbbG9hZGluZ109XCJ7IGVuYWJsZWQ6IHRydWUsIGFuaW1hdGlvbjogdHJ1ZSB9XCIgW2RhdGFTb3VyY2VdPVwidm0uZGF0YVNvdXJjZVwiXHJcbiAgICAgICAgKHNlbGVjdGVkUm93c0NoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFJvd3NDaGFuZ2UoJGV2ZW50KVwiIChvblJvd0RiQ2xpY2spPVwiaGFuZGxlUm93RGJDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgPGF4LXNlbGVjdC1jb2x1bW4gZml4ZWQ9XCJzdGFydFwiIFt3aWR0aF09XCInNTBweCdcIj48L2F4LXNlbGVjdC1jb2x1bW4+XHJcbiAgICAgICAgQGZvcihjb2wgb2Ygdm0uY29sdW1ucygpO3RyYWNrIGNvbC5uYW1lKSB7XHJcbiAgICAgICAgQGlmKGNvbC52aXNpYmxlKVxyXG4gICAgICAgIHtcclxuICAgICAgICA8YXhwLXdpZGdldC1jb2x1bW4tcmVuZGVyZXIgW2NhcHRpb25dPVwiY29sLnRpdGxlXCIgW25vZGVdPVwiY29sLm5vZGUoKVwiPjwvYXhwLXdpZGdldC1jb2x1bW4tcmVuZGVyZXI+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICA8YXgtZHJvcGRvd24tY29tbWFuZC1jb2x1bW4gZml4ZWQ9XCJlbmRcIiBbd2lkdGhdPVwiJzYwcHgnXCIgW2l0ZW1zXT1cImdldERyb3Bkb3duUm93SXRlbXNcIlxyXG4gICAgICAgICAgKG9uSXRlbUNsaWNrKT1cImhhbmRsZVJvd0NvbW1hbmRDbGljaygkZXZlbnQpXCI+PC9heC1kcm9wZG93bi1jb21tYW5kLWNvbHVtbj5cclxuICAgICAgPC9heC1kYXRhLXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tLS0tIEZpbmlzaCBEYXRhVGFibGUgIC0tLS0tPlxyXG4gIDwvYXgtY29udGVudD5cclxuXHJcbiAgPGF4LWRyYXdlciAoY29sbGFwc2VkQ2hhbmdlKT1cImNsb3NlRHJhd2VyKCdjb2x1bW5zJywgJGV2ZW50KVwiICNjb2x1bW5zRHJhd2VyIGxvY2F0aW9uPVwiZW5kXCIgW21vZGVdPVwiJ292ZXJsYXknXCI+XHJcbiAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LXctWzg1dnddIG1kOmF4LXctWzQ1dnddIGxnOmF4LXctWzM1dnddIDJ4bDpheC13LVsyMHZ3XSBheC1ib3JkZXItZVwiPlxyXG4gICAgICA8YXhwLWxpc3Qtdmlldy1vcHRpb24tY29sdW1ucyBbdmlld01vZGVsXT1cInZtXCIgKG9uQ2xvc2VkKT1cImNvbHVtbnNEcmF3ZXIuY2xvc2UoKVwiPjwvYXhwLWxpc3Qtdmlldy1vcHRpb24tY29sdW1ucz5cclxuICAgIDwvYXgtY29udGVudD5cclxuICA8L2F4LWRyYXdlcj5cclxuICA8YXgtZHJhd2VyIChjb2xsYXBzZWRDaGFuZ2UpPVwiY2xvc2VEcmF3ZXIoJ2NvbmRpdGlvbnMnLCAkZXZlbnQpXCIgI2NvbmRpdGlvbnNEcmF3ZXIgbG9jYXRpb249XCJlbmRcIiBbbW9kZV09XCInb3ZlcmxheSdcIj5cclxuICAgIDxheC1jb250ZW50IGNsYXNzPVwiYXgtdy1bODV2d10gbWQ6YXgtdy1bNDV2d10gbGc6YXgtdy1bMzV2d10gMnhsOmF4LXctWzI1dnddIGF4LWJvcmRlci1lXCI+XHJcbiAgICAgIDwhLS0gPGF4cC1saXN0LXZpZXctb3B0aW9uLWNvbmRpdGlvbnMgW2xvYWRlcl09XCJsb2FkZXJcIlxyXG4gICAgICAgIChvbkNsb3NlZCk9XCJjb25kaXRpb25zRHJhd2VyLmNsb3NlKClcIj48L2F4cC1saXN0LXZpZXctb3B0aW9uLWNvbmRpdGlvbnM+IC0tPlxyXG4gICAgPC9heC1jb250ZW50PlxyXG4gIDwvYXgtZHJhd2VyPlxyXG4gIDxheC1kcmF3ZXIgKGNvbGxhcHNlZENoYW5nZSk9XCJjbG9zZURyYXdlcignc29ydHMnLCAkZXZlbnQpXCIgI3NvcnRzRHJhd2VyIGxvY2F0aW9uPVwiZW5kXCIgW21vZGVdPVwiJ292ZXJsYXknXCI+XHJcbiAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LXctWzg1dnddIG1kOmF4LXctWzQ1dnddIGxnOmF4LXctWzM1dnddIDJ4bDpheC13LVsyMHZ3XSBheC1ib3JkZXItZVwiPlxyXG4gICAgICA8YXhwLWxpc3Qtdmlldy1vcHRpb24tc29ydGluZyAob25DbG9zZWQpPVwic29ydHNEcmF3ZXIuY2xvc2UoKVwiIFt2aWV3TW9kZWxdPVwidm1cIj48L2F4cC1saXN0LXZpZXctb3B0aW9uLXNvcnRpbmc+XHJcbiAgICA8L2F4LWNvbnRlbnQ+XHJcbiAgPC9heC1kcmF3ZXI+XHJcbjwvYXgtZHJhd2VyLWNvbnRhaW5lcj4iXX0=
@@ -42,8 +42,11 @@ export class AXPEntityMasterSingleViewComponent {
42
42
  handleActiveTabChanged(e) {
43
43
  this.selectedTabIndex.set(e.index);
44
44
  }
45
+ ngOnDestroy() {
46
+ this.vm.destroy();
47
+ }
45
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityMasterSingleViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityMasterSingleViewComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\r\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\r\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\r\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\r\n <ax-tabs look=\"with-line\" location=\"start\">\r\n @for(tab of (loader.sections$ | async); track tab.name)\r\n {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\r\n [disabled]=\"editForm.context\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content #content class=\"ax-overflow-x-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\r\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyOffset]=\"50\"\r\n [stickyParent]=\"content.getHostElement()\">\r\n <!-------- Begin Toolbar -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <!-------- Begin Title -------->\r\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title()}}</div>\r\n @if(vm.description())\r\n {\r\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">{{\r\n vm.description() }}</div>\r\n }\r\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\"\r\n [class.ax-hidden]=\"isSM | async\">\r\n <ng-template #divider>\r\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\r\n </ng-template>\r\n @for(b of vm.beardcrumbs();track $index;let last=$last)\r\n {\r\n <ax-breadcrumbs-item [active]=\"last\" [class.!ax-font-semibold]=\"last\"\r\n [class.!ax-text-neutral-600]=\"last\" [routerLink]=\"b.url\">\r\n @if(b.icon)\r\n {\r\n <i [class]=\"b.icon\"></i>\r\n }\r\n {{b.title}}\r\n </ax-breadcrumbs-item>\r\n }\r\n </ax-breadcrumbs>\r\n </div>\r\n </div>\r\n <!-------- Finish Title -------->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Action Menu -->\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n @for(tr of vm.primaryActions();track $index)\r\n {\r\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n @if(vm.secondaryActions().length) {\r\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel>\r\n <ax-button-item-list>\r\n @for(tr of vm.secondaryActions();track $index)\r\n {\r\n <ng-container>\r\n @if(tr.separated)\r\n {\r\n <ax-divider></ax-divider>\r\n }\r\n <ax-button-item [text]=\"tr.title\" class=\"ax-font-semibold ax-text-{{tr.color}}\"\r\n (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ng-container>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n }\r\n </div>\r\n <!-- Finish Action Menu -->\r\n </div>\r\n <!----- Finish Toolbar ----->\r\n <!--------------------------------------------------------------->\r\n <ax-tabs [look]=\"'classic'\" class=\"ax-mt-4 ax-font-semibold\">\r\n <ax-tab-item text=\"Overview\">\r\n </ax-tab-item>\r\n <ax-tab-item text=\"History\">\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Comments\">\r\n </ax-tab-item>\r\n </ax-tabs>\r\n </div>\r\n <!-- Begin Sections -->\r\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\r\n @for(section of vm.sections(); track section.name()) {\r\n <div class=\"ax-card ax-shadow-md ax-mt-2\" [gridLayout]=\"section.layout()\">\r\n <ax-form #form>\r\n <axp-widgets-container [context]=\"vm.context()\">\r\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\r\n <p>\r\n <span class=\"!ax-text-lg ax-font-semibold \">{{ section.title()\r\n }}</span>\r\n <br>\r\n @if(section.description()) {\r\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description()\r\n }}</span>\r\n }\r\n </p>\r\n @if(section.editable()) {\r\n <ax-button class=\"ax-xs\" color=\"ghost\" [look]=\"'blank'\"\r\n (onClick)=\"vm.executeCommand('modify-entity-section',section)\">\r\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\r\n </ax-button>\r\n }\r\n </div>\r\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\r\n @for(attr of section.props(); track $index) {\r\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\r\n <div>\r\n <div>\r\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\r\n </div>\r\n </div>\r\n <div class=\"ax-text-neutral-500\">\r\n <axp-widget-renderer [node]=\"attr.node()\"> </axp-widget-renderer>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </axp-widgets-container>\r\n </ax-form>\r\n </div>\r\n }\r\n </div>\r\n <!-- Finish Sections -->\r\n <!--------------------------------------------------------------->\r\n @if(vm.relatedEntities().length)\r\n {\r\n <ax-tabs [look]=\"'default'\" class=\"ax-mt-2 ax-font-semibold\" #tab\r\n (onActiveTabChanged)=\"handleActiveTabChanged($event)\">\r\n @for(e of vm.relatedEntities();track $index;let index= $index){\r\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n @for(e of vm.relatedEntities();track $index;let index= $index){\r\n <div [class.ax-hidden]=\"$index!=selectedTabIndex()\">\r\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\r\n </div>\r\n }\r\n }\r\n\r\n </div>\r\n </ax-content>\r\n</ax-drawer-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i5.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i6.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i7.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i7.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i8.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i8.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i8.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i9.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i9.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type:
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityMasterSingleViewComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\r\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\r\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\r\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\r\n <ax-tabs look=\"with-line\" location=\"start\">\r\n @for(tab of (loader.sections$ | async); track tab.name)\r\n {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\r\n [disabled]=\"editForm.context\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content #content class=\"ax-overflow-x-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\r\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyOffset]=\"50\"\r\n [stickyParent]=\"content.getHostElement()\">\r\n <!-------- Begin Toolbar -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <!-------- Begin Title -------->\r\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title()}}</div>\r\n @if(vm.description())\r\n {\r\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">{{\r\n vm.description() }}</div>\r\n }\r\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\"\r\n [class.ax-hidden]=\"isSM | async\">\r\n <ng-template #divider>\r\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\r\n </ng-template>\r\n @for(b of vm.beardcrumbs();track $index;let last=$last)\r\n {\r\n <ax-breadcrumbs-item [active]=\"last\" [class.!ax-font-semibold]=\"last\"\r\n [class.!ax-text-neutral-600]=\"last\" [routerLink]=\"b.url\">\r\n @if(b.icon)\r\n {\r\n <i [class]=\"b.icon\"></i>\r\n }\r\n {{b.title}}\r\n </ax-breadcrumbs-item>\r\n }\r\n </ax-breadcrumbs>\r\n </div>\r\n </div>\r\n <!-------- Finish Title -------->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Action Menu -->\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n @for(tr of vm.primaryActions();track $index)\r\n {\r\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n @if(vm.secondaryActions().length) {\r\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel>\r\n <ax-button-item-list>\r\n @for(tr of vm.secondaryActions();track $index)\r\n {\r\n <ng-container>\r\n @if(tr.separated)\r\n {\r\n <ax-divider></ax-divider>\r\n }\r\n <ax-button-item [text]=\"tr.title\" class=\"ax-font-semibold ax-text-{{tr.color}}\"\r\n (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ng-container>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n }\r\n </div>\r\n <!-- Finish Action Menu -->\r\n </div>\r\n <!----- Finish Toolbar ----->\r\n <!--------------------------------------------------------------->\r\n <ax-tabs [look]=\"'classic'\" class=\"ax-mt-4 ax-font-semibold\">\r\n <ax-tab-item text=\"Overview\">\r\n </ax-tab-item>\r\n <ax-tab-item text=\"History\">\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Comments\">\r\n </ax-tab-item>\r\n </ax-tabs>\r\n </div>\r\n <!-- Begin Sections -->\r\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\r\n @for(section of vm.sections(); track section.name()) {\r\n <div class=\"ax-card ax-shadow-md ax-mt-2\" [gridLayout]=\"section.layout()\">\r\n <ax-form #form>\r\n <axp-widgets-container [context]=\"vm.context()\">\r\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\r\n <p>\r\n <span class=\"!ax-text-lg ax-font-semibold \">{{ section.title()\r\n }}</span>\r\n <br>\r\n @if(section.description()) {\r\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description()\r\n }}</span>\r\n }\r\n </p>\r\n @if(section.editable()) {\r\n <ax-button class=\"ax-xs\" color=\"ghost\" [look]=\"'blank'\"\r\n (onClick)=\"vm.executeCommand('modify-entity-section',section)\">\r\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\r\n </ax-button>\r\n }\r\n </div>\r\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\r\n @for(attr of section.props(); track $index) {\r\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\r\n <div>\r\n <div>\r\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\r\n </div>\r\n </div>\r\n <div class=\"ax-text-neutral-500\">\r\n <axp-widget-renderer [node]=\"attr.node()\"> </axp-widget-renderer>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </axp-widgets-container>\r\n </ax-form>\r\n </div>\r\n }\r\n </div>\r\n <!-- Finish Sections -->\r\n <!--------------------------------------------------------------->\r\n @if(vm.relatedEntities().length)\r\n {\r\n <ax-tabs [look]=\"'default'\" class=\"ax-mt-2 ax-font-semibold\" #tab\r\n (onActiveTabChanged)=\"handleActiveTabChanged($event)\">\r\n @for(e of vm.relatedEntities();track $index;let index= $index){\r\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n @for(e of vm.relatedEntities();track $index;let index= $index){\r\n <div [class.ax-hidden]=\"$index!=selectedTabIndex()\">\r\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\r\n </div>\r\n }\r\n }\r\n\r\n </div>\r\n </ax-content>\r\n</ax-drawer-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i5.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i6.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i7.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i7.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i8.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i8.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i8.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i9.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i9.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type:
47
50
  //
48
51
  AXPLayoutBuilderModule }, { kind: "component", type: i10.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["contextChange"] }, { kind: "component", type: i10.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[gridLayout]", inputs: ["gridLayout"] }, { kind: "component", type:
49
52
  //
@@ -72,6 +75,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
72
75
  AXPGridLayoutDirective,
73
76
  //
74
77
  AXPEntityDetailListViewComponent
75
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\r\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\r\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\r\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\r\n <ax-tabs look=\"with-line\" location=\"start\">\r\n @for(tab of (loader.sections$ | async); track tab.name)\r\n {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\r\n [disabled]=\"editForm.context\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content #content class=\"ax-overflow-x-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\r\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyOffset]=\"50\"\r\n [stickyParent]=\"content.getHostElement()\">\r\n <!-------- Begin Toolbar -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <!-------- Begin Title -------->\r\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title()}}</div>\r\n @if(vm.description())\r\n {\r\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">{{\r\n vm.description() }}</div>\r\n }\r\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\"\r\n [class.ax-hidden]=\"isSM | async\">\r\n <ng-template #divider>\r\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\r\n </ng-template>\r\n @for(b of vm.beardcrumbs();track $index;let last=$last)\r\n {\r\n <ax-breadcrumbs-item [active]=\"last\" [class.!ax-font-semibold]=\"last\"\r\n [class.!ax-text-neutral-600]=\"last\" [routerLink]=\"b.url\">\r\n @if(b.icon)\r\n {\r\n <i [class]=\"b.icon\"></i>\r\n }\r\n {{b.title}}\r\n </ax-breadcrumbs-item>\r\n }\r\n </ax-breadcrumbs>\r\n </div>\r\n </div>\r\n <!-------- Finish Title -------->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Action Menu -->\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n @for(tr of vm.primaryActions();track $index)\r\n {\r\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n @if(vm.secondaryActions().length) {\r\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel>\r\n <ax-button-item-list>\r\n @for(tr of vm.secondaryActions();track $index)\r\n {\r\n <ng-container>\r\n @if(tr.separated)\r\n {\r\n <ax-divider></ax-divider>\r\n }\r\n <ax-button-item [text]=\"tr.title\" class=\"ax-font-semibold ax-text-{{tr.color}}\"\r\n (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ng-container>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n }\r\n </div>\r\n <!-- Finish Action Menu -->\r\n </div>\r\n <!----- Finish Toolbar ----->\r\n <!--------------------------------------------------------------->\r\n <ax-tabs [look]=\"'classic'\" class=\"ax-mt-4 ax-font-semibold\">\r\n <ax-tab-item text=\"Overview\">\r\n </ax-tab-item>\r\n <ax-tab-item text=\"History\">\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Comments\">\r\n </ax-tab-item>\r\n </ax-tabs>\r\n </div>\r\n <!-- Begin Sections -->\r\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\r\n @for(section of vm.sections(); track section.name()) {\r\n <div class=\"ax-card ax-shadow-md ax-mt-2\" [gridLayout]=\"section.layout()\">\r\n <ax-form #form>\r\n <axp-widgets-container [context]=\"vm.context()\">\r\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\r\n <p>\r\n <span class=\"!ax-text-lg ax-font-semibold \">{{ section.title()\r\n }}</span>\r\n <br>\r\n @if(section.description()) {\r\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description()\r\n }}</span>\r\n }\r\n </p>\r\n @if(section.editable()) {\r\n <ax-button class=\"ax-xs\" color=\"ghost\" [look]=\"'blank'\"\r\n (onClick)=\"vm.executeCommand('modify-entity-section',section)\">\r\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\r\n </ax-button>\r\n }\r\n </div>\r\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\r\n @for(attr of section.props(); track $index) {\r\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\r\n <div>\r\n <div>\r\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\r\n </div>\r\n </div>\r\n <div class=\"ax-text-neutral-500\">\r\n <axp-widget-renderer [node]=\"attr.node()\"> </axp-widget-renderer>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </axp-widgets-container>\r\n </ax-form>\r\n </div>\r\n }\r\n </div>\r\n <!-- Finish Sections -->\r\n <!--------------------------------------------------------------->\r\n @if(vm.relatedEntities().length)\r\n {\r\n <ax-tabs [look]=\"'default'\" class=\"ax-mt-2 ax-font-semibold\" #tab\r\n (onActiveTabChanged)=\"handleActiveTabChanged($event)\">\r\n @for(e of vm.relatedEntities();track $index;let index= $index){\r\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n @for(e of vm.relatedEntities();track $index;let index= $index){\r\n <div [class.ax-hidden]=\"$index!=selectedTabIndex()\">\r\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\r\n </div>\r\n }\r\n }\r\n\r\n </div>\r\n </ax-content>\r\n</ax-drawer-container>" }]
78
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\r\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\r\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\r\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\r\n <ax-tabs look=\"with-line\" location=\"start\">\r\n @for(tab of (loader.sections$ | async); track tab.name)\r\n {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\r\n [disabled]=\"editForm.context\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content #content class=\"ax-overflow-x-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\r\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyOffset]=\"50\"\r\n [stickyParent]=\"content.getHostElement()\">\r\n <!-------- Begin Toolbar -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <!-------- Begin Title -------->\r\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title()}}</div>\r\n @if(vm.description())\r\n {\r\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">{{\r\n vm.description() }}</div>\r\n }\r\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\"\r\n [class.ax-hidden]=\"isSM | async\">\r\n <ng-template #divider>\r\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\r\n </ng-template>\r\n @for(b of vm.beardcrumbs();track $index;let last=$last)\r\n {\r\n <ax-breadcrumbs-item [active]=\"last\" [class.!ax-font-semibold]=\"last\"\r\n [class.!ax-text-neutral-600]=\"last\" [routerLink]=\"b.url\">\r\n @if(b.icon)\r\n {\r\n <i [class]=\"b.icon\"></i>\r\n }\r\n {{b.title}}\r\n </ax-breadcrumbs-item>\r\n }\r\n </ax-breadcrumbs>\r\n </div>\r\n </div>\r\n <!-------- Finish Title -------->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Action Menu -->\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n @for(tr of vm.primaryActions();track $index)\r\n {\r\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n @if(vm.secondaryActions().length) {\r\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel>\r\n <ax-button-item-list>\r\n @for(tr of vm.secondaryActions();track $index)\r\n {\r\n <ng-container>\r\n @if(tr.separated)\r\n {\r\n <ax-divider></ax-divider>\r\n }\r\n <ax-button-item [text]=\"tr.title\" class=\"ax-font-semibold ax-text-{{tr.color}}\"\r\n (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ng-container>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n }\r\n </div>\r\n <!-- Finish Action Menu -->\r\n </div>\r\n <!----- Finish Toolbar ----->\r\n <!--------------------------------------------------------------->\r\n <ax-tabs [look]=\"'classic'\" class=\"ax-mt-4 ax-font-semibold\">\r\n <ax-tab-item text=\"Overview\">\r\n </ax-tab-item>\r\n <ax-tab-item text=\"History\">\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Comments\">\r\n </ax-tab-item>\r\n </ax-tabs>\r\n </div>\r\n <!-- Begin Sections -->\r\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\r\n @for(section of vm.sections(); track section.name()) {\r\n <div class=\"ax-card ax-shadow-md ax-mt-2\" [gridLayout]=\"section.layout()\">\r\n <ax-form #form>\r\n <axp-widgets-container [context]=\"vm.context()\">\r\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\r\n <p>\r\n <span class=\"!ax-text-lg ax-font-semibold \">{{ section.title()\r\n }}</span>\r\n <br>\r\n @if(section.description()) {\r\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description()\r\n }}</span>\r\n }\r\n </p>\r\n @if(section.editable()) {\r\n <ax-button class=\"ax-xs\" color=\"ghost\" [look]=\"'blank'\"\r\n (onClick)=\"vm.executeCommand('modify-entity-section',section)\">\r\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\r\n </ax-button>\r\n }\r\n </div>\r\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\r\n @for(attr of section.props(); track $index) {\r\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\r\n <div>\r\n <div>\r\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\r\n </div>\r\n </div>\r\n <div class=\"ax-text-neutral-500\">\r\n <axp-widget-renderer [node]=\"attr.node()\"> </axp-widget-renderer>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </axp-widgets-container>\r\n </ax-form>\r\n </div>\r\n }\r\n </div>\r\n <!-- Finish Sections -->\r\n <!--------------------------------------------------------------->\r\n @if(vm.relatedEntities().length)\r\n {\r\n <ax-tabs [look]=\"'default'\" class=\"ax-mt-2 ax-font-semibold\" #tab\r\n (onActiveTabChanged)=\"handleActiveTabChanged($event)\">\r\n @for(e of vm.relatedEntities();track $index;let index= $index){\r\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n @for(e of vm.relatedEntities();track $index;let index= $index){\r\n <div [class.ax-hidden]=\"$index!=selectedTabIndex()\">\r\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\r\n </div>\r\n }\r\n }\r\n\r\n </div>\r\n </ax-content>\r\n</ax-drawer-container>" }]
76
79
  }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLXNpbmdsZS12aWV3L2VudGl0eS1tYXN0ZXItc2luZ2xlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy9lbnRpdHktbWFzdGVyLXNpbmdsZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQXVCLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7Ozs7O0FBK0JoSCxNQUFNLE9BQU8sa0NBQWtDO0lBM0IvQztRQTRCWSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQixPQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsQ0FBQztRQUMvRixFQUFFO1FBQ00sVUFBSyxHQUFHLE1BQU0sQ0FBQyxDQUFBLEtBQTBCLENBQUEsQ0FBQyxDQUFDO1FBQ3pDLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLFdBQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRzdDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUsxQztJQUhHLHNCQUFzQixDQUFDLENBQU07UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzs4R0FiUSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyx3RUNsRC9DLHVsVEFxS3NCLDJDRDNJZCxZQUFZLG1GQUNaLFlBQVksK1FBQ1osaUJBQWlCLHVWQUNqQixnQkFBZ0Isd1BBQ2hCLGVBQWUsOEJBQ2YsWUFBWSxrTUFDWixtQkFBbUIsOEJBQ25CLGNBQWMsMkhBQ2QsY0FBYyw4QkFDZCxlQUFlLDhCQUNmLFlBQVksa2FBQ1osY0FBYyxvckJBQ2QsbUJBQW1CO2dCQUNuQixFQUFFO2dCQUNGLHNCQUFzQiwwVEFDdEIsZ0JBQWdCLCtCQUNoQixrQkFBa0IscUxBQ2xCLHNCQUFzQjtnQkFDdEIsRUFBRTtnQkFDRixnQ0FBZ0M7OzJGQUszQixrQ0FBa0M7a0JBM0I5QyxTQUFTOzhCQUVHO3dCQUNMLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsRUFBRTt3QkFDRixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLEVBQUU7d0JBQ0YsZ0NBQWdDO3FCQUNuQyxjQUNXLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQWN0aW9uU2hlZXRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYWN0aW9uLXNoZWV0JztcclxuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XHJcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBWERyYXdlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xyXG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcclxuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xyXG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XHJcbmltcG9ydCB7IEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcclxuaW1wb3J0IHsgQVhUYWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xyXG5pbXBvcnQgeyBBWFBBZG1pbkxheW91dFN0YXRlLCBBWFBTdGlja3lEaXJlY3RpdmUsIGdldENoaWxkRHJhd2VyLCBpc1NtYWxsU2NyZWVuIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcclxuaW1wb3J0IHsgQVhQV2lkZ2V0c01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XHJcbmltcG9ydCB7IEFYUEdyaWRMYXlvdXREaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbExpc3RWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vZW50aXR5LWRldGFpbC1saXN0LXZpZXcvZW50aXR5LWRldGFpbC1saXN0LXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktbWFzdGVyLXNpbmdsZS12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgUm91dGVyTW9kdWxlLFxyXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxyXG4gICAgICAgIEFYRHJvcGRvd25Nb2R1bGUsXHJcbiAgICAgICAgQVhQb3BvdmVyTW9kdWxlLFxyXG4gICAgICAgIEFYRm9ybU1vZHVsZSxcclxuICAgICAgICBBWEFjdGlvblNoZWV0TW9kdWxlLFxyXG4gICAgICAgIEFYRHJhd2VyTW9kdWxlLFxyXG4gICAgICAgIEFYRGlhbG9nTW9kdWxlLFxyXG4gICAgICAgIEFYTG9hZGluZ01vZHVsZSxcclxuICAgICAgICBBWFRhYnNNb2R1bGUsXHJcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgQVhCcmVhZGNydW1ic01vZHVsZSxcclxuICAgICAgICAvL1xyXG4gICAgICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXHJcbiAgICAgICAgQVhQV2lkZ2V0c01vZHVsZSxcclxuICAgICAgICBBWFBTdGlja3lEaXJlY3RpdmUsXHJcbiAgICAgICAgQVhQR3JpZExheW91dERpcmVjdGl2ZSxcclxuICAgICAgICAvL1xyXG4gICAgICAgIEFYUEVudGl0eURldGFpbExpc3RWaWV3Q29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0NvbXBvbmVudCB7XHJcbiAgICBwcml2YXRlIGFjdGl2ZVJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSB2bSA9IHRoaXMuYWN0aXZlUm91dGUuc25hcHNob3QuZGF0YVsndm0nXSBhcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw7XHJcbiAgICAvL1xyXG4gICAgcHJpdmF0ZSBzdG9yZSA9IGluamVjdChTdG9yZTxBWFBBZG1pbkxheW91dFN0YXRlPik7XHJcbiAgICBwcm90ZWN0ZWQgaXNTTSA9IHRoaXMuc3RvcmUuc2VsZWN0KGlzU21hbGxTY3JlZW4oKSk7XHJcbiAgICBwcm90ZWN0ZWQgaXNPcGVuID0gdGhpcy5zdG9yZS5zZWxlY3QoZ2V0Q2hpbGREcmF3ZXIoKSk7XHJcblxyXG5cclxuICAgIHByb3RlY3RlZCBzZWxlY3RlZFRhYkluZGV4ID0gc2lnbmFsKDApO1xyXG5cclxuICAgIGhhbmRsZUFjdGl2ZVRhYkNoYW5nZWQoZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYkluZGV4LnNldChlLmluZGV4KTtcclxuICAgIH1cclxufSIsIjxheC1kcmF3ZXItY29udGFpbmVyPlxyXG4gICAgPCEtLSA8YXgtZHJhd2VyICNkcmF3ZXIgbG9jYXRpb249XCJzdGFydFwiIFtjb2xsYXBzZWRdPVwiIShpc09wZW4gfCBhc3luYylcIiBbbW9kZV09XCIgKGlzU00gfCBhc3luYykgPyAnb3ZlcmxheScgOiAncHVzaCdcIlxyXG4gICAgICAqbmdJZj1cImxvYWRlci5oYXNTZWN0aW9ucyQgfCBhc3luY1wiIChjb2xsYXBzZWRDaGFuZ2UpPVwiaGFuZGxlQ29sbGFwc2VkQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJheC1ib3JkZXItZSBheC1wLTYgYXgtdy02NFwiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGQgYXgtbWItNlwiPnt7bG9hZGVyLnNlY3Rpb25UaXRsZX19PC9wPlxyXG4gICAgICAgIDxheC10YWJzIGxvb2s9XCJ3aXRoLWxpbmVcIiBsb2NhdGlvbj1cInN0YXJ0XCI+XHJcbiAgICAgICAgICBAZm9yKHRhYiBvZiAobG9hZGVyLnNlY3Rpb25zJCB8IGFzeW5jKTsgdHJhY2sgdGFiLm5hbWUpXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICA8YXgtdGFiLWl0ZW0gW3RleHRdPVwidGFiLnRpdGxlXCIgW2FjdGl2ZV09XCJpc0FjdGl2ZSh0YWIpXCIgKG9uQ2xpY2spPVwiaGFuZGxlTWVudUNsaWNrKCRldmVudCx0YWIpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImVkaXRGb3JtLmNvbnRleHRcIj5cclxuICAgICAgICAgIDwvYXgtdGFiLWl0ZW0+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9heC10YWJzPlxyXG4gICAgICA8L2F4LWNvbnRlbnQ+XHJcbiAgICA8L2F4LWRyYXdlcj4gLS0+XHJcbiAgICA8YXgtY29udGVudCAjY29udGVudCBjbGFzcz1cImF4LW92ZXJmbG93LXgtaGlkZGVuXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTQgYXgtbWluLWgtZnVsbCBheC1weC00IGF4LXBiLTQgbWQ6YXgtcHgtNiBheC1iZy1zdXJmYWNlICAgYXgtYm9yZGVyLWIgbWQ6YXgtYm9yZGVyLTAgbWQ6YXgtYmctZGVmYXVsdFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wdC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsXCIgI3N0aWNreT1cImF4cFN0aWNreVwiXHJcbiAgICAgICAgICAgICAgICBbYXhwU3RpY2t5XT1cIidheC1iZy1zdXJmYWNlIGF4LXB4LTYgYXgtcHktMyAtYXgtbXgtNiBheC1zaGFkb3cteGwnXCIgW3N0aWNreU9mZnNldF09XCI1MFwiXHJcbiAgICAgICAgICAgICAgICBbc3RpY2t5UGFyZW50XT1cImNvbnRlbnQuZ2V0SG9zdEVsZW1lbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUb29sYmFyICAtLS0tLS0tLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWp1c3RpZnktYmV0d2VlbiBheC1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIFRpdGxlICAtLS0tLS0tLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMSBheC1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTIgYXgtdHJhbnNpdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQteGwgbWQ6YXgtdGV4dC0zeGwgYXgtZm9udC1ib2xkXCI+e3sgdm0udGl0bGUoKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYodm0uZGVzY3JpcHRpb24oKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC02MDBcIiBbY2xhc3MuYXgtaGlkZGVuXT1cInN0aWNreS5pc1N0aWNreVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm0uZGVzY3JpcHRpb24oKSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWJyZWFkY3J1bWJzIGNsYXNzPVwiY2hpbGQ6YXgtZm9udC1ub3JtYWwgY2hpbGQ6YXgtdGV4dC1uZXV0cmFsLTQwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWhpZGRlbl09XCJpc1NNIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2hldnJvbi1yaWdodCBheC10ZXh0LXhzIGF4LW14LTJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yKGIgb2Ygdm0uYmVhcmRjcnVtYnMoKTt0cmFjayAkaW5kZXg7bGV0IGxhc3Q9JGxhc3QpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1icmVhZGNydW1icy1pdGVtIFthY3RpdmVdPVwibGFzdFwiIFtjbGFzcy4hYXgtZm9udC1zZW1pYm9sZF09XCJsYXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLiFheC10ZXh0LW5ldXRyYWwtNjAwXT1cImxhc3RcIiBbcm91dGVyTGlua109XCJiLnVybFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYi5pY29uKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJiLmljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1icmVhZGNydW1icz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVGl0bGUgIC0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gQmVnaW4gQWN0aW9uIE1lbnUgIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yKHRyIG9mIHZtLnByaW1hcnlBY3Rpb25zKCk7dHJhY2sgJGluZGV4KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gW3RleHRdPVwidHIudGl0bGVcIiBbY29sb3JdPVwidHIuY29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gW2ljb25dPVwidHIuaWNvblwiPiA8L2F4LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHZtLnNlY29uZGFyeUFjdGlvbnMoKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiBbdGV4dF09XCIoaXNTTSB8IGFzeW5jKSA/IG51bGwgOiAnQWN0aW9ucydcIiBjb2xvcj1cImdob3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZWxsaXBzaXMtdmVydGljYWxcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvcih0ciBvZiB2bS5zZWNvbmRhcnlBY3Rpb25zKCk7dHJhY2sgJGluZGV4KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYodHIuc2VwYXJhdGVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIFt0ZXh0XT1cInRyLnRpdGxlXCIgY2xhc3M9XCJheC1mb250LXNlbWlib2xkIGF4LXRleHQte3t0ci5jb2xvcn19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJ2bS5leGVjdXRlQ29tbWFuZCh0ci5uYW1lKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cInRyLmljb25cIj4gPC9heC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gRmluaXNoIEFjdGlvbiBNZW51ICAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLS0tLSBGaW5pc2ggVG9vbGJhciAgLS0tLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cclxuICAgICAgICAgICAgICAgIDxheC10YWJzIFtsb29rXT1cIidjbGFzc2ljJ1wiIGNsYXNzPVwiYXgtbXQtNCBheC1mb250LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGF4LXRhYi1pdGVtIHRleHQ9XCJPdmVydmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXgtdGFiLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGF4LXRhYi1pdGVtIHRleHQ9XCJIaXN0b3J5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9heC10YWItaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICA8YXgtdGFiLWl0ZW0gdGV4dD1cIkNvbW1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9heC10YWItaXRlbT5cclxuICAgICAgICAgICAgICAgIDwvYXgtdGFicz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gQmVnaW4gU2VjdGlvbnMgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkICBheC1ncmlkLWNvbHMtMTIgICAgIGF4LWdhcC00XCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yKHNlY3Rpb24gb2Ygdm0uc2VjdGlvbnMoKTsgdHJhY2sgc2VjdGlvbi5uYW1lKCkpIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkIGF4LXNoYWRvdy1tZCBheC1tdC0yXCIgW2dyaWRMYXlvdXRdPVwic2VjdGlvbi5sYXlvdXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtICNmb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cInZtLmNvbnRleHQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcmQtaGVhZGVyICFheC1weS0yICFheC1weC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIWF4LXRleHQtbGcgYXgtZm9udC1zZW1pYm9sZCBcIj57eyBzZWN0aW9uLnRpdGxlKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihzZWN0aW9uLmRlc2NyaXB0aW9uKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXNtIGF4LWZvbnQtbm9ybWFsIGF4LXRleHQtZ3JheS01MDBcIj57eyBzZWN0aW9uLmRlc2NyaXB0aW9uKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihzZWN0aW9uLmVkaXRhYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgteHNcIiBjb2xvcj1cImdob3N0XCIgW2xvb2tdPVwiJ2JsYW5rJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInZtLmV4ZWN1dGVDb21tYW5kKCdtb2RpZnktZW50aXR5LXNlY3Rpb24nLHNlY3Rpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtcGVuIGF4LXRleHQtZ3JheS02MDBcIj4gPC9heC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcmQtYm9keSAhYXgtZ3JpZCAgIWF4LWdyaWQtY29scy0xMiAgIWF4LWdhcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvcihhdHRyIG9mIHNlY3Rpb24ucHJvcHMoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTFcIiBbZ3JpZExheW91dF09XCJhdHRyLmxheW91dCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7IGF0dHIudGl0bGUoKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtbmV1dHJhbC01MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheHAtd2lkZ2V0LXJlbmRlcmVyIFtub2RlXT1cImF0dHIubm9kZSgpXCI+IDwvYXhwLXdpZGdldC1yZW5kZXJlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZm9ybT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBGaW5pc2ggU2VjdGlvbnMgIC0tPlxyXG4gICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cclxuICAgICAgICAgICAgQGlmKHZtLnJlbGF0ZWRFbnRpdGllcygpLmxlbmd0aClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICA8YXgtdGFicyBbbG9va109XCInZGVmYXVsdCdcIiBjbGFzcz1cImF4LW10LTIgYXgtZm9udC1zZW1pYm9sZFwiICN0YWJcclxuICAgICAgICAgICAgICAgIChvbkFjdGl2ZVRhYkNoYW5nZWQpPVwiaGFuZGxlQWN0aXZlVGFiQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yKGUgb2Ygdm0ucmVsYXRlZEVudGl0aWVzKCk7dHJhY2sgJGluZGV4O2xldCBpbmRleD0gJGluZGV4KXtcclxuICAgICAgICAgICAgICAgIDxheC10YWItaXRlbSBbdGV4dF09XCJlLnRpdGxlKClcIiBba2V5XT1cImluZGV4LnRvU3RyaW5nKClcIj5cclxuICAgICAgICAgICAgICAgIDwvYXgtdGFiLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvYXgtdGFicz5cclxuICAgICAgICAgICAgQGZvcihlIG9mIHZtLnJlbGF0ZWRFbnRpdGllcygpO3RyYWNrICRpbmRleDtsZXQgaW5kZXg9ICRpbmRleCl7XHJcbiAgICAgICAgICAgIDxkaXYgW2NsYXNzLmF4LWhpZGRlbl09XCIkaW5kZXghPXNlbGVjdGVkVGFiSW5kZXgoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGF4cC1lbnRpdHktZGV0YWlsLWxpc3QtdmlldyBbdmlld01vZGVsXT1cImVcIj48L2F4cC1lbnRpdHktZGV0YWlsLWxpc3Qtdmlldz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvYXgtY29udGVudD5cclxuPC9heC1kcmF3ZXItY29udGFpbmVyPiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLXNpbmdsZS12aWV3L2VudGl0eS1tYXN0ZXItc2luZ2xlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy9lbnRpdHktbWFzdGVyLXNpbmdsZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQXVCLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7Ozs7O0FBK0JoSCxNQUFNLE9BQU8sa0NBQWtDO0lBM0IvQztRQTRCWSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQixPQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsQ0FBQztRQUMvRixFQUFFO1FBQ00sVUFBSyxHQUFHLE1BQU0sQ0FBQyxDQUFBLEtBQTBCLENBQUEsQ0FBQyxDQUFDO1FBQ3pDLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLFdBQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRzdDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQVMxQztJQVBHLHNCQUFzQixDQUFDLENBQU07UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLENBQUM7OEdBakJRLGtDQUFrQztrR0FBbEMsa0NBQWtDLHdFQ2xEL0MsZ29UQXFLc0IsMkNEM0lkLFlBQVksbUZBQ1osWUFBWSwrUUFDWixpQkFBaUIsdVZBQ2pCLGdCQUFnQix3UEFDaEIsZUFBZSw4QkFDZixZQUFZLGtNQUNaLG1CQUFtQiw4QkFDbkIsY0FBYywySEFDZCxjQUFjLDhCQUNkLGVBQWUsOEJBQ2YsWUFBWSxrYUFDWixjQUFjLG9yQkFDZCxtQkFBbUI7Z0JBQ25CLEVBQUU7Z0JBQ0Ysc0JBQXNCLDBUQUN0QixnQkFBZ0IsK0JBQ2hCLGtCQUFrQixxTEFDbEIsc0JBQXNCO2dCQUN0QixFQUFFO2dCQUNGLGdDQUFnQzs7MkZBSzNCLGtDQUFrQztrQkEzQjlDLFNBQVM7OEJBRUc7d0JBQ0wsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixFQUFFO3dCQUNGLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsRUFBRTt3QkFDRixnQ0FBZ0M7cUJBQ25DLGNBQ1csSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhBY3Rpb25TaGVldE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hY3Rpb24tc2hlZXQnO1xyXG5pbXBvcnQgeyBBWEJyZWFkY3J1bWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JyZWFkY3J1bWJzJztcclxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcclxuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEFYRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFYRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RyYXdlcic7XHJcbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xyXG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XHJcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcclxuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xyXG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XHJcbmltcG9ydCB7IEFYUEFkbWluTGF5b3V0U3RhdGUsIEFYUFN0aWNreURpcmVjdGl2ZSwgZ2V0Q2hpbGREcmF3ZXIsIGlzU21hbGxTY3JlZW4gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xyXG5pbXBvcnQgeyBBWFBXaWRnZXRzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcclxuaW1wb3J0IHsgQVhQR3JpZExheW91dERpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcclxuaW1wb3J0IHsgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9lbnRpdHktZGV0YWlsLWxpc3Qtdmlldy9lbnRpdHktZGV0YWlsLWxpc3Qtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1tYXN0ZXItc2luZ2xlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICAgICAgQVhEZWNvcmF0b3JNb2R1bGUsXHJcbiAgICAgICAgQVhEcm9wZG93bk1vZHVsZSxcclxuICAgICAgICBBWFBvcG92ZXJNb2R1bGUsXHJcbiAgICAgICAgQVhGb3JtTW9kdWxlLFxyXG4gICAgICAgIEFYQWN0aW9uU2hlZXRNb2R1bGUsXHJcbiAgICAgICAgQVhEcmF3ZXJNb2R1bGUsXHJcbiAgICAgICAgQVhEaWFsb2dNb2R1bGUsXHJcbiAgICAgICAgQVhMb2FkaW5nTW9kdWxlLFxyXG4gICAgICAgIEFYVGFic01vZHVsZSxcclxuICAgICAgICBBWEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcclxuICAgICAgICBBWFBXaWRnZXRzTW9kdWxlLFxyXG4gICAgICAgIEFYUFN0aWNreURpcmVjdGl2ZSxcclxuICAgICAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3Q29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgYWN0aXZlUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZtID0gdGhpcy5hY3RpdmVSb3V0ZS5zbmFwc2hvdC5kYXRhWyd2bSddIGFzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbDtcclxuICAgIC8vXHJcbiAgICBwcml2YXRlIHN0b3JlID0gaW5qZWN0KFN0b3JlPEFYUEFkbWluTGF5b3V0U3RhdGU+KTtcclxuICAgIHByb3RlY3RlZCBpc1NNID0gdGhpcy5zdG9yZS5zZWxlY3QoaXNTbWFsbFNjcmVlbigpKTtcclxuICAgIHByb3RlY3RlZCBpc09wZW4gPSB0aGlzLnN0b3JlLnNlbGVjdChnZXRDaGlsZERyYXdlcigpKTtcclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkVGFiSW5kZXggPSBzaWduYWwoMCk7XHJcblxyXG4gICAgaGFuZGxlQWN0aXZlVGFiQ2hhbmdlZChlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiSW5kZXguc2V0KGUuaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudm0uZGVzdHJveSgpO1xyXG4gICAgfVxyXG59IiwiPGF4LWRyYXdlci1jb250YWluZXI+XHJcbiAgICA8IS0tIDxheC1kcmF3ZXIgI2RyYXdlciBsb2NhdGlvbj1cInN0YXJ0XCIgW2NvbGxhcHNlZF09XCIhKGlzT3BlbiB8IGFzeW5jKVwiIFttb2RlXT1cIiAoaXNTTSB8IGFzeW5jKSA/ICdvdmVybGF5JyA6ICdwdXNoJ1wiXHJcbiAgICAgICpuZ0lmPVwibG9hZGVyLmhhc1NlY3Rpb25zJCB8IGFzeW5jXCIgKGNvbGxhcHNlZENoYW5nZSk9XCJoYW5kbGVDb2xsYXBzZWRDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LWJvcmRlci1lIGF4LXAtNiBheC13LTY0XCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJheC10ZXh0LXhsIGF4LWZvbnQtYm9sZCBheC1tYi02XCI+e3tsb2FkZXIuc2VjdGlvblRpdGxlfX08L3A+XHJcbiAgICAgICAgPGF4LXRhYnMgbG9vaz1cIndpdGgtbGluZVwiIGxvY2F0aW9uPVwic3RhcnRcIj5cclxuICAgICAgICAgIEBmb3IodGFiIG9mIChsb2FkZXIuc2VjdGlvbnMkIHwgYXN5bmMpOyB0cmFjayB0YWIubmFtZSlcclxuICAgICAgICAgIHtcclxuICAgICAgICAgIDxheC10YWItaXRlbSBbdGV4dF09XCJ0YWIudGl0bGVcIiBbYWN0aXZlXT1cImlzQWN0aXZlKHRhYilcIiAob25DbGljayk9XCJoYW5kbGVNZW51Q2xpY2soJGV2ZW50LHRhYilcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZWRpdEZvcm0uY29udGV4dFwiPlxyXG4gICAgICAgICAgPC9heC10YWItaXRlbT5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2F4LXRhYnM+XHJcbiAgICAgIDwvYXgtY29udGVudD5cclxuICAgIDwvYXgtZHJhd2VyPiAtLT5cclxuICAgIDxheC1jb250ZW50ICNjb250ZW50IGNsYXNzPVwiYXgtb3ZlcmZsb3cteC1oaWRkZW5cIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1taW4taC1mdWxsIGF4LXB4LTQgYXgtcGItNCBtZDpheC1weC02IGF4LWJnLXN1cmZhY2UgICBheC1ib3JkZXItYiBtZDpheC1ib3JkZXItMCBtZDpheC1iZy1kZWZhdWx0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LXB0LTQgYXgtc3RpY2t5IGF4LXRvcC0wIGF4LXotMTAgYXgtdHJhbnNpdGlvbi1hbGxcIiAjc3RpY2t5PVwiYXhwU3RpY2t5XCJcclxuICAgICAgICAgICAgICAgIFtheHBTdGlja3ldPVwiJ2F4LWJnLXN1cmZhY2UgYXgtcHgtNiBheC1weS0zIC1heC1teC02IGF4LXNoYWRvdy14bCdcIiBbc3RpY2t5T2Zmc2V0XT1cIjUwXCJcclxuICAgICAgICAgICAgICAgIFtzdGlja3lQYXJlbnRdPVwiY29udGVudC5nZXRIb3N0RWxlbWVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIFRvb2xiYXIgIC0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gVGl0bGUgIC0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0xIGF4LWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMiBheC10cmFuc2l0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC14bCBtZDpheC10ZXh0LTN4bCBheC1mb250LWJvbGRcIj57eyB2bS50aXRsZSgpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZih2bS5kZXNjcmlwdGlvbigpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1uZXV0cmFsLTYwMFwiIFtjbGFzcy5heC1oaWRkZW5dPVwic3RpY2t5LmlzU3RpY2t5XCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bS5kZXNjcmlwdGlvbigpIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnJlYWRjcnVtYnMgY2xhc3M9XCJjaGlsZDpheC1mb250LW5vcm1hbCBjaGlsZDpheC10ZXh0LW5ldXRyYWwtNDAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtaGlkZGVuXT1cImlzU00gfCBhc3luY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaGV2cm9uLXJpZ2h0IGF4LXRleHQteHMgYXgtbXgtMlwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IoYiBvZiB2bS5iZWFyZGNydW1icygpO3RyYWNrICRpbmRleDtsZXQgbGFzdD0kbGFzdClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWJyZWFkY3J1bWJzLWl0ZW0gW2FjdGl2ZV09XCJsYXN0XCIgW2NsYXNzLiFheC1mb250LXNlbWlib2xkXT1cImxhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuIWF4LXRleHQtbmV1dHJhbC02MDBdPVwibGFzdFwiIFtyb3V0ZXJMaW5rXT1cImIudXJsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiLmljb24pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImIuaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2IudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtYnJlYWRjcnVtYnMtaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tLS0tLS0tIEZpbmlzaCBUaXRsZSAgLS0tLS0tLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBCZWdpbiBBY3Rpb24gTWVudSAgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IodHIgb2Ygdm0ucHJpbWFyeUFjdGlvbnMoKTt0cmFjayAkaW5kZXgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiBbdGV4dF09XCJ0ci50aXRsZVwiIFtjb2xvcl09XCJ0ci5jb2xvclwiIChvbkNsaWNrKT1cInZtLmV4ZWN1dGVDb21tYW5kKHRyLm5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cInRyLmljb25cIj4gPC9heC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZih2bS5zZWNvbmRhcnlBY3Rpb25zKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gW3RleHRdPVwiKGlzU00gfCBhc3luYykgPyBudWxsIDogJ0FjdGlvbnMnXCIgY29sb3I9XCJnaG9zdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWVsbGlwc2lzLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IodHIgb2Ygdm0uc2Vjb25kYXJ5QWN0aW9ucygpO3RyYWNrICRpbmRleClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHRyLnNlcGFyYXRlZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1kaXZpZGVyPjwvYXgtZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSBbdGV4dF09XCJ0ci50aXRsZVwiIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXt7dHIuY29sb3J9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidm0uZXhlY3V0ZUNvbW1hbmQodHIubmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJ0ci5pY29uXCI+IDwvYXgtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIEZpbmlzaCBBY3Rpb24gTWVudSAgLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0tLS0gRmluaXNoIFRvb2xiYXIgIC0tLS0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgICAgICAgICA8YXgtdGFicyBbbG9va109XCInY2xhc3NpYydcIiBjbGFzcz1cImF4LW10LTQgYXgtZm9udC1zZW1pYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxheC10YWItaXRlbSB0ZXh0PVwiT3ZlcnZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2F4LXRhYi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDxheC10YWItaXRlbSB0ZXh0PVwiSGlzdG9yeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXgtdGFiLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGF4LXRhYi1pdGVtIHRleHQ9XCJDb21tZW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXgtdGFiLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2F4LXRhYnM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIEJlZ2luIFNlY3Rpb25zIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCAgYXgtZ3JpZC1jb2xzLTEyICAgICBheC1nYXAtNFwiPlxyXG4gICAgICAgICAgICAgICAgQGZvcihzZWN0aW9uIG9mIHZtLnNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24ubmFtZSgpKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FyZCBheC1zaGFkb3ctbWQgYXgtbXQtMlwiIFtncmlkTGF5b3V0XT1cInNlY3Rpb24ubGF5b3V0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybSAjZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJ2bS5jb250ZXh0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkLWhlYWRlciAhYXgtcHktMiAhYXgtcHgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIiFheC10ZXh0LWxnIGF4LWZvbnQtc2VtaWJvbGQgXCI+e3sgc2VjdGlvbi50aXRsZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoc2VjdGlvbi5kZXNjcmlwdGlvbigpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC1zbSBheC1mb250LW5vcm1hbCBheC10ZXh0LWdyYXktNTAwXCI+e3sgc2VjdGlvbi5kZXNjcmlwdGlvbigpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoc2VjdGlvbi5lZGl0YWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXhzXCIgY29sb3I9XCJnaG9zdFwiIFtsb29rXT1cIidibGFuaydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJ2bS5leGVjdXRlQ29tbWFuZCgnbW9kaWZ5LWVudGl0eS1zZWN0aW9uJyxzZWN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLXBlbiBheC10ZXh0LWdyYXktNjAwXCI+IDwvYXgtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkLWJvZHkgIWF4LWdyaWQgICFheC1ncmlkLWNvbHMtMTIgICFheC1nYXAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IoYXR0ciBvZiBzZWN0aW9uLnByb3BzKCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0xXCIgW2dyaWRMYXlvdXRdPVwiYXR0ci5sYXlvdXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57eyBhdHRyLnRpdGxlKCkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LW5ldXRyYWwtNTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJhdHRyLm5vZGUoKVwiPiA8L2F4cC13aWRnZXQtcmVuZGVyZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4cC13aWRnZXRzLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gRmluaXNoIFNlY3Rpb25zICAtLT5cclxuICAgICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgICAgIEBpZih2bS5yZWxhdGVkRW50aXRpZXMoKS5sZW5ndGgpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgPGF4LXRhYnMgW2xvb2tdPVwiJ2RlZmF1bHQnXCIgY2xhc3M9XCJheC1tdC0yIGF4LWZvbnQtc2VtaWJvbGRcIiAjdGFiXHJcbiAgICAgICAgICAgICAgICAob25BY3RpdmVUYWJDaGFuZ2VkKT1cImhhbmRsZUFjdGl2ZVRhYkNoYW5nZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvcihlIG9mIHZtLnJlbGF0ZWRFbnRpdGllcygpO3RyYWNrICRpbmRleDtsZXQgaW5kZXg9ICRpbmRleCl7XHJcbiAgICAgICAgICAgICAgICA8YXgtdGFiLWl0ZW0gW3RleHRdPVwiZS50aXRsZSgpXCIgW2tleV09XCJpbmRleC50b1N0cmluZygpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2F4LXRhYi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2F4LXRhYnM+XHJcbiAgICAgICAgICAgIEBmb3IoZSBvZiB2bS5yZWxhdGVkRW50aXRpZXMoKTt0cmFjayAkaW5kZXg7bGV0IGluZGV4PSAkaW5kZXgpe1xyXG4gICAgICAgICAgICA8ZGl2IFtjbGFzcy5heC1oaWRkZW5dPVwiJGluZGV4IT1zZWxlY3RlZFRhYkluZGV4KClcIj5cclxuICAgICAgICAgICAgICAgIDxheHAtZW50aXR5LWRldGFpbC1saXN0LXZpZXcgW3ZpZXdNb2RlbF09XCJlXCI+PC9heHAtZW50aXR5LWRldGFpbC1saXN0LXZpZXc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2F4LWNvbnRlbnQ+XHJcbjwvYXgtZHJhd2VyLWNvbnRhaW5lcj4iXX0=