@agnos-ui/angular-bootstrap 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +2 -2
  2. package/agnos-ui-angular.module.d.ts +2 -1
  3. package/components/accordion/accordion.component.d.ts +40 -18
  4. package/components/accordion/accordion.gen.d.ts +37 -9
  5. package/components/alert/alert.component.d.ts +29 -17
  6. package/components/alert/alert.gen.d.ts +21 -2
  7. package/components/collapse/collapse.component.d.ts +79 -0
  8. package/components/collapse/collapse.gen.d.ts +146 -0
  9. package/components/collapse/index.d.ts +2 -0
  10. package/components/modal/modal.component.d.ts +13 -19
  11. package/components/modal/modal.gen.d.ts +35 -18
  12. package/components/modal/modal.service.d.ts +5 -1
  13. package/components/pagination/pagination.component.d.ts +20 -15
  14. package/components/pagination/pagination.gen.d.ts +49 -29
  15. package/components/progressbar/progressbar.component.d.ts +32 -16
  16. package/components/progressbar/progressbar.gen.d.ts +21 -4
  17. package/components/rating/rating.component.d.ts +11 -4
  18. package/components/rating/rating.gen.d.ts +25 -17
  19. package/components/select/select.component.d.ts +24 -4
  20. package/components/select/select.gen.d.ts +41 -25
  21. package/components/slider/slider.component.d.ts +32 -23
  22. package/components/slider/slider.gen.d.ts +54 -33
  23. package/components/toast/toast.component.d.ts +29 -17
  24. package/components/toast/toast.gen.d.ts +22 -2
  25. package/config.d.ts +16 -5
  26. package/config.gen.d.ts +5 -0
  27. package/esm2022/agnos-ui-angular.module.mjs +12 -5
  28. package/esm2022/components/accordion/accordion.component.mjs +165 -134
  29. package/esm2022/components/accordion/accordion.gen.mjs +1 -1
  30. package/esm2022/components/alert/alert.component.mjs +90 -65
  31. package/esm2022/components/alert/alert.gen.mjs +1 -1
  32. package/esm2022/components/collapse/collapse.component.mjs +89 -0
  33. package/esm2022/components/collapse/collapse.gen.mjs +15 -0
  34. package/esm2022/components/collapse/index.mjs +3 -0
  35. package/esm2022/components/modal/modal.component.mjs +111 -99
  36. package/esm2022/components/modal/modal.gen.mjs +1 -1
  37. package/esm2022/components/modal/modal.service.mjs +7 -5
  38. package/esm2022/components/pagination/pagination.component.mjs +138 -123
  39. package/esm2022/components/pagination/pagination.gen.mjs +1 -1
  40. package/esm2022/components/progressbar/progressbar.component.mjs +94 -55
  41. package/esm2022/components/progressbar/progressbar.gen.mjs +1 -1
  42. package/esm2022/components/rating/rating.component.mjs +41 -35
  43. package/esm2022/components/rating/rating.gen.mjs +1 -1
  44. package/esm2022/components/select/select.component.mjs +103 -118
  45. package/esm2022/components/select/select.gen.mjs +1 -1
  46. package/esm2022/components/slider/slider.component.mjs +126 -111
  47. package/esm2022/components/slider/slider.gen.mjs +1 -1
  48. package/esm2022/components/toast/toast.component.mjs +106 -81
  49. package/esm2022/components/toast/toast.gen.mjs +1 -1
  50. package/esm2022/config.gen.mjs +1 -1
  51. package/esm2022/config.mjs +17 -1
  52. package/esm2022/index.mjs +2 -1
  53. package/fesm2022/agnos-ui-angular-bootstrap.mjs +1085 -806
  54. package/fesm2022/agnos-ui-angular-bootstrap.mjs.map +1 -1
  55. package/index.d.ts +8 -7
  56. package/package.json +9 -8
@@ -1,56 +1,55 @@
1
- import { BaseWidgetDirective, ComponentTemplate, ContentAsSlotDirective, SlotDirective, UseDirective, auBooleanAttribute, useDirectiveForHost, } from '@agnos-ui/angular-headless';
1
+ import { BaseWidgetDirective, ComponentTemplate, SlotDirective, UseDirective, auBooleanAttribute, useDirectiveForHost, } from '@agnos-ui/angular-headless';
2
2
  import { NgTemplateOutlet } from '@angular/common';
3
3
  import { ChangeDetectionStrategy, Component, ContentChild, Directive, EventEmitter, Input, Output, TemplateRef, ViewChild, inject, } from '@angular/core';
4
4
  import { callWidgetFactory } from '../../config';
5
5
  import { createAccordion } from './accordion.gen';
6
- import { writable } from '@amadeus-it-group/tansu';
7
6
  import * as i0 from "@angular/core";
8
7
  const _c0 = ["structure"];
9
- const _c1 = (a0, a1) => ({ state: a0, widget: a1 });
8
+ const _c1 = (a0, a1, a2) => ({ state: a0, directives: a1, api: a2 });
10
9
  function AccordionItemDefaultSlotsComponent_ng_template_0_Case_0_Template(rf, ctx) { if (rf & 1) {
11
- i0.ɵɵelementContainer(0, 8);
10
+ i0.ɵɵelementContainer(0, 9);
12
11
  } if (rf & 2) {
13
12
  i0.ɵɵnextContext();
14
13
  const h1_r1 = i0.ɵɵreference(8);
15
14
  i0.ɵɵproperty("ngTemplateOutlet", h1_r1);
16
15
  } }
17
16
  function AccordionItemDefaultSlotsComponent_ng_template_0_Case_1_Template(rf, ctx) { if (rf & 1) {
18
- i0.ɵɵelementContainer(0, 8);
17
+ i0.ɵɵelementContainer(0, 9);
19
18
  } if (rf & 2) {
20
19
  i0.ɵɵnextContext();
21
20
  const h2_r2 = i0.ɵɵreference(10);
22
21
  i0.ɵɵproperty("ngTemplateOutlet", h2_r2);
23
22
  } }
24
23
  function AccordionItemDefaultSlotsComponent_ng_template_0_Case_2_Template(rf, ctx) { if (rf & 1) {
25
- i0.ɵɵelementContainer(0, 8);
24
+ i0.ɵɵelementContainer(0, 9);
26
25
  } if (rf & 2) {
27
26
  i0.ɵɵnextContext();
28
27
  const h3_r3 = i0.ɵɵreference(12);
29
28
  i0.ɵɵproperty("ngTemplateOutlet", h3_r3);
30
29
  } }
31
30
  function AccordionItemDefaultSlotsComponent_ng_template_0_Case_3_Template(rf, ctx) { if (rf & 1) {
32
- i0.ɵɵelementContainer(0, 8);
31
+ i0.ɵɵelementContainer(0, 9);
33
32
  } if (rf & 2) {
34
33
  i0.ɵɵnextContext();
35
34
  const h4_r4 = i0.ɵɵreference(14);
36
35
  i0.ɵɵproperty("ngTemplateOutlet", h4_r4);
37
36
  } }
38
37
  function AccordionItemDefaultSlotsComponent_ng_template_0_Case_4_Template(rf, ctx) { if (rf & 1) {
39
- i0.ɵɵelementContainer(0, 8);
38
+ i0.ɵɵelementContainer(0, 9);
40
39
  } if (rf & 2) {
41
40
  i0.ɵɵnextContext();
42
41
  const h5_r5 = i0.ɵɵreference(16);
43
42
  i0.ɵɵproperty("ngTemplateOutlet", h5_r5);
44
43
  } }
45
44
  function AccordionItemDefaultSlotsComponent_ng_template_0_Case_5_Template(rf, ctx) { if (rf & 1) {
46
- i0.ɵɵelementContainer(0, 8);
45
+ i0.ɵɵelementContainer(0, 9);
47
46
  } if (rf & 2) {
48
47
  i0.ɵɵnextContext();
49
48
  const h6_r6 = i0.ɵɵreference(18);
50
49
  i0.ɵɵproperty("ngTemplateOutlet", h6_r6);
51
50
  } }
52
51
  function AccordionItemDefaultSlotsComponent_ng_template_0_Case_6_Template(rf, ctx) { if (rf & 1) {
53
- i0.ɵɵelementContainer(0, 8);
52
+ i0.ɵɵelementContainer(0, 9);
54
53
  } if (rf & 2) {
55
54
  i0.ɵɵnextContext();
56
55
  const h2_r2 = i0.ɵɵreference(10);
@@ -58,181 +57,201 @@ function AccordionItemDefaultSlotsComponent_ng_template_0_Case_6_Template(rf, ct
58
57
  } }
59
58
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_7_ng_template_1_Template(rf, ctx) { }
60
59
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_7_Template(rf, ctx) { if (rf & 1) {
61
- i0.ɵɵelementStart(0, "h1", 10);
62
- i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_7_ng_template_1_Template, 0, 0, "ng-template", 8);
60
+ i0.ɵɵelementStart(0, "h1", 11);
61
+ i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_7_ng_template_1_Template, 0, 0, "ng-template", 9);
63
62
  i0.ɵɵelementEnd();
64
63
  } if (rf & 2) {
65
- const widget_r7 = i0.ɵɵnextContext().widget;
64
+ const directives_r7 = i0.ɵɵnextContext().directives;
66
65
  const button_r8 = i0.ɵɵreference(20);
67
- i0.ɵɵproperty("auUse", widget_r7.directives.headerDirective);
66
+ i0.ɵɵproperty("auUse", directives_r7.headerDirective);
68
67
  i0.ɵɵadvance();
69
68
  i0.ɵɵproperty("ngTemplateOutlet", button_r8);
70
69
  } }
71
70
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_9_ng_template_1_Template(rf, ctx) { }
72
71
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_9_Template(rf, ctx) { if (rf & 1) {
73
- i0.ɵɵelementStart(0, "h2", 10);
74
- i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_9_ng_template_1_Template, 0, 0, "ng-template", 8);
72
+ i0.ɵɵelementStart(0, "h2", 11);
73
+ i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_9_ng_template_1_Template, 0, 0, "ng-template", 9);
75
74
  i0.ɵɵelementEnd();
76
75
  } if (rf & 2) {
77
- const widget_r7 = i0.ɵɵnextContext().widget;
76
+ const directives_r7 = i0.ɵɵnextContext().directives;
78
77
  const button_r8 = i0.ɵɵreference(20);
79
- i0.ɵɵproperty("auUse", widget_r7.directives.headerDirective);
78
+ i0.ɵɵproperty("auUse", directives_r7.headerDirective);
80
79
  i0.ɵɵadvance();
81
80
  i0.ɵɵproperty("ngTemplateOutlet", button_r8);
82
81
  } }
83
82
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_11_ng_template_1_Template(rf, ctx) { }
84
83
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_11_Template(rf, ctx) { if (rf & 1) {
85
- i0.ɵɵelementStart(0, "h3", 10);
86
- i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_11_ng_template_1_Template, 0, 0, "ng-template", 8);
84
+ i0.ɵɵelementStart(0, "h3", 11);
85
+ i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_11_ng_template_1_Template, 0, 0, "ng-template", 9);
87
86
  i0.ɵɵelementEnd();
88
87
  } if (rf & 2) {
89
- const widget_r7 = i0.ɵɵnextContext().widget;
88
+ const directives_r7 = i0.ɵɵnextContext().directives;
90
89
  const button_r8 = i0.ɵɵreference(20);
91
- i0.ɵɵproperty("auUse", widget_r7.directives.headerDirective);
90
+ i0.ɵɵproperty("auUse", directives_r7.headerDirective);
92
91
  i0.ɵɵadvance();
93
92
  i0.ɵɵproperty("ngTemplateOutlet", button_r8);
94
93
  } }
95
94
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_13_ng_template_1_Template(rf, ctx) { }
96
95
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_13_Template(rf, ctx) { if (rf & 1) {
97
- i0.ɵɵelementStart(0, "h4", 10);
98
- i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_13_ng_template_1_Template, 0, 0, "ng-template", 8);
96
+ i0.ɵɵelementStart(0, "h4", 11);
97
+ i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_13_ng_template_1_Template, 0, 0, "ng-template", 9);
99
98
  i0.ɵɵelementEnd();
100
99
  } if (rf & 2) {
101
- const widget_r7 = i0.ɵɵnextContext().widget;
100
+ const directives_r7 = i0.ɵɵnextContext().directives;
102
101
  const button_r8 = i0.ɵɵreference(20);
103
- i0.ɵɵproperty("auUse", widget_r7.directives.headerDirective);
102
+ i0.ɵɵproperty("auUse", directives_r7.headerDirective);
104
103
  i0.ɵɵadvance();
105
104
  i0.ɵɵproperty("ngTemplateOutlet", button_r8);
106
105
  } }
107
106
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_15_ng_template_1_Template(rf, ctx) { }
108
107
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_15_Template(rf, ctx) { if (rf & 1) {
109
- i0.ɵɵelementStart(0, "h5", 10);
110
- i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_15_ng_template_1_Template, 0, 0, "ng-template", 8);
108
+ i0.ɵɵelementStart(0, "h5", 11);
109
+ i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_15_ng_template_1_Template, 0, 0, "ng-template", 9);
111
110
  i0.ɵɵelementEnd();
112
111
  } if (rf & 2) {
113
- const widget_r7 = i0.ɵɵnextContext().widget;
112
+ const directives_r7 = i0.ɵɵnextContext().directives;
114
113
  const button_r8 = i0.ɵɵreference(20);
115
- i0.ɵɵproperty("auUse", widget_r7.directives.headerDirective);
114
+ i0.ɵɵproperty("auUse", directives_r7.headerDirective);
116
115
  i0.ɵɵadvance();
117
116
  i0.ɵɵproperty("ngTemplateOutlet", button_r8);
118
117
  } }
119
118
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_17_ng_template_1_Template(rf, ctx) { }
120
119
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_17_Template(rf, ctx) { if (rf & 1) {
121
- i0.ɵɵelementStart(0, "h6", 10);
122
- i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_17_ng_template_1_Template, 0, 0, "ng-template", 8);
120
+ i0.ɵɵelementStart(0, "h6", 11);
121
+ i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_17_ng_template_1_Template, 0, 0, "ng-template", 9);
123
122
  i0.ɵɵelementEnd();
124
123
  } if (rf & 2) {
125
- const widget_r7 = i0.ɵɵnextContext().widget;
124
+ const directives_r7 = i0.ɵɵnextContext().directives;
126
125
  const button_r8 = i0.ɵɵreference(20);
127
- i0.ɵɵproperty("auUse", widget_r7.directives.headerDirective);
126
+ i0.ɵɵproperty("auUse", directives_r7.headerDirective);
128
127
  i0.ɵɵadvance();
129
128
  i0.ɵɵproperty("ngTemplateOutlet", button_r8);
130
129
  } }
131
130
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_19_ng_template_1_Template(rf, ctx) { }
132
131
  function AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_19_Template(rf, ctx) { if (rf & 1) {
133
- i0.ɵɵelementStart(0, "button", 11);
134
- i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_19_ng_template_1_Template, 0, 0, "ng-template", 12);
132
+ i0.ɵɵelementStart(0, "button", 12);
133
+ i0.ɵɵtemplate(1, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_19_ng_template_1_Template, 0, 0, "ng-template", 13);
135
134
  i0.ɵɵelementEnd();
136
135
  } if (rf & 2) {
137
136
  const ctx_r8 = i0.ɵɵnextContext();
138
137
  const state_r10 = ctx_r8.state;
139
- const widget_r7 = ctx_r8.widget;
140
- i0.ɵɵproperty("auUse", widget_r7.directives.buttonDirective);
138
+ const api_r11 = ctx_r8.api;
139
+ const directives_r7 = ctx_r8.directives;
140
+ i0.ɵɵproperty("auUse", directives_r7.buttonDirective);
141
141
  i0.ɵɵadvance();
142
- i0.ɵɵproperty("auSlotProps", i0.ɵɵpureFunction2(3, _c1, state_r10, widget_r7))("auSlot", state_r10.header);
142
+ i0.ɵɵproperty("auSlotProps", i0.ɵɵpureFunction3(3, _c1, state_r10, directives_r7, api_r11))("auSlot", state_r10.header());
143
143
  } }
144
144
  function AccordionItemDefaultSlotsComponent_ng_template_0_Conditional_21_ng_template_2_Template(rf, ctx) { }
145
145
  function AccordionItemDefaultSlotsComponent_ng_template_0_Conditional_21_Template(rf, ctx) { if (rf & 1) {
146
- i0.ɵɵelementStart(0, "div", 9)(1, "div", 13);
147
- i0.ɵɵtemplate(2, AccordionItemDefaultSlotsComponent_ng_template_0_Conditional_21_ng_template_2_Template, 0, 0, "ng-template", 12);
146
+ i0.ɵɵelementStart(0, "div", 10)(1, "div", 14);
147
+ i0.ɵɵtemplate(2, AccordionItemDefaultSlotsComponent_ng_template_0_Conditional_21_ng_template_2_Template, 0, 0, "ng-template", 13);
148
148
  i0.ɵɵelementEnd()();
149
149
  } if (rf & 2) {
150
150
  const ctx_r8 = i0.ɵɵnextContext();
151
151
  const state_r10 = ctx_r8.state;
152
- const widget_r7 = ctx_r8.widget;
153
- i0.ɵɵproperty("auUse", widget_r7.directives.bodyContainerDirective);
152
+ const api_r11 = ctx_r8.api;
153
+ const directives_r7 = ctx_r8.directives;
154
+ i0.ɵɵproperty("auUse", directives_r7.bodyContainerDirective);
154
155
  i0.ɵɵadvance();
155
- i0.ɵɵproperty("auUse", widget_r7.directives.bodyDirective);
156
+ i0.ɵɵproperty("auUse", directives_r7.bodyDirective);
156
157
  i0.ɵɵadvance();
157
- i0.ɵɵproperty("auSlotProps", i0.ɵɵpureFunction2(4, _c1, state_r10, widget_r7))("auSlot", state_r10.children);
158
+ i0.ɵɵproperty("auSlotProps", i0.ɵɵpureFunction3(4, _c1, state_r10, directives_r7, api_r11))("auSlot", state_r10.children());
158
159
  } }
159
160
  function AccordionItemDefaultSlotsComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
160
- i0.ɵɵtemplate(0, AccordionItemDefaultSlotsComponent_ng_template_0_Case_0_Template, 1, 1, "ng-container", 8)(1, AccordionItemDefaultSlotsComponent_ng_template_0_Case_1_Template, 1, 1, "ng-container", 8)(2, AccordionItemDefaultSlotsComponent_ng_template_0_Case_2_Template, 1, 1, "ng-container", 8)(3, AccordionItemDefaultSlotsComponent_ng_template_0_Case_3_Template, 1, 1, "ng-container", 8)(4, AccordionItemDefaultSlotsComponent_ng_template_0_Case_4_Template, 1, 1, "ng-container", 8)(5, AccordionItemDefaultSlotsComponent_ng_template_0_Case_5_Template, 1, 1, "ng-container", 8)(6, AccordionItemDefaultSlotsComponent_ng_template_0_Case_6_Template, 1, 1, "ng-container", 8)(7, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_7_Template, 2, 2, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(9, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_9_Template, 2, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(11, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_11_Template, 2, 2, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor)(13, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_13_Template, 2, 2, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor)(15, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_15_Template, 2, 2, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor)(17, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_17_Template, 2, 2, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor)(19, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_19_Template, 2, 6, "ng-template", null, 7, i0.ɵɵtemplateRefExtractor)(21, AccordionItemDefaultSlotsComponent_ng_template_0_Conditional_21_Template, 3, 7, "div", 9);
161
+ i0.ɵɵtemplate(0, AccordionItemDefaultSlotsComponent_ng_template_0_Case_0_Template, 1, 1, "ng-container", 9)(1, AccordionItemDefaultSlotsComponent_ng_template_0_Case_1_Template, 1, 1, "ng-container", 9)(2, AccordionItemDefaultSlotsComponent_ng_template_0_Case_2_Template, 1, 1, "ng-container", 9)(3, AccordionItemDefaultSlotsComponent_ng_template_0_Case_3_Template, 1, 1, "ng-container", 9)(4, AccordionItemDefaultSlotsComponent_ng_template_0_Case_4_Template, 1, 1, "ng-container", 9)(5, AccordionItemDefaultSlotsComponent_ng_template_0_Case_5_Template, 1, 1, "ng-container", 9)(6, AccordionItemDefaultSlotsComponent_ng_template_0_Case_6_Template, 1, 1, "ng-container", 9)(7, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_7_Template, 2, 2, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(9, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_9_Template, 2, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(11, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_11_Template, 2, 2, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor)(13, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_13_Template, 2, 2, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor)(15, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_15_Template, 2, 2, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor)(17, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_17_Template, 2, 2, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor)(19, AccordionItemDefaultSlotsComponent_ng_template_0_ng_template_19_Template, 2, 7, "ng-template", null, 7, i0.ɵɵtemplateRefExtractor)(21, AccordionItemDefaultSlotsComponent_ng_template_0_Conditional_21_Template, 3, 8, "div", 10);
161
162
  } if (rf & 2) {
162
- let tmp_11_0;
163
+ let tmp_12_0;
163
164
  const state_r10 = ctx.state;
164
- i0.ɵɵconditional((tmp_11_0 = state_r10.itemHeadingTag) === "h1" ? 0 : tmp_11_0 === "h2" ? 1 : tmp_11_0 === "h3" ? 2 : tmp_11_0 === "h4" ? 3 : tmp_11_0 === "h5" ? 4 : tmp_11_0 === "h6" ? 5 : 6);
165
+ i0.ɵɵconditional((tmp_12_0 = state_r10.headingTag()) === "h1" ? 0 : tmp_12_0 === "h2" ? 1 : tmp_12_0 === "h3" ? 2 : tmp_12_0 === "h4" ? 3 : tmp_12_0 === "h5" ? 4 : tmp_12_0 === "h6" ? 5 : 6);
165
166
  i0.ɵɵadvance(21);
166
- i0.ɵɵconditional(state_r10.shouldBeInDOM ? 21 : -1);
167
+ i0.ɵɵconditional(state_r10.shouldBeInDOM() ? 21 : -1);
167
168
  } }
168
- const _c2 = ["auAccordionItem", ""];
169
- const _c3 = ["*"];
169
+ const _c2 = ["content"];
170
+ const _c3 = ["auAccordionItem", ""];
171
+ const _c4 = ["*"];
172
+ const _c5 = (a0, a1, a2) => ({ state: a0, api: a1, directives: a2 });
170
173
  function AccordionItemComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
171
174
  i0.ɵɵprojection(0);
172
175
  } }
173
- function AccordionItemComponent_ng_template_1_Template(rf, ctx) { }
176
+ function AccordionItemComponent_ng_template_2_Template(rf, ctx) { }
177
+ /**
178
+ * Directive to represent the body of an accordion item.
179
+ *
180
+ * This directive provides a template reference for the {@link AccordionItemContext}.
181
+ */
174
182
  export class AccordionBodyDirective {
175
183
  constructor() {
176
184
  this.templateRef = inject((TemplateRef));
177
185
  }
178
- static ngTemplateContextGuard(dir, context) {
186
+ static ngTemplateContextGuard(_dir, context) {
179
187
  return true;
180
188
  }
181
- static { this.ɵfac = function AccordionBodyDirective_Factory(t) { return new (t || AccordionBodyDirective)(); }; }
189
+ static { this.ɵfac = function AccordionBodyDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccordionBodyDirective)(); }; }
182
190
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AccordionBodyDirective, selectors: [["ng-template", "auAccordionItemBody", ""]], standalone: true }); }
183
191
  }
184
192
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionBodyDirective, [{
185
193
  type: Directive,
186
194
  args: [{ selector: 'ng-template[auAccordionItemBody]', standalone: true }]
187
195
  }], null, null); })();
196
+ /**
197
+ * Directive to be used as an accordion header.
198
+ *
199
+ * This directive provides a template reference for the {@link AccordionItemContext}.
200
+ */
188
201
  export class AccordionHeaderDirective {
189
202
  constructor() {
190
203
  this.templateRef = inject((TemplateRef));
191
204
  }
192
- static ngTemplateContextGuard(dir, context) {
205
+ static ngTemplateContextGuard(_dir, context) {
193
206
  return true;
194
207
  }
195
- static { this.ɵfac = function AccordionHeaderDirective_Factory(t) { return new (t || AccordionHeaderDirective)(); }; }
208
+ static { this.ɵfac = function AccordionHeaderDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccordionHeaderDirective)(); }; }
196
209
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AccordionHeaderDirective, selectors: [["ng-template", "auAccordionItemHeader", ""]], standalone: true }); }
197
210
  }
198
211
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionHeaderDirective, [{
199
212
  type: Directive,
200
213
  args: [{ selector: 'ng-template[auAccordionItemHeader]', standalone: true }]
201
214
  }], null, null); })();
215
+ /**
216
+ * Directive that represents the structure of an accordion item.
217
+ *
218
+ * This directive provides a template reference for the {@link AccordionItemContext}.
219
+ * It also includes a static method to guard the template context type.
220
+ */
202
221
  export class AccordionItemStructureDirective {
203
222
  constructor() {
204
223
  this.templateRef = inject((TemplateRef));
205
224
  }
206
- static ngTemplateContextGuard(dir, context) {
225
+ static ngTemplateContextGuard(_dir, context) {
207
226
  return true;
208
227
  }
209
- static { this.ɵfac = function AccordionItemStructureDirective_Factory(t) { return new (t || AccordionItemStructureDirective)(); }; }
228
+ static { this.ɵfac = function AccordionItemStructureDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccordionItemStructureDirective)(); }; }
210
229
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AccordionItemStructureDirective, selectors: [["ng-template", "auAccordionItemStructure", ""]], standalone: true }); }
211
230
  }
212
231
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionItemStructureDirective, [{
213
232
  type: Directive,
214
233
  args: [{ selector: 'ng-template[auAccordionItemStructure]', standalone: true }]
215
234
  }], null, null); })();
216
- export class AccordionItemDefaultSlotsComponent {
217
- static { this.ɵfac = function AccordionItemDefaultSlotsComponent_Factory(t) { return new (t || AccordionItemDefaultSlotsComponent)(); }; }
235
+ class AccordionItemDefaultSlotsComponent {
236
+ static { this.ɵfac = function AccordionItemDefaultSlotsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccordionItemDefaultSlotsComponent)(); }; }
218
237
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionItemDefaultSlotsComponent, selectors: [["ng-component"]], viewQuery: function AccordionItemDefaultSlotsComponent_Query(rf, ctx) { if (rf & 1) {
219
238
  i0.ɵɵviewQuery(_c0, 7);
220
239
  } if (rf & 2) {
221
240
  let _t;
222
241
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.structure = _t.first);
223
- } }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 2, vars: 0, consts: [["structure", ""], ["h1", ""], ["h2", ""], ["h3", ""], ["h4", ""], ["h5", ""], ["h6", ""], ["button", ""], [3, "ngTemplateOutlet"], [1, "accordion-collapse", 3, "auUse"], [1, "accordion-header", 3, "auUse"], [1, "accordion-button", 3, "auUse"], [3, "auSlotProps", "auSlot"], [1, "accordion-body", 3, "auUse"]], template: function AccordionItemDefaultSlotsComponent_Template(rf, ctx) { if (rf & 1) {
224
- i0.ɵɵtemplate(0, AccordionItemDefaultSlotsComponent_ng_template_0_Template, 22, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
225
- } }, dependencies: [UseDirective, SlotDirective, NgTemplateOutlet], encapsulation: 2, changeDetection: 0 }); }
242
+ } }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 2, vars: 0, consts: [["structure", ""], ["h1", ""], ["h2", ""], ["h3", ""], ["h4", ""], ["h5", ""], ["h6", ""], ["button", ""], ["auAccordionItemStructure", ""], [3, "ngTemplateOutlet"], [1, "accordion-collapse", 3, "auUse"], [1, "accordion-header", 3, "auUse"], [1, "accordion-button", 3, "auUse"], [3, "auSlotProps", "auSlot"], [1, "accordion-body", 3, "auUse"]], template: function AccordionItemDefaultSlotsComponent_Template(rf, ctx) { if (rf & 1) {
243
+ i0.ɵɵtemplate(0, AccordionItemDefaultSlotsComponent_ng_template_0_Template, 22, 2, "ng-template", 8, 0, i0.ɵɵtemplateRefExtractor);
244
+ } }, dependencies: [UseDirective, SlotDirective, NgTemplateOutlet, AccordionItemStructureDirective], encapsulation: 2, changeDetection: 0 }); }
226
245
  }
227
246
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionItemDefaultSlotsComponent, [{
228
247
  type: Component,
229
248
  args: [{
230
249
  standalone: true,
231
250
  changeDetection: ChangeDetectionStrategy.OnPush,
232
- imports: [UseDirective, SlotDirective, AccordionHeaderDirective, AccordionBodyDirective, NgTemplateOutlet],
251
+ imports: [UseDirective, SlotDirective, NgTemplateOutlet, AccordionItemStructureDirective],
233
252
  template: `
234
- <ng-template #structure let-state="state" let-widget="widget">
235
- @switch (state.itemHeadingTag) {
253
+ <ng-template auAccordionItemStructure #structure let-state="state" let-api="api" let-directives="directives">
254
+ @switch (state.headingTag()) {
236
255
  @case ('h1') {
237
256
  <ng-container [ngTemplateOutlet]="h1"></ng-container>
238
257
  }
@@ -257,49 +276,49 @@ export class AccordionItemDefaultSlotsComponent {
257
276
  }
258
277
 
259
278
  <ng-template #h1>
260
- <h1 class="accordion-header" [auUse]="widget.directives.headerDirective">
279
+ <h1 class="accordion-header" [auUse]="directives.headerDirective">
261
280
  <ng-template [ngTemplateOutlet]="button"></ng-template>
262
281
  </h1>
263
282
  </ng-template>
264
283
 
265
284
  <ng-template #h2>
266
- <h2 class="accordion-header" [auUse]="widget.directives.headerDirective">
285
+ <h2 class="accordion-header" [auUse]="directives.headerDirective">
267
286
  <ng-template [ngTemplateOutlet]="button"></ng-template>
268
287
  </h2>
269
288
  </ng-template>
270
289
 
271
290
  <ng-template #h3>
272
- <h3 class="accordion-header" [auUse]="widget.directives.headerDirective">
291
+ <h3 class="accordion-header" [auUse]="directives.headerDirective">
273
292
  <ng-template [ngTemplateOutlet]="button"></ng-template>
274
293
  </h3>
275
294
  </ng-template>
276
295
 
277
296
  <ng-template #h4>
278
- <h4 class="accordion-header" [auUse]="widget.directives.headerDirective">
297
+ <h4 class="accordion-header" [auUse]="directives.headerDirective">
279
298
  <ng-template [ngTemplateOutlet]="button"></ng-template>
280
299
  </h4>
281
300
  </ng-template>
282
301
 
283
302
  <ng-template #h5>
284
- <h5 class="accordion-header" [auUse]="widget.directives.headerDirective">
303
+ <h5 class="accordion-header" [auUse]="directives.headerDirective">
285
304
  <ng-template [ngTemplateOutlet]="button"></ng-template>
286
305
  </h5>
287
306
  </ng-template>
288
307
  <ng-template #h6>
289
- <h6 class="accordion-header" [auUse]="widget.directives.headerDirective">
308
+ <h6 class="accordion-header" [auUse]="directives.headerDirective">
290
309
  <ng-template [ngTemplateOutlet]="button"></ng-template>
291
310
  </h6>
292
311
  </ng-template>
293
312
 
294
313
  <ng-template #button>
295
- <button class="accordion-button " [auUse]="widget.directives.buttonDirective">
296
- <ng-template [auSlotProps]="{state, widget}" [auSlot]="state.header"></ng-template>
314
+ <button class="accordion-button " [auUse]="directives.buttonDirective">
315
+ <ng-template [auSlotProps]="{state, directives, api}" [auSlot]="state.header()"></ng-template>
297
316
  </button>
298
317
  </ng-template>
299
- @if (state.shouldBeInDOM) {
300
- <div [auUse]="widget.directives.bodyContainerDirective" class="accordion-collapse">
301
- <div class="accordion-body" [auUse]="widget.directives.bodyDirective">
302
- <ng-template [auSlotProps]="{state, widget}" [auSlot]="state.children"></ng-template>
318
+ @if (state.shouldBeInDOM()) {
319
+ <div [auUse]="directives.bodyContainerDirective" class="accordion-collapse">
320
+ <div class="accordion-body" [auUse]="directives.bodyDirective">
321
+ <ng-template [auSlotProps]="{state, directives, api}" [auSlot]="state.children()"></ng-template>
303
322
  </div>
304
323
  </div>
305
324
  }
@@ -310,14 +329,36 @@ export class AccordionItemDefaultSlotsComponent {
310
329
  type: ViewChild,
311
330
  args: ['structure', { static: true }]
312
331
  }] }); })();
313
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionItemDefaultSlotsComponent, { className: "AccordionItemDefaultSlotsComponent", filePath: "components/accordion/accordion.component.ts", lineNumber: 134 }); })();
314
- export const accordionItemDefaultSlotItemStructure = new ComponentTemplate(AccordionItemDefaultSlotsComponent, 'structure');
315
- const defaultConfig = {
316
- structure: accordionItemDefaultSlotItemStructure,
317
- };
332
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionItemDefaultSlotsComponent, { className: "AccordionItemDefaultSlotsComponent", filePath: "components/accordion/accordion.component.ts", lineNumber: 148 }); })();
333
+ /**
334
+ * Represents the default slot structure for an accordion item.
335
+ */
336
+ export const accordionItemDefaultSlotStructure = new ComponentTemplate(AccordionItemDefaultSlotsComponent, 'structure');
337
+ /**
338
+ * AccordionItemComponent is a component that represents an item within an accordion.
339
+ */
318
340
  export class AccordionItemComponent extends BaseWidgetDirective {
319
341
  constructor() {
320
- super(...arguments);
342
+ super(callWidgetFactory({
343
+ factory: (arg) => inject(AccordionDirective).api.registerItem(arg),
344
+ defaultConfig: {
345
+ structure: accordionItemDefaultSlotStructure,
346
+ },
347
+ events: {
348
+ onVisibleChange: (visible) => this.visibleChange.emit(visible),
349
+ onHidden: () => this.hidden.emit(),
350
+ onShown: () => this.shown.emit(),
351
+ },
352
+ afterInit: (widget) => {
353
+ useDirectiveForHost(widget.directives.itemDirective);
354
+ },
355
+ slotTemplates: () => ({
356
+ structure: this.slotStructureFromContent?.templateRef,
357
+ header: this.slotHeaderFromContent?.templateRef,
358
+ children: this.slotBodyFromContent?.templateRef,
359
+ }),
360
+ slotChildren: () => this.slotChildren,
361
+ }));
321
362
  /**
322
363
  * An event fired when an item is shown.
323
364
  */
@@ -332,32 +373,11 @@ export class AccordionItemComponent extends BaseWidgetDirective {
332
373
  * Event payload is the new value of visible.
333
374
  */
334
375
  this.visibleChange = new EventEmitter();
335
- this.ad = inject(AccordionDirective);
336
- this.defaultSlots = writable(defaultConfig);
337
- this._widget = callWidgetFactory({
338
- factory: ((arg) => this.ad.api.registerItem(arg)),
339
- defaultConfig: this.defaultSlots,
340
- events: {
341
- onVisibleChange: (visible) => this.visibleChange.emit(visible),
342
- onHidden: () => this.hidden.emit(),
343
- onShown: () => this.shown.emit(),
344
- },
345
- afterInit: () => {
346
- useDirectiveForHost(this._widget.directives.itemDirective);
347
- },
348
- });
349
- }
350
- ngAfterContentChecked() {
351
- this._widget.patchSlots({
352
- structure: this.slotStructureFromContent?.templateRef,
353
- header: this.slotHeaderFromContent?.templateRef,
354
- children: this.slotBodyFromContent?.templateRef,
355
- });
356
376
  }
357
377
  ngAfterViewInit() {
358
378
  queueMicrotask(() => this.api.initDone());
359
379
  }
360
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵAccordionItemComponent_BaseFactory; return function AccordionItemComponent_Factory(t) { return (ɵAccordionItemComponent_BaseFactory || (ɵAccordionItemComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionItemComponent)))(t || AccordionItemComponent); }; })(); }
380
+ static { this.ɵfac = function AccordionItemComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccordionItemComponent)(); }; }
361
381
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionItemComponent, selectors: [["", "auAccordionItem", ""]], contentQueries: function AccordionItemComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
362
382
  i0.ɵɵcontentQuery(dirIndex, AccordionHeaderDirective, 5);
363
383
  i0.ɵɵcontentQuery(dirIndex, AccordionBodyDirective, 5);
@@ -367,14 +387,18 @@ export class AccordionItemComponent extends BaseWidgetDirective {
367
387
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotHeaderFromContent = _t.first);
368
388
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotBodyFromContent = _t.first);
369
389
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotStructureFromContent = _t.first);
370
- } }, hostAttrs: [1, "accordion-item"], inputs: { header: [0, "auHeader", "header"], children: [0, "auChildren", "children"], structure: [0, "auStructure", "structure"], id: [0, "auId", "id"], transition: [0, "auTransition", "transition"], className: [0, "auClassName", "className"], destroyOnHide: [2, "auDestroyOnHide", "destroyOnHide", auBooleanAttribute], disabled: [2, "auDisabled", "disabled", auBooleanAttribute], visible: [2, "auVisible", "visible", auBooleanAttribute], animated: [2, "auAnimated", "animated", auBooleanAttribute], headerClassName: [0, "auHeaderClassName", "headerClassName"], buttonClassName: [0, "auButtonClassName", "buttonClassName"], bodyContainerClassName: [0, "auBodyContainerClassName", "bodyContainerClassName"], bodyClassName: [0, "auBodyClassName", "bodyClassName"], headingTag: [0, "auHeadingTag", "headingTag"] }, outputs: { shown: "auShown", hidden: "auHidden", visibleChange: "auVisibleChange" }, exportAs: ["auAccordionItem"], standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c2, ngContentSelectors: _c3, decls: 2, vars: 6, consts: [[3, "auContentAsSlot"], [3, "auSlotProps", "auSlot"]], template: function AccordionItemComponent_Template(rf, ctx) { if (rf & 1) {
390
+ } }, viewQuery: function AccordionItemComponent_Query(rf, ctx) { if (rf & 1) {
391
+ i0.ɵɵviewQuery(_c2, 7);
392
+ } if (rf & 2) {
393
+ let _t;
394
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotChildren = _t.first);
395
+ } }, hostAttrs: [1, "accordion-item"], inputs: { header: [0, "auHeader", "header"], children: [0, "auChildren", "children"], structure: [0, "auStructure", "structure"], id: [0, "auId", "id"], transition: [0, "auTransition", "transition"], className: [0, "auClassName", "className"], destroyOnHide: [2, "auDestroyOnHide", "destroyOnHide", auBooleanAttribute], disabled: [2, "auDisabled", "disabled", auBooleanAttribute], visible: [2, "auVisible", "visible", auBooleanAttribute], animated: [2, "auAnimated", "animated", auBooleanAttribute], headerClassName: [0, "auHeaderClassName", "headerClassName"], buttonClassName: [0, "auButtonClassName", "buttonClassName"], bodyContainerClassName: [0, "auBodyContainerClassName", "bodyContainerClassName"], bodyClassName: [0, "auBodyClassName", "bodyClassName"], headingTag: [0, "auHeadingTag", "headingTag"] }, outputs: { shown: "auShown", hidden: "auHidden", visibleChange: "auVisibleChange" }, exportAs: ["auAccordionItem"], standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c3, ngContentSelectors: _c4, decls: 3, vars: 6, consts: [["content", ""], [3, "auSlotProps", "auSlot"]], template: function AccordionItemComponent_Template(rf, ctx) { if (rf & 1) {
371
396
  i0.ɵɵprojectionDef();
372
- i0.ɵɵtemplate(0, AccordionItemComponent_ng_template_0_Template, 1, 0, "ng-template", 0)(1, AccordionItemComponent_ng_template_1_Template, 0, 0, "ng-template", 1);
397
+ i0.ɵɵtemplate(0, AccordionItemComponent_ng_template_0_Template, 1, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(2, AccordionItemComponent_ng_template_2_Template, 0, 0, "ng-template", 1);
373
398
  } if (rf & 2) {
374
- i0.ɵɵproperty("auContentAsSlot", ctx.defaultSlots);
375
- i0.ɵɵadvance();
376
- i0.ɵɵproperty("auSlotProps", i0.ɵɵpureFunction2(3, _c1, ctx.state(), ctx.widget))("auSlot", ctx.state().structure);
377
- } }, dependencies: [SlotDirective, ContentAsSlotDirective], encapsulation: 2, changeDetection: 0 }); }
399
+ i0.ɵɵadvance(2);
400
+ i0.ɵɵproperty("auSlotProps", i0.ɵɵpureFunction3(2, _c5, ctx.state, ctx.api, ctx.directives))("auSlot", ctx.state.structure());
401
+ } }, dependencies: [SlotDirective], encapsulation: 2, changeDetection: 0 }); }
378
402
  }
379
403
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionItemComponent, [{
380
404
  type: Component,
@@ -386,15 +410,13 @@ export class AccordionItemComponent extends BaseWidgetDirective {
386
410
  host: {
387
411
  class: 'accordion-item',
388
412
  },
389
- imports: [SlotDirective, UseDirective, ContentAsSlotDirective],
413
+ imports: [SlotDirective, UseDirective],
390
414
  template: `
391
- <ng-template [auContentAsSlot]="defaultSlots">
392
- <ng-content></ng-content>
393
- </ng-template>
394
- <ng-template [auSlotProps]="{state: state(), widget}" [auSlot]="state().structure"></ng-template>
415
+ <ng-template #content><ng-content></ng-content></ng-template>
416
+ <ng-template [auSlotProps]="{state, api, directives}" [auSlot]="state.structure()"></ng-template>
395
417
  `,
396
418
  }]
397
- }], null, { header: [{
419
+ }], () => [], { header: [{
398
420
  type: Input,
399
421
  args: ['auHeader']
400
422
  }], slotHeaderFromContent: [{
@@ -457,11 +479,31 @@ export class AccordionItemComponent extends BaseWidgetDirective {
457
479
  }], visibleChange: [{
458
480
  type: Output,
459
481
  args: ['auVisibleChange']
482
+ }], slotChildren: [{
483
+ type: ViewChild,
484
+ args: ['content', { static: true }]
460
485
  }] }); })();
461
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionItemComponent, { className: "AccordionItemComponent", filePath: "components/accordion/accordion.component.ts", lineNumber: 159 }); })();
486
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionItemComponent, { className: "AccordionItemComponent", filePath: "components/accordion/accordion.component.ts", lineNumber: 176 }); })();
487
+ /**
488
+ * Directive for creating an accordion component.
489
+ *
490
+ * This directive extends the `BaseWidgetDirective` and provides various inputs and outputs
491
+ * to customize the behavior and appearance of the accordion and its items.
492
+ *
493
+ */
462
494
  export class AccordionDirective extends BaseWidgetDirective {
463
495
  constructor() {
464
- super(...arguments);
496
+ super(callWidgetFactory({
497
+ factory: createAccordion,
498
+ widgetName: 'accordion',
499
+ events: {
500
+ onItemShown: (id) => this.itemShown.emit(id),
501
+ onItemHidden: (id) => this.itemHidden.emit(id),
502
+ },
503
+ afterInit: (widget) => {
504
+ useDirectiveForHost(widget.directives.accordionDirective);
505
+ },
506
+ }));
465
507
  /**
466
508
  * An event fired when an item is shown.
467
509
  *
@@ -484,19 +526,8 @@ export class AccordionDirective extends BaseWidgetDirective {
484
526
  * ```
485
527
  */
486
528
  this.itemHidden = new EventEmitter();
487
- this._widget = callWidgetFactory({
488
- factory: createAccordion,
489
- widgetName: 'accordion',
490
- events: {
491
- onItemShown: (id) => this.itemShown.emit(id),
492
- onItemHidden: (id) => this.itemHidden.emit(id),
493
- },
494
- afterInit: () => {
495
- useDirectiveForHost(this._widget.directives.accordionDirective);
496
- },
497
- });
498
529
  }
499
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵAccordionDirective_BaseFactory; return function AccordionDirective_Factory(t) { return (ɵAccordionDirective_BaseFactory || (ɵAccordionDirective_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionDirective)))(t || AccordionDirective); }; })(); }
530
+ static { this.ɵfac = function AccordionDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccordionDirective)(); }; }
500
531
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AccordionDirective, selectors: [["", "auAccordion", ""]], hostAttrs: [1, "accordion"], inputs: { closeOthers: [2, "auCloseOthers", "closeOthers", auBooleanAttribute], className: [0, "auClassName", "className"], itemDestroyOnHide: [2, "auItemDestroyOnHide", "itemDestroyOnHide", auBooleanAttribute], itemAnimated: [2, "auItemAnimated", "itemAnimated", auBooleanAttribute], itemTransition: [0, "auItemTransition", "itemTransition"], itemStructure: [0, "auItemStructure", "itemStructure"], itemClassName: [0, "auItemClassName", "itemClassName"], itemHeaderClassName: [0, "auItemHeaderClassName", "itemHeaderClassName"], itemButtonClassName: [0, "auItemButtonClassName", "itemButtonClassName"], itemBodyContainerClassName: [0, "auItemBodyContainerClassName", "itemBodyContainerClassName"], itemBodyClassName: [0, "auItemBodyClassName", "itemBodyClassName"], itemHeadingTag: [0, "auItemHeadingTag", "itemHeadingTag"] }, outputs: { itemShown: "auItemShown", itemHidden: "auItemHidden" }, exportAs: ["auAccordion"], standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature] }); }
501
532
  }
502
533
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionDirective, [{
@@ -509,7 +540,7 @@ export class AccordionDirective extends BaseWidgetDirective {
509
540
  class: 'accordion',
510
541
  },
511
542
  }]
512
- }], null, { closeOthers: [{
543
+ }], () => [], { closeOthers: [{
513
544
  type: Input,
514
545
  args: [{ alias: 'auCloseOthers', transform: auBooleanAttribute }]
515
546
  }], className: [{
@@ -552,4 +583,4 @@ export class AccordionDirective extends BaseWidgetDirective {
552
583
  type: Input,
553
584
  args: ['auItemHeadingTag']
554
585
  }] }); })();
555
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixhQUFhLEVBQ2IsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixtQkFBbUIsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUUvQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7OztJQWtDNUMsMkJBQXFEOzs7O0lBQXZDLHdDQUF1Qjs7O0lBR3JDLDJCQUFxRDs7OztJQUF2Qyx3Q0FBdUI7OztJQUdyQywyQkFBcUQ7Ozs7SUFBdkMsd0NBQXVCOzs7SUFHckMsMkJBQXFEOzs7O0lBQXZDLHdDQUF1Qjs7O0lBR3JDLDJCQUFxRDs7OztJQUF2Qyx3Q0FBdUI7OztJQUdyQywyQkFBcUQ7Ozs7SUFBdkMsd0NBQXVCOzs7SUFHckMsMkJBQXFEOzs7O0lBQXZDLHdDQUF1Qjs7OztJQUt0Qyw4QkFBeUU7SUFDeEUsK0hBQXlDO0lBQzFDLGlCQUFLOzs7O0lBRndCLDREQUEyQztJQUMxRCxjQUEyQjtJQUEzQiw0Q0FBMkI7Ozs7SUFLekMsOEJBQXlF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dGVudCI6WyJpbXBvcnQgdHlwZSB7U2xvdENvbnRlbnQsIFRyYW5zaXRpb25GbiwgV2lkZ2V0RmFjdG9yeX0gZnJvbSAnQGFnbm9zLXVpL2FuZ3VsYXItaGVhZGxlc3MnO1xuaW1wb3J0IHtcblx0QmFzZVdpZGdldERpcmVjdGl2ZSxcblx0Q29tcG9uZW50VGVtcGxhdGUsXG5cdENvbnRlbnRBc1Nsb3REaXJlY3RpdmUsXG5cdFNsb3REaXJlY3RpdmUsXG5cdFVzZURpcmVjdGl2ZSxcblx0YXVCb29sZWFuQXR0cmlidXRlLFxuXHR1c2VEaXJlY3RpdmVGb3JIb3N0LFxufSBmcm9tICdAYWdub3MtdWkvYW5ndWxhci1oZWFkbGVzcyc7XG5pbXBvcnQge05nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7QWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGQsXG5cdERpcmVjdGl2ZSxcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjYWxsV2lkZ2V0RmFjdG9yeX0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB0eXBlIHtBY2NvcmRpb25JdGVtQ29udGV4dCwgQWNjb3JkaW9uSXRlbVByb3BzLCBBY2NvcmRpb25JdGVtV2lkZ2V0LCBBY2NvcmRpb25XaWRnZXR9IGZyb20gJy4vYWNjb3JkaW9uLmdlbic7XG5pbXBvcnQge2NyZWF0ZUFjY29yZGlvbn0gZnJvbSAnLi9hY2NvcmRpb24uZ2VuJztcbmltcG9ydCB7d3JpdGFibGV9IGZyb20gJ0BhbWFkZXVzLWl0LWdyb3VwL3RhbnN1JztcblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdUFjY29yZGlvbkl0ZW1Cb2R5XScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkJvZHlEaXJlY3RpdmUge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8QWNjb3JkaW9uSXRlbUNvbnRleHQ+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoZGlyOiBBY2NvcmRpb25Cb2R5RGlyZWN0aXZlLCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBBY2NvcmRpb25JdGVtQ29udGV4dCB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdUFjY29yZGlvbkl0ZW1IZWFkZXJdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uSGVhZGVyRGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPEFjY29yZGlvbkl0ZW1Db250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKGRpcjogQWNjb3JkaW9uSGVhZGVyRGlyZWN0aXZlLCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBBY2NvcmRpb25JdGVtQ29udGV4dCB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdUFjY29yZGlvbkl0ZW1TdHJ1Y3R1cmVdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uSXRlbVN0cnVjdHVyZURpcmVjdGl2ZSB7XG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxBY2NvcmRpb25JdGVtQ29udGV4dD4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChkaXI6IEFjY29yZGlvbkl0ZW1TdHJ1Y3R1cmVEaXJlY3RpdmUsIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIEFjY29yZGlvbkl0ZW1Db250ZXh0IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtVc2VEaXJlY3RpdmUsIFNsb3REaXJlY3RpdmUsIEFjY29yZGlvbkhlYWRlckRpcmVjdGl2ZSwgQWNjb3JkaW9uQm9keURpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldF0sXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLXRlbXBsYXRlICNzdHJ1Y3R1cmUgbGV0LXN0YXRlPVwic3RhdGVcIiBsZXQtd2lkZ2V0PVwid2lkZ2V0XCI+XG5cdFx0XHRAc3dpdGNoIChzdGF0ZS5pdGVtSGVhZGluZ1RhZykge1xuXHRcdFx0XHRAY2FzZSAoJ2gxJykge1xuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaDFcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0fVxuXHRcdFx0XHRAY2FzZSAoJ2gyJykge1xuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaDJcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0fVxuXHRcdFx0XHRAY2FzZSAoJ2gzJykge1xuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaDNcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0fVxuXHRcdFx0XHRAY2FzZSAoJ2g0Jykge1xuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaDRcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0fVxuXHRcdFx0XHRAY2FzZSAoJ2g1Jykge1xuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaDVcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0fVxuXHRcdFx0XHRAY2FzZSAoJ2g2Jykge1xuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaDZcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0fVxuXHRcdFx0XHRAZGVmYXVsdCB7XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoMlwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjaDE+XG5cdFx0XHRcdDxoMSBjbGFzcz1cImFjY29yZGlvbi1oZWFkZXJcIiBbYXVVc2VdPVwid2lkZ2V0LmRpcmVjdGl2ZXMuaGVhZGVyRGlyZWN0aXZlXCI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvblwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvaDE+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXG5cdFx0XHQ8bmctdGVtcGxhdGUgI2gyPlxuXHRcdFx0XHQ8aDIgY2xhc3M9XCJhY2NvcmRpb24taGVhZGVyXCIgW2F1VXNlXT1cIndpZGdldC5kaXJlY3RpdmVzLmhlYWRlckRpcmVjdGl2ZVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2gyPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblxuXHRcdFx0PG5nLXRlbXBsYXRlICNoMz5cblx0XHRcdFx0PGgzIGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRlclwiIFthdVVzZV09XCJ3aWRnZXQuZGlyZWN0aXZlcy5oZWFkZXJEaXJlY3RpdmVcIj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uXCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9oMz5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjaDQ+XG5cdFx0XHRcdDxoNCBjbGFzcz1cImFjY29yZGlvbi1oZWFkZXJcIiBbYXVVc2VdPVwid2lkZ2V0LmRpcmVjdGl2ZXMuaGVhZGVyRGlyZWN0aXZlXCI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvblwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvaDQ+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXG5cdFx0XHQ8bmctdGVtcGxhdGUgI2g1PlxuXHRcdFx0XHQ8aDUgY2xhc3M9XCJhY2NvcmRpb24taGVhZGVyXCIgW2F1VXNlXT1cIndpZGdldC5kaXJlY3RpdmVzLmhlYWRlckRpcmVjdGl2ZVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2g1PlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjaDY+XG5cdFx0XHRcdDxoNiBjbGFzcz1cImFjY29yZGlvbi1oZWFkZXJcIiBbYXVVc2VdPVwid2lkZ2V0LmRpcmVjdGl2ZXMuaGVhZGVyRGlyZWN0aXZlXCI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvblwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvaDY+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXG5cdFx0XHQ8bmctdGVtcGxhdGUgI2J1dHRvbj5cblx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImFjY29yZGlvbi1idXR0b24gXCIgW2F1VXNlXT1cIndpZGdldC5kaXJlY3RpdmVzLmJ1dHRvbkRpcmVjdGl2ZVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCB3aWRnZXR9XCIgW2F1U2xvdF09XCJzdGF0ZS5oZWFkZXJcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRAaWYgKHN0YXRlLnNob3VsZEJlSW5ET00pIHtcblx0XHRcdFx0PGRpdiBbYXVVc2VdPVwid2lkZ2V0LmRpcmVjdGl2ZXMuYm9keUNvbnRhaW5lckRpcmVjdGl2ZVwiIGNsYXNzPVwiYWNjb3JkaW9uLWNvbGxhcHNlXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImFjY29yZGlvbi1ib2R5XCIgW2F1VXNlXT1cIndpZGdldC5kaXJlY3RpdmVzLmJvZHlEaXJlY3RpdmVcIj5cblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCB3aWRnZXR9XCIgW2F1U2xvdF09XCJzdGF0ZS5jaGlsZHJlblwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0fVxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkl0ZW1EZWZhdWx0U2xvdHNDb21wb25lbnQge1xuXHRAVmlld0NoaWxkKCdzdHJ1Y3R1cmUnLCB7c3RhdGljOiB0cnVlfSkgc3RydWN0dXJlITogVGVtcGxhdGVSZWY8QWNjb3JkaW9uSXRlbUNvbnRleHQ+O1xufVxuZXhwb3J0IGNvbnN0IGFjY29yZGlvbkl0ZW1EZWZhdWx0U2xvdEl0ZW1TdHJ1Y3R1cmUgPSBuZXcgQ29tcG9uZW50VGVtcGxhdGUoQWNjb3JkaW9uSXRlbURlZmF1bHRTbG90c0NvbXBvbmVudCwgJ3N0cnVjdHVyZScpO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPEFjY29yZGlvbkl0ZW1Qcm9wcz4gPSB7XG5cdHN0cnVjdHVyZTogYWNjb3JkaW9uSXRlbURlZmF1bHRTbG90SXRlbVN0cnVjdHVyZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ1thdUFjY29yZGlvbkl0ZW1dJyxcblx0ZXhwb3J0QXM6ICdhdUFjY29yZGlvbkl0ZW0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aG9zdDoge1xuXHRcdGNsYXNzOiAnYWNjb3JkaW9uLWl0ZW0nLFxuXHR9LFxuXHRpbXBvcnRzOiBbU2xvdERpcmVjdGl2ZSwgVXNlRGlyZWN0aXZlLCBDb250ZW50QXNTbG90RGlyZWN0aXZlXSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctdGVtcGxhdGUgW2F1Q29udGVudEFzU2xvdF09XCJkZWZhdWx0U2xvdHNcIj5cblx0XHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90UHJvcHNdPVwie3N0YXRlOiBzdGF0ZSgpLCB3aWRnZXR9XCIgW2F1U2xvdF09XCJzdGF0ZSgpLnN0cnVjdHVyZVwiPjwvbmctdGVtcGxhdGU+XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlV2lkZ2V0RGlyZWN0aXZlPEFjY29yZGlvbkl0ZW1XaWRnZXQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdCB7XG5cdC8qKlxuXHQgKiBDb250ZW50IHByZXNlbnQgaW4gdGhlIGFjY29yZGlvbiBidXR0b24gaW5zaWRlIHRoZSBhY2NvcmRpb24gaGVhZGVyLlxuXHQgKlxuXHQgKiBJdCBpcyBhIHByb3Agb2YgdGhlIGFjY29yZGlvbi1pdGVtLlxuXHQgKi9cblx0QElucHV0KCdhdUhlYWRlcicpIGhlYWRlcjogU2xvdENvbnRlbnQ8QWNjb3JkaW9uSXRlbUNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKEFjY29yZGlvbkhlYWRlckRpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90SGVhZGVyRnJvbUNvbnRlbnQ6IEFjY29yZGlvbkhlYWRlckRpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIENvbnRlbnQgcHJlc2VudCBpbiB0aGUgYWNjb3JkaW9uIGJvZHkuXG5cdCAqXG5cdCAqIEl0IGlzIGEgcHJvcCBvZiB0aGUgYWNjb3JkaW9uLWl0ZW0uXG5cdCAqL1xuXHRASW5wdXQoJ2F1Q2hpbGRyZW4nKSBjaGlsZHJlbjogU2xvdENvbnRlbnQ8QWNjb3JkaW9uSXRlbUNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKEFjY29yZGlvbkJvZHlEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdEJvZHlGcm9tQ29udGVudDogQWNjb3JkaW9uQm9keURpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogU3RydWN0dXJlIG9mIHRoZSBhY2NvcmRpb24taXRlbS4gVGhlIGRlZmF1bHQgaXRlbSBzdHJ1Y3R1cmUgaXM6IGFjY29yZGlvbi1pdGVtXG5cdCAqIGNvbnRhaW5zIGFjY29yZGlvbiBoZWFkZXIgYW5kIGFjY29yZGlvbi1pdGVtIGJvZHkgY29udGFpbmVyOyB0aGUgYWNjb3JkaW9uIGhlYWRlciBjb250YWlucyB0aGUgYWNjb3JkaW9uIGJ1dHRvblxuXHQgKiAodGhhdCBjb250YWlucyBgaGVhZGVyYCksIHdoaWxlIHRoZSBhY2NvcmRpb24taXRlbSBib2R5IGNvbnRhaW5lciBjb250YWlucyB0aGUgYWNjb3JkaW9uIGJvZHkgKHRoYXQgY29udGFpbnMgYGNoaWxkcmVuYCkuXG5cdCAqIFRoZSBpdGVtVHJhbnNpdGlvbiBpcyBhcHBsaWVkIG9uIHRoaXMgZWxlbWVudC5cblx0ICpcblx0ICogSXQgaXMgYSBwcm9wIG9mIHRoZSBhY2NvcmRpb24taXRlbS5cblx0ICovXG5cdEBJbnB1dCgnYXVTdHJ1Y3R1cmUnKSBzdHJ1Y3R1cmU6IFNsb3RDb250ZW50PEFjY29yZGlvbkl0ZW1Db250ZXh0Pjtcblx0QENvbnRlbnRDaGlsZChBY2NvcmRpb25JdGVtU3RydWN0dXJlRGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG5cdHNsb3RTdHJ1Y3R1cmVGcm9tQ29udGVudDogQWNjb3JkaW9uSXRlbVN0cnVjdHVyZURpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIGlkIG9mIHRoZSBhY2NvcmRpb24taXRlbS4gSXQgY2FuIGJlIHVzZWQgZm9yIGNvbnRyb2xsaW5nIHRoZSBhY2NvcmRpb24taXRlbSB2aWEgdGhlIGFjY29yZGlvbiBhcGkuXG5cdCAqL1xuXHRASW5wdXQoJ2F1SWQnKSBpZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogVGhlIHRyYW5zaXRpb24gdG8gdXNlIGZvciB0aGUgYWNjb3JkaW9uLWl0ZW0gYm9keS1jb250YWluZXIgd2hlbiB0aGUgYWNjb3JkaW9uLWl0ZW0gaXMgdG9nZ2xlZC5cblx0ICovXG5cdEBJbnB1dCgnYXVUcmFuc2l0aW9uJykgdHJhbnNpdGlvbjogVHJhbnNpdGlvbkZuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBDU1MgY2xhc3NlcyB0byBiZSBhcHBsaWVkIG9uIHRoZSB3aWRnZXQgbWFpbiBjb250YWluZXJcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRASW5wdXQoJ2F1Q2xhc3NOYW1lJykgY2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZiBgdHJ1ZWAsIHRoZSBhY2NvcmRpb24taXRlbSBib2R5IGNvbnRhaW5lciB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgRE9NIHdoZW4gdGhlIGFjY29yZGlvbi1pdGVtIGlzIGNvbGxhcHNlZC4gSXQgd2lsbCBiZSBqdXN0IGhpZGRlbiBvdGhlcndpc2UuXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVEZXN0cm95T25IaWRlJywgdHJhbnNmb3JtOiBhdUJvb2xlYW5BdHRyaWJ1dGV9KSBkZXN0cm95T25IaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSWYgYHRydWVgLCB0aGUgYWNjb3JkaW9uLWl0ZW0gd2lsbCBiZSBkaXNhYmxlZC5cblx0ICogSXQgd2lsbCBub3QgcmVhY3QgdG8gdXNlcidzIGNsaWNrcywgYnV0IHN0aWxsIHdpbGwgYmUgcG9zc2libGUgdG8gdG9nZ2xlIHByb2dyYW1tYXRpY2FsbHkuXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVEaXNhYmxlZCcsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIElmIGB0cnVlYCwgdGhlIGFjY29yZGlvbi1pdGVtIHdpbGwgYmUgdmlzaWJsZSAoZXhwYW5kZWQpLiBPdGhlcndpc2UsIGl0IHdpbGwgYmUgaGlkZGVuIChjb2xsYXBzZWQpLlxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1VmlzaWJsZScsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgdmlzaWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIElmIGB0cnVlYCwgYWNjb3JkaW9uLWl0ZW0gd2lsbCBiZSBhbmltYXRlZC5cblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdUFuaW1hdGVkJywgdHJhbnNmb3JtOiBhdUJvb2xlYW5BdHRyaWJ1dGV9KSBhbmltYXRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIENTUyBjbGFzc2VzIHRvIGFkZCBvbiB0aGUgYWNjb3JkaW9uLWl0ZW0gaGVhZGVyIERPTSBlbGVtZW50LlxuXHQgKi9cblx0QElucHV0KCdhdUhlYWRlckNsYXNzTmFtZScpIGhlYWRlckNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYWRkIG9uIHRoZSBhY2NvcmRpb24taXRlbSBjb2xsYXBzZSBET00gZWxlbWVudC5cblx0ICovXG5cdEBJbnB1dCgnYXVCdXR0b25DbGFzc05hbWUnKSBidXR0b25DbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIENTUyBjbGFzc2VzIHRvIGFkZCBvbiB0aGUgYWNjb3JkaW9uLWl0ZW0gYm9keSBjb250YWluZXIgRE9NIGVsZW1lbnQuXG5cdCAqIFRoZSBhY2NvcmRpb24taXRlbSBib2R5IGNvbnRhaW5lciBpcyB0aGUgRE9NIGVsZW1lbnQgb24gd2hhdCB0aGUgaXRlbVRyYW5zaXRpb24gaXMgYXBwbGllZC5cblx0ICovXG5cdEBJbnB1dCgnYXVCb2R5Q29udGFpbmVyQ2xhc3NOYW1lJykgYm9keUNvbnRhaW5lckNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYWRkIG9uIHRoZSBhY2NvcmRpb24taXRlbSBib2R5IERPTSBlbGVtZW50LlxuXHQgKi9cblx0QElucHV0KCdhdUJvZHlDbGFzc05hbWUnKSBib2R5Q2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBUaGUgaHRtbCB0YWcgdG8gdXNlIGZvciB0aGUgYWNjb3JkaW9uLWl0ZW0taGVhZGVyLlxuXHQgKi9cblx0QElucHV0KCdhdUhlYWRpbmdUYWcnKSBoZWFkaW5nVGFnOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBBbiBldmVudCBmaXJlZCB3aGVuIGFuIGl0ZW0gaXMgc2hvd24uXG5cdCAqL1xuXHRAT3V0cHV0KCdhdVNob3duJykgc2hvd24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cdC8qKlxuXHQgKiBBbiBldmVudCBmaXJlZCB3aGVuIGFuIGl0ZW0gaXMgaGlkZGVuLlxuXHQgKi9cblx0QE91dHB1dCgnYXVIaWRkZW4nKSBoaWRkZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cdC8qKlxuXHQgKiBBbiBldmVudCBmaXJlZCB3aGVuIHRoZSBgdmlzaWJsZWAgdmFsdWUgY2hhbmdlcy5cblx0ICpcblx0ICogRXZlbnQgcGF5bG9hZCBpcyB0aGUgbmV3IHZhbHVlIG9mIHZpc2libGUuXG5cdCAqL1xuXHRAT3V0cHV0KCdhdVZpc2libGVDaGFuZ2UnKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG5cdHJlYWRvbmx5IGFkID0gaW5qZWN0KEFjY29yZGlvbkRpcmVjdGl2ZSk7XG5cdHJlYWRvbmx5IGRlZmF1bHRTbG90cyA9IHdyaXRhYmxlKGRlZmF1bHRDb25maWcpO1xuXG5cdHJlYWRvbmx5IF93aWRnZXQgPSBjYWxsV2lkZ2V0RmFjdG9yeTxBY2NvcmRpb25JdGVtV2lkZ2V0Pih7XG5cdFx0ZmFjdG9yeTogKChhcmcpID0+IHRoaXMuYWQuYXBpLnJlZ2lzdGVySXRlbShhcmcpKSBhcyBXaWRnZXRGYWN0b3J5PEFjY29yZGlvbkl0ZW1XaWRnZXQ+LFxuXHRcdGRlZmF1bHRDb25maWc6IHRoaXMuZGVmYXVsdFNsb3RzLFxuXHRcdGV2ZW50czoge1xuXHRcdFx0b25WaXNpYmxlQ2hhbmdlOiAodmlzaWJsZSkgPT4gdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmlzaWJsZSksXG5cdFx0XHRvbkhpZGRlbjogKCkgPT4gdGhpcy5oaWRkZW4uZW1pdCgpLFxuXHRcdFx0b25TaG93bjogKCkgPT4gdGhpcy5zaG93bi5lbWl0KCksXG5cdFx0fSxcblx0XHRhZnRlckluaXQ6ICgpID0+IHtcblx0XHRcdHVzZURpcmVjdGl2ZUZvckhvc3QodGhpcy5fd2lkZ2V0LmRpcmVjdGl2ZXMuaXRlbURpcmVjdGl2ZSk7XG5cdFx0fSxcblx0fSk7XG5cblx0bmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuXHRcdHRoaXMuX3dpZGdldC5wYXRjaFNsb3RzKHtcblx0XHRcdHN0cnVjdHVyZTogdGhpcy5zbG90U3RydWN0dXJlRnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0aGVhZGVyOiB0aGlzLnNsb3RIZWFkZXJGcm9tQ29udGVudD8udGVtcGxhdGVSZWYsXG5cdFx0XHRjaGlsZHJlbjogdGhpcy5zbG90Qm9keUZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHR9KTtcblx0fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHRxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLmFwaS5pbml0RG9uZSgpKTtcblx0fVxufVxuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYXVBY2NvcmRpb25dJyxcblx0ZXhwb3J0QXM6ICdhdUFjY29yZGlvbicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGhvc3Q6IHtcblx0XHRjbGFzczogJ2FjY29yZGlvbicsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkRpcmVjdGl2ZSBleHRlbmRzIEJhc2VXaWRnZXREaXJlY3RpdmU8QWNjb3JkaW9uV2lkZ2V0PiB7XG5cdC8qKlxuXHQgKiBJZiBgdHJ1ZWAsIG9ubHkgb25lIGFjY29yZGlvbi1pdGVtIGF0IHRoZSB0aW1lIGNhbiBzdGF5IG9wZW4uXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1Q2xvc2VPdGhlcnMnLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIGNsb3NlT3RoZXJzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBDU1MgY2xhc3NlcyB0byBiZSBhcHBsaWVkIG9uIHRoZSB3aWRnZXQgbWFpbiBjb250YWluZXJcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRASW5wdXQoJ2F1Q2xhc3NOYW1lJykgY2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIEFuIGV2ZW50IGZpcmVkIHdoZW4gYW4gaXRlbSBpcyBzaG93bi5cblx0ICpcblx0ICogRXZlbnQgcGF5bG9hZCBpcyB0aGUgaWQgb2YgdGhlIGl0ZW0uXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogKCkgPT4ge31cblx0ICogYGBgXG5cdCAqL1xuXHRAT3V0cHV0KCdhdUl0ZW1TaG93bicpIGl0ZW1TaG93bjogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuXHQvKipcblx0ICogQW4gZXZlbnQgZmlyZWQgd2hlbiBhbiBpdGVtIGlzIGhpZGRlbi5cblx0ICpcblx0ICogRXZlbnQgcGF5bG9hZCBpcyB0aGUgaWQgb2YgdGhlIGl0ZW0uXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogKCkgPT4ge31cblx0ICogYGBgXG5cdCAqL1xuXHRAT3V0cHV0KCdhdUl0ZW1IaWRkZW4nKSBpdGVtSGlkZGVuOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG5cdC8qKlxuXHQgKiBJZiBgdHJ1ZWAsIHRoZSBhY2NvcmRpb24taXRlbSBib2R5IGNvbnRhaW5lciB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgRE9NIHdoZW4gdGhlIGFjY29yZGlvbi1pdGVtIGlzIGNvbGxhcHNlZC4gSXQgd2lsbCBiZSBqdXN0IGhpZGRlbiBvdGhlcndpc2UuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYHRydWVgXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVJdGVtRGVzdHJveU9uSGlkZScsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgaXRlbURlc3Ryb3lPbkhpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIElmIGB0cnVlYCwgYWNjb3JkaW9uLWl0ZW0gd2lsbCBiZSBhbmltYXRlZC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdUl0ZW1BbmltYXRlZCcsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgaXRlbUFuaW1hdGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdHJhbnNpdGlvbiB0byB1c2UgZm9yIHRoZSBhY2NvcmRpb24taXRlbSBib2R5LWNvbnRhaW5lciB3aGVuIHRoZSBhY2NvcmRpb24taXRlbSBpcyB0b2dnbGVkLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqIGNvbGxhcHNlVmVydGljYWxUcmFuc2l0aW9uXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdUl0ZW1UcmFuc2l0aW9uJykgaXRlbVRyYW5zaXRpb246IFRyYW5zaXRpb25GbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogU3RydWN0dXJlIG9mIHRoZSBhY2NvcmRpb24taXRlbS4gVGhlIGRlZmF1bHQgaXRlbSBzdHJ1Y3R1cmUgaXM6IGFjY29yZGlvbi1pdGVtXG5cdCAqIGNvbnRhaW5zIGFjY29yZGlvbiBoZWFkZXIgYW5kIGFjY29yZGlvbi1pdGVtIGJvZHkgY29udGFpbmVyOyB0aGUgYWNjb3JkaW9uIGhlYWRlciBjb250YWlucyB0aGUgYWNjb3JkaW9uIGJ1dHRvblxuXHQgKiAodGhhdCBjb250YWlucyBgaGVhZGVyYCksIHdoaWxlIHRoZSBhY2NvcmRpb24taXRlbSBib2R5IGNvbnRhaW5lciBjb250YWlucyB0aGUgYWNjb3JkaW9uIGJvZHkgKHRoYXQgY29udGFpbnMgYGNoaWxkcmVuYCkuXG5cdCAqIFRoZSBpdGVtVHJhbnNpdGlvbiBpcyBhcHBsaWVkIG9uIHRoaXMgZWxlbWVudC5cblx0ICpcblx0ICogSXQgaXMgYSBwcm9wIG9mIHRoZSBhY2NvcmRpb24taXRlbS5cblx0ICovXG5cdEBJbnB1dCgnYXVJdGVtU3RydWN0dXJlJykgaXRlbVN0cnVjdHVyZTogU2xvdENvbnRlbnQ8QWNjb3JkaW9uSXRlbUNvbnRleHQ+O1xuXG5cdC8qKlxuXHQgKiBDU1MgY2xhc3NlcyB0byBhZGQgb24gdGhlIGFjY29yZGlvbi1pdGVtIERPTSBlbGVtZW50LlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnJ2Bcblx0ICovXG5cdEBJbnB1dCgnYXVJdGVtQ2xhc3NOYW1lJykgaXRlbUNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBDU1MgY2xhc3NlcyB0byBhZGQgb24gdGhlIGFjY29yZGlvbi1pdGVtIGhlYWRlciBET00gZWxlbWVudC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRASW5wdXQoJ2F1SXRlbUhlYWRlckNsYXNzTmFtZScpIGl0ZW1IZWFkZXJDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYWRkIG9uIHRoZSBhY2NvcmRpb24taXRlbSB0b2dnbGUgYnV0dG9uIERPTSBlbGVtZW50LlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnJ2Bcblx0ICovXG5cdEBJbnB1dCgnYXVJdGVtQnV0dG9uQ2xhc3NOYW1lJykgaXRlbUJ1dHRvbkNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBDU1MgY2xhc3NlcyB0byBhZGQgb24gdGhlIGFjY29yZGlvbi1pdGVtIGJvZHkgY29udGFpbmVyIERPTSBlbGVtZW50LlxuXHQgKiBUaGUgYWNjb3JkaW9uLWl0ZW0gYm9keSBjb250YWluZXIgaXMgdGhlIERPTSBlbGVtZW50IG9uIHdoYXQgdGhlIGl0ZW1UcmFuc2l0aW9uIGlzIGFwcGxpZWQuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0QElucHV0KCdhdUl0ZW1Cb2R5Q29udGFpbmVyQ2xhc3NOYW1lJykgaXRlbUJvZHlDb250YWluZXJDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYWRkIG9uIHRoZSBhY2NvcmRpb24taXRlbSBib2R5IERPTSBlbGVtZW50LlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnJ2Bcblx0ICovXG5cdEBJbnB1dCgnYXVJdGVtQm9keUNsYXNzTmFtZScpIGl0ZW1Cb2R5Q2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSBodG1sIHRhZyB0byB1c2UgZm9yIHRoZSBhY2NvcmRpb24taXRlbS1oZWFkZXIuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0QElucHV0KCdhdUl0ZW1IZWFkaW5nVGFnJykgaXRlbUhlYWRpbmdUYWc6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRyZWFkb25seSBfd2lkZ2V0ID0gY2FsbFdpZGdldEZhY3Rvcnkoe1xuXHRcdGZhY3Rvcnk6IGNyZWF0ZUFjY29yZGlvbixcblx0XHR3aWRnZXROYW1lOiAnYWNjb3JkaW9uJyxcblx0XHRldmVudHM6IHtcblx0XHRcdG9uSXRlbVNob3duOiAoaWQpID0+IHRoaXMuaXRlbVNob3duLmVtaXQoaWQpLFxuXHRcdFx0b25JdGVtSGlkZGVuOiAoaWQpID0+IHRoaXMuaXRlbUhpZGRlbi5lbWl0KGlkKSxcblx0XHR9LFxuXHRcdGFmdGVySW5pdDogKCkgPT4ge1xuXHRcdFx0dXNlRGlyZWN0aXZlRm9ySG9zdCh0aGlzLl93aWRnZXQuZGlyZWN0aXZlcy5hY2NvcmRpb25EaXJlY3RpdmUpO1xuXHRcdH0sXG5cdH0pO1xufVxuIl19
586
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLG1CQUFtQixHQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRS9DLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7SUFrRDNDLDJCQUFxRDs7OztJQUF2Qyx3Q0FBdUI7OztJQUdyQywyQkFBcUQ7Ozs7SUFBdkMsd0NBQXVCOzs7SUFHckMsMkJBQXFEOzs7O0lBQXZDLHdDQUF1Qjs7O0lBR3JDLDJCQUFxRDs7OztJQUF2Qyx3Q0FBdUI7OztJQUdyQywyQkFBcUQ7Ozs7SUFBdkMsd0NBQXVCOzs7SUFHckMsMkJBQXFEOzs7O0lBQXZDLHdDQUF1Qjs7O0lBR3JDLDJCQUFxRDs7OztJQUF2Qyx3Q0FBdUI7Ozs7SUFLdEMsOEJBQWtFO0lBQ2pFLCtIQUF5QztJQUMxQyxpQkFBSzs7OztJQUZ3QixxREFBb0M7SUFDbkQsY0FBMkI7SUFBM0IsNENBQTJCOzs7O0lBS3pDLDhCQUFrRTtJQUNqRSwrSEFBeUM7SUFDMUMsaUJBQUs7Ozs7SUFGd0IscURBQW9DO0lBQ25ELGNBQTJCO0lB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QUFsQixrQkFBa0IsZ0lBTWEsa0JBQWtCLGtIQXNDWixrQkFBa0IsdURBT3ZCLGtCQUFrQjs7aUZBbkRsRCxrQkFBa0I7Y0FSOUIsU0FBUztlQUFDO2dCQUNWLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixRQUFRLEVBQUUsYUFBYTtnQkFDdkIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLElBQUksRUFBRTtvQkFDTCxLQUFLLEVBQUUsV0FBVztpQkFDbEI7YUFDRDtvQkFPZ0UsV0FBVztrQkFBMUUsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFDO1lBT3hDLFNBQVM7a0JBQTlCLEtBQUs7bUJBQUMsYUFBYTtZQVlHLFNBQVM7a0JBQS9CLE1BQU07bUJBQUMsYUFBYTtZQVlHLFVBQVU7a0JBQWpDLE1BQU07bUJBQUMsY0FBYztZQU9nRCxpQkFBaUI7a0JBQXRGLEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFDO1lBT0gsWUFBWTtrQkFBNUUsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUM7WUFVcEMsY0FBYztrQkFBeEMsS0FBSzttQkFBQyxrQkFBa0I7WUFVQyxhQUFhO2tCQUF0QyxLQUFLO21CQUFDLGlCQUFpQjtZQU9FLGFBQWE7a0JBQXRDLEtBQUs7bUJBQUMsaUJBQWlCO1lBT1EsbUJBQW1CO2tCQUFsRCxLQUFLO21CQUFDLHVCQUF1QjtZQU9FLG1CQUFtQjtrQkFBbEQsS0FBSzttQkFBQyx1QkFBdUI7WUFRUywwQkFBMEI7a0JBQWhFLEtBQUs7bUJBQUMsOEJBQThCO1lBT1AsaUJBQWlCO2tCQUE5QyxLQUFLO21CQUFDLHFCQUFxQjtZQU9ELGNBQWM7a0JBQXhDLEtBQUs7bUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1Nsb3RDb250ZW50LCBUcmFuc2l0aW9uRm59IGZyb20gJ0BhZ25vcy11aS9hbmd1bGFyLWhlYWRsZXNzJztcbmltcG9ydCB7XG5cdEJhc2VXaWRnZXREaXJlY3RpdmUsXG5cdENvbXBvbmVudFRlbXBsYXRlLFxuXHRTbG90RGlyZWN0aXZlLFxuXHRVc2VEaXJlY3RpdmUsXG5cdGF1Qm9vbGVhbkF0dHJpYnV0ZSxcblx0dXNlRGlyZWN0aXZlRm9ySG9zdCxcbn0gZnJvbSAnQGFnbm9zLXVpL2FuZ3VsYXItaGVhZGxlc3MnO1xuaW1wb3J0IHtOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHR5cGUge0FmdGVyVmlld0luaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Q29udGVudENoaWxkLFxuXHREaXJlY3RpdmUsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0VGVtcGxhdGVSZWYsXG5cdFZpZXdDaGlsZCxcblx0aW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Y2FsbFdpZGdldEZhY3Rvcnl9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgdHlwZSB7QWNjb3JkaW9uSXRlbUNvbnRleHQsIEFjY29yZGlvbkl0ZW1XaWRnZXQsIEFjY29yZGlvbldpZGdldH0gZnJvbSAnLi9hY2NvcmRpb24uZ2VuJztcbmltcG9ydCB7Y3JlYXRlQWNjb3JkaW9ufSBmcm9tICcuL2FjY29yZGlvbi5nZW4nO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0byByZXByZXNlbnQgdGhlIGJvZHkgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uXG4gKlxuICogVGhpcyBkaXJlY3RpdmUgcHJvdmlkZXMgYSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSB7QGxpbmsgQWNjb3JkaW9uSXRlbUNvbnRleHR9LlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1QWNjb3JkaW9uSXRlbUJvZHldJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQm9keURpcmVjdGl2ZSB7XG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxBY2NvcmRpb25JdGVtQ29udGV4dD4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChfZGlyOiBBY2NvcmRpb25Cb2R5RGlyZWN0aXZlLCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBBY2NvcmRpb25JdGVtQ29udGV4dCB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuLyoqXG4gKiBEaXJlY3RpdmUgdG8gYmUgdXNlZCBhcyBhbiBhY2NvcmRpb24gaGVhZGVyLlxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIHByb3ZpZGVzIGEgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciB0aGUge0BsaW5rIEFjY29yZGlvbkl0ZW1Db250ZXh0fS5cbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdUFjY29yZGlvbkl0ZW1IZWFkZXJdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uSGVhZGVyRGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPEFjY29yZGlvbkl0ZW1Db250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IEFjY29yZGlvbkhlYWRlckRpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgQWNjb3JkaW9uSXRlbUNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgcmVwcmVzZW50cyB0aGUgc3RydWN0dXJlIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIHByb3ZpZGVzIGEgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciB0aGUge0BsaW5rIEFjY29yZGlvbkl0ZW1Db250ZXh0fS5cbiAqIEl0IGFsc28gaW5jbHVkZXMgYSBzdGF0aWMgbWV0aG9kIHRvIGd1YXJkIHRoZSB0ZW1wbGF0ZSBjb250ZXh0IHR5cGUuXG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVBY2NvcmRpb25JdGVtU3RydWN0dXJlXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkl0ZW1TdHJ1Y3R1cmVEaXJlY3RpdmUge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8QWNjb3JkaW9uSXRlbUNvbnRleHQ+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcjogQWNjb3JkaW9uSXRlbVN0cnVjdHVyZURpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgQWNjb3JkaW9uSXRlbUNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW1VzZURpcmVjdGl2ZSwgU2xvdERpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldCwgQWNjb3JkaW9uSXRlbVN0cnVjdHVyZURpcmVjdGl2ZV0sXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLXRlbXBsYXRlIGF1QWNjb3JkaW9uSXRlbVN0cnVjdHVyZSAjc3RydWN0dXJlIGxldC1zdGF0ZT1cInN0YXRlXCIgbGV0LWFwaT1cImFwaVwiIGxldC1kaXJlY3RpdmVzPVwiZGlyZWN0aXZlc1wiPlxuXHRcdFx0QHN3aXRjaCAoc3RhdGUuaGVhZGluZ1RhZygpKSB7XG5cdFx0XHRcdEBjYXNlICgnaDEnKSB7XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoMVwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR9XG5cdFx0XHRcdEBjYXNlICgnaDInKSB7XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoMlwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR9XG5cdFx0XHRcdEBjYXNlICgnaDMnKSB7XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoM1wiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR9XG5cdFx0XHRcdEBjYXNlICgnaDQnKSB7XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoNFwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR9XG5cdFx0XHRcdEBjYXNlICgnaDUnKSB7XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoNVwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR9XG5cdFx0XHRcdEBjYXNlICgnaDYnKSB7XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoNlwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR9XG5cdFx0XHRcdEBkZWZhdWx0IHtcblx0XHRcdFx0XHQ8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImgyXCI+PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0PG5nLXRlbXBsYXRlICNoMT5cblx0XHRcdFx0PGgxIGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRlclwiIFthdVVzZV09XCJkaXJlY3RpdmVzLmhlYWRlckRpcmVjdGl2ZVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2gxPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblxuXHRcdFx0PG5nLXRlbXBsYXRlICNoMj5cblx0XHRcdFx0PGgyIGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRlclwiIFthdVVzZV09XCJkaXJlY3RpdmVzLmhlYWRlckRpcmVjdGl2ZVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2gyPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblxuXHRcdFx0PG5nLXRlbXBsYXRlICNoMz5cblx0XHRcdFx0PGgzIGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRlclwiIFthdVVzZV09XCJkaXJlY3RpdmVzLmhlYWRlckRpcmVjdGl2ZVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2gzPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblxuXHRcdFx0PG5nLXRlbXBsYXRlICNoND5cblx0XHRcdFx0PGg0IGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRlclwiIFthdVVzZV09XCJkaXJlY3RpdmVzLmhlYWRlckRpcmVjdGl2ZVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2g0PlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblxuXHRcdFx0PG5nLXRlbXBsYXRlICNoNT5cblx0XHRcdFx0PGg1IGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRlclwiIFthdVVzZV09XCJkaXJlY3RpdmVzLmhlYWRlckRpcmVjdGl2ZVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2g1PlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjaDY+XG5cdFx0XHRcdDxoNiBjbGFzcz1cImFjY29yZGlvbi1oZWFkZXJcIiBbYXVVc2VdPVwiZGlyZWN0aXZlcy5oZWFkZXJEaXJlY3RpdmVcIj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uXCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9oNj5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjYnV0dG9uPlxuXHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYWNjb3JkaW9uLWJ1dHRvbiBcIiBbYXVVc2VdPVwiZGlyZWN0aXZlcy5idXR0b25EaXJlY3RpdmVcIj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdFByb3BzXT1cIntzdGF0ZSwgZGlyZWN0aXZlcywgYXBpfVwiIFthdVNsb3RdPVwic3RhdGUuaGVhZGVyKClcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRAaWYgKHN0YXRlLnNob3VsZEJlSW5ET00oKSkge1xuXHRcdFx0XHQ8ZGl2IFthdVVzZV09XCJkaXJlY3RpdmVzLmJvZHlDb250YWluZXJEaXJlY3RpdmVcIiBjbGFzcz1cImFjY29yZGlvbi1jb2xsYXBzZVwiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJhY2NvcmRpb24tYm9keVwiIFthdVVzZV09XCJkaXJlY3RpdmVzLmJvZHlEaXJlY3RpdmVcIj5cblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCBkaXJlY3RpdmVzLCBhcGl9XCIgW2F1U2xvdF09XCJzdGF0ZS5jaGlsZHJlbigpXCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHR9XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0YCxcbn0pXG5jbGFzcyBBY2NvcmRpb25JdGVtRGVmYXVsdFNsb3RzQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgnc3RydWN0dXJlJywge3N0YXRpYzogdHJ1ZX0pIHN0cnVjdHVyZSE6IFRlbXBsYXRlUmVmPEFjY29yZGlvbkl0ZW1Db250ZXh0Pjtcbn1cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZGVmYXVsdCBzbG90IHN0cnVjdHVyZSBmb3IgYW4gYWNjb3JkaW9uIGl0ZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBhY2NvcmRpb25JdGVtRGVmYXVsdFNsb3RTdHJ1Y3R1cmU6IFNsb3RDb250ZW50PEFjY29yZGlvbkl0ZW1Db250ZXh0PiA9IG5ldyBDb21wb25lbnRUZW1wbGF0ZShcblx0QWNjb3JkaW9uSXRlbURlZmF1bHRTbG90c0NvbXBvbmVudCxcblx0J3N0cnVjdHVyZScsXG4pO1xuXG4vKipcbiAqIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgaXMgYSBjb21wb25lbnQgdGhhdCByZXByZXNlbnRzIGFuIGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnW2F1QWNjb3JkaW9uSXRlbV0nLFxuXHRleHBvcnRBczogJ2F1QWNjb3JkaW9uSXRlbScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRob3N0OiB7XG5cdFx0Y2xhc3M6ICdhY2NvcmRpb24taXRlbScsXG5cdH0sXG5cdGltcG9ydHM6IFtTbG90RGlyZWN0aXZlLCBVc2VEaXJlY3RpdmVdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdFByb3BzXT1cIntzdGF0ZSwgYXBpLCBkaXJlY3RpdmVzfVwiIFthdVNsb3RdPVwic3RhdGUuc3RydWN0dXJlKClcIj48L25nLXRlbXBsYXRlPlxuXHRgLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25JdGVtQ29tcG9uZW50IGV4dGVuZHMgQmFzZVdpZGdldERpcmVjdGl2ZTxBY2NvcmRpb25JdGVtV2lkZ2V0PiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXHQvKipcblx0ICogQ29udGVudCBwcmVzZW50IGluIHRoZSBhY2NvcmRpb24gYnV0dG9uIGluc2lkZSB0aGUgYWNjb3JkaW9uIGhlYWRlci5cblx0ICpcblx0ICogSXQgaXMgYSBwcm9wIG9mIHRoZSBhY2NvcmRpb24taXRlbS5cblx0ICovXG5cdEBJbnB1dCgnYXVIZWFkZXInKSBoZWFkZXI6IFNsb3RDb250ZW50PEFjY29yZGlvbkl0ZW1Db250ZXh0Pjtcblx0QENvbnRlbnRDaGlsZChBY2NvcmRpb25IZWFkZXJEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdEhlYWRlckZyb21Db250ZW50OiBBY2NvcmRpb25IZWFkZXJEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBDb250ZW50IHByZXNlbnQgaW4gdGhlIGFjY29yZGlvbiBib2R5LlxuXHQgKlxuXHQgKiBJdCBpcyBhIHByb3Agb2YgdGhlIGFjY29yZGlvbi1pdGVtLlxuXHQgKi9cblx0QElucHV0KCdhdUNoaWxkcmVuJykgY2hpbGRyZW46IFNsb3RDb250ZW50PEFjY29yZGlvbkl0ZW1Db250ZXh0Pjtcblx0QENvbnRlbnRDaGlsZChBY2NvcmRpb25Cb2R5RGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG5cdHNsb3RCb2R5RnJvbUNvbnRlbnQ6IEFjY29yZGlvbkJvZHlEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFN0cnVjdHVyZSBvZiB0aGUgYWNjb3JkaW9uLWl0ZW0uIFRoZSBkZWZhdWx0IGl0ZW0gc3RydWN0dXJlIGlzOiBhY2NvcmRpb24taXRlbVxuXHQgKiBjb250YWlucyBhY2NvcmRpb24gaGVhZGVyIGFuZCBhY2NvcmRpb24taXRlbSBib2R5IGNvbnRhaW5lcjsgdGhlIGFjY29yZGlvbiBoZWFkZXIgY29udGFpbnMgdGhlIGFjY29yZGlvbiBidXR0b25cblx0ICogKHRoYXQgY29udGFpbnMgYGhlYWRlcmApLCB3aGlsZSB0aGUgYWNjb3JkaW9uLWl0ZW0gYm9keSBjb250YWluZXIgY29udGFpbnMgdGhlIGFjY29yZGlvbiBib2R5ICh0aGF0IGNvbnRhaW5zIGBjaGlsZHJlbmApLlxuXHQgKiBUaGUgaXRlbVRyYW5zaXRpb24gaXMgYXBwbGllZCBvbiB0aGlzIGVsZW1lbnQuXG5cdCAqXG5cdCAqIEl0IGlzIGEgcHJvcCBvZiB0aGUgYWNjb3JkaW9uLWl0ZW0uXG5cdCAqL1xuXHRASW5wdXQoJ2F1U3RydWN0dXJlJykgc3RydWN0dXJlOiBTbG90Q29udGVudDxBY2NvcmRpb25JdGVtQ29udGV4dD47XG5cdEBDb250ZW50Q2hpbGQoQWNjb3JkaW9uSXRlbVN0cnVjdHVyZURpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90U3RydWN0dXJlRnJvbUNvbnRlbnQ6IEFjY29yZGlvbkl0ZW1TdHJ1Y3R1cmVEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSBpZCBvZiB0aGUgYWNjb3JkaW9uLWl0ZW0uIEl0IGNhbiBiZSB1c2VkIGZvciBjb250cm9sbGluZyB0aGUgYWNjb3JkaW9uLWl0ZW0gdmlhIHRoZSBhY2NvcmRpb24gYXBpLlxuXHQgKi9cblx0QElucHV0KCdhdUlkJykgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIFRoZSB0cmFuc2l0aW9uIHRvIHVzZSBmb3IgdGhlIGFjY29yZGlvbi1pdGVtIGJvZHktY29udGFpbmVyIHdoZW4gdGhlIGFjY29yZGlvbi1pdGVtIGlzIHRvZ2dsZWQuXG5cdCAqL1xuXHRASW5wdXQoJ2F1VHJhbnNpdGlvbicpIHRyYW5zaXRpb246IFRyYW5zaXRpb25GbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYmUgYXBwbGllZCBvbiB0aGUgd2lkZ2V0IG1haW4gY29udGFpbmVyXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0QElucHV0KCdhdUNsYXNzTmFtZScpIGNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSWYgYHRydWVgLCB0aGUgYWNjb3JkaW9uLWl0ZW0gYm9keSBjb250YWluZXIgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIERPTSB3aGVuIHRoZSBhY2NvcmRpb24taXRlbSBpcyBjb2xsYXBzZWQuIEl0IHdpbGwgYmUganVzdCBoaWRkZW4gb3RoZXJ3aXNlLlxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1RGVzdHJveU9uSGlkZScsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgZGVzdHJveU9uSGlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIElmIGB0cnVlYCwgdGhlIGFjY29yZGlvbi1pdGVtIHdpbGwgYmUgZGlzYWJsZWQuXG5cdCAqIEl0IHdpbGwgbm90IHJlYWN0IHRvIHVzZXIncyBjbGlja3MsIGJ1dCBzdGlsbCB3aWxsIGJlIHBvc3NpYmxlIHRvIHRvZ2dsZSBwcm9ncmFtbWF0aWNhbGx5LlxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1RGlzYWJsZWQnLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBJZiBgdHJ1ZWAsIHRoZSBhY2NvcmRpb24taXRlbSB3aWxsIGJlIHZpc2libGUgKGV4cGFuZGVkKS4gT3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGhpZGRlbiAoY29sbGFwc2VkKS5cblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdVZpc2libGUnLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIHZpc2libGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZiBgdHJ1ZWAsIGFjY29yZGlvbi1pdGVtIHdpbGwgYmUgYW5pbWF0ZWQuXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVBbmltYXRlZCcsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgYW5pbWF0ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBDU1MgY2xhc3NlcyB0byBhZGQgb24gdGhlIGFjY29yZGlvbi1pdGVtIGhlYWRlciBET00gZWxlbWVudC5cblx0ICovXG5cdEBJbnB1dCgnYXVIZWFkZXJDbGFzc05hbWUnKSBoZWFkZXJDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIENTUyBjbGFzc2VzIHRvIGFkZCBvbiB0aGUgYWNjb3JkaW9uLWl0ZW0gY29sbGFwc2UgRE9NIGVsZW1lbnQuXG5cdCAqL1xuXHRASW5wdXQoJ2F1QnV0dG9uQ2xhc3NOYW1lJykgYnV0dG9uQ2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBDU1MgY2xhc3NlcyB0byBhZGQgb24gdGhlIGFjY29yZGlvbi1pdGVtIGJvZHkgY29udGFpbmVyIERPTSBlbGVtZW50LlxuXHQgKiBUaGUgYWNjb3JkaW9uLWl0ZW0gYm9keSBjb250YWluZXIgaXMgdGhlIERPTSBlbGVtZW50IG9uIHdoYXQgdGhlIGl0ZW1UcmFuc2l0aW9uIGlzIGFwcGxpZWQuXG5cdCAqL1xuXHRASW5wdXQoJ2F1Qm9keUNvbnRhaW5lckNsYXNzTmFtZScpIGJvZHlDb250YWluZXJDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIENTUyBjbGFzc2VzIHRvIGFkZCBvbiB0aGUgYWNjb3JkaW9uLWl0ZW0gYm9keSBET00gZWxlbWVudC5cblx0ICovXG5cdEBJbnB1dCgnYXVCb2R5Q2xhc3NOYW1lJykgYm9keUNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogVGhlIGh0bWwgdGFnIHRvIHVzZSBmb3IgdGhlIGFjY29yZGlvbi1pdGVtLWhlYWRlci5cblx0ICovXG5cdEBJbnB1dCgnYXVIZWFkaW5nVGFnJykgaGVhZGluZ1RhZzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogQW4gZXZlbnQgZmlyZWQgd2hlbiBhbiBpdGVtIGlzIHNob3duLlxuXHQgKi9cblx0QE91dHB1dCgnYXVTaG93bicpIHNob3duID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXHQvKipcblx0ICogQW4gZXZlbnQgZmlyZWQgd2hlbiBhbiBpdGVtIGlzIGhpZGRlbi5cblx0ICovXG5cdEBPdXRwdXQoJ2F1SGlkZGVuJykgaGlkZGVuID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXHQvKipcblx0ICogQW4gZXZlbnQgZmlyZWQgd2hlbiB0aGUgYHZpc2libGVgIHZhbHVlIGNoYW5nZXMuXG5cdCAqXG5cdCAqIEV2ZW50IHBheWxvYWQgaXMgdGhlIG5ldyB2YWx1ZSBvZiB2aXNpYmxlLlxuXHQgKi9cblx0QE91dHB1dCgnYXVWaXNpYmxlQ2hhbmdlJykgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuXHRAVmlld0NoaWxkKCdjb250ZW50Jywge3N0YXRpYzogdHJ1ZX0pXG5cdHNsb3RDaGlsZHJlbj86IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKFxuXHRcdFx0Y2FsbFdpZGdldEZhY3Rvcnk8QWNjb3JkaW9uSXRlbVdpZGdldD4oe1xuXHRcdFx0XHRmYWN0b3J5OiAoYXJnKSA9PiBpbmplY3QoQWNjb3JkaW9uRGlyZWN0aXZlKS5hcGkucmVnaXN0ZXJJdGVtKGFyZyksXG5cdFx0XHRcdGRlZmF1bHRDb25maWc6IHtcblx0XHRcdFx0XHRzdHJ1Y3R1cmU6IGFjY29yZGlvbkl0ZW1EZWZhdWx0U2xvdFN0cnVjdHVyZSxcblx0XHRcdFx0fSxcblx0XHRcdFx0ZXZlbnRzOiB7XG5cdFx0XHRcdFx0b25WaXNpYmxlQ2hhbmdlOiAodmlzaWJsZSkgPT4gdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmlzaWJsZSksXG5cdFx0XHRcdFx0b25IaWRkZW46ICgpID0+IHRoaXMuaGlkZGVuLmVtaXQoKSxcblx0XHRcdFx0XHRvblNob3duOiAoKSA9PiB0aGlzLnNob3duLmVtaXQoKSxcblx0XHRcdFx0fSxcblx0XHRcdFx0YWZ0ZXJJbml0OiAod2lkZ2V0KSA9PiB7XG5cdFx0XHRcdFx0dXNlRGlyZWN0aXZlRm9ySG9zdCh3aWRnZXQuZGlyZWN0aXZlcy5pdGVtRGlyZWN0aXZlKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0c2xvdFRlbXBsYXRlczogKCkgPT4gKHtcblx0XHRcdFx0XHRzdHJ1Y3R1cmU6IHRoaXMuc2xvdFN0cnVjdHVyZUZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdFx0XHRoZWFkZXI6IHRoaXMuc2xvdEhlYWRlckZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdFx0XHRjaGlsZHJlbjogdGhpcy5zbG90Qm9keUZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdFx0fSksXG5cdFx0XHRcdHNsb3RDaGlsZHJlbjogKCkgPT4gdGhpcy5zbG90Q2hpbGRyZW4sXG5cdFx0XHR9KSxcblx0XHQpO1xuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuYXBpLmluaXREb25lKCkpO1xuXHR9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIGZvciBjcmVhdGluZyBhbiBhY2NvcmRpb24gY29tcG9uZW50LlxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIGV4dGVuZHMgdGhlIGBCYXNlV2lkZ2V0RGlyZWN0aXZlYCBhbmQgcHJvdmlkZXMgdmFyaW91cyBpbnB1dHMgYW5kIG91dHB1dHNcbiAqIHRvIGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3IgYW5kIGFwcGVhcmFuY2Ugb2YgdGhlIGFjY29yZGlvbiBhbmQgaXRzIGl0ZW1zLlxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2F1QWNjb3JkaW9uXScsXG5cdGV4cG9ydEFzOiAnYXVBY2NvcmRpb24nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0Y2xhc3M6ICdhY2NvcmRpb24nLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25EaXJlY3RpdmUgZXh0ZW5kcyBCYXNlV2lkZ2V0RGlyZWN0aXZlPEFjY29yZGlvbldpZGdldD4ge1xuXHQvKipcblx0ICogSWYgYHRydWVgLCBvbmx5IG9uZSBhY2NvcmRpb24taXRlbSBhdCB0aGUgdGltZSBjYW4gc3RheSBvcGVuLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdUNsb3NlT3RoZXJzJywgdHJhbnNmb3JtOiBhdUJvb2xlYW5BdHRyaWJ1dGV9KSBjbG9zZU90aGVyczogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYmUgYXBwbGllZCBvbiB0aGUgd2lkZ2V0IG1haW4gY29udGFpbmVyXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0QElucHV0KCdhdUNsYXNzTmFtZScpIGNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBBbiBldmVudCBmaXJlZCB3aGVuIGFuIGl0ZW0gaXMgc2hvd24uXG5cdCAqXG5cdCAqIEV2ZW50IHBheWxvYWQgaXMgdGhlIGlkIG9mIHRoZSBpdGVtLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqICgpID0+IHt9XG5cdCAqIGBgYFxuXHQgKi9cblx0QE91dHB1dCgnYXVJdGVtU2hvd24nKSBpdGVtU2hvd246IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cblx0LyoqXG5cdCAqIEFuIGV2ZW50IGZpcmVkIHdoZW4gYW4gaXRlbSBpcyBoaWRkZW4uXG5cdCAqXG5cdCAqIEV2ZW50IHBheWxvYWQgaXMgdGhlIGlkIG9mIHRoZSBpdGVtLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqICgpID0+IHt9XG5cdCAqIGBgYFxuXHQgKi9cblx0QE91dHB1dCgnYXVJdGVtSGlkZGVuJykgaXRlbUhpZGRlbjogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuXHQvKipcblx0ICogSWYgYHRydWVgLCB0aGUgYWNjb3JkaW9uLWl0ZW0gYm9keSBjb250YWluZXIgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIERPTSB3aGVuIHRoZSBhY2NvcmRpb24taXRlbSBpcyBjb2xsYXBzZWQuIEl0IHdpbGwgYmUganVzdCBoaWRkZW4gb3RoZXJ3aXNlLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1SXRlbURlc3Ryb3lPbkhpZGUnLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIGl0ZW1EZXN0cm95T25IaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBJZiBgdHJ1ZWAsIGFjY29yZGlvbi1pdGVtIHdpbGwgYmUgYW5pbWF0ZWQuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYHRydWVgXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVJdGVtQW5pbWF0ZWQnLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIGl0ZW1BbmltYXRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIHRyYW5zaXRpb24gdG8gdXNlIGZvciB0aGUgYWNjb3JkaW9uLWl0ZW0gYm9keS1jb250YWluZXIgd2hlbiB0aGUgYWNjb3JkaW9uLWl0ZW0gaXMgdG9nZ2xlZC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiBjb2xsYXBzZVZlcnRpY2FsVHJhbnNpdGlvblxuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgnYXVJdGVtVHJhbnNpdGlvbicpIGl0ZW1UcmFuc2l0aW9uOiBUcmFuc2l0aW9uRm4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFN0cnVjdHVyZSBvZiB0aGUgYWNjb3JkaW9uLWl0ZW0uIFRoZSBkZWZhdWx0IGl0ZW0gc3RydWN0dXJlIGlzOiBhY2NvcmRpb24taXRlbVxuXHQgKiBjb250YWlucyBhY2NvcmRpb24gaGVhZGVyIGFuZCBhY2NvcmRpb24taXRlbSBib2R5IGNvbnRhaW5lcjsgdGhlIGFjY29yZGlvbiBoZWFkZXIgY29udGFpbnMgdGhlIGFjY29yZGlvbiBidXR0b25cblx0ICogKHRoYXQgY29udGFpbnMgYGhlYWRlcmApLCB3aGlsZSB0aGUgYWNjb3JkaW9uLWl0ZW0gYm9keSBjb250YWluZXIgY29udGFpbnMgdGhlIGFjY29yZGlvbiBib2R5ICh0aGF0IGNvbnRhaW5zIGBjaGlsZHJlbmApLlxuXHQgKiBUaGUgaXRlbVRyYW5zaXRpb24gaXMgYXBwbGllZCBvbiB0aGlzIGVsZW1lbnQuXG5cdCAqXG5cdCAqIEl0IGlzIGEgcHJvcCBvZiB0aGUgYWNjb3JkaW9uLWl0ZW0uXG5cdCAqL1xuXHRASW5wdXQoJ2F1SXRlbVN0cnVjdHVyZScpIGl0ZW1TdHJ1Y3R1cmU6IFNsb3RDb250ZW50PEFjY29yZGlvbkl0ZW1Db250ZXh0PjtcblxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYWRkIG9uIHRoZSBhY2NvcmRpb24taXRlbSBET00gZWxlbWVudC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRASW5wdXQoJ2F1SXRlbUNsYXNzTmFtZScpIGl0ZW1DbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYWRkIG9uIHRoZSBhY2NvcmRpb24taXRlbSBoZWFkZXIgRE9NIGVsZW1lbnQuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0QElucHV0KCdhdUl0ZW1IZWFkZXJDbGFzc05hbWUnKSBpdGVtSGVhZGVyQ2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIENTUyBjbGFzc2VzIHRvIGFkZCBvbiB0aGUgYWNjb3JkaW9uLWl0ZW0gdG9nZ2xlIGJ1dHRvbiBET00gZWxlbWVudC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRASW5wdXQoJ2F1SXRlbUJ1dHRvbkNsYXNzTmFtZScpIGl0ZW1CdXR0b25DbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYWRkIG9uIHRoZSBhY2NvcmRpb24taXRlbSBib2R5IGNvbnRhaW5lciBET00gZWxlbWVudC5cblx0ICogVGhlIGFjY29yZGlvbi1pdGVtIGJvZHkgY29udGFpbmVyIGlzIHRoZSBET00gZWxlbWVudCBvbiB3aGF0IHRoZSBpdGVtVHJhbnNpdGlvbiBpcyBhcHBsaWVkLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnJ2Bcblx0ICovXG5cdEBJbnB1dCgnYXVJdGVtQm9keUNvbnRhaW5lckNsYXNzTmFtZScpIGl0ZW1Cb2R5Q29udGFpbmVyQ2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIENTUyBjbGFzc2VzIHRvIGFkZCBvbiB0aGUgYWNjb3JkaW9uLWl0ZW0gYm9keSBET00gZWxlbWVudC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRASW5wdXQoJ2F1SXRlbUJvZHlDbGFzc05hbWUnKSBpdGVtQm9keUNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgaHRtbCB0YWcgdG8gdXNlIGZvciB0aGUgYWNjb3JkaW9uLWl0ZW0taGVhZGVyLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnJ2Bcblx0ICovXG5cdEBJbnB1dCgnYXVJdGVtSGVhZGluZ1RhZycpIGl0ZW1IZWFkaW5nVGFnOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoXG5cdFx0XHRjYWxsV2lkZ2V0RmFjdG9yeSh7XG5cdFx0XHRcdGZhY3Rvcnk6IGNyZWF0ZUFjY29yZGlvbixcblx0XHRcdFx0d2lkZ2V0TmFtZTogJ2FjY29yZGlvbicsXG5cdFx0XHRcdGV2ZW50czoge1xuXHRcdFx0XHRcdG9uSXRlbVNob3duOiAoaWQpID0+IHRoaXMuaXRlbVNob3duLmVtaXQoaWQpLFxuXHRcdFx0XHRcdG9uSXRlbUhpZGRlbjogKGlkKSA9PiB0aGlzLml0ZW1IaWRkZW4uZW1pdChpZCksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGFmdGVySW5pdDogKHdpZGdldCkgPT4ge1xuXHRcdFx0XHRcdHVzZURpcmVjdGl2ZUZvckhvc3Qod2lkZ2V0LmRpcmVjdGl2ZXMuYWNjb3JkaW9uRGlyZWN0aXZlKTtcblx0XHRcdFx0fSxcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==