@scania/tegel-angular-17 1.28.0 → 1.28.1

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 (40) hide show
  1. package/ng-package.json +7 -0
  2. package/package.json +4 -17
  3. package/src/lib/components.module.ts +35 -0
  4. package/{lib/directives/tds-dropdown-value-accessor.d.ts → src/lib/directives/tds-dropdown-value-accessor.ts} +18 -5
  5. package/src/lib/directives/tds-radio-value-accessor.ts +29 -0
  6. package/src/lib/stencil-generated/angular-component-lib/utils.ts +65 -0
  7. package/src/lib/stencil-generated/boolean-value-accessor.ts +28 -0
  8. package/src/lib/stencil-generated/components.ts +2063 -0
  9. package/src/lib/stencil-generated/index.ts +87 -0
  10. package/src/lib/stencil-generated/number-value-accessor.ts +29 -0
  11. package/src/lib/stencil-generated/text-value-accessor.ts +24 -0
  12. package/src/lib/stencil-generated/value-accessor.ts +39 -0
  13. package/{public-api.d.ts → src/public-api.ts} +4 -0
  14. package/tsconfig.lib.json +14 -0
  15. package/tsconfig.lib.prod.json +10 -0
  16. package/tsconfig.spec.json +14 -0
  17. package/esm2022/lib/components.module.mjs +0 -58
  18. package/esm2022/lib/directives/tds-dropdown-value-accessor.mjs +0 -36
  19. package/esm2022/lib/directives/tds-radio-value-accessor.mjs +0 -41
  20. package/esm2022/lib/stencil-generated/angular-component-lib/utils.mjs +0 -59
  21. package/esm2022/lib/stencil-generated/boolean-value-accessor.mjs +0 -39
  22. package/esm2022/lib/stencil-generated/components.mjs +0 -2070
  23. package/esm2022/lib/stencil-generated/index.mjs +0 -86
  24. package/esm2022/lib/stencil-generated/number-value-accessor.mjs +0 -40
  25. package/esm2022/lib/stencil-generated/text-value-accessor.mjs +0 -35
  26. package/esm2022/lib/stencil-generated/value-accessor.mjs +0 -40
  27. package/esm2022/public-api.mjs +0 -12
  28. package/esm2022/scania-tegel-angular-17.mjs +0 -5
  29. package/fesm2022/scania-tegel-angular-17.mjs +0 -2399
  30. package/fesm2022/scania-tegel-angular-17.mjs.map +0 -1
  31. package/index.d.ts +0 -5
  32. package/lib/components.module.d.ts +0 -12
  33. package/lib/directives/tds-radio-value-accessor.d.ts +0 -13
  34. package/lib/stencil-generated/angular-component-lib/utils.d.ts +0 -9
  35. package/lib/stencil-generated/boolean-value-accessor.d.ts +0 -9
  36. package/lib/stencil-generated/components.d.ts +0 -1002
  37. package/lib/stencil-generated/index.d.ts +0 -2
  38. package/lib/stencil-generated/number-value-accessor.d.ts +0 -9
  39. package/lib/stencil-generated/text-value-accessor.d.ts +0 -8
  40. package/lib/stencil-generated/value-accessor.d.ts +0 -18
@@ -1,2070 +0,0 @@
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 TdsAccordion = class TdsAccordion {
8
- constructor(c, r, z) {
9
- this.z = z;
10
- c.detach();
11
- this.el = r.nativeElement;
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsAccordion, selector: "tds-accordion", inputs: { hideLastBorder: "hideLastBorder", modeVariant: "modeVariant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15
- };
16
- TdsAccordion = __decorate([
17
- ProxyCmp({
18
- inputs: ['hideLastBorder', 'modeVariant']
19
- })
20
- ], TdsAccordion);
21
- export { TdsAccordion };
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsAccordion, decorators: [{
23
- type: Component,
24
- args: [{
25
- selector: 'tds-accordion',
26
- changeDetection: ChangeDetectionStrategy.OnPush,
27
- template: '<ng-content></ng-content>',
28
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
29
- inputs: ['hideLastBorder', 'modeVariant'],
30
- }]
31
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
32
- let TdsAccordionItem = class TdsAccordionItem {
33
- constructor(c, r, z) {
34
- this.z = z;
35
- c.detach();
36
- this.el = r.nativeElement;
37
- proxyOutputs(this, this.el, ['tdsToggle']);
38
- }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsAccordionItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsAccordionItem, selector: "tds-accordion-item", inputs: { ariaLevelValue: "ariaLevelValue", disabled: "disabled", expandIconPosition: "expandIconPosition", expanded: "expanded", header: "header", paddingReset: "paddingReset" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
- };
42
- TdsAccordionItem = __decorate([
43
- ProxyCmp({
44
- inputs: ['ariaLevelValue', 'disabled', 'expandIconPosition', 'expanded', 'header', 'paddingReset'],
45
- methods: ['toggleAccordionItem']
46
- })
47
- ], TdsAccordionItem);
48
- export { TdsAccordionItem };
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsAccordionItem, decorators: [{
50
- type: Component,
51
- args: [{
52
- selector: 'tds-accordion-item',
53
- changeDetection: ChangeDetectionStrategy.OnPush,
54
- template: '<ng-content></ng-content>',
55
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
56
- inputs: ['ariaLevelValue', 'disabled', 'expandIconPosition', 'expanded', 'header', 'paddingReset'],
57
- }]
58
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
59
- let TdsBadge = class TdsBadge {
60
- constructor(c, r, z) {
61
- this.z = z;
62
- c.detach();
63
- this.el = r.nativeElement;
64
- }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBadge, selector: "tds-badge", inputs: { hidden: "hidden", size: "size", tdsAriaLive: "tdsAriaLive", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
67
- };
68
- TdsBadge = __decorate([
69
- ProxyCmp({
70
- inputs: ['hidden', 'size', 'tdsAriaLive', 'value']
71
- })
72
- ], TdsBadge);
73
- export { TdsBadge };
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBadge, decorators: [{
75
- type: Component,
76
- args: [{
77
- selector: 'tds-badge',
78
- changeDetection: ChangeDetectionStrategy.OnPush,
79
- template: '<ng-content></ng-content>',
80
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
81
- inputs: ['hidden', 'size', 'tdsAriaLive', 'value'],
82
- }]
83
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
84
- let TdsBanner = class TdsBanner {
85
- constructor(c, r, z) {
86
- this.z = z;
87
- c.detach();
88
- this.el = r.nativeElement;
89
- proxyOutputs(this, this.el, ['tdsClose']);
90
- }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBanner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
92
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBanner, selector: "tds-banner", inputs: { bannerId: "bannerId", header: "header", hidden: "hidden", icon: "icon", roleType: "roleType", subheader: "subheader", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
- };
94
- TdsBanner = __decorate([
95
- ProxyCmp({
96
- inputs: ['bannerId', 'header', 'hidden', 'icon', 'roleType', 'subheader', 'variant'],
97
- methods: ['hideBanner', 'showBanner']
98
- })
99
- ], TdsBanner);
100
- export { TdsBanner };
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBanner, decorators: [{
102
- type: Component,
103
- args: [{
104
- selector: 'tds-banner',
105
- changeDetection: ChangeDetectionStrategy.OnPush,
106
- template: '<ng-content></ng-content>',
107
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
108
- inputs: ['bannerId', 'header', 'hidden', 'icon', 'roleType', 'subheader', 'variant'],
109
- }]
110
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
111
- let TdsBlock = class TdsBlock {
112
- constructor(c, r, z) {
113
- this.z = z;
114
- c.detach();
115
- this.el = r.nativeElement;
116
- }
117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBlock, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBlock, selector: "tds-block", inputs: { componentTag: "componentTag", modeVariant: "modeVariant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
119
- };
120
- TdsBlock = __decorate([
121
- ProxyCmp({
122
- inputs: ['componentTag', 'modeVariant']
123
- })
124
- ], TdsBlock);
125
- export { TdsBlock };
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBlock, decorators: [{
127
- type: Component,
128
- args: [{
129
- selector: 'tds-block',
130
- changeDetection: ChangeDetectionStrategy.OnPush,
131
- template: '<ng-content></ng-content>',
132
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
133
- inputs: ['componentTag', 'modeVariant'],
134
- }]
135
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
136
- let TdsBodyCell = class TdsBodyCell {
137
- constructor(c, r, z) {
138
- this.z = z;
139
- c.detach();
140
- this.el = r.nativeElement;
141
- }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBodyCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
143
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBodyCell, selector: "tds-body-cell", inputs: { cellKey: "cellKey", cellValue: "cellValue", disablePadding: "disablePadding", textAlign: "textAlign" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
144
- };
145
- TdsBodyCell = __decorate([
146
- ProxyCmp({
147
- inputs: ['cellKey', 'cellValue', 'disablePadding', 'textAlign']
148
- })
149
- ], TdsBodyCell);
150
- export { TdsBodyCell };
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBodyCell, decorators: [{
152
- type: Component,
153
- args: [{
154
- selector: 'tds-body-cell',
155
- changeDetection: ChangeDetectionStrategy.OnPush,
156
- template: '<ng-content></ng-content>',
157
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
158
- inputs: ['cellKey', 'cellValue', 'disablePadding', 'textAlign'],
159
- }]
160
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
161
- let TdsBreadcrumb = class TdsBreadcrumb {
162
- constructor(c, r, z) {
163
- this.z = z;
164
- c.detach();
165
- this.el = r.nativeElement;
166
- }
167
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBreadcrumb, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBreadcrumb, selector: "tds-breadcrumb", inputs: { current: "current" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
169
- };
170
- TdsBreadcrumb = __decorate([
171
- ProxyCmp({
172
- inputs: ['current']
173
- })
174
- ], TdsBreadcrumb);
175
- export { TdsBreadcrumb };
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBreadcrumb, decorators: [{
177
- type: Component,
178
- args: [{
179
- selector: 'tds-breadcrumb',
180
- changeDetection: ChangeDetectionStrategy.OnPush,
181
- template: '<ng-content></ng-content>',
182
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
183
- inputs: ['current'],
184
- }]
185
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
186
- let TdsBreadcrumbs = class TdsBreadcrumbs {
187
- constructor(c, r, z) {
188
- this.z = z;
189
- c.detach();
190
- this.el = r.nativeElement;
191
- }
192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBreadcrumbs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBreadcrumbs, selector: "tds-breadcrumbs", inputs: { tdsAriaLabel: "tdsAriaLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
194
- };
195
- TdsBreadcrumbs = __decorate([
196
- ProxyCmp({
197
- inputs: ['tdsAriaLabel']
198
- })
199
- ], TdsBreadcrumbs);
200
- export { TdsBreadcrumbs };
201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBreadcrumbs, decorators: [{
202
- type: Component,
203
- args: [{
204
- selector: 'tds-breadcrumbs',
205
- changeDetection: ChangeDetectionStrategy.OnPush,
206
- template: '<ng-content></ng-content>',
207
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
208
- inputs: ['tdsAriaLabel'],
209
- }]
210
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
211
- let TdsButton = class TdsButton {
212
- constructor(c, r, z) {
213
- this.z = z;
214
- c.detach();
215
- this.el = r.nativeElement;
216
- }
217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
218
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsButton, selector: "tds-button", inputs: { animation: "animation", disabled: "disabled", fullbleed: "fullbleed", modeVariant: "modeVariant", size: "size", tdsAriaLabel: "tdsAriaLabel", text: "text", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
219
- };
220
- TdsButton = __decorate([
221
- ProxyCmp({
222
- inputs: ['animation', 'disabled', 'fullbleed', 'modeVariant', 'size', 'tdsAriaLabel', 'text', 'type', 'variant']
223
- })
224
- ], TdsButton);
225
- export { TdsButton };
226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsButton, decorators: [{
227
- type: Component,
228
- args: [{
229
- selector: 'tds-button',
230
- changeDetection: ChangeDetectionStrategy.OnPush,
231
- template: '<ng-content></ng-content>',
232
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
233
- inputs: ['animation', 'disabled', 'fullbleed', 'modeVariant', 'size', 'tdsAriaLabel', 'text', 'type', 'variant'],
234
- }]
235
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
236
- let TdsCard = class TdsCard {
237
- constructor(c, r, z) {
238
- this.z = z;
239
- c.detach();
240
- this.el = r.nativeElement;
241
- proxyOutputs(this, this.el, ['tdsClick']);
242
- }
243
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
244
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsCard, selector: "tds-card", inputs: { bodyDivider: "bodyDivider", bodyImg: "bodyImg", bodyImgAlt: "bodyImgAlt", cardId: "cardId", clickable: "clickable", header: "header", imagePlacement: "imagePlacement", modeVariant: "modeVariant", stretch: "stretch", subheader: "subheader" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
245
- };
246
- TdsCard = __decorate([
247
- ProxyCmp({
248
- inputs: ['bodyDivider', 'bodyImg', 'bodyImgAlt', 'cardId', 'clickable', 'header', 'imagePlacement', 'modeVariant', 'stretch', 'subheader']
249
- })
250
- ], TdsCard);
251
- export { TdsCard };
252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCard, decorators: [{
253
- type: Component,
254
- args: [{
255
- selector: 'tds-card',
256
- changeDetection: ChangeDetectionStrategy.OnPush,
257
- template: '<ng-content></ng-content>',
258
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
259
- inputs: ['bodyDivider', 'bodyImg', 'bodyImgAlt', 'cardId', 'clickable', 'header', 'imagePlacement', 'modeVariant', 'stretch', 'subheader'],
260
- }]
261
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
262
- let TdsCheckbox = class TdsCheckbox {
263
- constructor(c, r, z) {
264
- this.z = z;
265
- c.detach();
266
- this.el = r.nativeElement;
267
- proxyOutputs(this, this.el, ['tdsChange', 'tdsFocus', 'tdsBlur']);
268
- }
269
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
270
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsCheckbox, selector: "tds-checkbox", inputs: { checkboxId: "checkboxId", checked: "checked", disabled: "disabled", indeterminate: "indeterminate", name: "name", required: "required", tdsAriaDescribedby: "tdsAriaDescribedby", tdsAriaLabel: "tdsAriaLabel", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
271
- };
272
- TdsCheckbox = __decorate([
273
- ProxyCmp({
274
- inputs: ['checkboxId', 'checked', 'disabled', 'indeterminate', 'name', 'required', 'tdsAriaDescribedby', 'tdsAriaLabel', 'value'],
275
- methods: ['toggleCheckbox']
276
- })
277
- ], TdsCheckbox);
278
- export { TdsCheckbox };
279
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCheckbox, decorators: [{
280
- type: Component,
281
- args: [{
282
- selector: 'tds-checkbox',
283
- changeDetection: ChangeDetectionStrategy.OnPush,
284
- template: '<ng-content></ng-content>',
285
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
286
- inputs: ['checkboxId', 'checked', 'disabled', 'indeterminate', 'name', 'required', 'tdsAriaDescribedby', 'tdsAriaLabel', 'value'],
287
- }]
288
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
289
- let TdsChip = class TdsChip {
290
- constructor(c, r, z) {
291
- this.z = z;
292
- c.detach();
293
- this.el = r.nativeElement;
294
- proxyOutputs(this, this.el, ['tdsChange', 'tdsClick']);
295
- }
296
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
297
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsChip, selector: "tds-chip", inputs: { checked: "checked", chipId: "chipId", disabled: "disabled", name: "name", size: "size", tdsAriaLabel: "tdsAriaLabel", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
298
- };
299
- TdsChip = __decorate([
300
- ProxyCmp({
301
- inputs: ['checked', 'chipId', 'disabled', 'name', 'size', 'tdsAriaLabel', 'type', 'value']
302
- })
303
- ], TdsChip);
304
- export { TdsChip };
305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsChip, decorators: [{
306
- type: Component,
307
- args: [{
308
- selector: 'tds-chip',
309
- changeDetection: ChangeDetectionStrategy.OnPush,
310
- template: '<ng-content></ng-content>',
311
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
312
- inputs: ['checked', 'chipId', 'disabled', 'name', 'size', 'tdsAriaLabel', 'type', 'value'],
313
- }]
314
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
315
- let TdsCoreHeaderItem = class TdsCoreHeaderItem {
316
- constructor(c, r, z) {
317
- this.z = z;
318
- c.detach();
319
- this.el = r.nativeElement;
320
- }
321
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCoreHeaderItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
322
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsCoreHeaderItem, selector: "tds-core-header-item", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
323
- };
324
- TdsCoreHeaderItem = __decorate([
325
- ProxyCmp({})
326
- ], TdsCoreHeaderItem);
327
- export { TdsCoreHeaderItem };
328
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCoreHeaderItem, decorators: [{
329
- type: Component,
330
- args: [{
331
- selector: 'tds-core-header-item',
332
- changeDetection: ChangeDetectionStrategy.OnPush,
333
- template: '<ng-content></ng-content>',
334
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
335
- inputs: [],
336
- }]
337
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
338
- let TdsDatetime = class TdsDatetime {
339
- constructor(c, r, z) {
340
- this.z = z;
341
- c.detach();
342
- this.el = r.nativeElement;
343
- proxyOutputs(this, this.el, ['tdsChange', 'tdsBlur', 'tdsFocus', 'tdsInput']);
344
- }
345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDatetime, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
346
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsDatetime, selector: "tds-datetime", inputs: { autofocus: "autofocus", defaultValue: "defaultValue", disabled: "disabled", helper: "helper", label: "label", max: "max", min: "min", modeVariant: "modeVariant", name: "name", noMinWidth: "noMinWidth", size: "size", state: "state", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
347
- };
348
- TdsDatetime = __decorate([
349
- ProxyCmp({
350
- inputs: ['autofocus', 'defaultValue', 'disabled', 'helper', 'label', 'max', 'min', 'modeVariant', 'name', 'noMinWidth', 'size', 'state', 'type', 'value'],
351
- methods: ['reset', 'setValue']
352
- })
353
- ], TdsDatetime);
354
- export { TdsDatetime };
355
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDatetime, decorators: [{
356
- type: Component,
357
- args: [{
358
- selector: 'tds-datetime',
359
- changeDetection: ChangeDetectionStrategy.OnPush,
360
- template: '<ng-content></ng-content>',
361
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
362
- inputs: ['autofocus', 'defaultValue', 'disabled', 'helper', 'label', 'max', 'min', 'modeVariant', 'name', 'noMinWidth', 'size', 'state', 'type', 'value'],
363
- }]
364
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
365
- let TdsDivider = class TdsDivider {
366
- constructor(c, r, z) {
367
- this.z = z;
368
- c.detach();
369
- this.el = r.nativeElement;
370
- }
371
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
372
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsDivider, selector: "tds-divider", inputs: { orientation: "orientation" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
373
- };
374
- TdsDivider = __decorate([
375
- ProxyCmp({
376
- inputs: ['orientation']
377
- })
378
- ], TdsDivider);
379
- export { TdsDivider };
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDivider, decorators: [{
381
- type: Component,
382
- args: [{
383
- selector: 'tds-divider',
384
- changeDetection: ChangeDetectionStrategy.OnPush,
385
- template: '<ng-content></ng-content>',
386
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
387
- inputs: ['orientation'],
388
- }]
389
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
390
- let TdsDropdown = class TdsDropdown {
391
- constructor(c, r, z) {
392
- this.z = z;
393
- c.detach();
394
- this.el = r.nativeElement;
395
- proxyOutputs(this, this.el, ['tdsChange', 'tdsFocus', 'tdsBlur', 'tdsInput']);
396
- }
397
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
398
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsDropdown, selector: "tds-dropdown", inputs: { animation: "animation", defaultValue: "defaultValue", disabled: "disabled", error: "error", filter: "filter", helper: "helper", label: "label", labelPosition: "labelPosition", modeVariant: "modeVariant", multiselect: "multiselect", name: "name", noResultText: "noResultText", normalizeText: "normalizeText", openDirection: "openDirection", placeholder: "placeholder", size: "size", tdsAriaLabel: "tdsAriaLabel", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
399
- };
400
- TdsDropdown = __decorate([
401
- ProxyCmp({
402
- inputs: ['animation', 'defaultValue', 'disabled', 'error', 'filter', 'helper', 'label', 'labelPosition', 'modeVariant', 'multiselect', 'name', 'noResultText', 'normalizeText', 'openDirection', 'placeholder', 'size', 'tdsAriaLabel', 'value'],
403
- methods: ['setValue', 'reset', 'removeValue', 'focusElement', 'close']
404
- })
405
- ], TdsDropdown);
406
- export { TdsDropdown };
407
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDropdown, decorators: [{
408
- type: Component,
409
- args: [{
410
- selector: 'tds-dropdown',
411
- changeDetection: ChangeDetectionStrategy.OnPush,
412
- template: '<ng-content></ng-content>',
413
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
414
- inputs: ['animation', 'defaultValue', 'disabled', 'error', 'filter', 'helper', 'label', 'labelPosition', 'modeVariant', 'multiselect', 'name', 'noResultText', 'normalizeText', 'openDirection', 'placeholder', 'size', 'tdsAriaLabel', 'value'],
415
- }]
416
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
417
- let TdsDropdownOption = class TdsDropdownOption {
418
- constructor(c, r, z) {
419
- this.z = z;
420
- c.detach();
421
- this.el = r.nativeElement;
422
- proxyOutputs(this, this.el, ['tdsSelect', 'tdsFocus', 'tdsBlur']);
423
- }
424
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDropdownOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
425
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsDropdownOption, selector: "tds-dropdown-option", inputs: { disabled: "disabled", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
426
- };
427
- TdsDropdownOption = __decorate([
428
- ProxyCmp({
429
- inputs: ['disabled', 'value'],
430
- methods: ['setSelected']
431
- })
432
- ], TdsDropdownOption);
433
- export { TdsDropdownOption };
434
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDropdownOption, decorators: [{
435
- type: Component,
436
- args: [{
437
- selector: 'tds-dropdown-option',
438
- changeDetection: ChangeDetectionStrategy.OnPush,
439
- template: '<ng-content></ng-content>',
440
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
441
- inputs: ['disabled', 'value'],
442
- }]
443
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
444
- let TdsFolderTab = class TdsFolderTab {
445
- constructor(c, r, z) {
446
- this.z = z;
447
- c.detach();
448
- this.el = r.nativeElement;
449
- }
450
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFolderTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
451
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsFolderTab, selector: "tds-folder-tab", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
452
- };
453
- TdsFolderTab = __decorate([
454
- ProxyCmp({
455
- inputs: ['disabled']
456
- })
457
- ], TdsFolderTab);
458
- export { TdsFolderTab };
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFolderTab, decorators: [{
460
- type: Component,
461
- args: [{
462
- selector: 'tds-folder-tab',
463
- changeDetection: ChangeDetectionStrategy.OnPush,
464
- template: '<ng-content></ng-content>',
465
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
466
- inputs: ['disabled'],
467
- }]
468
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
469
- let TdsFolderTabs = class TdsFolderTabs {
470
- constructor(c, r, z) {
471
- this.z = z;
472
- c.detach();
473
- this.el = r.nativeElement;
474
- proxyOutputs(this, this.el, ['tdsChange']);
475
- }
476
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFolderTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
477
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsFolderTabs, selector: "tds-folder-tabs", inputs: { defaultSelectedIndex: "defaultSelectedIndex", modeVariant: "modeVariant", selectedIndex: "selectedIndex", tdsScrollLeftAriaLabel: "tdsScrollLeftAriaLabel", tdsScrollRightAriaLabel: "tdsScrollRightAriaLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
478
- };
479
- TdsFolderTabs = __decorate([
480
- ProxyCmp({
481
- inputs: ['defaultSelectedIndex', 'modeVariant', 'selectedIndex', 'tdsScrollLeftAriaLabel', 'tdsScrollRightAriaLabel'],
482
- methods: ['selectTab', 'reinitialize']
483
- })
484
- ], TdsFolderTabs);
485
- export { TdsFolderTabs };
486
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFolderTabs, decorators: [{
487
- type: Component,
488
- args: [{
489
- selector: 'tds-folder-tabs',
490
- changeDetection: ChangeDetectionStrategy.OnPush,
491
- template: '<ng-content></ng-content>',
492
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
493
- inputs: ['defaultSelectedIndex', 'modeVariant', 'selectedIndex', 'tdsScrollLeftAriaLabel', 'tdsScrollRightAriaLabel'],
494
- }]
495
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
496
- let TdsFooter = class TdsFooter {
497
- constructor(c, r, z) {
498
- this.z = z;
499
- c.detach();
500
- this.el = r.nativeElement;
501
- }
502
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
503
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsFooter, selector: "tds-footer", inputs: { modeVariant: "modeVariant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
504
- };
505
- TdsFooter = __decorate([
506
- ProxyCmp({
507
- inputs: ['modeVariant']
508
- })
509
- ], TdsFooter);
510
- export { TdsFooter };
511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooter, decorators: [{
512
- type: Component,
513
- args: [{
514
- selector: 'tds-footer',
515
- changeDetection: ChangeDetectionStrategy.OnPush,
516
- template: '<ng-content></ng-content>',
517
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
518
- inputs: ['modeVariant'],
519
- }]
520
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
521
- let TdsFooterGroup = class TdsFooterGroup {
522
- constructor(c, r, z) {
523
- this.z = z;
524
- c.detach();
525
- this.el = r.nativeElement;
526
- }
527
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooterGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
528
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsFooterGroup, selector: "tds-footer-group", inputs: { tdsListAriaLabel: "tdsListAriaLabel", titleText: "titleText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
529
- };
530
- TdsFooterGroup = __decorate([
531
- ProxyCmp({
532
- inputs: ['tdsListAriaLabel', 'titleText']
533
- })
534
- ], TdsFooterGroup);
535
- export { TdsFooterGroup };
536
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooterGroup, decorators: [{
537
- type: Component,
538
- args: [{
539
- selector: 'tds-footer-group',
540
- changeDetection: ChangeDetectionStrategy.OnPush,
541
- template: '<ng-content></ng-content>',
542
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
543
- inputs: ['tdsListAriaLabel', 'titleText'],
544
- }]
545
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
546
- let TdsFooterItem = class TdsFooterItem {
547
- constructor(c, r, z) {
548
- this.z = z;
549
- c.detach();
550
- this.el = r.nativeElement;
551
- }
552
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooterItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
553
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsFooterItem, selector: "tds-footer-item", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
554
- };
555
- TdsFooterItem = __decorate([
556
- ProxyCmp({})
557
- ], TdsFooterItem);
558
- export { TdsFooterItem };
559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooterItem, decorators: [{
560
- type: Component,
561
- args: [{
562
- selector: 'tds-footer-item',
563
- changeDetection: ChangeDetectionStrategy.OnPush,
564
- template: '<ng-content></ng-content>',
565
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
566
- inputs: [],
567
- }]
568
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
569
- let TdsHeader = class TdsHeader {
570
- constructor(c, r, z) {
571
- this.z = z;
572
- c.detach();
573
- this.el = r.nativeElement;
574
- }
575
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
576
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeader, selector: "tds-header", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
577
- };
578
- TdsHeader = __decorate([
579
- ProxyCmp({})
580
- ], TdsHeader);
581
- export { TdsHeader };
582
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeader, decorators: [{
583
- type: Component,
584
- args: [{
585
- selector: 'tds-header',
586
- changeDetection: ChangeDetectionStrategy.OnPush,
587
- template: '<ng-content></ng-content>',
588
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
589
- inputs: [],
590
- }]
591
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
592
- let TdsHeaderBrandSymbol = class TdsHeaderBrandSymbol {
593
- constructor(c, r, z) {
594
- this.z = z;
595
- c.detach();
596
- this.el = r.nativeElement;
597
- }
598
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderBrandSymbol, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
599
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderBrandSymbol, selector: "tds-header-brand-symbol", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
600
- };
601
- TdsHeaderBrandSymbol = __decorate([
602
- ProxyCmp({})
603
- ], TdsHeaderBrandSymbol);
604
- export { TdsHeaderBrandSymbol };
605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderBrandSymbol, decorators: [{
606
- type: Component,
607
- args: [{
608
- selector: 'tds-header-brand-symbol',
609
- changeDetection: ChangeDetectionStrategy.OnPush,
610
- template: '<ng-content></ng-content>',
611
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
612
- inputs: [],
613
- }]
614
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
615
- let TdsHeaderCell = class TdsHeaderCell {
616
- constructor(c, r, z) {
617
- this.z = z;
618
- c.detach();
619
- this.el = r.nativeElement;
620
- proxyOutputs(this, this.el, ['tdsSort']);
621
- }
622
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
623
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderCell, selector: "tds-header-cell", inputs: { cellKey: "cellKey", cellValue: "cellValue", customWidth: "customWidth", disablePadding: "disablePadding", sortable: "sortable", textAlign: "textAlign" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
624
- };
625
- TdsHeaderCell = __decorate([
626
- ProxyCmp({
627
- inputs: ['cellKey', 'cellValue', 'customWidth', 'disablePadding', 'sortable', 'textAlign']
628
- })
629
- ], TdsHeaderCell);
630
- export { TdsHeaderCell };
631
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderCell, decorators: [{
632
- type: Component,
633
- args: [{
634
- selector: 'tds-header-cell',
635
- changeDetection: ChangeDetectionStrategy.OnPush,
636
- template: '<ng-content></ng-content>',
637
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
638
- inputs: ['cellKey', 'cellValue', 'customWidth', 'disablePadding', 'sortable', 'textAlign'],
639
- }]
640
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
641
- let TdsHeaderDropdown = class TdsHeaderDropdown {
642
- constructor(c, r, z) {
643
- this.z = z;
644
- c.detach();
645
- this.el = r.nativeElement;
646
- }
647
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
648
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderDropdown, selector: "tds-header-dropdown", inputs: { label: "label", noDropdownIcon: "noDropdownIcon", selected: "selected", tdsAriaLabel: "tdsAriaLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
649
- };
650
- TdsHeaderDropdown = __decorate([
651
- ProxyCmp({
652
- inputs: ['label', 'noDropdownIcon', 'selected', 'tdsAriaLabel']
653
- })
654
- ], TdsHeaderDropdown);
655
- export { TdsHeaderDropdown };
656
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdown, decorators: [{
657
- type: Component,
658
- args: [{
659
- selector: 'tds-header-dropdown',
660
- changeDetection: ChangeDetectionStrategy.OnPush,
661
- template: '<ng-content></ng-content>',
662
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
663
- inputs: ['label', 'noDropdownIcon', 'selected', 'tdsAriaLabel'],
664
- }]
665
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
666
- let TdsHeaderDropdownList = class TdsHeaderDropdownList {
667
- constructor(c, r, z) {
668
- this.z = z;
669
- c.detach();
670
- this.el = r.nativeElement;
671
- }
672
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
673
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderDropdownList, selector: "tds-header-dropdown-list", inputs: { size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
674
- };
675
- TdsHeaderDropdownList = __decorate([
676
- ProxyCmp({
677
- inputs: ['size']
678
- })
679
- ], TdsHeaderDropdownList);
680
- export { TdsHeaderDropdownList };
681
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownList, decorators: [{
682
- type: Component,
683
- args: [{
684
- selector: 'tds-header-dropdown-list',
685
- changeDetection: ChangeDetectionStrategy.OnPush,
686
- template: '<ng-content></ng-content>',
687
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
688
- inputs: ['size'],
689
- }]
690
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
691
- let TdsHeaderDropdownListItem = class TdsHeaderDropdownListItem {
692
- constructor(c, r, z) {
693
- this.z = z;
694
- c.detach();
695
- this.el = r.nativeElement;
696
- }
697
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
698
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderDropdownListItem, selector: "tds-header-dropdown-list-item", inputs: { selected: "selected", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
699
- };
700
- TdsHeaderDropdownListItem = __decorate([
701
- ProxyCmp({
702
- inputs: ['selected', 'size']
703
- })
704
- ], TdsHeaderDropdownListItem);
705
- export { TdsHeaderDropdownListItem };
706
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownListItem, decorators: [{
707
- type: Component,
708
- args: [{
709
- selector: 'tds-header-dropdown-list-item',
710
- changeDetection: ChangeDetectionStrategy.OnPush,
711
- template: '<ng-content></ng-content>',
712
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
713
- inputs: ['selected', 'size'],
714
- }]
715
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
716
- let TdsHeaderDropdownListUser = class TdsHeaderDropdownListUser {
717
- constructor(c, r, z) {
718
- this.z = z;
719
- c.detach();
720
- this.el = r.nativeElement;
721
- }
722
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownListUser, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
723
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderDropdownListUser, selector: "tds-header-dropdown-list-user", inputs: { header: "header", imgAlt: "imgAlt", imgUrl: "imgUrl", subheader: "subheader" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
724
- };
725
- TdsHeaderDropdownListUser = __decorate([
726
- ProxyCmp({
727
- inputs: ['header', 'imgAlt', 'imgUrl', 'subheader']
728
- })
729
- ], TdsHeaderDropdownListUser);
730
- export { TdsHeaderDropdownListUser };
731
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownListUser, decorators: [{
732
- type: Component,
733
- args: [{
734
- selector: 'tds-header-dropdown-list-user',
735
- changeDetection: ChangeDetectionStrategy.OnPush,
736
- template: '<ng-content></ng-content>',
737
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
738
- inputs: ['header', 'imgAlt', 'imgUrl', 'subheader'],
739
- }]
740
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
741
- let TdsHeaderHamburger = class TdsHeaderHamburger {
742
- constructor(c, r, z) {
743
- this.z = z;
744
- c.detach();
745
- this.el = r.nativeElement;
746
- }
747
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderHamburger, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
748
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderHamburger, selector: "tds-header-hamburger", inputs: { tdsAriaLabel: "tdsAriaLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
749
- };
750
- TdsHeaderHamburger = __decorate([
751
- ProxyCmp({
752
- inputs: ['tdsAriaLabel']
753
- })
754
- ], TdsHeaderHamburger);
755
- export { TdsHeaderHamburger };
756
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderHamburger, decorators: [{
757
- type: Component,
758
- args: [{
759
- selector: 'tds-header-hamburger',
760
- changeDetection: ChangeDetectionStrategy.OnPush,
761
- template: '<ng-content></ng-content>',
762
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
763
- inputs: ['tdsAriaLabel'],
764
- }]
765
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
766
- let TdsHeaderItem = class TdsHeaderItem {
767
- constructor(c, r, z) {
768
- this.z = z;
769
- c.detach();
770
- this.el = r.nativeElement;
771
- }
772
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
773
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderItem, selector: "tds-header-item", inputs: { active: "active", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
774
- };
775
- TdsHeaderItem = __decorate([
776
- ProxyCmp({
777
- inputs: ['active', 'selected']
778
- })
779
- ], TdsHeaderItem);
780
- export { TdsHeaderItem };
781
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderItem, decorators: [{
782
- type: Component,
783
- args: [{
784
- selector: 'tds-header-item',
785
- changeDetection: ChangeDetectionStrategy.OnPush,
786
- template: '<ng-content></ng-content>',
787
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
788
- inputs: ['active', 'selected'],
789
- }]
790
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
791
- let TdsHeaderLauncher = class TdsHeaderLauncher {
792
- constructor(c, r, z) {
793
- this.z = z;
794
- c.detach();
795
- this.el = r.nativeElement;
796
- }
797
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncher, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
798
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncher, selector: "tds-header-launcher", inputs: { tdsAriaLabel: "tdsAriaLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
799
- };
800
- TdsHeaderLauncher = __decorate([
801
- ProxyCmp({
802
- inputs: ['tdsAriaLabel']
803
- })
804
- ], TdsHeaderLauncher);
805
- export { TdsHeaderLauncher };
806
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncher, decorators: [{
807
- type: Component,
808
- args: [{
809
- selector: 'tds-header-launcher',
810
- changeDetection: ChangeDetectionStrategy.OnPush,
811
- template: '<ng-content></ng-content>',
812
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
813
- inputs: ['tdsAriaLabel'],
814
- }]
815
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
816
- let TdsHeaderLauncherButton = class TdsHeaderLauncherButton {
817
- constructor(c, r, z) {
818
- this.z = z;
819
- c.detach();
820
- this.el = r.nativeElement;
821
- }
822
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
823
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherButton, selector: "tds-header-launcher-button", inputs: { active: "active", tdsAriaLabel: "tdsAriaLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
824
- };
825
- TdsHeaderLauncherButton = __decorate([
826
- ProxyCmp({
827
- inputs: ['active', 'tdsAriaLabel']
828
- })
829
- ], TdsHeaderLauncherButton);
830
- export { TdsHeaderLauncherButton };
831
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherButton, decorators: [{
832
- type: Component,
833
- args: [{
834
- selector: 'tds-header-launcher-button',
835
- changeDetection: ChangeDetectionStrategy.OnPush,
836
- template: '<ng-content></ng-content>',
837
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
838
- inputs: ['active', 'tdsAriaLabel'],
839
- }]
840
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
841
- let TdsHeaderLauncherGrid = class TdsHeaderLauncherGrid {
842
- constructor(c, r, z) {
843
- this.z = z;
844
- c.detach();
845
- this.el = r.nativeElement;
846
- }
847
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
848
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherGrid, selector: "tds-header-launcher-grid", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
849
- };
850
- TdsHeaderLauncherGrid = __decorate([
851
- ProxyCmp({})
852
- ], TdsHeaderLauncherGrid);
853
- export { TdsHeaderLauncherGrid };
854
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGrid, decorators: [{
855
- type: Component,
856
- args: [{
857
- selector: 'tds-header-launcher-grid',
858
- changeDetection: ChangeDetectionStrategy.OnPush,
859
- template: '<ng-content></ng-content>',
860
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
861
- inputs: [],
862
- }]
863
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
864
- let TdsHeaderLauncherGridItem = class TdsHeaderLauncherGridItem {
865
- constructor(c, r, z) {
866
- this.z = z;
867
- c.detach();
868
- this.el = r.nativeElement;
869
- }
870
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGridItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
871
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherGridItem, selector: "tds-header-launcher-grid-item", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
872
- };
873
- TdsHeaderLauncherGridItem = __decorate([
874
- ProxyCmp({})
875
- ], TdsHeaderLauncherGridItem);
876
- export { TdsHeaderLauncherGridItem };
877
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGridItem, decorators: [{
878
- type: Component,
879
- args: [{
880
- selector: 'tds-header-launcher-grid-item',
881
- changeDetection: ChangeDetectionStrategy.OnPush,
882
- template: '<ng-content></ng-content>',
883
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
884
- inputs: [],
885
- }]
886
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
887
- let TdsHeaderLauncherGridTitle = class TdsHeaderLauncherGridTitle {
888
- constructor(c, r, z) {
889
- this.z = z;
890
- c.detach();
891
- this.el = r.nativeElement;
892
- }
893
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGridTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
894
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherGridTitle, selector: "tds-header-launcher-grid-title", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
895
- };
896
- TdsHeaderLauncherGridTitle = __decorate([
897
- ProxyCmp({})
898
- ], TdsHeaderLauncherGridTitle);
899
- export { TdsHeaderLauncherGridTitle };
900
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGridTitle, decorators: [{
901
- type: Component,
902
- args: [{
903
- selector: 'tds-header-launcher-grid-title',
904
- changeDetection: ChangeDetectionStrategy.OnPush,
905
- template: '<ng-content></ng-content>',
906
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
907
- inputs: [],
908
- }]
909
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
910
- let TdsHeaderLauncherList = class TdsHeaderLauncherList {
911
- constructor(c, r, z) {
912
- this.z = z;
913
- c.detach();
914
- this.el = r.nativeElement;
915
- }
916
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
917
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherList, selector: "tds-header-launcher-list", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
918
- };
919
- TdsHeaderLauncherList = __decorate([
920
- ProxyCmp({})
921
- ], TdsHeaderLauncherList);
922
- export { TdsHeaderLauncherList };
923
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherList, decorators: [{
924
- type: Component,
925
- args: [{
926
- selector: 'tds-header-launcher-list',
927
- changeDetection: ChangeDetectionStrategy.OnPush,
928
- template: '<ng-content></ng-content>',
929
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
930
- inputs: [],
931
- }]
932
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
933
- let TdsHeaderLauncherListItem = class TdsHeaderLauncherListItem {
934
- constructor(c, r, z) {
935
- this.z = z;
936
- c.detach();
937
- this.el = r.nativeElement;
938
- }
939
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
940
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherListItem, selector: "tds-header-launcher-list-item", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
941
- };
942
- TdsHeaderLauncherListItem = __decorate([
943
- ProxyCmp({})
944
- ], TdsHeaderLauncherListItem);
945
- export { TdsHeaderLauncherListItem };
946
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherListItem, decorators: [{
947
- type: Component,
948
- args: [{
949
- selector: 'tds-header-launcher-list-item',
950
- changeDetection: ChangeDetectionStrategy.OnPush,
951
- template: '<ng-content></ng-content>',
952
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
953
- inputs: [],
954
- }]
955
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
956
- let TdsHeaderLauncherListTitle = class TdsHeaderLauncherListTitle {
957
- constructor(c, r, z) {
958
- this.z = z;
959
- c.detach();
960
- this.el = r.nativeElement;
961
- }
962
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherListTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
963
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherListTitle, selector: "tds-header-launcher-list-title", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
964
- };
965
- TdsHeaderLauncherListTitle = __decorate([
966
- ProxyCmp({})
967
- ], TdsHeaderLauncherListTitle);
968
- export { TdsHeaderLauncherListTitle };
969
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherListTitle, decorators: [{
970
- type: Component,
971
- args: [{
972
- selector: 'tds-header-launcher-list-title',
973
- changeDetection: ChangeDetectionStrategy.OnPush,
974
- template: '<ng-content></ng-content>',
975
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
976
- inputs: [],
977
- }]
978
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
979
- let TdsHeaderTitle = class TdsHeaderTitle {
980
- constructor(c, r, z) {
981
- this.z = z;
982
- c.detach();
983
- this.el = r.nativeElement;
984
- }
985
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
986
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderTitle, selector: "tds-header-title", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
987
- };
988
- TdsHeaderTitle = __decorate([
989
- ProxyCmp({})
990
- ], TdsHeaderTitle);
991
- export { TdsHeaderTitle };
992
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderTitle, decorators: [{
993
- type: Component,
994
- args: [{
995
- selector: 'tds-header-title',
996
- changeDetection: ChangeDetectionStrategy.OnPush,
997
- template: '<ng-content></ng-content>',
998
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
999
- inputs: [],
1000
- }]
1001
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1002
- let TdsIcon = class TdsIcon {
1003
- constructor(c, r, z) {
1004
- this.z = z;
1005
- c.detach();
1006
- this.el = r.nativeElement;
1007
- }
1008
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1009
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsIcon, selector: "tds-icon", inputs: { name: "name", size: "size", svgDescription: "svgDescription", svgTitle: "svgTitle", tdsAriaHidden: "tdsAriaHidden" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1010
- };
1011
- TdsIcon = __decorate([
1012
- ProxyCmp({
1013
- inputs: ['name', 'size', 'svgDescription', 'svgTitle', 'tdsAriaHidden']
1014
- })
1015
- ], TdsIcon);
1016
- export { TdsIcon };
1017
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsIcon, decorators: [{
1018
- type: Component,
1019
- args: [{
1020
- selector: 'tds-icon',
1021
- changeDetection: ChangeDetectionStrategy.OnPush,
1022
- template: '<ng-content></ng-content>',
1023
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1024
- inputs: ['name', 'size', 'svgDescription', 'svgTitle', 'tdsAriaHidden'],
1025
- }]
1026
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1027
- let TdsInlineTab = class TdsInlineTab {
1028
- constructor(c, r, z) {
1029
- this.z = z;
1030
- c.detach();
1031
- this.el = r.nativeElement;
1032
- }
1033
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsInlineTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1034
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsInlineTab, selector: "tds-inline-tab", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1035
- };
1036
- TdsInlineTab = __decorate([
1037
- ProxyCmp({
1038
- inputs: ['disabled']
1039
- })
1040
- ], TdsInlineTab);
1041
- export { TdsInlineTab };
1042
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsInlineTab, decorators: [{
1043
- type: Component,
1044
- args: [{
1045
- selector: 'tds-inline-tab',
1046
- changeDetection: ChangeDetectionStrategy.OnPush,
1047
- template: '<ng-content></ng-content>',
1048
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1049
- inputs: ['disabled'],
1050
- }]
1051
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1052
- let TdsInlineTabs = class TdsInlineTabs {
1053
- constructor(c, r, z) {
1054
- this.z = z;
1055
- c.detach();
1056
- this.el = r.nativeElement;
1057
- proxyOutputs(this, this.el, ['tdsChange']);
1058
- }
1059
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsInlineTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1060
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsInlineTabs, selector: "tds-inline-tabs", inputs: { defaultSelectedIndex: "defaultSelectedIndex", leftPadding: "leftPadding", modeVariant: "modeVariant", selectedIndex: "selectedIndex", tdsScrollLeftAriaLabel: "tdsScrollLeftAriaLabel", tdsScrollRightAriaLabel: "tdsScrollRightAriaLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1061
- };
1062
- TdsInlineTabs = __decorate([
1063
- ProxyCmp({
1064
- inputs: ['defaultSelectedIndex', 'leftPadding', 'modeVariant', 'selectedIndex', 'tdsScrollLeftAriaLabel', 'tdsScrollRightAriaLabel'],
1065
- methods: ['selectTab', 'reinitialize']
1066
- })
1067
- ], TdsInlineTabs);
1068
- export { TdsInlineTabs };
1069
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsInlineTabs, decorators: [{
1070
- type: Component,
1071
- args: [{
1072
- selector: 'tds-inline-tabs',
1073
- changeDetection: ChangeDetectionStrategy.OnPush,
1074
- template: '<ng-content></ng-content>',
1075
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1076
- inputs: ['defaultSelectedIndex', 'leftPadding', 'modeVariant', 'selectedIndex', 'tdsScrollLeftAriaLabel', 'tdsScrollRightAriaLabel'],
1077
- }]
1078
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1079
- let TdsLink = class TdsLink {
1080
- constructor(c, r, z) {
1081
- this.z = z;
1082
- c.detach();
1083
- this.el = r.nativeElement;
1084
- }
1085
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsLink, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1086
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsLink, selector: "tds-link", inputs: { disabled: "disabled", standalone: "standalone", underline: "underline" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1087
- };
1088
- TdsLink = __decorate([
1089
- ProxyCmp({
1090
- inputs: ['disabled', 'standalone', 'underline']
1091
- })
1092
- ], TdsLink);
1093
- export { TdsLink };
1094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsLink, decorators: [{
1095
- type: Component,
1096
- args: [{
1097
- selector: 'tds-link',
1098
- changeDetection: ChangeDetectionStrategy.OnPush,
1099
- template: '<ng-content></ng-content>',
1100
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1101
- inputs: ['disabled', 'standalone', 'underline'],
1102
- }]
1103
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1104
- let TdsMessage = class TdsMessage {
1105
- constructor(c, r, z) {
1106
- this.z = z;
1107
- c.detach();
1108
- this.el = r.nativeElement;
1109
- }
1110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsMessage, selector: "tds-message", inputs: { header: "header", minimal: "minimal", modeVariant: "modeVariant", noIcon: "noIcon", tdsAlertDialog: "tdsAlertDialog", tdsAriaLabel: "tdsAriaLabel", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1112
- };
1113
- TdsMessage = __decorate([
1114
- ProxyCmp({
1115
- inputs: ['header', 'minimal', 'modeVariant', 'noIcon', 'tdsAlertDialog', 'tdsAriaLabel', 'variant']
1116
- })
1117
- ], TdsMessage);
1118
- export { TdsMessage };
1119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsMessage, decorators: [{
1120
- type: Component,
1121
- args: [{
1122
- selector: 'tds-message',
1123
- changeDetection: ChangeDetectionStrategy.OnPush,
1124
- template: '<ng-content></ng-content>',
1125
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1126
- inputs: ['header', 'minimal', 'modeVariant', 'noIcon', 'tdsAlertDialog', 'tdsAriaLabel', 'variant'],
1127
- }]
1128
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1129
- let TdsModal = class TdsModal {
1130
- constructor(c, r, z) {
1131
- this.z = z;
1132
- c.detach();
1133
- this.el = r.nativeElement;
1134
- proxyOutputs(this, this.el, ['tdsClose']);
1135
- }
1136
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1137
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsModal, selector: "tds-modal", inputs: { actionsPosition: "actionsPosition", closable: "closable", header: "header", prevent: "prevent", referenceEl: "referenceEl", selector: "selector", show: "show", size: "size", tdsAlertDialog: "tdsAlertDialog" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1138
- };
1139
- TdsModal = __decorate([
1140
- ProxyCmp({
1141
- inputs: ['actionsPosition', 'closable', 'header', 'prevent', 'referenceEl', 'selector', 'show', 'size', 'tdsAlertDialog'],
1142
- methods: ['showModal', 'closeModal', 'initializeModal', 'cleanupModal']
1143
- })
1144
- ], TdsModal);
1145
- export { TdsModal };
1146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsModal, decorators: [{
1147
- type: Component,
1148
- args: [{
1149
- selector: 'tds-modal',
1150
- changeDetection: ChangeDetectionStrategy.OnPush,
1151
- template: '<ng-content></ng-content>',
1152
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1153
- inputs: ['actionsPosition', 'closable', 'header', 'prevent', 'referenceEl', 'selector', 'show', 'size', 'tdsAlertDialog'],
1154
- }]
1155
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1156
- let TdsNavigationTab = class TdsNavigationTab {
1157
- constructor(c, r, z) {
1158
- this.z = z;
1159
- c.detach();
1160
- this.el = r.nativeElement;
1161
- }
1162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsNavigationTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1163
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsNavigationTab, selector: "tds-navigation-tab", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1164
- };
1165
- TdsNavigationTab = __decorate([
1166
- ProxyCmp({
1167
- inputs: ['disabled']
1168
- })
1169
- ], TdsNavigationTab);
1170
- export { TdsNavigationTab };
1171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsNavigationTab, decorators: [{
1172
- type: Component,
1173
- args: [{
1174
- selector: 'tds-navigation-tab',
1175
- changeDetection: ChangeDetectionStrategy.OnPush,
1176
- template: '<ng-content></ng-content>',
1177
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1178
- inputs: ['disabled'],
1179
- }]
1180
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1181
- let TdsNavigationTabs = class TdsNavigationTabs {
1182
- constructor(c, r, z) {
1183
- this.z = z;
1184
- c.detach();
1185
- this.el = r.nativeElement;
1186
- proxyOutputs(this, this.el, ['tdsChange']);
1187
- }
1188
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsNavigationTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1189
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsNavigationTabs, selector: "tds-navigation-tabs", inputs: { defaultSelectedIndex: "defaultSelectedIndex", leftPadding: "leftPadding", modeVariant: "modeVariant", selectedIndex: "selectedIndex", tdsScrollLeftAriaLabel: "tdsScrollLeftAriaLabel", tdsScrollRightAriaLabel: "tdsScrollRightAriaLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1190
- };
1191
- TdsNavigationTabs = __decorate([
1192
- ProxyCmp({
1193
- inputs: ['defaultSelectedIndex', 'leftPadding', 'modeVariant', 'selectedIndex', 'tdsScrollLeftAriaLabel', 'tdsScrollRightAriaLabel'],
1194
- methods: ['selectTab', 'reinitialize']
1195
- })
1196
- ], TdsNavigationTabs);
1197
- export { TdsNavigationTabs };
1198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsNavigationTabs, decorators: [{
1199
- type: Component,
1200
- args: [{
1201
- selector: 'tds-navigation-tabs',
1202
- changeDetection: ChangeDetectionStrategy.OnPush,
1203
- template: '<ng-content></ng-content>',
1204
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1205
- inputs: ['defaultSelectedIndex', 'leftPadding', 'modeVariant', 'selectedIndex', 'tdsScrollLeftAriaLabel', 'tdsScrollRightAriaLabel'],
1206
- }]
1207
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1208
- let TdsPopoverCanvas = class TdsPopoverCanvas {
1209
- constructor(c, r, z) {
1210
- this.z = z;
1211
- c.detach();
1212
- this.el = r.nativeElement;
1213
- }
1214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverCanvas, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1215
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsPopoverCanvas, selector: "tds-popover-canvas", inputs: { animation: "animation", defaultShow: "defaultShow", modifiers: "modifiers", offsetDistance: "offsetDistance", offsetSkidding: "offsetSkidding", placement: "placement", referenceEl: "referenceEl", selector: "selector", show: "show", tdsAlertDialog: "tdsAlertDialog" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1216
- };
1217
- TdsPopoverCanvas = __decorate([
1218
- ProxyCmp({
1219
- inputs: ['animation', 'defaultShow', 'modifiers', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show', 'tdsAlertDialog'],
1220
- methods: ['close']
1221
- })
1222
- ], TdsPopoverCanvas);
1223
- export { TdsPopoverCanvas };
1224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverCanvas, decorators: [{
1225
- type: Component,
1226
- args: [{
1227
- selector: 'tds-popover-canvas',
1228
- changeDetection: ChangeDetectionStrategy.OnPush,
1229
- template: '<ng-content></ng-content>',
1230
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1231
- inputs: ['animation', 'defaultShow', 'modifiers', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show', 'tdsAlertDialog'],
1232
- }]
1233
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1234
- let TdsPopoverCore = class TdsPopoverCore {
1235
- constructor(c, r, z) {
1236
- this.z = z;
1237
- c.detach();
1238
- this.el = r.nativeElement;
1239
- }
1240
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverCore, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1241
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsPopoverCore, selector: "tds-popover-core", inputs: { animation: "animation", autoHide: "autoHide", defaultShow: "defaultShow", modifiers: "modifiers", offsetDistance: "offsetDistance", offsetSkidding: "offsetSkidding", placement: "placement", referenceEl: "referenceEl", selector: "selector", show: "show", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1242
- };
1243
- TdsPopoverCore = __decorate([
1244
- ProxyCmp({
1245
- inputs: ['animation', 'autoHide', 'defaultShow', 'modifiers', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show', 'trigger'],
1246
- methods: ['close']
1247
- })
1248
- ], TdsPopoverCore);
1249
- export { TdsPopoverCore };
1250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverCore, decorators: [{
1251
- type: Component,
1252
- args: [{
1253
- selector: 'tds-popover-core',
1254
- changeDetection: ChangeDetectionStrategy.OnPush,
1255
- template: '<ng-content></ng-content>',
1256
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1257
- inputs: ['animation', 'autoHide', 'defaultShow', 'modifiers', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show', 'trigger'],
1258
- }]
1259
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1260
- let TdsPopoverMenu = class TdsPopoverMenu {
1261
- constructor(c, r, z) {
1262
- this.z = z;
1263
- c.detach();
1264
- this.el = r.nativeElement;
1265
- }
1266
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1267
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsPopoverMenu, selector: "tds-popover-menu", inputs: { animation: "animation", defaultShow: "defaultShow", fluidWidth: "fluidWidth", offsetDistance: "offsetDistance", offsetSkidding: "offsetSkidding", placement: "placement", referenceEl: "referenceEl", selector: "selector", show: "show" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1268
- };
1269
- TdsPopoverMenu = __decorate([
1270
- ProxyCmp({
1271
- inputs: ['animation', 'defaultShow', 'fluidWidth', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show'],
1272
- methods: ['close']
1273
- })
1274
- ], TdsPopoverMenu);
1275
- export { TdsPopoverMenu };
1276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverMenu, decorators: [{
1277
- type: Component,
1278
- args: [{
1279
- selector: 'tds-popover-menu',
1280
- changeDetection: ChangeDetectionStrategy.OnPush,
1281
- template: '<ng-content></ng-content>',
1282
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1283
- inputs: ['animation', 'defaultShow', 'fluidWidth', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show'],
1284
- }]
1285
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1286
- let TdsPopoverMenuItem = class TdsPopoverMenuItem {
1287
- constructor(c, r, z) {
1288
- this.z = z;
1289
- c.detach();
1290
- this.el = r.nativeElement;
1291
- }
1292
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1293
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsPopoverMenuItem, selector: "tds-popover-menu-item", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1294
- };
1295
- TdsPopoverMenuItem = __decorate([
1296
- ProxyCmp({
1297
- inputs: ['disabled']
1298
- })
1299
- ], TdsPopoverMenuItem);
1300
- export { TdsPopoverMenuItem };
1301
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverMenuItem, decorators: [{
1302
- type: Component,
1303
- args: [{
1304
- selector: 'tds-popover-menu-item',
1305
- changeDetection: ChangeDetectionStrategy.OnPush,
1306
- template: '<ng-content></ng-content>',
1307
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1308
- inputs: ['disabled'],
1309
- }]
1310
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1311
- let TdsRadioButton = class TdsRadioButton {
1312
- constructor(c, r, z) {
1313
- this.z = z;
1314
- c.detach();
1315
- this.el = r.nativeElement;
1316
- proxyOutputs(this, this.el, ['tdsChange']);
1317
- }
1318
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsRadioButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1319
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsRadioButton, selector: "tds-radio-button", inputs: { checked: "checked", disabled: "disabled", name: "name", radioId: "radioId", required: "required", tdsAriaLabel: "tdsAriaLabel", tdsTabIndex: "tdsTabIndex", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1320
- };
1321
- TdsRadioButton = __decorate([
1322
- ProxyCmp({
1323
- inputs: ['checked', 'disabled', 'name', 'radioId', 'required', 'tdsAriaLabel', 'tdsTabIndex', 'value']
1324
- })
1325
- ], TdsRadioButton);
1326
- export { TdsRadioButton };
1327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsRadioButton, decorators: [{
1328
- type: Component,
1329
- args: [{
1330
- selector: 'tds-radio-button',
1331
- changeDetection: ChangeDetectionStrategy.OnPush,
1332
- template: '<ng-content></ng-content>',
1333
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1334
- inputs: ['checked', 'disabled', 'name', 'radioId', 'required', 'tdsAriaLabel', 'tdsTabIndex', 'value'],
1335
- }]
1336
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1337
- let TdsSideMenu = class TdsSideMenu {
1338
- constructor(c, r, z) {
1339
- this.z = z;
1340
- c.detach();
1341
- this.el = r.nativeElement;
1342
- proxyOutputs(this, this.el, ['tdsCollapse']);
1343
- }
1344
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1345
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenu, selector: "tds-side-menu", inputs: { collapsed: "collapsed", open: "open", persistent: "persistent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1346
- };
1347
- TdsSideMenu = __decorate([
1348
- ProxyCmp({
1349
- inputs: ['collapsed', 'open', 'persistent']
1350
- })
1351
- ], TdsSideMenu);
1352
- export { TdsSideMenu };
1353
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenu, decorators: [{
1354
- type: Component,
1355
- args: [{
1356
- selector: 'tds-side-menu',
1357
- changeDetection: ChangeDetectionStrategy.OnPush,
1358
- template: '<ng-content></ng-content>',
1359
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1360
- inputs: ['collapsed', 'open', 'persistent'],
1361
- }]
1362
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1363
- let TdsSideMenuCloseButton = class TdsSideMenuCloseButton {
1364
- constructor(c, r, z) {
1365
- this.z = z;
1366
- c.detach();
1367
- this.el = r.nativeElement;
1368
- }
1369
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuCloseButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1370
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuCloseButton, selector: "tds-side-menu-close-button", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1371
- };
1372
- TdsSideMenuCloseButton = __decorate([
1373
- ProxyCmp({})
1374
- ], TdsSideMenuCloseButton);
1375
- export { TdsSideMenuCloseButton };
1376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuCloseButton, decorators: [{
1377
- type: Component,
1378
- args: [{
1379
- selector: 'tds-side-menu-close-button',
1380
- changeDetection: ChangeDetectionStrategy.OnPush,
1381
- template: '<ng-content></ng-content>',
1382
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1383
- inputs: [],
1384
- }]
1385
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1386
- let TdsSideMenuCollapseButton = class TdsSideMenuCollapseButton {
1387
- constructor(c, r, z) {
1388
- this.z = z;
1389
- c.detach();
1390
- this.el = r.nativeElement;
1391
- proxyOutputs(this, this.el, ['tdsCollapse']);
1392
- }
1393
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuCollapseButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1394
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuCollapseButton, selector: "tds-side-menu-collapse-button", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1395
- };
1396
- TdsSideMenuCollapseButton = __decorate([
1397
- ProxyCmp({})
1398
- ], TdsSideMenuCollapseButton);
1399
- export { TdsSideMenuCollapseButton };
1400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuCollapseButton, decorators: [{
1401
- type: Component,
1402
- args: [{
1403
- selector: 'tds-side-menu-collapse-button',
1404
- changeDetection: ChangeDetectionStrategy.OnPush,
1405
- template: '<ng-content></ng-content>',
1406
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1407
- inputs: [],
1408
- }]
1409
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1410
- let TdsSideMenuDropdown = class TdsSideMenuDropdown {
1411
- constructor(c, r, z) {
1412
- this.z = z;
1413
- c.detach();
1414
- this.el = r.nativeElement;
1415
- }
1416
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1417
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuDropdown, selector: "tds-side-menu-dropdown", inputs: { buttonLabel: "buttonLabel", defaultOpen: "defaultOpen", open: "open", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1418
- };
1419
- TdsSideMenuDropdown = __decorate([
1420
- ProxyCmp({
1421
- inputs: ['buttonLabel', 'defaultOpen', 'open', 'selected']
1422
- })
1423
- ], TdsSideMenuDropdown);
1424
- export { TdsSideMenuDropdown };
1425
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdown, decorators: [{
1426
- type: Component,
1427
- args: [{
1428
- selector: 'tds-side-menu-dropdown',
1429
- changeDetection: ChangeDetectionStrategy.OnPush,
1430
- template: '<ng-content></ng-content>',
1431
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1432
- inputs: ['buttonLabel', 'defaultOpen', 'open', 'selected'],
1433
- }]
1434
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1435
- let TdsSideMenuDropdownList = class TdsSideMenuDropdownList {
1436
- constructor(c, r, z) {
1437
- this.z = z;
1438
- c.detach();
1439
- this.el = r.nativeElement;
1440
- }
1441
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdownList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1442
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuDropdownList, selector: "tds-side-menu-dropdown-list", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1443
- };
1444
- TdsSideMenuDropdownList = __decorate([
1445
- ProxyCmp({})
1446
- ], TdsSideMenuDropdownList);
1447
- export { TdsSideMenuDropdownList };
1448
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdownList, decorators: [{
1449
- type: Component,
1450
- args: [{
1451
- selector: 'tds-side-menu-dropdown-list',
1452
- changeDetection: ChangeDetectionStrategy.OnPush,
1453
- template: '<ng-content></ng-content>',
1454
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1455
- inputs: [],
1456
- }]
1457
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1458
- let TdsSideMenuDropdownListItem = class TdsSideMenuDropdownListItem {
1459
- constructor(c, r, z) {
1460
- this.z = z;
1461
- c.detach();
1462
- this.el = r.nativeElement;
1463
- }
1464
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdownListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1465
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuDropdownListItem, selector: "tds-side-menu-dropdown-list-item", inputs: { selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1466
- };
1467
- TdsSideMenuDropdownListItem = __decorate([
1468
- ProxyCmp({
1469
- inputs: ['selected']
1470
- })
1471
- ], TdsSideMenuDropdownListItem);
1472
- export { TdsSideMenuDropdownListItem };
1473
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdownListItem, decorators: [{
1474
- type: Component,
1475
- args: [{
1476
- selector: 'tds-side-menu-dropdown-list-item',
1477
- changeDetection: ChangeDetectionStrategy.OnPush,
1478
- template: '<ng-content></ng-content>',
1479
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1480
- inputs: ['selected'],
1481
- }]
1482
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1483
- let TdsSideMenuItem = class TdsSideMenuItem {
1484
- constructor(c, r, z) {
1485
- this.z = z;
1486
- c.detach();
1487
- this.el = r.nativeElement;
1488
- }
1489
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1490
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuItem, selector: "tds-side-menu-item", inputs: { active: "active", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1491
- };
1492
- TdsSideMenuItem = __decorate([
1493
- ProxyCmp({
1494
- inputs: ['active', 'selected']
1495
- })
1496
- ], TdsSideMenuItem);
1497
- export { TdsSideMenuItem };
1498
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuItem, decorators: [{
1499
- type: Component,
1500
- args: [{
1501
- selector: 'tds-side-menu-item',
1502
- changeDetection: ChangeDetectionStrategy.OnPush,
1503
- template: '<ng-content></ng-content>',
1504
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1505
- inputs: ['active', 'selected'],
1506
- }]
1507
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1508
- let TdsSideMenuOverlay = class TdsSideMenuOverlay {
1509
- constructor(c, r, z) {
1510
- this.z = z;
1511
- c.detach();
1512
- this.el = r.nativeElement;
1513
- }
1514
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuOverlay, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1515
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuOverlay, selector: "tds-side-menu-overlay", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1516
- };
1517
- TdsSideMenuOverlay = __decorate([
1518
- ProxyCmp({})
1519
- ], TdsSideMenuOverlay);
1520
- export { TdsSideMenuOverlay };
1521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuOverlay, decorators: [{
1522
- type: Component,
1523
- args: [{
1524
- selector: 'tds-side-menu-overlay',
1525
- changeDetection: ChangeDetectionStrategy.OnPush,
1526
- template: '<ng-content></ng-content>',
1527
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1528
- inputs: [],
1529
- }]
1530
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1531
- let TdsSideMenuUser = class TdsSideMenuUser {
1532
- constructor(c, r, z) {
1533
- this.z = z;
1534
- c.detach();
1535
- this.el = r.nativeElement;
1536
- }
1537
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUser, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1538
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuUser, selector: "tds-side-menu-user", inputs: { heading: "heading", imgAlt: "imgAlt", imgSrc: "imgSrc", subheading: "subheading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1539
- };
1540
- TdsSideMenuUser = __decorate([
1541
- ProxyCmp({
1542
- inputs: ['heading', 'imgAlt', 'imgSrc', 'subheading']
1543
- })
1544
- ], TdsSideMenuUser);
1545
- export { TdsSideMenuUser };
1546
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUser, decorators: [{
1547
- type: Component,
1548
- args: [{
1549
- selector: 'tds-side-menu-user',
1550
- changeDetection: ChangeDetectionStrategy.OnPush,
1551
- template: '<ng-content></ng-content>',
1552
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1553
- inputs: ['heading', 'imgAlt', 'imgSrc', 'subheading'],
1554
- }]
1555
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1556
- let TdsSideMenuUserImage = class TdsSideMenuUserImage {
1557
- constructor(c, r, z) {
1558
- this.z = z;
1559
- c.detach();
1560
- this.el = r.nativeElement;
1561
- }
1562
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUserImage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1563
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuUserImage, selector: "tds-side-menu-user-image", inputs: { alt: "alt", src: "src" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1564
- };
1565
- TdsSideMenuUserImage = __decorate([
1566
- ProxyCmp({
1567
- inputs: ['alt', 'src']
1568
- })
1569
- ], TdsSideMenuUserImage);
1570
- export { TdsSideMenuUserImage };
1571
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUserImage, decorators: [{
1572
- type: Component,
1573
- args: [{
1574
- selector: 'tds-side-menu-user-image',
1575
- changeDetection: ChangeDetectionStrategy.OnPush,
1576
- template: '<ng-content></ng-content>',
1577
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1578
- inputs: ['alt', 'src'],
1579
- }]
1580
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1581
- let TdsSideMenuUserLabel = class TdsSideMenuUserLabel {
1582
- constructor(c, r, z) {
1583
- this.z = z;
1584
- c.detach();
1585
- this.el = r.nativeElement;
1586
- }
1587
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUserLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1588
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuUserLabel, selector: "tds-side-menu-user-label", inputs: { heading: "heading", subheading: "subheading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1589
- };
1590
- TdsSideMenuUserLabel = __decorate([
1591
- ProxyCmp({
1592
- inputs: ['heading', 'subheading']
1593
- })
1594
- ], TdsSideMenuUserLabel);
1595
- export { TdsSideMenuUserLabel };
1596
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUserLabel, decorators: [{
1597
- type: Component,
1598
- args: [{
1599
- selector: 'tds-side-menu-user-label',
1600
- changeDetection: ChangeDetectionStrategy.OnPush,
1601
- template: '<ng-content></ng-content>',
1602
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1603
- inputs: ['heading', 'subheading'],
1604
- }]
1605
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1606
- let TdsSlider = class TdsSlider {
1607
- constructor(c, r, z) {
1608
- this.z = z;
1609
- c.detach();
1610
- this.el = r.nativeElement;
1611
- proxyOutputs(this, this.el, ['tdsChange', 'tdsInput']);
1612
- }
1613
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSlider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1614
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSlider, selector: "tds-slider", inputs: { controls: "controls", disabled: "disabled", input: "input", label: "label", max: "max", min: "min", name: "name", readOnly: "readOnly", showTickNumbers: "showTickNumbers", sliderId: "sliderId", snap: "snap", step: "step", thumbSize: "thumbSize", ticks: "ticks", tooltip: "tooltip", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1615
- };
1616
- TdsSlider = __decorate([
1617
- ProxyCmp({
1618
- inputs: ['controls', 'disabled', 'input', 'label', 'max', 'min', 'name', 'readOnly', 'showTickNumbers', 'sliderId', 'snap', 'step', 'thumbSize', 'ticks', 'tooltip', 'value'],
1619
- methods: ['reset']
1620
- })
1621
- ], TdsSlider);
1622
- export { TdsSlider };
1623
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSlider, decorators: [{
1624
- type: Component,
1625
- args: [{
1626
- selector: 'tds-slider',
1627
- changeDetection: ChangeDetectionStrategy.OnPush,
1628
- template: '<ng-content></ng-content>',
1629
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1630
- inputs: ['controls', 'disabled', 'input', 'label', 'max', 'min', 'name', 'readOnly', 'showTickNumbers', 'sliderId', 'snap', 'step', 'thumbSize', 'ticks', 'tooltip', 'value'],
1631
- }]
1632
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1633
- let TdsSpinner = class TdsSpinner {
1634
- constructor(c, r, z) {
1635
- this.z = z;
1636
- c.detach();
1637
- this.el = r.nativeElement;
1638
- }
1639
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1640
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSpinner, selector: "tds-spinner", inputs: { size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1641
- };
1642
- TdsSpinner = __decorate([
1643
- ProxyCmp({
1644
- inputs: ['size', 'variant']
1645
- })
1646
- ], TdsSpinner);
1647
- export { TdsSpinner };
1648
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSpinner, decorators: [{
1649
- type: Component,
1650
- args: [{
1651
- selector: 'tds-spinner',
1652
- changeDetection: ChangeDetectionStrategy.OnPush,
1653
- template: '<ng-content></ng-content>',
1654
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1655
- inputs: ['size', 'variant'],
1656
- }]
1657
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1658
- let TdsStep = class TdsStep {
1659
- constructor(c, r, z) {
1660
- this.z = z;
1661
- c.detach();
1662
- this.el = r.nativeElement;
1663
- }
1664
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsStep, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1665
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsStep, selector: "tds-step", inputs: { index: "index", state: "state", tdsAriaCurrent: "tdsAriaCurrent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1666
- };
1667
- TdsStep = __decorate([
1668
- ProxyCmp({
1669
- inputs: ['index', 'state', 'tdsAriaCurrent']
1670
- })
1671
- ], TdsStep);
1672
- export { TdsStep };
1673
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsStep, decorators: [{
1674
- type: Component,
1675
- args: [{
1676
- selector: 'tds-step',
1677
- changeDetection: ChangeDetectionStrategy.OnPush,
1678
- template: '<ng-content></ng-content>',
1679
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1680
- inputs: ['index', 'state', 'tdsAriaCurrent'],
1681
- }]
1682
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1683
- let TdsStepper = class TdsStepper {
1684
- constructor(c, r, z) {
1685
- this.z = z;
1686
- c.detach();
1687
- this.el = r.nativeElement;
1688
- }
1689
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsStepper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1690
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsStepper, selector: "tds-stepper", inputs: { ariaLabel: "ariaLabel", hideLabels: "hideLabels", labelPosition: "labelPosition", orientation: "orientation", size: "size", stepperId: "stepperId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1691
- };
1692
- TdsStepper = __decorate([
1693
- ProxyCmp({
1694
- inputs: ['ariaLabel', 'hideLabels', 'labelPosition', 'orientation', 'size', 'stepperId']
1695
- })
1696
- ], TdsStepper);
1697
- export { TdsStepper };
1698
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsStepper, decorators: [{
1699
- type: Component,
1700
- args: [{
1701
- selector: 'tds-stepper',
1702
- changeDetection: ChangeDetectionStrategy.OnPush,
1703
- template: '<ng-content></ng-content>',
1704
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1705
- inputs: ['ariaLabel', 'hideLabels', 'labelPosition', 'orientation', 'size', 'stepperId'],
1706
- }]
1707
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1708
- let TdsTable = class TdsTable {
1709
- constructor(c, r, z) {
1710
- this.z = z;
1711
- c.detach();
1712
- this.el = r.nativeElement;
1713
- }
1714
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1715
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTable, selector: "tds-table", inputs: { compactDesign: "compactDesign", expandableRows: "expandableRows", horizontalScrollWidth: "horizontalScrollWidth", modeVariant: "modeVariant", multiselect: "multiselect", noMinWidth: "noMinWidth", responsive: "responsive", tableId: "tableId", verticalDividers: "verticalDividers", zebraMode: "zebraMode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1716
- };
1717
- TdsTable = __decorate([
1718
- ProxyCmp({
1719
- inputs: ['compactDesign', 'expandableRows', 'horizontalScrollWidth', 'modeVariant', 'multiselect', 'noMinWidth', 'responsive', 'tableId', 'verticalDividers', 'zebraMode'],
1720
- methods: ['getSelectedRows']
1721
- })
1722
- ], TdsTable);
1723
- export { TdsTable };
1724
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTable, decorators: [{
1725
- type: Component,
1726
- args: [{
1727
- selector: 'tds-table',
1728
- changeDetection: ChangeDetectionStrategy.OnPush,
1729
- template: '<ng-content></ng-content>',
1730
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1731
- inputs: ['compactDesign', 'expandableRows', 'horizontalScrollWidth', 'modeVariant', 'multiselect', 'noMinWidth', 'responsive', 'tableId', 'verticalDividers', 'zebraMode'],
1732
- }]
1733
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1734
- let TdsTableBody = class TdsTableBody {
1735
- constructor(c, r, z) {
1736
- this.z = z;
1737
- c.detach();
1738
- this.el = r.nativeElement;
1739
- }
1740
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1741
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableBody, selector: "tds-table-body", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1742
- };
1743
- TdsTableBody = __decorate([
1744
- ProxyCmp({})
1745
- ], TdsTableBody);
1746
- export { TdsTableBody };
1747
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBody, decorators: [{
1748
- type: Component,
1749
- args: [{
1750
- selector: 'tds-table-body',
1751
- changeDetection: ChangeDetectionStrategy.OnPush,
1752
- template: '<ng-content></ng-content>',
1753
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1754
- inputs: [],
1755
- }]
1756
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1757
- let TdsTableBodyInputWrapper = class TdsTableBodyInputWrapper {
1758
- constructor(c, r, z) {
1759
- this.z = z;
1760
- c.detach();
1761
- this.el = r.nativeElement;
1762
- }
1763
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyInputWrapper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1764
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableBodyInputWrapper, selector: "tds-table-body-input-wrapper", inputs: { showIcon: "showIcon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1765
- };
1766
- TdsTableBodyInputWrapper = __decorate([
1767
- ProxyCmp({
1768
- inputs: ['showIcon']
1769
- })
1770
- ], TdsTableBodyInputWrapper);
1771
- export { TdsTableBodyInputWrapper };
1772
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyInputWrapper, decorators: [{
1773
- type: Component,
1774
- args: [{
1775
- selector: 'tds-table-body-input-wrapper',
1776
- changeDetection: ChangeDetectionStrategy.OnPush,
1777
- template: '<ng-content></ng-content>',
1778
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1779
- inputs: ['showIcon'],
1780
- }]
1781
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1782
- let TdsTableBodyRow = class TdsTableBodyRow {
1783
- constructor(c, r, z) {
1784
- this.z = z;
1785
- c.detach();
1786
- this.el = r.nativeElement;
1787
- proxyOutputs(this, this.el, ['tdsSelect', 'tdsClick']);
1788
- }
1789
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1790
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableBodyRow, selector: "tds-table-body-row", inputs: { clickable: "clickable", disabled: "disabled", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1791
- };
1792
- TdsTableBodyRow = __decorate([
1793
- ProxyCmp({
1794
- inputs: ['clickable', 'disabled', 'selected']
1795
- })
1796
- ], TdsTableBodyRow);
1797
- export { TdsTableBodyRow };
1798
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyRow, decorators: [{
1799
- type: Component,
1800
- args: [{
1801
- selector: 'tds-table-body-row',
1802
- changeDetection: ChangeDetectionStrategy.OnPush,
1803
- template: '<ng-content></ng-content>',
1804
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1805
- inputs: ['clickable', 'disabled', 'selected'],
1806
- }]
1807
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1808
- let TdsTableBodyRowExpandable = class TdsTableBodyRowExpandable {
1809
- constructor(c, r, z) {
1810
- this.z = z;
1811
- c.detach();
1812
- this.el = r.nativeElement;
1813
- proxyOutputs(this, this.el, ['tdsChange']);
1814
- }
1815
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyRowExpandable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1816
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableBodyRowExpandable, selector: "tds-table-body-row-expandable", inputs: { autoCollapse: "autoCollapse", colSpan: "colSpan", expanded: "expanded", overflow: "overflow", rowId: "rowId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1817
- };
1818
- TdsTableBodyRowExpandable = __decorate([
1819
- ProxyCmp({
1820
- inputs: ['autoCollapse', 'colSpan', 'expanded', 'overflow', 'rowId'],
1821
- methods: ['expand', 'collapse']
1822
- })
1823
- ], TdsTableBodyRowExpandable);
1824
- export { TdsTableBodyRowExpandable };
1825
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyRowExpandable, decorators: [{
1826
- type: Component,
1827
- args: [{
1828
- selector: 'tds-table-body-row-expandable',
1829
- changeDetection: ChangeDetectionStrategy.OnPush,
1830
- template: '<ng-content></ng-content>',
1831
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1832
- inputs: ['autoCollapse', 'colSpan', 'expanded', 'overflow', 'rowId'],
1833
- }]
1834
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1835
- let TdsTableFooter = class TdsTableFooter {
1836
- constructor(c, r, z) {
1837
- this.z = z;
1838
- c.detach();
1839
- this.el = r.nativeElement;
1840
- proxyOutputs(this, this.el, ['tdsPagination']);
1841
- }
1842
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1843
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableFooter, selector: "tds-table-footer", inputs: { cols: "cols", pages: "pages", pagination: "pagination", paginationValue: "paginationValue", rowsPerPageValues: "rowsPerPageValues", rowsperpage: "rowsperpage" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1844
- };
1845
- TdsTableFooter = __decorate([
1846
- ProxyCmp({
1847
- inputs: ['cols', 'pages', 'pagination', 'paginationValue', 'rowsPerPageValues', 'rowsperpage']
1848
- })
1849
- ], TdsTableFooter);
1850
- export { TdsTableFooter };
1851
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableFooter, decorators: [{
1852
- type: Component,
1853
- args: [{
1854
- selector: 'tds-table-footer',
1855
- changeDetection: ChangeDetectionStrategy.OnPush,
1856
- template: '<ng-content></ng-content>',
1857
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1858
- inputs: ['cols', 'pages', 'pagination', 'paginationValue', 'rowsPerPageValues', 'rowsperpage'],
1859
- }]
1860
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1861
- let TdsTableHeader = class TdsTableHeader {
1862
- constructor(c, r, z) {
1863
- this.z = z;
1864
- c.detach();
1865
- this.el = r.nativeElement;
1866
- proxyOutputs(this, this.el, ['tdsSelectAll']);
1867
- }
1868
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1869
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableHeader, selector: "tds-table-header", inputs: { allSelected: "allSelected", disabled: "disabled", indeterminate: "indeterminate", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1870
- };
1871
- TdsTableHeader = __decorate([
1872
- ProxyCmp({
1873
- inputs: ['allSelected', 'disabled', 'indeterminate', 'selected']
1874
- })
1875
- ], TdsTableHeader);
1876
- export { TdsTableHeader };
1877
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableHeader, decorators: [{
1878
- type: Component,
1879
- args: [{
1880
- selector: 'tds-table-header',
1881
- changeDetection: ChangeDetectionStrategy.OnPush,
1882
- template: '<ng-content></ng-content>',
1883
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1884
- inputs: ['allSelected', 'disabled', 'indeterminate', 'selected'],
1885
- }]
1886
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1887
- let TdsTableHeaderInputWrapper = class TdsTableHeaderInputWrapper {
1888
- constructor(c, r, z) {
1889
- this.z = z;
1890
- c.detach();
1891
- this.el = r.nativeElement;
1892
- }
1893
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableHeaderInputWrapper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1894
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableHeaderInputWrapper, selector: "tds-table-header-input-wrapper", inputs: { compactDesign: "compactDesign", showIcon: "showIcon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1895
- };
1896
- TdsTableHeaderInputWrapper = __decorate([
1897
- ProxyCmp({
1898
- inputs: ['compactDesign', 'showIcon']
1899
- })
1900
- ], TdsTableHeaderInputWrapper);
1901
- export { TdsTableHeaderInputWrapper };
1902
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableHeaderInputWrapper, decorators: [{
1903
- type: Component,
1904
- args: [{
1905
- selector: 'tds-table-header-input-wrapper',
1906
- changeDetection: ChangeDetectionStrategy.OnPush,
1907
- template: '<ng-content></ng-content>',
1908
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1909
- inputs: ['compactDesign', 'showIcon'],
1910
- }]
1911
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1912
- let TdsTableToolbar = class TdsTableToolbar {
1913
- constructor(c, r, z) {
1914
- this.z = z;
1915
- c.detach();
1916
- this.el = r.nativeElement;
1917
- proxyOutputs(this, this.el, ['tdsFilter']);
1918
- }
1919
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableToolbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1920
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableToolbar, selector: "tds-table-toolbar", inputs: { filter: "filter", tableTitle: "tableTitle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1921
- };
1922
- TdsTableToolbar = __decorate([
1923
- ProxyCmp({
1924
- inputs: ['filter', 'tableTitle']
1925
- })
1926
- ], TdsTableToolbar);
1927
- export { TdsTableToolbar };
1928
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableToolbar, decorators: [{
1929
- type: Component,
1930
- args: [{
1931
- selector: 'tds-table-toolbar',
1932
- changeDetection: ChangeDetectionStrategy.OnPush,
1933
- template: '<ng-content></ng-content>',
1934
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1935
- inputs: ['filter', 'tableTitle'],
1936
- }]
1937
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1938
- let TdsTextField = class TdsTextField {
1939
- constructor(c, r, z) {
1940
- this.z = z;
1941
- c.detach();
1942
- this.el = r.nativeElement;
1943
- proxyOutputs(this, this.el, ['tdsChange', 'tdsInput', 'tdsFocus', 'tdsBlur']);
1944
- }
1945
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTextField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1946
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTextField, selector: "tds-text-field", inputs: { autofocus: "autofocus", disabled: "disabled", helper: "helper", hideReadOnlyIcon: "hideReadOnlyIcon", label: "label", labelPosition: "labelPosition", max: "max", maxLength: "maxLength", min: "min", modeVariant: "modeVariant", name: "name", noMinWidth: "noMinWidth", placeholder: "placeholder", readOnly: "readOnly", size: "size", state: "state", tdsAriaLabel: "tdsAriaLabel", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1947
- };
1948
- TdsTextField = __decorate([
1949
- ProxyCmp({
1950
- inputs: ['autofocus', 'disabled', 'helper', 'hideReadOnlyIcon', 'label', 'labelPosition', 'max', 'maxLength', 'min', 'modeVariant', 'name', 'noMinWidth', 'placeholder', 'readOnly', 'size', 'state', 'tdsAriaLabel', 'type', 'value'],
1951
- methods: ['focusElement']
1952
- })
1953
- ], TdsTextField);
1954
- export { TdsTextField };
1955
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTextField, decorators: [{
1956
- type: Component,
1957
- args: [{
1958
- selector: 'tds-text-field',
1959
- changeDetection: ChangeDetectionStrategy.OnPush,
1960
- template: '<ng-content></ng-content>',
1961
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1962
- inputs: ['autofocus', 'disabled', 'helper', 'hideReadOnlyIcon', 'label', 'labelPosition', 'max', 'maxLength', 'min', 'modeVariant', 'name', 'noMinWidth', 'placeholder', 'readOnly', 'size', 'state', 'tdsAriaLabel', 'type', 'value'],
1963
- }]
1964
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1965
- let TdsTextarea = class TdsTextarea {
1966
- constructor(c, r, z) {
1967
- this.z = z;
1968
- c.detach();
1969
- this.el = r.nativeElement;
1970
- proxyOutputs(this, this.el, ['tdsChange', 'tdsBlur', 'tdsInput', 'tdsFocus']);
1971
- }
1972
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1973
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTextarea, selector: "tds-textarea", inputs: { autofocus: "autofocus", cols: "cols", disabled: "disabled", helper: "helper", hideReadOnlyIcon: "hideReadOnlyIcon", label: "label", labelPosition: "labelPosition", maxLength: "maxLength", modeVariant: "modeVariant", name: "name", noMinWidth: "noMinWidth", placeholder: "placeholder", readOnly: "readOnly", rows: "rows", state: "state", tdsAriaLabel: "tdsAriaLabel", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1974
- };
1975
- TdsTextarea = __decorate([
1976
- ProxyCmp({
1977
- inputs: ['autofocus', 'cols', 'disabled', 'helper', 'hideReadOnlyIcon', 'label', 'labelPosition', 'maxLength', 'modeVariant', 'name', 'noMinWidth', 'placeholder', 'readOnly', 'rows', 'state', 'tdsAriaLabel', 'value']
1978
- })
1979
- ], TdsTextarea);
1980
- export { TdsTextarea };
1981
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTextarea, decorators: [{
1982
- type: Component,
1983
- args: [{
1984
- selector: 'tds-textarea',
1985
- changeDetection: ChangeDetectionStrategy.OnPush,
1986
- template: '<ng-content></ng-content>',
1987
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1988
- inputs: ['autofocus', 'cols', 'disabled', 'helper', 'hideReadOnlyIcon', 'label', 'labelPosition', 'maxLength', 'modeVariant', 'name', 'noMinWidth', 'placeholder', 'readOnly', 'rows', 'state', 'tdsAriaLabel', 'value'],
1989
- }]
1990
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1991
- let TdsToast = class TdsToast {
1992
- constructor(c, r, z) {
1993
- this.z = z;
1994
- c.detach();
1995
- this.el = r.nativeElement;
1996
- proxyOutputs(this, this.el, ['tdsClose']);
1997
- }
1998
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1999
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsToast, selector: "tds-toast", inputs: { closable: "closable", header: "header", hidden: "hidden", subheader: "subheader", tdsAriaLive: "tdsAriaLive", tdsCloseAriaLabel: "tdsCloseAriaLabel", toastId: "toastId", toastRole: "toastRole", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2000
- };
2001
- TdsToast = __decorate([
2002
- ProxyCmp({
2003
- inputs: ['closable', 'header', 'hidden', 'subheader', 'tdsAriaLive', 'tdsCloseAriaLabel', 'toastId', 'toastRole', 'variant'],
2004
- methods: ['hideToast', 'showToast']
2005
- })
2006
- ], TdsToast);
2007
- export { TdsToast };
2008
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsToast, decorators: [{
2009
- type: Component,
2010
- args: [{
2011
- selector: 'tds-toast',
2012
- changeDetection: ChangeDetectionStrategy.OnPush,
2013
- template: '<ng-content></ng-content>',
2014
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2015
- inputs: ['closable', 'header', 'hidden', 'subheader', 'tdsAriaLive', 'tdsCloseAriaLabel', 'toastId', 'toastRole', 'variant'],
2016
- }]
2017
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2018
- let TdsToggle = class TdsToggle {
2019
- constructor(c, r, z) {
2020
- this.z = z;
2021
- c.detach();
2022
- this.el = r.nativeElement;
2023
- proxyOutputs(this, this.el, ['tdsToggle']);
2024
- }
2025
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2026
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsToggle, selector: "tds-toggle", inputs: { checked: "checked", disabled: "disabled", headline: "headline", name: "name", required: "required", size: "size", tdsAriaLabel: "tdsAriaLabel", toggleId: "toggleId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2027
- };
2028
- TdsToggle = __decorate([
2029
- ProxyCmp({
2030
- inputs: ['checked', 'disabled', 'headline', 'name', 'required', 'size', 'tdsAriaLabel', 'toggleId'],
2031
- methods: ['toggle']
2032
- })
2033
- ], TdsToggle);
2034
- export { TdsToggle };
2035
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsToggle, decorators: [{
2036
- type: Component,
2037
- args: [{
2038
- selector: 'tds-toggle',
2039
- changeDetection: ChangeDetectionStrategy.OnPush,
2040
- template: '<ng-content></ng-content>',
2041
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2042
- inputs: ['checked', 'disabled', 'headline', 'name', 'required', 'size', 'tdsAriaLabel', 'toggleId'],
2043
- }]
2044
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2045
- let TdsTooltip = class TdsTooltip {
2046
- constructor(c, r, z) {
2047
- this.z = z;
2048
- c.detach();
2049
- this.el = r.nativeElement;
2050
- }
2051
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2052
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTooltip, selector: "tds-tooltip", inputs: { defaultShow: "defaultShow", mouseOverTooltip: "mouseOverTooltip", offsetDistance: "offsetDistance", offsetSkidding: "offsetSkidding", placement: "placement", referenceEl: "referenceEl", selector: "selector", show: "show", tdsAriaDescribedby: "tdsAriaDescribedby", text: "text", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2053
- };
2054
- TdsTooltip = __decorate([
2055
- ProxyCmp({
2056
- inputs: ['defaultShow', 'mouseOverTooltip', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show', 'tdsAriaDescribedby', 'text', 'trigger']
2057
- })
2058
- ], TdsTooltip);
2059
- export { TdsTooltip };
2060
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTooltip, decorators: [{
2061
- type: Component,
2062
- args: [{
2063
- selector: 'tds-tooltip',
2064
- changeDetection: ChangeDetectionStrategy.OnPush,
2065
- template: '<ng-content></ng-content>',
2066
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2067
- inputs: ['defaultShow', 'mouseOverTooltip', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show', 'tdsAriaDescribedby', 'text', 'trigger'],
2068
- }]
2069
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2070
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zdGVuY2lsLWdlbmVyYXRlZC9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsOENBQThDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWVoRSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsWUFBWTttR0FBWixZQUFZLCtIQUpiLDJCQUEyQjs7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUM7S0FDMUMsQ0FBQztHQVFXLFlBQVksQ0FNeEI7OzRGQU5ZLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQztpQkFDMUM7O0FBd0JNLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBRTNCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFD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Z0IsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztpQkFDeksiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAc2NhbmlhL3RlZ2VsJztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUxhc3RCb3JkZXInLCAnbW9kZVZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVMYXN0Qm9yZGVyJywgJ21vZGVWYXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0FjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0FjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzQWNjb3JkaW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FyaWFMZXZlbFZhbHVlJywgJ2Rpc2FibGVkJywgJ2V4cGFuZEljb25Qb3NpdGlvbicsICdleHBhbmRlZCcsICdoZWFkZXInLCAncGFkZGluZ1Jlc2V0J10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlQWNjb3JkaW9uSXRlbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWFjY29yZGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcmlhTGV2ZWxWYWx1ZScsICdkaXNhYmxlZCcsICdleHBhbmRJY29uUG9zaXRpb24nLCAnZXhwYW5kZWQnLCAnaGVhZGVyJywgJ3BhZGRpbmdSZXNldCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNBY2NvcmRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzVG9nZ2xlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0FjY29yZGlvbkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0FjY29yZGlvbkl0ZW0ge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgQWNjb3JkaW9uIEl0ZW0gaXMgY2xpY2tlZCwgYnV0IGJlZm9yZSBpdCBpcyBjbG9zZWQgb3Igb3BlbmVkLlxuICAgKi9cbiAgdGRzVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBleHBhbmRlZDogYm9vbGVhbjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRkZW4nLCAnc2l6ZScsICd0ZHNBcmlhTGl2ZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRkZW4nLCAnc2l6ZScsICd0ZHNBcmlhTGl2ZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0JhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYW5uZXJJZCcsICdoZWFkZXInLCAnaGlkZGVuJywgJ2ljb24nLCAncm9sZVR5cGUnLCAnc3ViaGVhZGVyJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydoaWRlQmFubmVyJywgJ3Nob3dCYW5uZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1iYW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Jhbm5lcklkJywgJ2hlYWRlcicsICdoaWRkZW4nLCAnaWNvbicsICdyb2xlVHlwZScsICdzdWJoZWFkZXInLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNCYW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNCYW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0Jhbm5lciB7XG4gIC8qKlxuICAgKiBTZW5kcyBhIHVuaXF1ZSBCYW5uZXIgaWRlbnRpZmllciB3aGVuIHRoZSBjbG9zZSBidXR0b24gaXMgcHJlc3NlZC5cbiAgICovXG4gIHRkc0Nsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBiYW5uZXJJZDogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbXBvbmVudFRhZycsICdtb2RlVmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWJsb2NrJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb21wb25lbnRUYWcnLCAnbW9kZVZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzQmxvY2sge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNCbG9jayBleHRlbmRzIENvbXBvbmVudHMuVGRzQmxvY2sge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2VsbEtleScsICdjZWxsVmFsdWUnLCAnZGlzYWJsZVBhZGRpbmcnLCAndGV4dEFsaWduJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtYm9keS1jZWxsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjZWxsS2V5JywgJ2NlbGxWYWx1ZScsICdkaXNhYmxlUGFkZGluZycsICd0ZXh0QWxpZ24nXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzQm9keUNlbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNCb2R5Q2VsbCBleHRlbmRzIENvbXBvbmVudHMuVGRzQm9keUNlbGwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VycmVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWJyZWFkY3J1bWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1cnJlbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzQnJlYWRjcnVtYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0JyZWFkY3J1bWIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0JyZWFkY3J1bWIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndGRzQXJpYUxhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtYnJlYWRjcnVtYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3Rkc0FyaWFMYWJlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNCcmVhZGNydW1icyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0JyZWFkY3J1bWJzIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNCcmVhZGNydW1icyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGlzYWJsZWQnLCAnZnVsbGJsZWVkJywgJ21vZGVWYXJpYW50JywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3RleHQnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGlzYWJsZWQnLCAnZnVsbGJsZWVkJywgJ21vZGVWYXJpYW50JywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3RleHQnLCAndHlwZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0J1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0J1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JvZHlEaXZpZGVyJywgJ2JvZHlJbWcnLCAnYm9keUltZ0FsdCcsICdjYXJkSWQnLCAnY2xpY2thYmxlJywgJ2hlYWRlcicsICdpbWFnZVBsYWNlbWVudCcsICdtb2RlVmFyaWFudCcsICdzdHJldGNoJywgJ3N1YmhlYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JvZHlEaXZpZGVyJywgJ2JvZHlJbWcnLCAnYm9keUltZ0FsdCcsICdjYXJkSWQnLCAnY2xpY2thYmxlJywgJ2hlYWRlcicsICdpbWFnZVBsYWNlbWVudCcsICdtb2RlVmFyaWFudCcsICdzdHJldGNoJywgJ3N1YmhlYWRlciddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuVGRzQ2FyZCB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgQ2FyZCBpZGVudGlmaWVyIHdoZW4gdGhlIENhcmQgaXMgY2xpY2tlZCwgaWYgY2xpY2thYmxlPXRydWVcbiAgICovXG4gIHRkc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjYXJkSWQ6IHN0cmluZzsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2JveElkJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3Rkc0FyaWFEZXNjcmliZWRieScsICd0ZHNBcmlhTGFiZWwnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVDaGVja2JveCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2JveElkJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3Rkc0FyaWFEZXNjcmliZWRieScsICd0ZHNBcmlhTGFiZWwnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDaGFuZ2UnLCAndGRzRm9jdXMnLCAndGRzQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNDaGVja2JveCBleHRlbmRzIENvbXBvbmVudHMuVGRzQ2hlY2tib3gge1xuICAvKipcbiAgICogU2VuZHMgdW5pcXVlIENoZWNrYm94IGlkZW50aWZpZXIgYW5kIGNoZWNrZWQgc3RhdHVzIHdoZW4gaXQgaXMgY2hlY2tlZC91bmNoZWNrZWQuXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNoZWNrYm94SWQ6IHN0cmluZzsgY2hlY2tlZDogYm9vbGVhbjsgaW5kZXRlcm1pbmF0ZTogYm9vbGVhbjsgdmFsdWU/OiBzdHJpbmc7IH0+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50IGZvciB0aGUgQ2hlY2tib3hcbiAgICovXG4gIHRkc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudCBmb3IgdGhlIENoZWNrYm94XG4gICAqL1xuICB0ZHNCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2NoaXBJZCcsICdkaXNhYmxlZCcsICduYW1lJywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3R5cGUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1jaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2NoaXBJZCcsICdkaXNhYmxlZCcsICduYW1lJywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzQ2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NoYW5nZScsICd0ZHNDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNDaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNDaGlwIHtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBDaGlwIGlkZW50aWZpZXIgYW5kIHZhbHVlIHdoZW4gaXQgaXMgY2hhbmdlZCAoY2hlY2tlZC91bmNoZWNrZWQpLlxuVmFsaWQgb25seSBmb3IgdHlwZSBjaGVja2JveCBhbmQgcmFkaW8uXG5JZiBubyBJRCBpcyBzcGVjaWZpZWQsIGEgcmFuZG9tIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cblRvIHVzZSB0aGlzIGxpc3RlbmVyLCBkb24ndCB1c2UgdGhlIHJhbmRvbWl6ZWQgSUQsIHVzZSBhIHNwZWNpZmljIG9uZSBvZiB5b3VyIGNob29zaW5nLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjaGlwSWQ6IHN0cmluZzsgdmFsdWU6IHN0cmluZzsgY2hlY2tlZD86IGJvb2xlYW47IH0+PjtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBDaGlwIGlkZW50aWZpZXIgd2hlbiBDaGlwIGlzIGNsaWNrZWQuXG5WYWxpZCBvbmx5IGZvciB0eXBlIGJ1dHRvbi5cbklmIG5vIElEIGlzIHNwZWNpZmllZCwgYSByYW5kb20gb25lIHdpbGwgYmUgZ2VuZXJhdGVkLlxuVG8gdXNlIHRoaXMgbGlzdGVuZXIsIGRvbid0IHVzZSB0aGUgcmFuZG9taXplZCBJRCwgdXNlIGEgc3BlY2lmaWMgb25lIG9mIHlvdXIgY2hvb3NpbmcuXG4gICAqL1xuICB0ZHNDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hpcElkOiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1jb3JlLWhlYWRlci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0NvcmVIZWFkZXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQ29yZUhlYWRlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0NvcmVIZWFkZXJJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbW9kZVZhcmlhbnQnLCAnbmFtZScsICdub01pbldpZHRoJywgJ3NpemUnLCAnc3RhdGUnLCAndHlwZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3Jlc2V0JywgJ3NldFZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZGF0ZXRpbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbW9kZVZhcmlhbnQnLCAnbmFtZScsICdub01pbldpZHRoJywgJ3NpemUnLCAnc3RhdGUnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNEYXRldGltZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NoYW5nZScsICd0ZHNCbHVyJywgJ3Rkc0ZvY3VzJywgJ3Rkc0lucHV0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0RhdGV0aW1lIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNEYXRldGltZSB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgZm9yIHRoZSBEYXRldGltZVxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50IGZvciB0aGUgRGF0ZXRpbWVcbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIERhdGV0aW1lXG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGV2ZW50IGZvciB0aGUgRGF0ZXRpbWVcbiAgICovXG4gIHRkc0lucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydvcmllbnRhdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWRpdmlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29yaWVudGF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0RpdmlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNEaXZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNEaXZpZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZmlsdGVyJywgJ2hlbHBlcicsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ21vZGVWYXJpYW50JywgJ211bHRpc2VsZWN0JywgJ25hbWUnLCAnbm9SZXN1bHRUZXh0JywgJ25vcm1hbGl6ZVRleHQnLCAnb3BlbkRpcmVjdGlvbicsICdwbGFjZWhvbGRlcicsICdzaXplJywgJ3Rkc0FyaWFMYWJlbCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldFZhbHVlJywgJ3Jlc2V0JywgJ3JlbW92ZVZhbHVlJywgJ2ZvY3VzRWxlbWVudCcsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWRyb3Bkb3duJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGVmYXVsdFZhbHVlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ZpbHRlcicsICdoZWxwZXInLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdtb2RlVmFyaWFudCcsICdtdWx0aXNlbGVjdCcsICduYW1lJywgJ25vUmVzdWx0VGV4dCcsICdub3JtYWxpemVUZXh0JywgJ29wZW5EaXJlY3Rpb24nLCAncGxhY2Vob2xkZXInLCAnc2l6ZScsICd0ZHNBcmlhTGFiZWwnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzRHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDaGFuZ2UnLCAndGRzRm9jdXMnLCAndGRzQmx1cicsICd0ZHNJbnB1dCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVGRzRHJvcGRvd24ge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50IGZvciB0aGUgRHJvcGRvd24uXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZzsgfT4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnQgZm9yIHRoZSBEcm9wZG93bi5cbiAgICovXG4gIHRkc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudCBmb3IgdGhlIERyb3Bkb3duLlxuICAgKi9cbiAgdGRzQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGV2ZW50IGZvciB0aGUgRHJvcGRvd24uXG4gICAqL1xuICB0ZHNJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElucHV0RXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRTZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWRyb3Bkb3duLW9wdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzRHJvcGRvd25PcHRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNTZWxlY3QnLCAndGRzRm9jdXMnLCAndGRzQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNEcm9wZG93bk9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzRHJvcGRvd25PcHRpb24ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgZm9yIHRoZSBEcm9wZG93biBvcHRpb24uXG4gICAqL1xuICB0ZHNTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkOiBib29sZWFuOyB2YWx1ZTogc3RyaW5nOyB9Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIERyb3Bkb3duIG9wdGlvbi5cbiAgICovXG4gIHRkc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudCBmb3IgdGhlIERyb3Bkb3duIG9wdGlvbi5cbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZm9sZGVyLXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9sZGVyVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRm9sZGVyVGFiIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNGb2xkZXJUYWIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdFNlbGVjdGVkSW5kZXgnLCAnbW9kZVZhcmlhbnQnLCAnc2VsZWN0ZWRJbmRleCcsICd0ZHNTY3JvbGxMZWZ0QXJpYUxhYmVsJywgJ3Rkc1Njcm9sbFJpZ2h0QXJpYUxhYmVsJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0VGFiJywgJ3JlaW5pdGlhbGl6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWZvbGRlci10YWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4JywgJ3Rkc1Njcm9sbExlZnRBcmlhTGFiZWwnLCAndGRzU2Nyb2xsUmlnaHRBcmlhTGFiZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9sZGVyVGFicyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNGb2xkZXJUYWJzIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNGb2xkZXJUYWJzIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgVGFiIGlzIGNoYW5nZWQuXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtb2RlVmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbW9kZVZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNGb290ZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndGRzTGlzdEFyaWFMYWJlbCcsICd0aXRsZVRleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1mb290ZXItZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3Rkc0xpc3RBcmlhTGFiZWwnLCAndGl0bGVUZXh0J10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0Zvb3Rlckdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRm9vdGVyR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0Zvb3Rlckdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZm9vdGVyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9vdGVySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0Zvb3Rlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0Zvb3Rlckl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXIge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItYnJhbmQtc3ltYm9sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckJyYW5kU3ltYm9sIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyQnJhbmRTeW1ib2wgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckJyYW5kU3ltYm9sIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NlbGxLZXknLCAnY2VsbFZhbHVlJywgJ2N1c3RvbVdpZHRoJywgJ2Rpc2FibGVQYWRkaW5nJywgJ3NvcnRhYmxlJywgJ3RleHRBbGlnbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1jZWxsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjZWxsS2V5JywgJ2NlbGxWYWx1ZScsICdjdXN0b21XaWR0aCcsICdkaXNhYmxlUGFkZGluZycsICdzb3J0YWJsZScsICd0ZXh0QWxpZ24nXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc1NvcnQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyQ2VsbCBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyQ2VsbCB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgVGFibGUgaWRlbnRpZmllciwgY29sdW1uIGtleSBhbmQgc29ydGluZyBkaXJlY3Rpb24gdG8gdGhlIHRkcy10YWJsZS1ib2R5IGNvbXBvbmVudCxcbmNhbiBhbHNvIGJlIGxpc3RlbmVkIHRvIGltcGxlbWVudCBjdXN0b20tc29ydGluZyBsb2dpYy5cbiAgICovXG4gIHRkc1NvcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZzsgY29sdW1uS2V5OiBzdHJpbmc7IHNvcnRpbmdEaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ25vRHJvcGRvd25JY29uJywgJ3NlbGVjdGVkJywgJ3Rkc0FyaWFMYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnLCAnbm9Ecm9wZG93bkljb24nLCAnc2VsZWN0ZWQnLCAndGRzQXJpYUxhYmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckRyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckRyb3Bkb3duIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItZHJvcGRvd24tbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJEcm9wZG93bkxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJEcm9wZG93bkxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckRyb3Bkb3duTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzZWxlY3RlZCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWRyb3Bkb3duLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2VsZWN0ZWQnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJEcm9wZG93bkxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyRHJvcGRvd25MaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyRHJvcGRvd25MaXN0SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkZXInLCAnaW1nQWx0JywgJ2ltZ1VybCcsICdzdWJoZWFkZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItZHJvcGRvd24tbGlzdC11c2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkZXInLCAnaW1nQWx0JywgJ2ltZ1VybCcsICdzdWJoZWFkZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyRHJvcGRvd25MaXN0VXNlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckRyb3Bkb3duTGlzdFVzZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckRyb3Bkb3duTGlzdFVzZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndGRzQXJpYUxhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWhhbWJ1cmdlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGRzQXJpYUxhYmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckhhbWJ1cmdlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckhhbWJ1cmdlciBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVySGFtYnVyZ2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnc2VsZWN0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndGRzQXJpYUxhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd0ZHNBcmlhTGFiZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlciBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyTGF1bmNoZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ3Rkc0FyaWFMYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1sYXVuY2hlci1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICd0ZHNBcmlhTGFiZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXJCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyTGF1bmNoZXJCdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXItZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlckdyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckdyaWQgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyR3JpZCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1sYXVuY2hlci1ncmlkLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXJHcmlkSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckxhdW5jaGVyR3JpZEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyR3JpZEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXItZ3JpZC10aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlckdyaWRUaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckxhdW5jaGVyR3JpZFRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJMYXVuY2hlckdyaWRUaXRsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1sYXVuY2hlci1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckxhdW5jaGVyTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckxhdW5jaGVyTGlzdCBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyTGF1bmNoZXJMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlckxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyTGF1bmNoZXJMaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyTGF1bmNoZXJMaXN0SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1sYXVuY2hlci1saXN0LXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckxhdW5jaGVyTGlzdFRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyTGF1bmNoZXJMaXN0VGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyTGlzdFRpdGxlIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlclRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyVGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlclRpdGxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ25hbWUnLCAnc2l6ZScsICdzdmdEZXNjcmlwdGlvbicsICdzdmdUaXRsZScsICd0ZHNBcmlhSGlkZGVuJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbmFtZScsICdzaXplJywgJ3N2Z0Rlc2NyaXB0aW9uJywgJ3N2Z1RpdGxlJywgJ3Rkc0FyaWFIaWRkZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0ljb24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0ljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1pbmxpbmUtdGFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNJbmxpbmVUYWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNJbmxpbmVUYWIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0lubGluZVRhYiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdsZWZ0UGFkZGluZycsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4JywgJ3Rkc1Njcm9sbExlZnRBcmlhTGFiZWwnLCAndGRzU2Nyb2xsUmlnaHRBcmlhTGFiZWwnXSxcbiAgbWV0aG9kczogWydzZWxlY3RUYWInLCAncmVpbml0aWFsaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaW5saW5lLXRhYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlZmF1bHRTZWxlY3RlZEluZGV4JywgJ2xlZnRQYWRkaW5nJywgJ21vZGVWYXJpYW50JywgJ3NlbGVjdGVkSW5kZXgnLCAndGRzU2Nyb2xsTGVmdEFyaWFMYWJlbCcsICd0ZHNTY3JvbGxSaWdodEFyaWFMYWJlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNJbmxpbmVUYWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0lubGluZVRhYnMgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0lubGluZVRhYnMge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCBUYWIgaXMgY2hhbmdlZC5cbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWRUYWJJbmRleDogbnVtYmVyOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3N0YW5kYWxvbmUnLCAndW5kZXJsaW5lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnc3RhbmRhbG9uZScsICd1bmRlcmxpbmUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzTGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0xpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0xpbmsge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGVyJywgJ21pbmltYWwnLCAnbW9kZVZhcmlhbnQnLCAnbm9JY29uJywgJ3Rkc0FsZXJ0RGlhbG9nJywgJ3Rkc0FyaWFMYWJlbCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGVyJywgJ21pbmltYWwnLCAnbW9kZVZhcmlhbnQnLCAnbm9JY29uJywgJ3Rkc0FsZXJ0RGlhbG9nJywgJ3Rkc0FyaWFMYWJlbCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc01lc3NhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNNZXNzYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNNZXNzYWdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbnNQb3NpdGlvbicsICdjbG9zYWJsZScsICdoZWFkZXInLCAncHJldmVudCcsICdyZWZlcmVuY2VFbCcsICdzZWxlY3RvcicsICdzaG93JywgJ3NpemUnLCAndGRzQWxlcnREaWFsb2cnXSxcbiAgbWV0aG9kczogWydzaG93TW9kYWwnLCAnY2xvc2VNb2RhbCcsICdpbml0aWFsaXplTW9kYWwnLCAnY2xlYW51cE1vZGFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtbW9kYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGlvbnNQb3NpdGlvbicsICdjbG9zYWJsZScsICdoZWFkZXInLCAncHJldmVudCcsICdyZWZlcmVuY2VFbCcsICdzZWxlY3RvcicsICdzaG93JywgJ3NpemUnLCAndGRzQWxlcnREaWFsb2cnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzTW9kYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNNb2RhbCBleHRlbmRzIENvbXBvbmVudHMuVGRzTW9kYWwge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgTW9kYWwgaXMgY2xvc2VkLlxuICAgKi9cbiAgdGRzQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1uYXZpZ2F0aW9uLXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzTmF2aWdhdGlvblRhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc05hdmlnYXRpb25UYWIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc05hdmlnYXRpb25UYWIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdFNlbGVjdGVkSW5kZXgnLCAnbGVmdFBhZGRpbmcnLCAnbW9kZVZhcmlhbnQnLCAnc2VsZWN0ZWRJbmRleCcsICd0ZHNTY3JvbGxMZWZ0QXJpYUxhYmVsJywgJ3Rkc1Njcm9sbFJpZ2h0QXJpYUxhYmVsJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0VGFiJywgJ3JlaW5pdGlhbGl6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLW5hdmlnYXRpb24tdGFicycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVmYXVsdFNlbGVjdGVkSW5kZXgnLCAnbGVmdFBhZGRpbmcnLCAnbW9kZVZhcmlhbnQnLCAnc2VsZWN0ZWRJbmRleCcsICd0ZHNTY3JvbGxMZWZ0QXJpYUxhYmVsJywgJ3Rkc1Njcm9sbFJpZ2h0QXJpYUxhYmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc05hdmlnYXRpb25UYWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc05hdmlnYXRpb25UYWJzIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNOYXZpZ2F0aW9uVGFicyB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIFRhYiBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZFRhYkluZGV4OiBudW1iZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2RlZmF1bHRTaG93JywgJ21vZGlmaWVycycsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICd0ZHNBbGVydERpYWxvZyddLFxuICBtZXRob2RzOiBbJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtcG9wb3Zlci1jYW52YXMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdkZWZhdWx0U2hvdycsICdtb2RpZmllcnMnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAndGRzQWxlcnREaWFsb2cnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzUG9wb3ZlckNhbnZhcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1BvcG92ZXJDYW52YXMgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1BvcG92ZXJDYW52YXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2F1dG9IaWRlJywgJ2RlZmF1bHRTaG93JywgJ21vZGlmaWVycycsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICd0cmlnZ2VyJ10sXG4gIG1ldGhvZHM6IFsnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1wb3BvdmVyLWNvcmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhdXRvSGlkZScsICdkZWZhdWx0U2hvdycsICdtb2RpZmllcnMnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAndHJpZ2dlciddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNQb3BvdmVyQ29yZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1BvcG92ZXJDb3JlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNQb3BvdmVyQ29yZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGVmYXVsdFNob3cnLCAnZmx1aWRXaWR0aCcsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdyddLFxuICBtZXRob2RzOiBbJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtcG9wb3Zlci1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGVmYXVsdFNob3cnLCAnZmx1aWRXaWR0aCcsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNQb3BvdmVyTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1BvcG92ZXJNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNQb3BvdmVyTWVudSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXBvcG92ZXItbWVudS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNQb3BvdmVyTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNQb3BvdmVyTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc1BvcG92ZXJNZW51SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ25hbWUnLCAncmFkaW9JZCcsICdyZXF1aXJlZCcsICd0ZHNBcmlhTGFiZWwnLCAndGRzVGFiSW5kZXgnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1yYWRpby1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdyYWRpb0lkJywgJ3JlcXVpcmVkJywgJ3Rkc0FyaWFMYWJlbCcsICd0ZHNUYWJJbmRleCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNSYWRpb0J1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNSYWRpb0J1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzUmFkaW9CdXR0b24ge1xuICAvKipcbiAgICogU2VuZHMgdW5pcXVlIFJhZGlvIEJ1dHRvbiBpZGVudGlmaWVyIGFuZCBzdGF0dXMgd2hlbiBpdCBpcyBjaGVja2VkLlxuSWYgbm8gSUQgaXMgc3BlY2lmaWVkLCBhIHJhbmRvbSBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQuXG5UbyB1c2UgdGhpcyBsaXN0ZW5lciwgZG9uJ3QgdXNlIHRoZSByYW5kb21pemVkIElELCB1c2UgYSBzcGVjaWZpYyBvbmUgb2YgeW91ciBjaG9vc2luZy5cbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcmFkaW9JZDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlZCcsICdvcGVuJywgJ3BlcnNpc3RlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlZCcsICdvcGVuJywgJ3BlcnNpc3RlbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDb2xsYXBzZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQ29sbGFwc2VFdmVudCBhcyBJVGRzU2lkZU1lbnVDb2xsYXBzZUV2ZW50IH0gZnJvbSAnQHNjYW5pYS90ZWdlbCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudSBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnUge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gdGhlIFNpZGUgTWVudSBpcyBjb2xsYXBzZWQuXG4gICAqL1xuICB0ZHNDb2xsYXBzZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZHNTaWRlTWVudUNvbGxhcHNlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtY2xvc2UtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51Q2xvc2VCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudUNsb3NlQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudUNsb3NlQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LWNvbGxhcHNlLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudUNvbGxhcHNlQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzQ29sbGFwc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IENvbGxhcHNlRXZlbnQgYXMgSVRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b25Db2xsYXBzZUV2ZW50IH0gZnJvbSAnQHNjYW5pYS90ZWdlbCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudUNvbGxhcHNlQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudUNvbGxhcHNlQnV0dG9uIHtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgaXMgYnJvYWRjYXN0IHdoZW4gdGhlIGNvbGxhcHNlIGJ1dHRvbiBpcyBjbGlja2VkLlxuUHJldmVudCBpdCBmcm9tIGRpc2FibGluZyBhdXRvbWF0aWMgY29sbGFwc2luZywgYW5kIHNldCB0aGUgY29sbGFwc2VkIHByb3Agb24gdGhlIFNpZGUgTWVudSB5b3Vyc2VsZi5cbiAgICovXG4gIHRkc0NvbGxhcHNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b25Db2xsYXBzZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2J1dHRvbkxhYmVsJywgJ2RlZmF1bHRPcGVuJywgJ29wZW4nLCAnc2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2J1dHRvbkxhYmVsJywgJ2RlZmF1bHRPcGVuJywgJ29wZW4nLCAnc2VsZWN0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51RHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51RHJvcGRvd24ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtZHJvcGRvd24tbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudURyb3Bkb3duTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51RHJvcGRvd25MaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudURyb3Bkb3duTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1kcm9wZG93bi1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NlbGVjdGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51RHJvcGRvd25MaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51RHJvcGRvd25MaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVEcm9wZG93bkxpc3RJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnc2VsZWN0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtb3ZlcmxheScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudU92ZXJsYXkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudU92ZXJsYXkgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51T3ZlcmxheSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2ltZ0FsdCcsICdpbWdTcmMnLCAnc3ViaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS11c2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2ltZ0FsdCcsICdpbWdTcmMnLCAnc3ViaGVhZGluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudVVzZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudVVzZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51VXNlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbHQnLCAnc3JjJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LXVzZXItaW1hZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsdCcsICdzcmMnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVVc2VySW1hZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudVVzZXJJbWFnZSBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVVc2VySW1hZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdzdWJoZWFkaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LXVzZXItbGFiZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnc3ViaGVhZGluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudVVzZXJMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51VXNlckxhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudVVzZXJMYWJlbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250cm9scycsICdkaXNhYmxlZCcsICdpbnB1dCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmVhZE9ubHknLCAnc2hvd1RpY2tOdW1iZXJzJywgJ3NsaWRlcklkJywgJ3NuYXAnLCAnc3RlcCcsICd0aHVtYlNpemUnLCAndGlja3MnLCAndG9vbHRpcCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3Jlc2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2xpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250cm9scycsICdkaXNhYmxlZCcsICdpbnB1dCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmVhZE9ubHknLCAnc2hvd1RpY2tOdW1iZXJzJywgJ3NsaWRlcklkJywgJ3NuYXAnLCAnc3RlcCcsICd0aHVtYlNpemUnLCAndGlja3MnLCAndG9vbHRpcCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTbGlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDaGFuZ2UnLCAndGRzSW5wdXQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2xpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTbGlkZXIge1xuICAvKipcbiAgICogU2VuZHMgdGhlIHZhbHVlIG9mIHRoZSBzbGlkZXIgd2hlbiBjaGFuZ2VkLiBGaXJlcyBhZnRlciBtb3VzZSB1cCBhbmQgdG91Y2ggZW5kIGV2ZW50cy5cbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZzsgfT4+O1xuICAvKipcbiAgICogU2VuZHMgdGhlIHZhbHVlIG9mIHRoZSBzbGlkZXIgd2hpbGUgbW92aW5nIHRoZSB0aHVtYi4gRmlyZXMgb24gbW91c2UgbW92ZSBhbmQgdG91Y2ggbW92ZSBldmVudHMuXG4gICAqL1xuICB0ZHNJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZzsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzaXplJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zcGlubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaXplJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzU3Bpbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NwaW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NwaW5uZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW5kZXgnLCAnc3RhdGUnLCAndGRzQXJpYUN1cnJlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zdGVwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpbmRleCcsICdzdGF0ZScsICd0ZHNBcmlhQ3VycmVudCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTdGVwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU3RlcCBleHRlbmRzIENvbXBvbmVudHMuVGRzU3RlcCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcmlhTGFiZWwnLCAnaGlkZUxhYmVscycsICdsYWJlbFBvc2l0aW9uJywgJ29yaWVudGF0aW9uJywgJ3NpemUnLCAnc3RlcHBlcklkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJpYUxhYmVsJywgJ2hpZGVMYWJlbHMnLCAnbGFiZWxQb3NpdGlvbicsICdvcmllbnRhdGlvbicsICdzaXplJywgJ3N0ZXBwZXJJZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTdGVwcGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU3RlcHBlciBleHRlbmRzIENvbXBvbmVudHMuVGRzU3RlcHBlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb21wYWN0RGVzaWduJywgJ2V4cGFuZGFibGVSb3dzJywgJ2hvcml6b250YWxTY3JvbGxXaWR0aCcsICdtb2RlVmFyaWFudCcsICdtdWx0aXNlbGVjdCcsICdub01pbldpZHRoJywgJ3Jlc3BvbnNpdmUnLCAndGFibGVJZCcsICd2ZXJ0aWNhbERpdmlkZXJzJywgJ3plYnJhTW9kZSddLFxuICBtZXRob2RzOiBbJ2dldFNlbGVjdGVkUm93cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb21wYWN0RGVzaWduJywgJ2V4cGFuZGFibGVSb3dzJywgJ2hvcml6b250YWxTY3JvbGxXaWR0aCcsICdtb2RlVmFyaWFudCcsICdtdWx0aXNlbGVjdCcsICdub01pbldpZHRoJywgJ3Jlc3BvbnNpdmUnLCAndGFibGVJZCcsICd2ZXJ0aWNhbERpdmlkZXJzJywgJ3plYnJhTW9kZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlLWJvZHknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVCb2R5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZUJvZHkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2hvd0ljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1ib2R5LWlucHV0LXdyYXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3Nob3dJY29uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlQm9keUlucHV0V3JhcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlQm9keUlucHV0V3JhcHBlciBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVCb2R5SW5wdXRXcmFwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdkaXNhYmxlZCcsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlLWJvZHktcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGlja2FibGUnLCAnZGlzYWJsZWQnLCAnc2VsZWN0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVCb2R5Um93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzU2VsZWN0JywgJ3Rkc0NsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlQm9keVJvdyBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVCb2R5Um93IHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJvdyBpcyBzZWxlY3RlZC9kZXNlbGVjdGVkLlxuICAgKi9cbiAgdGRzU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmc7IGNoZWNrZWQ6IGJvb2xlYW47IHNlbGVjdGVkUm93czogYW55W107IH0+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJvdyBpcyBjbGlja2VkLlxuICAgKi9cbiAgdGRzQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV2ZW50OiBNb3VzZUV2ZW50OyB0YWJsZUlkOiBzdHJpbmc7IHJvd0luZGV4OiBudW1iZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0NvbGxhcHNlJywgJ2NvbFNwYW4nLCAnZXhwYW5kZWQnLCAnb3ZlcmZsb3cnLCAncm93SWQnXSxcbiAgbWV0aG9kczogWydleHBhbmQnLCAnY29sbGFwc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1ib2R5LXJvdy1leHBhbmRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvQ29sbGFwc2UnLCAnY29sU3BhbicsICdleHBhbmRlZCcsICdvdmVyZmxvdycsICdyb3dJZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZUJvZHlSb3dFeHBhbmRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlQm9keVJvd0V4cGFuZGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RhYmxlQm9keVJvd0V4cGFuZGFibGUge1xuICAvKipcbiAgICogU2VuZHMgdW5pcXVlIHRhYmxlIHJvdyBpZGVudGlmaWVyIGFuZCBpc0V4cGFuZGVkIHN0YXR1cyB3aGVuIGl0IGlzIGV4cGFuZGVkL2NvbGxhcHNlZC5cbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcm93SWQ6IHN0cmluZzsgaXNFeHBhbmRlZDogYm9vbGVhbjsgdGFibGVJZDogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbHMnLCAncGFnZXMnLCAncGFnaW5hdGlvbicsICdwYWdpbmF0aW9uVmFsdWUnLCAncm93c1BlclBhZ2VWYWx1ZXMnLCAncm93c3BlcnBhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbHMnLCAncGFnZXMnLCAncGFnaW5hdGlvbicsICdwYWdpbmF0aW9uVmFsdWUnLCAncm93c1BlclBhZ2VWYWx1ZXMnLCAncm93c3BlcnBhZ2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNQYWdpbmF0aW9uJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZUZvb3RlciB7XG4gIC8qKlxuICAgKiBFdmVudCB0byBzZW5kIGN1cnJlbnQgcGFnZSB2YWx1ZSB0byB0ZHMtdGFibGUtYm9keSBjb21wb25lbnQsIGNhbiBhbHNvIGJlIGxpc3RlbmVkIHRvIGluIG9yZGVyIHRvIGltcGxlbWVudCBjdXN0b20gcGFnaW5hdGlvbiBsb2dpYy5cbiAgICovXG4gIHRkc1BhZ2luYXRpb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZzsgcGFnaW5hdGlvblZhbHVlOiBudW1iZXI7IHJvd3NQZXJQYWdlPzogbnVtYmVyOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbFNlbGVjdGVkJywgJ2Rpc2FibGVkJywgJ2luZGV0ZXJtaW5hdGUnLCAnc2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbFNlbGVjdGVkJywgJ2Rpc2FibGVkJywgJ2luZGV0ZXJtaW5hdGUnLCAnc2VsZWN0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNTZWxlY3RBbGwnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RhYmxlSGVhZGVyIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc3RhdHVzIG9mIHRoZSBzZWxlY3QgYWxsIGNoZWNrYm94IGNoYW5nZXMuXG4gICAqL1xuICB0ZHNTZWxlY3RBbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZzsgY2hlY2tlZDogYm9vbGVhbjsgc2VsZWN0ZWRSb3dzOiBhbnlbXTsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb21wYWN0RGVzaWduJywgJ3Nob3dJY29uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGFibGUtaGVhZGVyLWlucHV0LXdyYXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbXBhY3REZXNpZ24nLCAnc2hvd0ljb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVIZWFkZXJJbnB1dFdyYXBwZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUYWJsZUhlYWRlcklucHV0V3JhcHBlciBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVIZWFkZXJJbnB1dFdyYXBwZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlsdGVyJywgJ3RhYmxlVGl0bGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS10b29sYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmaWx0ZXInLCAndGFibGVUaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZVRvb2xiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNGaWx0ZXInXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVUb29sYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZVRvb2xiYXIge1xuICAvKipcbiAgICogVXNlZCBmb3Igc2VuZGluZyB1c2VycycgaW5wdXQgdG8gdGhlIG1haW4gcGFyZW50IHRkcy10YWJsZSB0aGUgY29tcG9uZW50LFxuY2FuIGFsc28gYmUgbGlzdGVuZWQgdG8gaW4gb3JkZXIgdG8gaW1wbGVtZW50IGN1c3RvbSBzb3J0aW5nIGxvZ2ljLlxuICAgKi9cbiAgdGRzRmlsdGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmc7IHF1ZXJ5OiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2Rpc2FibGVkJywgJ2hlbHBlcicsICdoaWRlUmVhZE9ubHlJY29uJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4JywgJ21heExlbmd0aCcsICdtaW4nLCAnbW9kZVZhcmlhbnQnLCAnbmFtZScsICdub01pbldpZHRoJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3NpemUnLCAnc3RhdGUnLCAndGRzQXJpYUxhYmVsJywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydmb2N1c0VsZW1lbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10ZXh0LWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2hpZGVSZWFkT25seUljb24nLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdtYXgnLCAnbWF4TGVuZ3RoJywgJ21pbicsICdtb2RlVmFyaWFudCcsICduYW1lJywgJ25vTWluV2lkdGgnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAnc2l6ZScsICdzdGF0ZScsICd0ZHNBcmlhTGFiZWwnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNUZXh0RmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDaGFuZ2UnLCAndGRzSW5wdXQnLCAndGRzRm9jdXMnLCAndGRzQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUZXh0RmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RleHRGaWVsZCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgZm9yIHRoZSBUZXh0IEZpZWxkXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIElucHV0IGV2ZW50IGZvciB0aGUgVGV4dCBGaWVsZFxuICAgKi9cbiAgdGRzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIFRleHQgRmllbGRcbiAgICovXG4gIHRkc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudCBmb3IgdGhlIFRleHQgRmllbGRcbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdjb2xzJywgJ2Rpc2FibGVkJywgJ2hlbHBlcicsICdoaWRlUmVhZE9ubHlJY29uJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4TGVuZ3RoJywgJ21vZGVWYXJpYW50JywgJ25hbWUnLCAnbm9NaW5XaWR0aCcsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdyb3dzJywgJ3N0YXRlJywgJ3Rkc0FyaWFMYWJlbCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRleHRhcmVhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnY29scycsICdkaXNhYmxlZCcsICdoZWxwZXInLCAnaGlkZVJlYWRPbmx5SWNvbicsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ21heExlbmd0aCcsICdtb2RlVmFyaWFudCcsICduYW1lJywgJ25vTWluV2lkdGgnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncm93cycsICdzdGF0ZScsICd0ZHNBcmlhTGFiZWwnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGV4dGFyZWEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDaGFuZ2UnLCAndGRzQmx1cicsICd0ZHNJbnB1dCcsICd0ZHNGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUZXh0YXJlYSBleHRlbmRzIENvbXBvbmVudHMuVGRzVGV4dGFyZWEge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50IGZvciB0aGUgVGV4dGFyZWFcbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQmx1ciBldmVudCBmb3IgdGhlIFRleHRhcmVhXG4gICAqL1xuICB0ZHNCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgZXZlbnQgZm9yIHRoZSBUZXh0YXJlYVxuICAgKi9cbiAgdGRzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIFRleHRhcmVhXG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnaGVhZGVyJywgJ2hpZGRlbicsICdzdWJoZWFkZXInLCAndGRzQXJpYUxpdmUnLCAndGRzQ2xvc2VBcmlhTGFiZWwnLCAndG9hc3RJZCcsICd0b2FzdFJvbGUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ2hpZGVUb2FzdCcsICdzaG93VG9hc3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10b2FzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnaGVhZGVyJywgJ2hpZGRlbicsICdzdWJoZWFkZXInLCAndGRzQXJpYUxpdmUnLCAndGRzQ2xvc2VBcmlhTGFiZWwnLCAndG9hc3RJZCcsICd0b2FzdFJvbGUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNUb2FzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0Nsb3NlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RvYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUb2FzdCB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgVG9hc3QgaWRlbnRpZmllciB3aGVuIGNvbXBvbmVudCBpcyBjbG9zZWQuXG4gICAqL1xuICB0ZHNDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdG9hc3RJZDogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaGVhZGxpbmUnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzaXplJywgJ3Rkc0FyaWFMYWJlbCcsICd0b2dnbGVJZCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdoZWFkbGluZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3RvZ2dsZUlkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc1RvZ2dsZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RvZ2dsZSB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgVG9nZ2xlIGlkZW50aWZpZXIgYW5kIHN0YXR1cyB3aGVuIGl0IGlzIHRvZ2dsZWQuXG4gICAqL1xuICB0ZHNUb2dnbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRvZ2dsZUlkOiBzdHJpbmc7IGNoZWNrZWQ6IGJvb2xlYW47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdFNob3cnLCAnbW91c2VPdmVyVG9vbHRpcCcsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICd0ZHNBcmlhRGVzY3JpYmVkYnknLCAndGV4dCcsICd0cmlnZ2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVmYXVsdFNob3cnLCAnbW91c2VPdmVyVG9vbHRpcCcsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICd0ZHNBcmlhRGVzY3JpYmVkYnknLCAndGV4dCcsICd0cmlnZ2VyJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1Rvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUb29sdGlwIHt9XG5cblxuIl19