@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,18 +1,17 @@
1
- import { BaseWidgetDirective, ComponentTemplate, ContentAsSlotDirective, SlotDirective, UseDirective, UseMultiDirective, auBooleanAttribute, } from '@agnos-ui/angular-headless';
1
+ import { BaseWidgetDirective, ComponentTemplate, SlotDirective, UseDirective, UseMultiDirective, auBooleanAttribute } from '@agnos-ui/angular-headless';
2
2
  import { createModal } from './modal.gen';
3
- import { writable } from '@amadeus-it-group/tansu';
4
3
  import { ChangeDetectionStrategy, Component, ContentChild, Directive, EventEmitter, Input, Output, TemplateRef, ViewChild, inject, } from '@angular/core';
5
4
  import { callWidgetFactory } from '../../config';
6
5
  import * as i0 from "@angular/core";
7
6
  const _c0 = ["header"];
8
7
  const _c1 = ["structure"];
9
- const _c2 = (a0, a1) => ({ state: a0, widget: a1 });
8
+ const _c2 = (a0, a1, a2) => ({ state: a0, api: a1, directives: a2 });
10
9
  function ModalDefaultSlotsComponent_ng_template_0_ng_template_1_Template(rf, ctx) { }
11
10
  function ModalDefaultSlotsComponent_ng_template_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
12
11
  i0.ɵɵelement(0, "button", 6);
13
12
  } if (rf & 2) {
14
- const widget_r1 = i0.ɵɵnextContext().widget;
15
- i0.ɵɵproperty("auUse", widget_r1.directives.closeButtonDirective);
13
+ const directives_r1 = i0.ɵɵnextContext().directives;
14
+ i0.ɵɵproperty("auUse", directives_r1.closeButtonDirective);
16
15
  } }
17
16
  function ModalDefaultSlotsComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
18
17
  i0.ɵɵelementStart(0, "h5", 4);
@@ -21,11 +20,12 @@ function ModalDefaultSlotsComponent_ng_template_0_Template(rf, ctx) { if (rf & 1
21
20
  i0.ɵɵtemplate(2, ModalDefaultSlotsComponent_ng_template_0_Conditional_2_Template, 1, 1, "button", 6);
22
21
  } if (rf & 2) {
23
22
  const state_r2 = ctx.state;
24
- const widget_r1 = ctx.widget;
23
+ const api_r3 = ctx.api;
24
+ const directives_r1 = ctx.directives;
25
25
  i0.ɵɵadvance();
26
- i0.ɵɵproperty("auSlot", state_r2.title)("auSlotProps", i0.ɵɵpureFunction2(3, _c2, state_r2, widget_r1));
26
+ i0.ɵɵproperty("auSlot", state_r2.title())("auSlotProps", i0.ɵɵpureFunction3(3, _c2, state_r2, api_r3, directives_r1));
27
27
  i0.ɵɵadvance();
28
- i0.ɵɵconditional(state_r2.closeButton ? 2 : -1);
28
+ i0.ɵɵconditional(state_r2.closeButton() ? 2 : -1);
29
29
  } }
30
30
  function ModalDefaultSlotsComponent_ng_template_2_Conditional_0_ng_template_1_Template(rf, ctx) { }
31
31
  function ModalDefaultSlotsComponent_ng_template_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
@@ -33,11 +33,12 @@ function ModalDefaultSlotsComponent_ng_template_2_Conditional_0_Template(rf, ctx
33
33
  i0.ɵɵtemplate(1, ModalDefaultSlotsComponent_ng_template_2_Conditional_0_ng_template_1_Template, 0, 0, "ng-template", 5);
34
34
  i0.ɵɵelementEnd();
35
35
  } if (rf & 2) {
36
- const ctx_r2 = i0.ɵɵnextContext();
37
- const state_r4 = ctx_r2.state;
38
- const widget_r5 = ctx_r2.widget;
36
+ const ctx_r3 = i0.ɵɵnextContext();
37
+ const state_r5 = ctx_r3.state;
38
+ const api_r6 = ctx_r3.api;
39
+ const directives_r7 = ctx_r3.directives;
39
40
  i0.ɵɵadvance();
40
- i0.ɵɵproperty("auSlot", state_r4.header)("auSlotProps", i0.ɵɵpureFunction2(2, _c2, state_r4, widget_r5));
41
+ i0.ɵɵproperty("auSlot", state_r5.header())("auSlotProps", i0.ɵɵpureFunction3(2, _c2, state_r5, api_r6, directives_r7));
41
42
  } }
42
43
  function ModalDefaultSlotsComponent_ng_template_2_ng_template_2_Template(rf, ctx) { }
43
44
  function ModalDefaultSlotsComponent_ng_template_2_Conditional_3_ng_template_1_Template(rf, ctx) { }
@@ -46,63 +47,67 @@ function ModalDefaultSlotsComponent_ng_template_2_Conditional_3_Template(rf, ctx
46
47
  i0.ɵɵtemplate(1, ModalDefaultSlotsComponent_ng_template_2_Conditional_3_ng_template_1_Template, 0, 0, "ng-template", 5);
47
48
  i0.ɵɵelementEnd();
48
49
  } if (rf & 2) {
49
- const ctx_r2 = i0.ɵɵnextContext();
50
- const state_r4 = ctx_r2.state;
51
- const widget_r5 = ctx_r2.widget;
50
+ const ctx_r3 = i0.ɵɵnextContext();
51
+ const state_r5 = ctx_r3.state;
52
+ const api_r6 = ctx_r3.api;
53
+ const directives_r7 = ctx_r3.directives;
52
54
  i0.ɵɵadvance();
53
- i0.ɵɵproperty("auSlot", state_r4.footer)("auSlotProps", i0.ɵɵpureFunction2(2, _c2, state_r4, widget_r5));
55
+ i0.ɵɵproperty("auSlot", state_r5.footer())("auSlotProps", i0.ɵɵpureFunction3(2, _c2, state_r5, api_r6, directives_r7));
54
56
  } }
55
57
  function ModalDefaultSlotsComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
56
- i0.ɵɵtemplate(0, ModalDefaultSlotsComponent_ng_template_2_Conditional_0_Template, 2, 5, "div", 7);
58
+ i0.ɵɵtemplate(0, ModalDefaultSlotsComponent_ng_template_2_Conditional_0_Template, 2, 6, "div", 7);
57
59
  i0.ɵɵelementStart(1, "div", 8);
58
60
  i0.ɵɵtemplate(2, ModalDefaultSlotsComponent_ng_template_2_ng_template_2_Template, 0, 0, "ng-template", 5);
59
61
  i0.ɵɵelementEnd();
60
- i0.ɵɵtemplate(3, ModalDefaultSlotsComponent_ng_template_2_Conditional_3_Template, 2, 5, "div", 9);
62
+ i0.ɵɵtemplate(3, ModalDefaultSlotsComponent_ng_template_2_Conditional_3_Template, 2, 6, "div", 9);
61
63
  } if (rf & 2) {
62
- const state_r4 = ctx.state;
63
- const widget_r5 = ctx.widget;
64
- i0.ɵɵconditional(state_r4.title ? 0 : -1);
64
+ const state_r5 = ctx.state;
65
+ const api_r6 = ctx.api;
66
+ const directives_r7 = ctx.directives;
67
+ i0.ɵɵconditional(state_r5.title() ? 0 : -1);
65
68
  i0.ɵɵadvance(2);
66
- i0.ɵɵproperty("auSlot", state_r4.children)("auSlotProps", i0.ɵɵpureFunction2(4, _c2, state_r4, widget_r5));
69
+ i0.ɵɵproperty("auSlot", state_r5.children())("auSlotProps", i0.ɵɵpureFunction3(4, _c2, state_r5, api_r6, directives_r7));
67
70
  i0.ɵɵadvance();
68
- i0.ɵɵconditional(state_r4.footer ? 3 : -1);
71
+ i0.ɵɵconditional(state_r5.footer() ? 3 : -1);
69
72
  } }
70
- const _c3 = ["auModal", ""];
71
- const _c4 = ["*"];
72
- const _c5 = (a0, a1) => [a0, a1];
73
+ const _c3 = ["content"];
74
+ const _c4 = ["auModal", ""];
75
+ const _c5 = ["*"];
76
+ const _c6 = (a0, a1) => [a0, a1];
73
77
  function ModalComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
74
78
  i0.ɵɵprojection(0);
75
79
  } }
76
- function ModalComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
80
+ function ModalComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
77
81
  i0.ɵɵelement(0, "div", 1);
78
82
  } if (rf & 2) {
79
83
  const ctx_r0 = i0.ɵɵnextContext();
80
- i0.ɵɵproperty("auUseMulti", i0.ɵɵpureFunction2(1, _c5, ctx_r0.widget.directives.backdropPortalDirective, ctx_r0.widget.directives.backdropDirective));
84
+ i0.ɵɵproperty("auUseMulti", i0.ɵɵpureFunction2(1, _c6, ctx_r0.directives.backdropPortalDirective, ctx_r0.directives.backdropDirective));
81
85
  } }
82
- function ModalComponent_Conditional_2_ng_template_3_Template(rf, ctx) { }
83
- function ModalComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
86
+ function ModalComponent_Conditional_3_ng_template_3_Template(rf, ctx) { }
87
+ function ModalComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
84
88
  i0.ɵɵelementStart(0, "div", 2)(1, "div")(2, "div", 3);
85
- i0.ɵɵtemplate(3, ModalComponent_Conditional_2_ng_template_3_Template, 0, 0, "ng-template", 4);
89
+ i0.ɵɵtemplate(3, ModalComponent_Conditional_3_ng_template_3_Template, 0, 0, "ng-template", 4);
86
90
  i0.ɵɵelementEnd()()();
87
91
  } if (rf & 2) {
88
92
  const ctx_r0 = i0.ɵɵnextContext();
89
- i0.ɵɵproperty("auUseMulti", i0.ɵɵpureFunction2(6, _c5, ctx_r0.widget.directives.modalPortalDirective, ctx_r0.widget.directives.modalDirective));
93
+ i0.ɵɵproperty("auUseMulti", i0.ɵɵpureFunction2(6, _c6, ctx_r0.directives.modalPortalDirective, ctx_r0.directives.modalDirective));
90
94
  i0.ɵɵadvance();
91
- i0.ɵɵclassMapInterpolate1("modal-dialog ", ctx_r0.state().fullscreen ? "modal-fullscreen" : "", "");
95
+ i0.ɵɵclassMapInterpolate1("modal-dialog ", ctx_r0.state.fullscreen() ? "modal-fullscreen" : "", "");
92
96
  i0.ɵɵadvance(2);
93
- i0.ɵɵproperty("auSlot", ctx_r0.state().structure)("auSlotProps", i0.ɵɵpureFunction2(9, _c2, ctx_r0.state(), ctx_r0.widget));
97
+ i0.ɵɵproperty("auSlot", ctx_r0.state.structure())("auSlotProps", i0.ɵɵpureFunction3(9, _c2, ctx_r0.state, ctx_r0.api, ctx_r0.directives));
94
98
  } }
95
99
  /**
96
100
  * Directive to provide the slot structure for the modal widget.
101
+ * This directive provides a template reference for the {@link ModalContext<Data>}.
97
102
  */
98
103
  export class ModalStructureDirective {
99
104
  constructor() {
100
105
  this.templateRef = inject((TemplateRef));
101
106
  }
102
- static ngTemplateContextGuard(dir, context) {
107
+ static ngTemplateContextGuard(_dir, context) {
103
108
  return true;
104
109
  }
105
- static { this.ɵfac = function ModalStructureDirective_Factory(t) { return new (t || ModalStructureDirective)(); }; }
110
+ static { this.ɵfac = function ModalStructureDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ModalStructureDirective)(); }; }
106
111
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ModalStructureDirective, selectors: [["ng-template", "auModalStructure", ""]], standalone: true }); }
107
112
  }
108
113
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalStructureDirective, [{
@@ -111,6 +116,7 @@ export class ModalStructureDirective {
111
116
  }], null, null); })();
112
117
  /**
113
118
  * Directive to provide the slot header for the modal widget.
119
+ * This directive provides a template reference for the {@link ModalContext<Data>}.
114
120
  */
115
121
  export class ModalHeaderDirective {
116
122
  constructor() {
@@ -119,7 +125,7 @@ export class ModalHeaderDirective {
119
125
  static ngTemplateContextGuard(_dir, context) {
120
126
  return true;
121
127
  }
122
- static { this.ɵfac = function ModalHeaderDirective_Factory(t) { return new (t || ModalHeaderDirective)(); }; }
128
+ static { this.ɵfac = function ModalHeaderDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ModalHeaderDirective)(); }; }
123
129
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ModalHeaderDirective, selectors: [["ng-template", "auModalHeader", ""]], standalone: true }); }
124
130
  }
125
131
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalHeaderDirective, [{
@@ -128,6 +134,7 @@ export class ModalHeaderDirective {
128
134
  }], null, null); })();
129
135
  /**
130
136
  * Directive to provide the slot title for the modal widget.
137
+ * This directive provides a template reference for the {@link ModalContext<Data>}.
131
138
  */
132
139
  export class ModalTitleDirective {
133
140
  constructor() {
@@ -136,7 +143,7 @@ export class ModalTitleDirective {
136
143
  static ngTemplateContextGuard(_dir, context) {
137
144
  return true;
138
145
  }
139
- static { this.ɵfac = function ModalTitleDirective_Factory(t) { return new (t || ModalTitleDirective)(); }; }
146
+ static { this.ɵfac = function ModalTitleDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ModalTitleDirective)(); }; }
140
147
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ModalTitleDirective, selectors: [["ng-template", "auModalTitle", ""]], standalone: true }); }
141
148
  }
142
149
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalTitleDirective, [{
@@ -145,6 +152,7 @@ export class ModalTitleDirective {
145
152
  }], null, null); })();
146
153
  /**
147
154
  * Directive to provide the default slot for the modal widget.
155
+ * This directive provides a template reference for the {@link ModalContext<Data>}.
148
156
  */
149
157
  export class ModalBodyDirective {
150
158
  constructor() {
@@ -153,7 +161,7 @@ export class ModalBodyDirective {
153
161
  static ngTemplateContextGuard(_dir, context) {
154
162
  return true;
155
163
  }
156
- static { this.ɵfac = function ModalBodyDirective_Factory(t) { return new (t || ModalBodyDirective)(); }; }
164
+ static { this.ɵfac = function ModalBodyDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ModalBodyDirective)(); }; }
157
165
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ModalBodyDirective, selectors: [["ng-template", "auModalBody", ""]], standalone: true }); }
158
166
  }
159
167
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalBodyDirective, [{
@@ -162,6 +170,7 @@ export class ModalBodyDirective {
162
170
  }], null, null); })();
163
171
  /**
164
172
  * Directive to provide the slot footer for the modal widget.
173
+ * This directive provides a template reference for the {@link ModalContext<Data>}.
165
174
  */
166
175
  export class ModalFooterDirective {
167
176
  constructor() {
@@ -170,7 +179,7 @@ export class ModalFooterDirective {
170
179
  static ngTemplateContextGuard(_dir, context) {
171
180
  return true;
172
181
  }
173
- static { this.ɵfac = function ModalFooterDirective_Factory(t) { return new (t || ModalFooterDirective)(); }; }
182
+ static { this.ɵfac = function ModalFooterDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ModalFooterDirective)(); }; }
174
183
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ModalFooterDirective, selectors: [["ng-template", "auModalFooter", ""]], standalone: true }); }
175
184
  }
176
185
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalFooterDirective, [{
@@ -180,8 +189,8 @@ export class ModalFooterDirective {
180
189
  /**
181
190
  * Component containing the default slots for the modal.
182
191
  */
183
- export class ModalDefaultSlotsComponent {
184
- static { this.ɵfac = function ModalDefaultSlotsComponent_Factory(t) { return new (t || ModalDefaultSlotsComponent)(); }; }
192
+ class ModalDefaultSlotsComponent {
193
+ static { this.ɵfac = function ModalDefaultSlotsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ModalDefaultSlotsComponent)(); }; }
185
194
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ModalDefaultSlotsComponent, selectors: [["ng-component"]], viewQuery: function ModalDefaultSlotsComponent_Query(rf, ctx) { if (rf & 1) {
186
195
  i0.ɵɵviewQuery(_c0, 7);
187
196
  i0.ɵɵviewQuery(_c1, 7);
@@ -190,7 +199,7 @@ export class ModalDefaultSlotsComponent {
190
199
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.header = _t.first);
191
200
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.structure = _t.first);
192
201
  } }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 4, vars: 0, consts: [["header", ""], ["structure", ""], ["auModalHeader", ""], ["auModalStructure", ""], [1, "modal-title"], [3, "auSlot", "auSlotProps"], [1, "btn-close", 3, "auUse"], [1, "modal-header"], [1, "modal-body"], [1, "modal-footer"]], template: function ModalDefaultSlotsComponent_Template(rf, ctx) { if (rf & 1) {
193
- i0.ɵɵtemplate(0, ModalDefaultSlotsComponent_ng_template_0_Template, 3, 6, "ng-template", 2, 0, i0.ɵɵtemplateRefExtractor)(2, ModalDefaultSlotsComponent_ng_template_2_Template, 4, 7, "ng-template", 3, 1, i0.ɵɵtemplateRefExtractor);
202
+ i0.ɵɵtemplate(0, ModalDefaultSlotsComponent_ng_template_0_Template, 3, 7, "ng-template", 2, 0, i0.ɵɵtemplateRefExtractor)(2, ModalDefaultSlotsComponent_ng_template_2_Template, 4, 8, "ng-template", 3, 1, i0.ɵɵtemplateRefExtractor);
194
203
  } }, dependencies: [SlotDirective, ModalHeaderDirective, ModalStructureDirective, UseDirective], encapsulation: 2, changeDetection: 0 }); }
195
204
  }
196
205
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalDefaultSlotsComponent, [{
@@ -200,26 +209,26 @@ export class ModalDefaultSlotsComponent {
200
209
  changeDetection: ChangeDetectionStrategy.OnPush,
201
210
  imports: [SlotDirective, ModalHeaderDirective, ModalStructureDirective, UseDirective],
202
211
  template: `
203
- <ng-template auModalHeader #header let-state="state" let-widget="widget">
212
+ <ng-template auModalHeader #header let-state="state" let-api="api" let-directives="directives">
204
213
  <h5 class="modal-title">
205
- <ng-template [auSlot]="state.title" [auSlotProps]="{state, widget}"></ng-template>
214
+ <ng-template [auSlot]="state.title()" [auSlotProps]="{state, api, directives}"></ng-template>
206
215
  </h5>
207
- @if (state.closeButton) {
208
- <button class="btn-close" [auUse]="widget.directives.closeButtonDirective"></button>
216
+ @if (state.closeButton()) {
217
+ <button class="btn-close" [auUse]="directives.closeButtonDirective"></button>
209
218
  }
210
219
  </ng-template>
211
- <ng-template auModalStructure #structure let-state="state" let-widget="widget">
212
- @if (state.title) {
220
+ <ng-template auModalStructure #structure let-state="state" let-api="api" let-directives="directives">
221
+ @if (state.title()) {
213
222
  <div class="modal-header">
214
- <ng-template [auSlot]="state.header" [auSlotProps]="{state, widget}"></ng-template>
223
+ <ng-template [auSlot]="state.header()" [auSlotProps]="{state, api, directives}"></ng-template>
215
224
  </div>
216
225
  }
217
226
  <div class="modal-body">
218
- <ng-template [auSlot]="state.children" [auSlotProps]="{state, widget}"></ng-template>
227
+ <ng-template [auSlot]="state.children()" [auSlotProps]="{state, api, directives}"></ng-template>
219
228
  </div>
220
- @if (state.footer) {
229
+ @if (state.footer()) {
221
230
  <div class="modal-footer">
222
- <ng-template [auSlot]="state.footer" [auSlotProps]="{state, widget}"></ng-template>
231
+ <ng-template [auSlot]="state.footer()" [auSlotProps]="{state, api, directives}"></ng-template>
223
232
  </div>
224
233
  }
225
234
  </ng-template>
@@ -232,7 +241,7 @@ export class ModalDefaultSlotsComponent {
232
241
  type: ViewChild,
233
242
  args: ['structure', { static: true }]
234
243
  }] }); })();
235
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModalDefaultSlotsComponent, { className: "ModalDefaultSlotsComponent", filePath: "components/modal/modal.component.ts", lineNumber: 117 }); })();
244
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModalDefaultSlotsComponent, { className: "ModalDefaultSlotsComponent", filePath: "components/modal/modal.component.ts", lineNumber: 112 }); })();
236
245
  /**
237
246
  * Default slot for modal header.
238
247
  */
@@ -241,16 +250,33 @@ export const modalDefaultSlotHeader = new ComponentTemplate(ModalDefaultSlotsCom
241
250
  * Default slot for modal structure.
242
251
  */
243
252
  export const modalDefaultSlotStructure = new ComponentTemplate(ModalDefaultSlotsComponent, 'structure');
244
- const defaultConfig = {
245
- header: modalDefaultSlotHeader,
246
- structure: modalDefaultSlotStructure,
247
- };
248
253
  /**
249
254
  * Modal component.
250
255
  */
251
256
  export class ModalComponent extends BaseWidgetDirective {
252
257
  constructor() {
253
- super(...arguments);
258
+ super(callWidgetFactory({
259
+ factory: createModal,
260
+ widgetName: 'modal',
261
+ defaultConfig: {
262
+ header: modalDefaultSlotHeader,
263
+ structure: modalDefaultSlotStructure,
264
+ },
265
+ events: {
266
+ onShown: () => this.shown.emit(),
267
+ onHidden: () => this.hidden.emit(),
268
+ onBeforeClose: (event) => this.beforeClose.emit(event),
269
+ onVisibleChange: (event) => this.visibleChange.emit(event),
270
+ },
271
+ slotTemplates: () => ({
272
+ children: this.slotDefaultFromContent?.templateRef,
273
+ footer: this.slotFooterFromContent?.templateRef,
274
+ header: this.slotHeaderFromContent?.templateRef,
275
+ structure: this.slotStructureFromContent?.templateRef,
276
+ title: this.slotTitleFromContent?.templateRef,
277
+ }),
278
+ slotChildren: () => this.slotChildren,
279
+ }));
254
280
  /**
255
281
  * Event to be triggered when the visible property changes.
256
282
  *
@@ -292,29 +318,8 @@ export class ModalComponent extends BaseWidgetDirective {
292
318
  * ```
293
319
  */
294
320
  this.shown = new EventEmitter();
295
- this.defaultSlots = writable(defaultConfig);
296
- this._widget = callWidgetFactory({
297
- factory: createModal,
298
- widgetName: 'modal',
299
- defaultConfig: this.defaultSlots,
300
- events: {
301
- onShown: () => this.shown.emit(),
302
- onHidden: () => this.hidden.emit(),
303
- onBeforeClose: (event) => this.beforeClose.emit(event),
304
- onVisibleChange: (event) => this.visibleChange.emit(event),
305
- },
306
- });
307
- }
308
- ngAfterContentChecked() {
309
- this._widget.patchSlots({
310
- children: this.slotDefaultFromContent?.templateRef,
311
- footer: this.slotFooterFromContent?.templateRef,
312
- header: this.slotHeaderFromContent?.templateRef,
313
- structure: this.slotStructureFromContent?.templateRef,
314
- title: this.slotTitleFromContent?.templateRef,
315
- });
316
321
  }
317
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵModalComponent_BaseFactory; return function ModalComponent_Factory(t) { return (ɵModalComponent_BaseFactory || (ɵModalComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ModalComponent)))(t || ModalComponent); }; })(); }
322
+ static { this.ɵfac = function ModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ModalComponent)(); }; }
318
323
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ModalComponent, selectors: [["", "auModal", ""]], contentQueries: function ModalComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
319
324
  i0.ɵɵcontentQuery(dirIndex, ModalStructureDirective, 5);
320
325
  i0.ɵɵcontentQuery(dirIndex, ModalHeaderDirective, 5);
@@ -328,16 +333,20 @@ export class ModalComponent extends BaseWidgetDirective {
328
333
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotTitleFromContent = _t.first);
329
334
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotDefaultFromContent = _t.first);
330
335
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotFooterFromContent = _t.first);
331
- } }, inputs: { animated: [2, "auAnimated", "animated", auBooleanAttribute], backdropTransition: [0, "auBackdropTransition", "backdropTransition"], modalTransition: [0, "auModalTransition", "modalTransition"], visible: [2, "auVisible", "visible", auBooleanAttribute], backdrop: [2, "auBackdrop", "backdrop", auBooleanAttribute], closeOnOutsideClick: [2, "auCloseOnOutsideClick", "closeOnOutsideClick", auBooleanAttribute], container: [0, "auContainer", "container"], ariaCloseButtonLabel: [0, "auAriaCloseButtonLabel", "ariaCloseButtonLabel"], backdropClass: [0, "auBackdropClass", "backdropClass"], closeButton: [2, "auCloseButton", "closeButton", auBooleanAttribute], className: [0, "auClassName", "className"], fullscreen: [2, "auFullscreen", "fullscreen", auBooleanAttribute], structure: [0, "auStructure", "structure"], header: [0, "auHeader", "header"], title: [0, "auTitle", "title"], children: [0, "auChildren", "children"], footer: [0, "auFooter", "footer"], contentData: [0, "auContentData", "contentData"] }, outputs: { visibleChange: "auVisibleChange", beforeClose: "auBeforeClose", hidden: "auHidden", shown: "auShown" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c3, ngContentSelectors: _c4, decls: 3, vars: 3, consts: [[3, "auContentAsSlot"], [1, "modal-backdrop", 3, "auUseMulti"], [1, "modal", "d-block", 3, "auUseMulti"], [1, "modal-content"], [3, "auSlot", "auSlotProps"]], template: function ModalComponent_Template(rf, ctx) { if (rf & 1) {
336
+ } }, viewQuery: function ModalComponent_Query(rf, ctx) { if (rf & 1) {
337
+ i0.ɵɵviewQuery(_c3, 7);
338
+ } if (rf & 2) {
339
+ let _t;
340
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotChildren = _t.first);
341
+ } }, inputs: { animated: [2, "auAnimated", "animated", auBooleanAttribute], backdropTransition: [0, "auBackdropTransition", "backdropTransition"], modalTransition: [0, "auModalTransition", "modalTransition"], visible: [2, "auVisible", "visible", auBooleanAttribute], backdrop: [2, "auBackdrop", "backdrop", auBooleanAttribute], closeOnOutsideClick: [2, "auCloseOnOutsideClick", "closeOnOutsideClick", auBooleanAttribute], container: [0, "auContainer", "container"], ariaCloseButtonLabel: [0, "auAriaCloseButtonLabel", "ariaCloseButtonLabel"], backdropClass: [0, "auBackdropClass", "backdropClass"], closeButton: [2, "auCloseButton", "closeButton", auBooleanAttribute], className: [0, "auClassName", "className"], fullscreen: [2, "auFullscreen", "fullscreen", auBooleanAttribute], structure: [0, "auStructure", "structure"], header: [0, "auHeader", "header"], title: [0, "auTitle", "title"], children: [0, "auChildren", "children"], footer: [0, "auFooter", "footer"], contentData: [0, "auContentData", "contentData"] }, outputs: { visibleChange: "auVisibleChange", beforeClose: "auBeforeClose", hidden: "auHidden", shown: "auShown" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c4, ngContentSelectors: _c5, decls: 4, vars: 2, consts: [["content", ""], [1, "modal-backdrop", 3, "auUseMulti"], [1, "modal", "d-block", 3, "auUseMulti"], [1, "modal-content"], [3, "auSlot", "auSlotProps"]], template: function ModalComponent_Template(rf, ctx) { if (rf & 1) {
332
342
  i0.ɵɵprojectionDef();
333
- i0.ɵɵtemplate(0, ModalComponent_ng_template_0_Template, 1, 0, "ng-template", 0)(1, ModalComponent_Conditional_1_Template, 1, 4, "div", 1)(2, ModalComponent_Conditional_2_Template, 4, 12, "div", 2);
343
+ i0.ɵɵtemplate(0, ModalComponent_ng_template_0_Template, 1, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(2, ModalComponent_Conditional_2_Template, 1, 4, "div", 1)(3, ModalComponent_Conditional_3_Template, 4, 13, "div", 2);
334
344
  } if (rf & 2) {
335
- i0.ɵɵproperty("auContentAsSlot", ctx.defaultSlots);
336
- i0.ɵɵadvance();
337
- i0.ɵɵconditional(!ctx.state().backdropHidden ? 1 : -1);
345
+ i0.ɵɵadvance(2);
346
+ i0.ɵɵconditional(!ctx.state.backdropHidden() ? 2 : -1);
338
347
  i0.ɵɵadvance();
339
- i0.ɵɵconditional(!ctx.state().hidden ? 2 : -1);
340
- } }, dependencies: [UseMultiDirective, SlotDirective, ContentAsSlotDirective], encapsulation: 2, changeDetection: 0 }); }
348
+ i0.ɵɵconditional(!ctx.state.hidden() ? 3 : -1);
349
+ } }, dependencies: [UseMultiDirective, SlotDirective], encapsulation: 2, changeDetection: 0 }); }
341
350
  }
342
351
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ModalComponent, [{
343
352
  type: Component,
@@ -345,24 +354,24 @@ export class ModalComponent extends BaseWidgetDirective {
345
354
  selector: '[auModal]',
346
355
  standalone: true,
347
356
  changeDetection: ChangeDetectionStrategy.OnPush,
348
- imports: [UseMultiDirective, SlotDirective, ContentAsSlotDirective],
357
+ imports: [UseMultiDirective, SlotDirective],
349
358
  template: `
350
- <ng-template [auContentAsSlot]="defaultSlots"><ng-content></ng-content></ng-template>
351
- @if (!state().backdropHidden) {
352
- <div class="modal-backdrop" [auUseMulti]="[widget.directives.backdropPortalDirective, widget.directives.backdropDirective]"></div>
359
+ <ng-template #content><ng-content></ng-content></ng-template>
360
+ @if (!state.backdropHidden()) {
361
+ <div class="modal-backdrop" [auUseMulti]="[directives.backdropPortalDirective, directives.backdropDirective]"></div>
353
362
  }
354
- @if (!state().hidden) {
355
- <div class="modal d-block" [auUseMulti]="[widget.directives.modalPortalDirective, widget.directives.modalDirective]">
356
- <div class="modal-dialog {{ state().fullscreen ? 'modal-fullscreen' : '' }}">
363
+ @if (!state.hidden()) {
364
+ <div class="modal d-block" [auUseMulti]="[directives.modalPortalDirective, directives.modalDirective]">
365
+ <div class="modal-dialog {{ state.fullscreen() ? 'modal-fullscreen' : '' }}">
357
366
  <div class="modal-content">
358
- <ng-template [auSlot]="state().structure" [auSlotProps]="{state: state(), widget}"></ng-template>
367
+ <ng-template [auSlot]="state.structure()" [auSlotProps]="{state, api, directives}"></ng-template>
359
368
  </div>
360
369
  </div>
361
370
  </div>
362
371
  }
363
372
  `,
364
373
  }]
365
- }], null, { animated: [{
374
+ }], () => [], { animated: [{
366
375
  type: Input,
367
376
  args: [{ alias: 'auAnimated', transform: auBooleanAttribute }]
368
377
  }], backdropTransition: [{
@@ -443,6 +452,9 @@ export class ModalComponent extends BaseWidgetDirective {
443
452
  }], shown: [{
444
453
  type: Output,
445
454
  args: ['auShown']
455
+ }], slotChildren: [{
456
+ type: ViewChild,
457
+ args: ['content', { static: true }]
446
458
  }] }); })();
447
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModalComponent, { className: "ModalComponent", filePath: "components/modal/modal.component.ts", lineNumber: 161 }); })();
448
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixhQUFhLEVBQ2IsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixrQkFBa0IsR0FDbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRCxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztJQXNFM0MsNEJBQW9GOzs7SUFBMUQsaUVBQWdEOzs7SUFKM0UsNkJBQXdCO0lBQ3ZCLHlHQUFvRTtJQUNyRSxpQkFBSztJQUNMLG9HQUF5Qjs7OztJQUZYLGNBQXNCO0lBQUMsQUFBdkIsdUNBQXNCLGdFQUFnQztJQUVwRSxjQUVDO0lBRkQsK0NBRUM7Ozs7SUFJQSw4QkFBMEI7SUFDekIsdUhBQXFFO0lBQ3RFLGlCQUFNOzs7OztJQURRLGNBQXVCO0lBQUMsQUFBeEIsd0NBQXVCLGdFQUFnQzs7Ozs7SUFPckUsOEJBQTBCO0lBQ3pCLHVIQUFxRTtJQUN0RSxpQkFBTTs7Ozs7SUFEUSxjQUF1QjtJQUFDLEFBQXhCLHdDQUF1QixnRUFBZ0M7OztJQVZ0RSxpR0FBbUI7SUFLbkIsOEJBQXdCO0lBQ3ZCLHlHQUF1RTtJQUN4RSxpQkFBTTtJQUNOLGlHQUFvQjs7OztJQVJwQix5Q0FJQztJQUVhLGVBQXlCO0lBQUMsQUFBMUIsMENBQXlCLGdFQUFnQztJQUV2RSxjQUlDO0lBSkQsMENBSUM7Ozs7OztJQWlDNEMsa0JBQXlCOzs7SUFFdEUseUJBQWtJOzs7SUFBdEcscUpBQStGOzs7O0lBS3pILEFBREQsQUFERCw4QkFBcUgsVUFDdkMsYUFDakQ7SUFDMUIsNkZBQW1GO0lBR3RGLEFBREMsQUFEQyxpQkFBTSxFQUNELEVBQ0Q7OztJQU5xQiwrSUFBeUY7SUFDOUcsY0FBdUU7SUFBdkUsbUdBQXVFO0lBRTdELGVBQTRCO0lBQUMsQUFBN0IsaURBQTRCLDBFQUF5Qzs7QUE3SHhGOztHQUVHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUVRLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBK0IsQ0FBQSxDQUFDLENBQUM7S0FJN0Q7SUFIQSxNQUFNLENBQUMsc0JBQXNCLENBQU8sR0FBa0MsRUFBRSxPQUFnQjtRQUN2RixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7d0ZBSlcsdUJBQXVCO29FQUF2Qix1QkFBdUI7O2lGQUF2Qix1QkFBdUI7Y0FEbkMsU0FBUztlQUFDLEVBQUMsUUFBUSxFQUFFLCtCQUErQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUM7O0FBUXhFOztHQUVHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVRLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBK0IsQ0FBQSxDQUFDLENBQUM7S0FJN0Q7SUFIQSxNQUFNLENBQUMsc0JBQXNCLENBQU8sSUFBZ0MsRUFBRSxPQUFnQjtRQUNyRixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7cUZBSlcsb0JBQW9CO29FQUFwQixvQkFBb0I7O2lGQUFwQixvQkFBb0I7Y0FEaEMsU0FBUztlQUFDLEVBQUMsUUFBUSxFQUFFLDRCQUE0QixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUM7O0FBUXJFOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQUVRLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBK0IsQ0FBQSxDQUFDLENBQUM7S0FJN0Q7SUFIQSxNQUFNLENBQUMsc0JBQXNCLENBQU8sSUFBK0IsRUFBRSxPQUFnQjtRQUNwRixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7b0ZBSlcsbUJBQW1CO29FQUFuQixtQkFBbUI7O2lGQUFuQixtQkFBbUI7Y0FEL0IsU0FBUztlQUFDLEVBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUM7O0FBUXBFOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVRLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBK0IsQ0FBQSxDQUFDLENBQUM7S0FJN0Q7SUFIQSxNQUFNLENBQUMsc0JBQXNCLENBQU8sSUFBOEIsRUFBRSxPQUFnQjtRQUNuRixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7bUZBSlcsa0JBQWtCO29FQUFsQixrQkFBa0I7O2lGQUFsQixrQkFBa0I7Y0FEOUIsU0FBUztlQUFDLEVBQUMsUUFBUSxFQUFFLDBCQUEwQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUM7O0FBUW5FOztHQUVHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVRLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBK0IsQ0FBQSxDQUFDLENBQUM7S0FJN0Q7SUFIQSxNQUFNLENBQUMsc0JBQXNCLENBQU8sSUFBZ0MsRUFBRSxPQUFnQjtRQUNyRixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7cUZBSlcsb0JBQW9CO29FQUFwQixvQkFBb0I7O2lGQUFwQixvQkFBb0I7Y0FEaEMsU0FBUztlQUFDLEVBQUMsUUFBUSxFQUFFLDRCQUE0QixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUM7O0FBUXJFOztHQUVHO0FBK0JILE1BQU0sT0FBTywwQkFBMEI7MkZBQTFCLDBCQUEwQjtvRUFBMUIsMEJBQTBCOzs7Ozs7OztZQWpCckMsQUFSQSx5SEFBeUUsNEdBUU07NEJBVnRFLGFBQWEsRUE5Q1gsb0JBQW9CLEVBWHBCLHVCQUF1QixFQXlEcUMsWUFBWTs7aUZBMkJ4RSwwQkFBMEI7Y0E5QnRDLFNBQVM7ZUFBQztnQkFDVixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxZQUFZLENBQUM7Z0JBQ3JGLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBd0JUO2FBQ0Q7Z0JBRXFDLE1BQU07a0JBQTFDLFNBQVM7bUJBQUMsUUFBUSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztZQUNLLFNBQVM7a0JBQWhELFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQzs7a0ZBRjFCLDBCQUEwQjtBQUt2Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksaUJBQWlCLENBQUMsMEJBQTBCLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFbEc7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGlCQUFpQixDQUFDLDBCQUEwQixFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRXhHLE1BQU0sYUFBYSxHQUE2QjtJQUMvQyxNQUFNLEVBQUUsc0JBQXNCO0lBQzlCLFNBQVMsRUFBRSx5QkFBeUI7Q0FDcEMsQ0FBQztBQUVGOztHQUVHO0FBc0JILE1BQU0sT0FBTyxjQUFxQixTQUFRLG1CQUFzQztJQXJCaEY7O1FBd0pDOzs7Ozs7Ozs7V0FTRztRQUN3QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFdkU7Ozs7Ozs7Ozs7V0FVRztRQUNzQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRWpGOzs7Ozs7O1dBT0c7UUFDaUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEQ7Ozs7Ozs7V0FPRztRQUNnQixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzQyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV2QyxZQUFPLEdBQUcsaUJBQWlCLENBQW9CO1lBQ3ZELE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFVBQVUsRUFBRSxPQUFPO1lBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUNoQyxNQUFNLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNoQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUN0RCxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUMxRDtTQUNELENBQUMsQ0FBQztLQVdIO0lBVEEscUJBQXFCO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsV0FBVztZQUNsRCxNQUFNLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVc7WUFDL0MsTUFBTSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxXQUFXO1lBQy9DLFNBQVMsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsV0FBVztZQUNyRCxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFdBQVc7U0FDdEMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs0TkF0TVcsY0FBYyxTQUFkLGNBQWM7b0VBQWQsY0FBYzt3Q0ErRlosdUJBQXVCO3dDQU92QixvQkFBb0I7d0NBT3BCLG1CQUFtQjt3Q0FPbkIsa0JBQWtCO3dDQU9sQixvQkFBb0I7Ozs7Ozs7OytEQXJITSxrQkFBa0IsNktBcUJuQixrQkFBa0IsMkNBT2pCLGtCQUFrQiw0RUFPUCxrQkFBa0IscU9BaUMxQixrQkFBa0IsNkZBY25CLGtCQUFrQjs7WUFuRzNELEFBSEEsQUFEQSwrRUFBOEMsMERBQ2YsMkRBR1I7O1lBSlYsa0RBQWdDO1lBQzdDLGNBRUM7WUFGRCxzREFFQztZQUNELGNBUUM7WUFSRCw4Q0FRQzs0QkFkUSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsc0JBQXNCOztpRkFpQnRELGNBQWM7Y0FyQjFCLFNBQVM7ZUFBQztnQkFDVixRQUFRLEVBQUUsV0FBVztnQkFDckIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLENBQUM7Z0JBQ25FLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7RUFjVDthQUNEO2dCQU82RCxRQUFRO2tCQUFwRSxLQUFLO21CQUFDLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUM7WUFPNUIsa0JBQWtCO2tCQUFoRCxLQUFLO21CQUFDLHNCQUFzQjtZQU9ELGVBQWU7a0JBQTFDLEtBQUs7bUJBQUMsbUJBQW1CO1lBT2tDLE9BQU87a0JBQWxFLEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBQztZQU9HLFFBQVE7a0JBQXBFLEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBQztZQU9hLG1CQUFtQjtrQkFBMUYsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUM7WUFZaEQsU0FBUztrQkFBOUIsS0FBSzttQkFBQyxhQUFhO1lBT2Esb0JBQW9CO2tCQUFwRCxLQUFLO21CQUFDLHdCQUF3QjtZQU9MLGFBQWE7a0JBQXRDLEtBQUs7bUJBQUMsaUJBQWlCO1lBT3dDLFdBQVc7a0JBQTFFLEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBQztZQU94QyxTQUFTO2tCQUE5QixLQUFLO21CQUFDLGFBQWE7WUFPMkMsVUFBVTtrQkFBeEUsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFDO1lBTXZDLFNBQVM7a0JBQTlCLEtBQUs7bUJBQUMsYUFBYTtZQUVwQix3QkFBd0I7a0JBRHZCLFlBQVk7bUJBQUMsdUJBQXVCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTW5DLE1BQU07a0JBQXhCLEtBQUs7bUJBQUMsVUFBVTtZQUVqQixxQkFBcUI7a0JBRHBCLFlBQVk7bUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTWpDLEtBQUs7a0JBQXRCLEtBQUs7bUJBQUMsU0FBUztZQUVoQixvQkFBb0I7a0JBRG5CLFlBQVk7bUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTTdCLFFBQVE7a0JBQTVCLEtBQUs7bUJBQUMsWUFBWTtZQUVuQixzQkFBc0I7a0JBRHJCLFlBQVk7bUJBQUMsa0JBQWtCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTTlCLE1BQU07a0JBQXhCLEtBQUs7bUJBQUMsVUFBVTtZQUVqQixxQkFBcUI7a0JBRHBCLFlBQVk7bUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTTNCLFdBQVc7a0JBQWxDLEtBQUs7bUJBQUMsZUFBZTtZQVlLLGFBQWE7a0JBQXZDLE1BQU07bUJBQUMsaUJBQWlCO1lBYUEsV0FBVztrQkFBbkMsTUFBTTttQkFBQyxlQUFlO1lBVUgsTUFBTTtrQkFBekIsTUFBTTttQkFBQyxVQUFVO1lBVUMsS0FBSztrQkFBdkIsTUFBTTttQkFBQyxTQUFTOztrRkE5S0wsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtTbG90Q29udGVudCwgVHJhbnNpdGlvbkZufSBmcm9tICdAYWdub3MtdWkvYW5ndWxhci1oZWFkbGVzcyc7XG5pbXBvcnQge1xuXHRCYXNlV2lkZ2V0RGlyZWN0aXZlLFxuXHRDb21wb25lbnRUZW1wbGF0ZSxcblx0Q29udGVudEFzU2xvdERpcmVjdGl2ZSxcblx0U2xvdERpcmVjdGl2ZSxcblx0VXNlRGlyZWN0aXZlLFxuXHRVc2VNdWx0aURpcmVjdGl2ZSxcblx0YXVCb29sZWFuQXR0cmlidXRlLFxufSBmcm9tICdAYWdub3MtdWkvYW5ndWxhci1oZWFkbGVzcyc7XG5pbXBvcnQgdHlwZSB7TW9kYWxDb250ZXh0LCBNb2RhbFByb3BzLCBNb2RhbFdpZGdldCwgTW9kYWxCZWZvcmVDbG9zZUV2ZW50fSBmcm9tICcuL21vZGFsLmdlbic7XG5pbXBvcnQge2NyZWF0ZU1vZGFsfSBmcm9tICcuL21vZGFsLmdlbic7XG5pbXBvcnQge3dyaXRhYmxlfSBmcm9tICdAYW1hZGV1cy1pdC1ncm91cC90YW5zdSc7XG5pbXBvcnQgdHlwZSB7QWZ0ZXJDb250ZW50Q2hlY2tlZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGQsXG5cdERpcmVjdGl2ZSxcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjYWxsV2lkZ2V0RmFjdG9yeX0gZnJvbSAnLi4vLi4vY29uZmlnJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdG8gcHJvdmlkZSB0aGUgc2xvdCBzdHJ1Y3R1cmUgZm9yIHRoZSBtb2RhbCB3aWRnZXQuXG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVNb2RhbFN0cnVjdHVyZV0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBNb2RhbFN0cnVjdHVyZURpcmVjdGl2ZTxEYXRhPiB7XG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxNb2RhbENvbnRleHQ8RGF0YT4+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8RGF0YT4oZGlyOiBNb2RhbFN0cnVjdHVyZURpcmVjdGl2ZTxEYXRhPiwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgTW9kYWxDb250ZXh0PERhdGE+IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBwcm92aWRlIHRoZSBzbG90IGhlYWRlciBmb3IgdGhlIG1vZGFsIHdpZGdldC5cbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdU1vZGFsSGVhZGVyXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIE1vZGFsSGVhZGVyRGlyZWN0aXZlPERhdGE+IHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPE1vZGFsQ29udGV4dDxEYXRhPj4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxEYXRhPihfZGlyOiBNb2RhbEhlYWRlckRpcmVjdGl2ZTxEYXRhPiwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgTW9kYWxDb250ZXh0PERhdGE+IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBwcm92aWRlIHRoZSBzbG90IHRpdGxlIGZvciB0aGUgbW9kYWwgd2lkZ2V0LlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1TW9kYWxUaXRsZV0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBNb2RhbFRpdGxlRGlyZWN0aXZlPERhdGE+IHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPE1vZGFsQ29udGV4dDxEYXRhPj4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxEYXRhPihfZGlyOiBNb2RhbFRpdGxlRGlyZWN0aXZlPERhdGE+LCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBNb2RhbENvbnRleHQ8RGF0YT4ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHByb3ZpZGUgdGhlIGRlZmF1bHQgc2xvdCBmb3IgdGhlIG1vZGFsIHdpZGdldC5cbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdU1vZGFsQm9keV0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBNb2RhbEJvZHlEaXJlY3RpdmU8RGF0YT4ge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8TW9kYWxDb250ZXh0PERhdGE+Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPERhdGE+KF9kaXI6IE1vZGFsQm9keURpcmVjdGl2ZTxEYXRhPiwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgTW9kYWxDb250ZXh0PERhdGE+IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBwcm92aWRlIHRoZSBzbG90IGZvb3RlciBmb3IgdGhlIG1vZGFsIHdpZGdldC5cbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdU1vZGFsRm9vdGVyXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIE1vZGFsRm9vdGVyRGlyZWN0aXZlPERhdGE+IHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPE1vZGFsQ29udGV4dDxEYXRhPj4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxEYXRhPihfZGlyOiBNb2RhbEZvb3RlckRpcmVjdGl2ZTxEYXRhPiwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgTW9kYWxDb250ZXh0PERhdGE+IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIENvbXBvbmVudCBjb250YWluaW5nIHRoZSBkZWZhdWx0IHNsb3RzIGZvciB0aGUgbW9kYWwuXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW1Nsb3REaXJlY3RpdmUsIE1vZGFsSGVhZGVyRGlyZWN0aXZlLCBNb2RhbFN0cnVjdHVyZURpcmVjdGl2ZSwgVXNlRGlyZWN0aXZlXSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctdGVtcGxhdGUgYXVNb2RhbEhlYWRlciAjaGVhZGVyIGxldC1zdGF0ZT1cInN0YXRlXCIgbGV0LXdpZGdldD1cIndpZGdldFwiPlxuXHRcdFx0PGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUudGl0bGVcIiBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCB3aWRnZXR9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvaDU+XG5cdFx0XHRAaWYgKHN0YXRlLmNsb3NlQnV0dG9uKSB7XG5cdFx0XHRcdDxidXR0b24gY2xhc3M9XCJidG4tY2xvc2VcIiBbYXVVc2VdPVwid2lkZ2V0LmRpcmVjdGl2ZXMuY2xvc2VCdXR0b25EaXJlY3RpdmVcIj48L2J1dHRvbj5cblx0XHRcdH1cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDxuZy10ZW1wbGF0ZSBhdU1vZGFsU3RydWN0dXJlICNzdHJ1Y3R1cmUgbGV0LXN0YXRlPVwic3RhdGVcIiBsZXQtd2lkZ2V0PVwid2lkZ2V0XCI+XG5cdFx0XHRAaWYgKHN0YXRlLnRpdGxlKSB7XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdF09XCJzdGF0ZS5oZWFkZXJcIiBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCB3aWRnZXR9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHR9XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdF09XCJzdGF0ZS5jaGlsZHJlblwiIFthdVNsb3RQcm9wc109XCJ7c3RhdGUsIHdpZGdldH1cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHRAaWYgKHN0YXRlLmZvb3Rlcikge1xuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUuZm9vdGVyXCIgW2F1U2xvdFByb3BzXT1cIntzdGF0ZSwgd2lkZ2V0fVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0fVxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsRGVmYXVsdFNsb3RzQ29tcG9uZW50PERhdGE+IHtcblx0QFZpZXdDaGlsZCgnaGVhZGVyJywge3N0YXRpYzogdHJ1ZX0pIGhlYWRlciE6IFRlbXBsYXRlUmVmPE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdEBWaWV3Q2hpbGQoJ3N0cnVjdHVyZScsIHtzdGF0aWM6IHRydWV9KSBzdHJ1Y3R1cmUhOiBUZW1wbGF0ZVJlZjxNb2RhbENvbnRleHQ8RGF0YT4+O1xufVxuXG4vKipcbiAqIERlZmF1bHQgc2xvdCBmb3IgbW9kYWwgaGVhZGVyLlxuICovXG5leHBvcnQgY29uc3QgbW9kYWxEZWZhdWx0U2xvdEhlYWRlciA9IG5ldyBDb21wb25lbnRUZW1wbGF0ZShNb2RhbERlZmF1bHRTbG90c0NvbXBvbmVudCwgJ2hlYWRlcicpO1xuXG4vKipcbiAqIERlZmF1bHQgc2xvdCBmb3IgbW9kYWwgc3RydWN0dXJlLlxuICovXG5leHBvcnQgY29uc3QgbW9kYWxEZWZhdWx0U2xvdFN0cnVjdHVyZSA9IG5ldyBDb21wb25lbnRUZW1wbGF0ZShNb2RhbERlZmF1bHRTbG90c0NvbXBvbmVudCwgJ3N0cnVjdHVyZScpO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPE1vZGFsUHJvcHM8YW55Pj4gPSB7XG5cdGhlYWRlcjogbW9kYWxEZWZhdWx0U2xvdEhlYWRlcixcblx0c3RydWN0dXJlOiBtb2RhbERlZmF1bHRTbG90U3RydWN0dXJlLFxufTtcblxuLyoqXG4gKiBNb2RhbCBjb21wb25lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ1thdU1vZGFsXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbVXNlTXVsdGlEaXJlY3RpdmUsIFNsb3REaXJlY3RpdmUsIENvbnRlbnRBc1Nsb3REaXJlY3RpdmVdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy10ZW1wbGF0ZSBbYXVDb250ZW50QXNTbG90XT1cImRlZmF1bHRTbG90c1wiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxuXHRcdEBpZiAoIXN0YXRlKCkuYmFja2Ryb3BIaWRkZW4pIHtcblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1iYWNrZHJvcFwiIFthdVVzZU11bHRpXT1cIlt3aWRnZXQuZGlyZWN0aXZlcy5iYWNrZHJvcFBvcnRhbERpcmVjdGl2ZSwgd2lkZ2V0LmRpcmVjdGl2ZXMuYmFja2Ryb3BEaXJlY3RpdmVdXCI+PC9kaXY+XG5cdFx0fVxuXHRcdEBpZiAoIXN0YXRlKCkuaGlkZGVuKSB7XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwgZC1ibG9ja1wiIFthdVVzZU11bHRpXT1cIlt3aWRnZXQuZGlyZWN0aXZlcy5tb2RhbFBvcnRhbERpcmVjdGl2ZSwgd2lkZ2V0LmRpcmVjdGl2ZXMubW9kYWxEaXJlY3RpdmVdXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cge3sgc3RhdGUoKS5mdWxsc2NyZWVuID8gJ21vZGFsLWZ1bGxzY3JlZW4nIDogJycgfX1cIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUoKS5zdHJ1Y3R1cmVcIiBbYXVTbG90UHJvcHNdPVwie3N0YXRlOiBzdGF0ZSgpLCB3aWRnZXR9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHR9XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50PERhdGE+IGV4dGVuZHMgQmFzZVdpZGdldERpcmVjdGl2ZTxNb2RhbFdpZGdldDxEYXRhPj4gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkIHtcblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIG1vZGFsIGFuZCBpdHMgYmFja2Ryb3AgKGlmIHByZXNlbnQpIHNob3VsZCBiZSBhbmltYXRlZCB3aGVuIHNob3duIG9yIGhpZGRlbi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdUFuaW1hdGVkJywgdHJhbnNmb3JtOiBhdUJvb2xlYW5BdHRyaWJ1dGV9KSBhbmltYXRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIHRyYW5zaXRpb24gdG8gdXNlIGZvciB0aGUgYmFja2Ryb3AgYmVoaW5kIHRoZSBtb2RhbCAoaWYgcHJlc2VudCkuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYGZhZGVUcmFuc2l0aW9uYFxuXHQgKi9cblx0QElucHV0KCdhdUJhY2tkcm9wVHJhbnNpdGlvbicpIGJhY2tkcm9wVHJhbnNpdGlvbjogVHJhbnNpdGlvbkZuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdHJhbnNpdGlvbiB0byB1c2UgZm9yIHRoZSBtb2RhbC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgZmFkZVRyYW5zaXRpb25gXG5cdCAqL1xuXHRASW5wdXQoJ2F1TW9kYWxUcmFuc2l0aW9uJykgbW9kYWxUcmFuc2l0aW9uOiBUcmFuc2l0aW9uRm4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIG1vZGFsIHNob3VsZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGVkLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdVZpc2libGUnLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIHZpc2libGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgYSBiYWNrZHJvcCBzaG91bGQgYmUgY3JlYXRlZCBiZWhpbmQgdGhlIG1vZGFsLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1QmFja2Ryb3AnLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIGJhY2tkcm9wOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRoZSBtb2RhbCBzaG91bGQgYmUgY2xvc2VkIHdoZW4gY2xpY2tpbmcgb24gdGhlIHZpZXdwb3J0IG91dHNpZGUgdGhlIG1vZGFsLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1Q2xvc2VPbk91dHNpZGVDbGljaycsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgY2xvc2VPbk91dHNpZGVDbGljazogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogV2hpY2ggZWxlbWVudCBzaG91bGQgY29udGFpbiB0aGUgbW9kYWwgYW5kIGJhY2tkcm9wIERPTSBlbGVtZW50cy5cblx0ICogSWYgaXQgaXMgbm90IG51bGwsIHRoZSBtb2RhbCBhbmQgYmFja2Ryb3AgRE9NIGVsZW1lbnRzIGFyZSBtb3ZlZCB0byB0aGUgc3BlY2lmaWVkIGNvbnRhaW5lci5cblx0ICogT3RoZXJ3aXNlLCB0aGV5IHN0YXkgd2hlcmUgdGhlIHdpZGdldCBpcyBsb2NhdGVkLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gZG9jdW1lbnQuYm9keSA6IG51bGxcblx0ICogYGBgXG5cdCAqL1xuXHRASW5wdXQoJ2F1Q29udGFpbmVyJykgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFZhbHVlIG9mIHRoZSBhcmlhLWxhYmVsIGF0dHJpYnV0ZSB0byBwdXQgb24gdGhlIGNsb3NlIGJ1dHRvbi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJ0Nsb3NlJ2Bcblx0ICovXG5cdEBJbnB1dCgnYXVBcmlhQ2xvc2VCdXR0b25MYWJlbCcpIGFyaWFDbG9zZUJ1dHRvbkxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIENsYXNzZXMgdG8gYWRkIG9uIHRoZSBiYWNrZHJvcCBET00gZWxlbWVudC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRASW5wdXQoJ2F1QmFja2Ryb3BDbGFzcycpIGJhY2tkcm9wQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogV2hldGhlciB0byBkaXNwbGF5IHRoZSBjbG9zZSBidXR0b24uXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYHRydWVgXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVDbG9zZUJ1dHRvbicsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgY2xvc2VCdXR0b246IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIENTUyBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgb24gdGhlIHdpZGdldCBtYWluIGNvbnRhaW5lclxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnJ2Bcblx0ICovXG5cdEBJbnB1dCgnYXVDbGFzc05hbWUnKSBjbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogT3B0aW9uIHRvIGNyZWF0ZSBhIGZ1bGxzY3JlZW4gbW9kYWwsIGFjY29yZGluZyB0byB0aGUgYm9vdHN0cmFwIGRvY3VtZW50YXRpb24uXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1RnVsbHNjcmVlbicsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgZnVsbHNjcmVlbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogU3RydWN0dXJlIG9mIHRoZSBtb2RhbC5cblx0ICogVGhlIGRlZmF1bHQgc3RydWN0dXJlIHVzZXMge0BsaW5rIE1vZGFsUHJvcHMuaGVhZGVyfGhlYWRlcn0sIHtAbGluayBNb2RhbFByb3BzLmNoaWxkcmVufGNoaWxkcmVufSBhbmQge0BsaW5rIE1vZGFsUHJvcHMuZm9vdGVyfGZvb3Rlcn0uXG5cdCAqL1xuXHRASW5wdXQoJ2F1U3RydWN0dXJlJykgc3RydWN0dXJlOiBTbG90Q29udGVudDxNb2RhbENvbnRleHQ8RGF0YT4+O1xuXHRAQ29udGVudENoaWxkKE1vZGFsU3RydWN0dXJlRGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG5cdHNsb3RTdHJ1Y3R1cmVGcm9tQ29udGVudDogTW9kYWxTdHJ1Y3R1cmVEaXJlY3RpdmU8RGF0YT4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIEhlYWRlciBvZiB0aGUgbW9kYWwuIFRoZSBkZWZhdWx0IGhlYWRlciBpbmNsdWRlcyB7QGxpbmsgTW9kYWxQcm9wcy50aXRsZXx0aXRsZX0uXG5cdCAqL1xuXHRASW5wdXQoJ2F1SGVhZGVyJykgaGVhZGVyOiBTbG90Q29udGVudDxNb2RhbENvbnRleHQ8RGF0YT4+O1xuXHRAQ29udGVudENoaWxkKE1vZGFsSGVhZGVyRGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG5cdHNsb3RIZWFkZXJGcm9tQ29udGVudDogTW9kYWxIZWFkZXJEaXJlY3RpdmU8RGF0YT4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRpdGxlIG9mIHRoZSBtb2RhbC5cblx0ICovXG5cdEBJbnB1dCgnYXVUaXRsZScpIHRpdGxlOiBTbG90Q29udGVudDxNb2RhbENvbnRleHQ8RGF0YT4+O1xuXHRAQ29udGVudENoaWxkKE1vZGFsVGl0bGVEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdFRpdGxlRnJvbUNvbnRlbnQ6IE1vZGFsVGl0bGVEaXJlY3RpdmU8RGF0YT4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIEJvZHkgb2YgdGhlIG1vZGFsLlxuXHQgKi9cblx0QElucHV0KCdhdUNoaWxkcmVuJykgY2hpbGRyZW46IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdEBDb250ZW50Q2hpbGQoTW9kYWxCb2R5RGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG5cdHNsb3REZWZhdWx0RnJvbUNvbnRlbnQ6IE1vZGFsQm9keURpcmVjdGl2ZTxEYXRhPiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogRm9vdGVyIG9mIHRoZSBtb2RhbC5cblx0ICovXG5cdEBJbnB1dCgnYXVGb290ZXInKSBmb290ZXI6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdEBDb250ZW50Q2hpbGQoTW9kYWxGb290ZXJEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdEZvb3RlckZyb21Db250ZW50OiBNb2RhbEZvb3RlckRpcmVjdGl2ZTxEYXRhPiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogRGF0YSB0byB1c2UgaW4gY29udGVudCBzbG90c1xuXHQgKi9cblx0QElucHV0KCdhdUNvbnRlbnREYXRhJykgY29udGVudERhdGE6IERhdGEgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSB2aXNpYmxlIHByb3BlcnR5IGNoYW5nZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSB2aXNpYmxlIC0gbmV3IHZhbHVlIG9mIHRoZSB2aXNpYmxlIHByb3Blcnlcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdEBPdXRwdXQoJ2F1VmlzaWJsZUNoYW5nZScpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSBtb2RhbCBpcyBhYm91dCB0byBiZSBjbG9zZWQgKGkuZS4gdGhlIHtAbGluayBNb2RhbEFwaS5jbG9zZXxjbG9zZX0gbWV0aG9kIHdhcyBjYWxsZWQpLlxuXHQgKlxuXHQgKiBAcGFyYW0gZXZlbnQgLSBldmVudCBnaXZpbmcgYWNjZXNzIHRvIHRoZSBhcmd1bWVudCBnaXZlbiB0byB0aGUge0BsaW5rIE1vZGFsQXBpLmNsb3NlfGNsb3NlfSBtZXRob2QgYW5kIGFsbG93aW5nXG5cdCAqIHRvIGNhbmNlbCB0aGUgY2xvc2UgcHJvY2Vzcy5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdEBPdXRwdXQoJ2F1QmVmb3JlQ2xvc2UnKSBiZWZvcmVDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW9kYWxCZWZvcmVDbG9zZUV2ZW50PigpO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgdHJhbnNpdGlvbiBpcyBjb21wbGV0ZWQgYW5kIHRoZSBtb2RhbCBpcyBub3QgdmlzaWJsZS5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdEBPdXRwdXQoJ2F1SGlkZGVuJykgaGlkZGVuID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgdHJhbnNpdGlvbiBpcyBjb21wbGV0ZWQgYW5kIHRoZSBtb2RhbCBpcyB2aXNpYmxlLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqICgpID0+IHt9XG5cdCAqIGBgYFxuXHQgKi9cblx0QE91dHB1dCgnYXVTaG93bicpIHNob3duID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG5cdHJlYWRvbmx5IGRlZmF1bHRTbG90cyA9IHdyaXRhYmxlKGRlZmF1bHRDb25maWcpO1xuXG5cdHJlYWRvbmx5IF93aWRnZXQgPSBjYWxsV2lkZ2V0RmFjdG9yeTxNb2RhbFdpZGdldDxEYXRhPj4oe1xuXHRcdGZhY3Rvcnk6IGNyZWF0ZU1vZGFsLFxuXHRcdHdpZGdldE5hbWU6ICdtb2RhbCcsXG5cdFx0ZGVmYXVsdENvbmZpZzogdGhpcy5kZWZhdWx0U2xvdHMsXG5cdFx0ZXZlbnRzOiB7XG5cdFx0XHRvblNob3duOiAoKSA9PiB0aGlzLnNob3duLmVtaXQoKSxcblx0XHRcdG9uSGlkZGVuOiAoKSA9PiB0aGlzLmhpZGRlbi5lbWl0KCksXG5cdFx0XHRvbkJlZm9yZUNsb3NlOiAoZXZlbnQpID0+IHRoaXMuYmVmb3JlQ2xvc2UuZW1pdChldmVudCksXG5cdFx0XHRvblZpc2libGVDaGFuZ2U6IChldmVudCkgPT4gdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZXZlbnQpLFxuXHRcdH0sXG5cdH0pO1xuXG5cdG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcblx0XHR0aGlzLl93aWRnZXQucGF0Y2hTbG90cyh7XG5cdFx0XHRjaGlsZHJlbjogdGhpcy5zbG90RGVmYXVsdEZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdGZvb3RlcjogdGhpcy5zbG90Rm9vdGVyRnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0aGVhZGVyOiB0aGlzLnNsb3RIZWFkZXJGcm9tQ29udGVudD8udGVtcGxhdGVSZWYsXG5cdFx0XHRzdHJ1Y3R1cmU6IHRoaXMuc2xvdFN0cnVjdHVyZUZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdHRpdGxlOiB0aGlzLnNsb3RUaXRsZUZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHR9IGFzIGFueSk7XG5cdH1cbn1cbiJdfQ==
459
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ModalComponent, { className: "ModalComponent", filePath: "components/modal/modal.component.ts", lineNumber: 151 }); })();
460
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdEosT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztJQTJFM0MsNEJBQTZFOzs7SUFBbkQsMERBQXlDOzs7SUFKcEUsNkJBQXdCO0lBQ3ZCLHlHQUErRTtJQUNoRixpQkFBSztJQUNMLG9HQUEyQjs7Ozs7SUFGYixjQUF3QjtJQUFDLEFBQXpCLHlDQUF3Qiw0RUFBeUM7SUFFL0UsY0FFQztJQUZELGlEQUVDOzs7O0lBSUEsOEJBQTBCO0lBQ3pCLHVIQUFnRjtJQUNqRixpQkFBTTs7Ozs7O0lBRFEsY0FBeUI7SUFBQyxBQUExQiwwQ0FBeUIsNEVBQXlDOzs7OztJQU9oRiw4QkFBMEI7SUFDekIsdUhBQWdGO0lBQ2pGLGlCQUFNOzs7Ozs7SUFEUSxjQUF5QjtJQUFDLEFBQTFCLDBDQUF5Qiw0RUFBeUM7OztJQVZqRixpR0FBcUI7SUFLckIsOEJBQXdCO0lBQ3ZCLHlHQUFrRjtJQUNuRixpQkFBTTtJQUNOLGlHQUFzQjs7Ozs7SUFSdEIsMkNBSUM7SUFFYSxlQUEyQjtJQUFDLEFBQTVCLDRDQUEyQiw0RUFBeUM7SUFFbEYs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QUFFLGtCQUFrQixFQUFDO1lBTXZDLFNBQVM7a0JBQTlCLEtBQUs7bUJBQUMsYUFBYTtZQUVwQix3QkFBd0I7a0JBRHZCLFlBQVk7bUJBQUMsdUJBQXVCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTW5DLE1BQU07a0JBQXhCLEtBQUs7bUJBQUMsVUFBVTtZQUVqQixxQkFBcUI7a0JBRHBCLFlBQVk7bUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTWpDLEtBQUs7a0JBQXRCLEtBQUs7bUJBQUMsU0FBUztZQUVoQixvQkFBb0I7a0JBRG5CLFlBQVk7bUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTTdCLFFBQVE7a0JBQTVCLEtBQUs7bUJBQUMsWUFBWTtZQUVuQixzQkFBc0I7a0JBRHJCLFlBQVk7bUJBQUMsa0JBQWtCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTTlCLE1BQU07a0JBQXhCLEtBQUs7bUJBQUMsVUFBVTtZQUVqQixxQkFBcUI7a0JBRHBCLFlBQVk7bUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTTNCLFdBQVc7a0JBQWxDLEtBQUs7bUJBQUMsZUFBZTtZQVlLLGFBQWE7a0JBQXZDLE1BQU07bUJBQUMsaUJBQWlCO1lBYUEsV0FBVztrQkFBbkMsTUFBTTttQkFBQyxlQUFlO1lBVUgsTUFBTTtrQkFBekIsTUFBTTttQkFBQyxVQUFVO1lBVUMsS0FBSztrQkFBdkIsTUFBTTttQkFBQyxTQUFTO1lBR2pCLFlBQVk7a0JBRFgsU0FBUzttQkFBQyxTQUFTLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDOztrRkFoTHhCLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7U2xvdENvbnRlbnQsIFRyYW5zaXRpb25Gbn0gZnJvbSAnQGFnbm9zLXVpL2FuZ3VsYXItaGVhZGxlc3MnO1xuaW1wb3J0IHtCYXNlV2lkZ2V0RGlyZWN0aXZlLCBDb21wb25lbnRUZW1wbGF0ZSwgU2xvdERpcmVjdGl2ZSwgVXNlRGlyZWN0aXZlLCBVc2VNdWx0aURpcmVjdGl2ZSwgYXVCb29sZWFuQXR0cmlidXRlfSBmcm9tICdAYWdub3MtdWkvYW5ndWxhci1oZWFkbGVzcyc7XG5pbXBvcnQgdHlwZSB7TW9kYWxDb250ZXh0LCBNb2RhbFdpZGdldCwgTW9kYWxCZWZvcmVDbG9zZUV2ZW50fSBmcm9tICcuL21vZGFsLmdlbic7XG5pbXBvcnQge2NyZWF0ZU1vZGFsfSBmcm9tICcuL21vZGFsLmdlbic7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGQsXG5cdERpcmVjdGl2ZSxcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjYWxsV2lkZ2V0RmFjdG9yeX0gZnJvbSAnLi4vLi4vY29uZmlnJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdG8gcHJvdmlkZSB0aGUgc2xvdCBzdHJ1Y3R1cmUgZm9yIHRoZSBtb2RhbCB3aWRnZXQuXG4gKiBUaGlzIGRpcmVjdGl2ZSBwcm92aWRlcyBhIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIHtAbGluayBNb2RhbENvbnRleHQ8RGF0YT59LlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1TW9kYWxTdHJ1Y3R1cmVdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgTW9kYWxTdHJ1Y3R1cmVEaXJlY3RpdmU8RGF0YT4ge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8TW9kYWxDb250ZXh0PERhdGE+Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPERhdGE+KF9kaXI6IE1vZGFsU3RydWN0dXJlRGlyZWN0aXZlPERhdGE+LCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBNb2RhbENvbnRleHQ8RGF0YT4ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHByb3ZpZGUgdGhlIHNsb3QgaGVhZGVyIGZvciB0aGUgbW9kYWwgd2lkZ2V0LlxuICogVGhpcyBkaXJlY3RpdmUgcHJvdmlkZXMgYSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSB7QGxpbmsgTW9kYWxDb250ZXh0PERhdGE+fS5cbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdU1vZGFsSGVhZGVyXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIE1vZGFsSGVhZGVyRGlyZWN0aXZlPERhdGE+IHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPE1vZGFsQ29udGV4dDxEYXRhPj4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxEYXRhPihfZGlyOiBNb2RhbEhlYWRlckRpcmVjdGl2ZTxEYXRhPiwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgTW9kYWxDb250ZXh0PERhdGE+IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBwcm92aWRlIHRoZSBzbG90IHRpdGxlIGZvciB0aGUgbW9kYWwgd2lkZ2V0LlxuICogVGhpcyBkaXJlY3RpdmUgcHJvdmlkZXMgYSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSB7QGxpbmsgTW9kYWxDb250ZXh0PERhdGE+fS5cbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdU1vZGFsVGl0bGVdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgTW9kYWxUaXRsZURpcmVjdGl2ZTxEYXRhPiB7XG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxNb2RhbENvbnRleHQ8RGF0YT4+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8RGF0YT4oX2RpcjogTW9kYWxUaXRsZURpcmVjdGl2ZTxEYXRhPiwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgTW9kYWxDb250ZXh0PERhdGE+IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBwcm92aWRlIHRoZSBkZWZhdWx0IHNsb3QgZm9yIHRoZSBtb2RhbCB3aWRnZXQuXG4gKiBUaGlzIGRpcmVjdGl2ZSBwcm92aWRlcyBhIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIHtAbGluayBNb2RhbENvbnRleHQ8RGF0YT59LlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1TW9kYWxCb2R5XScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIE1vZGFsQm9keURpcmVjdGl2ZTxEYXRhPiB7XG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxNb2RhbENvbnRleHQ8RGF0YT4+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8RGF0YT4oX2RpcjogTW9kYWxCb2R5RGlyZWN0aXZlPERhdGE+LCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBNb2RhbENvbnRleHQ8RGF0YT4ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHByb3ZpZGUgdGhlIHNsb3QgZm9vdGVyIGZvciB0aGUgbW9kYWwgd2lkZ2V0LlxuICogVGhpcyBkaXJlY3RpdmUgcHJvdmlkZXMgYSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSB7QGxpbmsgTW9kYWxDb250ZXh0PERhdGE+fS5cbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdU1vZGFsRm9vdGVyXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIE1vZGFsRm9vdGVyRGlyZWN0aXZlPERhdGE+IHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPE1vZGFsQ29udGV4dDxEYXRhPj4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxEYXRhPihfZGlyOiBNb2RhbEZvb3RlckRpcmVjdGl2ZTxEYXRhPiwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgTW9kYWxDb250ZXh0PERhdGE+IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIENvbXBvbmVudCBjb250YWluaW5nIHRoZSBkZWZhdWx0IHNsb3RzIGZvciB0aGUgbW9kYWwuXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW1Nsb3REaXJlY3RpdmUsIE1vZGFsSGVhZGVyRGlyZWN0aXZlLCBNb2RhbFN0cnVjdHVyZURpcmVjdGl2ZSwgVXNlRGlyZWN0aXZlXSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctdGVtcGxhdGUgYXVNb2RhbEhlYWRlciAjaGVhZGVyIGxldC1zdGF0ZT1cInN0YXRlXCIgbGV0LWFwaT1cImFwaVwiIGxldC1kaXJlY3RpdmVzPVwiZGlyZWN0aXZlc1wiPlxuXHRcdFx0PGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUudGl0bGUoKVwiIFthdVNsb3RQcm9wc109XCJ7c3RhdGUsIGFwaSwgZGlyZWN0aXZlc31cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9oNT5cblx0XHRcdEBpZiAoc3RhdGUuY2xvc2VCdXR0b24oKSkge1xuXHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuLWNsb3NlXCIgW2F1VXNlXT1cImRpcmVjdGl2ZXMuY2xvc2VCdXR0b25EaXJlY3RpdmVcIj48L2J1dHRvbj5cblx0XHRcdH1cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDxuZy10ZW1wbGF0ZSBhdU1vZGFsU3RydWN0dXJlICNzdHJ1Y3R1cmUgbGV0LXN0YXRlPVwic3RhdGVcIiBsZXQtYXBpPVwiYXBpXCIgbGV0LWRpcmVjdGl2ZXM9XCJkaXJlY3RpdmVzXCI+XG5cdFx0XHRAaWYgKHN0YXRlLnRpdGxlKCkpIHtcblx0XHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90XT1cInN0YXRlLmhlYWRlcigpXCIgW2F1U2xvdFByb3BzXT1cIntzdGF0ZSwgYXBpLCBkaXJlY3RpdmVzfVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0fVxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUuY2hpbGRyZW4oKVwiIFthdVNsb3RQcm9wc109XCJ7c3RhdGUsIGFwaSwgZGlyZWN0aXZlc31cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHRAaWYgKHN0YXRlLmZvb3RlcigpKSB7XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdF09XCJzdGF0ZS5mb290ZXIoKVwiIFthdVNsb3RQcm9wc109XCJ7c3RhdGUsIGFwaSwgZGlyZWN0aXZlc31cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdH1cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgLFxufSlcbmNsYXNzIE1vZGFsRGVmYXVsdFNsb3RzQ29tcG9uZW50PERhdGE+IHtcblx0QFZpZXdDaGlsZCgnaGVhZGVyJywge3N0YXRpYzogdHJ1ZX0pIGhlYWRlciE6IFRlbXBsYXRlUmVmPE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdEBWaWV3Q2hpbGQoJ3N0cnVjdHVyZScsIHtzdGF0aWM6IHRydWV9KSBzdHJ1Y3R1cmUhOiBUZW1wbGF0ZVJlZjxNb2RhbENvbnRleHQ8RGF0YT4+O1xufVxuXG4vKipcbiAqIERlZmF1bHQgc2xvdCBmb3IgbW9kYWwgaGVhZGVyLlxuICovXG5leHBvcnQgY29uc3QgbW9kYWxEZWZhdWx0U2xvdEhlYWRlcjogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PGFueT4+ID0gbmV3IENvbXBvbmVudFRlbXBsYXRlKE1vZGFsRGVmYXVsdFNsb3RzQ29tcG9uZW50LCAnaGVhZGVyJyk7XG5cbi8qKlxuICogRGVmYXVsdCBzbG90IGZvciBtb2RhbCBzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBtb2RhbERlZmF1bHRTbG90U3RydWN0dXJlOiBTbG90Q29udGVudDxNb2RhbENvbnRleHQ8YW55Pj4gPSBuZXcgQ29tcG9uZW50VGVtcGxhdGUoTW9kYWxEZWZhdWx0U2xvdHNDb21wb25lbnQsICdzdHJ1Y3R1cmUnKTtcblxuLyoqXG4gKiBNb2RhbCBjb21wb25lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ1thdU1vZGFsXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbVXNlTXVsdGlEaXJlY3RpdmUsIFNsb3REaXJlY3RpdmVdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT5cblx0XHRAaWYgKCFzdGF0ZS5iYWNrZHJvcEhpZGRlbigpKSB7XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtYmFja2Ryb3BcIiBbYXVVc2VNdWx0aV09XCJbZGlyZWN0aXZlcy5iYWNrZHJvcFBvcnRhbERpcmVjdGl2ZSwgZGlyZWN0aXZlcy5iYWNrZHJvcERpcmVjdGl2ZV1cIj48L2Rpdj5cblx0XHR9XG5cdFx0QGlmICghc3RhdGUuaGlkZGVuKCkpIHtcblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbCBkLWJsb2NrXCIgW2F1VXNlTXVsdGldPVwiW2RpcmVjdGl2ZXMubW9kYWxQb3J0YWxEaXJlY3RpdmUsIGRpcmVjdGl2ZXMubW9kYWxEaXJlY3RpdmVdXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cge3sgc3RhdGUuZnVsbHNjcmVlbigpID8gJ21vZGFsLWZ1bGxzY3JlZW4nIDogJycgfX1cIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUuc3RydWN0dXJlKClcIiBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCBhcGksIGRpcmVjdGl2ZXN9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHR9XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50PERhdGE+IGV4dGVuZHMgQmFzZVdpZGdldERpcmVjdGl2ZTxNb2RhbFdpZGdldDxEYXRhPj4ge1xuXHQvKipcblx0ICogV2hldGhlciB0aGUgbW9kYWwgYW5kIGl0cyBiYWNrZHJvcCAoaWYgcHJlc2VudCkgc2hvdWxkIGJlIGFuaW1hdGVkIHdoZW4gc2hvd24gb3IgaGlkZGVuLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1QW5pbWF0ZWQnLCB0cmFuc2Zvcm06IGF1Qm9vbGVhbkF0dHJpYnV0ZX0pIGFuaW1hdGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdHJhbnNpdGlvbiB0byB1c2UgZm9yIHRoZSBiYWNrZHJvcCBiZWhpbmQgdGhlIG1vZGFsIChpZiBwcmVzZW50KS5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgZmFkZVRyYW5zaXRpb25gXG5cdCAqL1xuXHRASW5wdXQoJ2F1QmFja2Ryb3BUcmFuc2l0aW9uJykgYmFja2Ryb3BUcmFuc2l0aW9uOiBUcmFuc2l0aW9uRm4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSB0cmFuc2l0aW9uIHRvIHVzZSBmb3IgdGhlIG1vZGFsLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGBmYWRlVHJhbnNpdGlvbmBcblx0ICovXG5cdEBJbnB1dCgnYXVNb2RhbFRyYW5zaXRpb24nKSBtb2RhbFRyYW5zaXRpb246IFRyYW5zaXRpb25GbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogV2hldGhlciB0aGUgbW9kYWwgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUgdHJhbnNpdGlvbiBpcyBjb21wbGV0ZWQuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1VmlzaWJsZScsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgdmlzaWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogV2hldGhlciBhIGJhY2tkcm9wIHNob3VsZCBiZSBjcmVhdGVkIGJlaGluZCB0aGUgbW9kYWwuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYHRydWVgXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVCYWNrZHJvcCcsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgYmFja2Ryb3A6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIG1vZGFsIHNob3VsZCBiZSBjbG9zZWQgd2hlbiBjbGlja2luZyBvbiB0aGUgdmlld3BvcnQgb3V0c2lkZSB0aGUgbW9kYWwuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYHRydWVgXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVDbG9zZU9uT3V0c2lkZUNsaWNrJywgdHJhbnNmb3JtOiBhdUJvb2xlYW5BdHRyaWJ1dGV9KSBjbG9zZU9uT3V0c2lkZUNsaWNrOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBXaGljaCBlbGVtZW50IHNob3VsZCBjb250YWluIHRoZSBtb2RhbCBhbmQgYmFja2Ryb3AgRE9NIGVsZW1lbnRzLlxuXHQgKiBJZiBpdCBpcyBub3QgbnVsbCwgdGhlIG1vZGFsIGFuZCBiYWNrZHJvcCBET00gZWxlbWVudHMgYXJlIG1vdmVkIHRvIHRoZSBzcGVjaWZpZWQgY29udGFpbmVyLlxuXHQgKiBPdGhlcndpc2UsIHRoZXkgc3RheSB3aGVyZSB0aGUgd2lkZ2V0IGlzIGxvY2F0ZWQuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBkb2N1bWVudC5ib2R5IDogbnVsbFxuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgnYXVDb250YWluZXInKSBjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVmFsdWUgb2YgdGhlIGFyaWEtbGFiZWwgYXR0cmlidXRlIHRvIHB1dCBvbiB0aGUgY2xvc2UgYnV0dG9uLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnQ2xvc2UnYFxuXHQgKi9cblx0QElucHV0KCdhdUFyaWFDbG9zZUJ1dHRvbkxhYmVsJykgYXJpYUNsb3NlQnV0dG9uTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQ2xhc3NlcyB0byBhZGQgb24gdGhlIGJhY2tkcm9wIERPTSBlbGVtZW50LlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnJ2Bcblx0ICovXG5cdEBJbnB1dCgnYXVCYWNrZHJvcENsYXNzJykgYmFja2Ryb3BDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGNsb3NlIGJ1dHRvbi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdUNsb3NlQnV0dG9uJywgdHJhbnNmb3JtOiBhdUJvb2xlYW5BdHRyaWJ1dGV9KSBjbG9zZUJ1dHRvbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYmUgYXBwbGllZCBvbiB0aGUgd2lkZ2V0IG1haW4gY29udGFpbmVyXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0QElucHV0KCdhdUNsYXNzTmFtZScpIGNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBPcHRpb24gdG8gY3JlYXRlIGEgZnVsbHNjcmVlbiBtb2RhbCwgYWNjb3JkaW5nIHRvIHRoZSBib290c3RyYXAgZG9jdW1lbnRhdGlvbi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVGdWxsc2NyZWVuJywgdHJhbnNmb3JtOiBhdUJvb2xlYW5BdHRyaWJ1dGV9KSBmdWxsc2NyZWVuOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBTdHJ1Y3R1cmUgb2YgdGhlIG1vZGFsLlxuXHQgKiBUaGUgZGVmYXVsdCBzdHJ1Y3R1cmUgdXNlcyB7QGxpbmsgTW9kYWxQcm9wcy5oZWFkZXJ8aGVhZGVyfSwge0BsaW5rIE1vZGFsUHJvcHMuY2hpbGRyZW58Y2hpbGRyZW59IGFuZCB7QGxpbmsgTW9kYWxQcm9wcy5mb290ZXJ8Zm9vdGVyfS5cblx0ICovXG5cdEBJbnB1dCgnYXVTdHJ1Y3R1cmUnKSBzdHJ1Y3R1cmU6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdEBDb250ZW50Q2hpbGQoTW9kYWxTdHJ1Y3R1cmVEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdFN0cnVjdHVyZUZyb21Db250ZW50OiBNb2RhbFN0cnVjdHVyZURpcmVjdGl2ZTxEYXRhPiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogSGVhZGVyIG9mIHRoZSBtb2RhbC4gVGhlIGRlZmF1bHQgaGVhZGVyIGluY2x1ZGVzIHtAbGluayBNb2RhbFByb3BzLnRpdGxlfHRpdGxlfS5cblx0ICovXG5cdEBJbnB1dCgnYXVIZWFkZXInKSBoZWFkZXI6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdEBDb250ZW50Q2hpbGQoTW9kYWxIZWFkZXJEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdEhlYWRlckZyb21Db250ZW50OiBNb2RhbEhlYWRlckRpcmVjdGl2ZTxEYXRhPiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGl0bGUgb2YgdGhlIG1vZGFsLlxuXHQgKi9cblx0QElucHV0KCdhdVRpdGxlJykgdGl0bGU6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdEBDb250ZW50Q2hpbGQoTW9kYWxUaXRsZURpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90VGl0bGVGcm9tQ29udGVudDogTW9kYWxUaXRsZURpcmVjdGl2ZTxEYXRhPiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQm9keSBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHRASW5wdXQoJ2F1Q2hpbGRyZW4nKSBjaGlsZHJlbjogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0QENvbnRlbnRDaGlsZChNb2RhbEJvZHlEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdERlZmF1bHRGcm9tQ29udGVudDogTW9kYWxCb2R5RGlyZWN0aXZlPERhdGE+IHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBGb290ZXIgb2YgdGhlIG1vZGFsLlxuXHQgKi9cblx0QElucHV0KCdhdUZvb3RlcicpIGZvb3RlcjogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0QENvbnRlbnRDaGlsZChNb2RhbEZvb3RlckRpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90Rm9vdGVyRnJvbUNvbnRlbnQ6IE1vZGFsRm9vdGVyRGlyZWN0aXZlPERhdGE+IHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBEYXRhIHRvIHVzZSBpbiBjb250ZW50IHNsb3RzXG5cdCAqL1xuXHRASW5wdXQoJ2F1Q29udGVudERhdGEnKSBjb250ZW50RGF0YTogRGF0YSB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogRXZlbnQgdG8gYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIHZpc2libGUgcHJvcGVydHkgY2hhbmdlcy5cblx0ICpcblx0ICogQHBhcmFtIHZpc2libGUgLSBuZXcgdmFsdWUgb2YgdGhlIHZpc2libGUgcHJvcGVyeVxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqICgpID0+IHt9XG5cdCAqIGBgYFxuXHQgKi9cblx0QE91dHB1dCgnYXVWaXNpYmxlQ2hhbmdlJykgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuXHQvKipcblx0ICogRXZlbnQgdG8gYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIG1vZGFsIGlzIGFib3V0IHRvIGJlIGNsb3NlZCAoaS5lLiB0aGUge0BsaW5rIE1vZGFsQXBpLmNsb3NlfGNsb3NlfSBtZXRob2Qgd2FzIGNhbGxlZCkuXG5cdCAqXG5cdCAqIEBwYXJhbSBldmVudCAtIGV2ZW50IGdpdmluZyBhY2Nlc3MgdG8gdGhlIGFyZ3VtZW50IGdpdmVuIHRvIHRoZSB7QGxpbmsgTW9kYWxBcGkuY2xvc2V8Y2xvc2V9IG1ldGhvZCBhbmQgYWxsb3dpbmdcblx0ICogdG8gY2FuY2VsIHRoZSBjbG9zZSBwcm9jZXNzLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqICgpID0+IHt9XG5cdCAqIGBgYFxuXHQgKi9cblx0QE91dHB1dCgnYXVCZWZvcmVDbG9zZScpIGJlZm9yZUNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RhbEJlZm9yZUNsb3NlRXZlbnQ+KCk7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlZCBhbmQgdGhlIG1vZGFsIGlzIG5vdCB2aXNpYmxlLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqICgpID0+IHt9XG5cdCAqIGBgYFxuXHQgKi9cblx0QE91dHB1dCgnYXVIaWRkZW4nKSBoaWRkZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlZCBhbmQgdGhlIG1vZGFsIGlzIHZpc2libGUuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogKCkgPT4ge31cblx0ICogYGBgXG5cdCAqL1xuXHRAT3V0cHV0KCdhdVNob3duJykgc2hvd24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0QFZpZXdDaGlsZCgnY29udGVudCcsIHtzdGF0aWM6IHRydWV9KVxuXHRzbG90Q2hpbGRyZW4/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcihcblx0XHRcdGNhbGxXaWRnZXRGYWN0b3J5PE1vZGFsV2lkZ2V0PERhdGE+Pih7XG5cdFx0XHRcdGZhY3Rvcnk6IGNyZWF0ZU1vZGFsLFxuXHRcdFx0XHR3aWRnZXROYW1lOiAnbW9kYWwnLFxuXHRcdFx0XHRkZWZhdWx0Q29uZmlnOiB7XG5cdFx0XHRcdFx0aGVhZGVyOiBtb2RhbERlZmF1bHRTbG90SGVhZGVyLFxuXHRcdFx0XHRcdHN0cnVjdHVyZTogbW9kYWxEZWZhdWx0U2xvdFN0cnVjdHVyZSxcblx0XHRcdFx0fSxcblx0XHRcdFx0ZXZlbnRzOiB7XG5cdFx0XHRcdFx0b25TaG93bjogKCkgPT4gdGhpcy5zaG93bi5lbWl0KCksXG5cdFx0XHRcdFx0b25IaWRkZW46ICgpID0+IHRoaXMuaGlkZGVuLmVtaXQoKSxcblx0XHRcdFx0XHRvbkJlZm9yZUNsb3NlOiAoZXZlbnQpID0+IHRoaXMuYmVmb3JlQ2xvc2UuZW1pdChldmVudCksXG5cdFx0XHRcdFx0b25WaXNpYmxlQ2hhbmdlOiAoZXZlbnQpID0+IHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGV2ZW50KSxcblx0XHRcdFx0fSxcblx0XHRcdFx0c2xvdFRlbXBsYXRlczogKCkgPT5cblx0XHRcdFx0XHQoe1xuXHRcdFx0XHRcdFx0Y2hpbGRyZW46IHRoaXMuc2xvdERlZmF1bHRGcm9tQ29udGVudD8udGVtcGxhdGVSZWYsXG5cdFx0XHRcdFx0XHRmb290ZXI6IHRoaXMuc2xvdEZvb3RlckZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdFx0XHRcdGhlYWRlcjogdGhpcy5zbG90SGVhZGVyRnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0XHRcdFx0c3RydWN0dXJlOiB0aGlzLnNsb3RTdHJ1Y3R1cmVGcm9tQ29udGVudD8udGVtcGxhdGVSZWYsXG5cdFx0XHRcdFx0XHR0aXRsZTogdGhpcy5zbG90VGl0bGVGcm9tQ29udGVudD8udGVtcGxhdGVSZWYsXG5cdFx0XHRcdFx0fSkgYXMgYW55LFxuXHRcdFx0XHRzbG90Q2hpbGRyZW46ICgpID0+IHRoaXMuc2xvdENoaWxkcmVuLFxuXHRcdFx0fSksXG5cdFx0KTtcblx0fVxufVxuIl19
@@ -24,4 +24,4 @@ export { export_modalOutsideClick as modalOutsideClick };
24
24
  */
25
25
  const export_modalCloseButtonClick = modalCloseButtonClick;
26
26
  export { export_modalCloseButtonClick as modalCloseButtonClick };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuZ2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuZ2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUl2STs7O0dBR0c7QUFDSCxNQUFNLDRCQUE0QixHQUEwQixxQkFBNEIsQ0FBQztBQUN6RixPQUFPLEVBQUMsNEJBQTRCLElBQUkscUJBQXFCLEVBQUMsQ0FBQztBQW1WL0Q7Ozs7R0FJRztBQUNILE1BQU0sa0JBQWtCLEdBQXdFLFdBQWtCLENBQUM7QUFDbkgsT0FBTyxFQUFDLGtCQUFrQixJQUFJLFdBQVcsRUFBQyxDQUFDO0FBSTNDOzs7R0FHRztBQUNILE1BQU0sd0JBQXdCLEdBQTZCLGlCQUF3QixDQUFDO0FBQ3BGLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxpQkFBaUIsRUFBQyxDQUFDO0FBSXZEOzs7R0FHRztBQUNILE1BQU0sNEJBQTRCLEdBQWlDLHFCQUE0QixDQUFDO0FBQ2hHLE9BQU8sRUFBQyw0QkFBNEIsSUFBSSxxQkFBcUIsRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnZXRNb2RhbERlZmF1bHRDb25maWcsIGNyZWF0ZU1vZGFsLCBtb2RhbE91dHNpZGVDbGljaywgbW9kYWxDbG9zZUJ1dHRvbkNsaWNrfSBmcm9tICdAYWdub3MtdWkvY29yZS1ib290c3RyYXAvY29tcG9uZW50cy9tb2RhbCc7XG5pbXBvcnQgdHlwZSB7V2lkZ2V0U2xvdENvbnRleHQsIFNsb3RDb250ZW50LCBUcmFuc2l0aW9uRm4sIFdpZGdldCwgUHJvcHNDb25maWcsIERpcmVjdGl2ZX0gZnJvbSAnQGFnbm9zLXVpL2FuZ3VsYXItaGVhZGxlc3MnO1xuXG5cbi8qKlxuICogUmV0cmlldmUgYSBzaGFsbG93IGNvcHkgb2YgdGhlIGRlZmF1bHQgbW9kYWwgY29uZmlnXG4gKiBAcmV0dXJucyB0aGUgZGVmYXVsdCBtb2RhbCBjb25maWdcbiAqL1xuY29uc3QgZXhwb3J0X2dldE1vZGFsRGVmYXVsdENvbmZpZzogKCkgPT4gTW9kYWxQcm9wczxhbnk+ID0gZ2V0TW9kYWxEZWZhdWx0Q29uZmlnIGFzIGFueTtcbmV4cG9ydCB7ZXhwb3J0X2dldE1vZGFsRGVmYXVsdENvbmZpZyBhcyBnZXRNb2RhbERlZmF1bHRDb25maWd9O1xuXG5cblxuZXhwb3J0IHR5cGUgTW9kYWxDb250ZXh0PERhdGE+ID0gV2lkZ2V0U2xvdENvbnRleHQ8TW9kYWxXaWRnZXQ8RGF0YT4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsU3RhdGU8RGF0YT4ge1xuXHRcblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIGJhY2tkcm9wIGlzIGZ1bGx5IGhpZGRlbi4gVGhpcyBjYW4gYmUgdHJ1ZSBlaXRoZXIgYmVjYXVzZSB7QGxpbmsgTW9kYWxQcm9wcy5iYWNrZHJvcHxiYWNrZHJvcH0gaXMgZmFsc2Ugb3Jcblx0ICogYmVjYXVzZSB7QGxpbmsgTW9kYWxQcm9wcy52aXNpYmxlfHZpc2libGV9IGlzIGZhbHNlIGFuZCB0aGVyZSBpcyBubyBjdXJyZW50IHRyYW5zaXRpb24uXG5cdCAqL1xuXHRiYWNrZHJvcEhpZGRlbjogYm9vbGVhbjtcblx0XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIG1vZGFsIGlzIGZ1bGx5IGhpZGRlbi5cblx0ICovXG5cdGhpZGRlbjogYm9vbGVhbjtcblx0XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlcmUgaXMgYW4gYWN0aXZlIHRyYW5zaXRpb24gdG8gZWl0aGVyIGRpc3BsYXkgb3IgaGlkZSB0aGUgbW9kYWwuXG5cdCAqL1xuXHR0cmFuc2l0aW9uaW5nOiBib29sZWFuO1xuXHRcblxuXHQvKipcblx0ICogRE9NIGVsZW1lbnQgb2YgdGhlIG1vZGFsLlxuXHQgKi9cblx0bW9kYWxFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cdFxuXHQvKipcblx0ICogVmFsdWUgb2YgdGhlIGFyaWEtbGFiZWwgYXR0cmlidXRlIHRvIHB1dCBvbiB0aGUgY2xvc2UgYnV0dG9uLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnQ2xvc2UnYFxuXHQgKi9cblx0YXJpYUNsb3NlQnV0dG9uTGFiZWw6IHN0cmluZztcblx0XG5cblx0LyoqXG5cdCAqIENsYXNzZXMgdG8gYWRkIG9uIHRoZSBiYWNrZHJvcCBET00gZWxlbWVudC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRiYWNrZHJvcENsYXNzOiBzdHJpbmc7XG5cdFxuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGNsb3NlIGJ1dHRvbi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdGNsb3NlQnV0dG9uOiBib29sZWFuO1xuXHRcblxuXHQvKipcblx0ICogV2hpY2ggZWxlbWVudCBzaG91bGQgY29udGFpbiB0aGUgbW9kYWwgYW5kIGJhY2tkcm9wIERPTSBlbGVtZW50cy5cblx0ICogSWYgaXQgaXMgbm90IG51bGwsIHRoZSBtb2RhbCBhbmQgYmFja2Ryb3AgRE9NIGVsZW1lbnRzIGFyZSBtb3ZlZCB0byB0aGUgc3BlY2lmaWVkIGNvbnRhaW5lci5cblx0ICogT3RoZXJ3aXNlLCB0aGV5IHN0YXkgd2hlcmUgdGhlIHdpZGdldCBpcyBsb2NhdGVkLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gZG9jdW1lbnQuYm9keSA6IG51bGxcblx0ICogYGBgXG5cdCAqL1xuXHRjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbDtcblx0XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIG1vZGFsIHNob3VsZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGVkLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcblx0ICovXG5cdHZpc2libGU6IGJvb2xlYW47XG5cdFxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYmUgYXBwbGllZCBvbiB0aGUgd2lkZ2V0IG1haW4gY29udGFpbmVyXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0Y2xhc3NOYW1lOiBzdHJpbmc7XG5cdFxuXHQvKipcblx0ICogRGF0YSB0byB1c2UgaW4gY29udGVudCBzbG90c1xuXHQgKi9cblx0Y29udGVudERhdGE6IERhdGE7XG5cdFxuXHQvKipcblx0ICogQm9keSBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHRjaGlsZHJlbjogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0XG5cblx0LyoqXG5cdCAqIEZvb3RlciBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHRmb290ZXI6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdFxuXG5cdC8qKlxuXHQgKiBIZWFkZXIgb2YgdGhlIG1vZGFsLiBUaGUgZGVmYXVsdCBoZWFkZXIgaW5jbHVkZXMge0BsaW5rIE1vZGFsUHJvcHMudGl0bGV8dGl0bGV9LlxuXHQgKi9cblx0aGVhZGVyOiBTbG90Q29udGVudDxNb2RhbENvbnRleHQ8RGF0YT4+O1xuXHRcblxuXHQvKipcblx0ICogU3RydWN0dXJlIG9mIHRoZSBtb2RhbC5cblx0ICogVGhlIGRlZmF1bHQgc3RydWN0dXJlIHVzZXMge0BsaW5rIE1vZGFsUHJvcHMuaGVhZGVyfGhlYWRlcn0sIHtAbGluayBNb2RhbFByb3BzLmNoaWxkcmVufGNoaWxkcmVufSBhbmQge0BsaW5rIE1vZGFsUHJvcHMuZm9vdGVyfGZvb3Rlcn0uXG5cdCAqL1xuXHRzdHJ1Y3R1cmU6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdFxuXG5cdC8qKlxuXHQgKiBUaXRsZSBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHR0aXRsZTogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0XG5cdC8qKlxuXHQgKiBPcHRpb24gdG8gY3JlYXRlIGEgZnVsbHNjcmVlbiBtb2RhbCwgYWNjb3JkaW5nIHRvIHRoZSBib290c3RyYXAgZG9jdW1lbnRhdGlvbi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG5cdCAqL1xuXHRmdWxsc2NyZWVuOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsUHJvcHM8RGF0YT4ge1xuXHRcblx0LyoqXG5cdCAqIFRoZSB0cmFuc2l0aW9uIHRvIHVzZSBmb3IgdGhlIGJhY2tkcm9wIGJlaGluZCB0aGUgbW9kYWwgKGlmIHByZXNlbnQpLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGBmYWRlVHJhbnNpdGlvbmBcblx0ICovXG5cdGJhY2tkcm9wVHJhbnNpdGlvbjogVHJhbnNpdGlvbkZuO1xuXHRcblxuXHQvKipcblx0ICogVGhlIHRyYW5zaXRpb24gdG8gdXNlIGZvciB0aGUgbW9kYWwuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYGZhZGVUcmFuc2l0aW9uYFxuXHQgKi9cblx0bW9kYWxUcmFuc2l0aW9uOiBUcmFuc2l0aW9uRm47XG5cdFxuXHQvKipcblx0ICogV2hldGhlciB0aGUgbW9kYWwgYW5kIGl0cyBiYWNrZHJvcCAoaWYgcHJlc2VudCkgc2hvdWxkIGJlIGFuaW1hdGVkIHdoZW4gc2hvd24gb3IgaGlkZGVuLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYFxuXHQgKi9cblx0YW5pbWF0ZWQ6IGJvb2xlYW47XG5cdFxuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIGEgYmFja2Ryb3Agc2hvdWxkIGJlIGNyZWF0ZWQgYmVoaW5kIHRoZSBtb2RhbC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdGJhY2tkcm9wOiBib29sZWFuO1xuXHRcblxuXHQvKipcblx0ICogV2hldGhlciB0aGUgbW9kYWwgc2hvdWxkIGJlIGNsb3NlZCB3aGVuIGNsaWNraW5nIG9uIHRoZSB2aWV3cG9ydCBvdXRzaWRlIHRoZSBtb2RhbC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdGNsb3NlT25PdXRzaWRlQ2xpY2s6IGJvb2xlYW47XG5cdFxuXG5cdC8qKlxuXHQgKiBFdmVudCB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgbW9kYWwgaXMgYWJvdXQgdG8gYmUgY2xvc2VkIChpLmUuIHRoZSB7QGxpbmsgTW9kYWxBcGkuY2xvc2V8Y2xvc2V9IG1ldGhvZCB3YXMgY2FsbGVkKS5cblx0ICpcblx0ICogQHBhcmFtIGV2ZW50IC0gZXZlbnQgZ2l2aW5nIGFjY2VzcyB0byB0aGUgYXJndW1lbnQgZ2l2ZW4gdG8gdGhlIHtAbGluayBNb2RhbEFwaS5jbG9zZXxjbG9zZX0gbWV0aG9kIGFuZCBhbGxvd2luZ1xuXHQgKiB0byBjYW5jZWwgdGhlIGNsb3NlIHByb2Nlc3MuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogKCkgPT4ge31cblx0ICogYGBgXG5cdCAqL1xuXHRvbkJlZm9yZUNsb3NlOiAoZXZlbnQ6IE1vZGFsQmVmb3JlQ2xvc2VFdmVudCkgPT4gdm9pZDtcblx0XG5cblx0LyoqXG5cdCAqIEV2ZW50IHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSB2aXNpYmxlIHByb3BlcnR5IGNoYW5nZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSB2aXNpYmxlIC0gbmV3IHZhbHVlIG9mIHRoZSB2aXNpYmxlIHByb3Blcnlcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdG9uVmlzaWJsZUNoYW5nZTogKHZpc2libGU6IGJvb2xlYW4pID0+IHZvaWQ7XG5cdFxuXG5cdC8qKlxuXHQgKiBFdmVudCB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgdHJhbnNpdGlvbiBpcyBjb21wbGV0ZWQgYW5kIHRoZSBtb2RhbCBpcyBub3QgdmlzaWJsZS5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdG9uSGlkZGVuOiAoKSA9PiB2b2lkO1xuXHRcblxuXHQvKipcblx0ICogRXZlbnQgdG8gYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGVkIGFuZCB0aGUgbW9kYWwgaXMgdmlzaWJsZS5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdG9uU2hvd246ICgpID0+IHZvaWQ7XG5cdFxuXHQvKipcblx0ICogVmFsdWUgb2YgdGhlIGFyaWEtbGFiZWwgYXR0cmlidXRlIHRvIHB1dCBvbiB0aGUgY2xvc2UgYnV0dG9uLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnQ2xvc2UnYFxuXHQgKi9cblx0YXJpYUNsb3NlQnV0dG9uTGFiZWw6IHN0cmluZztcblx0XG5cblx0LyoqXG5cdCAqIENsYXNzZXMgdG8gYWRkIG9uIHRoZSBiYWNrZHJvcCBET00gZWxlbWVudC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRiYWNrZHJvcENsYXNzOiBzdHJpbmc7XG5cdFxuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGNsb3NlIGJ1dHRvbi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdGNsb3NlQnV0dG9uOiBib29sZWFuO1xuXHRcblxuXHQvKipcblx0ICogV2hpY2ggZWxlbWVudCBzaG91bGQgY29udGFpbiB0aGUgbW9kYWwgYW5kIGJhY2tkcm9wIERPTSBlbGVtZW50cy5cblx0ICogSWYgaXQgaXMgbm90IG51bGwsIHRoZSBtb2RhbCBhbmQgYmFja2Ryb3AgRE9NIGVsZW1lbnRzIGFyZSBtb3ZlZCB0byB0aGUgc3BlY2lmaWVkIGNvbnRhaW5lci5cblx0ICogT3RoZXJ3aXNlLCB0aGV5IHN0YXkgd2hlcmUgdGhlIHdpZGdldCBpcyBsb2NhdGVkLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gZG9jdW1lbnQuYm9keSA6IG51bGxcblx0ICogYGBgXG5cdCAqL1xuXHRjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbDtcblx0XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIG1vZGFsIHNob3VsZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGVkLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcblx0ICovXG5cdHZpc2libGU6IGJvb2xlYW47XG5cdFxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYmUgYXBwbGllZCBvbiB0aGUgd2lkZ2V0IG1haW4gY29udGFpbmVyXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0Y2xhc3NOYW1lOiBzdHJpbmc7XG5cdFxuXHQvKipcblx0ICogRGF0YSB0byB1c2UgaW4gY29udGVudCBzbG90c1xuXHQgKi9cblx0Y29udGVudERhdGE6IERhdGE7XG5cdFxuXHQvKipcblx0ICogQm9keSBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHRjaGlsZHJlbjogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0XG5cblx0LyoqXG5cdCAqIEZvb3RlciBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHRmb290ZXI6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdFxuXG5cdC8qKlxuXHQgKiBIZWFkZXIgb2YgdGhlIG1vZGFsLiBUaGUgZGVmYXVsdCBoZWFkZXIgaW5jbHVkZXMge0BsaW5rIE1vZGFsUHJvcHMudGl0bGV8dGl0bGV9LlxuXHQgKi9cblx0aGVhZGVyOiBTbG90Q29udGVudDxNb2RhbENvbnRleHQ8RGF0YT4+O1xuXHRcblxuXHQvKipcblx0ICogU3RydWN0dXJlIG9mIHRoZSBtb2RhbC5cblx0ICogVGhlIGRlZmF1bHQgc3RydWN0dXJlIHVzZXMge0BsaW5rIE1vZGFsUHJvcHMuaGVhZGVyfGhlYWRlcn0sIHtAbGluayBNb2RhbFByb3BzLmNoaWxkcmVufGNoaWxkcmVufSBhbmQge0BsaW5rIE1vZGFsUHJvcHMuZm9vdGVyfGZvb3Rlcn0uXG5cdCAqL1xuXHRzdHJ1Y3R1cmU6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdFxuXG5cdC8qKlxuXHQgKiBUaXRsZSBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHR0aXRsZTogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0XG5cdC8qKlxuXHQgKiBPcHRpb24gdG8gY3JlYXRlIGEgZnVsbHNjcmVlbiBtb2RhbCwgYWNjb3JkaW5nIHRvIHRoZSBib290c3RyYXAgZG9jdW1lbnRhdGlvbi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG5cdCAqL1xuXHRmdWxsc2NyZWVuOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsQXBpPERhdGE+IHtcblx0XG5cdC8qKlxuXHQgKiBNZXRob2QgdG8gY2hhbmdlIHNvbWUgbW9kYWwgcHJvcGVydGllcy5cblx0ICovXG5cdHBhdGNoOiBNb2RhbFdpZGdldDxEYXRhPlsncGF0Y2gnXTtcblx0XG5cdC8qKlxuXHQgKiBDbG9zZXMgdGhlIG1vZGFsIHdpdGggdGhlIGdpdmVuIHJlc3VsdC5cblx0ICpcblx0ICogQHBhcmFtIHJlc3VsdCAtIHJlc3VsdCBvZiB0aGUgbW9kYWwsIGFzIHBhc3NlZCBpbiB0aGUge0BsaW5rIE1vZGFsQmVmb3JlQ2xvc2VFdmVudC5yZXN1bHR8cmVzdWx0fSBwcm9wZXJ0eSBvZiB0aGUgZXZlbnQgcGFzc2VkIHRvIHRoZVxuXHQgKiB7QGxpbmsgTW9kYWxQcm9wcy5vbkJlZm9yZUNsb3NlfG9uQmVmb3JlQ2xvc2V9IGV2ZW50IGhhbmRsZXIgKGFuZCBwb3NzaWJseSBjaGFuZ2VkIGJ5IGl0KSBhbmQgcmVzb2x2ZWQgYnkgdGhlIHByb21pc2UgcmV0dXJuZWQgYnkgdGhlIHtAbGluayBNb2RhbEFwaS5vcGVufG9wZW59IG1ldGhvZC5cblx0ICovXG5cdGNsb3NlKHJlc3VsdD86IGFueSk6IHZvaWQ7XG5cdFxuXG5cdC8qKlxuXHQgKiBPcGVucyB0aGUgbW9kYWwgYW5kIHJldHVybnMgYSBwcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2hlbiB0aGUgbW9kYWwgaXMgY2xvc2VkLlxuXHQgKiBUaGUgcmVzb2x2ZWQgdmFsdWUgaXMgdGhlIHJlc3VsdCBwYXNzZWQgdG8gdGhlIHtAbGluayBNb2RhbEFwaS5jbG9zZXxjbG9zZX0gbWV0aG9kIGFuZCBwb3NzaWJseSBjaGFuZ2VkIGJ5IHRoZVxuXHQgKiB7QGxpbmsgTW9kYWxQcm9wcy5vbkJlZm9yZUNsb3NlfG9uQmVmb3JlQ2xvc2V9IGV2ZW50IGhhbmRsZXJcblx0ICovXG5cdG9wZW4oKTogUHJvbWlzZTxhbnk+O1xufVxuXG5cblxuZXhwb3J0IHR5cGUgTW9kYWxXaWRnZXQ8RGF0YT4gPSBXaWRnZXQ8TW9kYWxQcm9wczxEYXRhPiwgTW9kYWxTdGF0ZTxEYXRhPiwgTW9kYWxBcGk8RGF0YT4sIE1vZGFsQWN0aW9ucywgTW9kYWxEaXJlY3RpdmVzPjtcblxuXG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBtb2RhbCB3aWRnZXQgaW5zdGFuY2UuXG4gKiBAcGFyYW0gY29uZmlnIC0gY29uZmlnIG9mIHRoZSBtb2RhbCwgZWl0aGVyIGFzIGEgc3RvcmUgb3IgYXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdmFsdWVzIG9yIHN0b3Jlcy5cbiAqIEByZXR1cm5zIGEgbmV3IG1vZGFsIHdpZGdldCBpbnN0YW5jZVxuICovXG5jb25zdCBleHBvcnRfY3JlYXRlTW9kYWw6IDxEYXRhPihjb25maWc/OiBQcm9wc0NvbmZpZzxNb2RhbFByb3BzPERhdGE+PikgPT4gTW9kYWxXaWRnZXQ8RGF0YT4gPSBjcmVhdGVNb2RhbCBhcyBhbnk7XG5leHBvcnQge2V4cG9ydF9jcmVhdGVNb2RhbCBhcyBjcmVhdGVNb2RhbH07XG5cblxuXG4vKipcbiAqIFZhbHVlIHByZXNlbnQgaW4gdGhlIHtAbGluayBNb2RhbEJlZm9yZUNsb3NlRXZlbnQucmVzdWx0fHJlc3VsdH0gcHJvcGVydHkgb2YgdGhlIHtAbGluayBNb2RhbFByb3BzLm9uQmVmb3JlQ2xvc2V8b25CZWZvcmVDbG9zZX0gZXZlbnRcbiAqIGFuZCByZXR1cm5lZCBieSB0aGUge0BsaW5rIE1vZGFsQXBpLm9wZW58b3Blbn0gbWV0aG9kLCB3aGVuIHRoZSBtb2RhbCBpcyBjbG9zZWQgYnkgYSBjbGljayBpbnNpZGUgdGhlIHZpZXdwb3J0IGJ1dCBvdXRzaWRlIHRoZSBtb2RhbC5cbiAqL1xuY29uc3QgZXhwb3J0X21vZGFsT3V0c2lkZUNsaWNrOiB0eXBlb2YgbW9kYWxPdXRzaWRlQ2xpY2sgPSBtb2RhbE91dHNpZGVDbGljayBhcyBhbnk7XG5leHBvcnQge2V4cG9ydF9tb2RhbE91dHNpZGVDbGljayBhcyBtb2RhbE91dHNpZGVDbGlja307XG5cblxuXG4vKipcbiAqIFZhbHVlIHByZXNlbnQgaW4gdGhlIHtAbGluayBNb2RhbEJlZm9yZUNsb3NlRXZlbnQucmVzdWx0fHJlc3VsdH0gcHJvcGVydHkgb2YgdGhlIHtAbGluayBNb2RhbFByb3BzLm9uQmVmb3JlQ2xvc2V8b25CZWZvcmVDbG9zZX0gZXZlbnRcbiAqIGFuZCByZXR1cm5lZCBieSB0aGUge0BsaW5rIE1vZGFsQXBpLm9wZW58b3Blbn0gbWV0aG9kLCB3aGVuIHRoZSBtb2RhbCBpcyBjbG9zZWQgYnkgYSBjbGljayBvbiB0aGUgY2xvc2UgYnV0dG9uLlxuICovXG5jb25zdCBleHBvcnRfbW9kYWxDbG9zZUJ1dHRvbkNsaWNrOiB0eXBlb2YgbW9kYWxDbG9zZUJ1dHRvbkNsaWNrID0gbW9kYWxDbG9zZUJ1dHRvbkNsaWNrIGFzIGFueTtcbmV4cG9ydCB7ZXhwb3J0X21vZGFsQ2xvc2VCdXR0b25DbGljayBhcyBtb2RhbENsb3NlQnV0dG9uQ2xpY2t9O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsQmVmb3JlQ2xvc2VFdmVudCB7XG5cdFxuXHQvKipcblx0ICogUmVzdWx0IG9mIHRoZSBtb2RhbCwgd2hpY2ggaXMgdGhlIHZhbHVlIHBhc3NlZCB0byB0aGUge0BsaW5rIE1vZGFsQXBpLmNsb3NlfGNsb3NlfSBtZXRob2Rcblx0ICogYW5kIGxhdGVyIHJlc29sdmVkIGJ5IHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IHRoZSB7QGxpbmsgTW9kYWxBcGkub3BlbnxvcGVufSBtZXRob2QuXG5cdCAqIElmIG5lZWRlZCwgaXQgY2FuIGJlIGNoYW5nZWQgZnJvbSB0aGUge0BsaW5rIE1vZGFsUHJvcHMub25CZWZvcmVDbG9zZXxvbkJlZm9yZUNsb3NlfSBldmVudCBoYW5kbGVyLlxuXHQgKi9cblx0cmVzdWx0OiBhbnk7XG5cdFxuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRvIGNhbmNlbCB0aGUgY2xvc2Ugb2YgdGhlIG1vZGFsLlxuXHQgKiBJdCBjYW4gYmUgY2hhbmdlZCBmcm9tIHRoZSB7QGxpbmsgTW9kYWxQcm9wcy5vbkJlZm9yZUNsb3NlfG9uQmVmb3JlQ2xvc2V9IGV2ZW50IGhhbmRsZXIuXG5cdCAqL1xuXHRjYW5jZWw6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kYWxBY3Rpb25zIHtcblx0XG5cdC8qKlxuXHQgKiBBY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBjbG9zZSBidXR0b24uIEl0IGNsb3NlcyB0aGUgbW9kYWwgd2l0aCB0aGUge0BsaW5rIG1vZGFsQ2xvc2VCdXR0b25DbGlja30gcmVzdWx0LlxuXHQgKiBAcGFyYW0gZXZlbnQgLSBtb3VzZSBldmVudFxuXHQgKi9cblx0Y2xvc2VCdXR0b25DbGljayhldmVudDogUGljazxNb3VzZUV2ZW50LCBuZXZlcj4pOiB2b2lkO1xuXHRcblxuXHQvKipcblx0ICogQWN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgbW9kYWwgRE9NIGVsZW1lbnQgKHdoaWNoIGlzIHN1cHBvc2VkIHRvIGhhdmUgdGhlIHNpemUgb2YgdGhlIGZ1bGwgdmlld3BvcnQpLlxuXHQgKiBJZiB0aGUgY2xpY2sgaXMgbm90IGRvbmUgb24gYSBkZXNjZW5kYW50IG9mIHRoZSBtb2RhbCBET00gZWxlbWVudCwgaXQgaXMgY29uc2lkZXJlZCB0byBiZSBkb25lIG91dHNpZGUgdGhlIG1vZGFsXG5cdCAqIGFuZCwgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUge0BsaW5rIE1vZGFsUHJvcHMuY2xvc2VPbk91dHNpZGVDbGlja3xjbG9zZU9uT3V0c2lkZUNsaWNrfSBwcm9wLCB0aGUgbW9kYWwgaXMgb3IgaXNuJ3QgY2xvc2VkXG5cdCAqICh3aXRoIHRoZSB7QGxpbmsgbW9kYWxPdXRzaWRlQ2xpY2t9IHJlc3VsdCkuXG5cdCAqIEBwYXJhbSBldmVudCAtIG1vdXNlIGV2ZW50XG5cdCAqL1xuXHRtb2RhbENsaWNrKGV2ZW50OiBQaWNrPE1vdXNlRXZlbnQsICd0YXJnZXQnIHwgJ2N1cnJlbnRUYXJnZXQnPik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kYWxEaXJlY3RpdmVzIHtcblx0XG5cdC8qKlxuXHQgKiBEaXJlY3RpdmUgdG8gcHV0IG9uIHRoZSBtb2RhbCBET00gZWxlbWVudC5cblx0ICovXG5cdG1vZGFsRGlyZWN0aXZlOiBEaXJlY3RpdmU7XG5cdFxuXG5cdC8qKlxuXHQgKiBEaXJlY3RpdmUgdG8gcHV0IG9uIHRoZSBiYWNrZHJvcCBET00gZWxlbWVudC5cblx0ICovXG5cdGJhY2tkcm9wRGlyZWN0aXZlOiBEaXJlY3RpdmU7XG5cdFxuXG5cdC8qKlxuXHQgKiBQb3J0YWwgZGlyZWN0aXZlIHRvIHB1dCBvbiB0aGUgbW9kYWwgRE9NIGVsZW1lbnQuXG5cdCAqL1xuXHRtb2RhbFBvcnRhbERpcmVjdGl2ZTogRGlyZWN0aXZlO1xuXHRcblxuXHQvKipcblx0ICogUG9ydGFsIGRpcmVjdGl2ZSB0byBwdXQgb24gdGhlIGJhY2tkcm9wIERPTSBlbGVtZW50LlxuXHQgKi9cblx0YmFja2Ryb3BQb3J0YWxEaXJlY3RpdmU6IERpcmVjdGl2ZTtcblx0XG5cblx0LyoqXG5cdCAqIERpcmVjdGl2ZSB0aGF0IGFkZHMgYWxsIHRoZSBuZWNlc3NhcnkgYXR0cmlidXRlcyB0byB0aGUgY2xvc2UgYnV0dG9uXG5cdCAqL1xuXHRjbG9zZUJ1dHRvbkRpcmVjdGl2ZTogRGlyZWN0aXZlO1xuXHRcblx0LyoqXG5cdCAqIERpcmVjdGl2ZSB0byBhcHBseSB0byB0aGUgZGlhbG9nIGVsZW1lbnQgd2hlbiB1c2luZyB0aGUgbmF0aXZlIFtIVE1MRGlhbG9nRWxlbWVudF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hUTUxEaWFsb2dFbGVtZW50KVxuXHQgKi9cblx0ZGlhbG9nRGlyZWN0aXZlOiBEaXJlY3RpdmU7XG59XG5cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuZ2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuZ2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUl2STs7O0dBR0c7QUFDSCxNQUFNLDRCQUE0QixHQUEwQixxQkFBNEIsQ0FBQztBQUN6RixPQUFPLEVBQUMsNEJBQTRCLElBQUkscUJBQXFCLEVBQUMsQ0FBQztBQTRXL0Q7Ozs7R0FJRztBQUNILE1BQU0sa0JBQWtCLEdBQXdFLFdBQWtCLENBQUM7QUFDbkgsT0FBTyxFQUFDLGtCQUFrQixJQUFJLFdBQVcsRUFBQyxDQUFDO0FBSTNDOzs7R0FHRztBQUNILE1BQU0sd0JBQXdCLEdBQTZCLGlCQUF3QixDQUFDO0FBQ3BGLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxpQkFBaUIsRUFBQyxDQUFDO0FBSXZEOzs7R0FHRztBQUNILE1BQU0sNEJBQTRCLEdBQWlDLHFCQUE0QixDQUFDO0FBQ2hHLE9BQU8sRUFBQyw0QkFBNEIsSUFBSSxxQkFBcUIsRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnZXRNb2RhbERlZmF1bHRDb25maWcsIGNyZWF0ZU1vZGFsLCBtb2RhbE91dHNpZGVDbGljaywgbW9kYWxDbG9zZUJ1dHRvbkNsaWNrfSBmcm9tICdAYWdub3MtdWkvY29yZS1ib290c3RyYXAvY29tcG9uZW50cy9tb2RhbCc7XG5pbXBvcnQgdHlwZSB7V2lkZ2V0U2xvdENvbnRleHQsIFNsb3RDb250ZW50LCBUcmFuc2l0aW9uRm4sIFdpZGdldCwgUHJvcHNDb25maWcsIERpcmVjdGl2ZX0gZnJvbSAnQGFnbm9zLXVpL2FuZ3VsYXItaGVhZGxlc3MnO1xuXG5cbi8qKlxuICogUmV0cmlldmUgYSBzaGFsbG93IGNvcHkgb2YgdGhlIGRlZmF1bHQgbW9kYWwgY29uZmlnXG4gKiBAcmV0dXJucyB0aGUgZGVmYXVsdCBtb2RhbCBjb25maWdcbiAqL1xuY29uc3QgZXhwb3J0X2dldE1vZGFsRGVmYXVsdENvbmZpZzogKCkgPT4gTW9kYWxQcm9wczxhbnk+ID0gZ2V0TW9kYWxEZWZhdWx0Q29uZmlnIGFzIGFueTtcbmV4cG9ydCB7ZXhwb3J0X2dldE1vZGFsRGVmYXVsdENvbmZpZyBhcyBnZXRNb2RhbERlZmF1bHRDb25maWd9O1xuXG5cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjb250ZXh0IGZvciBhIG1vZGFsIGNvbXBvbmVudC5cbiAqXG4gKiBAdGVtcGxhdGUgRGF0YSAtIFRoZSB0eXBlIG9mIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBtb2RhbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2RhbENvbnRleHQ8RGF0YT4gZXh0ZW5kcyBXaWRnZXRTbG90Q29udGV4dDxNb2RhbFdpZGdldDxEYXRhPj4ge31cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzdGF0ZSBvZiBhIG1vZGFsIGNvbXBvbmVudC5cbiAqXG4gKiBAdGVtcGxhdGUgRGF0YSAtIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgbW9kYWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kYWxTdGF0ZTxEYXRhPiB7XG5cdFxuXHQvKipcblx0ICogV2hldGhlciB0aGUgYmFja2Ryb3AgaXMgZnVsbHkgaGlkZGVuLiBUaGlzIGNhbiBiZSB0cnVlIGVpdGhlciBiZWNhdXNlIHtAbGluayBNb2RhbFByb3BzLmJhY2tkcm9wfGJhY2tkcm9wfSBpcyBmYWxzZSBvclxuXHQgKiBiZWNhdXNlIHtAbGluayBNb2RhbFByb3BzLnZpc2libGV8dmlzaWJsZX0gaXMgZmFsc2UgYW5kIHRoZXJlIGlzIG5vIGN1cnJlbnQgdHJhbnNpdGlvbi5cblx0ICovXG5cdGJhY2tkcm9wSGlkZGVuOiBib29sZWFuO1xuXHRcblxuXHQvKipcblx0ICogV2hldGhlciB0aGUgbW9kYWwgaXMgZnVsbHkgaGlkZGVuLlxuXHQgKi9cblx0aGlkZGVuOiBib29sZWFuO1xuXHRcblxuXHQvKipcblx0ICogV2hldGhlciB0aGVyZSBpcyBhbiBhY3RpdmUgdHJhbnNpdGlvbiB0byBlaXRoZXIgZGlzcGxheSBvciBoaWRlIHRoZSBtb2RhbC5cblx0ICovXG5cdHRyYW5zaXRpb25pbmc6IGJvb2xlYW47XG5cdFxuXG5cdC8qKlxuXHQgKiBET00gZWxlbWVudCBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHRtb2RhbEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcblx0XG5cdC8qKlxuXHQgKiBWYWx1ZSBvZiB0aGUgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdG8gcHV0IG9uIHRoZSBjbG9zZSBidXR0b24uXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCdDbG9zZSdgXG5cdCAqL1xuXHRhcmlhQ2xvc2VCdXR0b25MYWJlbDogc3RyaW5nO1xuXHRcblxuXHQvKipcblx0ICogQ2xhc3NlcyB0byBhZGQgb24gdGhlIGJhY2tkcm9wIERPTSBlbGVtZW50LlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnJ2Bcblx0ICovXG5cdGJhY2tkcm9wQ2xhc3M6IHN0cmluZztcblx0XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgY2xvc2UgYnV0dG9uLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYFxuXHQgKi9cblx0Y2xvc2VCdXR0b246IGJvb2xlYW47XG5cdFxuXG5cdC8qKlxuXHQgKiBXaGljaCBlbGVtZW50IHNob3VsZCBjb250YWluIHRoZSBtb2RhbCBhbmQgYmFja2Ryb3AgRE9NIGVsZW1lbnRzLlxuXHQgKiBJZiBpdCBpcyBub3QgbnVsbCwgdGhlIG1vZGFsIGFuZCBiYWNrZHJvcCBET00gZWxlbWVudHMgYXJlIG1vdmVkIHRvIHRoZSBzcGVjaWZpZWQgY29udGFpbmVyLlxuXHQgKiBPdGhlcndpc2UsIHRoZXkgc3RheSB3aGVyZSB0aGUgd2lkZ2V0IGlzIGxvY2F0ZWQuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBkb2N1bWVudC5ib2R5IDogbnVsbFxuXHQgKiBgYGBcblx0ICovXG5cdGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsO1xuXHRcblxuXHQvKipcblx0ICogV2hldGhlciB0aGUgbW9kYWwgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUgdHJhbnNpdGlvbiBpcyBjb21wbGV0ZWQuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuXHQgKi9cblx0dmlzaWJsZTogYm9vbGVhbjtcblx0XG5cdC8qKlxuXHQgKiBDU1MgY2xhc3NlcyB0byBiZSBhcHBsaWVkIG9uIHRoZSB3aWRnZXQgbWFpbiBjb250YWluZXJcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRjbGFzc05hbWU6IHN0cmluZztcblx0XG5cdC8qKlxuXHQgKiBEYXRhIHRvIHVzZSBpbiBjb250ZW50IHNsb3RzXG5cdCAqL1xuXHRjb250ZW50RGF0YTogRGF0YTtcblx0XG5cdC8qKlxuXHQgKiBCb2R5IG9mIHRoZSBtb2RhbC5cblx0ICovXG5cdGNoaWxkcmVuOiBTbG90Q29udGVudDxNb2RhbENvbnRleHQ8RGF0YT4+O1xuXHRcblxuXHQvKipcblx0ICogRm9vdGVyIG9mIHRoZSBtb2RhbC5cblx0ICovXG5cdGZvb3RlcjogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0XG5cblx0LyoqXG5cdCAqIEhlYWRlciBvZiB0aGUgbW9kYWwuIFRoZSBkZWZhdWx0IGhlYWRlciBpbmNsdWRlcyB7QGxpbmsgTW9kYWxQcm9wcy50aXRsZXx0aXRsZX0uXG5cdCAqL1xuXHRoZWFkZXI6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdFxuXG5cdC8qKlxuXHQgKiBTdHJ1Y3R1cmUgb2YgdGhlIG1vZGFsLlxuXHQgKiBUaGUgZGVmYXVsdCBzdHJ1Y3R1cmUgdXNlcyB7QGxpbmsgTW9kYWxQcm9wcy5oZWFkZXJ8aGVhZGVyfSwge0BsaW5rIE1vZGFsUHJvcHMuY2hpbGRyZW58Y2hpbGRyZW59IGFuZCB7QGxpbmsgTW9kYWxQcm9wcy5mb290ZXJ8Zm9vdGVyfS5cblx0ICovXG5cdHN0cnVjdHVyZTogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0XG5cblx0LyoqXG5cdCAqIFRpdGxlIG9mIHRoZSBtb2RhbC5cblx0ICovXG5cdHRpdGxlOiBTbG90Q29udGVudDxNb2RhbENvbnRleHQ8RGF0YT4+O1xuXHRcblx0LyoqXG5cdCAqIE9wdGlvbiB0byBjcmVhdGUgYSBmdWxsc2NyZWVuIG1vZGFsLCBhY2NvcmRpbmcgdG8gdGhlIGJvb3RzdHJhcCBkb2N1bWVudGF0aW9uLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcblx0ICovXG5cdGZ1bGxzY3JlZW46IGJvb2xlYW47XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgcHJvcGVydGllcyBmb3IgYSBtb2RhbCBjb21wb25lbnQuXG4gKlxuICogQHRlbXBsYXRlIERhdGEgLSBUaGUgdHlwZSBvZiBkYXRhIHRoYXQgdGhlIG1vZGFsIHdpbGwgaGFuZGxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsUHJvcHM8RGF0YT4ge1xuXHRcblx0LyoqXG5cdCAqIFRoZSB0cmFuc2l0aW9uIHRvIHVzZSBmb3IgdGhlIGJhY2tkcm9wIGJlaGluZCB0aGUgbW9kYWwgKGlmIHByZXNlbnQpLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGBmYWRlVHJhbnNpdGlvbmBcblx0ICovXG5cdGJhY2tkcm9wVHJhbnNpdGlvbjogVHJhbnNpdGlvbkZuO1xuXHRcblxuXHQvKipcblx0ICogVGhlIHRyYW5zaXRpb24gdG8gdXNlIGZvciB0aGUgbW9kYWwuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYGZhZGVUcmFuc2l0aW9uYFxuXHQgKi9cblx0bW9kYWxUcmFuc2l0aW9uOiBUcmFuc2l0aW9uRm47XG5cdFxuXHQvKipcblx0ICogV2hldGhlciB0aGUgbW9kYWwgYW5kIGl0cyBiYWNrZHJvcCAoaWYgcHJlc2VudCkgc2hvdWxkIGJlIGFuaW1hdGVkIHdoZW4gc2hvd24gb3IgaGlkZGVuLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYFxuXHQgKi9cblx0YW5pbWF0ZWQ6IGJvb2xlYW47XG5cdFxuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIGEgYmFja2Ryb3Agc2hvdWxkIGJlIGNyZWF0ZWQgYmVoaW5kIHRoZSBtb2RhbC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdGJhY2tkcm9wOiBib29sZWFuO1xuXHRcblxuXHQvKipcblx0ICogV2hldGhlciB0aGUgbW9kYWwgc2hvdWxkIGJlIGNsb3NlZCB3aGVuIGNsaWNraW5nIG9uIHRoZSB2aWV3cG9ydCBvdXRzaWRlIHRoZSBtb2RhbC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdGNsb3NlT25PdXRzaWRlQ2xpY2s6IGJvb2xlYW47XG5cdFxuXG5cdC8qKlxuXHQgKiBFdmVudCB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgbW9kYWwgaXMgYWJvdXQgdG8gYmUgY2xvc2VkIChpLmUuIHRoZSB7QGxpbmsgTW9kYWxBcGkuY2xvc2V8Y2xvc2V9IG1ldGhvZCB3YXMgY2FsbGVkKS5cblx0ICpcblx0ICogQHBhcmFtIGV2ZW50IC0gZXZlbnQgZ2l2aW5nIGFjY2VzcyB0byB0aGUgYXJndW1lbnQgZ2l2ZW4gdG8gdGhlIHtAbGluayBNb2RhbEFwaS5jbG9zZXxjbG9zZX0gbWV0aG9kIGFuZCBhbGxvd2luZ1xuXHQgKiB0byBjYW5jZWwgdGhlIGNsb3NlIHByb2Nlc3MuXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogKCkgPT4ge31cblx0ICogYGBgXG5cdCAqL1xuXHRvbkJlZm9yZUNsb3NlOiAoZXZlbnQ6IE1vZGFsQmVmb3JlQ2xvc2VFdmVudCkgPT4gdm9pZDtcblx0XG5cblx0LyoqXG5cdCAqIEV2ZW50IHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSB2aXNpYmxlIHByb3BlcnR5IGNoYW5nZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSB2aXNpYmxlIC0gbmV3IHZhbHVlIG9mIHRoZSB2aXNpYmxlIHByb3Blcnlcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdG9uVmlzaWJsZUNoYW5nZTogKHZpc2libGU6IGJvb2xlYW4pID0+IHZvaWQ7XG5cdFxuXG5cdC8qKlxuXHQgKiBFdmVudCB0byBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgdHJhbnNpdGlvbiBpcyBjb21wbGV0ZWQgYW5kIHRoZSBtb2RhbCBpcyBub3QgdmlzaWJsZS5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdG9uSGlkZGVuOiAoKSA9PiB2b2lkO1xuXHRcblxuXHQvKipcblx0ICogRXZlbnQgdG8gYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGVkIGFuZCB0aGUgbW9kYWwgaXMgdmlzaWJsZS5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdG9uU2hvd246ICgpID0+IHZvaWQ7XG5cdFxuXHQvKipcblx0ICogVmFsdWUgb2YgdGhlIGFyaWEtbGFiZWwgYXR0cmlidXRlIHRvIHB1dCBvbiB0aGUgY2xvc2UgYnV0dG9uLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnQ2xvc2UnYFxuXHQgKi9cblx0YXJpYUNsb3NlQnV0dG9uTGFiZWw6IHN0cmluZztcblx0XG5cblx0LyoqXG5cdCAqIENsYXNzZXMgdG8gYWRkIG9uIHRoZSBiYWNrZHJvcCBET00gZWxlbWVudC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJydgXG5cdCAqL1xuXHRiYWNrZHJvcENsYXNzOiBzdHJpbmc7XG5cdFxuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGNsb3NlIGJ1dHRvbi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdGNsb3NlQnV0dG9uOiBib29sZWFuO1xuXHRcblxuXHQvKipcblx0ICogV2hpY2ggZWxlbWVudCBzaG91bGQgY29udGFpbiB0aGUgbW9kYWwgYW5kIGJhY2tkcm9wIERPTSBlbGVtZW50cy5cblx0ICogSWYgaXQgaXMgbm90IG51bGwsIHRoZSBtb2RhbCBhbmQgYmFja2Ryb3AgRE9NIGVsZW1lbnRzIGFyZSBtb3ZlZCB0byB0aGUgc3BlY2lmaWVkIGNvbnRhaW5lci5cblx0ICogT3RoZXJ3aXNlLCB0aGV5IHN0YXkgd2hlcmUgdGhlIHdpZGdldCBpcyBsb2NhdGVkLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gZG9jdW1lbnQuYm9keSA6IG51bGxcblx0ICogYGBgXG5cdCAqL1xuXHRjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbDtcblx0XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIG1vZGFsIHNob3VsZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGVkLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcblx0ICovXG5cdHZpc2libGU6IGJvb2xlYW47XG5cdFxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYmUgYXBwbGllZCBvbiB0aGUgd2lkZ2V0IG1haW4gY29udGFpbmVyXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0Y2xhc3NOYW1lOiBzdHJpbmc7XG5cdFxuXHQvKipcblx0ICogRGF0YSB0byB1c2UgaW4gY29udGVudCBzbG90c1xuXHQgKi9cblx0Y29udGVudERhdGE6IERhdGE7XG5cdFxuXHQvKipcblx0ICogQm9keSBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHRjaGlsZHJlbjogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0XG5cblx0LyoqXG5cdCAqIEZvb3RlciBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHRmb290ZXI6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdFxuXG5cdC8qKlxuXHQgKiBIZWFkZXIgb2YgdGhlIG1vZGFsLiBUaGUgZGVmYXVsdCBoZWFkZXIgaW5jbHVkZXMge0BsaW5rIE1vZGFsUHJvcHMudGl0bGV8dGl0bGV9LlxuXHQgKi9cblx0aGVhZGVyOiBTbG90Q29udGVudDxNb2RhbENvbnRleHQ8RGF0YT4+O1xuXHRcblxuXHQvKipcblx0ICogU3RydWN0dXJlIG9mIHRoZSBtb2RhbC5cblx0ICogVGhlIGRlZmF1bHQgc3RydWN0dXJlIHVzZXMge0BsaW5rIE1vZGFsUHJvcHMuaGVhZGVyfGhlYWRlcn0sIHtAbGluayBNb2RhbFByb3BzLmNoaWxkcmVufGNoaWxkcmVufSBhbmQge0BsaW5rIE1vZGFsUHJvcHMuZm9vdGVyfGZvb3Rlcn0uXG5cdCAqL1xuXHRzdHJ1Y3R1cmU6IFNsb3RDb250ZW50PE1vZGFsQ29udGV4dDxEYXRhPj47XG5cdFxuXG5cdC8qKlxuXHQgKiBUaXRsZSBvZiB0aGUgbW9kYWwuXG5cdCAqL1xuXHR0aXRsZTogU2xvdENvbnRlbnQ8TW9kYWxDb250ZXh0PERhdGE+Pjtcblx0XG5cdC8qKlxuXHQgKiBPcHRpb24gdG8gY3JlYXRlIGEgZnVsbHNjcmVlbiBtb2RhbCwgYWNjb3JkaW5nIHRvIHRoZSBib290c3RyYXAgZG9jdW1lbnRhdGlvbi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG5cdCAqL1xuXHRmdWxsc2NyZWVuOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIEFQSSBmb3IgYSBtb2RhbCBjb21wb25lbnQuXG4gKlxuICogQHRlbXBsYXRlIERhdGEgLSBUaGUgdHlwZSBvZiBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgbW9kYWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kYWxBcGk8RGF0YT4ge1xuXHRcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBjaGFuZ2Ugc29tZSBtb2RhbCBwcm9wZXJ0aWVzLlxuXHQgKi9cblx0cGF0Y2g6IE1vZGFsV2lkZ2V0PERhdGE+WydwYXRjaCddO1xuXHRcblx0LyoqXG5cdCAqIENsb3NlcyB0aGUgbW9kYWwgd2l0aCB0aGUgZ2l2ZW4gcmVzdWx0LlxuXHQgKlxuXHQgKiBAcGFyYW0gcmVzdWx0IC0gcmVzdWx0IG9mIHRoZSBtb2RhbCwgYXMgcGFzc2VkIGluIHRoZSB7QGxpbmsgTW9kYWxCZWZvcmVDbG9zZUV2ZW50LnJlc3VsdHxyZXN1bHR9IHByb3BlcnR5IG9mIHRoZSBldmVudCBwYXNzZWQgdG8gdGhlXG5cdCAqIHtAbGluayBNb2RhbFByb3BzLm9uQmVmb3JlQ2xvc2V8b25CZWZvcmVDbG9zZX0gZXZlbnQgaGFuZGxlciAoYW5kIHBvc3NpYmx5IGNoYW5nZWQgYnkgaXQpIGFuZCByZXNvbHZlZCBieSB0aGUgcHJvbWlzZSByZXR1cm5lZCBieSB0aGUge0BsaW5rIE1vZGFsQXBpLm9wZW58b3Blbn0gbWV0aG9kLlxuXHQgKi9cblx0Y2xvc2UocmVzdWx0PzogYW55KTogdm9pZDtcblx0XG5cblx0LyoqXG5cdCAqIE9wZW5zIHRoZSBtb2RhbCBhbmQgcmV0dXJucyBhIHByb21pc2UgdGhhdCBpcyByZXNvbHZlZCB3aGVuIHRoZSBtb2RhbCBpcyBjbG9zZWQuXG5cdCAqIFRoZSByZXNvbHZlZCB2YWx1ZSBpcyB0aGUgcmVzdWx0IHBhc3NlZCB0byB0aGUge0BsaW5rIE1vZGFsQXBpLmNsb3NlfGNsb3NlfSBtZXRob2QgYW5kIHBvc3NpYmx5IGNoYW5nZWQgYnkgdGhlXG5cdCAqIHtAbGluayBNb2RhbFByb3BzLm9uQmVmb3JlQ2xvc2V8b25CZWZvcmVDbG9zZX0gZXZlbnQgaGFuZGxlclxuXHQgKi9cblx0b3BlbigpOiBQcm9taXNlPGFueT47XG59XG5cblxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtb2RhbCB3aWRnZXQgd2l0aCBzcGVjaWZpYyBkYXRhIHR5cGUuXG4gKlxuICogQHRlbXBsYXRlIERhdGEgLSBUaGUgdHlwZSBvZiBkYXRhIHRoYXQgdGhlIG1vZGFsIHdpZGdldCB3aWxsIGhhbmRsZS5cbiAqL1xuZXhwb3J0IHR5cGUgTW9kYWxXaWRnZXQ8RGF0YT4gPSBXaWRnZXQ8TW9kYWxQcm9wczxEYXRhPiwgTW9kYWxTdGF0ZTxEYXRhPiwgTW9kYWxBcGk8RGF0YT4sIE1vZGFsRGlyZWN0aXZlcz47XG5cblxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgbW9kYWwgd2lkZ2V0IGluc3RhbmNlLlxuICogQHBhcmFtIGNvbmZpZyAtIGNvbmZpZyBvZiB0aGUgbW9kYWwsIGVpdGhlciBhcyBhIHN0b3JlIG9yIGFzIGFuIG9iamVjdCBjb250YWluaW5nIHZhbHVlcyBvciBzdG9yZXMuXG4gKiBAcmV0dXJucyBhIG5ldyBtb2RhbCB3aWRnZXQgaW5zdGFuY2VcbiAqL1xuY29uc3QgZXhwb3J0X2NyZWF0ZU1vZGFsOiA8RGF0YT4oY29uZmlnPzogUHJvcHNDb25maWc8TW9kYWxQcm9wczxEYXRhPj4pID0+IE1vZGFsV2lkZ2V0PERhdGE+ID0gY3JlYXRlTW9kYWwgYXMgYW55O1xuZXhwb3J0IHtleHBvcnRfY3JlYXRlTW9kYWwgYXMgY3JlYXRlTW9kYWx9O1xuXG5cblxuLyoqXG4gKiBWYWx1ZSBwcmVzZW50IGluIHRoZSB7QGxpbmsgTW9kYWxCZWZvcmVDbG9zZUV2ZW50LnJlc3VsdHxyZXN1bHR9IHByb3BlcnR5IG9mIHRoZSB7QGxpbmsgTW9kYWxQcm9wcy5vbkJlZm9yZUNsb3NlfG9uQmVmb3JlQ2xvc2V9IGV2ZW50XG4gKiBhbmQgcmV0dXJuZWQgYnkgdGhlIHtAbGluayBNb2RhbEFwaS5vcGVufG9wZW59IG1ldGhvZCwgd2hlbiB0aGUgbW9kYWwgaXMgY2xvc2VkIGJ5IGEgY2xpY2sgaW5zaWRlIHRoZSB2aWV3cG9ydCBidXQgb3V0c2lkZSB0aGUgbW9kYWwuXG4gKi9cbmNvbnN0IGV4cG9ydF9tb2RhbE91dHNpZGVDbGljazogdHlwZW9mIG1vZGFsT3V0c2lkZUNsaWNrID0gbW9kYWxPdXRzaWRlQ2xpY2sgYXMgYW55O1xuZXhwb3J0IHtleHBvcnRfbW9kYWxPdXRzaWRlQ2xpY2sgYXMgbW9kYWxPdXRzaWRlQ2xpY2t9O1xuXG5cblxuLyoqXG4gKiBWYWx1ZSBwcmVzZW50IGluIHRoZSB7QGxpbmsgTW9kYWxCZWZvcmVDbG9zZUV2ZW50LnJlc3VsdHxyZXN1bHR9IHByb3BlcnR5IG9mIHRoZSB7QGxpbmsgTW9kYWxQcm9wcy5vbkJlZm9yZUNsb3NlfG9uQmVmb3JlQ2xvc2V9IGV2ZW50XG4gKiBhbmQgcmV0dXJuZWQgYnkgdGhlIHtAbGluayBNb2RhbEFwaS5vcGVufG9wZW59IG1ldGhvZCwgd2hlbiB0aGUgbW9kYWwgaXMgY2xvc2VkIGJ5IGEgY2xpY2sgb24gdGhlIGNsb3NlIGJ1dHRvbi5cbiAqL1xuY29uc3QgZXhwb3J0X21vZGFsQ2xvc2VCdXR0b25DbGljazogdHlwZW9mIG1vZGFsQ2xvc2VCdXR0b25DbGljayA9IG1vZGFsQ2xvc2VCdXR0b25DbGljayBhcyBhbnk7XG5leHBvcnQge2V4cG9ydF9tb2RhbENsb3NlQnV0dG9uQ2xpY2sgYXMgbW9kYWxDbG9zZUJ1dHRvbkNsaWNrfTtcblxuLyoqXG4gKiBUeXBlIG9mIHRoZSBwYXJhbWV0ZXIgb2Yge0BsaW5rIE1vZGFsUHJvcHMub25CZWZvcmVDbG9zZXxvbkJlZm9yZUNsb3NlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2RhbEJlZm9yZUNsb3NlRXZlbnQge1xuXHRcblx0LyoqXG5cdCAqIFJlc3VsdCBvZiB0aGUgbW9kYWwsIHdoaWNoIGlzIHRoZSB2YWx1ZSBwYXNzZWQgdG8gdGhlIHtAbGluayBNb2RhbEFwaS5jbG9zZXxjbG9zZX0gbWV0aG9kXG5cdCAqIGFuZCBsYXRlciByZXNvbHZlZCBieSB0aGUgcHJvbWlzZSByZXR1cm5lZCBieSB0aGUge0BsaW5rIE1vZGFsQXBpLm9wZW58b3Blbn0gbWV0aG9kLlxuXHQgKiBJZiBuZWVkZWQsIGl0IGNhbiBiZSBjaGFuZ2VkIGZyb20gdGhlIHtAbGluayBNb2RhbFByb3BzLm9uQmVmb3JlQ2xvc2V8b25CZWZvcmVDbG9zZX0gZXZlbnQgaGFuZGxlci5cblx0ICovXG5cdHJlc3VsdDogYW55O1xuXHRcblxuXHQvKipcblx0ICogV2hldGhlciB0byBjYW5jZWwgdGhlIGNsb3NlIG9mIHRoZSBtb2RhbC5cblx0ICogSXQgY2FuIGJlIGNoYW5nZWQgZnJvbSB0aGUge0BsaW5rIE1vZGFsUHJvcHMub25CZWZvcmVDbG9zZXxvbkJlZm9yZUNsb3NlfSBldmVudCBoYW5kbGVyLlxuXHQgKi9cblx0Y2FuY2VsOiBib29sZWFuO1xufVxuXG4vKipcbiAqIERpcmVjdGl2ZXMgb2YgdGhlIG1vZGFsIHdpZGdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2RhbERpcmVjdGl2ZXMge1xuXHRcblx0LyoqXG5cdCAqIERpcmVjdGl2ZSB0byBwdXQgb24gdGhlIG1vZGFsIERPTSBlbGVtZW50LlxuXHQgKi9cblx0bW9kYWxEaXJlY3RpdmU6IERpcmVjdGl2ZTtcblx0XG5cblx0LyoqXG5cdCAqIERpcmVjdGl2ZSB0byBwdXQgb24gdGhlIGJhY2tkcm9wIERPTSBlbGVtZW50LlxuXHQgKi9cblx0YmFja2Ryb3BEaXJlY3RpdmU6IERpcmVjdGl2ZTtcblx0XG5cblx0LyoqXG5cdCAqIFBvcnRhbCBkaXJlY3RpdmUgdG8gcHV0IG9uIHRoZSBtb2RhbCBET00gZWxlbWVudC5cblx0ICovXG5cdG1vZGFsUG9ydGFsRGlyZWN0aXZlOiBEaXJlY3RpdmU7XG5cdFxuXG5cdC8qKlxuXHQgKiBQb3J0YWwgZGlyZWN0aXZlIHRvIHB1dCBvbiB0aGUgYmFja2Ryb3AgRE9NIGVsZW1lbnQuXG5cdCAqL1xuXHRiYWNrZHJvcFBvcnRhbERpcmVjdGl2ZTogRGlyZWN0aXZlO1xuXHRcblxuXHQvKipcblx0ICogRGlyZWN0aXZlIHRoYXQgYWRkcyBhbGwgdGhlIG5lY2Vzc2FyeSBhdHRyaWJ1dGVzIHRvIHRoZSBjbG9zZSBidXR0b25cblx0ICovXG5cdGNsb3NlQnV0dG9uRGlyZWN0aXZlOiBEaXJlY3RpdmU7XG5cdFxuXHQvKipcblx0ICogRGlyZWN0aXZlIHRvIGFwcGx5IHRvIHRoZSBkaWFsb2cgZWxlbWVudCB3aGVuIHVzaW5nIHRoZSBuYXRpdmUge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IVE1MRGlhbG9nRWxlbWVudCB8IEhUTUxEaWFsb2dFbGVtZW50fVxuXHQgKi9cblx0ZGlhbG9nRGlyZWN0aXZlOiBEaXJlY3RpdmU7XG59XG5cbiJdfQ==