@biggive/components-angular 202502111828.0.0 → 202502131758.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1361 @@
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 BiggiveAccordion = class BiggiveAccordion {
8
+ z;
9
+ el;
10
+ constructor(c, r, z) {
11
+ this.z = z;
12
+ c.detach();
13
+ this.el = r.nativeElement;
14
+ }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
16
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveAccordion, selector: "biggive-accordion", inputs: { headingColour: "headingColour", spaceBelow: "spaceBelow", textColour: "textColour" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
+ };
18
+ BiggiveAccordion = __decorate([
19
+ ProxyCmp({
20
+ inputs: ['headingColour', 'spaceBelow', 'textColour']
21
+ })
22
+ ], BiggiveAccordion);
23
+ export { BiggiveAccordion };
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveAccordion, decorators: [{
25
+ type: Component,
26
+ args: [{
27
+ selector: 'biggive-accordion',
28
+ changeDetection: ChangeDetectionStrategy.OnPush,
29
+ template: '<ng-content></ng-content>',
30
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
31
+ inputs: ['headingColour', 'spaceBelow', 'textColour'],
32
+ }]
33
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
34
+ let BiggiveAccordionEntry = class BiggiveAccordionEntry {
35
+ z;
36
+ el;
37
+ constructor(c, r, z) {
38
+ this.z = z;
39
+ c.detach();
40
+ this.el = r.nativeElement;
41
+ }
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveAccordionEntry, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
43
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveAccordionEntry, selector: "biggive-accordion-entry", inputs: { heading: "heading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ };
45
+ BiggiveAccordionEntry = __decorate([
46
+ ProxyCmp({
47
+ inputs: ['heading']
48
+ })
49
+ ], BiggiveAccordionEntry);
50
+ export { BiggiveAccordionEntry };
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveAccordionEntry, decorators: [{
52
+ type: Component,
53
+ args: [{
54
+ selector: 'biggive-accordion-entry',
55
+ changeDetection: ChangeDetectionStrategy.OnPush,
56
+ template: '<ng-content></ng-content>',
57
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
58
+ inputs: ['heading'],
59
+ }]
60
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
61
+ let BiggiveArticleCard = class BiggiveArticleCard {
62
+ z;
63
+ el;
64
+ constructor(c, r, z) {
65
+ this.z = z;
66
+ c.detach();
67
+ this.el = r.nativeElement;
68
+ }
69
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveArticleCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
70
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveArticleCard, selector: "biggive-article-card", inputs: { backgroundColour: "backgroundColour", backgroundImageUrl: "backgroundImageUrl", buttonColour: "buttonColour", buttonLabel: "buttonLabel", buttonUrl: "buttonUrl", clipBottomLeftCorner: "clipBottomLeftCorner", clipTopRightCorner: "clipTopRightCorner", date: "date", dateColour: "dateColour", image1AltText: "image1AltText", image1Url: "image1Url", image2AltText: "image2AltText", image2Url: "image2Url", imageLabel: "imageLabel", imageLabelColour: "imageLabelColour", mainImageAltText: "mainImageAltText", mainImageUrl: "mainImageUrl", mainTitle: "mainTitle", mainTitleColour: "mainTitleColour", slug: "slug", slugColour: "slugColour", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
71
+ };
72
+ BiggiveArticleCard = __decorate([
73
+ ProxyCmp({
74
+ inputs: ['backgroundColour', 'backgroundImageUrl', 'buttonColour', 'buttonLabel', 'buttonUrl', 'clipBottomLeftCorner', 'clipTopRightCorner', 'date', 'dateColour', 'image1AltText', 'image1Url', 'image2AltText', 'image2Url', 'imageLabel', 'imageLabelColour', 'mainImageAltText', 'mainImageUrl', 'mainTitle', 'mainTitleColour', 'slug', 'slugColour', 'spaceBelow']
75
+ })
76
+ ], BiggiveArticleCard);
77
+ export { BiggiveArticleCard };
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveArticleCard, decorators: [{
79
+ type: Component,
80
+ args: [{
81
+ selector: 'biggive-article-card',
82
+ changeDetection: ChangeDetectionStrategy.OnPush,
83
+ template: '<ng-content></ng-content>',
84
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
85
+ inputs: ['backgroundColour', 'backgroundImageUrl', 'buttonColour', 'buttonLabel', 'buttonUrl', 'clipBottomLeftCorner', 'clipTopRightCorner', 'date', 'dateColour', 'image1AltText', 'image1Url', 'image2AltText', 'image2Url', 'imageLabel', 'imageLabelColour', 'mainImageAltText', 'mainImageUrl', 'mainTitle', 'mainTitleColour', 'slug', 'slugColour', 'spaceBelow'],
86
+ }]
87
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
88
+ let BiggiveBackToTop = class BiggiveBackToTop {
89
+ z;
90
+ el;
91
+ constructor(c, r, z) {
92
+ this.z = z;
93
+ c.detach();
94
+ this.el = r.nativeElement;
95
+ }
96
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveBackToTop, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
97
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveBackToTop, selector: "biggive-back-to-top", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
98
+ };
99
+ BiggiveBackToTop = __decorate([
100
+ ProxyCmp({})
101
+ ], BiggiveBackToTop);
102
+ export { BiggiveBackToTop };
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveBackToTop, decorators: [{
104
+ type: Component,
105
+ args: [{
106
+ selector: 'biggive-back-to-top',
107
+ changeDetection: ChangeDetectionStrategy.OnPush,
108
+ template: '<ng-content></ng-content>',
109
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
110
+ inputs: [],
111
+ }]
112
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
113
+ let BiggiveBasicCard = class BiggiveBasicCard {
114
+ z;
115
+ el;
116
+ constructor(c, r, z) {
117
+ this.z = z;
118
+ c.detach();
119
+ this.el = r.nativeElement;
120
+ }
121
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveBasicCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
122
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveBasicCard, selector: "biggive-basic-card", inputs: { addAnimation: "addAnimation", backgroundColour: "backgroundColour", backgroundImageUrl: "backgroundImageUrl", buttonAlign: "buttonAlign", buttonColourScheme: "buttonColourScheme", buttonLabel: "buttonLabel", buttonStyle: "buttonStyle", buttonUrl: "buttonUrl", cardColour: "cardColour", clipBottomLeftCorner: "clipBottomLeftCorner", clipTopRightCorner: "clipTopRightCorner", headingLevel: "headingLevel", icon: "icon", iconColour: "iconColour", mainImageAltText: "mainImageAltText", mainImageUrl: "mainImageUrl", mainTitle: "mainTitle", spaceBelow: "spaceBelow", subtitle: "subtitle", teaser: "teaser", textColour: "textColour" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
+ };
124
+ BiggiveBasicCard = __decorate([
125
+ ProxyCmp({
126
+ inputs: ['addAnimation', 'backgroundColour', 'backgroundImageUrl', 'buttonAlign', 'buttonColourScheme', 'buttonLabel', 'buttonStyle', 'buttonUrl', 'cardColour', 'clipBottomLeftCorner', 'clipTopRightCorner', 'headingLevel', 'icon', 'iconColour', 'mainImageAltText', 'mainImageUrl', 'mainTitle', 'spaceBelow', 'subtitle', 'teaser', 'textColour']
127
+ })
128
+ ], BiggiveBasicCard);
129
+ export { BiggiveBasicCard };
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveBasicCard, decorators: [{
131
+ type: Component,
132
+ args: [{
133
+ selector: 'biggive-basic-card',
134
+ changeDetection: ChangeDetectionStrategy.OnPush,
135
+ template: '<ng-content></ng-content>',
136
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
137
+ inputs: ['addAnimation', 'backgroundColour', 'backgroundImageUrl', 'buttonAlign', 'buttonColourScheme', 'buttonLabel', 'buttonStyle', 'buttonUrl', 'cardColour', 'clipBottomLeftCorner', 'clipTopRightCorner', 'headingLevel', 'icon', 'iconColour', 'mainImageAltText', 'mainImageUrl', 'mainTitle', 'spaceBelow', 'subtitle', 'teaser', 'textColour'],
138
+ }]
139
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
140
+ let BiggiveBiographyCard = class BiggiveBiographyCard {
141
+ z;
142
+ el;
143
+ constructor(c, r, z) {
144
+ this.z = z;
145
+ c.detach();
146
+ this.el = r.nativeElement;
147
+ }
148
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveBiographyCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
149
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveBiographyCard, selector: "biggive-biography-card", inputs: { backgroundColour: "backgroundColour", borderWidth: "borderWidth", circle: "circle", circleColour: "circleColour", fullName: "fullName", imageStyle: "imageStyle", imageUrl: "imageUrl", jobTitle: "jobTitle", ratio: "ratio", rounded: "rounded", spaceBelow: "spaceBelow", textAlign: "textAlign", textColour: "textColour", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
150
+ };
151
+ BiggiveBiographyCard = __decorate([
152
+ ProxyCmp({
153
+ inputs: ['backgroundColour', 'borderWidth', 'circle', 'circleColour', 'fullName', 'imageStyle', 'imageUrl', 'jobTitle', 'ratio', 'rounded', 'spaceBelow', 'textAlign', 'textColour', 'url']
154
+ })
155
+ ], BiggiveBiographyCard);
156
+ export { BiggiveBiographyCard };
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveBiographyCard, decorators: [{
158
+ type: Component,
159
+ args: [{
160
+ selector: 'biggive-biography-card',
161
+ changeDetection: ChangeDetectionStrategy.OnPush,
162
+ template: '<ng-content></ng-content>',
163
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
164
+ inputs: ['backgroundColour', 'borderWidth', 'circle', 'circleColour', 'fullName', 'imageStyle', 'imageUrl', 'jobTitle', 'ratio', 'rounded', 'spaceBelow', 'textAlign', 'textColour', 'url'],
165
+ }]
166
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
167
+ let BiggiveBoxedContent = class BiggiveBoxedContent {
168
+ z;
169
+ el;
170
+ constructor(c, r, z) {
171
+ this.z = z;
172
+ c.detach();
173
+ this.el = r.nativeElement;
174
+ }
175
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveBoxedContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
176
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveBoxedContent, selector: "biggive-boxed-content", inputs: { backgroundColour: "backgroundColour", horizontalPadding: "horizontalPadding", shadow: "shadow", spaceBelow: "spaceBelow", verticalPadding: "verticalPadding" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
177
+ };
178
+ BiggiveBoxedContent = __decorate([
179
+ ProxyCmp({
180
+ inputs: ['backgroundColour', 'horizontalPadding', 'shadow', 'spaceBelow', 'verticalPadding']
181
+ })
182
+ ], BiggiveBoxedContent);
183
+ export { BiggiveBoxedContent };
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveBoxedContent, decorators: [{
185
+ type: Component,
186
+ args: [{
187
+ selector: 'biggive-boxed-content',
188
+ changeDetection: ChangeDetectionStrategy.OnPush,
189
+ template: '<ng-content></ng-content>',
190
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
191
+ inputs: ['backgroundColour', 'horizontalPadding', 'shadow', 'spaceBelow', 'verticalPadding'],
192
+ }]
193
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
194
+ let BiggiveBrandedImage = class BiggiveBrandedImage {
195
+ z;
196
+ el;
197
+ constructor(c, r, z) {
198
+ this.z = z;
199
+ c.detach();
200
+ this.el = r.nativeElement;
201
+ }
202
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveBrandedImage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
203
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveBrandedImage, selector: "biggive-branded-image", inputs: { charityLocation: "charityLocation", charityName: "charityName", charityUrl: "charityUrl", imageUrl: "imageUrl", logoUrl: "logoUrl", slug: "slug", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
204
+ };
205
+ BiggiveBrandedImage = __decorate([
206
+ ProxyCmp({
207
+ inputs: ['charityLocation', 'charityName', 'charityUrl', 'imageUrl', 'logoUrl', 'slug', 'spaceBelow']
208
+ })
209
+ ], BiggiveBrandedImage);
210
+ export { BiggiveBrandedImage };
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveBrandedImage, decorators: [{
212
+ type: Component,
213
+ args: [{
214
+ selector: 'biggive-branded-image',
215
+ changeDetection: ChangeDetectionStrategy.OnPush,
216
+ template: '<ng-content></ng-content>',
217
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
218
+ inputs: ['charityLocation', 'charityName', 'charityUrl', 'imageUrl', 'logoUrl', 'slug', 'spaceBelow'],
219
+ }]
220
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
221
+ let BiggiveButton = class BiggiveButton {
222
+ z;
223
+ el;
224
+ constructor(c, r, z) {
225
+ this.z = z;
226
+ c.detach();
227
+ this.el = r.nativeElement;
228
+ proxyOutputs(this, this.el, ['doButtonClick']);
229
+ }
230
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
231
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveButton, selector: "biggive-button", inputs: { buttonId: "buttonId", centered: "centered", colourScheme: "colourScheme", fullWidth: "fullWidth", label: "label", openInNewTab: "openInNewTab", rounded: "rounded", size: "size", spaceBelow: "spaceBelow", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
232
+ };
233
+ BiggiveButton = __decorate([
234
+ ProxyCmp({
235
+ inputs: ['buttonId', 'centered', 'colourScheme', 'fullWidth', 'label', 'openInNewTab', 'rounded', 'size', 'spaceBelow', 'url']
236
+ })
237
+ ], BiggiveButton);
238
+ export { BiggiveButton };
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveButton, decorators: [{
240
+ type: Component,
241
+ args: [{
242
+ selector: 'biggive-button',
243
+ changeDetection: ChangeDetectionStrategy.OnPush,
244
+ template: '<ng-content></ng-content>',
245
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
246
+ inputs: ['buttonId', 'centered', 'colourScheme', 'fullWidth', 'label', 'openInNewTab', 'rounded', 'size', 'spaceBelow', 'url'],
247
+ }]
248
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
249
+ let BiggiveCallToAction = class BiggiveCallToAction {
250
+ z;
251
+ el;
252
+ constructor(c, r, z) {
253
+ this.z = z;
254
+ c.detach();
255
+ this.el = r.nativeElement;
256
+ }
257
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveCallToAction, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
258
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveCallToAction, selector: "biggive-call-to-action", inputs: { defaultTextColour: "defaultTextColour", mainTitle: "mainTitle", mainTitleColour: "mainTitleColour", mainTitleSize: "mainTitleSize", primaryButtonColourScheme: "primaryButtonColourScheme", primaryButtonLabel: "primaryButtonLabel", primaryButtonUrl: "primaryButtonUrl", secondaryButtonColourScheme: "secondaryButtonColourScheme", secondaryButtonLabel: "secondaryButtonLabel", secondaryButtonUrl: "secondaryButtonUrl", slug: "slug", slugColour: "slugColour", slugSize: "slugSize", spaceAbove: "spaceAbove", spaceBelow: "spaceBelow", subtitle: "subtitle", subtitleColour: "subtitleColour", subtitleSize: "subtitleSize", teaser: "teaser", teaserColour: "teaserColour" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
259
+ };
260
+ BiggiveCallToAction = __decorate([
261
+ ProxyCmp({
262
+ inputs: ['defaultTextColour', 'mainTitle', 'mainTitleColour', 'mainTitleSize', 'primaryButtonColourScheme', 'primaryButtonLabel', 'primaryButtonUrl', 'secondaryButtonColourScheme', 'secondaryButtonLabel', 'secondaryButtonUrl', 'slug', 'slugColour', 'slugSize', 'spaceAbove', 'spaceBelow', 'subtitle', 'subtitleColour', 'subtitleSize', 'teaser', 'teaserColour']
263
+ })
264
+ ], BiggiveCallToAction);
265
+ export { BiggiveCallToAction };
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveCallToAction, decorators: [{
267
+ type: Component,
268
+ args: [{
269
+ selector: 'biggive-call-to-action',
270
+ changeDetection: ChangeDetectionStrategy.OnPush,
271
+ template: '<ng-content></ng-content>',
272
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
273
+ inputs: ['defaultTextColour', 'mainTitle', 'mainTitleColour', 'mainTitleSize', 'primaryButtonColourScheme', 'primaryButtonLabel', 'primaryButtonUrl', 'secondaryButtonColourScheme', 'secondaryButtonLabel', 'secondaryButtonUrl', 'slug', 'slugColour', 'slugSize', 'spaceAbove', 'spaceBelow', 'subtitle', 'subtitleColour', 'subtitleSize', 'teaser', 'teaserColour'],
274
+ }]
275
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
276
+ let BiggiveCampaignCard = class BiggiveCampaignCard {
277
+ z;
278
+ el;
279
+ constructor(c, r, z) {
280
+ this.z = z;
281
+ c.detach();
282
+ this.el = r.nativeElement;
283
+ proxyOutputs(this, this.el, ['doCardGeneralClick']);
284
+ }
285
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveCampaignCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
286
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveCampaignCard, selector: "biggive-campaign-card", inputs: { banner: "banner", campaignTitle: "campaignTitle", campaignType: "campaignType", datetime: "datetime", donateButtonColourScheme: "donateButtonColourScheme", donateButtonLabel: "donateButtonLabel", donateButtonUrl: "donateButtonUrl", isFutureCampaign: "isFutureCampaign", isPastCampaign: "isPastCampaign", moreInfoButtonColourScheme: "moreInfoButtonColourScheme", moreInfoButtonLabel: "moreInfoButtonLabel", moreInfoButtonUrl: "moreInfoButtonUrl", organisationName: "organisationName", primaryFigureAmount: "primaryFigureAmount", primaryFigureLabel: "primaryFigureLabel", progressBarCounter: "progressBarCounter", secondaryFigureAmount: "secondaryFigureAmount", secondaryFigureLabel: "secondaryFigureLabel", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
287
+ };
288
+ BiggiveCampaignCard = __decorate([
289
+ ProxyCmp({
290
+ inputs: ['banner', 'campaignTitle', 'campaignType', 'datetime', 'donateButtonColourScheme', 'donateButtonLabel', 'donateButtonUrl', 'isFutureCampaign', 'isPastCampaign', 'moreInfoButtonColourScheme', 'moreInfoButtonLabel', 'moreInfoButtonUrl', 'organisationName', 'primaryFigureAmount', 'primaryFigureLabel', 'progressBarCounter', 'secondaryFigureAmount', 'secondaryFigureLabel', 'spaceBelow']
291
+ })
292
+ ], BiggiveCampaignCard);
293
+ export { BiggiveCampaignCard };
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveCampaignCard, decorators: [{
295
+ type: Component,
296
+ args: [{
297
+ selector: 'biggive-campaign-card',
298
+ changeDetection: ChangeDetectionStrategy.OnPush,
299
+ template: '<ng-content></ng-content>',
300
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
301
+ inputs: ['banner', 'campaignTitle', 'campaignType', 'datetime', 'donateButtonColourScheme', 'donateButtonLabel', 'donateButtonUrl', 'isFutureCampaign', 'isPastCampaign', 'moreInfoButtonColourScheme', 'moreInfoButtonLabel', 'moreInfoButtonUrl', 'organisationName', 'primaryFigureAmount', 'primaryFigureLabel', 'progressBarCounter', 'secondaryFigureAmount', 'secondaryFigureLabel', 'spaceBelow'],
302
+ }]
303
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
304
+ let BiggiveCampaignCardFilterGrid = class BiggiveCampaignCardFilterGrid {
305
+ z;
306
+ el;
307
+ constructor(c, r, z) {
308
+ this.z = z;
309
+ c.detach();
310
+ this.el = r.nativeElement;
311
+ proxyOutputs(this, this.el, ['doSearchAndFilterUpdate']);
312
+ }
313
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveCampaignCardFilterGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
314
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveCampaignCardFilterGrid, selector: "biggive-campaign-card-filter-grid", inputs: { beneficiaryOptions: "beneficiaryOptions", buttonText: "buttonText", categoryOptions: "categoryOptions", intro: "intro", locationOptions: "locationOptions", placeholderText: "placeholderText", searchText: "searchText", selectedFilterBeneficiary: "selectedFilterBeneficiary", selectedFilterCategory: "selectedFilterCategory", selectedFilterLocation: "selectedFilterLocation", selectedSortByOption: "selectedSortByOption", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
315
+ };
316
+ BiggiveCampaignCardFilterGrid = __decorate([
317
+ ProxyCmp({
318
+ inputs: ['beneficiaryOptions', 'buttonText', 'categoryOptions', 'intro', 'locationOptions', 'placeholderText', 'searchText', 'selectedFilterBeneficiary', 'selectedFilterCategory', 'selectedFilterLocation', 'selectedSortByOption', 'spaceBelow'],
319
+ methods: ['unfocusInputs']
320
+ })
321
+ ], BiggiveCampaignCardFilterGrid);
322
+ export { BiggiveCampaignCardFilterGrid };
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveCampaignCardFilterGrid, decorators: [{
324
+ type: Component,
325
+ args: [{
326
+ selector: 'biggive-campaign-card-filter-grid',
327
+ changeDetection: ChangeDetectionStrategy.OnPush,
328
+ template: '<ng-content></ng-content>',
329
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
330
+ inputs: ['beneficiaryOptions', 'buttonText', 'categoryOptions', 'intro', 'locationOptions', 'placeholderText', 'searchText', 'selectedFilterBeneficiary', 'selectedFilterCategory', 'selectedFilterLocation', 'selectedSortByOption', 'spaceBelow'],
331
+ }]
332
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
333
+ let BiggiveCampaignHighlights = class BiggiveCampaignHighlights {
334
+ z;
335
+ el;
336
+ constructor(c, r, z) {
337
+ this.z = z;
338
+ c.detach();
339
+ this.el = r.nativeElement;
340
+ }
341
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveCampaignHighlights, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
342
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveCampaignHighlights, selector: "biggive-campaign-highlights", inputs: { banner: "banner", campaignTitle: "campaignTitle", championName: "championName", championUrl: "championUrl", primaryFigureAmount: "primaryFigureAmount", primaryFigureLabel: "primaryFigureLabel", primaryStatIcon: "primaryStatIcon", primaryStatText: "primaryStatText", progressBarCounter: "progressBarCounter", secondaryFigureAmount: "secondaryFigureAmount", secondaryFigureLabel: "secondaryFigureLabel", secondaryStatIcon: "secondaryStatIcon", secondaryStatText: "secondaryStatText", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
343
+ };
344
+ BiggiveCampaignHighlights = __decorate([
345
+ ProxyCmp({
346
+ inputs: ['banner', 'campaignTitle', 'championName', 'championUrl', 'primaryFigureAmount', 'primaryFigureLabel', 'primaryStatIcon', 'primaryStatText', 'progressBarCounter', 'secondaryFigureAmount', 'secondaryFigureLabel', 'secondaryStatIcon', 'secondaryStatText', 'spaceBelow']
347
+ })
348
+ ], BiggiveCampaignHighlights);
349
+ export { BiggiveCampaignHighlights };
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveCampaignHighlights, decorators: [{
351
+ type: Component,
352
+ args: [{
353
+ selector: 'biggive-campaign-highlights',
354
+ changeDetection: ChangeDetectionStrategy.OnPush,
355
+ template: '<ng-content></ng-content>',
356
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
357
+ inputs: ['banner', 'campaignTitle', 'championName', 'championUrl', 'primaryFigureAmount', 'primaryFigureLabel', 'primaryStatIcon', 'primaryStatText', 'progressBarCounter', 'secondaryFigureAmount', 'secondaryFigureLabel', 'secondaryStatIcon', 'secondaryStatText', 'spaceBelow'],
358
+ }]
359
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
360
+ let BiggiveContainerCard = class BiggiveContainerCard {
361
+ z;
362
+ el;
363
+ constructor(c, r, z) {
364
+ this.z = z;
365
+ c.detach();
366
+ this.el = r.nativeElement;
367
+ }
368
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveContainerCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
369
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveContainerCard, selector: "biggive-container-card", inputs: { backgroundColour: "backgroundColour", backgroundImageUrl: "backgroundImageUrl", cardColour: "cardColour", clipBottomLeftCorner: "clipBottomLeftCorner", clipTopRightCorner: "clipTopRightCorner", headingLevel: "headingLevel", spaceBelow: "spaceBelow", textColour: "textColour" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
370
+ };
371
+ BiggiveContainerCard = __decorate([
372
+ ProxyCmp({
373
+ inputs: ['backgroundColour', 'backgroundImageUrl', 'cardColour', 'clipBottomLeftCorner', 'clipTopRightCorner', 'headingLevel', 'spaceBelow', 'textColour']
374
+ })
375
+ ], BiggiveContainerCard);
376
+ export { BiggiveContainerCard };
377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveContainerCard, decorators: [{
378
+ type: Component,
379
+ args: [{
380
+ selector: 'biggive-container-card',
381
+ changeDetection: ChangeDetectionStrategy.OnPush,
382
+ template: '<ng-content></ng-content>',
383
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
384
+ inputs: ['backgroundColour', 'backgroundImageUrl', 'cardColour', 'clipBottomLeftCorner', 'clipTopRightCorner', 'headingLevel', 'spaceBelow', 'textColour'],
385
+ }]
386
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
387
+ let BiggiveCookieBanner = class BiggiveCookieBanner {
388
+ z;
389
+ el;
390
+ constructor(c, r, z) {
391
+ this.z = z;
392
+ c.detach();
393
+ this.el = r.nativeElement;
394
+ proxyOutputs(this, this.el, ['preferenceModalClosed', 'cookieBannerAcceptAllSelected', 'cookieBannerSavePreferencesSelected']);
395
+ }
396
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveCookieBanner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
397
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveCookieBanner, selector: "biggive-cookie-banner", inputs: { autoOpenPreferences: "autoOpenPreferences", blogUriPrefix: "blogUriPrefix", previouslyAgreedCookiePreferences: "previouslyAgreedCookiePreferences" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
398
+ };
399
+ BiggiveCookieBanner = __decorate([
400
+ ProxyCmp({
401
+ inputs: ['autoOpenPreferences', 'blogUriPrefix', 'previouslyAgreedCookiePreferences']
402
+ })
403
+ ], BiggiveCookieBanner);
404
+ export { BiggiveCookieBanner };
405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveCookieBanner, decorators: [{
406
+ type: Component,
407
+ args: [{
408
+ selector: 'biggive-cookie-banner',
409
+ changeDetection: ChangeDetectionStrategy.OnPush,
410
+ template: '<ng-content></ng-content>',
411
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
412
+ inputs: ['autoOpenPreferences', 'blogUriPrefix', 'previouslyAgreedCookiePreferences'],
413
+ }]
414
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
415
+ let BiggiveFooter = class BiggiveFooter {
416
+ z;
417
+ el;
418
+ constructor(c, r, z) {
419
+ this.z = z;
420
+ c.detach();
421
+ this.el = r.nativeElement;
422
+ }
423
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
424
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveFooter, selector: "biggive-footer", inputs: { blogUrlPrefix: "blogUrlPrefix", donateUrlPrefix: "donateUrlPrefix", experienceUrlPrefix: "experienceUrlPrefix", headingLevel: "headingLevel", smallCharityWeekEnabled: "smallCharityWeekEnabled", usePresetFooter: "usePresetFooter" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
425
+ };
426
+ BiggiveFooter = __decorate([
427
+ ProxyCmp({
428
+ inputs: ['blogUrlPrefix', 'donateUrlPrefix', 'experienceUrlPrefix', 'headingLevel', 'smallCharityWeekEnabled', 'usePresetFooter']
429
+ })
430
+ ], BiggiveFooter);
431
+ export { BiggiveFooter };
432
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveFooter, decorators: [{
433
+ type: Component,
434
+ args: [{
435
+ selector: 'biggive-footer',
436
+ changeDetection: ChangeDetectionStrategy.OnPush,
437
+ template: '<ng-content></ng-content>',
438
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
439
+ inputs: ['blogUrlPrefix', 'donateUrlPrefix', 'experienceUrlPrefix', 'headingLevel', 'smallCharityWeekEnabled', 'usePresetFooter'],
440
+ }]
441
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
442
+ let BiggiveForm = class BiggiveForm {
443
+ z;
444
+ el;
445
+ constructor(c, r, z) {
446
+ this.z = z;
447
+ c.detach();
448
+ this.el = r.nativeElement;
449
+ }
450
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveForm, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
451
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveForm, selector: "biggive-form", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
452
+ };
453
+ BiggiveForm = __decorate([
454
+ ProxyCmp({})
455
+ ], BiggiveForm);
456
+ export { BiggiveForm };
457
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveForm, decorators: [{
458
+ type: Component,
459
+ args: [{
460
+ selector: 'biggive-form',
461
+ changeDetection: ChangeDetectionStrategy.OnPush,
462
+ template: '<ng-content></ng-content>',
463
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
464
+ inputs: [],
465
+ }]
466
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
467
+ let BiggiveFormFieldSelect = class BiggiveFormFieldSelect {
468
+ z;
469
+ el;
470
+ constructor(c, r, z) {
471
+ this.z = z;
472
+ c.detach();
473
+ this.el = r.nativeElement;
474
+ }
475
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveFormFieldSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
476
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveFormFieldSelect, selector: "biggive-form-field-select", inputs: { backgroundColour: "backgroundColour", options: "options", placeholder: "placeholder", prompt: "prompt", selectStyle: "selectStyle", selectedLabel: "selectedLabel", selectedOptionColour: "selectedOptionColour", selectedValue: "selectedValue", selectionChanged: "selectionChanged", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
477
+ };
478
+ BiggiveFormFieldSelect = __decorate([
479
+ ProxyCmp({
480
+ inputs: ['backgroundColour', 'options', 'placeholder', 'prompt', 'selectStyle', 'selectedLabel', 'selectedOptionColour', 'selectedValue', 'selectionChanged', 'spaceBelow']
481
+ })
482
+ ], BiggiveFormFieldSelect);
483
+ export { BiggiveFormFieldSelect };
484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveFormFieldSelect, decorators: [{
485
+ type: Component,
486
+ args: [{
487
+ selector: 'biggive-form-field-select',
488
+ changeDetection: ChangeDetectionStrategy.OnPush,
489
+ template: '<ng-content></ng-content>',
490
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
491
+ inputs: ['backgroundColour', 'options', 'placeholder', 'prompt', 'selectStyle', 'selectedLabel', 'selectedOptionColour', 'selectedValue', 'selectionChanged', 'spaceBelow'],
492
+ }]
493
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
494
+ let BiggiveFormattedText = class BiggiveFormattedText {
495
+ z;
496
+ el;
497
+ constructor(c, r, z) {
498
+ this.z = z;
499
+ c.detach();
500
+ this.el = r.nativeElement;
501
+ }
502
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveFormattedText, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
503
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveFormattedText, selector: "biggive-formatted-text", inputs: { defaultTextColour: "defaultTextColour", maxWidth: "maxWidth", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
504
+ };
505
+ BiggiveFormattedText = __decorate([
506
+ ProxyCmp({
507
+ inputs: ['defaultTextColour', 'maxWidth', 'spaceBelow']
508
+ })
509
+ ], BiggiveFormattedText);
510
+ export { BiggiveFormattedText };
511
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveFormattedText, decorators: [{
512
+ type: Component,
513
+ args: [{
514
+ selector: 'biggive-formatted-text',
515
+ changeDetection: ChangeDetectionStrategy.OnPush,
516
+ template: '<ng-content></ng-content>',
517
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
518
+ inputs: ['defaultTextColour', 'maxWidth', 'spaceBelow'],
519
+ }]
520
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
521
+ let BiggiveGrid = class BiggiveGrid {
522
+ z;
523
+ el;
524
+ constructor(c, r, z) {
525
+ this.z = z;
526
+ c.detach();
527
+ this.el = r.nativeElement;
528
+ }
529
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
530
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveGrid, selector: "biggive-grid", inputs: { columnCount: "columnCount", columnGap: "columnGap", spaceBelow: "spaceBelow", spaceBetween: "spaceBetween" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
531
+ };
532
+ BiggiveGrid = __decorate([
533
+ ProxyCmp({
534
+ inputs: ['columnCount', 'columnGap', 'spaceBelow', 'spaceBetween']
535
+ })
536
+ ], BiggiveGrid);
537
+ export { BiggiveGrid };
538
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveGrid, decorators: [{
539
+ type: Component,
540
+ args: [{
541
+ selector: 'biggive-grid',
542
+ changeDetection: ChangeDetectionStrategy.OnPush,
543
+ template: '<ng-content></ng-content>',
544
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
545
+ inputs: ['columnCount', 'columnGap', 'spaceBelow', 'spaceBetween'],
546
+ }]
547
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
548
+ let BiggiveHeading = class BiggiveHeading {
549
+ z;
550
+ el;
551
+ constructor(c, r, z) {
552
+ this.z = z;
553
+ c.detach();
554
+ this.el = r.nativeElement;
555
+ }
556
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveHeading, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
557
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveHeading, selector: "biggive-heading", inputs: { align: "align", colour: "colour", htmlElement: "htmlElement", icon: "icon", iconColour: "iconColour", size: "size", spaceAbove: "spaceAbove", spaceBelow: "spaceBelow", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
558
+ };
559
+ BiggiveHeading = __decorate([
560
+ ProxyCmp({
561
+ inputs: ['align', 'colour', 'htmlElement', 'icon', 'iconColour', 'size', 'spaceAbove', 'spaceBelow', 'text']
562
+ })
563
+ ], BiggiveHeading);
564
+ export { BiggiveHeading };
565
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveHeading, decorators: [{
566
+ type: Component,
567
+ args: [{
568
+ selector: 'biggive-heading',
569
+ changeDetection: ChangeDetectionStrategy.OnPush,
570
+ template: '<ng-content></ng-content>',
571
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
572
+ inputs: ['align', 'colour', 'htmlElement', 'icon', 'iconColour', 'size', 'spaceAbove', 'spaceBelow', 'text'],
573
+ }]
574
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
575
+ let BiggiveHeroImage = class BiggiveHeroImage {
576
+ z;
577
+ el;
578
+ constructor(c, r, z) {
579
+ this.z = z;
580
+ c.detach();
581
+ this.el = r.nativeElement;
582
+ }
583
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveHeroImage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
584
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveHeroImage, selector: "biggive-hero-image", inputs: { buttonColourScheme: "buttonColourScheme", buttonLabel: "buttonLabel", buttonUrl: "buttonUrl", colourScheme: "colourScheme", logo: "logo", logoAltText: "logoAltText", logoHeight: "logoHeight", mainImage: "mainImage", mainImageAlignHorizontal: "mainImageAlignHorizontal", mainImageAlignVertical: "mainImageAlignVertical", mainImageShape: "mainImageShape", mainTitle: "mainTitle", mainTitleColour: "mainTitleColour", slug: "slug", slugColour: "slugColour", spaceBelow: "spaceBelow", teaser: "teaser", teaserColour: "teaserColour" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
585
+ };
586
+ BiggiveHeroImage = __decorate([
587
+ ProxyCmp({
588
+ inputs: ['buttonColourScheme', 'buttonLabel', 'buttonUrl', 'colourScheme', 'logo', 'logoAltText', 'logoHeight', 'mainImage', 'mainImageAlignHorizontal', 'mainImageAlignVertical', 'mainImageShape', 'mainTitle', 'mainTitleColour', 'slug', 'slugColour', 'spaceBelow', 'teaser', 'teaserColour']
589
+ })
590
+ ], BiggiveHeroImage);
591
+ export { BiggiveHeroImage };
592
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveHeroImage, decorators: [{
593
+ type: Component,
594
+ args: [{
595
+ selector: 'biggive-hero-image',
596
+ changeDetection: ChangeDetectionStrategy.OnPush,
597
+ template: '<ng-content></ng-content>',
598
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
599
+ inputs: ['buttonColourScheme', 'buttonLabel', 'buttonUrl', 'colourScheme', 'logo', 'logoAltText', 'logoHeight', 'mainImage', 'mainImageAlignHorizontal', 'mainImageAlignVertical', 'mainImageShape', 'mainTitle', 'mainTitleColour', 'slug', 'slugColour', 'spaceBelow', 'teaser', 'teaserColour'],
600
+ }]
601
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
602
+ let BiggiveIconButton = class BiggiveIconButton {
603
+ z;
604
+ el;
605
+ constructor(c, r, z) {
606
+ this.z = z;
607
+ c.detach();
608
+ this.el = r.nativeElement;
609
+ proxyOutputs(this, this.el, ['doButtonClick']);
610
+ }
611
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveIconButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
612
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveIconButton, selector: "biggive-icon-button", inputs: { arrow: "arrow", arrowColour: "arrowColour", backgroundColour: "backgroundColour", backgroundPadding: "backgroundPadding", buttonId: "buttonId", centered: "centered", circle: "circle", icon: "icon", openInNewTab: "openInNewTab", rounded: "rounded", shadow: "shadow", size: "size", spaceBelow: "spaceBelow", text: "text", textColour: "textColour", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
613
+ };
614
+ BiggiveIconButton = __decorate([
615
+ ProxyCmp({
616
+ inputs: ['arrow', 'arrowColour', 'backgroundColour', 'backgroundPadding', 'buttonId', 'centered', 'circle', 'icon', 'openInNewTab', 'rounded', 'shadow', 'size', 'spaceBelow', 'text', 'textColour', 'url']
617
+ })
618
+ ], BiggiveIconButton);
619
+ export { BiggiveIconButton };
620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveIconButton, decorators: [{
621
+ type: Component,
622
+ args: [{
623
+ selector: 'biggive-icon-button',
624
+ changeDetection: ChangeDetectionStrategy.OnPush,
625
+ template: '<ng-content></ng-content>',
626
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
627
+ inputs: ['arrow', 'arrowColour', 'backgroundColour', 'backgroundPadding', 'buttonId', 'centered', 'circle', 'icon', 'openInNewTab', 'rounded', 'shadow', 'size', 'spaceBelow', 'text', 'textColour', 'url'],
628
+ }]
629
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
630
+ let BiggiveIconGroup = class BiggiveIconGroup {
631
+ z;
632
+ el;
633
+ constructor(c, r, z) {
634
+ this.z = z;
635
+ c.detach();
636
+ this.el = r.nativeElement;
637
+ }
638
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveIconGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
639
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveIconGroup, selector: "biggive-icon-group", inputs: { label: "label", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
640
+ };
641
+ BiggiveIconGroup = __decorate([
642
+ ProxyCmp({
643
+ inputs: ['label', 'spaceBelow']
644
+ })
645
+ ], BiggiveIconGroup);
646
+ export { BiggiveIconGroup };
647
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveIconGroup, decorators: [{
648
+ type: Component,
649
+ args: [{
650
+ selector: 'biggive-icon-group',
651
+ changeDetection: ChangeDetectionStrategy.OnPush,
652
+ template: '<ng-content></ng-content>',
653
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
654
+ inputs: ['label', 'spaceBelow'],
655
+ }]
656
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
657
+ let BiggiveImage = class BiggiveImage {
658
+ z;
659
+ el;
660
+ constructor(c, r, z) {
661
+ this.z = z;
662
+ c.detach();
663
+ this.el = r.nativeElement;
664
+ }
665
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveImage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
666
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveImage, selector: "biggive-image", inputs: { height: "height", imageAltText: "imageAltText", imageUrl: "imageUrl", sizeUnit: "sizeUnit", spaceAbove: "spaceAbove", spaceBelow: "spaceBelow", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
667
+ };
668
+ BiggiveImage = __decorate([
669
+ ProxyCmp({
670
+ inputs: ['height', 'imageAltText', 'imageUrl', 'sizeUnit', 'spaceAbove', 'spaceBelow', 'width']
671
+ })
672
+ ], BiggiveImage);
673
+ export { BiggiveImage };
674
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveImage, decorators: [{
675
+ type: Component,
676
+ args: [{
677
+ selector: 'biggive-image',
678
+ changeDetection: ChangeDetectionStrategy.OnPush,
679
+ template: '<ng-content></ng-content>',
680
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
681
+ inputs: ['height', 'imageAltText', 'imageUrl', 'sizeUnit', 'spaceAbove', 'spaceBelow', 'width'],
682
+ }]
683
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
684
+ let BiggiveImageButton = class BiggiveImageButton {
685
+ z;
686
+ el;
687
+ constructor(c, r, z) {
688
+ this.z = z;
689
+ c.detach();
690
+ this.el = r.nativeElement;
691
+ proxyOutputs(this, this.el, ['doButtonClick']);
692
+ }
693
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveImageButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
694
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveImageButton, selector: "biggive-image-button", inputs: { arrow: "arrow", arrowColour: "arrowColour", backgroundColour: "backgroundColour", backgroundPadding: "backgroundPadding", buttonId: "buttonId", centered: "centered", circle: "circle", imageStyle: "imageStyle", imageUrl: "imageUrl", openInNewTab: "openInNewTab", rounded: "rounded", shadow: "shadow", size: "size", spaceBelow: "spaceBelow", text: "text", textColour: "textColour", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
695
+ };
696
+ BiggiveImageButton = __decorate([
697
+ ProxyCmp({
698
+ inputs: ['arrow', 'arrowColour', 'backgroundColour', 'backgroundPadding', 'buttonId', 'centered', 'circle', 'imageStyle', 'imageUrl', 'openInNewTab', 'rounded', 'shadow', 'size', 'spaceBelow', 'text', 'textColour', 'url']
699
+ })
700
+ ], BiggiveImageButton);
701
+ export { BiggiveImageButton };
702
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveImageButton, decorators: [{
703
+ type: Component,
704
+ args: [{
705
+ selector: 'biggive-image-button',
706
+ changeDetection: ChangeDetectionStrategy.OnPush,
707
+ template: '<ng-content></ng-content>',
708
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
709
+ inputs: ['arrow', 'arrowColour', 'backgroundColour', 'backgroundPadding', 'buttonId', 'centered', 'circle', 'imageStyle', 'imageUrl', 'openInNewTab', 'rounded', 'shadow', 'size', 'spaceBelow', 'text', 'textColour', 'url'],
710
+ }]
711
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
712
+ let BiggiveImageCard = class BiggiveImageCard {
713
+ z;
714
+ el;
715
+ constructor(c, r, z) {
716
+ this.z = z;
717
+ c.detach();
718
+ this.el = r.nativeElement;
719
+ }
720
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveImageCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
721
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveImageCard, selector: "biggive-image-card", inputs: { addAnimation: "addAnimation", backgroundColour: "backgroundColour", buttonAlign: "buttonAlign", buttonColourScheme: "buttonColourScheme", buttonLabel: "buttonLabel", buttonStyle: "buttonStyle", buttonUrl: "buttonUrl", clipBottomLeftCorner: "clipBottomLeftCorner", clipTopRightCorner: "clipTopRightCorner", mainImageAltText: "mainImageAltText", mainImageUrl: "mainImageUrl", spaceBelow: "spaceBelow", teaser: "teaser", teaserColour: "teaserColour", textAlign: "textAlign" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
722
+ };
723
+ BiggiveImageCard = __decorate([
724
+ ProxyCmp({
725
+ inputs: ['addAnimation', 'backgroundColour', 'buttonAlign', 'buttonColourScheme', 'buttonLabel', 'buttonStyle', 'buttonUrl', 'clipBottomLeftCorner', 'clipTopRightCorner', 'mainImageAltText', 'mainImageUrl', 'spaceBelow', 'teaser', 'teaserColour', 'textAlign']
726
+ })
727
+ ], BiggiveImageCard);
728
+ export { BiggiveImageCard };
729
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveImageCard, decorators: [{
730
+ type: Component,
731
+ args: [{
732
+ selector: 'biggive-image-card',
733
+ changeDetection: ChangeDetectionStrategy.OnPush,
734
+ template: '<ng-content></ng-content>',
735
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
736
+ inputs: ['addAnimation', 'backgroundColour', 'buttonAlign', 'buttonColourScheme', 'buttonLabel', 'buttonStyle', 'buttonUrl', 'clipBottomLeftCorner', 'clipTopRightCorner', 'mainImageAltText', 'mainImageUrl', 'spaceBelow', 'teaser', 'teaserColour', 'textAlign'],
737
+ }]
738
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
739
+ let BiggiveImageFeature = class BiggiveImageFeature {
740
+ z;
741
+ el;
742
+ constructor(c, r, z) {
743
+ this.z = z;
744
+ c.detach();
745
+ this.el = r.nativeElement;
746
+ }
747
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveImageFeature, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
748
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveImageFeature, selector: "biggive-image-feature", inputs: { buttonColourScheme: "buttonColourScheme", buttonLabel: "buttonLabel", buttonUrl: "buttonUrl", defaultTextColour: "defaultTextColour", imageAltText: "imageAltText", imageUrl: "imageUrl", mainTitle: "mainTitle", mainTitleColour: "mainTitleColour", slug: "slug", slugColour: "slugColour", spaceBelow: "spaceBelow", teaser: "teaser", teaserColour: "teaserColour" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
749
+ };
750
+ BiggiveImageFeature = __decorate([
751
+ ProxyCmp({
752
+ inputs: ['buttonColourScheme', 'buttonLabel', 'buttonUrl', 'defaultTextColour', 'imageAltText', 'imageUrl', 'mainTitle', 'mainTitleColour', 'slug', 'slugColour', 'spaceBelow', 'teaser', 'teaserColour']
753
+ })
754
+ ], BiggiveImageFeature);
755
+ export { BiggiveImageFeature };
756
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveImageFeature, decorators: [{
757
+ type: Component,
758
+ args: [{
759
+ selector: 'biggive-image-feature',
760
+ changeDetection: ChangeDetectionStrategy.OnPush,
761
+ template: '<ng-content></ng-content>',
762
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
763
+ inputs: ['buttonColourScheme', 'buttonLabel', 'buttonUrl', 'defaultTextColour', 'imageAltText', 'imageUrl', 'mainTitle', 'mainTitleColour', 'slug', 'slugColour', 'spaceBelow', 'teaser', 'teaserColour'],
764
+ }]
765
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
766
+ let BiggiveMainMenu = class BiggiveMainMenu {
767
+ z;
768
+ el;
769
+ constructor(c, r, z) {
770
+ this.z = z;
771
+ c.detach();
772
+ this.el = r.nativeElement;
773
+ proxyOutputs(this, this.el, ['logoutClicked']);
774
+ }
775
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveMainMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
776
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveMainMenu, selector: "biggive-main-menu", inputs: { blogUrlPrefix: "blogUrlPrefix", donateUrlPrefix: "donateUrlPrefix", experienceUrlPrefix: "experienceUrlPrefix", isLoggedIn: "isLoggedIn", smallCharityWeekEnabled: "smallCharityWeekEnabled", someCampaignHasHomePageRedirect: "someCampaignHasHomePageRedirect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
777
+ };
778
+ BiggiveMainMenu = __decorate([
779
+ ProxyCmp({
780
+ inputs: ['blogUrlPrefix', 'donateUrlPrefix', 'experienceUrlPrefix', 'isLoggedIn', 'smallCharityWeekEnabled', 'someCampaignHasHomePageRedirect'],
781
+ methods: ['closeMobileMenuFromOutside']
782
+ })
783
+ ], BiggiveMainMenu);
784
+ export { BiggiveMainMenu };
785
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveMainMenu, decorators: [{
786
+ type: Component,
787
+ args: [{
788
+ selector: 'biggive-main-menu',
789
+ changeDetection: ChangeDetectionStrategy.OnPush,
790
+ template: '<ng-content></ng-content>',
791
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
792
+ inputs: ['blogUrlPrefix', 'donateUrlPrefix', 'experienceUrlPrefix', 'isLoggedIn', 'smallCharityWeekEnabled', 'someCampaignHasHomePageRedirect'],
793
+ }]
794
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
795
+ let BiggiveMiscIcon = class BiggiveMiscIcon {
796
+ z;
797
+ el;
798
+ constructor(c, r, z) {
799
+ this.z = z;
800
+ c.detach();
801
+ this.el = r.nativeElement;
802
+ }
803
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveMiscIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
804
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveMiscIcon, selector: "biggive-misc-icon", inputs: { backgroundColour: "backgroundColour", icon: "icon", iconColour: "iconColour", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
805
+ };
806
+ BiggiveMiscIcon = __decorate([
807
+ ProxyCmp({
808
+ inputs: ['backgroundColour', 'icon', 'iconColour', 'url']
809
+ })
810
+ ], BiggiveMiscIcon);
811
+ export { BiggiveMiscIcon };
812
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveMiscIcon, decorators: [{
813
+ type: Component,
814
+ args: [{
815
+ selector: 'biggive-misc-icon',
816
+ changeDetection: ChangeDetectionStrategy.OnPush,
817
+ template: '<ng-content></ng-content>',
818
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
819
+ inputs: ['backgroundColour', 'icon', 'iconColour', 'url'],
820
+ }]
821
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
822
+ let BiggiveNavGroup = class BiggiveNavGroup {
823
+ z;
824
+ el;
825
+ constructor(c, r, z) {
826
+ this.z = z;
827
+ c.detach();
828
+ this.el = r.nativeElement;
829
+ }
830
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveNavGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
831
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveNavGroup, selector: "biggive-nav-group", inputs: { inline: "inline" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
832
+ };
833
+ BiggiveNavGroup = __decorate([
834
+ ProxyCmp({
835
+ inputs: ['inline']
836
+ })
837
+ ], BiggiveNavGroup);
838
+ export { BiggiveNavGroup };
839
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveNavGroup, decorators: [{
840
+ type: Component,
841
+ args: [{
842
+ selector: 'biggive-nav-group',
843
+ changeDetection: ChangeDetectionStrategy.OnPush,
844
+ template: '<ng-content></ng-content>',
845
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
846
+ inputs: ['inline'],
847
+ }]
848
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
849
+ let BiggiveNavItem = class BiggiveNavItem {
850
+ z;
851
+ el;
852
+ constructor(c, r, z) {
853
+ this.z = z;
854
+ c.detach();
855
+ this.el = r.nativeElement;
856
+ }
857
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveNavItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
858
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveNavItem, selector: "biggive-nav-item", inputs: { iconColour: "iconColour", label: "label", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
859
+ };
860
+ BiggiveNavItem = __decorate([
861
+ ProxyCmp({
862
+ inputs: ['iconColour', 'label', 'url']
863
+ })
864
+ ], BiggiveNavItem);
865
+ export { BiggiveNavItem };
866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveNavItem, decorators: [{
867
+ type: Component,
868
+ args: [{
869
+ selector: 'biggive-nav-item',
870
+ changeDetection: ChangeDetectionStrategy.OnPush,
871
+ template: '<ng-content></ng-content>',
872
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
873
+ inputs: ['iconColour', 'label', 'url'],
874
+ }]
875
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
876
+ let BiggivePageColumn = class BiggivePageColumn {
877
+ z;
878
+ el;
879
+ constructor(c, r, z) {
880
+ this.z = z;
881
+ c.detach();
882
+ this.el = r.nativeElement;
883
+ }
884
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggivePageColumn, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
885
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggivePageColumn, selector: "biggive-page-column", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
886
+ };
887
+ BiggivePageColumn = __decorate([
888
+ ProxyCmp({})
889
+ ], BiggivePageColumn);
890
+ export { BiggivePageColumn };
891
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggivePageColumn, decorators: [{
892
+ type: Component,
893
+ args: [{
894
+ selector: 'biggive-page-column',
895
+ changeDetection: ChangeDetectionStrategy.OnPush,
896
+ template: '<ng-content></ng-content>',
897
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
898
+ inputs: [],
899
+ }]
900
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
901
+ let BiggivePageColumns = class BiggivePageColumns {
902
+ z;
903
+ el;
904
+ constructor(c, r, z) {
905
+ this.z = z;
906
+ c.detach();
907
+ this.el = r.nativeElement;
908
+ }
909
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggivePageColumns, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
910
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggivePageColumns, selector: "biggive-page-columns", inputs: { spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
911
+ };
912
+ BiggivePageColumns = __decorate([
913
+ ProxyCmp({
914
+ inputs: ['spaceBelow']
915
+ })
916
+ ], BiggivePageColumns);
917
+ export { BiggivePageColumns };
918
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggivePageColumns, decorators: [{
919
+ type: Component,
920
+ args: [{
921
+ selector: 'biggive-page-columns',
922
+ changeDetection: ChangeDetectionStrategy.OnPush,
923
+ template: '<ng-content></ng-content>',
924
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
925
+ inputs: ['spaceBelow'],
926
+ }]
927
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
928
+ let BiggivePageSection = class BiggivePageSection {
929
+ z;
930
+ el;
931
+ constructor(c, r, z) {
932
+ this.z = z;
933
+ c.detach();
934
+ this.el = r.nativeElement;
935
+ }
936
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggivePageSection, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
937
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggivePageSection, selector: "biggive-page-section", inputs: { colourScheme: "colourScheme", maxWidth: "maxWidth", primaryFullBleed: "primaryFullBleed", sectionStyleBottom: "sectionStyleBottom", sectionStyleTop: "sectionStyleTop", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
938
+ };
939
+ BiggivePageSection = __decorate([
940
+ ProxyCmp({
941
+ inputs: ['colourScheme', 'maxWidth', 'primaryFullBleed', 'sectionStyleBottom', 'sectionStyleTop', 'spaceBelow']
942
+ })
943
+ ], BiggivePageSection);
944
+ export { BiggivePageSection };
945
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggivePageSection, decorators: [{
946
+ type: Component,
947
+ args: [{
948
+ selector: 'biggive-page-section',
949
+ changeDetection: ChangeDetectionStrategy.OnPush,
950
+ template: '<ng-content></ng-content>',
951
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
952
+ inputs: ['colourScheme', 'maxWidth', 'primaryFullBleed', 'sectionStyleBottom', 'sectionStyleTop', 'spaceBelow'],
953
+ }]
954
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
955
+ let BiggivePopup = class BiggivePopup {
956
+ z;
957
+ el;
958
+ constructor(c, r, z) {
959
+ this.z = z;
960
+ c.detach();
961
+ this.el = r.nativeElement;
962
+ }
963
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggivePopup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
964
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggivePopup, selector: "biggive-popup", inputs: { modalClosedCallback: "modalClosedCallback" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
965
+ };
966
+ BiggivePopup = __decorate([
967
+ ProxyCmp({
968
+ inputs: ['modalClosedCallback'],
969
+ methods: ['openFromOutside', 'closeFromOutside']
970
+ })
971
+ ], BiggivePopup);
972
+ export { BiggivePopup };
973
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggivePopup, decorators: [{
974
+ type: Component,
975
+ args: [{
976
+ selector: 'biggive-popup',
977
+ changeDetection: ChangeDetectionStrategy.OnPush,
978
+ template: '<ng-content></ng-content>',
979
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
980
+ inputs: ['modalClosedCallback'],
981
+ }]
982
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
983
+ let BiggiveProgressBar = class BiggiveProgressBar {
984
+ z;
985
+ el;
986
+ constructor(c, r, z) {
987
+ this.z = z;
988
+ c.detach();
989
+ this.el = r.nativeElement;
990
+ }
991
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveProgressBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
992
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveProgressBar, selector: "biggive-progress-bar", inputs: { colourScheme: "colourScheme", counter: "counter", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
993
+ };
994
+ BiggiveProgressBar = __decorate([
995
+ ProxyCmp({
996
+ inputs: ['colourScheme', 'counter', 'spaceBelow']
997
+ })
998
+ ], BiggiveProgressBar);
999
+ export { BiggiveProgressBar };
1000
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveProgressBar, decorators: [{
1001
+ type: Component,
1002
+ args: [{
1003
+ selector: 'biggive-progress-bar',
1004
+ changeDetection: ChangeDetectionStrategy.OnPush,
1005
+ template: '<ng-content></ng-content>',
1006
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1007
+ inputs: ['colourScheme', 'counter', 'spaceBelow'],
1008
+ }]
1009
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1010
+ let BiggiveQuote = class BiggiveQuote {
1011
+ z;
1012
+ el;
1013
+ constructor(c, r, z) {
1014
+ this.z = z;
1015
+ c.detach();
1016
+ this.el = r.nativeElement;
1017
+ }
1018
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveQuote, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1019
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveQuote, selector: "biggive-quote", inputs: { attribution: "attribution", defaultTextColour: "defaultTextColour", quote: "quote", quoteIconColour: "quoteIconColour", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1020
+ };
1021
+ BiggiveQuote = __decorate([
1022
+ ProxyCmp({
1023
+ inputs: ['attribution', 'defaultTextColour', 'quote', 'quoteIconColour', 'spaceBelow']
1024
+ })
1025
+ ], BiggiveQuote);
1026
+ export { BiggiveQuote };
1027
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveQuote, decorators: [{
1028
+ type: Component,
1029
+ args: [{
1030
+ selector: 'biggive-quote',
1031
+ changeDetection: ChangeDetectionStrategy.OnPush,
1032
+ template: '<ng-content></ng-content>',
1033
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1034
+ inputs: ['attribution', 'defaultTextColour', 'quote', 'quoteIconColour', 'spaceBelow'],
1035
+ }]
1036
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1037
+ let BiggiveSheet = class BiggiveSheet {
1038
+ z;
1039
+ el;
1040
+ constructor(c, r, z) {
1041
+ this.z = z;
1042
+ c.detach();
1043
+ this.el = r.nativeElement;
1044
+ }
1045
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveSheet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1046
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveSheet, selector: "biggive-sheet", inputs: { backgroundColour: "backgroundColour", sheetId: "sheetId", textColour: "textColour" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1047
+ };
1048
+ BiggiveSheet = __decorate([
1049
+ ProxyCmp({
1050
+ inputs: ['backgroundColour', 'sheetId', 'textColour']
1051
+ })
1052
+ ], BiggiveSheet);
1053
+ export { BiggiveSheet };
1054
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveSheet, decorators: [{
1055
+ type: Component,
1056
+ args: [{
1057
+ selector: 'biggive-sheet',
1058
+ changeDetection: ChangeDetectionStrategy.OnPush,
1059
+ template: '<ng-content></ng-content>',
1060
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1061
+ inputs: ['backgroundColour', 'sheetId', 'textColour'],
1062
+ }]
1063
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1064
+ let BiggiveSocialIcon = class BiggiveSocialIcon {
1065
+ z;
1066
+ el;
1067
+ constructor(c, r, z) {
1068
+ this.z = z;
1069
+ c.detach();
1070
+ this.el = r.nativeElement;
1071
+ }
1072
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveSocialIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1073
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveSocialIcon, selector: "biggive-social-icon", inputs: { backgroundColour: "backgroundColour", iconColour: "iconColour", labelPrefix: "labelPrefix", service: "service", url: "url", wide: "wide" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1074
+ };
1075
+ BiggiveSocialIcon = __decorate([
1076
+ ProxyCmp({
1077
+ inputs: ['backgroundColour', 'iconColour', 'labelPrefix', 'service', 'url', 'wide']
1078
+ })
1079
+ ], BiggiveSocialIcon);
1080
+ export { BiggiveSocialIcon };
1081
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveSocialIcon, decorators: [{
1082
+ type: Component,
1083
+ args: [{
1084
+ selector: 'biggive-social-icon',
1085
+ changeDetection: ChangeDetectionStrategy.OnPush,
1086
+ template: '<ng-content></ng-content>',
1087
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1088
+ inputs: ['backgroundColour', 'iconColour', 'labelPrefix', 'service', 'url', 'wide'],
1089
+ }]
1090
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1091
+ let BiggiveTab = class BiggiveTab {
1092
+ z;
1093
+ el;
1094
+ constructor(c, r, z) {
1095
+ this.z = z;
1096
+ c.detach();
1097
+ this.el = r.nativeElement;
1098
+ }
1099
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1100
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveTab, selector: "biggive-tab", inputs: { tabTitle: "tabTitle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1101
+ };
1102
+ BiggiveTab = __decorate([
1103
+ ProxyCmp({
1104
+ inputs: ['tabTitle']
1105
+ })
1106
+ ], BiggiveTab);
1107
+ export { BiggiveTab };
1108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTab, decorators: [{
1109
+ type: Component,
1110
+ args: [{
1111
+ selector: 'biggive-tab',
1112
+ changeDetection: ChangeDetectionStrategy.OnPush,
1113
+ template: '<ng-content></ng-content>',
1114
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1115
+ inputs: ['tabTitle'],
1116
+ }]
1117
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1118
+ let BiggiveTabbedContent = class BiggiveTabbedContent {
1119
+ z;
1120
+ el;
1121
+ constructor(c, r, z) {
1122
+ this.z = z;
1123
+ c.detach();
1124
+ this.el = r.nativeElement;
1125
+ }
1126
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTabbedContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1127
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveTabbedContent, selector: "biggive-tabbed-content", inputs: { buttonBackgroundColour: "buttonBackgroundColour", buttonIconColour: "buttonIconColour", navigationHighlightColour: "navigationHighlightColour", selectedNavigationHighlightColour: "selectedNavigationHighlightColour", selectedTextColour: "selectedTextColour", spaceBelow: "spaceBelow", textColour: "textColour" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1128
+ };
1129
+ BiggiveTabbedContent = __decorate([
1130
+ ProxyCmp({
1131
+ inputs: ['buttonBackgroundColour', 'buttonIconColour', 'navigationHighlightColour', 'selectedNavigationHighlightColour', 'selectedTextColour', 'spaceBelow', 'textColour']
1132
+ })
1133
+ ], BiggiveTabbedContent);
1134
+ export { BiggiveTabbedContent };
1135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTabbedContent, decorators: [{
1136
+ type: Component,
1137
+ args: [{
1138
+ selector: 'biggive-tabbed-content',
1139
+ changeDetection: ChangeDetectionStrategy.OnPush,
1140
+ template: '<ng-content></ng-content>',
1141
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1142
+ inputs: ['buttonBackgroundColour', 'buttonIconColour', 'navigationHighlightColour', 'selectedNavigationHighlightColour', 'selectedTextColour', 'spaceBelow', 'textColour'],
1143
+ }]
1144
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1145
+ let BiggiveTable = class BiggiveTable {
1146
+ z;
1147
+ el;
1148
+ constructor(c, r, z) {
1149
+ this.z = z;
1150
+ c.detach();
1151
+ this.el = r.nativeElement;
1152
+ }
1153
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1154
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveTable, selector: "biggive-table", inputs: { bodyBackgroundColour: "bodyBackgroundColour", bodyTextColour: "bodyTextColour", headerBackgroundColour: "headerBackgroundColour", headerTextColour: "headerTextColour", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1155
+ };
1156
+ BiggiveTable = __decorate([
1157
+ ProxyCmp({
1158
+ inputs: ['bodyBackgroundColour', 'bodyTextColour', 'headerBackgroundColour', 'headerTextColour', 'spaceBelow']
1159
+ })
1160
+ ], BiggiveTable);
1161
+ export { BiggiveTable };
1162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTable, decorators: [{
1163
+ type: Component,
1164
+ args: [{
1165
+ selector: 'biggive-table',
1166
+ changeDetection: ChangeDetectionStrategy.OnPush,
1167
+ template: '<ng-content></ng-content>',
1168
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1169
+ inputs: ['bodyBackgroundColour', 'bodyTextColour', 'headerBackgroundColour', 'headerTextColour', 'spaceBelow'],
1170
+ }]
1171
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1172
+ let BiggiveTextInput = class BiggiveTextInput {
1173
+ z;
1174
+ el;
1175
+ constructor(c, r, z) {
1176
+ this.z = z;
1177
+ c.detach();
1178
+ this.el = r.nativeElement;
1179
+ }
1180
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTextInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1181
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveTextInput, selector: "biggive-text-input", inputs: { currency: "currency", selectStyle: "selectStyle", spaceBelow: "spaceBelow", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1182
+ };
1183
+ BiggiveTextInput = __decorate([
1184
+ ProxyCmp({
1185
+ inputs: ['currency', 'selectStyle', 'spaceBelow', 'value']
1186
+ })
1187
+ ], BiggiveTextInput);
1188
+ export { BiggiveTextInput };
1189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTextInput, decorators: [{
1190
+ type: Component,
1191
+ args: [{
1192
+ selector: 'biggive-text-input',
1193
+ changeDetection: ChangeDetectionStrategy.OnPush,
1194
+ template: '<ng-content></ng-content>',
1195
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1196
+ inputs: ['currency', 'selectStyle', 'spaceBelow', 'value'],
1197
+ }]
1198
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1199
+ let BiggiveTimeline = class BiggiveTimeline {
1200
+ z;
1201
+ el;
1202
+ constructor(c, r, z) {
1203
+ this.z = z;
1204
+ c.detach();
1205
+ this.el = r.nativeElement;
1206
+ }
1207
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTimeline, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1208
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveTimeline, selector: "biggive-timeline", inputs: { buttonBackgroundColour: "buttonBackgroundColour", buttonIconColour: "buttonIconColour", entryBackgroundColour: "entryBackgroundColour", entryDateColour: "entryDateColour", entryHighlightColour: "entryHighlightColour", entryTextColour: "entryTextColour", entryTitleColour: "entryTitleColour", navigationHighlightColour: "navigationHighlightColour", selectedNavigationHighlightColour: "selectedNavigationHighlightColour", selectedTextColour: "selectedTextColour", spaceBelow: "spaceBelow", textColour: "textColour" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1209
+ };
1210
+ BiggiveTimeline = __decorate([
1211
+ ProxyCmp({
1212
+ inputs: ['buttonBackgroundColour', 'buttonIconColour', 'entryBackgroundColour', 'entryDateColour', 'entryHighlightColour', 'entryTextColour', 'entryTitleColour', 'navigationHighlightColour', 'selectedNavigationHighlightColour', 'selectedTextColour', 'spaceBelow', 'textColour']
1213
+ })
1214
+ ], BiggiveTimeline);
1215
+ export { BiggiveTimeline };
1216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTimeline, decorators: [{
1217
+ type: Component,
1218
+ args: [{
1219
+ selector: 'biggive-timeline',
1220
+ changeDetection: ChangeDetectionStrategy.OnPush,
1221
+ template: '<ng-content></ng-content>',
1222
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1223
+ inputs: ['buttonBackgroundColour', 'buttonIconColour', 'entryBackgroundColour', 'entryDateColour', 'entryHighlightColour', 'entryTextColour', 'entryTitleColour', 'navigationHighlightColour', 'selectedNavigationHighlightColour', 'selectedTextColour', 'spaceBelow', 'textColour'],
1224
+ }]
1225
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1226
+ let BiggiveTimelineEntry = class BiggiveTimelineEntry {
1227
+ z;
1228
+ el;
1229
+ constructor(c, r, z) {
1230
+ this.z = z;
1231
+ c.detach();
1232
+ this.el = r.nativeElement;
1233
+ }
1234
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTimelineEntry, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1235
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveTimelineEntry, selector: "biggive-timeline-entry", inputs: { date: "date", heading: "heading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1236
+ };
1237
+ BiggiveTimelineEntry = __decorate([
1238
+ ProxyCmp({
1239
+ inputs: ['date', 'heading']
1240
+ })
1241
+ ], BiggiveTimelineEntry);
1242
+ export { BiggiveTimelineEntry };
1243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTimelineEntry, decorators: [{
1244
+ type: Component,
1245
+ args: [{
1246
+ selector: 'biggive-timeline-entry',
1247
+ changeDetection: ChangeDetectionStrategy.OnPush,
1248
+ template: '<ng-content></ng-content>',
1249
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1250
+ inputs: ['date', 'heading'],
1251
+ }]
1252
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1253
+ let BiggiveTotalizer = class BiggiveTotalizer {
1254
+ z;
1255
+ el;
1256
+ constructor(c, r, z) {
1257
+ this.z = z;
1258
+ c.detach();
1259
+ this.el = r.nativeElement;
1260
+ }
1261
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTotalizer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1262
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveTotalizer, selector: "biggive-totalizer", inputs: { mainMessage: "mainMessage", primaryColour: "primaryColour", primaryTextColour: "primaryTextColour", secondaryColour: "secondaryColour", secondaryTextColour: "secondaryTextColour", spaceBelow: "spaceBelow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1263
+ };
1264
+ BiggiveTotalizer = __decorate([
1265
+ ProxyCmp({
1266
+ inputs: ['mainMessage', 'primaryColour', 'primaryTextColour', 'secondaryColour', 'secondaryTextColour', 'spaceBelow']
1267
+ })
1268
+ ], BiggiveTotalizer);
1269
+ export { BiggiveTotalizer };
1270
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTotalizer, decorators: [{
1271
+ type: Component,
1272
+ args: [{
1273
+ selector: 'biggive-totalizer',
1274
+ changeDetection: ChangeDetectionStrategy.OnPush,
1275
+ template: '<ng-content></ng-content>',
1276
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1277
+ inputs: ['mainMessage', 'primaryColour', 'primaryTextColour', 'secondaryColour', 'secondaryTextColour', 'spaceBelow'],
1278
+ }]
1279
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1280
+ let BiggiveTotalizerTickerItem = class BiggiveTotalizerTickerItem {
1281
+ z;
1282
+ el;
1283
+ constructor(c, r, z) {
1284
+ this.z = z;
1285
+ c.detach();
1286
+ this.el = r.nativeElement;
1287
+ }
1288
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTotalizerTickerItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1289
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveTotalizerTickerItem, selector: "biggive-totalizer-ticker-item", inputs: { figure: "figure", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1290
+ };
1291
+ BiggiveTotalizerTickerItem = __decorate([
1292
+ ProxyCmp({
1293
+ inputs: ['figure', 'label']
1294
+ })
1295
+ ], BiggiveTotalizerTickerItem);
1296
+ export { BiggiveTotalizerTickerItem };
1297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveTotalizerTickerItem, decorators: [{
1298
+ type: Component,
1299
+ args: [{
1300
+ selector: 'biggive-totalizer-ticker-item',
1301
+ changeDetection: ChangeDetectionStrategy.OnPush,
1302
+ template: '<ng-content></ng-content>',
1303
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1304
+ inputs: ['figure', 'label'],
1305
+ }]
1306
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1307
+ let BiggiveVideo = class BiggiveVideo {
1308
+ z;
1309
+ el;
1310
+ constructor(c, r, z) {
1311
+ this.z = z;
1312
+ c.detach();
1313
+ this.el = r.nativeElement;
1314
+ }
1315
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveVideo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1316
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveVideo, selector: "biggive-video", inputs: { spaceAbove: "spaceAbove", spaceBelow: "spaceBelow", videoUrl: "videoUrl" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1317
+ };
1318
+ BiggiveVideo = __decorate([
1319
+ ProxyCmp({
1320
+ inputs: ['spaceAbove', 'spaceBelow', 'videoUrl']
1321
+ })
1322
+ ], BiggiveVideo);
1323
+ export { BiggiveVideo };
1324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveVideo, decorators: [{
1325
+ type: Component,
1326
+ args: [{
1327
+ selector: 'biggive-video',
1328
+ changeDetection: ChangeDetectionStrategy.OnPush,
1329
+ template: '<ng-content></ng-content>',
1330
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1331
+ inputs: ['spaceAbove', 'spaceBelow', 'videoUrl'],
1332
+ }]
1333
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1334
+ let BiggiveVideoFeature = class BiggiveVideoFeature {
1335
+ z;
1336
+ el;
1337
+ constructor(c, r, z) {
1338
+ this.z = z;
1339
+ c.detach();
1340
+ this.el = r.nativeElement;
1341
+ }
1342
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveVideoFeature, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1343
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BiggiveVideoFeature, selector: "biggive-video-feature", inputs: { buttonColourScheme: "buttonColourScheme", buttonLabel: "buttonLabel", buttonUrl: "buttonUrl", defaultTextColour: "defaultTextColour", mainTitle: "mainTitle", mainTitleColour: "mainTitleColour", slug: "slug", slugColour: "slugColour", spaceAbove: "spaceAbove", spaceBelow: "spaceBelow", teaser: "teaser", teaserColour: "teaserColour", videoUrl: "videoUrl" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1344
+ };
1345
+ BiggiveVideoFeature = __decorate([
1346
+ ProxyCmp({
1347
+ inputs: ['buttonColourScheme', 'buttonLabel', 'buttonUrl', 'defaultTextColour', 'mainTitle', 'mainTitleColour', 'slug', 'slugColour', 'spaceAbove', 'spaceBelow', 'teaser', 'teaserColour', 'videoUrl']
1348
+ })
1349
+ ], BiggiveVideoFeature);
1350
+ export { BiggiveVideoFeature };
1351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BiggiveVideoFeature, decorators: [{
1352
+ type: Component,
1353
+ args: [{
1354
+ selector: 'biggive-video-feature',
1355
+ changeDetection: ChangeDetectionStrategy.OnPush,
1356
+ template: '<ng-content></ng-content>',
1357
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1358
+ inputs: ['buttonColourScheme', 'buttonLabel', 'buttonUrl', 'defaultTextColour', 'mainTitle', 'mainTitleColour', 'slug', 'slugColour', 'spaceAbove', 'spaceBelow', 'teaser', 'teaserColour', 'videoUrl'],
1359
+ }]
1360
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1361
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zdGVuY2lsLWdlbmVyYXRlZC9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsOENBQThDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWVoRSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtJQUVnQztJQURqRCxFQUFFLENBQThCO0lBQzFDLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7d0dBTFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IseUpBSmpCLDJCQUEyQjs7QUFJMUIsZ0JBQWdCO0lBVjVCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDO0tBQ3RELENBQUM7R0FRVyxnQkFBZ0IsQ0FNNUI7OzRGQU5ZLGdCQUFnQjtrQkFQNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQztpQkFDdEQ7O0FBdUJNLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBRTJCO0lBRGpELEVBQUUsQ0FB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LEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDO0tBQ3hNLENBQUM7R0FRVyxtQkFBbUIsQ0FNL0I7OzRGQU5ZLG1CQUFtQjtrQkFQL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxVQUFVLENBQUM7aUJBQ3hNIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRzIH0gZnJvbSAnQGJpZ2dpdmUvY29tcG9uZW50cyc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmdDb2xvdXInLCAnc3BhY2VCZWxvdycsICd0ZXh0Q29sb3VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLWFjY29yZGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZ0NvbG91cicsICdzcGFjZUJlbG93JywgJ3RleHRDb2xvdXInXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZUFjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVBY2NvcmRpb25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlQWNjb3JkaW9uIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlQWNjb3JkaW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtYWNjb3JkaW9uLWVudHJ5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVBY2NvcmRpb25FbnRyeSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVBY2NvcmRpb25FbnRyeUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVBY2NvcmRpb25FbnRyeSBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZUFjY29yZGlvbkVudHJ5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvdXInLCAnYmFja2dyb3VuZEltYWdlVXJsJywgJ2J1dHRvbkNvbG91cicsICdidXR0b25MYWJlbCcsICdidXR0b25VcmwnLCAnY2xpcEJvdHRvbUxlZnRDb3JuZXInLCAnY2xpcFRvcFJpZ2h0Q29ybmVyJywgJ2RhdGUnLCAnZGF0ZUNvbG91cicsICdpbWFnZTFBbHRUZXh0JywgJ2ltYWdlMVVybCcsICdpbWFnZTJBbHRUZXh0JywgJ2ltYWdlMlVybCcsICdpbWFnZUxhYmVsJywgJ2ltYWdlTGFiZWxDb2xvdXInLCAnbWFpbkltYWdlQWx0VGV4dCcsICdtYWluSW1hZ2VVcmwnLCAnbWFpblRpdGxlJywgJ21haW5UaXRsZUNvbG91cicsICdzbHVnJywgJ3NsdWdDb2xvdXInLCAnc3BhY2VCZWxvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1hcnRpY2xlLWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvdXInLCAnYmFja2dyb3VuZEltYWdlVXJsJywgJ2J1dHRvbkNvbG91cicsICdidXR0b25MYWJlbCcsICdidXR0b25VcmwnLCAnY2xpcEJvdHRvbUxlZnRDb3JuZXInLCAnY2xpcFRvcFJpZ2h0Q29ybmVyJywgJ2RhdGUnLCAnZGF0ZUNvbG91cicsICdpbWFnZTFBbHRUZXh0JywgJ2ltYWdlMVVybCcsICdpbWFnZTJBbHRUZXh0JywgJ2ltYWdlMlVybCcsICdpbWFnZUxhYmVsJywgJ2ltYWdlTGFiZWxDb2xvdXInLCAnbWFpbkltYWdlQWx0VGV4dCcsICdtYWluSW1hZ2VVcmwnLCAnbWFpblRpdGxlJywgJ21haW5UaXRsZUNvbG91cicsICdzbHVnJywgJ3NsdWdDb2xvdXInLCAnc3BhY2VCZWxvdyddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlQXJ0aWNsZUNhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlQXJ0aWNsZUNhcmRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlQXJ0aWNsZUNhcmQgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVBcnRpY2xlQ2FyZCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1iYWNrLXRvLXRvcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlQmFja1RvVG9wIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZUJhY2tUb1RvcEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVCYWNrVG9Ub3AgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVCYWNrVG9Ub3Age31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWRkQW5pbWF0aW9uJywgJ2JhY2tncm91bmRDb2xvdXInLCAnYmFja2dyb3VuZEltYWdlVXJsJywgJ2J1dHRvbkFsaWduJywgJ2J1dHRvbkNvbG91clNjaGVtZScsICdidXR0b25MYWJlbCcsICdidXR0b25TdHlsZScsICdidXR0b25VcmwnLCAnY2FyZENvbG91cicsICdjbGlwQm90dG9tTGVmdENvcm5lcicsICdjbGlwVG9wUmlnaHRDb3JuZXInLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnaWNvbkNvbG91cicsICdtYWluSW1hZ2VBbHRUZXh0JywgJ21haW5JbWFnZVVybCcsICdtYWluVGl0bGUnLCAnc3BhY2VCZWxvdycsICdzdWJ0aXRsZScsICd0ZWFzZXInLCAndGV4dENvbG91ciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1iYXNpYy1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhZGRBbmltYXRpb24nLCAnYmFja2dyb3VuZENvbG91cicsICdiYWNrZ3JvdW5kSW1hZ2VVcmwnLCAnYnV0dG9uQWxpZ24nLCAnYnV0dG9uQ29sb3VyU2NoZW1lJywgJ2J1dHRvbkxhYmVsJywgJ2J1dHRvblN0eWxlJywgJ2J1dHRvblVybCcsICdjYXJkQ29sb3VyJywgJ2NsaXBCb3R0b21MZWZ0Q29ybmVyJywgJ2NsaXBUb3BSaWdodENvcm5lcicsICdoZWFkaW5nTGV2ZWwnLCAnaWNvbicsICdpY29uQ29sb3VyJywgJ21haW5JbWFnZUFsdFRleHQnLCAnbWFpbkltYWdlVXJsJywgJ21haW5UaXRsZScsICdzcGFjZUJlbG93JywgJ3N1YnRpdGxlJywgJ3RlYXNlcicsICd0ZXh0Q29sb3VyJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVCYXNpY0NhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlQmFzaWNDYXJkRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZUJhc2ljQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZUJhc2ljQ2FyZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kQ29sb3VyJywgJ2JvcmRlcldpZHRoJywgJ2NpcmNsZScsICdjaXJjbGVDb2xvdXInLCAnZnVsbE5hbWUnLCAnaW1hZ2VTdHlsZScsICdpbWFnZVVybCcsICdqb2JUaXRsZScsICdyYXRpbycsICdyb3VuZGVkJywgJ3NwYWNlQmVsb3cnLCAndGV4dEFsaWduJywgJ3RleHRDb2xvdXInLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLWJpb2dyYXBoeS1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrZ3JvdW5kQ29sb3VyJywgJ2JvcmRlcldpZHRoJywgJ2NpcmNsZScsICdjaXJjbGVDb2xvdXInLCAnZnVsbE5hbWUnLCAnaW1hZ2VTdHlsZScsICdpbWFnZVVybCcsICdqb2JUaXRsZScsICdyYXRpbycsICdyb3VuZGVkJywgJ3NwYWNlQmVsb3cnLCAndGV4dEFsaWduJywgJ3RleHRDb2xvdXInLCAndXJsJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVCaW9ncmFwaHlDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZUJpb2dyYXBoeUNhcmRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlQmlvZ3JhcGh5Q2FyZCBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZUJpb2dyYXBoeUNhcmQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZENvbG91cicsICdob3Jpem9udGFsUGFkZGluZycsICdzaGFkb3cnLCAnc3BhY2VCZWxvdycsICd2ZXJ0aWNhbFBhZGRpbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtYm94ZWQtY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFja2dyb3VuZENvbG91cicsICdob3Jpem9udGFsUGFkZGluZycsICdzaGFkb3cnLCAnc3BhY2VCZWxvdycsICd2ZXJ0aWNhbFBhZGRpbmcnXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZUJveGVkQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVCb3hlZENvbnRlbnRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlQm94ZWRDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlQm94ZWRDb250ZW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoYXJpdHlMb2NhdGlvbicsICdjaGFyaXR5TmFtZScsICdjaGFyaXR5VXJsJywgJ2ltYWdlVXJsJywgJ2xvZ29VcmwnLCAnc2x1ZycsICdzcGFjZUJlbG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLWJyYW5kZWQtaW1hZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoYXJpdHlMb2NhdGlvbicsICdjaGFyaXR5TmFtZScsICdjaGFyaXR5VXJsJywgJ2ltYWdlVXJsJywgJ2xvZ29VcmwnLCAnc2x1ZycsICdzcGFjZUJlbG93J10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVCcmFuZGVkSW1hZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlQnJhbmRlZEltYWdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZUJyYW5kZWRJbWFnZSBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZUJyYW5kZWRJbWFnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydidXR0b25JZCcsICdjZW50ZXJlZCcsICdjb2xvdXJTY2hlbWUnLCAnZnVsbFdpZHRoJywgJ2xhYmVsJywgJ29wZW5Jbk5ld1RhYicsICdyb3VuZGVkJywgJ3NpemUnLCAnc3BhY2VCZWxvdycsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydidXR0b25JZCcsICdjZW50ZXJlZCcsICdjb2xvdXJTY2hlbWUnLCAnZnVsbFdpZHRoJywgJ2xhYmVsJywgJ29wZW5Jbk5ld1RhYicsICdyb3VuZGVkJywgJ3NpemUnLCAnc3BhY2VCZWxvdycsICd1cmwnXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZUJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVCdXR0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkb0J1dHRvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVCdXR0b24ge1xuXG4gIGRvQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV2ZW50OiBvYmplY3Q7IHVybDogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdFRleHRDb2xvdXInLCAnbWFpblRpdGxlJywgJ21haW5UaXRsZUNvbG91cicsICdtYWluVGl0bGVTaXplJywgJ3ByaW1hcnlCdXR0b25Db2xvdXJTY2hlbWUnLCAncHJpbWFyeUJ1dHRvbkxhYmVsJywgJ3ByaW1hcnlCdXR0b25VcmwnLCAnc2Vjb25kYXJ5QnV0dG9uQ29sb3VyU2NoZW1lJywgJ3NlY29uZGFyeUJ1dHRvbkxhYmVsJywgJ3NlY29uZGFyeUJ1dHRvblVybCcsICdzbHVnJywgJ3NsdWdDb2xvdXInLCAnc2x1Z1NpemUnLCAnc3BhY2VBYm92ZScsICdzcGFjZUJlbG93JywgJ3N1YnRpdGxlJywgJ3N1YnRpdGxlQ29sb3VyJywgJ3N1YnRpdGxlU2l6ZScsICd0ZWFzZXInLCAndGVhc2VyQ29sb3VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLWNhbGwtdG8tYWN0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWZhdWx0VGV4dENvbG91cicsICdtYWluVGl0bGUnLCAnbWFpblRpdGxlQ29sb3VyJywgJ21haW5UaXRsZVNpemUnLCAncHJpbWFyeUJ1dHRvbkNvbG91clNjaGVtZScsICdwcmltYXJ5QnV0dG9uTGFiZWwnLCAncHJpbWFyeUJ1dHRvblVybCcsICdzZWNvbmRhcnlCdXR0b25Db2xvdXJTY2hlbWUnLCAnc2Vjb25kYXJ5QnV0dG9uTGFiZWwnLCAnc2Vjb25kYXJ5QnV0dG9uVXJsJywgJ3NsdWcnLCAnc2x1Z0NvbG91cicsICdzbHVnU2l6ZScsICdzcGFjZUFib3ZlJywgJ3NwYWNlQmVsb3cnLCAnc3VidGl0bGUnLCAnc3VidGl0bGVDb2xvdXInLCAnc3VidGl0bGVTaXplJywgJ3RlYXNlcicsICd0ZWFzZXJDb2xvdXInXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZUNhbGxUb0FjdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVDYWxsVG9BY3Rpb25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlQ2FsbFRvQWN0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlQ2FsbFRvQWN0aW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Jhbm5lcicsICdjYW1wYWlnblRpdGxlJywgJ2NhbXBhaWduVHlwZScsICdkYXRldGltZScsICdkb25hdGVCdXR0b25Db2xvdXJTY2hlbWUnLCAnZG9uYXRlQnV0dG9uTGFiZWwnLCAnZG9uYXRlQnV0dG9uVXJsJywgJ2lzRnV0dXJlQ2FtcGFpZ24nLCAnaXNQYXN0Q2FtcGFpZ24nLCAnbW9yZUluZm9CdXR0b25Db2xvdXJTY2hlbWUnLCAnbW9yZUluZm9CdXR0b25MYWJlbCcsICdtb3JlSW5mb0J1dHRvblVybCcsICdvcmdhbmlzYXRpb25OYW1lJywgJ3ByaW1hcnlGaWd1cmVBbW91bnQnLCAncHJpbWFyeUZpZ3VyZUxhYmVsJywgJ3Byb2dyZXNzQmFyQ291bnRlcicsICdzZWNvbmRhcnlGaWd1cmVBbW91bnQnLCAnc2Vjb25kYXJ5RmlndXJlTGFiZWwnLCAnc3BhY2VCZWxvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1jYW1wYWlnbi1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYW5uZXInLCAnY2FtcGFpZ25UaXRsZScsICdjYW1wYWlnblR5cGUnLCAnZGF0ZXRpbWUnLCAnZG9uYXRlQnV0dG9uQ29sb3VyU2NoZW1lJywgJ2RvbmF0ZUJ1dHRvbkxhYmVsJywgJ2RvbmF0ZUJ1dHRvblVybCcsICdpc0Z1dHVyZUNhbXBhaWduJywgJ2lzUGFzdENhbXBhaWduJywgJ21vcmVJbmZvQnV0dG9uQ29sb3VyU2NoZW1lJywgJ21vcmVJbmZvQnV0dG9uTGFiZWwnLCAnbW9yZUluZm9CdXR0b25VcmwnLCAnb3JnYW5pc2F0aW9uTmFtZScsICdwcmltYXJ5RmlndXJlQW1vdW50JywgJ3ByaW1hcnlGaWd1cmVMYWJlbCcsICdwcm9ncmVzc0JhckNvdW50ZXInLCAnc2Vjb25kYXJ5RmlndXJlQW1vdW50JywgJ3NlY29uZGFyeUZpZ3VyZUxhYmVsJywgJ3NwYWNlQmVsb3cnXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZUNhbXBhaWduQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVDYW1wYWlnbkNhcmRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkb0NhcmRHZW5lcmFsQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZUNhbXBhaWduQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZUNhbXBhaWduQ2FyZCB7XG5cbiAgZG9DYXJkR2VuZXJhbENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBldmVudDogb2JqZWN0OyB1cmw6IHN0cmluZyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JlbmVmaWNpYXJ5T3B0aW9ucycsICdidXR0b25UZXh0JywgJ2NhdGVnb3J5T3B0aW9ucycsICdpbnRybycsICdsb2NhdGlvbk9wdGlvbnMnLCAncGxhY2Vob2xkZXJUZXh0JywgJ3NlYXJjaFRleHQnLCAnc2VsZWN0ZWRGaWx0ZXJCZW5lZmljaWFyeScsICdzZWxlY3RlZEZpbHRlckNhdGVnb3J5JywgJ3NlbGVjdGVkRmlsdGVyTG9jYXRpb24nLCAnc2VsZWN0ZWRTb3J0QnlPcHRpb24nLCAnc3BhY2VCZWxvdyddLFxuICBtZXRob2RzOiBbJ3VuZm9jdXNJbnB1dHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtY2FtcGFpZ24tY2FyZC1maWx0ZXItZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmVuZWZpY2lhcnlPcHRpb25zJywgJ2J1dHRvblRleHQnLCAnY2F0ZWdvcnlPcHRpb25zJywgJ2ludHJvJywgJ2xvY2F0aW9uT3B0aW9ucycsICdwbGFjZWhvbGRlclRleHQnLCAnc2VhcmNoVGV4dCcsICdzZWxlY3RlZEZpbHRlckJlbmVmaWNpYXJ5JywgJ3NlbGVjdGVkRmlsdGVyQ2F0ZWdvcnknLCAnc2VsZWN0ZWRGaWx0ZXJMb2NhdGlvbicsICdzZWxlY3RlZFNvcnRCeU9wdGlvbicsICdzcGFjZUJlbG93J10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVDYW1wYWlnbkNhcmRGaWx0ZXJHcmlkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZUNhbXBhaWduQ2FyZEZpbHRlckdyaWRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkb1NlYXJjaEFuZEZpbHRlclVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlQ2FtcGFpZ25DYXJkRmlsdGVyR3JpZCBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZUNhbXBhaWduQ2FyZEZpbHRlckdyaWQge1xuICAvKipcbiAgICogVGhpcyBldmVudCBgZG9TZWFyY2hBbmRGaWx0ZXJVcGRhdGVgIGV2ZW50IGlzIGVtaXR0ZWQgYW5kIHByb3BvZ2F0ZXMgdG8gdGhlIHBhcmVudFxuY29tcG9uZW50IHdoaWNoIGhhbmRsZXMgaXRcbiAgICovXG4gIGRvU2VhcmNoQW5kRmlsdGVyVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWFyY2hUZXh0OiBzdHJpbmcgfCBudWxsOyBzb3J0Qnk6IHN0cmluZyB8IG51bGw7IGZpbHRlckNhdGVnb3J5OiBzdHJpbmcgfCBudWxsOyBmaWx0ZXJCZW5lZmljaWFyeTogc3RyaW5nIHwgbnVsbDsgZmlsdGVyTG9jYXRpb246IHN0cmluZyB8IG51bGw7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFubmVyJywgJ2NhbXBhaWduVGl0bGUnLCAnY2hhbXBpb25OYW1lJywgJ2NoYW1waW9uVXJsJywgJ3ByaW1hcnlGaWd1cmVBbW91bnQnLCAncHJpbWFyeUZpZ3VyZUxhYmVsJywgJ3ByaW1hcnlTdGF0SWNvbicsICdwcmltYXJ5U3RhdFRleHQnLCAncHJvZ3Jlc3NCYXJDb3VudGVyJywgJ3NlY29uZGFyeUZpZ3VyZUFtb3VudCcsICdzZWNvbmRhcnlGaWd1cmVMYWJlbCcsICdzZWNvbmRhcnlTdGF0SWNvbicsICdzZWNvbmRhcnlTdGF0VGV4dCcsICdzcGFjZUJlbG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLWNhbXBhaWduLWhpZ2hsaWdodHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Jhbm5lcicsICdjYW1wYWlnblRpdGxlJywgJ2NoYW1waW9uTmFtZScsICdjaGFtcGlvblVybCcsICdwcmltYXJ5RmlndXJlQW1vdW50JywgJ3ByaW1hcnlGaWd1cmVMYWJlbCcsICdwcmltYXJ5U3RhdEljb24nLCAncHJpbWFyeVN0YXRUZXh0JywgJ3Byb2dyZXNzQmFyQ291bnRlcicsICdzZWNvbmRhcnlGaWd1cmVBbW91bnQnLCAnc2Vjb25kYXJ5RmlndXJlTGFiZWwnLCAnc2Vjb25kYXJ5U3RhdEljb24nLCAnc2Vjb25kYXJ5U3RhdFRleHQnLCAnc3BhY2VCZWxvdyddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlQ2FtcGFpZ25IaWdobGlnaHRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZUNhbXBhaWduSGlnaGxpZ2h0c0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVDYW1wYWlnbkhpZ2hsaWdodHMgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVDYW1wYWlnbkhpZ2hsaWdodHMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZENvbG91cicsICdiYWNrZ3JvdW5kSW1hZ2VVcmwnLCAnY2FyZENvbG91cicsICdjbGlwQm90dG9tTGVmdENvcm5lcicsICdjbGlwVG9wUmlnaHRDb3JuZXInLCAnaGVhZGluZ0xldmVsJywgJ3NwYWNlQmVsb3cnLCAndGV4dENvbG91ciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1jb250YWluZXItY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFja2dyb3VuZENvbG91cicsICdiYWNrZ3JvdW5kSW1hZ2VVcmwnLCAnY2FyZENvbG91cicsICdjbGlwQm90dG9tTGVmdENvcm5lcicsICdjbGlwVG9wUmlnaHRDb3JuZXInLCAnaGVhZGluZ0xldmVsJywgJ3NwYWNlQmVsb3cnLCAndGV4dENvbG91ciddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlQ29udGFpbmVyQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVDb250YWluZXJDYXJkRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZUNvbnRhaW5lckNhcmQgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVDb250YWluZXJDYXJkIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9PcGVuUHJlZmVyZW5jZXMnLCAnYmxvZ1VyaVByZWZpeCcsICdwcmV2aW91c2x5QWdyZWVkQ29va2llUHJlZmVyZW5jZXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtY29va2llLWJhbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b09wZW5QcmVmZXJlbmNlcycsICdibG9nVXJpUHJlZml4JywgJ3ByZXZpb3VzbHlBZ3JlZWRDb29raWVQcmVmZXJlbmNlcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlQ29va2llQmFubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZUNvb2tpZUJhbm5lckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ByZWZlcmVuY2VNb2RhbENsb3NlZCcsICdjb29raWVCYW5uZXJBY2NlcHRBbGxTZWxlY3RlZCcsICdjb29raWVCYW5uZXJTYXZlUHJlZmVyZW5jZXNTZWxlY3RlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlQ29va2llQmFubmVyIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlQ29va2llQmFubmVyIHtcblxuICBwcmVmZXJlbmNlTW9kYWxDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgdXNlciBhY2NlcHRzIGNvb2tpZXMgZm9yIGFueSBwdXJwb3NlLCB3aXRob3V0IGRpc2NyaW1pbmF0aW9uLlxuICAgKi9cbiAgY29va2llQmFubmVyQWNjZXB0QWxsU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgdXNlciBoYXMgbWFkZSBhIHNlbGVjdGlvbiBvZiBjb29raWVzIHB1cnBvc2UgdG8gYWNjZXB0LlxuXG5FdmVudCBkYXRhIGlzIGFuIG9iamVjdCB3aXRoIGJvb2xlYW4gcHJvcGVydGllcyB0byBzYXkgd2hldGhlciB0aGUgdXNlciBhY2NlcHRzIG9yIHJlZnVzZXMgZWFjaCBjYXRlZ29yeSBvZiBvcHRpb25hbCBjb29raWUuXG5cbldoZW4gdXBkYXRpbmcgdGhpcyB0eXBlIHBsZWFzZSBhbHNvIHVwZGF0ZSB0aGUgdHlwZSBvZiBwcmV2aW91c2x5QWdyZWVkQ29va2llUHJlZmVyZW5jZXMuXG4gICAqL1xuICBjb29raWVCYW5uZXJTYXZlUHJlZmVyZW5jZXNTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgYW5hbHl0aWNzQW5kVGVzdGluZzogYm9vbGVhbjsgdGhpcmRQYXJ0eTogYm9vbGVhbjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydibG9nVXJsUHJlZml4JywgJ2RvbmF0ZVVybFByZWZpeCcsICdleHBlcmllbmNlVXJsUHJlZml4JywgJ2hlYWRpbmdMZXZlbCcsICdzbWFsbENoYXJpdHlXZWVrRW5hYmxlZCcsICd1c2VQcmVzZXRGb290ZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydibG9nVXJsUHJlZml4JywgJ2RvbmF0ZVVybFByZWZpeCcsICdleHBlcmllbmNlVXJsUHJlZml4JywgJ2hlYWRpbmdMZXZlbCcsICdzbWFsbENoYXJpdHlXZWVrRW5hYmxlZCcsICd1c2VQcmVzZXRGb290ZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZUZvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVGb290ZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlRm9vdGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLWZvcm0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZUZvcm0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlRm9ybUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVGb3JtIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlRm9ybSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kQ29sb3VyJywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncHJvbXB0JywgJ3NlbGVjdFN0eWxlJywgJ3NlbGVjdGVkTGFiZWwnLCAnc2VsZWN0ZWRPcHRpb25Db2xvdXInLCAnc2VsZWN0ZWRWYWx1ZScsICdzZWxlY3Rpb25DaGFuZ2VkJywgJ3NwYWNlQmVsb3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtZm9ybS1maWVsZC1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvdXInLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdwcm9tcHQnLCAnc2VsZWN0U3R5bGUnLCAnc2VsZWN0ZWRMYWJlbCcsICdzZWxlY3RlZE9wdGlvbkNvbG91cicsICdzZWxlY3RlZFZhbHVlJywgJ3NlbGVjdGlvbkNoYW5nZWQnLCAnc3BhY2VCZWxvdyddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlRm9ybUZpZWxkU2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZUZvcm1GaWVsZFNlbGVjdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVGb3JtRmllbGRTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVGb3JtRmllbGRTZWxlY3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdFRleHRDb2xvdXInLCAnbWF4V2lkdGgnLCAnc3BhY2VCZWxvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1mb3JtYXR0ZWQtdGV4dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVmYXVsdFRleHRDb2xvdXInLCAnbWF4V2lkdGgnLCAnc3BhY2VCZWxvdyddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlRm9ybWF0dGVkVGV4dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVGb3JtYXR0ZWRUZXh0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZUZvcm1hdHRlZFRleHQgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVGb3JtYXR0ZWRUZXh0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbHVtbkNvdW50JywgJ2NvbHVtbkdhcCcsICdzcGFjZUJlbG93JywgJ3NwYWNlQmV0d2VlbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1ncmlkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2x1bW5Db3VudCcsICdjb2x1bW5HYXAnLCAnc3BhY2VCZWxvdycsICdzcGFjZUJldHdlZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZUdyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlR3JpZEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVHcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlR3JpZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGlnbicsICdjb2xvdXInLCAnaHRtbEVsZW1lbnQnLCAnaWNvbicsICdpY29uQ29sb3VyJywgJ3NpemUnLCAnc3BhY2VBYm92ZScsICdzcGFjZUJlbG93JywgJ3RleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtaGVhZGluZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxpZ24nLCAnY29sb3VyJywgJ2h0bWxFbGVtZW50JywgJ2ljb24nLCAnaWNvbkNvbG91cicsICdzaXplJywgJ3NwYWNlQWJvdmUnLCAnc3BhY2VCZWxvdycsICd0ZXh0J10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVIZWFkaW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZUhlYWRpbmdFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlSGVhZGluZyBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZUhlYWRpbmcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uQ29sb3VyU2NoZW1lJywgJ2J1dHRvbkxhYmVsJywgJ2J1dHRvblVybCcsICdjb2xvdXJTY2hlbWUnLCAnbG9nbycsICdsb2dvQWx0VGV4dCcsICdsb2dvSGVpZ2h0JywgJ21haW5JbWFnZScsICdtYWluSW1hZ2VBbGlnbkhvcml6b250YWwnLCAnbWFpbkltYWdlQWxpZ25WZXJ0aWNhbCcsICdtYWluSW1hZ2VTaGFwZScsICdtYWluVGl0bGUnLCAnbWFpblRpdGxlQ29sb3VyJywgJ3NsdWcnLCAnc2x1Z0NvbG91cicsICdzcGFjZUJlbG93JywgJ3RlYXNlcicsICd0ZWFzZXJDb2xvdXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtaGVyby1pbWFnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnV0dG9uQ29sb3VyU2NoZW1lJywgJ2J1dHRvbkxhYmVsJywgJ2J1dHRvblVybCcsICdjb2xvdXJTY2hlbWUnLCAnbG9nbycsICdsb2dvQWx0VGV4dCcsICdsb2dvSGVpZ2h0JywgJ21haW5JbWFnZScsICdtYWluSW1hZ2VBbGlnbkhvcml6b250YWwnLCAnbWFpbkltYWdlQWxpZ25WZXJ0aWNhbCcsICdtYWluSW1hZ2VTaGFwZScsICdtYWluVGl0bGUnLCAnbWFpblRpdGxlQ29sb3VyJywgJ3NsdWcnLCAnc2x1Z0NvbG91cicsICdzcGFjZUJlbG93JywgJ3RlYXNlcicsICd0ZWFzZXJDb2xvdXInXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZUhlcm9JbWFnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVIZXJvSW1hZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlSGVyb0ltYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlSGVyb0ltYWdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fycm93JywgJ2Fycm93Q29sb3VyJywgJ2JhY2tncm91bmRDb2xvdXInLCAnYmFja2dyb3VuZFBhZGRpbmcnLCAnYnV0dG9uSWQnLCAnY2VudGVyZWQnLCAnY2lyY2xlJywgJ2ljb24nLCAnb3BlbkluTmV3VGFiJywgJ3JvdW5kZWQnLCAnc2hhZG93JywgJ3NpemUnLCAnc3BhY2VCZWxvdycsICd0ZXh0JywgJ3RleHRDb2xvdXInLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLWljb24tYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcnJvdycsICdhcnJvd0NvbG91cicsICdiYWNrZ3JvdW5kQ29sb3VyJywgJ2JhY2tncm91bmRQYWRkaW5nJywgJ2J1dHRvbklkJywgJ2NlbnRlcmVkJywgJ2NpcmNsZScsICdpY29uJywgJ29wZW5Jbk5ld1RhYicsICdyb3VuZGVkJywgJ3NoYWRvdycsICdzaXplJywgJ3NwYWNlQmVsb3cnLCAndGV4dCcsICd0ZXh0Q29sb3VyJywgJ3VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlSWNvbkJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVJY29uQnV0dG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZG9CdXR0b25DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlSWNvbkJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZUljb25CdXR0b24ge1xuXG4gIGRvQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV2ZW50OiBvYmplY3Q7IHVybDogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnLCAnc3BhY2VCZWxvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1pY29uLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdzcGFjZUJlbG93J10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVJY29uR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlSWNvbkdyb3VwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZUljb25Hcm91cCBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZUljb25Hcm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWlnaHQnLCAnaW1hZ2VBbHRUZXh0JywgJ2ltYWdlVXJsJywgJ3NpemVVbml0JywgJ3NwYWNlQWJvdmUnLCAnc3BhY2VCZWxvdycsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1pbWFnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVpZ2h0JywgJ2ltYWdlQWx0VGV4dCcsICdpbWFnZVVybCcsICdzaXplVW5pdCcsICdzcGFjZUFib3ZlJywgJ3NwYWNlQmVsb3cnLCAnd2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZUltYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZUltYWdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZUltYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlSW1hZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJyb3cnLCAnYXJyb3dDb2xvdXInLCAnYmFja2dyb3VuZENvbG91cicsICdiYWNrZ3JvdW5kUGFkZGluZycsICdidXR0b25JZCcsICdjZW50ZXJlZCcsICdjaXJjbGUnLCAnaW1hZ2VTdHlsZScsICdpbWFnZVVybCcsICdvcGVuSW5OZXdUYWInLCAncm91bmRlZCcsICdzaGFkb3cnLCAnc2l6ZScsICdzcGFjZUJlbG93JywgJ3RleHQnLCAndGV4dENvbG91cicsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtaW1hZ2UtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcnJvdycsICdhcnJvd0NvbG91cicsICdiYWNrZ3JvdW5kQ29sb3VyJywgJ2JhY2tncm91bmRQYWRkaW5nJywgJ2J1dHRvbklkJywgJ2NlbnRlcmVkJywgJ2NpcmNsZScsICdpbWFnZVN0eWxlJywgJ2ltYWdlVXJsJywgJ29wZW5Jbk5ld1RhYicsICdyb3VuZGVkJywgJ3NoYWRvdycsICdzaXplJywgJ3NwYWNlQmVsb3cnLCAndGV4dCcsICd0ZXh0Q29sb3VyJywgJ3VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlSW1hZ2VCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlSW1hZ2VCdXR0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkb0J1dHRvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVJbWFnZUJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZUltYWdlQnV0dG9uIHtcblxuICBkb0J1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBldmVudDogb2JqZWN0OyB1cmw6IHN0cmluZyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FkZEFuaW1hdGlvbicsICdiYWNrZ3JvdW5kQ29sb3VyJywgJ2J1dHRvbkFsaWduJywgJ2J1dHRvbkNvbG91clNjaGVtZScsICdidXR0b25MYWJlbCcsICdidXR0b25TdHlsZScsICdidXR0b25VcmwnLCAnY2xpcEJvdHRvbUxlZnRDb3JuZXInLCAnY2xpcFRvcFJpZ2h0Q29ybmVyJywgJ21haW5JbWFnZUFsdFRleHQnLCAnbWFpbkltYWdlVXJsJywgJ3NwYWNlQmVsb3cnLCAndGVhc2VyJywgJ3RlYXNlckNvbG91cicsICd0ZXh0QWxpZ24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtaW1hZ2UtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWRkQW5pbWF0aW9uJywgJ2JhY2tncm91bmRDb2xvdXInLCAnYnV0dG9uQWxpZ24nLCAnYnV0dG9uQ29sb3VyU2NoZW1lJywgJ2J1dHRvbkxhYmVsJywgJ2J1dHRvblN0eWxlJywgJ2J1dHRvblVybCcsICdjbGlwQm90dG9tTGVmdENvcm5lcicsICdjbGlwVG9wUmlnaHRDb3JuZXInLCAnbWFpbkltYWdlQWx0VGV4dCcsICdtYWluSW1hZ2VVcmwnLCAnc3BhY2VCZWxvdycsICd0ZWFzZXInLCAndGVhc2VyQ29sb3VyJywgJ3RleHRBbGlnbiddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlSW1hZ2VDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZUltYWdlQ2FyZEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVJbWFnZUNhcmQgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVJbWFnZUNhcmQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uQ29sb3VyU2NoZW1lJywgJ2J1dHRvbkxhYmVsJywgJ2J1dHRvblVybCcsICdkZWZhdWx0VGV4dENvbG91cicsICdpbWFnZUFsdFRleHQnLCAnaW1hZ2VVcmwnLCAnbWFpblRpdGxlJywgJ21haW5UaXRsZUNvbG91cicsICdzbHVnJywgJ3NsdWdDb2xvdXInLCAnc3BhY2VCZWxvdycsICd0ZWFzZXInLCAndGVhc2VyQ29sb3VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLWltYWdlLWZlYXR1cmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2J1dHRvbkNvbG91clNjaGVtZScsICdidXR0b25MYWJlbCcsICdidXR0b25VcmwnLCAnZGVmYXVsdFRleHRDb2xvdXInLCAnaW1hZ2VBbHRUZXh0JywgJ2ltYWdlVXJsJywgJ21haW5UaXRsZScsICdtYWluVGl0bGVDb2xvdXInLCAnc2x1ZycsICdzbHVnQ29sb3VyJywgJ3NwYWNlQmVsb3cnLCAndGVhc2VyJywgJ3RlYXNlckNvbG91ciddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlSW1hZ2VGZWF0dXJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZUltYWdlRmVhdHVyZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVJbWFnZUZlYXR1cmUgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVJbWFnZUZlYXR1cmUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmxvZ1VybFByZWZpeCcsICdkb25hdGVVcmxQcmVmaXgnLCAnZXhwZXJpZW5jZVVybFByZWZpeCcsICdpc0xvZ2dlZEluJywgJ3NtYWxsQ2hhcml0eVdlZWtFbmFibGVkJywgJ3NvbWVDYW1wYWlnbkhhc0hvbWVQYWdlUmVkaXJlY3QnXSxcbiAgbWV0aG9kczogWydjbG9zZU1vYmlsZU1lbnVGcm9tT3V0c2lkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1tYWluLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Jsb2dVcmxQcmVmaXgnLCAnZG9uYXRlVXJsUHJlZml4JywgJ2V4cGVyaWVuY2VVcmxQcmVmaXgnLCAnaXNMb2dnZWRJbicsICdzbWFsbENoYXJpdHlXZWVrRW5hYmxlZCcsICdzb21lQ2FtcGFpZ25IYXNIb21lUGFnZVJlZGlyZWN0J10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVNYWluTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVNYWluTWVudUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2xvZ291dENsaWNrZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZU1haW5NZW51IGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlTWFpbk1lbnUge1xuXG4gIGxvZ291dENsaWNrZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvdXInLCAnaWNvbicsICdpY29uQ29sb3VyJywgJ3VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1taXNjLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvdXInLCAnaWNvbicsICdpY29uQ29sb3VyJywgJ3VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlTWlzY0ljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlTWlzY0ljb25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlTWlzY0ljb24gZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVNaXNjSWNvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbmxpbmUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtbmF2LWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpbmxpbmUnXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZU5hdkdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZU5hdkdyb3VwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZU5hdkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlTmF2R3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvbkNvbG91cicsICdsYWJlbCcsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtbmF2LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25Db2xvdXInLCAnbGFiZWwnLCAndXJsJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVOYXZJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZU5hdkl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlTmF2SXRlbSBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZU5hdkl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtcGFnZS1jb2x1bW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZVBhZ2VDb2x1bW4ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlUGFnZUNvbHVtbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVQYWdlQ29sdW1uIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlUGFnZUNvbHVtbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzcGFjZUJlbG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLXBhZ2UtY29sdW1ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3BhY2VCZWxvdyddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlUGFnZUNvbHVtbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlUGFnZUNvbHVtbnNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlUGFnZUNvbHVtbnMgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVQYWdlQ29sdW1ucyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvdXJTY2hlbWUnLCAnbWF4V2lkdGgnLCAncHJpbWFyeUZ1bGxCbGVlZCcsICdzZWN0aW9uU3R5bGVCb3R0b20nLCAnc2VjdGlvblN0eWxlVG9wJywgJ3NwYWNlQmVsb3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtcGFnZS1zZWN0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvdXJTY2hlbWUnLCAnbWF4V2lkdGgnLCAncHJpbWFyeUZ1bGxCbGVlZCcsICdzZWN0aW9uU3R5bGVCb3R0b20nLCAnc2VjdGlvblN0eWxlVG9wJywgJ3NwYWNlQmVsb3cnXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZVBhZ2VTZWN0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZVBhZ2VTZWN0aW9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZVBhZ2VTZWN0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlUGFnZVNlY3Rpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbW9kYWxDbG9zZWRDYWxsYmFjayddLFxuICBtZXRob2RzOiBbJ29wZW5Gcm9tT3V0c2lkZScsICdjbG9zZUZyb21PdXRzaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLXBvcHVwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydtb2RhbENsb3NlZENhbGxiYWNrJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVQb3B1cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVQb3B1cEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVQb3B1cCBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZVBvcHVwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG91clNjaGVtZScsICdjb3VudGVyJywgJ3NwYWNlQmVsb3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtcHJvZ3Jlc3MtYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvdXJTY2hlbWUnLCAnY291bnRlcicsICdzcGFjZUJlbG93J10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVQcm9ncmVzc0JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVQcm9ncmVzc0JhckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVQcm9ncmVzc0JhciBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZVByb2dyZXNzQmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F0dHJpYnV0aW9uJywgJ2RlZmF1bHRUZXh0Q29sb3VyJywgJ3F1b3RlJywgJ3F1b3RlSWNvbkNvbG91cicsICdzcGFjZUJlbG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLXF1b3RlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdHRyaWJ1dGlvbicsICdkZWZhdWx0VGV4dENvbG91cicsICdxdW90ZScsICdxdW90ZUljb25Db2xvdXInLCAnc3BhY2VCZWxvdyddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlUXVvdGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlUXVvdGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlUXVvdGUgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVRdW90ZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kQ29sb3VyJywgJ3NoZWV0SWQnLCAndGV4dENvbG91ciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS1zaGVldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFja2dyb3VuZENvbG91cicsICdzaGVldElkJywgJ3RleHRDb2xvdXInXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZVNoZWV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZVNoZWV0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZVNoZWV0IGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlU2hlZXQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZENvbG91cicsICdpY29uQ29sb3VyJywgJ2xhYmVsUHJlZml4JywgJ3NlcnZpY2UnLCAndXJsJywgJ3dpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtc29jaWFsLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvdXInLCAnaWNvbkNvbG91cicsICdsYWJlbFByZWZpeCcsICdzZXJ2aWNlJywgJ3VybCcsICd3aWRlJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVTb2NpYWxJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZVNvY2lhbEljb25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlU29jaWFsSWNvbiBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZVNvY2lhbEljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndGFiVGl0bGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtdGFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd0YWJUaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZVRhYkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVUYWIgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVUYWIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uQmFja2dyb3VuZENvbG91cicsICdidXR0b25JY29uQ29sb3VyJywgJ25hdmlnYXRpb25IaWdobGlnaHRDb2xvdXInLCAnc2VsZWN0ZWROYXZpZ2F0aW9uSGlnaGxpZ2h0Q29sb3VyJywgJ3NlbGVjdGVkVGV4dENvbG91cicsICdzcGFjZUJlbG93JywgJ3RleHRDb2xvdXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtdGFiYmVkLWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2J1dHRvbkJhY2tncm91bmRDb2xvdXInLCAnYnV0dG9uSWNvbkNvbG91cicsICduYXZpZ2F0aW9uSGlnaGxpZ2h0Q29sb3VyJywgJ3NlbGVjdGVkTmF2aWdhdGlvbkhpZ2hsaWdodENvbG91cicsICdzZWxlY3RlZFRleHRDb2xvdXInLCAnc3BhY2VCZWxvdycsICd0ZXh0Q29sb3VyJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVUYWJiZWRDb250ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZVRhYmJlZENvbnRlbnRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlVGFiYmVkQ29udGVudCBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZVRhYmJlZENvbnRlbnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9keUJhY2tncm91bmRDb2xvdXInLCAnYm9keVRleHRDb2xvdXInLCAnaGVhZGVyQmFja2dyb3VuZENvbG91cicsICdoZWFkZXJUZXh0Q29sb3VyJywgJ3NwYWNlQmVsb3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtdGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JvZHlCYWNrZ3JvdW5kQ29sb3VyJywgJ2JvZHlUZXh0Q29sb3VyJywgJ2hlYWRlckJhY2tncm91bmRDb2xvdXInLCAnaGVhZGVyVGV4dENvbG91cicsICdzcGFjZUJlbG93J10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVUYWJsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZVRhYmxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1cnJlbmN5JywgJ3NlbGVjdFN0eWxlJywgJ3NwYWNlQmVsb3cnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtdGV4dC1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VycmVuY3knLCAnc2VsZWN0U3R5bGUnLCAnc3BhY2VCZWxvdycsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlVGV4dElucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZVRleHRJbnB1dEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVUZXh0SW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVUZXh0SW5wdXQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uQmFja2dyb3VuZENvbG91cicsICdidXR0b25JY29uQ29sb3VyJywgJ2VudHJ5QmFja2dyb3VuZENvbG91cicsICdlbnRyeURhdGVDb2xvdXInLCAnZW50cnlIaWdobGlnaHRDb2xvdXInLCAnZW50cnlUZXh0Q29sb3VyJywgJ2VudHJ5VGl0bGVDb2xvdXInLCAnbmF2aWdhdGlvbkhpZ2hsaWdodENvbG91cicsICdzZWxlY3RlZE5hdmlnYXRpb25IaWdobGlnaHRDb2xvdXInLCAnc2VsZWN0ZWRUZXh0Q29sb3VyJywgJ3NwYWNlQmVsb3cnLCAndGV4dENvbG91ciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS10aW1lbGluZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnV0dG9uQmFja2dyb3VuZENvbG91cicsICdidXR0b25JY29uQ29sb3VyJywgJ2VudHJ5QmFja2dyb3VuZENvbG91cicsICdlbnRyeURhdGVDb2xvdXInLCAnZW50cnlIaWdobGlnaHRDb2xvdXInLCAnZW50cnlUZXh0Q29sb3VyJywgJ2VudHJ5VGl0bGVDb2xvdXInLCAnbmF2aWdhdGlvbkhpZ2hsaWdodENvbG91cicsICdzZWxlY3RlZE5hdmlnYXRpb25IaWdobGlnaHRDb2xvdXInLCAnc2VsZWN0ZWRUZXh0Q29sb3VyJywgJ3NwYWNlQmVsb3cnLCAndGV4dENvbG91ciddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlVGltZWxpbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlVGltZWxpbmVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlVGltZWxpbmUgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVUaW1lbGluZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXRlJywgJ2hlYWRpbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JpZ2dpdmUtdGltZWxpbmUtZW50cnknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RhdGUnLCAnaGVhZGluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlVGltZWxpbmVFbnRyeSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEJpZ2dpdmVUaW1lbGluZUVudHJ5RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZVRpbWVsaW5lRW50cnkgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVUaW1lbGluZUVudHJ5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21haW5NZXNzYWdlJywgJ3ByaW1hcnlDb2xvdXInLCAncHJpbWFyeVRleHRDb2xvdXInLCAnc2Vjb25kYXJ5Q29sb3VyJywgJ3NlY29uZGFyeVRleHRDb2xvdXInLCAnc3BhY2VCZWxvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS10b3RhbGl6ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ21haW5NZXNzYWdlJywgJ3ByaW1hcnlDb2xvdXInLCAncHJpbWFyeVRleHRDb2xvdXInLCAnc2Vjb25kYXJ5Q29sb3VyJywgJ3NlY29uZGFyeVRleHRDb2xvdXInLCAnc3BhY2VCZWxvdyddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWdnaXZlVG90YWxpemVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZVRvdGFsaXplckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJpZ2dpdmVUb3RhbGl6ZXIgZXh0ZW5kcyBDb21wb25lbnRzLkJpZ2dpdmVUb3RhbGl6ZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlndXJlJywgJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLXRvdGFsaXplci10aWNrZXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZmlndXJlJywgJ2xhYmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVUb3RhbGl6ZXJUaWNrZXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZVRvdGFsaXplclRpY2tlckl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCaWdnaXZlVG90YWxpemVyVGlja2VySXRlbSBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZVRvdGFsaXplclRpY2tlckl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc3BhY2VBYm92ZScsICdzcGFjZUJlbG93JywgJ3ZpZGVvVXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWdnaXZlLXZpZGVvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzcGFjZUFib3ZlJywgJ3NwYWNlQmVsb3cnLCAndmlkZW9VcmwnXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnZ2l2ZVZpZGVvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MQmlnZ2l2ZVZpZGVvRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZVZpZGVvIGV4dGVuZHMgQ29tcG9uZW50cy5CaWdnaXZlVmlkZW8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uQ29sb3VyU2NoZW1lJywgJ2J1dHRvbkxhYmVsJywgJ2J1dHRvblVybCcsICdkZWZhdWx0VGV4dENvbG91cicsICdtYWluVGl0bGUnLCAnbWFpblRpdGxlQ29sb3VyJywgJ3NsdWcnLCAnc2x1Z0NvbG91cicsICdzcGFjZUFib3ZlJywgJ3NwYWNlQmVsb3cnLCAndGVhc2VyJywgJ3RlYXNlckNvbG91cicsICd2aWRlb1VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlnZ2l2ZS12aWRlby1mZWF0dXJlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydidXR0b25Db2xvdXJTY2hlbWUnLCAnYnV0dG9uTGFiZWwnLCAnYnV0dG9uVXJsJywgJ2RlZmF1bHRUZXh0Q29sb3VyJywgJ21haW5UaXRsZScsICdtYWluVGl0bGVDb2xvdXInLCAnc2x1ZycsICdzbHVnQ29sb3VyJywgJ3NwYWNlQWJvdmUnLCAnc3BhY2VCZWxvdycsICd0ZWFzZXInLCAndGVhc2VyQ29sb3VyJywgJ3ZpZGVvVXJsJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJpZ2dpdmVWaWRlb0ZlYXR1cmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxCaWdnaXZlVmlkZW9GZWF0dXJlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmlnZ2l2ZVZpZGVvRmVhdHVyZSBleHRlbmRzIENvbXBvbmVudHMuQmlnZ2l2ZVZpZGVvRmVhdHVyZSB7fVxuXG5cbiJdfQ==