@siemens/ix-angular 0.0.0-20240419081748

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 (52) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +4 -0
  3. package/angular-component-lib/utils.d.ts +9 -0
  4. package/app-initialize.d.ts +1 -0
  5. package/boolean-value-accessor.d.ts +9 -0
  6. package/components.d.ts +1162 -0
  7. package/declare-components.d.ts +2 -0
  8. package/dropdown/trigger.directive.d.ts +10 -0
  9. package/esm2020/angular-component-lib/utils.mjs +59 -0
  10. package/esm2020/app-initialize.mjs +26 -0
  11. package/esm2020/boolean-value-accessor.mjs +38 -0
  12. package/esm2020/components.mjs +2366 -0
  13. package/esm2020/declare-components.mjs +97 -0
  14. package/esm2020/dropdown/trigger.directive.mjs +29 -0
  15. package/esm2020/index.mjs +20 -0
  16. package/esm2020/ix-icon.mjs +38 -0
  17. package/esm2020/modal/index.mjs +11 -0
  18. package/esm2020/modal/modal-ref.mjs +39 -0
  19. package/esm2020/modal/modal.config.mjs +10 -0
  20. package/esm2020/modal/modal.service.mjs +86 -0
  21. package/esm2020/module.mjs +66 -0
  22. package/esm2020/select-value-accessor.mjs +35 -0
  23. package/esm2020/siemens-ix-angular.mjs +5 -0
  24. package/esm2020/theme/index.mjs +10 -0
  25. package/esm2020/theme/theme.service.mjs +38 -0
  26. package/esm2020/toast/index.mjs +10 -0
  27. package/esm2020/toast/toast.config.mjs +10 -0
  28. package/esm2020/toast/toast.service.mjs +52 -0
  29. package/esm2020/tree/index.mjs +10 -0
  30. package/esm2020/tree/tree.mjs +81 -0
  31. package/esm2020/value-accessor.mjs +40 -0
  32. package/fesm2015/siemens-ix-angular.mjs +2966 -0
  33. package/fesm2015/siemens-ix-angular.mjs.map +1 -0
  34. package/fesm2020/siemens-ix-angular.mjs +2984 -0
  35. package/fesm2020/siemens-ix-angular.mjs.map +1 -0
  36. package/index.d.ts +11 -0
  37. package/ix-icon.d.ts +12 -0
  38. package/modal/index.d.ts +2 -0
  39. package/modal/modal-ref.d.ts +21 -0
  40. package/modal/modal.config.d.ts +6 -0
  41. package/modal/modal.service.d.ts +15 -0
  42. package/module.d.ts +14 -0
  43. package/package.json +45 -0
  44. package/select-value-accessor.d.ts +8 -0
  45. package/theme/index.d.ts +1 -0
  46. package/theme/theme.service.d.ts +14 -0
  47. package/toast/index.d.ts +1 -0
  48. package/toast/toast.config.d.ts +5 -0
  49. package/toast/toast.service.d.ts +9 -0
  50. package/tree/index.d.ts +1 -0
  51. package/tree/tree.d.ts +26 -0
  52. package/value-accessor.d.ts +18 -0
@@ -0,0 +1,2366 @@
1
+ import { __decorate } from "tslib";
2
+ /* tslint:disable */
3
+ /* auto-generated angular directive proxies */
4
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
5
+ import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
6
+ import * as i0 from "@angular/core";
7
+ let IxActionCard = class IxActionCard {
8
+ constructor(c, r, z) {
9
+ this.z = z;
10
+ c.detach();
11
+ this.el = r.nativeElement;
12
+ }
13
+ };
14
+ /** @nocollapse */ IxActionCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxActionCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
15
+ /** @nocollapse */ IxActionCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxActionCard, selector: "ix-action-card", inputs: { heading: "heading", icon: "icon", selected: "selected", subheading: "subheading", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
+ IxActionCard = __decorate([
17
+ ProxyCmp({
18
+ inputs: ['heading', 'icon', 'selected', 'subheading', 'variant']
19
+ })
20
+ ], IxActionCard);
21
+ export { IxActionCard };
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxActionCard, decorators: [{
23
+ type: Component,
24
+ args: [{
25
+ selector: 'ix-action-card',
26
+ changeDetection: ChangeDetectionStrategy.OnPush,
27
+ template: '<ng-content></ng-content>',
28
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
29
+ inputs: ['heading', 'icon', 'selected', 'subheading', 'variant'],
30
+ }]
31
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
32
+ let IxApplication = class IxApplication {
33
+ constructor(c, r, z) {
34
+ this.z = z;
35
+ c.detach();
36
+ this.el = r.nativeElement;
37
+ }
38
+ };
39
+ /** @nocollapse */ IxApplication.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxApplication, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
40
+ /** @nocollapse */ IxApplication.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxApplication, selector: "ix-application", inputs: { appSwitchConfig: "appSwitchConfig", breakpoints: "breakpoints", forceBreakpoint: "forceBreakpoint", theme: "theme", themeSystemAppearance: "themeSystemAppearance" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
+ IxApplication = __decorate([
42
+ ProxyCmp({
43
+ inputs: ['appSwitchConfig', 'breakpoints', 'forceBreakpoint', 'theme', 'themeSystemAppearance']
44
+ })
45
+ ], IxApplication);
46
+ export { IxApplication };
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxApplication, decorators: [{
48
+ type: Component,
49
+ args: [{
50
+ selector: 'ix-application',
51
+ changeDetection: ChangeDetectionStrategy.OnPush,
52
+ template: '<ng-content></ng-content>',
53
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
54
+ inputs: ['appSwitchConfig', 'breakpoints', 'forceBreakpoint', 'theme', 'themeSystemAppearance'],
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
57
+ let IxApplicationHeader = class IxApplicationHeader {
58
+ constructor(c, r, z) {
59
+ this.z = z;
60
+ c.detach();
61
+ this.el = r.nativeElement;
62
+ }
63
+ };
64
+ /** @nocollapse */ IxApplicationHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxApplicationHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
65
+ /** @nocollapse */ IxApplicationHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxApplicationHeader, selector: "ix-application-header", inputs: { name: "name" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
66
+ IxApplicationHeader = __decorate([
67
+ ProxyCmp({
68
+ inputs: ['name']
69
+ })
70
+ ], IxApplicationHeader);
71
+ export { IxApplicationHeader };
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxApplicationHeader, decorators: [{
73
+ type: Component,
74
+ args: [{
75
+ selector: 'ix-application-header',
76
+ changeDetection: ChangeDetectionStrategy.OnPush,
77
+ template: '<ng-content></ng-content>',
78
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
79
+ inputs: ['name'],
80
+ }]
81
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
82
+ let IxAvatar = class IxAvatar {
83
+ constructor(c, r, z) {
84
+ this.z = z;
85
+ c.detach();
86
+ this.el = r.nativeElement;
87
+ }
88
+ };
89
+ /** @nocollapse */ IxAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
90
+ /** @nocollapse */ IxAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxAvatar, selector: "ix-avatar", inputs: { extra: "extra", image: "image", initials: "initials", username: "username" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
+ IxAvatar = __decorate([
92
+ ProxyCmp({
93
+ inputs: ['extra', 'image', 'initials', 'username']
94
+ })
95
+ ], IxAvatar);
96
+ export { IxAvatar };
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxAvatar, decorators: [{
98
+ type: Component,
99
+ args: [{
100
+ selector: 'ix-avatar',
101
+ changeDetection: ChangeDetectionStrategy.OnPush,
102
+ template: '<ng-content></ng-content>',
103
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
104
+ inputs: ['extra', 'image', 'initials', 'username'],
105
+ }]
106
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
107
+ let IxBasicNavigation = class IxBasicNavigation {
108
+ constructor(c, r, z) {
109
+ this.z = z;
110
+ c.detach();
111
+ this.el = r.nativeElement;
112
+ }
113
+ };
114
+ /** @nocollapse */ IxBasicNavigation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxBasicNavigation, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
115
+ /** @nocollapse */ IxBasicNavigation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxBasicNavigation, selector: "ix-basic-navigation", inputs: { applicationName: "applicationName", breakpoints: "breakpoints", forceBreakpoint: "forceBreakpoint", hideHeader: "hideHeader" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
116
+ IxBasicNavigation = __decorate([
117
+ ProxyCmp({
118
+ inputs: ['applicationName', 'breakpoints', 'forceBreakpoint', 'hideHeader']
119
+ })
120
+ ], IxBasicNavigation);
121
+ export { IxBasicNavigation };
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxBasicNavigation, decorators: [{
123
+ type: Component,
124
+ args: [{
125
+ selector: 'ix-basic-navigation',
126
+ changeDetection: ChangeDetectionStrategy.OnPush,
127
+ template: '<ng-content></ng-content>',
128
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
129
+ inputs: ['applicationName', 'breakpoints', 'forceBreakpoint', 'hideHeader'],
130
+ }]
131
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
132
+ let IxBlind = class IxBlind {
133
+ constructor(c, r, z) {
134
+ this.z = z;
135
+ c.detach();
136
+ this.el = r.nativeElement;
137
+ proxyOutputs(this, this.el, ['collapsedChange']);
138
+ }
139
+ };
140
+ /** @nocollapse */ IxBlind.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxBlind, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
141
+ /** @nocollapse */ IxBlind.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxBlind, selector: "ix-blind", inputs: { collapsed: "collapsed", icon: "icon", label: "label", sublabel: "sublabel", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
142
+ IxBlind = __decorate([
143
+ ProxyCmp({
144
+ inputs: ['collapsed', 'icon', 'label', 'sublabel', 'variant']
145
+ })
146
+ ], IxBlind);
147
+ export { IxBlind };
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxBlind, decorators: [{
149
+ type: Component,
150
+ args: [{
151
+ selector: 'ix-blind',
152
+ changeDetection: ChangeDetectionStrategy.OnPush,
153
+ template: '<ng-content></ng-content>',
154
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
155
+ inputs: ['collapsed', 'icon', 'label', 'sublabel', 'variant'],
156
+ }]
157
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
158
+ let IxBreadcrumb = class IxBreadcrumb {
159
+ constructor(c, r, z) {
160
+ this.z = z;
161
+ c.detach();
162
+ this.el = r.nativeElement;
163
+ proxyOutputs(this, this.el, ['itemClick', 'nextClick']);
164
+ }
165
+ };
166
+ /** @nocollapse */ IxBreadcrumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxBreadcrumb, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
167
+ /** @nocollapse */ IxBreadcrumb.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxBreadcrumb, selector: "ix-breadcrumb", inputs: { ariaLabelPreviousButton: "ariaLabelPreviousButton", ghost: "ghost", nextItems: "nextItems", visibleItemCount: "visibleItemCount" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
168
+ IxBreadcrumb = __decorate([
169
+ ProxyCmp({
170
+ inputs: ['ariaLabelPreviousButton', 'ghost', 'nextItems', 'visibleItemCount']
171
+ })
172
+ ], IxBreadcrumb);
173
+ export { IxBreadcrumb };
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxBreadcrumb, decorators: [{
175
+ type: Component,
176
+ args: [{
177
+ selector: 'ix-breadcrumb',
178
+ changeDetection: ChangeDetectionStrategy.OnPush,
179
+ template: '<ng-content></ng-content>',
180
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
181
+ inputs: ['ariaLabelPreviousButton', 'ghost', 'nextItems', 'visibleItemCount'],
182
+ }]
183
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
184
+ let IxBreadcrumbItem = class IxBreadcrumbItem {
185
+ constructor(c, r, z) {
186
+ this.z = z;
187
+ c.detach();
188
+ this.el = r.nativeElement;
189
+ }
190
+ };
191
+ /** @nocollapse */ IxBreadcrumbItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxBreadcrumbItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
192
+ /** @nocollapse */ IxBreadcrumbItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxBreadcrumbItem, selector: "ix-breadcrumb-item", inputs: { icon: "icon", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
193
+ IxBreadcrumbItem = __decorate([
194
+ ProxyCmp({
195
+ inputs: ['icon', 'label']
196
+ })
197
+ ], IxBreadcrumbItem);
198
+ export { IxBreadcrumbItem };
199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxBreadcrumbItem, decorators: [{
200
+ type: Component,
201
+ args: [{
202
+ selector: 'ix-breadcrumb-item',
203
+ changeDetection: ChangeDetectionStrategy.OnPush,
204
+ template: '<ng-content></ng-content>',
205
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
206
+ inputs: ['icon', 'label'],
207
+ }]
208
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
209
+ let IxButton = class IxButton {
210
+ constructor(c, r, z) {
211
+ this.z = z;
212
+ c.detach();
213
+ this.el = r.nativeElement;
214
+ }
215
+ };
216
+ /** @nocollapse */ IxButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
217
+ /** @nocollapse */ IxButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxButton, selector: "ix-button", inputs: { disabled: "disabled", ghost: "ghost", icon: "icon", loading: "loading", outline: "outline", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
218
+ IxButton = __decorate([
219
+ ProxyCmp({
220
+ inputs: ['disabled', 'ghost', 'icon', 'loading', 'outline', 'type', 'variant']
221
+ })
222
+ ], IxButton);
223
+ export { IxButton };
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxButton, decorators: [{
225
+ type: Component,
226
+ args: [{
227
+ selector: 'ix-button',
228
+ changeDetection: ChangeDetectionStrategy.OnPush,
229
+ template: '<ng-content></ng-content>',
230
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
231
+ inputs: ['disabled', 'ghost', 'icon', 'loading', 'outline', 'type', 'variant'],
232
+ }]
233
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
234
+ let IxCard = class IxCard {
235
+ constructor(c, r, z) {
236
+ this.z = z;
237
+ c.detach();
238
+ this.el = r.nativeElement;
239
+ }
240
+ };
241
+ /** @nocollapse */ IxCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
242
+ /** @nocollapse */ IxCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxCard, selector: "ix-card", inputs: { selected: "selected", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
243
+ IxCard = __decorate([
244
+ ProxyCmp({
245
+ inputs: ['selected', 'variant']
246
+ })
247
+ ], IxCard);
248
+ export { IxCard };
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCard, decorators: [{
250
+ type: Component,
251
+ args: [{
252
+ selector: 'ix-card',
253
+ changeDetection: ChangeDetectionStrategy.OnPush,
254
+ template: '<ng-content></ng-content>',
255
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
256
+ inputs: ['selected', 'variant'],
257
+ }]
258
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
259
+ let IxCardAccordion = class IxCardAccordion {
260
+ constructor(c, r, z) {
261
+ this.z = z;
262
+ c.detach();
263
+ this.el = r.nativeElement;
264
+ }
265
+ };
266
+ /** @nocollapse */ IxCardAccordion.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCardAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
267
+ /** @nocollapse */ IxCardAccordion.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxCardAccordion, selector: "ix-card-accordion", inputs: { collapse: "collapse" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
268
+ IxCardAccordion = __decorate([
269
+ ProxyCmp({
270
+ inputs: ['collapse']
271
+ })
272
+ ], IxCardAccordion);
273
+ export { IxCardAccordion };
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCardAccordion, decorators: [{
275
+ type: Component,
276
+ args: [{
277
+ selector: 'ix-card-accordion',
278
+ changeDetection: ChangeDetectionStrategy.OnPush,
279
+ template: '<ng-content></ng-content>',
280
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
281
+ inputs: ['collapse'],
282
+ }]
283
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
284
+ let IxCardContent = class IxCardContent {
285
+ constructor(c, r, z) {
286
+ this.z = z;
287
+ c.detach();
288
+ this.el = r.nativeElement;
289
+ }
290
+ };
291
+ /** @nocollapse */ IxCardContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCardContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
292
+ /** @nocollapse */ IxCardContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxCardContent, selector: "ix-card-content", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
293
+ IxCardContent = __decorate([
294
+ ProxyCmp({})
295
+ ], IxCardContent);
296
+ export { IxCardContent };
297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCardContent, decorators: [{
298
+ type: Component,
299
+ args: [{
300
+ selector: 'ix-card-content',
301
+ changeDetection: ChangeDetectionStrategy.OnPush,
302
+ template: '<ng-content></ng-content>',
303
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
304
+ inputs: [],
305
+ }]
306
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
307
+ let IxCardList = class IxCardList {
308
+ constructor(c, r, z) {
309
+ this.z = z;
310
+ c.detach();
311
+ this.el = r.nativeElement;
312
+ proxyOutputs(this, this.el, ['collapseChanged', 'showAllClick', 'showMoreCardClick']);
313
+ }
314
+ };
315
+ /** @nocollapse */ IxCardList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCardList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
316
+ /** @nocollapse */ IxCardList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxCardList, selector: "ix-card-list", inputs: { collapse: "collapse", hideShowAll: "hideShowAll", i18nMoreCards: "i18nMoreCards", i18nShowAll: "i18nShowAll", label: "label", listStyle: "listStyle", showAllCount: "showAllCount", suppressOverflowHandling: "suppressOverflowHandling" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
317
+ IxCardList = __decorate([
318
+ ProxyCmp({
319
+ inputs: ['collapse', 'hideShowAll', 'i18nMoreCards', 'i18nShowAll', 'label', 'listStyle', 'showAllCount', 'suppressOverflowHandling']
320
+ })
321
+ ], IxCardList);
322
+ export { IxCardList };
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCardList, decorators: [{
324
+ type: Component,
325
+ args: [{
326
+ selector: 'ix-card-list',
327
+ changeDetection: ChangeDetectionStrategy.OnPush,
328
+ template: '<ng-content></ng-content>',
329
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
330
+ inputs: ['collapse', 'hideShowAll', 'i18nMoreCards', 'i18nShowAll', 'label', 'listStyle', 'showAllCount', 'suppressOverflowHandling'],
331
+ }]
332
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
333
+ let IxCardTitle = class IxCardTitle {
334
+ constructor(c, r, z) {
335
+ this.z = z;
336
+ c.detach();
337
+ this.el = r.nativeElement;
338
+ }
339
+ };
340
+ /** @nocollapse */ IxCardTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCardTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
341
+ /** @nocollapse */ IxCardTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxCardTitle, selector: "ix-card-title", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
342
+ IxCardTitle = __decorate([
343
+ ProxyCmp({})
344
+ ], IxCardTitle);
345
+ export { IxCardTitle };
346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCardTitle, decorators: [{
347
+ type: Component,
348
+ args: [{
349
+ selector: 'ix-card-title',
350
+ changeDetection: ChangeDetectionStrategy.OnPush,
351
+ template: '<ng-content></ng-content>',
352
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
353
+ inputs: [],
354
+ }]
355
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
356
+ let IxCategoryFilter = class IxCategoryFilter {
357
+ constructor(c, r, z) {
358
+ this.z = z;
359
+ c.detach();
360
+ this.el = r.nativeElement;
361
+ proxyOutputs(this, this.el, ['categoryChanged', 'inputChanged', 'filterChanged']);
362
+ }
363
+ };
364
+ /** @nocollapse */ IxCategoryFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCategoryFilter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
365
+ /** @nocollapse */ IxCategoryFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxCategoryFilter, selector: "ix-category-filter", inputs: { categories: "categories", disabled: "disabled", filterState: "filterState", hideIcon: "hideIcon", i18nPlainText: "i18nPlainText", icon: "icon", labelCategories: "labelCategories", nonSelectableCategories: "nonSelectableCategories", placeholder: "placeholder", readonly: "readonly", repeatCategories: "repeatCategories", suggestions: "suggestions" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
366
+ IxCategoryFilter = __decorate([
367
+ ProxyCmp({
368
+ inputs: ['categories', 'disabled', 'filterState', 'hideIcon', 'i18nPlainText', 'icon', 'labelCategories', 'nonSelectableCategories', 'placeholder', 'readonly', 'repeatCategories', 'suggestions']
369
+ })
370
+ ], IxCategoryFilter);
371
+ export { IxCategoryFilter };
372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCategoryFilter, decorators: [{
373
+ type: Component,
374
+ args: [{
375
+ selector: 'ix-category-filter',
376
+ changeDetection: ChangeDetectionStrategy.OnPush,
377
+ template: '<ng-content></ng-content>',
378
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
379
+ inputs: ['categories', 'disabled', 'filterState', 'hideIcon', 'i18nPlainText', 'icon', 'labelCategories', 'nonSelectableCategories', 'placeholder', 'readonly', 'repeatCategories', 'suggestions'],
380
+ }]
381
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
382
+ let IxChip = class IxChip {
383
+ constructor(c, r, z) {
384
+ this.z = z;
385
+ c.detach();
386
+ this.el = r.nativeElement;
387
+ proxyOutputs(this, this.el, ['closeChip']);
388
+ }
389
+ };
390
+ /** @nocollapse */ IxChip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
391
+ /** @nocollapse */ IxChip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxChip, selector: "ix-chip", inputs: { active: "active", background: "background", chipColor: "chipColor", closable: "closable", color: "color", icon: "icon", outline: "outline", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
392
+ IxChip = __decorate([
393
+ ProxyCmp({
394
+ inputs: ['active', 'background', 'chipColor', 'closable', 'color', 'icon', 'outline', 'variant']
395
+ })
396
+ ], IxChip);
397
+ export { IxChip };
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxChip, decorators: [{
399
+ type: Component,
400
+ args: [{
401
+ selector: 'ix-chip',
402
+ changeDetection: ChangeDetectionStrategy.OnPush,
403
+ template: '<ng-content></ng-content>',
404
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
405
+ inputs: ['active', 'background', 'chipColor', 'closable', 'color', 'icon', 'outline', 'variant'],
406
+ }]
407
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
408
+ let IxCol = class IxCol {
409
+ constructor(c, r, z) {
410
+ this.z = z;
411
+ c.detach();
412
+ this.el = r.nativeElement;
413
+ }
414
+ };
415
+ /** @nocollapse */ IxCol.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCol, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
416
+ /** @nocollapse */ IxCol.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxCol, selector: "ix-col", inputs: { size: "size", sizeLg: "sizeLg", sizeMd: "sizeMd", sizeSm: "sizeSm" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
417
+ IxCol = __decorate([
418
+ ProxyCmp({
419
+ inputs: ['size', 'sizeLg', 'sizeMd', 'sizeSm']
420
+ })
421
+ ], IxCol);
422
+ export { IxCol };
423
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxCol, decorators: [{
424
+ type: Component,
425
+ args: [{
426
+ selector: 'ix-col',
427
+ changeDetection: ChangeDetectionStrategy.OnPush,
428
+ template: '<ng-content></ng-content>',
429
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
430
+ inputs: ['size', 'sizeLg', 'sizeMd', 'sizeSm'],
431
+ }]
432
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
433
+ let IxContent = class IxContent {
434
+ constructor(c, r, z) {
435
+ this.z = z;
436
+ c.detach();
437
+ this.el = r.nativeElement;
438
+ }
439
+ };
440
+ /** @nocollapse */ IxContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
441
+ /** @nocollapse */ IxContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxContent, selector: "ix-content", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
442
+ IxContent = __decorate([
443
+ ProxyCmp({})
444
+ ], IxContent);
445
+ export { IxContent };
446
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxContent, decorators: [{
447
+ type: Component,
448
+ args: [{
449
+ selector: 'ix-content',
450
+ changeDetection: ChangeDetectionStrategy.OnPush,
451
+ template: '<ng-content></ng-content>',
452
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
453
+ inputs: [],
454
+ }]
455
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
456
+ let IxContentHeader = class IxContentHeader {
457
+ constructor(c, r, z) {
458
+ this.z = z;
459
+ c.detach();
460
+ this.el = r.nativeElement;
461
+ proxyOutputs(this, this.el, ['backButtonClick']);
462
+ }
463
+ };
464
+ /** @nocollapse */ IxContentHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxContentHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
465
+ /** @nocollapse */ IxContentHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxContentHeader, selector: "ix-content-header", inputs: { hasBackButton: "hasBackButton", headerSubtitle: "headerSubtitle", headerTitle: "headerTitle", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
466
+ IxContentHeader = __decorate([
467
+ ProxyCmp({
468
+ inputs: ['hasBackButton', 'headerSubtitle', 'headerTitle', 'variant']
469
+ })
470
+ ], IxContentHeader);
471
+ export { IxContentHeader };
472
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxContentHeader, decorators: [{
473
+ type: Component,
474
+ args: [{
475
+ selector: 'ix-content-header',
476
+ changeDetection: ChangeDetectionStrategy.OnPush,
477
+ template: '<ng-content></ng-content>',
478
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
479
+ inputs: ['hasBackButton', 'headerSubtitle', 'headerTitle', 'variant'],
480
+ }]
481
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
482
+ let IxDateDropdown = class IxDateDropdown {
483
+ constructor(c, r, z) {
484
+ this.z = z;
485
+ c.detach();
486
+ this.el = r.nativeElement;
487
+ proxyOutputs(this, this.el, ['dateRangeChange']);
488
+ }
489
+ };
490
+ /** @nocollapse */ IxDateDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDateDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
491
+ /** @nocollapse */ IxDateDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxDateDropdown, selector: "ix-date-dropdown", inputs: { customRangeAllowed: "customRangeAllowed", dateRangeId: "dateRangeId", dateRangeOptions: "dateRangeOptions", format: "format", from: "from", i18nCustomItem: "i18nCustomItem", i18nDone: "i18nDone", i18nNoRange: "i18nNoRange", maxDate: "maxDate", minDate: "minDate", range: "range", to: "to" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
492
+ IxDateDropdown = __decorate([
493
+ ProxyCmp({
494
+ inputs: ['customRangeAllowed', 'dateRangeId', 'dateRangeOptions', 'format', 'from', 'i18nCustomItem', 'i18nDone', 'i18nNoRange', 'maxDate', 'minDate', 'range', 'to'],
495
+ methods: ['getDateRange']
496
+ })
497
+ ], IxDateDropdown);
498
+ export { IxDateDropdown };
499
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDateDropdown, decorators: [{
500
+ type: Component,
501
+ args: [{
502
+ selector: 'ix-date-dropdown',
503
+ changeDetection: ChangeDetectionStrategy.OnPush,
504
+ template: '<ng-content></ng-content>',
505
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
506
+ inputs: ['customRangeAllowed', 'dateRangeId', 'dateRangeOptions', 'format', 'from', 'i18nCustomItem', 'i18nDone', 'i18nNoRange', 'maxDate', 'minDate', 'range', 'to'],
507
+ }]
508
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
509
+ let IxDatePicker = class IxDatePicker {
510
+ constructor(c, r, z) {
511
+ this.z = z;
512
+ c.detach();
513
+ this.el = r.nativeElement;
514
+ proxyOutputs(this, this.el, ['dateChange', 'dateRangeChange', 'dateSelect', 'done']);
515
+ }
516
+ };
517
+ /** @nocollapse */ IxDatePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDatePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
518
+ /** @nocollapse */ IxDatePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxDatePicker, selector: "ix-date-picker", inputs: { corners: "corners", eventDelimiter: "eventDelimiter", format: "format", from: "from", i18nDone: "i18nDone", individual: "individual", locale: "locale", maxDate: "maxDate", minDate: "minDate", range: "range", textSelectDate: "textSelectDate", to: "to", weekStartIndex: "weekStartIndex" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
519
+ IxDatePicker = __decorate([
520
+ ProxyCmp({
521
+ inputs: ['corners', 'eventDelimiter', 'format', 'from', 'i18nDone', 'individual', 'locale', 'maxDate', 'minDate', 'range', 'textSelectDate', 'to', 'weekStartIndex'],
522
+ methods: ['getCurrentDate']
523
+ })
524
+ ], IxDatePicker);
525
+ export { IxDatePicker };
526
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDatePicker, decorators: [{
527
+ type: Component,
528
+ args: [{
529
+ selector: 'ix-date-picker',
530
+ changeDetection: ChangeDetectionStrategy.OnPush,
531
+ template: '<ng-content></ng-content>',
532
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
533
+ inputs: ['corners', 'eventDelimiter', 'format', 'from', 'i18nDone', 'individual', 'locale', 'maxDate', 'minDate', 'range', 'textSelectDate', 'to', 'weekStartIndex'],
534
+ }]
535
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
536
+ let IxDatetimePicker = class IxDatetimePicker {
537
+ constructor(c, r, z) {
538
+ this.z = z;
539
+ c.detach();
540
+ this.el = r.nativeElement;
541
+ proxyOutputs(this, this.el, ['done', 'timeChange', 'dateChange', 'dateSelect']);
542
+ }
543
+ };
544
+ /** @nocollapse */ IxDatetimePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDatetimePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
545
+ /** @nocollapse */ IxDatetimePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxDatetimePicker, selector: "ix-datetime-picker", inputs: { dateFormat: "dateFormat", eventDelimiter: "eventDelimiter", from: "from", i18nDone: "i18nDone", locale: "locale", maxDate: "maxDate", minDate: "minDate", range: "range", showHour: "showHour", showMinutes: "showMinutes", showSeconds: "showSeconds", showTimeReference: "showTimeReference", textSelectDate: "textSelectDate", time: "time", timeFormat: "timeFormat", timeReference: "timeReference", to: "to", weekStartIndex: "weekStartIndex" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
546
+ IxDatetimePicker = __decorate([
547
+ ProxyCmp({
548
+ inputs: ['dateFormat', 'eventDelimiter', 'from', 'i18nDone', 'locale', 'maxDate', 'minDate', 'range', 'showHour', 'showMinutes', 'showSeconds', 'showTimeReference', 'textSelectDate', 'time', 'timeFormat', 'timeReference', 'to', 'weekStartIndex']
549
+ })
550
+ ], IxDatetimePicker);
551
+ export { IxDatetimePicker };
552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDatetimePicker, decorators: [{
553
+ type: Component,
554
+ args: [{
555
+ selector: 'ix-datetime-picker',
556
+ changeDetection: ChangeDetectionStrategy.OnPush,
557
+ template: '<ng-content></ng-content>',
558
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
559
+ inputs: ['dateFormat', 'eventDelimiter', 'from', 'i18nDone', 'locale', 'maxDate', 'minDate', 'range', 'showHour', 'showMinutes', 'showSeconds', 'showTimeReference', 'textSelectDate', 'time', 'timeFormat', 'timeReference', 'to', 'weekStartIndex'],
560
+ }]
561
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
562
+ let IxDivider = class IxDivider {
563
+ constructor(c, r, z) {
564
+ this.z = z;
565
+ c.detach();
566
+ this.el = r.nativeElement;
567
+ }
568
+ };
569
+ /** @nocollapse */ IxDivider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
570
+ /** @nocollapse */ IxDivider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxDivider, selector: "ix-divider", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
571
+ IxDivider = __decorate([
572
+ ProxyCmp({})
573
+ ], IxDivider);
574
+ export { IxDivider };
575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDivider, decorators: [{
576
+ type: Component,
577
+ args: [{
578
+ selector: 'ix-divider',
579
+ changeDetection: ChangeDetectionStrategy.OnPush,
580
+ template: '<ng-content></ng-content>',
581
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
582
+ inputs: [],
583
+ }]
584
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
585
+ let IxDrawer = class IxDrawer {
586
+ constructor(c, r, z) {
587
+ this.z = z;
588
+ c.detach();
589
+ this.el = r.nativeElement;
590
+ proxyOutputs(this, this.el, ['open', 'drawerClose']);
591
+ }
592
+ };
593
+ /** @nocollapse */ IxDrawer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDrawer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
594
+ /** @nocollapse */ IxDrawer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxDrawer, selector: "ix-drawer", inputs: { closeOnClickOutside: "closeOnClickOutside", fullHeight: "fullHeight", maxWidth: "maxWidth", minWidth: "minWidth", show: "show", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
595
+ IxDrawer = __decorate([
596
+ ProxyCmp({
597
+ inputs: ['closeOnClickOutside', 'fullHeight', 'maxWidth', 'minWidth', 'show', 'width'],
598
+ methods: ['toggleDrawer']
599
+ })
600
+ ], IxDrawer);
601
+ export { IxDrawer };
602
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDrawer, decorators: [{
603
+ type: Component,
604
+ args: [{
605
+ selector: 'ix-drawer',
606
+ changeDetection: ChangeDetectionStrategy.OnPush,
607
+ template: '<ng-content></ng-content>',
608
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
609
+ inputs: ['closeOnClickOutside', 'fullHeight', 'maxWidth', 'minWidth', 'show', 'width'],
610
+ }]
611
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
612
+ let IxDropdown = class IxDropdown {
613
+ constructor(c, r, z) {
614
+ this.z = z;
615
+ c.detach();
616
+ this.el = r.nativeElement;
617
+ proxyOutputs(this, this.el, ['showChanged']);
618
+ }
619
+ };
620
+ /** @nocollapse */ IxDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
621
+ /** @nocollapse */ IxDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxDropdown, selector: "ix-dropdown", inputs: { anchor: "anchor", closeBehavior: "closeBehavior", header: "header", placement: "placement", positioningStrategy: "positioningStrategy", show: "show", suppressAutomaticPlacement: "suppressAutomaticPlacement", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
622
+ IxDropdown = __decorate([
623
+ ProxyCmp({
624
+ inputs: ['anchor', 'closeBehavior', 'header', 'placement', 'positioningStrategy', 'show', 'suppressAutomaticPlacement', 'trigger'],
625
+ methods: ['updatePosition']
626
+ })
627
+ ], IxDropdown);
628
+ export { IxDropdown };
629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDropdown, decorators: [{
630
+ type: Component,
631
+ args: [{
632
+ selector: 'ix-dropdown',
633
+ changeDetection: ChangeDetectionStrategy.OnPush,
634
+ template: '<ng-content></ng-content>',
635
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
636
+ inputs: ['anchor', 'closeBehavior', 'header', 'placement', 'positioningStrategy', 'show', 'suppressAutomaticPlacement', 'trigger'],
637
+ }]
638
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
639
+ let IxDropdownButton = class IxDropdownButton {
640
+ constructor(c, r, z) {
641
+ this.z = z;
642
+ c.detach();
643
+ this.el = r.nativeElement;
644
+ }
645
+ };
646
+ /** @nocollapse */ IxDropdownButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDropdownButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
647
+ /** @nocollapse */ IxDropdownButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxDropdownButton, selector: "ix-dropdown-button", inputs: { closeBehavior: "closeBehavior", disabled: "disabled", ghost: "ghost", icon: "icon", label: "label", outline: "outline", placement: "placement", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
648
+ IxDropdownButton = __decorate([
649
+ ProxyCmp({
650
+ inputs: ['closeBehavior', 'disabled', 'ghost', 'icon', 'label', 'outline', 'placement', 'variant']
651
+ })
652
+ ], IxDropdownButton);
653
+ export { IxDropdownButton };
654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDropdownButton, decorators: [{
655
+ type: Component,
656
+ args: [{
657
+ selector: 'ix-dropdown-button',
658
+ changeDetection: ChangeDetectionStrategy.OnPush,
659
+ template: '<ng-content></ng-content>',
660
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
661
+ inputs: ['closeBehavior', 'disabled', 'ghost', 'icon', 'label', 'outline', 'placement', 'variant'],
662
+ }]
663
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
664
+ let IxDropdownHeader = class IxDropdownHeader {
665
+ constructor(c, r, z) {
666
+ this.z = z;
667
+ c.detach();
668
+ this.el = r.nativeElement;
669
+ }
670
+ };
671
+ /** @nocollapse */ IxDropdownHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDropdownHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
672
+ /** @nocollapse */ IxDropdownHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxDropdownHeader, selector: "ix-dropdown-header", inputs: { label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
673
+ IxDropdownHeader = __decorate([
674
+ ProxyCmp({
675
+ inputs: ['label']
676
+ })
677
+ ], IxDropdownHeader);
678
+ export { IxDropdownHeader };
679
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDropdownHeader, decorators: [{
680
+ type: Component,
681
+ args: [{
682
+ selector: 'ix-dropdown-header',
683
+ changeDetection: ChangeDetectionStrategy.OnPush,
684
+ template: '<ng-content></ng-content>',
685
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
686
+ inputs: ['label'],
687
+ }]
688
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
689
+ let IxDropdownItem = class IxDropdownItem {
690
+ constructor(c, r, z) {
691
+ this.z = z;
692
+ c.detach();
693
+ this.el = r.nativeElement;
694
+ }
695
+ };
696
+ /** @nocollapse */ IxDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDropdownItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
697
+ /** @nocollapse */ IxDropdownItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxDropdownItem, selector: "ix-dropdown-item", inputs: { checked: "checked", disabled: "disabled", hover: "hover", icon: "icon", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
698
+ IxDropdownItem = __decorate([
699
+ ProxyCmp({
700
+ inputs: ['checked', 'disabled', 'hover', 'icon', 'label'],
701
+ methods: ['emitItemClick']
702
+ })
703
+ ], IxDropdownItem);
704
+ export { IxDropdownItem };
705
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDropdownItem, decorators: [{
706
+ type: Component,
707
+ args: [{
708
+ selector: 'ix-dropdown-item',
709
+ changeDetection: ChangeDetectionStrategy.OnPush,
710
+ template: '<ng-content></ng-content>',
711
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
712
+ inputs: ['checked', 'disabled', 'hover', 'icon', 'label'],
713
+ }]
714
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
715
+ let IxDropdownQuickActions = class IxDropdownQuickActions {
716
+ constructor(c, r, z) {
717
+ this.z = z;
718
+ c.detach();
719
+ this.el = r.nativeElement;
720
+ }
721
+ };
722
+ /** @nocollapse */ IxDropdownQuickActions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDropdownQuickActions, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
723
+ /** @nocollapse */ IxDropdownQuickActions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxDropdownQuickActions, selector: "ix-dropdown-quick-actions", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
724
+ IxDropdownQuickActions = __decorate([
725
+ ProxyCmp({})
726
+ ], IxDropdownQuickActions);
727
+ export { IxDropdownQuickActions };
728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxDropdownQuickActions, decorators: [{
729
+ type: Component,
730
+ args: [{
731
+ selector: 'ix-dropdown-quick-actions',
732
+ changeDetection: ChangeDetectionStrategy.OnPush,
733
+ template: '<ng-content></ng-content>',
734
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
735
+ inputs: [],
736
+ }]
737
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
738
+ let IxEmptyState = class IxEmptyState {
739
+ constructor(c, r, z) {
740
+ this.z = z;
741
+ c.detach();
742
+ this.el = r.nativeElement;
743
+ proxyOutputs(this, this.el, ['actionClick']);
744
+ }
745
+ };
746
+ /** @nocollapse */ IxEmptyState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxEmptyState, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
747
+ /** @nocollapse */ IxEmptyState.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxEmptyState, selector: "ix-empty-state", inputs: { action: "action", header: "header", icon: "icon", layout: "layout", subHeader: "subHeader" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
748
+ IxEmptyState = __decorate([
749
+ ProxyCmp({
750
+ inputs: ['action', 'header', 'icon', 'layout', 'subHeader']
751
+ })
752
+ ], IxEmptyState);
753
+ export { IxEmptyState };
754
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxEmptyState, decorators: [{
755
+ type: Component,
756
+ args: [{
757
+ selector: 'ix-empty-state',
758
+ changeDetection: ChangeDetectionStrategy.OnPush,
759
+ template: '<ng-content></ng-content>',
760
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
761
+ inputs: ['action', 'header', 'icon', 'layout', 'subHeader'],
762
+ }]
763
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
764
+ let IxEventList = class IxEventList {
765
+ constructor(c, r, z) {
766
+ this.z = z;
767
+ c.detach();
768
+ this.el = r.nativeElement;
769
+ }
770
+ };
771
+ /** @nocollapse */ IxEventList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxEventList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
772
+ /** @nocollapse */ IxEventList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxEventList, selector: "ix-event-list", inputs: { animated: "animated", chevron: "chevron", compact: "compact", itemHeight: "itemHeight" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
773
+ IxEventList = __decorate([
774
+ ProxyCmp({
775
+ inputs: ['animated', 'chevron', 'compact', 'itemHeight']
776
+ })
777
+ ], IxEventList);
778
+ export { IxEventList };
779
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxEventList, decorators: [{
780
+ type: Component,
781
+ args: [{
782
+ selector: 'ix-event-list',
783
+ changeDetection: ChangeDetectionStrategy.OnPush,
784
+ template: '<ng-content></ng-content>',
785
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
786
+ inputs: ['animated', 'chevron', 'compact', 'itemHeight'],
787
+ }]
788
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
789
+ let IxEventListItem = class IxEventListItem {
790
+ constructor(c, r, z) {
791
+ this.z = z;
792
+ c.detach();
793
+ this.el = r.nativeElement;
794
+ proxyOutputs(this, this.el, ['itemClick']);
795
+ }
796
+ };
797
+ /** @nocollapse */ IxEventListItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxEventListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
798
+ /** @nocollapse */ IxEventListItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxEventListItem, selector: "ix-event-list-item", inputs: { chevron: "chevron", color: "color", disabled: "disabled", itemColor: "itemColor", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
799
+ IxEventListItem = __decorate([
800
+ ProxyCmp({
801
+ inputs: ['chevron', 'color', 'disabled', 'itemColor', 'selected']
802
+ })
803
+ ], IxEventListItem);
804
+ export { IxEventListItem };
805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxEventListItem, decorators: [{
806
+ type: Component,
807
+ args: [{
808
+ selector: 'ix-event-list-item',
809
+ changeDetection: ChangeDetectionStrategy.OnPush,
810
+ template: '<ng-content></ng-content>',
811
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
812
+ inputs: ['chevron', 'color', 'disabled', 'itemColor', 'selected'],
813
+ }]
814
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
815
+ let IxExpandingSearch = class IxExpandingSearch {
816
+ constructor(c, r, z) {
817
+ this.z = z;
818
+ c.detach();
819
+ this.el = r.nativeElement;
820
+ proxyOutputs(this, this.el, ['valueChange']);
821
+ }
822
+ };
823
+ /** @nocollapse */ IxExpandingSearch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxExpandingSearch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
824
+ /** @nocollapse */ IxExpandingSearch.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxExpandingSearch, selector: "ix-expanding-search", inputs: { fullWidth: "fullWidth", icon: "icon", placeholder: "placeholder", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
825
+ IxExpandingSearch = __decorate([
826
+ ProxyCmp({
827
+ inputs: ['fullWidth', 'icon', 'placeholder', 'value']
828
+ })
829
+ ], IxExpandingSearch);
830
+ export { IxExpandingSearch };
831
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxExpandingSearch, decorators: [{
832
+ type: Component,
833
+ args: [{
834
+ selector: 'ix-expanding-search',
835
+ changeDetection: ChangeDetectionStrategy.OnPush,
836
+ template: '<ng-content></ng-content>',
837
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
838
+ inputs: ['fullWidth', 'icon', 'placeholder', 'value'],
839
+ }]
840
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
841
+ let IxFilterChip = class IxFilterChip {
842
+ constructor(c, r, z) {
843
+ this.z = z;
844
+ c.detach();
845
+ this.el = r.nativeElement;
846
+ proxyOutputs(this, this.el, ['closeClick']);
847
+ }
848
+ };
849
+ /** @nocollapse */ IxFilterChip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxFilterChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
850
+ /** @nocollapse */ IxFilterChip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxFilterChip, selector: "ix-filter-chip", inputs: { disabled: "disabled", readonly: "readonly" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
851
+ IxFilterChip = __decorate([
852
+ ProxyCmp({
853
+ inputs: ['disabled', 'readonly']
854
+ })
855
+ ], IxFilterChip);
856
+ export { IxFilterChip };
857
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxFilterChip, decorators: [{
858
+ type: Component,
859
+ args: [{
860
+ selector: 'ix-filter-chip',
861
+ changeDetection: ChangeDetectionStrategy.OnPush,
862
+ template: '<ng-content></ng-content>',
863
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
864
+ inputs: ['disabled', 'readonly'],
865
+ }]
866
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
867
+ let IxFlipTile = class IxFlipTile {
868
+ constructor(c, r, z) {
869
+ this.z = z;
870
+ c.detach();
871
+ this.el = r.nativeElement;
872
+ }
873
+ };
874
+ /** @nocollapse */ IxFlipTile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxFlipTile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
875
+ /** @nocollapse */ IxFlipTile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxFlipTile, selector: "ix-flip-tile", inputs: { height: "height", state: "state", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
876
+ IxFlipTile = __decorate([
877
+ ProxyCmp({
878
+ inputs: ['height', 'state', 'width']
879
+ })
880
+ ], IxFlipTile);
881
+ export { IxFlipTile };
882
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxFlipTile, decorators: [{
883
+ type: Component,
884
+ args: [{
885
+ selector: 'ix-flip-tile',
886
+ changeDetection: ChangeDetectionStrategy.OnPush,
887
+ template: '<ng-content></ng-content>',
888
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
889
+ inputs: ['height', 'state', 'width'],
890
+ }]
891
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
892
+ let IxFlipTileContent = class IxFlipTileContent {
893
+ constructor(c, r, z) {
894
+ this.z = z;
895
+ c.detach();
896
+ this.el = r.nativeElement;
897
+ }
898
+ };
899
+ /** @nocollapse */ IxFlipTileContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxFlipTileContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
900
+ /** @nocollapse */ IxFlipTileContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxFlipTileContent, selector: "ix-flip-tile-content", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
901
+ IxFlipTileContent = __decorate([
902
+ ProxyCmp({})
903
+ ], IxFlipTileContent);
904
+ export { IxFlipTileContent };
905
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxFlipTileContent, decorators: [{
906
+ type: Component,
907
+ args: [{
908
+ selector: 'ix-flip-tile-content',
909
+ changeDetection: ChangeDetectionStrategy.OnPush,
910
+ template: '<ng-content></ng-content>',
911
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
912
+ inputs: [],
913
+ }]
914
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
915
+ let IxFormField = class IxFormField {
916
+ constructor(c, r, z) {
917
+ this.z = z;
918
+ c.detach();
919
+ this.el = r.nativeElement;
920
+ }
921
+ };
922
+ /** @nocollapse */ IxFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxFormField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
923
+ /** @nocollapse */ IxFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxFormField, selector: "ix-form-field", inputs: { label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
924
+ IxFormField = __decorate([
925
+ ProxyCmp({
926
+ inputs: ['label']
927
+ })
928
+ ], IxFormField);
929
+ export { IxFormField };
930
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxFormField, decorators: [{
931
+ type: Component,
932
+ args: [{
933
+ selector: 'ix-form-field',
934
+ changeDetection: ChangeDetectionStrategy.OnPush,
935
+ template: '<ng-content></ng-content>',
936
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
937
+ inputs: ['label'],
938
+ }]
939
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
940
+ let IxGroup = class IxGroup {
941
+ constructor(c, r, z) {
942
+ this.z = z;
943
+ c.detach();
944
+ this.el = r.nativeElement;
945
+ proxyOutputs(this, this.el, ['selectGroup', 'selectItem', 'collapsedChanged']);
946
+ }
947
+ };
948
+ /** @nocollapse */ IxGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
949
+ /** @nocollapse */ IxGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxGroup, selector: "ix-group", inputs: { collapsed: "collapsed", expandOnHeaderClick: "expandOnHeaderClick", header: "header", index: "index", selected: "selected", subHeader: "subHeader", suppressHeaderSelection: "suppressHeaderSelection" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
950
+ IxGroup = __decorate([
951
+ ProxyCmp({
952
+ inputs: ['collapsed', 'expandOnHeaderClick', 'header', 'index', 'selected', 'subHeader', 'suppressHeaderSelection']
953
+ })
954
+ ], IxGroup);
955
+ export { IxGroup };
956
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxGroup, decorators: [{
957
+ type: Component,
958
+ args: [{
959
+ selector: 'ix-group',
960
+ changeDetection: ChangeDetectionStrategy.OnPush,
961
+ template: '<ng-content></ng-content>',
962
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
963
+ inputs: ['collapsed', 'expandOnHeaderClick', 'header', 'index', 'selected', 'subHeader', 'suppressHeaderSelection'],
964
+ }]
965
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
966
+ let IxGroupContextMenu = class IxGroupContextMenu {
967
+ constructor(c, r, z) {
968
+ this.z = z;
969
+ c.detach();
970
+ this.el = r.nativeElement;
971
+ }
972
+ };
973
+ /** @nocollapse */ IxGroupContextMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxGroupContextMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
974
+ /** @nocollapse */ IxGroupContextMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxGroupContextMenu, selector: "ix-group-context-menu", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
975
+ IxGroupContextMenu = __decorate([
976
+ ProxyCmp({})
977
+ ], IxGroupContextMenu);
978
+ export { IxGroupContextMenu };
979
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxGroupContextMenu, decorators: [{
980
+ type: Component,
981
+ args: [{
982
+ selector: 'ix-group-context-menu',
983
+ changeDetection: ChangeDetectionStrategy.OnPush,
984
+ template: '<ng-content></ng-content>',
985
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
986
+ inputs: [],
987
+ }]
988
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
989
+ let IxGroupItem = class IxGroupItem {
990
+ constructor(c, r, z) {
991
+ this.z = z;
992
+ c.detach();
993
+ this.el = r.nativeElement;
994
+ proxyOutputs(this, this.el, ['selectedChanged']);
995
+ }
996
+ };
997
+ /** @nocollapse */ IxGroupItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxGroupItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
998
+ /** @nocollapse */ IxGroupItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxGroupItem, selector: "ix-group-item", inputs: { focusable: "focusable", icon: "icon", index: "index", secondaryText: "secondaryText", selected: "selected", suppressSelection: "suppressSelection", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
999
+ IxGroupItem = __decorate([
1000
+ ProxyCmp({
1001
+ inputs: ['focusable', 'icon', 'index', 'secondaryText', 'selected', 'suppressSelection', 'text']
1002
+ })
1003
+ ], IxGroupItem);
1004
+ export { IxGroupItem };
1005
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxGroupItem, decorators: [{
1006
+ type: Component,
1007
+ args: [{
1008
+ selector: 'ix-group-item',
1009
+ changeDetection: ChangeDetectionStrategy.OnPush,
1010
+ template: '<ng-content></ng-content>',
1011
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1012
+ inputs: ['focusable', 'icon', 'index', 'secondaryText', 'selected', 'suppressSelection', 'text'],
1013
+ }]
1014
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1015
+ let IxIconButton = class IxIconButton {
1016
+ constructor(c, r, z) {
1017
+ this.z = z;
1018
+ c.detach();
1019
+ this.el = r.nativeElement;
1020
+ }
1021
+ };
1022
+ /** @nocollapse */ IxIconButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxIconButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1023
+ /** @nocollapse */ IxIconButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxIconButton, selector: "ix-icon-button", inputs: { a11yLabel: "a11yLabel", color: "color", disabled: "disabled", ghost: "ghost", icon: "icon", iconColor: "iconColor", loading: "loading", outline: "outline", oval: "oval", size: "size", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1024
+ IxIconButton = __decorate([
1025
+ ProxyCmp({
1026
+ inputs: ['a11yLabel', 'color', 'disabled', 'ghost', 'icon', 'iconColor', 'loading', 'outline', 'oval', 'size', 'type', 'variant']
1027
+ })
1028
+ ], IxIconButton);
1029
+ export { IxIconButton };
1030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxIconButton, decorators: [{
1031
+ type: Component,
1032
+ args: [{
1033
+ selector: 'ix-icon-button',
1034
+ changeDetection: ChangeDetectionStrategy.OnPush,
1035
+ template: '<ng-content></ng-content>',
1036
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1037
+ inputs: ['a11yLabel', 'color', 'disabled', 'ghost', 'icon', 'iconColor', 'loading', 'outline', 'oval', 'size', 'type', 'variant'],
1038
+ }]
1039
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1040
+ let IxIconToggleButton = class IxIconToggleButton {
1041
+ constructor(c, r, z) {
1042
+ this.z = z;
1043
+ c.detach();
1044
+ this.el = r.nativeElement;
1045
+ proxyOutputs(this, this.el, ['pressedChange']);
1046
+ }
1047
+ };
1048
+ /** @nocollapse */ IxIconToggleButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxIconToggleButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1049
+ /** @nocollapse */ IxIconToggleButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxIconToggleButton, selector: "ix-icon-toggle-button", inputs: { disabled: "disabled", ghost: "ghost", icon: "icon", loading: "loading", outline: "outline", pressed: "pressed", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1050
+ IxIconToggleButton = __decorate([
1051
+ ProxyCmp({
1052
+ inputs: ['disabled', 'ghost', 'icon', 'loading', 'outline', 'pressed', 'size', 'variant']
1053
+ })
1054
+ ], IxIconToggleButton);
1055
+ export { IxIconToggleButton };
1056
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxIconToggleButton, decorators: [{
1057
+ type: Component,
1058
+ args: [{
1059
+ selector: 'ix-icon-toggle-button',
1060
+ changeDetection: ChangeDetectionStrategy.OnPush,
1061
+ template: '<ng-content></ng-content>',
1062
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1063
+ inputs: ['disabled', 'ghost', 'icon', 'loading', 'outline', 'pressed', 'size', 'variant'],
1064
+ }]
1065
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1066
+ let IxInputGroup = class IxInputGroup {
1067
+ constructor(c, r, z) {
1068
+ this.z = z;
1069
+ c.detach();
1070
+ this.el = r.nativeElement;
1071
+ }
1072
+ };
1073
+ /** @nocollapse */ IxInputGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxInputGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1074
+ /** @nocollapse */ IxInputGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxInputGroup, selector: "ix-input-group", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1075
+ IxInputGroup = __decorate([
1076
+ ProxyCmp({})
1077
+ ], IxInputGroup);
1078
+ export { IxInputGroup };
1079
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxInputGroup, decorators: [{
1080
+ type: Component,
1081
+ args: [{
1082
+ selector: 'ix-input-group',
1083
+ changeDetection: ChangeDetectionStrategy.OnPush,
1084
+ template: '<ng-content></ng-content>',
1085
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1086
+ inputs: [],
1087
+ }]
1088
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1089
+ let IxKeyValue = class IxKeyValue {
1090
+ constructor(c, r, z) {
1091
+ this.z = z;
1092
+ c.detach();
1093
+ this.el = r.nativeElement;
1094
+ }
1095
+ };
1096
+ /** @nocollapse */ IxKeyValue.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxKeyValue, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1097
+ /** @nocollapse */ IxKeyValue.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxKeyValue, selector: "ix-key-value", inputs: { icon: "icon", label: "label", labelPosition: "labelPosition", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1098
+ IxKeyValue = __decorate([
1099
+ ProxyCmp({
1100
+ inputs: ['icon', 'label', 'labelPosition', 'value']
1101
+ })
1102
+ ], IxKeyValue);
1103
+ export { IxKeyValue };
1104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxKeyValue, decorators: [{
1105
+ type: Component,
1106
+ args: [{
1107
+ selector: 'ix-key-value',
1108
+ changeDetection: ChangeDetectionStrategy.OnPush,
1109
+ template: '<ng-content></ng-content>',
1110
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1111
+ inputs: ['icon', 'label', 'labelPosition', 'value'],
1112
+ }]
1113
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1114
+ let IxKeyValueList = class IxKeyValueList {
1115
+ constructor(c, r, z) {
1116
+ this.z = z;
1117
+ c.detach();
1118
+ this.el = r.nativeElement;
1119
+ }
1120
+ };
1121
+ /** @nocollapse */ IxKeyValueList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxKeyValueList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1122
+ /** @nocollapse */ IxKeyValueList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxKeyValueList, selector: "ix-key-value-list", inputs: { striped: "striped" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1123
+ IxKeyValueList = __decorate([
1124
+ ProxyCmp({
1125
+ inputs: ['striped']
1126
+ })
1127
+ ], IxKeyValueList);
1128
+ export { IxKeyValueList };
1129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxKeyValueList, decorators: [{
1130
+ type: Component,
1131
+ args: [{
1132
+ selector: 'ix-key-value-list',
1133
+ changeDetection: ChangeDetectionStrategy.OnPush,
1134
+ template: '<ng-content></ng-content>',
1135
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1136
+ inputs: ['striped'],
1137
+ }]
1138
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1139
+ let IxKpi = class IxKpi {
1140
+ constructor(c, r, z) {
1141
+ this.z = z;
1142
+ c.detach();
1143
+ this.el = r.nativeElement;
1144
+ }
1145
+ };
1146
+ /** @nocollapse */ IxKpi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxKpi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1147
+ /** @nocollapse */ IxKpi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxKpi, selector: "ix-kpi", inputs: { label: "label", orientation: "orientation", state: "state", unit: "unit", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1148
+ IxKpi = __decorate([
1149
+ ProxyCmp({
1150
+ inputs: ['label', 'orientation', 'state', 'unit', 'value']
1151
+ })
1152
+ ], IxKpi);
1153
+ export { IxKpi };
1154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxKpi, decorators: [{
1155
+ type: Component,
1156
+ args: [{
1157
+ selector: 'ix-kpi',
1158
+ changeDetection: ChangeDetectionStrategy.OnPush,
1159
+ template: '<ng-content></ng-content>',
1160
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1161
+ inputs: ['label', 'orientation', 'state', 'unit', 'value'],
1162
+ }]
1163
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1164
+ let IxLayoutGrid = class IxLayoutGrid {
1165
+ constructor(c, r, z) {
1166
+ this.z = z;
1167
+ c.detach();
1168
+ this.el = r.nativeElement;
1169
+ }
1170
+ };
1171
+ /** @nocollapse */ IxLayoutGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxLayoutGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1172
+ /** @nocollapse */ IxLayoutGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxLayoutGrid, selector: "ix-layout-grid", inputs: { columns: "columns", gap: "gap", noMargin: "noMargin" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1173
+ IxLayoutGrid = __decorate([
1174
+ ProxyCmp({
1175
+ inputs: ['columns', 'gap', 'noMargin']
1176
+ })
1177
+ ], IxLayoutGrid);
1178
+ export { IxLayoutGrid };
1179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxLayoutGrid, decorators: [{
1180
+ type: Component,
1181
+ args: [{
1182
+ selector: 'ix-layout-grid',
1183
+ changeDetection: ChangeDetectionStrategy.OnPush,
1184
+ template: '<ng-content></ng-content>',
1185
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1186
+ inputs: ['columns', 'gap', 'noMargin'],
1187
+ }]
1188
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1189
+ let IxLinkButton = class IxLinkButton {
1190
+ constructor(c, r, z) {
1191
+ this.z = z;
1192
+ c.detach();
1193
+ this.el = r.nativeElement;
1194
+ }
1195
+ };
1196
+ /** @nocollapse */ IxLinkButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxLinkButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1197
+ /** @nocollapse */ IxLinkButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxLinkButton, selector: "ix-link-button", inputs: { disabled: "disabled", target: "target", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1198
+ IxLinkButton = __decorate([
1199
+ ProxyCmp({
1200
+ inputs: ['disabled', 'target', 'url']
1201
+ })
1202
+ ], IxLinkButton);
1203
+ export { IxLinkButton };
1204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxLinkButton, decorators: [{
1205
+ type: Component,
1206
+ args: [{
1207
+ selector: 'ix-link-button',
1208
+ changeDetection: ChangeDetectionStrategy.OnPush,
1209
+ template: '<ng-content></ng-content>',
1210
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1211
+ inputs: ['disabled', 'target', 'url'],
1212
+ }]
1213
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1214
+ let IxMapNavigation = class IxMapNavigation {
1215
+ constructor(c, r, z) {
1216
+ this.z = z;
1217
+ c.detach();
1218
+ this.el = r.nativeElement;
1219
+ proxyOutputs(this, this.el, ['navigationToggled', 'contextMenuClick']);
1220
+ }
1221
+ };
1222
+ /** @nocollapse */ IxMapNavigation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMapNavigation, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1223
+ /** @nocollapse */ IxMapNavigation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMapNavigation, selector: "ix-map-navigation", inputs: { applicationName: "applicationName", hideContextMenu: "hideContextMenu", navigationTitle: "navigationTitle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1224
+ IxMapNavigation = __decorate([
1225
+ ProxyCmp({
1226
+ inputs: ['applicationName', 'hideContextMenu', 'navigationTitle'],
1227
+ methods: ['toggleSidebar', 'openOverlay', 'closeOverlay']
1228
+ })
1229
+ ], IxMapNavigation);
1230
+ export { IxMapNavigation };
1231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMapNavigation, decorators: [{
1232
+ type: Component,
1233
+ args: [{
1234
+ selector: 'ix-map-navigation',
1235
+ changeDetection: ChangeDetectionStrategy.OnPush,
1236
+ template: '<ng-content></ng-content>',
1237
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1238
+ inputs: ['applicationName', 'hideContextMenu', 'navigationTitle'],
1239
+ }]
1240
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1241
+ let IxMapNavigationOverlay = class IxMapNavigationOverlay {
1242
+ constructor(c, r, z) {
1243
+ this.z = z;
1244
+ c.detach();
1245
+ this.el = r.nativeElement;
1246
+ proxyOutputs(this, this.el, ['closeClick']);
1247
+ }
1248
+ };
1249
+ /** @nocollapse */ IxMapNavigationOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMapNavigationOverlay, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1250
+ /** @nocollapse */ IxMapNavigationOverlay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMapNavigationOverlay, selector: "ix-map-navigation-overlay", inputs: { color: "color", icon: "icon", iconColor: "iconColor", name: "name" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1251
+ IxMapNavigationOverlay = __decorate([
1252
+ ProxyCmp({
1253
+ inputs: ['color', 'icon', 'iconColor', 'name']
1254
+ })
1255
+ ], IxMapNavigationOverlay);
1256
+ export { IxMapNavigationOverlay };
1257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMapNavigationOverlay, decorators: [{
1258
+ type: Component,
1259
+ args: [{
1260
+ selector: 'ix-map-navigation-overlay',
1261
+ changeDetection: ChangeDetectionStrategy.OnPush,
1262
+ template: '<ng-content></ng-content>',
1263
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1264
+ inputs: ['color', 'icon', 'iconColor', 'name'],
1265
+ }]
1266
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1267
+ let IxMenu = class IxMenu {
1268
+ constructor(c, r, z) {
1269
+ this.z = z;
1270
+ c.detach();
1271
+ this.el = r.nativeElement;
1272
+ proxyOutputs(this, this.el, ['expandChange', 'mapExpandChange']);
1273
+ }
1274
+ };
1275
+ /** @nocollapse */ IxMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1276
+ /** @nocollapse */ IxMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMenu, selector: "ix-menu", inputs: { applicationDescription: "applicationDescription", applicationName: "applicationName", enableMapExpand: "enableMapExpand", enableSettings: "enableSettings", enableToggleTheme: "enableToggleTheme", expand: "expand", i18nCollapse: "i18nCollapse", i18nExpand: "i18nExpand", i18nExpandSidebar: "i18nExpandSidebar", i18nLegal: "i18nLegal", i18nSettings: "i18nSettings", i18nToggleTheme: "i18nToggleTheme", maxVisibleMenuItems: "maxVisibleMenuItems", pinned: "pinned", showAbout: "showAbout", showSettings: "showSettings", startExpanded: "startExpanded" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1277
+ IxMenu = __decorate([
1278
+ ProxyCmp({
1279
+ inputs: ['applicationDescription', 'applicationName', 'enableMapExpand', 'enableSettings', 'enableToggleTheme', 'expand', 'i18nCollapse', 'i18nExpand', 'i18nExpandSidebar', 'i18nLegal', 'i18nSettings', 'i18nToggleTheme', 'maxVisibleMenuItems', 'pinned', 'showAbout', 'showSettings', 'startExpanded'],
1280
+ methods: ['toggleMapExpand', 'toggleMenu', 'toggleSettings', 'toggleAbout']
1281
+ })
1282
+ ], IxMenu);
1283
+ export { IxMenu };
1284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenu, decorators: [{
1285
+ type: Component,
1286
+ args: [{
1287
+ selector: 'ix-menu',
1288
+ changeDetection: ChangeDetectionStrategy.OnPush,
1289
+ template: '<ng-content></ng-content>',
1290
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1291
+ inputs: ['applicationDescription', 'applicationName', 'enableMapExpand', 'enableSettings', 'enableToggleTheme', 'expand', 'i18nCollapse', 'i18nExpand', 'i18nExpandSidebar', 'i18nLegal', 'i18nSettings', 'i18nToggleTheme', 'maxVisibleMenuItems', 'pinned', 'showAbout', 'showSettings', 'startExpanded'],
1292
+ }]
1293
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1294
+ let IxMenuAbout = class IxMenuAbout {
1295
+ constructor(c, r, z) {
1296
+ this.z = z;
1297
+ c.detach();
1298
+ this.el = r.nativeElement;
1299
+ proxyOutputs(this, this.el, ['close']);
1300
+ }
1301
+ };
1302
+ /** @nocollapse */ IxMenuAbout.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuAbout, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1303
+ /** @nocollapse */ IxMenuAbout.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMenuAbout, selector: "ix-menu-about", inputs: { activeTabLabel: "activeTabLabel", label: "label", show: "show" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1304
+ IxMenuAbout = __decorate([
1305
+ ProxyCmp({
1306
+ inputs: ['activeTabLabel', 'label', 'show']
1307
+ })
1308
+ ], IxMenuAbout);
1309
+ export { IxMenuAbout };
1310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuAbout, decorators: [{
1311
+ type: Component,
1312
+ args: [{
1313
+ selector: 'ix-menu-about',
1314
+ changeDetection: ChangeDetectionStrategy.OnPush,
1315
+ template: '<ng-content></ng-content>',
1316
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1317
+ inputs: ['activeTabLabel', 'label', 'show'],
1318
+ }]
1319
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1320
+ let IxMenuAboutItem = class IxMenuAboutItem {
1321
+ constructor(c, r, z) {
1322
+ this.z = z;
1323
+ c.detach();
1324
+ this.el = r.nativeElement;
1325
+ proxyOutputs(this, this.el, ['labelChange']);
1326
+ }
1327
+ };
1328
+ /** @nocollapse */ IxMenuAboutItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuAboutItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1329
+ /** @nocollapse */ IxMenuAboutItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMenuAboutItem, selector: "ix-menu-about-item", inputs: { label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1330
+ IxMenuAboutItem = __decorate([
1331
+ ProxyCmp({
1332
+ inputs: ['label']
1333
+ })
1334
+ ], IxMenuAboutItem);
1335
+ export { IxMenuAboutItem };
1336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuAboutItem, decorators: [{
1337
+ type: Component,
1338
+ args: [{
1339
+ selector: 'ix-menu-about-item',
1340
+ changeDetection: ChangeDetectionStrategy.OnPush,
1341
+ template: '<ng-content></ng-content>',
1342
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1343
+ inputs: ['label'],
1344
+ }]
1345
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1346
+ let IxMenuAboutNews = class IxMenuAboutNews {
1347
+ constructor(c, r, z) {
1348
+ this.z = z;
1349
+ c.detach();
1350
+ this.el = r.nativeElement;
1351
+ proxyOutputs(this, this.el, ['showMore', 'closePopover']);
1352
+ }
1353
+ };
1354
+ /** @nocollapse */ IxMenuAboutNews.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuAboutNews, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1355
+ /** @nocollapse */ IxMenuAboutNews.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMenuAboutNews, selector: "ix-menu-about-news", inputs: { aboutItemLabel: "aboutItemLabel", expanded: "expanded", i18nShowMore: "i18nShowMore", label: "label", offsetBottom: "offsetBottom", show: "show" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1356
+ IxMenuAboutNews = __decorate([
1357
+ ProxyCmp({
1358
+ inputs: ['aboutItemLabel', 'expanded', 'i18nShowMore', 'label', 'offsetBottom', 'show']
1359
+ })
1360
+ ], IxMenuAboutNews);
1361
+ export { IxMenuAboutNews };
1362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuAboutNews, decorators: [{
1363
+ type: Component,
1364
+ args: [{
1365
+ selector: 'ix-menu-about-news',
1366
+ changeDetection: ChangeDetectionStrategy.OnPush,
1367
+ template: '<ng-content></ng-content>',
1368
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1369
+ inputs: ['aboutItemLabel', 'expanded', 'i18nShowMore', 'label', 'offsetBottom', 'show'],
1370
+ }]
1371
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1372
+ let IxMenuAvatar = class IxMenuAvatar {
1373
+ constructor(c, r, z) {
1374
+ this.z = z;
1375
+ c.detach();
1376
+ this.el = r.nativeElement;
1377
+ proxyOutputs(this, this.el, ['logoutClick']);
1378
+ }
1379
+ };
1380
+ /** @nocollapse */ IxMenuAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1381
+ /** @nocollapse */ IxMenuAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMenuAvatar, selector: "ix-menu-avatar", inputs: { bottom: "bottom", i18nLogout: "i18nLogout", image: "image", initials: "initials", showLogoutButton: "showLogoutButton", top: "top" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1382
+ IxMenuAvatar = __decorate([
1383
+ ProxyCmp({
1384
+ inputs: ['bottom', 'i18nLogout', 'image', 'initials', 'showLogoutButton', 'top']
1385
+ })
1386
+ ], IxMenuAvatar);
1387
+ export { IxMenuAvatar };
1388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuAvatar, decorators: [{
1389
+ type: Component,
1390
+ args: [{
1391
+ selector: 'ix-menu-avatar',
1392
+ changeDetection: ChangeDetectionStrategy.OnPush,
1393
+ template: '<ng-content></ng-content>',
1394
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1395
+ inputs: ['bottom', 'i18nLogout', 'image', 'initials', 'showLogoutButton', 'top'],
1396
+ }]
1397
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1398
+ let IxMenuAvatarItem = class IxMenuAvatarItem {
1399
+ constructor(c, r, z) {
1400
+ this.z = z;
1401
+ c.detach();
1402
+ this.el = r.nativeElement;
1403
+ proxyOutputs(this, this.el, ['itemClick']);
1404
+ }
1405
+ };
1406
+ /** @nocollapse */ IxMenuAvatarItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuAvatarItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1407
+ /** @nocollapse */ IxMenuAvatarItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMenuAvatarItem, selector: "ix-menu-avatar-item", inputs: { icon: "icon", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1408
+ IxMenuAvatarItem = __decorate([
1409
+ ProxyCmp({
1410
+ inputs: ['icon', 'label']
1411
+ })
1412
+ ], IxMenuAvatarItem);
1413
+ export { IxMenuAvatarItem };
1414
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuAvatarItem, decorators: [{
1415
+ type: Component,
1416
+ args: [{
1417
+ selector: 'ix-menu-avatar-item',
1418
+ changeDetection: ChangeDetectionStrategy.OnPush,
1419
+ template: '<ng-content></ng-content>',
1420
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1421
+ inputs: ['icon', 'label'],
1422
+ }]
1423
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1424
+ let IxMenuCategory = class IxMenuCategory {
1425
+ constructor(c, r, z) {
1426
+ this.z = z;
1427
+ c.detach();
1428
+ this.el = r.nativeElement;
1429
+ }
1430
+ };
1431
+ /** @nocollapse */ IxMenuCategory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuCategory, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1432
+ /** @nocollapse */ IxMenuCategory.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMenuCategory, selector: "ix-menu-category", inputs: { icon: "icon", label: "label", notifications: "notifications" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1433
+ IxMenuCategory = __decorate([
1434
+ ProxyCmp({
1435
+ inputs: ['icon', 'label', 'notifications']
1436
+ })
1437
+ ], IxMenuCategory);
1438
+ export { IxMenuCategory };
1439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuCategory, decorators: [{
1440
+ type: Component,
1441
+ args: [{
1442
+ selector: 'ix-menu-category',
1443
+ changeDetection: ChangeDetectionStrategy.OnPush,
1444
+ template: '<ng-content></ng-content>',
1445
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1446
+ inputs: ['icon', 'label', 'notifications'],
1447
+ }]
1448
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1449
+ let IxMenuItem = class IxMenuItem {
1450
+ constructor(c, r, z) {
1451
+ this.z = z;
1452
+ c.detach();
1453
+ this.el = r.nativeElement;
1454
+ }
1455
+ };
1456
+ /** @nocollapse */ IxMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1457
+ /** @nocollapse */ IxMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMenuItem, selector: "ix-menu-item", inputs: { active: "active", bottom: "bottom", disabled: "disabled", home: "home", icon: "icon", label: "label", notifications: "notifications", tabIcon: "tabIcon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1458
+ IxMenuItem = __decorate([
1459
+ ProxyCmp({
1460
+ inputs: ['active', 'bottom', 'disabled', 'home', 'icon', 'label', 'notifications', 'tabIcon']
1461
+ })
1462
+ ], IxMenuItem);
1463
+ export { IxMenuItem };
1464
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuItem, decorators: [{
1465
+ type: Component,
1466
+ args: [{
1467
+ selector: 'ix-menu-item',
1468
+ changeDetection: ChangeDetectionStrategy.OnPush,
1469
+ template: '<ng-content></ng-content>',
1470
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1471
+ inputs: ['active', 'bottom', 'disabled', 'home', 'icon', 'label', 'notifications', 'tabIcon'],
1472
+ }]
1473
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1474
+ let IxMenuSettings = class IxMenuSettings {
1475
+ constructor(c, r, z) {
1476
+ this.z = z;
1477
+ c.detach();
1478
+ this.el = r.nativeElement;
1479
+ proxyOutputs(this, this.el, ['close']);
1480
+ }
1481
+ };
1482
+ /** @nocollapse */ IxMenuSettings.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuSettings, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1483
+ /** @nocollapse */ IxMenuSettings.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMenuSettings, selector: "ix-menu-settings", inputs: { activeTabLabel: "activeTabLabel", label: "label", show: "show" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1484
+ IxMenuSettings = __decorate([
1485
+ ProxyCmp({
1486
+ inputs: ['activeTabLabel', 'label', 'show']
1487
+ })
1488
+ ], IxMenuSettings);
1489
+ export { IxMenuSettings };
1490
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuSettings, decorators: [{
1491
+ type: Component,
1492
+ args: [{
1493
+ selector: 'ix-menu-settings',
1494
+ changeDetection: ChangeDetectionStrategy.OnPush,
1495
+ template: '<ng-content></ng-content>',
1496
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1497
+ inputs: ['activeTabLabel', 'label', 'show'],
1498
+ }]
1499
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1500
+ let IxMenuSettingsItem = class IxMenuSettingsItem {
1501
+ constructor(c, r, z) {
1502
+ this.z = z;
1503
+ c.detach();
1504
+ this.el = r.nativeElement;
1505
+ proxyOutputs(this, this.el, ['labelChange']);
1506
+ }
1507
+ };
1508
+ /** @nocollapse */ IxMenuSettingsItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuSettingsItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1509
+ /** @nocollapse */ IxMenuSettingsItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMenuSettingsItem, selector: "ix-menu-settings-item", inputs: { label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1510
+ IxMenuSettingsItem = __decorate([
1511
+ ProxyCmp({
1512
+ inputs: ['label']
1513
+ })
1514
+ ], IxMenuSettingsItem);
1515
+ export { IxMenuSettingsItem };
1516
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMenuSettingsItem, decorators: [{
1517
+ type: Component,
1518
+ args: [{
1519
+ selector: 'ix-menu-settings-item',
1520
+ changeDetection: ChangeDetectionStrategy.OnPush,
1521
+ template: '<ng-content></ng-content>',
1522
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1523
+ inputs: ['label'],
1524
+ }]
1525
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1526
+ let IxMessageBar = class IxMessageBar {
1527
+ constructor(c, r, z) {
1528
+ this.z = z;
1529
+ c.detach();
1530
+ this.el = r.nativeElement;
1531
+ proxyOutputs(this, this.el, ['closedChange']);
1532
+ }
1533
+ };
1534
+ /** @nocollapse */ IxMessageBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMessageBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1535
+ /** @nocollapse */ IxMessageBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxMessageBar, selector: "ix-message-bar", inputs: { dismissible: "dismissible", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1536
+ IxMessageBar = __decorate([
1537
+ ProxyCmp({
1538
+ inputs: ['dismissible', 'type']
1539
+ })
1540
+ ], IxMessageBar);
1541
+ export { IxMessageBar };
1542
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxMessageBar, decorators: [{
1543
+ type: Component,
1544
+ args: [{
1545
+ selector: 'ix-message-bar',
1546
+ changeDetection: ChangeDetectionStrategy.OnPush,
1547
+ template: '<ng-content></ng-content>',
1548
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1549
+ inputs: ['dismissible', 'type'],
1550
+ }]
1551
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1552
+ let IxModal = class IxModal {
1553
+ constructor(c, r, z) {
1554
+ this.z = z;
1555
+ c.detach();
1556
+ this.el = r.nativeElement;
1557
+ proxyOutputs(this, this.el, ['dialogClose', 'dialogDismiss']);
1558
+ }
1559
+ };
1560
+ /** @nocollapse */ IxModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1561
+ /** @nocollapse */ IxModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxModal, selector: "ix-modal", inputs: { animation: "animation", backdrop: "backdrop", beforeDismiss: "beforeDismiss", centered: "centered", closeOnBackdropClick: "closeOnBackdropClick", closeOnEscape: "closeOnEscape", keyboard: "keyboard", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1562
+ IxModal = __decorate([
1563
+ ProxyCmp({
1564
+ inputs: ['animation', 'backdrop', 'beforeDismiss', 'centered', 'closeOnBackdropClick', 'closeOnEscape', 'keyboard', 'size'],
1565
+ methods: ['showModal', 'dismissModal', 'closeModal']
1566
+ })
1567
+ ], IxModal);
1568
+ export { IxModal };
1569
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxModal, decorators: [{
1570
+ type: Component,
1571
+ args: [{
1572
+ selector: 'ix-modal',
1573
+ changeDetection: ChangeDetectionStrategy.OnPush,
1574
+ template: '<ng-content></ng-content>',
1575
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1576
+ inputs: ['animation', 'backdrop', 'beforeDismiss', 'centered', 'closeOnBackdropClick', 'closeOnEscape', 'keyboard', 'size'],
1577
+ }]
1578
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1579
+ let IxModalContent = class IxModalContent {
1580
+ constructor(c, r, z) {
1581
+ this.z = z;
1582
+ c.detach();
1583
+ this.el = r.nativeElement;
1584
+ }
1585
+ };
1586
+ /** @nocollapse */ IxModalContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxModalContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1587
+ /** @nocollapse */ IxModalContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxModalContent, selector: "ix-modal-content", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1588
+ IxModalContent = __decorate([
1589
+ ProxyCmp({})
1590
+ ], IxModalContent);
1591
+ export { IxModalContent };
1592
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxModalContent, decorators: [{
1593
+ type: Component,
1594
+ args: [{
1595
+ selector: 'ix-modal-content',
1596
+ changeDetection: ChangeDetectionStrategy.OnPush,
1597
+ template: '<ng-content></ng-content>',
1598
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1599
+ inputs: [],
1600
+ }]
1601
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1602
+ let IxModalExample = class IxModalExample {
1603
+ constructor(c, r, z) {
1604
+ this.z = z;
1605
+ c.detach();
1606
+ this.el = r.nativeElement;
1607
+ }
1608
+ };
1609
+ /** @nocollapse */ IxModalExample.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxModalExample, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1610
+ /** @nocollapse */ IxModalExample.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxModalExample, selector: "ix-modal-example", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1611
+ IxModalExample = __decorate([
1612
+ ProxyCmp({})
1613
+ ], IxModalExample);
1614
+ export { IxModalExample };
1615
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxModalExample, decorators: [{
1616
+ type: Component,
1617
+ args: [{
1618
+ selector: 'ix-modal-example',
1619
+ changeDetection: ChangeDetectionStrategy.OnPush,
1620
+ template: '<ng-content></ng-content>',
1621
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1622
+ inputs: [],
1623
+ }]
1624
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1625
+ let IxModalFooter = class IxModalFooter {
1626
+ constructor(c, r, z) {
1627
+ this.z = z;
1628
+ c.detach();
1629
+ this.el = r.nativeElement;
1630
+ }
1631
+ };
1632
+ /** @nocollapse */ IxModalFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxModalFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1633
+ /** @nocollapse */ IxModalFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxModalFooter, selector: "ix-modal-footer", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1634
+ IxModalFooter = __decorate([
1635
+ ProxyCmp({})
1636
+ ], IxModalFooter);
1637
+ export { IxModalFooter };
1638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxModalFooter, decorators: [{
1639
+ type: Component,
1640
+ args: [{
1641
+ selector: 'ix-modal-footer',
1642
+ changeDetection: ChangeDetectionStrategy.OnPush,
1643
+ template: '<ng-content></ng-content>',
1644
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1645
+ inputs: [],
1646
+ }]
1647
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1648
+ let IxModalHeader = class IxModalHeader {
1649
+ constructor(c, r, z) {
1650
+ this.z = z;
1651
+ c.detach();
1652
+ this.el = r.nativeElement;
1653
+ proxyOutputs(this, this.el, ['closeClick']);
1654
+ }
1655
+ };
1656
+ /** @nocollapse */ IxModalHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxModalHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1657
+ /** @nocollapse */ IxModalHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxModalHeader, selector: "ix-modal-header", inputs: { hideClose: "hideClose", icon: "icon", iconColor: "iconColor" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1658
+ IxModalHeader = __decorate([
1659
+ ProxyCmp({
1660
+ inputs: ['hideClose', 'icon', 'iconColor']
1661
+ })
1662
+ ], IxModalHeader);
1663
+ export { IxModalHeader };
1664
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxModalHeader, decorators: [{
1665
+ type: Component,
1666
+ args: [{
1667
+ selector: 'ix-modal-header',
1668
+ changeDetection: ChangeDetectionStrategy.OnPush,
1669
+ template: '<ng-content></ng-content>',
1670
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1671
+ inputs: ['hideClose', 'icon', 'iconColor'],
1672
+ }]
1673
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1674
+ let IxPagination = class IxPagination {
1675
+ constructor(c, r, z) {
1676
+ this.z = z;
1677
+ c.detach();
1678
+ this.el = r.nativeElement;
1679
+ proxyOutputs(this, this.el, ['pageSelected', 'itemCountChanged']);
1680
+ }
1681
+ };
1682
+ /** @nocollapse */ IxPagination.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1683
+ /** @nocollapse */ IxPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxPagination, selector: "ix-pagination", inputs: { advanced: "advanced", count: "count", i18nItems: "i18nItems", i18nOf: "i18nOf", i18nPage: "i18nPage", itemCount: "itemCount", selectedPage: "selectedPage", showItemCount: "showItemCount" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1684
+ IxPagination = __decorate([
1685
+ ProxyCmp({
1686
+ inputs: ['advanced', 'count', 'i18nItems', 'i18nOf', 'i18nPage', 'itemCount', 'selectedPage', 'showItemCount']
1687
+ })
1688
+ ], IxPagination);
1689
+ export { IxPagination };
1690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxPagination, decorators: [{
1691
+ type: Component,
1692
+ args: [{
1693
+ selector: 'ix-pagination',
1694
+ changeDetection: ChangeDetectionStrategy.OnPush,
1695
+ template: '<ng-content></ng-content>',
1696
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1697
+ inputs: ['advanced', 'count', 'i18nItems', 'i18nOf', 'i18nPage', 'itemCount', 'selectedPage', 'showItemCount'],
1698
+ }]
1699
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1700
+ let IxPane = class IxPane {
1701
+ constructor(c, r, z) {
1702
+ this.z = z;
1703
+ c.detach();
1704
+ this.el = r.nativeElement;
1705
+ proxyOutputs(this, this.el, ['expandedChanged', 'variantChanged', 'borderlessChanged']);
1706
+ }
1707
+ };
1708
+ /** @nocollapse */ IxPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxPane, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1709
+ /** @nocollapse */ IxPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxPane, selector: "ix-pane", inputs: { borderless: "borderless", composition: "composition", expanded: "expanded", heading: "heading", hideOnCollapse: "hideOnCollapse", icon: "icon", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1710
+ IxPane = __decorate([
1711
+ ProxyCmp({
1712
+ inputs: ['borderless', 'composition', 'expanded', 'heading', 'hideOnCollapse', 'icon', 'size', 'variant']
1713
+ })
1714
+ ], IxPane);
1715
+ export { IxPane };
1716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxPane, decorators: [{
1717
+ type: Component,
1718
+ args: [{
1719
+ selector: 'ix-pane',
1720
+ changeDetection: ChangeDetectionStrategy.OnPush,
1721
+ template: '<ng-content></ng-content>',
1722
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1723
+ inputs: ['borderless', 'composition', 'expanded', 'heading', 'hideOnCollapse', 'icon', 'size', 'variant'],
1724
+ }]
1725
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1726
+ let IxPaneLayout = class IxPaneLayout {
1727
+ constructor(c, r, z) {
1728
+ this.z = z;
1729
+ c.detach();
1730
+ this.el = r.nativeElement;
1731
+ }
1732
+ };
1733
+ /** @nocollapse */ IxPaneLayout.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxPaneLayout, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1734
+ /** @nocollapse */ IxPaneLayout.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxPaneLayout, selector: "ix-pane-layout", inputs: { borderless: "borderless", layout: "layout", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1735
+ IxPaneLayout = __decorate([
1736
+ ProxyCmp({
1737
+ inputs: ['borderless', 'layout', 'variant']
1738
+ })
1739
+ ], IxPaneLayout);
1740
+ export { IxPaneLayout };
1741
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxPaneLayout, decorators: [{
1742
+ type: Component,
1743
+ args: [{
1744
+ selector: 'ix-pane-layout',
1745
+ changeDetection: ChangeDetectionStrategy.OnPush,
1746
+ template: '<ng-content></ng-content>',
1747
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1748
+ inputs: ['borderless', 'layout', 'variant'],
1749
+ }]
1750
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1751
+ let IxPill = class IxPill {
1752
+ constructor(c, r, z) {
1753
+ this.z = z;
1754
+ c.detach();
1755
+ this.el = r.nativeElement;
1756
+ }
1757
+ };
1758
+ /** @nocollapse */ IxPill.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxPill, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1759
+ /** @nocollapse */ IxPill.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxPill, selector: "ix-pill", inputs: { alignLeft: "alignLeft", background: "background", color: "color", icon: "icon", outline: "outline", pillColor: "pillColor", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1760
+ IxPill = __decorate([
1761
+ ProxyCmp({
1762
+ inputs: ['alignLeft', 'background', 'color', 'icon', 'outline', 'pillColor', 'variant']
1763
+ })
1764
+ ], IxPill);
1765
+ export { IxPill };
1766
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxPill, decorators: [{
1767
+ type: Component,
1768
+ args: [{
1769
+ selector: 'ix-pill',
1770
+ changeDetection: ChangeDetectionStrategy.OnPush,
1771
+ template: '<ng-content></ng-content>',
1772
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1773
+ inputs: ['alignLeft', 'background', 'color', 'icon', 'outline', 'pillColor', 'variant'],
1774
+ }]
1775
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1776
+ let IxPushCard = class IxPushCard {
1777
+ constructor(c, r, z) {
1778
+ this.z = z;
1779
+ c.detach();
1780
+ this.el = r.nativeElement;
1781
+ }
1782
+ };
1783
+ /** @nocollapse */ IxPushCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxPushCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1784
+ /** @nocollapse */ IxPushCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxPushCard, selector: "ix-push-card", inputs: { collapse: "collapse", heading: "heading", icon: "icon", notification: "notification", subheading: "subheading", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1785
+ IxPushCard = __decorate([
1786
+ ProxyCmp({
1787
+ inputs: ['collapse', 'heading', 'icon', 'notification', 'subheading', 'variant']
1788
+ })
1789
+ ], IxPushCard);
1790
+ export { IxPushCard };
1791
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxPushCard, decorators: [{
1792
+ type: Component,
1793
+ args: [{
1794
+ selector: 'ix-push-card',
1795
+ changeDetection: ChangeDetectionStrategy.OnPush,
1796
+ template: '<ng-content></ng-content>',
1797
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1798
+ inputs: ['collapse', 'heading', 'icon', 'notification', 'subheading', 'variant'],
1799
+ }]
1800
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1801
+ let IxRow = class IxRow {
1802
+ constructor(c, r, z) {
1803
+ this.z = z;
1804
+ c.detach();
1805
+ this.el = r.nativeElement;
1806
+ }
1807
+ };
1808
+ /** @nocollapse */ IxRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1809
+ /** @nocollapse */ IxRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxRow, selector: "ix-row", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1810
+ IxRow = __decorate([
1811
+ ProxyCmp({})
1812
+ ], IxRow);
1813
+ export { IxRow };
1814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxRow, decorators: [{
1815
+ type: Component,
1816
+ args: [{
1817
+ selector: 'ix-row',
1818
+ changeDetection: ChangeDetectionStrategy.OnPush,
1819
+ template: '<ng-content></ng-content>',
1820
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1821
+ inputs: [],
1822
+ }]
1823
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1824
+ let IxSelect = class IxSelect {
1825
+ constructor(c, r, z) {
1826
+ this.z = z;
1827
+ c.detach();
1828
+ this.el = r.nativeElement;
1829
+ proxyOutputs(this, this.el, ['valueChange', 'itemSelectionChange', 'inputChange', 'addItem']);
1830
+ }
1831
+ };
1832
+ /** @nocollapse */ IxSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1833
+ /** @nocollapse */ IxSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxSelect, selector: "ix-select", inputs: { allowClear: "allowClear", disabled: "disabled", editable: "editable", hideListHeader: "hideListHeader", i18nNoMatches: "i18nNoMatches", i18nPlaceholder: "i18nPlaceholder", i18nPlaceholderEditable: "i18nPlaceholderEditable", i18nSelectListHeader: "i18nSelectListHeader", mode: "mode", readonly: "readonly", selectedIndices: "selectedIndices", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1834
+ IxSelect = __decorate([
1835
+ ProxyCmp({
1836
+ inputs: ['allowClear', 'disabled', 'editable', 'hideListHeader', 'i18nNoMatches', 'i18nPlaceholder', 'i18nPlaceholderEditable', 'i18nSelectListHeader', 'mode', 'readonly', 'selectedIndices', 'value']
1837
+ })
1838
+ ], IxSelect);
1839
+ export { IxSelect };
1840
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSelect, decorators: [{
1841
+ type: Component,
1842
+ args: [{
1843
+ selector: 'ix-select',
1844
+ changeDetection: ChangeDetectionStrategy.OnPush,
1845
+ template: '<ng-content></ng-content>',
1846
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1847
+ inputs: ['allowClear', 'disabled', 'editable', 'hideListHeader', 'i18nNoMatches', 'i18nPlaceholder', 'i18nPlaceholderEditable', 'i18nSelectListHeader', 'mode', 'readonly', 'selectedIndices', 'value'],
1848
+ }]
1849
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1850
+ let IxSelectItem = class IxSelectItem {
1851
+ constructor(c, r, z) {
1852
+ this.z = z;
1853
+ c.detach();
1854
+ this.el = r.nativeElement;
1855
+ proxyOutputs(this, this.el, ['itemClick']);
1856
+ }
1857
+ };
1858
+ /** @nocollapse */ IxSelectItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSelectItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1859
+ /** @nocollapse */ IxSelectItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxSelectItem, selector: "ix-select-item", inputs: { label: "label", selected: "selected", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1860
+ IxSelectItem = __decorate([
1861
+ ProxyCmp({
1862
+ inputs: ['label', 'selected', 'value']
1863
+ })
1864
+ ], IxSelectItem);
1865
+ export { IxSelectItem };
1866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSelectItem, decorators: [{
1867
+ type: Component,
1868
+ args: [{
1869
+ selector: 'ix-select-item',
1870
+ changeDetection: ChangeDetectionStrategy.OnPush,
1871
+ template: '<ng-content></ng-content>',
1872
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1873
+ inputs: ['label', 'selected', 'value'],
1874
+ }]
1875
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1876
+ let IxSlider = class IxSlider {
1877
+ constructor(c, r, z) {
1878
+ this.z = z;
1879
+ c.detach();
1880
+ this.el = r.nativeElement;
1881
+ proxyOutputs(this, this.el, ['valueChange']);
1882
+ }
1883
+ };
1884
+ /** @nocollapse */ IxSlider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSlider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1885
+ /** @nocollapse */ IxSlider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxSlider, selector: "ix-slider", inputs: { disabled: "disabled", error: "error", marker: "marker", max: "max", min: "min", step: "step", trace: "trace", traceReference: "traceReference", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1886
+ IxSlider = __decorate([
1887
+ ProxyCmp({
1888
+ inputs: ['disabled', 'error', 'marker', 'max', 'min', 'step', 'trace', 'traceReference', 'value']
1889
+ })
1890
+ ], IxSlider);
1891
+ export { IxSlider };
1892
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSlider, decorators: [{
1893
+ type: Component,
1894
+ args: [{
1895
+ selector: 'ix-slider',
1896
+ changeDetection: ChangeDetectionStrategy.OnPush,
1897
+ template: '<ng-content></ng-content>',
1898
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1899
+ inputs: ['disabled', 'error', 'marker', 'max', 'min', 'step', 'trace', 'traceReference', 'value'],
1900
+ }]
1901
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1902
+ let IxSpinner = class IxSpinner {
1903
+ constructor(c, r, z) {
1904
+ this.z = z;
1905
+ c.detach();
1906
+ this.el = r.nativeElement;
1907
+ }
1908
+ };
1909
+ /** @nocollapse */ IxSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1910
+ /** @nocollapse */ IxSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxSpinner, selector: "ix-spinner", inputs: { size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1911
+ IxSpinner = __decorate([
1912
+ ProxyCmp({
1913
+ inputs: ['size', 'variant']
1914
+ })
1915
+ ], IxSpinner);
1916
+ export { IxSpinner };
1917
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSpinner, decorators: [{
1918
+ type: Component,
1919
+ args: [{
1920
+ selector: 'ix-spinner',
1921
+ changeDetection: ChangeDetectionStrategy.OnPush,
1922
+ template: '<ng-content></ng-content>',
1923
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1924
+ inputs: ['size', 'variant'],
1925
+ }]
1926
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1927
+ let IxSplitButton = class IxSplitButton {
1928
+ constructor(c, r, z) {
1929
+ this.z = z;
1930
+ c.detach();
1931
+ this.el = r.nativeElement;
1932
+ proxyOutputs(this, this.el, ['buttonClick']);
1933
+ }
1934
+ };
1935
+ /** @nocollapse */ IxSplitButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSplitButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1936
+ /** @nocollapse */ IxSplitButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxSplitButton, selector: "ix-split-button", inputs: { disabled: "disabled", ghost: "ghost", icon: "icon", label: "label", outline: "outline", placement: "placement", splitIcon: "splitIcon", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1937
+ IxSplitButton = __decorate([
1938
+ ProxyCmp({
1939
+ inputs: ['disabled', 'ghost', 'icon', 'label', 'outline', 'placement', 'splitIcon', 'variant']
1940
+ })
1941
+ ], IxSplitButton);
1942
+ export { IxSplitButton };
1943
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSplitButton, decorators: [{
1944
+ type: Component,
1945
+ args: [{
1946
+ selector: 'ix-split-button',
1947
+ changeDetection: ChangeDetectionStrategy.OnPush,
1948
+ template: '<ng-content></ng-content>',
1949
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1950
+ inputs: ['disabled', 'ghost', 'icon', 'label', 'outline', 'placement', 'splitIcon', 'variant'],
1951
+ }]
1952
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1953
+ let IxSplitButtonItem = class IxSplitButtonItem {
1954
+ constructor(c, r, z) {
1955
+ this.z = z;
1956
+ c.detach();
1957
+ this.el = r.nativeElement;
1958
+ proxyOutputs(this, this.el, ['itemClick']);
1959
+ }
1960
+ };
1961
+ /** @nocollapse */ IxSplitButtonItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSplitButtonItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1962
+ /** @nocollapse */ IxSplitButtonItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxSplitButtonItem, selector: "ix-split-button-item", inputs: { icon: "icon", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1963
+ IxSplitButtonItem = __decorate([
1964
+ ProxyCmp({
1965
+ inputs: ['icon', 'label']
1966
+ })
1967
+ ], IxSplitButtonItem);
1968
+ export { IxSplitButtonItem };
1969
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxSplitButtonItem, decorators: [{
1970
+ type: Component,
1971
+ args: [{
1972
+ selector: 'ix-split-button-item',
1973
+ changeDetection: ChangeDetectionStrategy.OnPush,
1974
+ template: '<ng-content></ng-content>',
1975
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1976
+ inputs: ['icon', 'label'],
1977
+ }]
1978
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1979
+ let IxTabItem = class IxTabItem {
1980
+ constructor(c, r, z) {
1981
+ this.z = z;
1982
+ c.detach();
1983
+ this.el = r.nativeElement;
1984
+ proxyOutputs(this, this.el, ['tabClick']);
1985
+ }
1986
+ };
1987
+ /** @nocollapse */ IxTabItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTabItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1988
+ /** @nocollapse */ IxTabItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxTabItem, selector: "ix-tab-item", inputs: { counter: "counter", disabled: "disabled", icon: "icon", layout: "layout", placement: "placement", rounded: "rounded", selected: "selected", small: "small" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1989
+ IxTabItem = __decorate([
1990
+ ProxyCmp({
1991
+ inputs: ['counter', 'disabled', 'icon', 'layout', 'placement', 'rounded', 'selected', 'small']
1992
+ })
1993
+ ], IxTabItem);
1994
+ export { IxTabItem };
1995
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTabItem, decorators: [{
1996
+ type: Component,
1997
+ args: [{
1998
+ selector: 'ix-tab-item',
1999
+ changeDetection: ChangeDetectionStrategy.OnPush,
2000
+ template: '<ng-content></ng-content>',
2001
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2002
+ inputs: ['counter', 'disabled', 'icon', 'layout', 'placement', 'rounded', 'selected', 'small'],
2003
+ }]
2004
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2005
+ let IxTabs = class IxTabs {
2006
+ constructor(c, r, z) {
2007
+ this.z = z;
2008
+ c.detach();
2009
+ this.el = r.nativeElement;
2010
+ proxyOutputs(this, this.el, ['selectedChange']);
2011
+ }
2012
+ };
2013
+ /** @nocollapse */ IxTabs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2014
+ /** @nocollapse */ IxTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxTabs, selector: "ix-tabs", inputs: { layout: "layout", placement: "placement", rounded: "rounded", selected: "selected", small: "small" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2015
+ IxTabs = __decorate([
2016
+ ProxyCmp({
2017
+ inputs: ['layout', 'placement', 'rounded', 'selected', 'small']
2018
+ })
2019
+ ], IxTabs);
2020
+ export { IxTabs };
2021
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTabs, decorators: [{
2022
+ type: Component,
2023
+ args: [{
2024
+ selector: 'ix-tabs',
2025
+ changeDetection: ChangeDetectionStrategy.OnPush,
2026
+ template: '<ng-content></ng-content>',
2027
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2028
+ inputs: ['layout', 'placement', 'rounded', 'selected', 'small'],
2029
+ }]
2030
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2031
+ let IxTile = class IxTile {
2032
+ constructor(c, r, z) {
2033
+ this.z = z;
2034
+ c.detach();
2035
+ this.el = r.nativeElement;
2036
+ }
2037
+ };
2038
+ /** @nocollapse */ IxTile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2039
+ /** @nocollapse */ IxTile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxTile, selector: "ix-tile", inputs: { size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2040
+ IxTile = __decorate([
2041
+ ProxyCmp({
2042
+ inputs: ['size']
2043
+ })
2044
+ ], IxTile);
2045
+ export { IxTile };
2046
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTile, decorators: [{
2047
+ type: Component,
2048
+ args: [{
2049
+ selector: 'ix-tile',
2050
+ changeDetection: ChangeDetectionStrategy.OnPush,
2051
+ template: '<ng-content></ng-content>',
2052
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2053
+ inputs: ['size'],
2054
+ }]
2055
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2056
+ let IxTimePicker = class IxTimePicker {
2057
+ constructor(c, r, z) {
2058
+ this.z = z;
2059
+ c.detach();
2060
+ this.el = r.nativeElement;
2061
+ proxyOutputs(this, this.el, ['timeSelect', 'done', 'timeChange']);
2062
+ }
2063
+ };
2064
+ /** @nocollapse */ IxTimePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTimePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2065
+ /** @nocollapse */ IxTimePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxTimePicker, selector: "ix-time-picker", inputs: { corners: "corners", format: "format", individual: "individual", showHour: "showHour", showMinutes: "showMinutes", showSeconds: "showSeconds", showTimeReference: "showTimeReference", standaloneAppearance: "standaloneAppearance", textSelectTime: "textSelectTime", textTime: "textTime", time: "time", timeReference: "timeReference" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2066
+ IxTimePicker = __decorate([
2067
+ ProxyCmp({
2068
+ inputs: ['corners', 'format', 'individual', 'showHour', 'showMinutes', 'showSeconds', 'showTimeReference', 'standaloneAppearance', 'textSelectTime', 'textTime', 'time', 'timeReference'],
2069
+ methods: ['getCurrentTime']
2070
+ })
2071
+ ], IxTimePicker);
2072
+ export { IxTimePicker };
2073
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTimePicker, decorators: [{
2074
+ type: Component,
2075
+ args: [{
2076
+ selector: 'ix-time-picker',
2077
+ changeDetection: ChangeDetectionStrategy.OnPush,
2078
+ template: '<ng-content></ng-content>',
2079
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2080
+ inputs: ['corners', 'format', 'individual', 'showHour', 'showMinutes', 'showSeconds', 'showTimeReference', 'standaloneAppearance', 'textSelectTime', 'textTime', 'time', 'timeReference'],
2081
+ }]
2082
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2083
+ let IxToast = class IxToast {
2084
+ constructor(c, r, z) {
2085
+ this.z = z;
2086
+ c.detach();
2087
+ this.el = r.nativeElement;
2088
+ proxyOutputs(this, this.el, ['closeToast']);
2089
+ }
2090
+ };
2091
+ /** @nocollapse */ IxToast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2092
+ /** @nocollapse */ IxToast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxToast, selector: "ix-toast", inputs: { autoClose: "autoClose", autoCloseDelay: "autoCloseDelay", icon: "icon", iconColor: "iconColor", toastTitle: "toastTitle", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2093
+ IxToast = __decorate([
2094
+ ProxyCmp({
2095
+ inputs: ['autoClose', 'autoCloseDelay', 'icon', 'iconColor', 'toastTitle', 'type']
2096
+ })
2097
+ ], IxToast);
2098
+ export { IxToast };
2099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxToast, decorators: [{
2100
+ type: Component,
2101
+ args: [{
2102
+ selector: 'ix-toast',
2103
+ changeDetection: ChangeDetectionStrategy.OnPush,
2104
+ template: '<ng-content></ng-content>',
2105
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2106
+ inputs: ['autoClose', 'autoCloseDelay', 'icon', 'iconColor', 'toastTitle', 'type'],
2107
+ }]
2108
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2109
+ let IxToastContainer = class IxToastContainer {
2110
+ constructor(c, r, z) {
2111
+ this.z = z;
2112
+ c.detach();
2113
+ this.el = r.nativeElement;
2114
+ }
2115
+ };
2116
+ /** @nocollapse */ IxToastContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxToastContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2117
+ /** @nocollapse */ IxToastContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxToastContainer, selector: "ix-toast-container", inputs: { containerClass: "containerClass", containerId: "containerId", position: "position" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2118
+ IxToastContainer = __decorate([
2119
+ ProxyCmp({
2120
+ inputs: ['containerClass', 'containerId', 'position'],
2121
+ methods: ['showToast']
2122
+ })
2123
+ ], IxToastContainer);
2124
+ export { IxToastContainer };
2125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxToastContainer, decorators: [{
2126
+ type: Component,
2127
+ args: [{
2128
+ selector: 'ix-toast-container',
2129
+ changeDetection: ChangeDetectionStrategy.OnPush,
2130
+ template: '<ng-content></ng-content>',
2131
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2132
+ inputs: ['containerClass', 'containerId', 'position'],
2133
+ }]
2134
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2135
+ let IxToggle = class IxToggle {
2136
+ constructor(c, r, z) {
2137
+ this.z = z;
2138
+ c.detach();
2139
+ this.el = r.nativeElement;
2140
+ proxyOutputs(this, this.el, ['checkedChange']);
2141
+ }
2142
+ };
2143
+ /** @nocollapse */ IxToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2144
+ /** @nocollapse */ IxToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxToggle, selector: "ix-toggle", inputs: { checked: "checked", disabled: "disabled", hideText: "hideText", indeterminate: "indeterminate", textIndeterminate: "textIndeterminate", textOff: "textOff", textOn: "textOn" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2145
+ IxToggle = __decorate([
2146
+ ProxyCmp({
2147
+ inputs: ['checked', 'disabled', 'hideText', 'indeterminate', 'textIndeterminate', 'textOff', 'textOn']
2148
+ })
2149
+ ], IxToggle);
2150
+ export { IxToggle };
2151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxToggle, decorators: [{
2152
+ type: Component,
2153
+ args: [{
2154
+ selector: 'ix-toggle',
2155
+ changeDetection: ChangeDetectionStrategy.OnPush,
2156
+ template: '<ng-content></ng-content>',
2157
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2158
+ inputs: ['checked', 'disabled', 'hideText', 'indeterminate', 'textIndeterminate', 'textOff', 'textOn'],
2159
+ }]
2160
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2161
+ let IxToggleButton = class IxToggleButton {
2162
+ constructor(c, r, z) {
2163
+ this.z = z;
2164
+ c.detach();
2165
+ this.el = r.nativeElement;
2166
+ proxyOutputs(this, this.el, ['pressedChange']);
2167
+ }
2168
+ };
2169
+ /** @nocollapse */ IxToggleButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxToggleButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2170
+ /** @nocollapse */ IxToggleButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxToggleButton, selector: "ix-toggle-button", inputs: { disabled: "disabled", ghost: "ghost", icon: "icon", loading: "loading", outline: "outline", pressed: "pressed", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2171
+ IxToggleButton = __decorate([
2172
+ ProxyCmp({
2173
+ inputs: ['disabled', 'ghost', 'icon', 'loading', 'outline', 'pressed', 'variant']
2174
+ })
2175
+ ], IxToggleButton);
2176
+ export { IxToggleButton };
2177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxToggleButton, decorators: [{
2178
+ type: Component,
2179
+ args: [{
2180
+ selector: 'ix-toggle-button',
2181
+ changeDetection: ChangeDetectionStrategy.OnPush,
2182
+ template: '<ng-content></ng-content>',
2183
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2184
+ inputs: ['disabled', 'ghost', 'icon', 'loading', 'outline', 'pressed', 'variant'],
2185
+ }]
2186
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2187
+ let IxTooltip = class IxTooltip {
2188
+ constructor(c, r, z) {
2189
+ this.z = z;
2190
+ c.detach();
2191
+ this.el = r.nativeElement;
2192
+ }
2193
+ };
2194
+ /** @nocollapse */ IxTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2195
+ /** @nocollapse */ IxTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxTooltip, selector: "ix-tooltip", inputs: { for: "for", interactive: "interactive", placement: "placement", titleContent: "titleContent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2196
+ IxTooltip = __decorate([
2197
+ ProxyCmp({
2198
+ inputs: ['for', 'interactive', 'placement', 'titleContent']
2199
+ })
2200
+ ], IxTooltip);
2201
+ export { IxTooltip };
2202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTooltip, decorators: [{
2203
+ type: Component,
2204
+ args: [{
2205
+ selector: 'ix-tooltip',
2206
+ changeDetection: ChangeDetectionStrategy.OnPush,
2207
+ template: '<ng-content></ng-content>',
2208
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2209
+ inputs: ['for', 'interactive', 'placement', 'titleContent'],
2210
+ }]
2211
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2212
+ let IxTreeItem = class IxTreeItem {
2213
+ constructor(c, r, z) {
2214
+ this.z = z;
2215
+ c.detach();
2216
+ this.el = r.nativeElement;
2217
+ proxyOutputs(this, this.el, ['toggle', 'itemClick']);
2218
+ }
2219
+ };
2220
+ /** @nocollapse */ IxTreeItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTreeItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2221
+ /** @nocollapse */ IxTreeItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxTreeItem, selector: "ix-tree-item", inputs: { context: "context", hasChildren: "hasChildren", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2222
+ IxTreeItem = __decorate([
2223
+ ProxyCmp({
2224
+ inputs: ['context', 'hasChildren', 'text']
2225
+ })
2226
+ ], IxTreeItem);
2227
+ export { IxTreeItem };
2228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTreeItem, decorators: [{
2229
+ type: Component,
2230
+ args: [{
2231
+ selector: 'ix-tree-item',
2232
+ changeDetection: ChangeDetectionStrategy.OnPush,
2233
+ template: '<ng-content></ng-content>',
2234
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2235
+ inputs: ['context', 'hasChildren', 'text'],
2236
+ }]
2237
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2238
+ let IxTypography = class IxTypography {
2239
+ constructor(c, r, z) {
2240
+ this.z = z;
2241
+ c.detach();
2242
+ this.el = r.nativeElement;
2243
+ }
2244
+ };
2245
+ /** @nocollapse */ IxTypography.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTypography, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2246
+ /** @nocollapse */ IxTypography.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxTypography, selector: "ix-typography", inputs: { bold: "bold", color: "color", format: "format", textColor: "textColor", textDecoration: "textDecoration" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2247
+ IxTypography = __decorate([
2248
+ ProxyCmp({
2249
+ inputs: ['bold', 'color', 'format', 'textColor', 'textDecoration']
2250
+ })
2251
+ ], IxTypography);
2252
+ export { IxTypography };
2253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxTypography, decorators: [{
2254
+ type: Component,
2255
+ args: [{
2256
+ selector: 'ix-typography',
2257
+ changeDetection: ChangeDetectionStrategy.OnPush,
2258
+ template: '<ng-content></ng-content>',
2259
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2260
+ inputs: ['bold', 'color', 'format', 'textColor', 'textDecoration'],
2261
+ }]
2262
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2263
+ let IxUpload = class IxUpload {
2264
+ constructor(c, r, z) {
2265
+ this.z = z;
2266
+ c.detach();
2267
+ this.el = r.nativeElement;
2268
+ proxyOutputs(this, this.el, ['filesChanged']);
2269
+ }
2270
+ };
2271
+ /** @nocollapse */ IxUpload.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxUpload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2272
+ /** @nocollapse */ IxUpload.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxUpload, selector: "ix-upload", inputs: { accept: "accept", disabled: "disabled", i18nUploadDisabled: "i18nUploadDisabled", i18nUploadFile: "i18nUploadFile", loadingText: "loadingText", multiline: "multiline", multiple: "multiple", selectFileText: "selectFileText", state: "state", uploadFailedText: "uploadFailedText", uploadSuccessText: "uploadSuccessText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2273
+ IxUpload = __decorate([
2274
+ ProxyCmp({
2275
+ inputs: ['accept', 'disabled', 'i18nUploadDisabled', 'i18nUploadFile', 'loadingText', 'multiline', 'multiple', 'selectFileText', 'state', 'uploadFailedText', 'uploadSuccessText'],
2276
+ methods: ['setFilesToUpload']
2277
+ })
2278
+ ], IxUpload);
2279
+ export { IxUpload };
2280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxUpload, decorators: [{
2281
+ type: Component,
2282
+ args: [{
2283
+ selector: 'ix-upload',
2284
+ changeDetection: ChangeDetectionStrategy.OnPush,
2285
+ template: '<ng-content></ng-content>',
2286
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2287
+ inputs: ['accept', 'disabled', 'i18nUploadDisabled', 'i18nUploadFile', 'loadingText', 'multiline', 'multiple', 'selectFileText', 'state', 'uploadFailedText', 'uploadSuccessText'],
2288
+ }]
2289
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2290
+ let IxValidationTooltip = class IxValidationTooltip {
2291
+ constructor(c, r, z) {
2292
+ this.z = z;
2293
+ c.detach();
2294
+ this.el = r.nativeElement;
2295
+ }
2296
+ };
2297
+ /** @nocollapse */ IxValidationTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxValidationTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2298
+ /** @nocollapse */ IxValidationTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxValidationTooltip, selector: "ix-validation-tooltip", inputs: { message: "message", placement: "placement", suppressAutomaticPlacement: "suppressAutomaticPlacement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2299
+ IxValidationTooltip = __decorate([
2300
+ ProxyCmp({
2301
+ inputs: ['message', 'placement', 'suppressAutomaticPlacement']
2302
+ })
2303
+ ], IxValidationTooltip);
2304
+ export { IxValidationTooltip };
2305
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxValidationTooltip, decorators: [{
2306
+ type: Component,
2307
+ args: [{
2308
+ selector: 'ix-validation-tooltip',
2309
+ changeDetection: ChangeDetectionStrategy.OnPush,
2310
+ template: '<ng-content></ng-content>',
2311
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2312
+ inputs: ['message', 'placement', 'suppressAutomaticPlacement'],
2313
+ }]
2314
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2315
+ let IxWorkflowStep = class IxWorkflowStep {
2316
+ constructor(c, r, z) {
2317
+ this.z = z;
2318
+ c.detach();
2319
+ this.el = r.nativeElement;
2320
+ }
2321
+ };
2322
+ /** @nocollapse */ IxWorkflowStep.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxWorkflowStep, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2323
+ /** @nocollapse */ IxWorkflowStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxWorkflowStep, selector: "ix-workflow-step", inputs: { clickable: "clickable", disabled: "disabled", selected: "selected", status: "status", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2324
+ IxWorkflowStep = __decorate([
2325
+ ProxyCmp({
2326
+ inputs: ['clickable', 'disabled', 'selected', 'status', 'vertical']
2327
+ })
2328
+ ], IxWorkflowStep);
2329
+ export { IxWorkflowStep };
2330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxWorkflowStep, decorators: [{
2331
+ type: Component,
2332
+ args: [{
2333
+ selector: 'ix-workflow-step',
2334
+ changeDetection: ChangeDetectionStrategy.OnPush,
2335
+ template: '<ng-content></ng-content>',
2336
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2337
+ inputs: ['clickable', 'disabled', 'selected', 'status', 'vertical'],
2338
+ }]
2339
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2340
+ let IxWorkflowSteps = class IxWorkflowSteps {
2341
+ constructor(c, r, z) {
2342
+ this.z = z;
2343
+ c.detach();
2344
+ this.el = r.nativeElement;
2345
+ proxyOutputs(this, this.el, ['stepSelected']);
2346
+ }
2347
+ };
2348
+ /** @nocollapse */ IxWorkflowSteps.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxWorkflowSteps, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2349
+ /** @nocollapse */ IxWorkflowSteps.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: IxWorkflowSteps, selector: "ix-workflow-steps", inputs: { clickable: "clickable", selectedIndex: "selectedIndex", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2350
+ IxWorkflowSteps = __decorate([
2351
+ ProxyCmp({
2352
+ inputs: ['clickable', 'selectedIndex', 'vertical']
2353
+ })
2354
+ ], IxWorkflowSteps);
2355
+ export { IxWorkflowSteps };
2356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: IxWorkflowSteps, decorators: [{
2357
+ type: Component,
2358
+ args: [{
2359
+ selector: 'ix-workflow-steps',
2360
+ changeDetection: ChangeDetectionStrategy.OnPush,
2361
+ template: '<ng-content></ng-content>',
2362
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2363
+ inputs: ['clickable', 'selectedIndex', 'vertical'],
2364
+ }]
2365
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2366
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsOENBQThDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDOztJQWUxRCxZQUFZLFNBQVosWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0NBQ0YsQ0FBQTs0SEFOWSxZQUFZO2dIQUFaLFlBQVksd0tBSmIsMkJBQTJCO0FBSTFCLFlBQVk7SUFWeEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztLQUNqRSxDQUFDO0dBUVcsWUFBWSxDQU14QjtTQU5ZLFlBQVk7MkZBQVosWUFBWTtrQkFQeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDO2lCQUNqRTs7SUF1QlksYUFBYSxTQUFiLGFBQWE7SUFFeEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMs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dkUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQztpQkFDcEU7O0lBdUJZLGVBQWUsU0FBZixlQUFlO0lBRTFCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGLENBQUE7K0hBUFksZUFBZTttSEFBZixlQUFlLG1KQUpoQiwyQkFBMkI7QUFJMUIsZUFBZTtJQVYzQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQztLQUNuRCxDQUFDO0dBUVcsZUFBZSxDQU8zQjtTQVBZLGVBQWU7MkZBQWYsZUFBZTtrQkFQM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQztpQkFDbkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAc2llbWVucy9peCc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaWNvbicsICdzZWxlY3RlZCcsICdzdWJoZWFkaW5nJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWFjdGlvbi1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2ljb24nLCAnc2VsZWN0ZWQnLCAnc3ViaGVhZGluZycsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIEl4QWN0aW9uQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4QWN0aW9uQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuSXhBY3Rpb25DYXJkIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcFN3aXRjaENvbmZpZycsICdicmVha3BvaW50cycsICdmb3JjZUJyZWFrcG9pbnQnLCAndGhlbWUnLCAndGhlbWVTeXN0ZW1BcHBlYXJhbmNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1hcHBsaWNhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwU3dpdGNoQ29uZmlnJywgJ2JyZWFrcG9pbnRzJywgJ2ZvcmNlQnJlYWtwb2ludCcsICd0aGVtZScsICd0aGVtZVN5c3RlbUFwcGVhcmFuY2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhBcHBsaWNhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4QXBwbGljYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLkl4QXBwbGljYXRpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbmFtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtYXBwbGljYXRpb24taGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyduYW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4QXBwbGljYXRpb25IZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEFwcGxpY2F0aW9uSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5JeEFwcGxpY2F0aW9uSGVhZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2V4dHJhJywgJ2ltYWdlJywgJ2luaXRpYWxzJywgJ3VzZXJuYW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2V4dHJhJywgJ2ltYWdlJywgJ2luaXRpYWxzJywgJ3VzZXJuYW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4QXZhdGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhBdmF0YXIgZXh0ZW5kcyBDb21wb25lbnRzLkl4QXZhdGFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcGxpY2F0aW9uTmFtZScsICdicmVha3BvaW50cycsICdmb3JjZUJyZWFrcG9pbnQnLCAnaGlkZUhlYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtYmFzaWMtbmF2aWdhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwbGljYXRpb25OYW1lJywgJ2JyZWFrcG9pbnRzJywgJ2ZvcmNlQnJlYWtwb2ludCcsICdoaWRlSGVhZGVyJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4QmFzaWNOYXZpZ2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhCYXNpY05hdmlnYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLkl4QmFzaWNOYXZpZ2F0aW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlZCcsICdpY29uJywgJ2xhYmVsJywgJ3N1YmxhYmVsJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWJsaW5kJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzZWQnLCAnaWNvbicsICdsYWJlbCcsICdzdWJsYWJlbCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIEl4QmxpbmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjb2xsYXBzZWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhCbGluZCBleHRlbmRzIENvbXBvbmVudHMuSXhCbGluZCB7XG4gIC8qKlxuICAgKiBDb2xsYXBzZWQgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgY29sbGFwc2VkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcmlhTGFiZWxQcmV2aW91c0J1dHRvbicsICdnaG9zdCcsICduZXh0SXRlbXMnLCAndmlzaWJsZUl0ZW1Db3VudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtYnJlYWRjcnVtYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJpYUxhYmVsUHJldmlvdXNCdXR0b24nLCAnZ2hvc3QnLCAnbmV4dEl0ZW1zJywgJ3Zpc2libGVJdGVtQ291bnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhCcmVhZGNydW1iIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaXRlbUNsaWNrJywgJ25leHRDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEJyZWFkY3J1bWIgZXh0ZW5kcyBDb21wb25lbnRzLkl4QnJlYWRjcnVtYiB7XG4gIC8qKlxuICAgKiBDcnVtYiBpdGVtIGNsaWNrZWQgZXZlbnRcbiAgICovXG4gIGl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogTmV4dCBpdGVtIGNsaWNrZWQgZXZlbnRcbiAgICovXG4gIG5leHRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZXZlbnQ6IFVJRXZlbnQ7IGl0ZW06IHN0cmluZyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWJyZWFkY3J1bWItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeEJyZWFkY3J1bWJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhCcmVhZGNydW1iSXRlbSBleHRlbmRzIENvbXBvbmVudHMuSXhCcmVhZGNydW1iSXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdnaG9zdCcsICdpY29uJywgJ2xvYWRpbmcnLCAnb3V0bGluZScsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZ2hvc3QnLCAnaWNvbicsICdsb2FkaW5nJywgJ291dGxpbmUnLCAndHlwZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIEl4QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLkl4QnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NlbGVjdGVkJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NlbGVjdGVkJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5JeENhcmQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sbGFwc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWNhcmQtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzZSddLFxufSlcbmV4cG9ydCBjbGFzcyBJeENhcmRBY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeENhcmRBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLkl4Q2FyZEFjY29yZGlvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtY2FyZC1jb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEl4Q2FyZENvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeENhcmRDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5JeENhcmRDb250ZW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlJywgJ2hpZGVTaG93QWxsJywgJ2kxOG5Nb3JlQ2FyZHMnLCAnaTE4blNob3dBbGwnLCAnbGFiZWwnLCAnbGlzdFN0eWxlJywgJ3Nob3dBbGxDb3VudCcsICdzdXBwcmVzc092ZXJmbG93SGFuZGxpbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWNhcmQtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2UnLCAnaGlkZVNob3dBbGwnLCAnaTE4bk1vcmVDYXJkcycsICdpMThuU2hvd0FsbCcsICdsYWJlbCcsICdsaXN0U3R5bGUnLCAnc2hvd0FsbENvdW50JywgJ3N1cHByZXNzT3ZlcmZsb3dIYW5kbGluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBJeENhcmRMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY29sbGFwc2VDaGFuZ2VkJywgJ3Nob3dBbGxDbGljaycsICdzaG93TW9yZUNhcmRDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeENhcmRMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5JeENhcmRMaXN0IHtcbiAgLyoqXG4gICAqIEZpcmUgZXZlbnQgd2hlbiB0aGUgY29sbGFwc2Ugc3RhdGUgaXMgY2hhbmdlZCBieSB0aGUgdXNlclxuICAgKi9cbiAgY29sbGFwc2VDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRmlyZSBldmVudCB3aGVuIHRoZSBjb2xsYXBzZSBzdGF0ZSBpcyBjaGFuZ2VkIGJ5IHRoZSB1c2VyXG4gICAqL1xuICBzaG93QWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IG5hdGl2ZUV2ZW50OiBNb3VzZUV2ZW50OyB9Pj47XG4gIC8qKlxuICAgKiBGaXJlIGV2ZW50IHdoZW4gdGhlIHNob3cgbW9yZSBjYXJkIGlzIGNsaWNrZWQuXG4gICAqL1xuICBzaG93TW9yZUNhcmRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgbmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQ7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWNhcmQtdGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhDYXJkVGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeENhcmRUaXRsZSBleHRlbmRzIENvbXBvbmVudHMuSXhDYXJkVGl0bGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2F0ZWdvcmllcycsICdkaXNhYmxlZCcsICdmaWx0ZXJTdGF0ZScsICdoaWRlSWNvbicsICdpMThuUGxhaW5UZXh0JywgJ2ljb24nLCAnbGFiZWxDYXRlZ29yaWVzJywgJ25vblNlbGVjdGFibGVDYXRlZ29yaWVzJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcGVhdENhdGVnb3JpZXMnLCAnc3VnZ2VzdGlvbnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWNhdGVnb3J5LWZpbHRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2F0ZWdvcmllcycsICdkaXNhYmxlZCcsICdmaWx0ZXJTdGF0ZScsICdoaWRlSWNvbicsICdpMThuUGxhaW5UZXh0JywgJ2ljb24nLCAnbGFiZWxDYXRlZ29yaWVzJywgJ25vblNlbGVjdGFibGVDYXRlZ29yaWVzJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcGVhdENhdGVnb3JpZXMnLCAnc3VnZ2VzdGlvbnMnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhDYXRlZ29yeUZpbHRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2NhdGVnb3J5Q2hhbmdlZCcsICdpbnB1dENoYW5nZWQnLCAnZmlsdGVyQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgSW5wdXRTdGF0ZSBhcyBJSXhDYXRlZ29yeUZpbHRlcklucHV0U3RhdGUgfSBmcm9tICdAc2llbWVucy9peCc7XG5pbXBvcnQgdHlwZSB7IEZpbHRlclN0YXRlIGFzIElJeENhdGVnb3J5RmlsdGVyRmlsdGVyU3RhdGUgfSBmcm9tICdAc2llbWVucy9peCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeENhdGVnb3J5RmlsdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5JeENhdGVnb3J5RmlsdGVyIHtcbiAgLyoqXG4gICAqIEV2ZW50IGRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIGEgY2F0ZWdvcnkgZ2V0cyBzZWxlY3RlZCBpbiB0aGUgZHJvcGRvd25cbiAgICovXG4gIGNhdGVnb3J5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogRXZlbnQgZGlzcGF0Y2hlZCB3aGVuZXZlciB0aGUgdGV4dCBpbnB1dCBjaGFuZ2VzLlxuICAgKi9cbiAgaW5wdXRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUl4Q2F0ZWdvcnlGaWx0ZXJJbnB1dFN0YXRlPj47XG4gIC8qKlxuICAgKiBFdmVudCBkaXNwYXRjaGVkIHdoZW5ldmVyIHRoZSBmaWx0ZXIgc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gIGZpbHRlckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSXhDYXRlZ29yeUZpbHRlckZpbHRlclN0YXRlPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdiYWNrZ3JvdW5kJywgJ2NoaXBDb2xvcicsICdjbG9zYWJsZScsICdjb2xvcicsICdpY29uJywgJ291dGxpbmUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2JhY2tncm91bmQnLCAnY2hpcENvbG9yJywgJ2Nsb3NhYmxlJywgJ2NvbG9yJywgJ2ljb24nLCAnb3V0bGluZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIEl4Q2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlQ2hpcCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeENoaXAgZXh0ZW5kcyBDb21wb25lbnRzLkl4Q2hpcCB7XG4gIC8qKlxuICAgKiBGaXJlIGV2ZW50IGlmIGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkIEBzaW5jZSAxLjUuMFxuICAgKi9cbiAgY2xvc2VDaGlwOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnLCAnc2l6ZUxnJywgJ3NpemVNZCcsICdzaXplU20nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWNvbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZScsICdzaXplTGcnLCAnc2l6ZU1kJywgJ3NpemVTbSddLFxufSlcbmV4cG9ydCBjbGFzcyBJeENvbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4Q29sIGV4dGVuZHMgQ29tcG9uZW50cy5JeENvbCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBJeENvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeENvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLkl4Q29udGVudCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoYXNCYWNrQnV0dG9uJywgJ2hlYWRlclN1YnRpdGxlJywgJ2hlYWRlclRpdGxlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWNvbnRlbnQtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoYXNCYWNrQnV0dG9uJywgJ2hlYWRlclN1YnRpdGxlJywgJ2hlYWRlclRpdGxlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhDb250ZW50SGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFja0J1dHRvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4Q29udGVudEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuSXhDb250ZW50SGVhZGVyIHtcbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIGJhY2sgYnV0dG9uIGlzIGNsaWNrZWRcbiAgICovXG4gIGJhY2tCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tUmFuZ2VBbGxvd2VkJywgJ2RhdGVSYW5nZUlkJywgJ2RhdGVSYW5nZU9wdGlvbnMnLCAnZm9ybWF0JywgJ2Zyb20nLCAnaTE4bkN1c3RvbUl0ZW0nLCAnaTE4bkRvbmUnLCAnaTE4bk5vUmFuZ2UnLCAnbWF4RGF0ZScsICdtaW5EYXRlJywgJ3JhbmdlJywgJ3RvJ10sXG4gIG1ldGhvZHM6IFsnZ2V0RGF0ZVJhbmdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1kYXRlLWRyb3Bkb3duJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21SYW5nZUFsbG93ZWQnLCAnZGF0ZVJhbmdlSWQnLCAnZGF0ZVJhbmdlT3B0aW9ucycsICdmb3JtYXQnLCAnZnJvbScsICdpMThuQ3VzdG9tSXRlbScsICdpMThuRG9uZScsICdpMThuTm9SYW5nZScsICdtYXhEYXRlJywgJ21pbkRhdGUnLCAncmFuZ2UnLCAndG8nXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhEYXRlRHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkYXRlUmFuZ2VDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IERhdGVSYW5nZUNoYW5nZUV2ZW50IGFzIElJeERhdGVEcm9wZG93bkRhdGVSYW5nZUNoYW5nZUV2ZW50IH0gZnJvbSAnQHNpZW1lbnMvaXgnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhEYXRlRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLkl4RGF0ZURyb3Bkb3duIHtcbiAgLyoqXG4gICAqIEV2ZW50RW1pdHRlciBmb3IgZGF0ZSByYW5nZSBjaGFuZ2UgZXZlbnRzLlxuXG5UaGlzIGV2ZW50IGlzIGVtaXR0ZWQgd2hlbiB0aGUgZGF0ZSByYW5nZSBjaGFuZ2VzIHdpdGhpbiB0aGUgY29tcG9uZW50LlxuVGhlIGV2ZW50IHBheWxvYWQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlbGVjdGVkIGRhdGUgcmFuZ2UuXG4gICAqL1xuICBkYXRlUmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSXhEYXRlRHJvcGRvd25EYXRlUmFuZ2VDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb3JuZXJzJywgJ2V2ZW50RGVsaW1pdGVyJywgJ2Zvcm1hdCcsICdmcm9tJywgJ2kxOG5Eb25lJywgJ2luZGl2aWR1YWwnLCAnbG9jYWxlJywgJ21heERhdGUnLCAnbWluRGF0ZScsICdyYW5nZScsICd0ZXh0U2VsZWN0RGF0ZScsICd0bycsICd3ZWVrU3RhcnRJbmRleCddLFxuICBtZXRob2RzOiBbJ2dldEN1cnJlbnREYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1kYXRlLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29ybmVycycsICdldmVudERlbGltaXRlcicsICdmb3JtYXQnLCAnZnJvbScsICdpMThuRG9uZScsICdpbmRpdmlkdWFsJywgJ2xvY2FsZScsICdtYXhEYXRlJywgJ21pbkRhdGUnLCAncmFuZ2UnLCAndGV4dFNlbGVjdERhdGUnLCAndG8nLCAnd2Vla1N0YXJ0SW5kZXgnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhEYXRlUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZGF0ZUNoYW5nZScsICdkYXRlUmFuZ2VDaGFuZ2UnLCAnZGF0ZVNlbGVjdCcsICdkb25lJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBEYXRlQ2hhbmdlRXZlbnQgYXMgSUl4RGF0ZVBpY2tlckRhdGVDaGFuZ2VFdmVudCB9IGZyb20gJ0BzaWVtZW5zL2l4JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4RGF0ZVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuSXhEYXRlUGlja2VyIHtcbiAgLyoqXG4gICAqIFRyaWdnZXJzIGlmIHRoZSBkYXRlIHNlbGVjdGlvbiBjaGFuZ2VzLlxuTm90ZTogU2luY2UgMi4wLjAgYGRhdGVDaGFuZ2VgIGRvZXMgbm90IGRpc3BhdGNoIGRldGFpbCBwcm9wZXJ0eSBhcyBgc3RyaW5nYCBAc2luY2UgMi4xLjBcbiAgICovXG4gIGRhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSXhEYXRlUGlja2VyRGF0ZUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBUcmlnZ2VycyBpZiB0aGUgZGF0ZSBzZWxlY3Rpb24gY2hhbmdlcy5cbk9ubHkgdHJpZ2dlcmVkIGlmIGRhdGUtcGlja2VyLXJld29yayBpcyBpbiByYW5nZSBtb2RlLiBAc2luY2UgMi4xLjBcbiAgICovXG4gIGRhdGVSYW5nZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJeERhdGVQaWNrZXJEYXRlQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGUgc2VsZWN0aW9uIGNvbmZpcm1lZCB2aWEgYnV0dG9uIGFjdGlvbiBAc2luY2UgMS4xLjBcbiAgICovXG4gIGRhdGVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSXhEYXRlUGlja2VyRGF0ZUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRlIHNlbGVjdGlvbiBjb25maXJtZWQgdmlhIGJ1dHRvbiBhY3Rpb24gQGRlcHJlY2F0ZWQgTk9UIGdldHRpbmcgZGlzcGF0Y2hlZCBhZnRlciAyLjAuMC4gVXNlIGBkYXRlU2VsZWN0YC5cbiAgICovXG4gIGRvbmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGF0ZUZvcm1hdCcsICdldmVudERlbGltaXRlcicsICdmcm9tJywgJ2kxOG5Eb25lJywgJ2xvY2FsZScsICdtYXhEYXRlJywgJ21pbkRhdGUnLCAncmFuZ2UnLCAnc2hvd0hvdXInLCAnc2hvd01pbnV0ZXMnLCAnc2hvd1NlY29uZHMnLCAnc2hvd1RpbWVSZWZlcmVuY2UnLCAndGV4dFNlbGVjdERhdGUnLCAndGltZScsICd0aW1lRm9ybWF0JywgJ3RpbWVSZWZlcmVuY2UnLCAndG8nLCAnd2Vla1N0YXJ0SW5kZXgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWRhdGV0aW1lLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGF0ZUZvcm1hdCcsICdldmVudERlbGltaXRlcicsICdmcm9tJywgJ2kxOG5Eb25lJywgJ2xvY2FsZScsICdtYXhEYXRlJywgJ21pbkRhdGUnLCAncmFuZ2UnLCAnc2hvd0hvdXInLCAnc2hvd01pbnV0ZXMnLCAnc2hvd1NlY29uZHMnLCAnc2hvd1RpbWVSZWZlcmVuY2UnLCAndGV4dFNlbGVjdERhdGUnLCAndGltZScsICd0aW1lRm9ybWF0JywgJ3RpbWVSZWZlcmVuY2UnLCAndG8nLCAnd2Vla1N0YXJ0SW5kZXgnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhEYXRldGltZVBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2RvbmUnLCAndGltZUNoYW5nZScsICdkYXRlQ2hhbmdlJywgJ2RhdGVTZWxlY3QnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IERhdGVUaW1lRGF0ZUNoYW5nZUV2ZW50IGFzIElJeERhdGV0aW1lUGlja2VyRGF0ZVRpbWVEYXRlQ2hhbmdlRXZlbnQgfSBmcm9tICdAc2llbWVucy9peCc7XG5pbXBvcnQgdHlwZSB7IERhdGVUaW1lU2VsZWN0RXZlbnQgYXMgSUl4RGF0ZXRpbWVQaWNrZXJEYXRlVGltZVNlbGVjdEV2ZW50IH0gZnJvbSAnQHNpZW1lbnMvaXgnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhEYXRldGltZVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuSXhEYXRldGltZVBpY2tlciB7XG4gIC8qKlxuICAgKiBEb25lIGV2ZW50XG5cblNldCBgZG9uZUV2ZW50RGVsaW1pdGVyYCB0byBudWxsIG9yIHVuZGVmaW5lIHRvIGdldCB0aGUgdHlwZWQgZXZlbnQgQGRlcHJlY2F0ZWQgVXNlIGB0aGlzLmRhdGVDaGFuZ2VgXG4gICAqL1xuICBkb25lOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBUaW1lIGNoYW5nZSBAc2luY2UgMS4xLjBcbiAgICovXG4gIHRpbWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIERhdGUgY2hhbmdlIEBzaW5jZSAxLjEuMFxuICAgKi9cbiAgZGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJeERhdGV0aW1lUGlja2VyRGF0ZVRpbWVEYXRlQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGV0aW1lIHNlbGVjdGlvbiBldmVudCBpcyBmaXJlZCBhZnRlciBjb25maXJtIGJ1dHRvbiBpcyBwcmVzc2VkIEBzaW5jZSAxLjEuMFxuICAgKi9cbiAgZGF0ZVNlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJeERhdGV0aW1lUGlja2VyRGF0ZVRpbWVTZWxlY3RFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZGl2aWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBJeERpdmlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeERpdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLkl4RGl2aWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZU9uQ2xpY2tPdXRzaWRlJywgJ2Z1bGxIZWlnaHQnLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAnc2hvdycsICd3aWR0aCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZURyYXdlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZHJhd2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zZU9uQ2xpY2tPdXRzaWRlJywgJ2Z1bGxIZWlnaHQnLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAnc2hvdycsICd3aWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeERyYXdlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29wZW4nLCAnZHJhd2VyQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhEcmF3ZXIgZXh0ZW5kcyBDb21wb25lbnRzLkl4RHJhd2VyIHtcbiAgLyoqXG4gICAqIEZpcmUgZXZlbnQgYWZ0ZXIgZHJhd2VyIGlzIG9wZW5cbiAgICovXG4gIG9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEZpcmUgZXZlbnQgYWZ0ZXIgZHJhd2VyIGlzIGNsb3NlXG4gICAqL1xuICBkcmF3ZXJDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmNob3InLCAnY2xvc2VCZWhhdmlvcicsICdoZWFkZXInLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uaW5nU3RyYXRlZ3knLCAnc2hvdycsICdzdXBwcmVzc0F1dG9tYXRpY1BsYWNlbWVudCcsICd0cmlnZ2VyJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlUG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWRyb3Bkb3duJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmNob3InLCAnY2xvc2VCZWhhdmlvcicsICdoZWFkZXInLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uaW5nU3RyYXRlZ3knLCAnc2hvdycsICdzdXBwcmVzc0F1dG9tYXRpY1BsYWNlbWVudCcsICd0cmlnZ2VyJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4RHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaG93Q2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeERyb3Bkb3duIGV4dGVuZHMgQ29tcG9uZW50cy5JeERyb3Bkb3duIHtcbiAgLyoqXG4gICAqIEZpcmUgZXZlbnQgYWZ0ZXIgdmlzaWJpbGl0eSBvZiBkcm9wZG93biBoYXMgY2hhbmdlZFxuICAgKi9cbiAgc2hvd0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NlQmVoYXZpb3InLCAnZGlzYWJsZWQnLCAnZ2hvc3QnLCAnaWNvbicsICdsYWJlbCcsICdvdXRsaW5lJywgJ3BsYWNlbWVudCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1kcm9wZG93bi1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlQmVoYXZpb3InLCAnZGlzYWJsZWQnLCAnZ2hvc3QnLCAnaWNvbicsICdsYWJlbCcsICdvdXRsaW5lJywgJ3BsYWNlbWVudCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIEl4RHJvcGRvd25CdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeERyb3Bkb3duQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5JeERyb3Bkb3duQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1kcm9wZG93bi1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4RHJvcGRvd25IZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeERyb3Bkb3duSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5JeERyb3Bkb3duSGVhZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaG92ZXInLCAnaWNvbicsICdsYWJlbCddLFxuICBtZXRob2RzOiBbJ2VtaXRJdGVtQ2xpY2snXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWRyb3Bkb3duLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaG92ZXInLCAnaWNvbicsICdsYWJlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeERyb3Bkb3duSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4RHJvcGRvd25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5JeERyb3Bkb3duSXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZHJvcGRvd24tcXVpY2stYWN0aW9ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBJeERyb3Bkb3duUXVpY2tBY3Rpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhEcm9wZG93blF1aWNrQWN0aW9ucyBleHRlbmRzIENvbXBvbmVudHMuSXhEcm9wZG93blF1aWNrQWN0aW9ucyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3Rpb24nLCAnaGVhZGVyJywgJ2ljb24nLCAnbGF5b3V0JywgJ3N1YkhlYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZW1wdHktc3RhdGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGlvbicsICdoZWFkZXInLCAnaWNvbicsICdsYXlvdXQnLCAnc3ViSGVhZGVyJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4RW1wdHlTdGF0ZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2FjdGlvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4RW1wdHlTdGF0ZSBleHRlbmRzIENvbXBvbmVudHMuSXhFbXB0eVN0YXRlIHtcbiAgLyoqXG4gICAqIEVtcHR5IHN0YXRlIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgYWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJywgJ2NoZXZyb24nLCAnY29tcGFjdCcsICdpdGVtSGVpZ2h0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1ldmVudC1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRlZCcsICdjaGV2cm9uJywgJ2NvbXBhY3QnLCAnaXRlbUhlaWdodCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeEV2ZW50TGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4RXZlbnRMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5JeEV2ZW50TGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGV2cm9uJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2l0ZW1Db2xvcicsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZXZlbnQtbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGV2cm9uJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2l0ZW1Db2xvcicsICdzZWxlY3RlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeEV2ZW50TGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhFdmVudExpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5JeEV2ZW50TGlzdEl0ZW0ge1xuICAvKipcbiAgICogRXZlbnQgbGlzdCBpdGVtIGNsaWNrXG4gICAqL1xuICBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZnVsbFdpZHRoJywgJ2ljb24nLCAncGxhY2Vob2xkZXInLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWV4cGFuZGluZy1zZWFyY2gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Z1bGxXaWR0aCcsICdpY29uJywgJ3BsYWNlaG9sZGVyJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4RXhwYW5kaW5nU2VhcmNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhFeHBhbmRpbmdTZWFyY2ggZXh0ZW5kcyBDb21wb25lbnRzLkl4RXhwYW5kaW5nU2VhcmNoIHtcbiAgLyoqXG4gICAqIFZhbHVlIGNoYW5nZWRcbiAgICovXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1maWx0ZXItY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAncmVhZG9ubHknXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhGaWx0ZXJDaGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2VDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEZpbHRlckNoaXAgZXh0ZW5kcyBDb21wb25lbnRzLkl4RmlsdGVyQ2hpcCB7XG4gIC8qKlxuICAgKiBDbG9zZSBjbGlja2VkXG4gICAqL1xuICBjbG9zZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWlnaHQnLCAnc3RhdGUnLCAnd2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWZsaXAtdGlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVpZ2h0JywgJ3N0YXRlJywgJ3dpZHRoJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4RmxpcFRpbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEZsaXBUaWxlIGV4dGVuZHMgQ29tcG9uZW50cy5JeEZsaXBUaWxlIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1mbGlwLXRpbGUtY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBJeEZsaXBUaWxlQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4RmxpcFRpbGVDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5JeEZsaXBUaWxlQ29udGVudCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZm9ybS1maWVsZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhGb3JtRmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEZvcm1GaWVsZCBleHRlbmRzIENvbXBvbmVudHMuSXhGb3JtRmllbGQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sbGFwc2VkJywgJ2V4cGFuZE9uSGVhZGVyQ2xpY2snLCAnaGVhZGVyJywgJ2luZGV4JywgJ3NlbGVjdGVkJywgJ3N1YkhlYWRlcicsICdzdXBwcmVzc0hlYWRlclNlbGVjdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlZCcsICdleHBhbmRPbkhlYWRlckNsaWNrJywgJ2hlYWRlcicsICdpbmRleCcsICdzZWxlY3RlZCcsICdzdWJIZWFkZXInLCAnc3VwcHJlc3NIZWFkZXJTZWxlY3Rpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NlbGVjdEdyb3VwJywgJ3NlbGVjdEl0ZW0nLCAnY29sbGFwc2VkQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5JeEdyb3VwIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gd2hvbGUgZ3JvdXAgZ2V0cyBzZWxlY3RlZC5cbiAgICovXG4gIHNlbGVjdEdyb3VwOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBncm91cCBpdGVtIGdldHMgc2VsZWN0ZWQuXG4gICAqL1xuICBzZWxlY3RJdGVtOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBHcm91cCBjb2xsYXBzZWRcbiAgICovXG4gIGNvbGxhcHNlZENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1ncm91cC1jb250ZXh0LW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhHcm91cENvbnRleHRNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhHcm91cENvbnRleHRNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5JeEdyb3VwQ29udGV4dE1lbnUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZm9jdXNhYmxlJywgJ2ljb24nLCAnaW5kZXgnLCAnc2Vjb25kYXJ5VGV4dCcsICdzZWxlY3RlZCcsICdzdXBwcmVzc1NlbGVjdGlvbicsICd0ZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1ncm91cC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmb2N1c2FibGUnLCAnaWNvbicsICdpbmRleCcsICdzZWNvbmRhcnlUZXh0JywgJ3NlbGVjdGVkJywgJ3N1cHByZXNzU2VsZWN0aW9uJywgJ3RleHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhHcm91cEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzZWxlY3RlZENoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhHcm91cEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4R3JvdXBJdGVtIHtcbiAgLyoqXG4gICAqIFNlbGVjdGlvbiBjaGFuZ2VkXG4gICAqL1xuICBzZWxlY3RlZENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxIVE1MSXhHcm91cEl0ZW1FbGVtZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdjb2xvcicsICdkaXNhYmxlZCcsICdnaG9zdCcsICdpY29uJywgJ2ljb25Db2xvcicsICdsb2FkaW5nJywgJ291dGxpbmUnLCAnb3ZhbCcsICdzaXplJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtaWNvbi1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdjb2xvcicsICdkaXNhYmxlZCcsICdnaG9zdCcsICdpY29uJywgJ2ljb25Db2xvcicsICdsb2FkaW5nJywgJ291dGxpbmUnLCAnb3ZhbCcsICdzaXplJywgJ3R5cGUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeEljb25CdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEljb25CdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLkl4SWNvbkJ1dHRvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdnaG9zdCcsICdpY29uJywgJ2xvYWRpbmcnLCAnb3V0bGluZScsICdwcmVzc2VkJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtaWNvbi10b2dnbGUtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdnaG9zdCcsICdpY29uJywgJ2xvYWRpbmcnLCAnb3V0bGluZScsICdwcmVzc2VkJywgJ3NpemUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeEljb25Ub2dnbGVCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydwcmVzc2VkQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4SWNvblRvZ2dsZUJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuSXhJY29uVG9nZ2xlQnV0dG9uIHtcbiAgLyoqXG4gICAqIFByZXNzZWQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBwcmVzc2VkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtaW5wdXQtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhJbnB1dEdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhJbnB1dEdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5JeElucHV0R3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1rZXktdmFsdWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBJeEtleVZhbHVlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhLZXlWYWx1ZSBleHRlbmRzIENvbXBvbmVudHMuSXhLZXlWYWx1ZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzdHJpcGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1rZXktdmFsdWUtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3RyaXBlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeEtleVZhbHVlTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4S2V5VmFsdWVMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5JeEtleVZhbHVlTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdvcmllbnRhdGlvbicsICdzdGF0ZScsICd1bml0JywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1rcGknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ29yaWVudGF0aW9uJywgJ3N0YXRlJywgJ3VuaXQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhLcGkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEtwaSBleHRlbmRzIENvbXBvbmVudHMuSXhLcGkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sdW1ucycsICdnYXAnLCAnbm9NYXJnaW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWxheW91dC1ncmlkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2x1bW5zJywgJ2dhcCcsICdub01hcmdpbiddLFxufSlcbmV4cG9ydCBjbGFzcyBJeExheW91dEdyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeExheW91dEdyaWQgZXh0ZW5kcyBDb21wb25lbnRzLkl4TGF5b3V0R3JpZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICd0YXJnZXQnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1saW5rLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndGFyZ2V0JywgJ3VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeExpbmtCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeExpbmtCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLkl4TGlua0J1dHRvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcHBsaWNhdGlvbk5hbWUnLCAnaGlkZUNvbnRleHRNZW51JywgJ25hdmlnYXRpb25UaXRsZSddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZVNpZGViYXInLCAnb3Blbk92ZXJsYXknLCAnY2xvc2VPdmVybGF5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1tYXAtbmF2aWdhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwbGljYXRpb25OYW1lJywgJ2hpZGVDb250ZXh0TWVudScsICduYXZpZ2F0aW9uVGl0bGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhNYXBOYXZpZ2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbmF2aWdhdGlvblRvZ2dsZWQnLCAnY29udGV4dE1lbnVDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1hcE5hdmlnYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLkl4TWFwTmF2aWdhdGlvbiB7XG4gIC8qKlxuICAgKiBOYXZpZ2F0aW9uIHRvZ2dsZWRcbiAgICovXG4gIG5hdmlnYXRpb25Ub2dnbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQ29udGV4dCBtZW51IGNsaWNrZWRcbiAgICovXG4gIGNvbnRleHRNZW51Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ25hbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LW1hcC1uYXZpZ2F0aW9uLW92ZXJsYXknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ25hbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhNYXBOYXZpZ2F0aW9uT3ZlcmxheSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNYXBOYXZpZ2F0aW9uT3ZlcmxheSBleHRlbmRzIENvbXBvbmVudHMuSXhNYXBOYXZpZ2F0aW9uT3ZlcmxheSB7XG4gIC8qKlxuICAgKiBFdmVudCBjbG9zZWRcbiAgICovXG4gIGNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwbGljYXRpb25EZXNjcmlwdGlvbicsICdhcHBsaWNhdGlvbk5hbWUnLCAnZW5hYmxlTWFwRXhwYW5kJywgJ2VuYWJsZVNldHRpbmdzJywgJ2VuYWJsZVRvZ2dsZVRoZW1lJywgJ2V4cGFuZCcsICdpMThuQ29sbGFwc2UnLCAnaTE4bkV4cGFuZCcsICdpMThuRXhwYW5kU2lkZWJhcicsICdpMThuTGVnYWwnLCAnaTE4blNldHRpbmdzJywgJ2kxOG5Ub2dnbGVUaGVtZScsICdtYXhWaXNpYmxlTWVudUl0ZW1zJywgJ3Bpbm5lZCcsICdzaG93QWJvdXQnLCAnc2hvd1NldHRpbmdzJywgJ3N0YXJ0RXhwYW5kZWQnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVNYXBFeHBhbmQnLCAndG9nZ2xlTWVudScsICd0b2dnbGVTZXR0aW5ncycsICd0b2dnbGVBYm91dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwbGljYXRpb25EZXNjcmlwdGlvbicsICdhcHBsaWNhdGlvbk5hbWUnLCAnZW5hYmxlTWFwRXhwYW5kJywgJ2VuYWJsZVNldHRpbmdzJywgJ2VuYWJsZVRvZ2dsZVRoZW1lJywgJ2V4cGFuZCcsICdpMThuQ29sbGFwc2UnLCAnaTE4bkV4cGFuZCcsICdpMThuRXhwYW5kU2lkZWJhcicsICdpMThuTGVnYWwnLCAnaTE4blNldHRpbmdzJywgJ2kxOG5Ub2dnbGVUaGVtZScsICdtYXhWaXNpYmxlTWVudUl0ZW1zJywgJ3Bpbm5lZCcsICdzaG93QWJvdXQnLCAnc2hvd1NldHRpbmdzJywgJ3N0YXJ0RXhwYW5kZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZXhwYW5kQ2hhbmdlJywgJ21hcEV4cGFuZENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVudSB7XG4gIC8qKlxuICAgKiBNZW51IGV4cGFuZGVkXG4gICAqL1xuICBleHBhbmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBNYXAgU2lkZWJhciBleHBhbmRlZFxuICAgKi9cbiAgbWFwRXhwYW5kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmVUYWJMYWJlbCcsICdsYWJlbCcsICdzaG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1tZW51LWFib3V0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmVUYWJMYWJlbCcsICdsYWJlbCcsICdzaG93J10sXG59KVxuZXhwb3J0IGNsYXNzIEl4TWVudUFib3V0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEN1c3RvbUNsb3NlRXZlbnQgYXMgSUl4TWVudUFib3V0Q3VzdG9tQ2xvc2VFdmVudCB9IGZyb20gJ0BzaWVtZW5zL2l4JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TWVudUFib3V0IGV4dGVuZHMgQ29tcG9uZW50cy5JeE1lbnVBYm91dCB7XG4gIC8qKlxuICAgKiBBYm91dCBhbmQgTGVnYWwgY2xvc2VkXG4gICAqL1xuICBjbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJeE1lbnVBYm91dEN1c3RvbUNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LW1lbnUtYWJvdXQtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhNZW51QWJvdXRJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbGFiZWxDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEN1c3RvbUxhYmVsQ2hhbmdlRXZlbnQgYXMgSUl4TWVudUFib3V0SXRlbUN1c3RvbUxhYmVsQ2hhbmdlRXZlbnQgfSBmcm9tICdAc2llbWVucy9peCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1lbnVBYm91dEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVudUFib3V0SXRlbSB7XG4gIC8qKlxuICAgKiBMYWJlbCBjaGFuZ2VkXG4gICAqL1xuICBsYWJlbENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJeE1lbnVBYm91dEl0ZW1DdXN0b21MYWJlbENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fib3V0SXRlbUxhYmVsJywgJ2V4cGFuZGVkJywgJ2kxOG5TaG93TW9yZScsICdsYWJlbCcsICdvZmZzZXRCb3R0b20nLCAnc2hvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbWVudS1hYm91dC1uZXdzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhYm91dEl0ZW1MYWJlbCcsICdleHBhbmRlZCcsICdpMThuU2hvd01vcmUnLCAnbGFiZWwnLCAnb2Zmc2V0Qm90dG9tJywgJ3Nob3cnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhNZW51QWJvdXROZXdzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2hvd01vcmUnLCAnY2xvc2VQb3BvdmVyJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TWVudUFib3V0TmV3cyBleHRlbmRzIENvbXBvbmVudHMuSXhNZW51QWJvdXROZXdzIHtcbiAgLyoqXG4gICAqIFNob3cgTW9yZSBidXR0b24gaXMgcHJlc3NlZFxuICAgKi9cbiAgc2hvd01vcmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBQb3BvdmVyIGNsb3NlZFxuICAgKi9cbiAgY2xvc2VQb3BvdmVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib3R0b20nLCAnaTE4bkxvZ291dCcsICdpbWFnZScsICdpbml0aWFscycsICdzaG93TG9nb3V0QnV0dG9uJywgJ3RvcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbWVudS1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JvdHRvbScsICdpMThuTG9nb3V0JywgJ2ltYWdlJywgJ2luaXRpYWxzJywgJ3Nob3dMb2dvdXRCdXR0b24nLCAndG9wJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4TWVudUF2YXRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2xvZ291dENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TWVudUF2YXRhciBleHRlbmRzIENvbXBvbmVudHMuSXhNZW51QXZhdGFyIHtcbiAgLyoqXG4gICAqIExvZ291dCBjbGlja1xuICAgKi9cbiAgbG9nb3V0Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbWVudS1hdmF0YXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeE1lbnVBdmF0YXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TWVudUF2YXRhckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVudUF2YXRhckl0ZW0ge1xuICAvKipcbiAgICogQXZhdGFyIGRyb3Bkb3duIGl0ZW0gY2xpY2tlZFxuICAgKi9cbiAgaXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJywgJ25vdGlmaWNhdGlvbnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LW1lbnUtY2F0ZWdvcnknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnLCAnbm90aWZpY2F0aW9ucyddLFxufSlcbmV4cG9ydCBjbGFzcyBJeE1lbnVDYXRlZ29yeSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TWVudUNhdGVnb3J5IGV4dGVuZHMgQ29tcG9uZW50cy5JeE1lbnVDYXRlZ29yeSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnYm90dG9tJywgJ2Rpc2FibGVkJywgJ2hvbWUnLCAnaWNvbicsICdsYWJlbCcsICdub3RpZmljYXRpb25zJywgJ3RhYkljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2JvdHRvbScsICdkaXNhYmxlZCcsICdob21lJywgJ2ljb24nLCAnbGFiZWwnLCAnbm90aWZpY2F0aW9ucycsICd0YWJJY29uJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4TWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5JeE1lbnVJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZVRhYkxhYmVsJywgJ2xhYmVsJywgJ3Nob3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LW1lbnUtc2V0dGluZ3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZVRhYkxhYmVsJywgJ2xhYmVsJywgJ3Nob3cnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhNZW51U2V0dGluZ3Mge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjbG9zZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQ3VzdG9tQ2xvc2VFdmVudCBhcyBJSXhNZW51U2V0dGluZ3NDdXN0b21DbG9zZUV2ZW50IH0gZnJvbSAnQHNpZW1lbnMvaXgnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNZW51U2V0dGluZ3MgZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVudVNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFBvcG92ZXIgY2xvc2VkXG4gICAqL1xuICBjbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJeE1lbnVTZXR0aW5nc0N1c3RvbUNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LW1lbnUtc2V0dGluZ3MtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhNZW51U2V0dGluZ3NJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbGFiZWxDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEN1c3RvbUxhYmVsQ2hhbmdlRXZlbnQgYXMgSUl4TWVudVNldHRpbmdzSXRlbUN1c3RvbUxhYmVsQ2hhbmdlRXZlbnQgfSBmcm9tICdAc2llbWVucy9peCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1lbnVTZXR0aW5nc0l0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVudVNldHRpbmdzSXRlbSB7XG4gIC8qKlxuICAgKiBMYWJlbCBjaGFuZ2VkXG4gICAqL1xuICBsYWJlbENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJeE1lbnVTZXR0aW5nc0l0ZW1DdXN0b21MYWJlbENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc21pc3NpYmxlJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LW1lc3NhZ2UtYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNtaXNzaWJsZScsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4TWVzc2FnZUJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlZENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1lc3NhZ2VCYXIgZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVzc2FnZUJhciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVkIHdoZW4gdGhlIGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkXG4gICAqL1xuICBjbG9zZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2JhY2tkcm9wJywgJ2JlZm9yZURpc21pc3MnLCAnY2VudGVyZWQnLCAnY2xvc2VPbkJhY2tkcm9wQ2xpY2snLCAnY2xvc2VPbkVzY2FwZScsICdrZXlib2FyZCcsICdzaXplJ10sXG4gIG1ldGhvZHM6IFsnc2hvd01vZGFsJywgJ2Rpc21pc3NNb2RhbCcsICdjbG9zZU1vZGFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1tb2RhbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2JhY2tkcm9wJywgJ2JlZm9yZURpc21pc3MnLCAnY2VudGVyZWQnLCAnY2xvc2VPbkJhY2tkcm9wQ2xpY2snLCAnY2xvc2VPbkVzY2FwZScsICdrZXlib2FyZCcsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4TW9kYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkaWFsb2dDbG9zZScsICdkaWFsb2dEaXNtaXNzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLkl4TW9kYWwge1xuICAvKipcbiAgICogRGlhbG9nIGNsb3NlXG4gICAqL1xuICBkaWFsb2dDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogRGlhbG9nIGNhbmNlbFxuICAgKi9cbiAgZGlhbG9nRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbW9kYWwtY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBJeE1vZGFsQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TW9kYWxDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5JeE1vZGFsQ29udGVudCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbW9kYWwtZXhhbXBsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBJeE1vZGFsRXhhbXBsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TW9kYWxFeGFtcGxlIGV4dGVuZHMgQ29tcG9uZW50cy5JeE1vZGFsRXhhbXBsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbW9kYWwtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEl4TW9kYWxGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1vZGFsRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5JeE1vZGFsRm9vdGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdpY29uJywgJ2ljb25Db2xvciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbW9kYWwtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlQ2xvc2UnLCAnaWNvbicsICdpY29uQ29sb3InXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhNb2RhbEhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNb2RhbEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuSXhNb2RhbEhlYWRlciB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGNsb3NlIGljb24gaXMgY2xpY2tlZCBhbmQgY2xvc2VzIHRoZSBtb2RhbFxuQ2FuIGJlIHByZXZlbnRlZCwgaW4gd2hpY2ggY2FzZSBvbmx5IHRoZSBldmVudCBpcyB0cmlnZ2VyZWQsIGFuZCB0aGUgbW9kYWwgcmVtYWlucyBvcGVuXG4gICAqL1xuICBjbG9zZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhZHZhbmNlZCcsICdjb3VudCcsICdpMThuSXRlbXMnLCAnaTE4bk9mJywgJ2kxOG5QYWdlJywgJ2l0ZW1Db3VudCcsICdzZWxlY3RlZFBhZ2UnLCAnc2hvd0l0ZW1Db3VudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtcGFnaW5hdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWR2YW5jZWQnLCAnY291bnQnLCAnaTE4bkl0ZW1zJywgJ2kxOG5PZicsICdpMThuUGFnZScsICdpdGVtQ291bnQnLCAnc2VsZWN0ZWRQYWdlJywgJ3Nob3dJdGVtQ291bnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhQYWdpbmF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsncGFnZVNlbGVjdGVkJywgJ2l0ZW1Db3VudENoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhQYWdpbmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5JeFBhZ2luYXRpb24ge1xuICAvKipcbiAgICogUGFnZSBzZWxlY3Rpb24gZXZlbnRcbiAgICovXG4gIHBhZ2VTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKipcbiAgICogSXRlbSBjb3VudCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIGl0ZW1Db3VudENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9yZGVybGVzcycsICdjb21wb3NpdGlvbicsICdleHBhbmRlZCcsICdoZWFkaW5nJywgJ2hpZGVPbkNvbGxhcHNlJywgJ2ljb24nLCAnc2l6ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1wYW5lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydib3JkZXJsZXNzJywgJ2NvbXBvc2l0aW9uJywgJ2V4cGFuZGVkJywgJ2hlYWRpbmcnLCAnaGlkZU9uQ29sbGFwc2UnLCAnaWNvbicsICdzaXplJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhQYW5lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZXhwYW5kZWRDaGFuZ2VkJywgJ3ZhcmlhbnRDaGFuZ2VkJywgJ2JvcmRlcmxlc3NDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFeHBhbmRlZENoYW5nZWRFdmVudCBhcyBJSXhQYW5lRXhwYW5kZWRDaGFuZ2VkRXZlbnQgfSBmcm9tICdAc2llbWVucy9peCc7XG5pbXBvcnQgdHlwZSB7IFZhcmlhbnRDaGFuZ2VkRXZlbnQgYXMgSUl4UGFuZVZhcmlhbnRDaGFuZ2VkRXZlbnQgfSBmcm9tICdAc2llbWVucy9peCc7XG5pbXBvcnQgdHlwZSB7IEJvcmRlcmxlc3NDaGFuZ2VkRXZlbnQgYXMgSUl4UGFuZUJvcmRlcmxlc3NDaGFuZ2VkRXZlbnQgfSBmcm9tICdAc2llbWVucy9peCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFBhbmUgZXh0ZW5kcyBDb21wb25lbnRzLkl4UGFuZSB7XG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBwYW5lIGVpdGhlciBleHBhbmRzIG9yIGNvbnRyYWN0c1xuICAgKi9cbiAgZXhwYW5kZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUl4UGFuZUV4cGFuZGVkQ2hhbmdlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB2YXJpYW50IG9mIHRoZSBwYW5lIGlzIGNoYW5nZWRcbiAgICovXG4gIHZhcmlhbnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUl4UGFuZVZhcmlhbnRDaGFuZ2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHZhcmlhbnQgb2YgdGhlIHBhbmUgaXMgY2hhbmdlZFxuICAgKi9cbiAgYm9yZGVybGVzc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJSXhQYW5lQm9yZGVybGVzc0NoYW5nZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib3JkZXJsZXNzJywgJ2xheW91dCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1wYW5lLWxheW91dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYm9yZGVybGVzcycsICdsYXlvdXQnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFBhbmVMYXlvdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFBhbmVMYXlvdXQgZXh0ZW5kcyBDb21wb25lbnRzLkl4UGFuZUxheW91dCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGlnbkxlZnQnLCAnYmFja2dyb3VuZCcsICdjb2xvcicsICdpY29uJywgJ291dGxpbmUnLCAncGlsbENvbG9yJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXBpbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWduTGVmdCcsICdiYWNrZ3JvdW5kJywgJ2NvbG9yJywgJ2ljb24nLCAnb3V0bGluZScsICdwaWxsQ29sb3InLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFBpbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFBpbGwgZXh0ZW5kcyBDb21wb25lbnRzLkl4UGlsbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xsYXBzZScsICdoZWFkaW5nJywgJ2ljb24nLCAnbm90aWZpY2F0aW9uJywgJ3N1YmhlYWRpbmcnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtcHVzaC1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzZScsICdoZWFkaW5nJywgJ2ljb24nLCAnbm90aWZpY2F0aW9uJywgJ3N1YmhlYWRpbmcnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFB1c2hDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhQdXNoQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuSXhQdXNoQ2FyZCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEl4Um93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhSb3cgZXh0ZW5kcyBDb21wb25lbnRzLkl4Um93IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93Q2xlYXInLCAnZGlzYWJsZWQnLCAnZWRpdGFibGUnLCAnaGlkZUxpc3RIZWFkZXInLCAnaTE4bk5vTWF0Y2hlcycsICdpMThuUGxhY2Vob2xkZXInLCAnaTE4blBsYWNlaG9sZGVyRWRpdGFibGUnLCAnaTE4blNlbGVjdExpc3RIZWFkZXInLCAnbW9kZScsICdyZWFkb25seScsICdzZWxlY3RlZEluZGljZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3dDbGVhcicsICdkaXNhYmxlZCcsICdlZGl0YWJsZScsICdoaWRlTGlzdEhlYWRlcicsICdpMThuTm9NYXRjaGVzJywgJ2kxOG5QbGFjZWhvbGRlcicsICdpMThuUGxhY2Vob2xkZXJFZGl0YWJsZScsICdpMThuU2VsZWN0TGlzdEhlYWRlcicsICdtb2RlJywgJ3JlYWRvbmx5JywgJ3NlbGVjdGVkSW5kaWNlcycsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZhbHVlQ2hhbmdlJywgJ2l0ZW1TZWxlY3Rpb25DaGFuZ2UnLCAnaW5wdXRDaGFuZ2UnLCAnYWRkSXRlbSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuSXhTZWxlY3Qge1xuICAvKipcbiAgICogVmFsdWUgY2hhbmdlZCBAc2luY2UgMi4wLjBcbiAgICovXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nIHwgc3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEl0ZW0gc2VsZWN0aW9uIGNoYW5nZWQgQGRlcHJlY2F0ZWQgc2luY2UgMi4wLjAuIFVzZSBgdmFsdWVDaGFuZ2VgIGluc3RlYWQuXG4gICAqL1xuICBpdGVtU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIHRleHQgaW5wdXQgY2hhbmdlcy4gQHNpbmNlIDIuMC4wXG4gICAqL1xuICBpbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogSXRlbSBhZGRlZCB0byBzZWxlY3Rpb25cbiAgICovXG4gIGFkZEl0ZW06IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXNlbGVjdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdzZWxlY3RlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFNlbGVjdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhTZWxlY3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5JeFNlbGVjdEl0ZW0ge1xuICAvKipcbiAgICogSXRlbSBjbGlja2VkXG4gICAqL1xuICBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXJyb3InLCAnbWFya2VyJywgJ21heCcsICdtaW4nLCAnc3RlcCcsICd0cmFjZScsICd0cmFjZVJlZmVyZW5jZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtc2xpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdlcnJvcicsICdtYXJrZXInLCAnbWF4JywgJ21pbicsICdzdGVwJywgJ3RyYWNlJywgJ3RyYWNlUmVmZXJlbmNlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4U2xpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhTbGlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLkl4U2xpZGVyIHtcblxuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzaXplJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXNwaW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NpemUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFNwaW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFNwaW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLkl4U3Bpbm5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdnaG9zdCcsICdpY29uJywgJ2xhYmVsJywgJ291dGxpbmUnLCAncGxhY2VtZW50JywgJ3NwbGl0SWNvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1zcGxpdC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2dob3N0JywgJ2ljb24nLCAnbGFiZWwnLCAnb3V0bGluZScsICdwbGFjZW1lbnQnLCAnc3BsaXRJY29uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhTcGxpdEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2J1dHRvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4U3BsaXRCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLkl4U3BsaXRCdXR0b24ge1xuICAvKipcbiAgICogQnV0dG9uIGNsaWNrZWRcbiAgICovXG4gIGJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1zcGxpdC1idXR0b24taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFNwbGl0QnV0dG9uSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2l0ZW1DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFNwbGl0QnV0dG9uSXRlbSBleHRlbmRzIENvbXBvbmVudHMuSXhTcGxpdEJ1dHRvbkl0ZW0ge1xuICAvKipcbiAgICogRHJvcGRvd24gaXRlbSBjbGlja2VkXG4gICAqL1xuICBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaWNvbicsICdsYXlvdXQnLCAncGxhY2VtZW50JywgJ3JvdW5kZWQnLCAnc2VsZWN0ZWQnLCAnc21hbGwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXRhYi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnbGF5b3V0JywgJ3BsYWNlbWVudCcsICdyb3VuZGVkJywgJ3NlbGVjdGVkJywgJ3NtYWxsJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4VGFiSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RhYkNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBUYWJDbGlja0RldGFpbCBhcyBJSXhUYWJJdGVtVGFiQ2xpY2tEZXRhaWwgfSBmcm9tICdAc2llbWVucy9peCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFRhYkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4VGFiSXRlbSB7XG4gIC8qKlxuICAgKiBPbiB0YWIgY2xpY2sgQHNpbmNlIDIuMC4wXG4gICAqL1xuICB0YWJDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElJeFRhYkl0ZW1UYWJDbGlja0RldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYXlvdXQnLCAncGxhY2VtZW50JywgJ3JvdW5kZWQnLCAnc2VsZWN0ZWQnLCAnc21hbGwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXRhYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xheW91dCcsICdwbGFjZW1lbnQnLCAncm91bmRlZCcsICdzZWxlY3RlZCcsICdzbWFsbCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFRhYnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzZWxlY3RlZENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFRhYnMgZXh0ZW5kcyBDb21wb25lbnRzLkl4VGFicyB7XG4gIC8qKlxuICAgKiBgc2VsZWN0ZWRgIHByb3BlcnR5IGNoYW5nZWQgQHNpbmNlIDIuMC4wXG4gICAqL1xuICBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC10aWxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4VGlsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4VGlsZSBleHRlbmRzIENvbXBvbmVudHMuSXhUaWxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nvcm5lcnMnLCAnZm9ybWF0JywgJ2luZGl2aWR1YWwnLCAnc2hvd0hvdXInLCAnc2hvd01pbnV0ZXMnLCAnc2hvd1NlY29uZHMnLCAnc2hvd1RpbWVSZWZlcmVuY2UnLCAnc3RhbmRhbG9uZUFwcGVhcmFuY2UnLCAndGV4dFNlbGVjdFRpbWUnLCAndGV4dFRpbWUnLCAndGltZScsICd0aW1lUmVmZXJlbmNlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0Q3VycmVudFRpbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXRpbWUtcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb3JuZXJzJywgJ2Zvcm1hdCcsICdpbmRpdmlkdWFsJywgJ3Nob3dIb3VyJywgJ3Nob3dNaW51dGVzJywgJ3Nob3dTZWNvbmRzJywgJ3Nob3dUaW1lUmVmZXJlbmNlJywgJ3N0YW5kYWxvbmVBcHBlYXJhbmNlJywgJ3RleHRTZWxlY3RUaW1lJywgJ3RleHRUaW1lJywgJ3RpbWUnLCAndGltZVJlZmVyZW5jZSddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFRpbWVQaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0aW1lU2VsZWN0JywgJ2RvbmUnLCAndGltZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFRpbWVQaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLkl4VGltZVBpY2tlciB7XG4gIC8qKlxuICAgKiBUaW1lIGV2ZW50XG4gICAqL1xuICB0aW1lU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBUaW1lIGV2ZW50IEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiAzLjAuMC4gVXNlIGB0aW1lLXNlbGVjdGAgZXZlbnQuXG4gICAqL1xuICBkb25lOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBUaW1lIGNoYW5nZSBldmVudFxuICAgKi9cbiAgdGltZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvQ2xvc2UnLCAnYXV0b0Nsb3NlRGVsYXknLCAnaWNvbicsICdpY29uQ29sb3InLCAndG9hc3RUaXRsZScsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC10b2FzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b0Nsb3NlJywgJ2F1dG9DbG9zZURlbGF5JywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ3RvYXN0VGl0bGUnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFRvYXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2VUb2FzdCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFRvYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5JeFRvYXN0IHtcbiAgLyoqXG4gICAqIFRvYXN0IGNsb3NlZFxuICAgKi9cbiAgY2xvc2VUb2FzdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250YWluZXJDbGFzcycsICdjb250YWluZXJJZCcsICdwb3NpdGlvbiddLFxuICBtZXRob2RzOiBbJ3Nob3dUb2FzdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtdG9hc3QtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250YWluZXJDbGFzcycsICdjb250YWluZXJJZCcsICdwb3NpdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFRvYXN0Q29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhUb2FzdENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuSXhUb2FzdENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2hpZGVUZXh0JywgJ2luZGV0ZXJtaW5hdGUnLCAndGV4dEluZGV0ZXJtaW5hdGUnLCAndGV4dE9mZicsICd0ZXh0T24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdoaWRlVGV4dCcsICdpbmRldGVybWluYXRlJywgJ3RleHRJbmRldGVybWluYXRlJywgJ3RleHRPZmYnLCAndGV4dE9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4VG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2hlY2tlZENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuSXhUb2dnbGUge1xuICAvKipcbiAgICogQW4gZXZlbnQgd2lsbCBiZSBkaXNwYXRjaGVkIGVhY2ggdGltZSB0aGUgc2xpZGUtdG9nZ2xlIGNoYW5nZXMgaXRzIHZhbHVlLlxuICAgKi9cbiAgY2hlY2tlZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZ2hvc3QnLCAnaWNvbicsICdsb2FkaW5nJywgJ291dGxpbmUnLCAncHJlc3NlZCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC10b2dnbGUtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdnaG9zdCcsICdpY29uJywgJ2xvYWRpbmcnLCAnb3V0bGluZScsICdwcmVzc2VkJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhUb2dnbGVCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydwcmVzc2VkQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4VG9nZ2xlQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5JeFRvZ2dsZUJ1dHRvbiB7XG4gIC8qKlxuICAgKiBQcmVzc2VkIGNoYW5nZSBldmVudFxuICAgKi9cbiAgcHJlc3NlZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZm9yJywgJ2ludGVyYWN0aXZlJywgJ3BsYWNlbWVudCcsICd0aXRsZUNvbnRlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZvcicsICdpbnRlcmFjdGl2ZScsICdwbGFjZW1lbnQnLCAndGl0bGVDb250ZW50J10sXG59KVxuZXhwb3J0IGNsYXNzIEl4VG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4VG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuSXhUb29sdGlwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRleHQnLCAnaGFzQ2hpbGRyZW4nLCAndGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtdHJlZS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZXh0JywgJ2hhc0NoaWxkcmVuJywgJ3RleHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhUcmVlSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RvZ2dsZScsICdpdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhUcmVlSXRlbSBleHRlbmRzIENvbXBvbmVudHMuSXhUcmVlSXRlbSB7XG4gIC8qKlxuICAgKiBFeHBhbmQvQ29sbGFwc2VkIHRvZ2dsZWRcbiAgICovXG4gIHRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIENsaWNrZWRcbiAgICovXG4gIGl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9sZCcsICdjb2xvcicsICdmb3JtYXQnLCAndGV4dENvbG9yJywgJ3RleHREZWNvcmF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC10eXBvZ3JhcGh5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydib2xkJywgJ2NvbG9yJywgJ2Zvcm1hdCcsICd0ZXh0Q29sb3InLCAndGV4dERlY29yYXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhUeXBvZ3JhcGh5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhUeXBvZ3JhcGh5IGV4dGVuZHMgQ29tcG9uZW50cy5JeFR5cG9ncmFwaHkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2Rpc2FibGVkJywgJ2kxOG5VcGxvYWREaXNhYmxlZCcsICdpMThuVXBsb2FkRmlsZScsICdsb2FkaW5nVGV4dCcsICdtdWx0aWxpbmUnLCAnbXVsdGlwbGUnLCAnc2VsZWN0RmlsZVRleHQnLCAnc3RhdGUnLCAndXBsb2FkRmFpbGVkVGV4dCcsICd1cGxvYWRTdWNjZXNzVGV4dCddLFxuICBtZXRob2RzOiBbJ3NldEZpbGVzVG9VcGxvYWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXVwbG9hZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2Rpc2FibGVkJywgJ2kxOG5VcGxvYWREaXNhYmxlZCcsICdpMThuVXBsb2FkRmlsZScsICdsb2FkaW5nVGV4dCcsICdtdWx0aWxpbmUnLCAnbXVsdGlwbGUnLCAnc2VsZWN0RmlsZVRleHQnLCAnc3RhdGUnLCAndXBsb2FkRmFpbGVkVGV4dCcsICd1cGxvYWRTdWNjZXNzVGV4dCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFVwbG9hZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2ZpbGVzQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFVwbG9hZCBleHRlbmRzIENvbXBvbmVudHMuSXhVcGxvYWQge1xuICAvKipcbiAgICogWW91IGdldCBhbiBhcnJheSBvZiBGaWxlcyBhZnRlciBkcm9wLWFjdGlvbiBvciBicm93c2UgYWN0aW9uIGlzIGZpbmlzaGVkXG4gICAqL1xuICBmaWxlc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxBcnJheTxGaWxlPj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtZXNzYWdlJywgJ3BsYWNlbWVudCcsICdzdXBwcmVzc0F1dG9tYXRpY1BsYWNlbWVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtdmFsaWRhdGlvbi10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydtZXNzYWdlJywgJ3BsYWNlbWVudCcsICdzdXBwcmVzc0F1dG9tYXRpY1BsYWNlbWVudCddLFxufSlcbmV4cG9ydCBjbGFzcyBJeFZhbGlkYXRpb25Ub29sdGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhWYWxpZGF0aW9uVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuSXhWYWxpZGF0aW9uVG9vbHRpcCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGlja2FibGUnLCAnZGlzYWJsZWQnLCAnc2VsZWN0ZWQnLCAnc3RhdHVzJywgJ3ZlcnRpY2FsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC13b3JrZmxvdy1zdGVwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGlja2FibGUnLCAnZGlzYWJsZWQnLCAnc2VsZWN0ZWQnLCAnc3RhdHVzJywgJ3ZlcnRpY2FsJ10sXG59KVxuZXhwb3J0IGNsYXNzIEl4V29ya2Zsb3dTdGVwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhXb3JrZmxvd1N0ZXAgZXh0ZW5kcyBDb21wb25lbnRzLkl4V29ya2Zsb3dTdGVwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdzZWxlY3RlZEluZGV4JywgJ3ZlcnRpY2FsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC13b3JrZmxvdy1zdGVwcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xpY2thYmxlJywgJ3NlbGVjdGVkSW5kZXgnLCAndmVydGljYWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXhXb3JrZmxvd1N0ZXBzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3RlcFNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4V29ya2Zsb3dTdGVwcyBleHRlbmRzIENvbXBvbmVudHMuSXhXb3JrZmxvd1N0ZXBzIHtcbiAgLyoqXG4gICAqIE9uIHN0ZXAgc2VsZWN0ZWQgZXZlbnRcbiAgICovXG4gIHN0ZXBTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbiJdfQ==