@baloise/ds-angular-module 19.6.0 → 19.7.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.
@@ -128,8 +128,8 @@ let BalAccordion = class BalAccordion {
128
128
  this.el = r.nativeElement;
129
129
  proxyOutputs(this, this.el, ['balChange', 'balWillAnimate', 'balDidAnimate']);
130
130
  }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalAccordion, selector: "bal-accordion", inputs: { active: "active", card: "card", closeIcon: "closeIcon", closeLabel: "closeLabel", debounce: "debounce", openIcon: "openIcon", openLabel: "openLabel" }, outputs: { balChange: "balChange", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalAccordion, selector: "bal-accordion", inputs: { active: "active", card: "card", closeIcon: "closeIcon", closeLabel: "closeLabel", debounce: "debounce", openIcon: "openIcon", openLabel: "openLabel" }, outputs: { balChange: "balChange", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
133
133
  };
134
134
  BalAccordion = __decorate([
135
135
  ProxyCmp({
@@ -140,7 +140,7 @@ BalAccordion = __decorate([
140
140
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
141
141
  ], BalAccordion);
142
142
  export { BalAccordion };
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalAccordion, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalAccordion, decorators: [{
144
144
  type: Component,
145
145
  args: [{
146
146
  selector: 'bal-accordion',
@@ -157,8 +157,8 @@ let BalAccordionDetails = class BalAccordionDetails {
157
157
  c.detach();
158
158
  this.el = r.nativeElement;
159
159
  }
160
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalAccordionDetails, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
161
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalAccordionDetails, selector: "bal-accordion-details", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalAccordionDetails, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalAccordionDetails, selector: "bal-accordion-details", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
162
162
  };
163
163
  BalAccordionDetails = __decorate([
164
164
  ProxyCmp({
@@ -167,7 +167,7 @@ BalAccordionDetails = __decorate([
167
167
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
168
168
  ], BalAccordionDetails);
169
169
  export { BalAccordionDetails };
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalAccordionDetails, decorators: [{
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalAccordionDetails, decorators: [{
171
171
  type: Component,
172
172
  args: [{
173
173
  selector: 'bal-accordion-details',
@@ -182,8 +182,8 @@ let BalAccordionSummary = class BalAccordionSummary {
182
182
  c.detach();
183
183
  this.el = r.nativeElement;
184
184
  }
185
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalAccordionSummary, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
186
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalAccordionSummary, selector: "bal-accordion-summary", inputs: { trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalAccordionSummary, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalAccordionSummary, selector: "bal-accordion-summary", inputs: { trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
187
187
  };
188
188
  BalAccordionSummary = __decorate([
189
189
  ProxyCmp({
@@ -193,7 +193,7 @@ BalAccordionSummary = __decorate([
193
193
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
194
194
  ], BalAccordionSummary);
195
195
  export { BalAccordionSummary };
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalAccordionSummary, decorators: [{
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalAccordionSummary, decorators: [{
197
197
  type: Component,
198
198
  args: [{
199
199
  selector: 'bal-accordion-summary',
@@ -209,8 +209,8 @@ let BalAccordionTrigger = class BalAccordionTrigger {
209
209
  c.detach();
210
210
  this.el = r.nativeElement;
211
211
  }
212
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalAccordionTrigger, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
213
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalAccordionTrigger, selector: "bal-accordion-trigger", inputs: { button: "button", closeIcon: "closeIcon", closeLabel: "closeLabel", color: "color", expanded: "expanded", openIcon: "openIcon", openLabel: "openLabel", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
212
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalAccordionTrigger, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
213
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalAccordionTrigger, selector: "bal-accordion-trigger", inputs: { button: "button", closeIcon: "closeIcon", closeLabel: "closeLabel", color: "color", expanded: "expanded", openIcon: "openIcon", openLabel: "openLabel", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
214
214
  };
215
215
  BalAccordionTrigger = __decorate([
216
216
  ProxyCmp({
@@ -220,7 +220,7 @@ BalAccordionTrigger = __decorate([
220
220
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
221
221
  ], BalAccordionTrigger);
222
222
  export { BalAccordionTrigger };
223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalAccordionTrigger, decorators: [{
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalAccordionTrigger, decorators: [{
224
224
  type: Component,
225
225
  args: [{
226
226
  selector: 'bal-accordion-trigger',
@@ -236,8 +236,8 @@ let BalApp = class BalApp {
236
236
  c.detach();
237
237
  this.el = r.nativeElement;
238
238
  }
239
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalApp, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
240
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalApp, selector: "bal-app", inputs: { animated: "animated" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
239
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalApp, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
240
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalApp, selector: "bal-app", inputs: { animated: "animated" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
241
241
  };
242
242
  BalApp = __decorate([
243
243
  ProxyCmp({
@@ -248,7 +248,7 @@ BalApp = __decorate([
248
248
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
249
249
  ], BalApp);
250
250
  export { BalApp };
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalApp, decorators: [{
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalApp, decorators: [{
252
252
  type: Component,
253
253
  args: [{
254
254
  selector: 'bal-app',
@@ -264,8 +264,8 @@ let BalBadge = class BalBadge {
264
264
  c.detach();
265
265
  this.el = r.nativeElement;
266
266
  }
267
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
268
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalBadge, selector: "bal-badge", inputs: { color: "color", icon: "icon", position: "position", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
267
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
268
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalBadge, selector: "bal-badge", inputs: { color: "color", icon: "icon", position: "position", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
269
269
  };
270
270
  BalBadge = __decorate([
271
271
  ProxyCmp({
@@ -275,7 +275,7 @@ BalBadge = __decorate([
275
275
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
276
276
  ], BalBadge);
277
277
  export { BalBadge };
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalBadge, decorators: [{
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalBadge, decorators: [{
279
279
  type: Component,
280
280
  args: [{
281
281
  selector: 'bal-badge',
@@ -292,8 +292,8 @@ let BalButton = class BalButton {
292
292
  this.el = r.nativeElement;
293
293
  proxyOutputs(this, this.el, ['balClick', 'balNavigate', 'balFocus', 'balBlur', 'balDidRender']);
294
294
  }
295
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
296
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalButton, selector: "bal-button", inputs: { a11yControls: "a11yControls", a11yHaspopup: "a11yHaspopup", a11yLabel: "a11yLabel", a11yTitle: "a11yTitle", balPopup: "balPopup", color: "color", disabled: "disabled", download: "download", elementType: "elementType", expanded: "expanded", flat: "flat", href: "href", icon: "icon", iconRight: "iconRight", iconTurn: "iconTurn", inverted: "inverted", isActive: "isActive", loading: "loading", name: "name", noWrap: "noWrap", outlined: "outlined", rel: "rel", rounded: "rounded", shadow: "shadow", size: "size", square: "square", target: "target", value: "value" }, outputs: { balClick: "balClick", balNavigate: "balNavigate", balFocus: "balFocus", balBlur: "balBlur", balDidRender: "balDidRender" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
295
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
296
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalButton, selector: "bal-button", inputs: { a11yControls: "a11yControls", a11yHaspopup: "a11yHaspopup", a11yLabel: "a11yLabel", a11yTitle: "a11yTitle", balPopup: "balPopup", color: "color", disabled: "disabled", download: "download", elementType: "elementType", expanded: "expanded", flat: "flat", href: "href", icon: "icon", iconRight: "iconRight", iconTurn: "iconTurn", inverted: "inverted", isActive: "isActive", loading: "loading", name: "name", noWrap: "noWrap", outlined: "outlined", rel: "rel", rounded: "rounded", shadow: "shadow", size: "size", square: "square", target: "target", value: "value" }, outputs: { balClick: "balClick", balNavigate: "balNavigate", balFocus: "balFocus", balBlur: "balBlur", balDidRender: "balDidRender" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
297
297
  };
298
298
  BalButton = __decorate([
299
299
  ProxyCmp({
@@ -303,7 +303,7 @@ BalButton = __decorate([
303
303
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
304
304
  ], BalButton);
305
305
  export { BalButton };
306
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalButton, decorators: [{
306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalButton, decorators: [{
307
307
  type: Component,
308
308
  args: [{
309
309
  selector: 'bal-button',
@@ -320,8 +320,8 @@ let BalButtonGroup = class BalButtonGroup {
320
320
  c.detach();
321
321
  this.el = r.nativeElement;
322
322
  }
323
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalButtonGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
324
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalButtonGroup, selector: "bal-button-group", inputs: { direction: "direction", position: "position", reverse: "reverse" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
323
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalButtonGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
324
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalButtonGroup, selector: "bal-button-group", inputs: { direction: "direction", position: "position", reverse: "reverse" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
325
325
  };
326
326
  BalButtonGroup = __decorate([
327
327
  ProxyCmp({
@@ -331,7 +331,7 @@ BalButtonGroup = __decorate([
331
331
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
332
332
  ], BalButtonGroup);
333
333
  export { BalButtonGroup };
334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalButtonGroup, decorators: [{
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalButtonGroup, decorators: [{
335
335
  type: Component,
336
336
  args: [{
337
337
  selector: 'bal-button-group',
@@ -347,8 +347,8 @@ let BalCard = class BalCard {
347
347
  c.detach();
348
348
  this.el = r.nativeElement;
349
349
  }
350
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
351
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCard, selector: "bal-card", inputs: { border: "border", clickable: "clickable", color: "color", flat: "flat", fullheight: "fullheight", inverted: "inverted", selected: "selected", space: "space", square: "square" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
350
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
351
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCard, selector: "bal-card", inputs: { border: "border", clickable: "clickable", color: "color", flat: "flat", fullheight: "fullheight", inverted: "inverted", selected: "selected", space: "space", square: "square" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
352
352
  };
353
353
  BalCard = __decorate([
354
354
  ProxyCmp({
@@ -358,7 +358,7 @@ BalCard = __decorate([
358
358
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
359
359
  ], BalCard);
360
360
  export { BalCard };
361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCard, decorators: [{
361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCard, decorators: [{
362
362
  type: Component,
363
363
  args: [{
364
364
  selector: 'bal-card',
@@ -374,8 +374,8 @@ let BalCardActions = class BalCardActions {
374
374
  c.detach();
375
375
  this.el = r.nativeElement;
376
376
  }
377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCardActions, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
378
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCardActions, selector: "bal-card-actions", inputs: { position: "position" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
377
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCardActions, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
378
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCardActions, selector: "bal-card-actions", inputs: { position: "position" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
379
379
  };
380
380
  BalCardActions = __decorate([
381
381
  ProxyCmp({
@@ -385,7 +385,7 @@ BalCardActions = __decorate([
385
385
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
386
386
  ], BalCardActions);
387
387
  export { BalCardActions };
388
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCardActions, decorators: [{
388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCardActions, decorators: [{
389
389
  type: Component,
390
390
  args: [{
391
391
  selector: 'bal-card-actions',
@@ -401,8 +401,8 @@ let BalCardButton = class BalCardButton {
401
401
  c.detach();
402
402
  this.el = r.nativeElement;
403
403
  }
404
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCardButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
405
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCardButton, selector: "bal-card-button", inputs: { disabled: "disabled", elementType: "elementType", href: "href", icon: "icon", iconRight: "iconRight", loading: "loading", target: "target" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
404
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCardButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
405
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCardButton, selector: "bal-card-button", inputs: { disabled: "disabled", elementType: "elementType", href: "href", icon: "icon", iconRight: "iconRight", loading: "loading", target: "target" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
406
406
  };
407
407
  BalCardButton = __decorate([
408
408
  ProxyCmp({
@@ -412,7 +412,7 @@ BalCardButton = __decorate([
412
412
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
413
413
  ], BalCardButton);
414
414
  export { BalCardButton };
415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCardButton, decorators: [{
415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCardButton, decorators: [{
416
416
  type: Component,
417
417
  args: [{
418
418
  selector: 'bal-card-button',
@@ -428,8 +428,8 @@ let BalCardContent = class BalCardContent {
428
428
  c.detach();
429
429
  this.el = r.nativeElement;
430
430
  }
431
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCardContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
432
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCardContent, selector: "bal-card-content", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
431
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCardContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
432
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCardContent, selector: "bal-card-content", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
433
433
  };
434
434
  BalCardContent = __decorate([
435
435
  ProxyCmp({
@@ -438,7 +438,7 @@ BalCardContent = __decorate([
438
438
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
439
439
  ], BalCardContent);
440
440
  export { BalCardContent };
441
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCardContent, decorators: [{
441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCardContent, decorators: [{
442
442
  type: Component,
443
443
  args: [{
444
444
  selector: 'bal-card-content',
@@ -453,8 +453,8 @@ let BalCardSubtitle = class BalCardSubtitle {
453
453
  c.detach();
454
454
  this.el = r.nativeElement;
455
455
  }
456
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCardSubtitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
457
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCardSubtitle, selector: "bal-card-subtitle", inputs: { bold: "bold", color: "color", inverted: "inverted" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
456
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCardSubtitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
457
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCardSubtitle, selector: "bal-card-subtitle", inputs: { bold: "bold", color: "color", inverted: "inverted" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
458
458
  };
459
459
  BalCardSubtitle = __decorate([
460
460
  ProxyCmp({
@@ -464,7 +464,7 @@ BalCardSubtitle = __decorate([
464
464
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
465
465
  ], BalCardSubtitle);
466
466
  export { BalCardSubtitle };
467
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCardSubtitle, decorators: [{
467
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCardSubtitle, decorators: [{
468
468
  type: Component,
469
469
  args: [{
470
470
  selector: 'bal-card-subtitle',
@@ -480,8 +480,8 @@ let BalCardTitle = class BalCardTitle {
480
480
  c.detach();
481
481
  this.el = r.nativeElement;
482
482
  }
483
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCardTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
484
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCardTitle, selector: "bal-card-title", inputs: { inverted: "inverted" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
483
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCardTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
484
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCardTitle, selector: "bal-card-title", inputs: { inverted: "inverted" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
485
485
  };
486
486
  BalCardTitle = __decorate([
487
487
  ProxyCmp({
@@ -491,7 +491,7 @@ BalCardTitle = __decorate([
491
491
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
492
492
  ], BalCardTitle);
493
493
  export { BalCardTitle };
494
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCardTitle, decorators: [{
494
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCardTitle, decorators: [{
495
495
  type: Component,
496
496
  args: [{
497
497
  selector: 'bal-card-title',
@@ -508,8 +508,8 @@ let BalCarousel = class BalCarousel {
508
508
  this.el = r.nativeElement;
509
509
  proxyOutputs(this, this.el, ['balChange']);
510
510
  }
511
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCarousel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
512
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCarousel, selector: "bal-carousel", inputs: { aspectRatio: "aspectRatio", border: "border", controls: "controls", controlsOverflow: "controlsOverflow", controlsSticky: "controlsSticky", fullHeight: "fullHeight", htmlRole: "htmlRole", interface: "interface", inverted: "inverted", itemsPerView: "itemsPerView", scrollY: "scrollY", space: "space", steps: "steps", value: "value" }, outputs: { balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
511
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCarousel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
512
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCarousel, selector: "bal-carousel", inputs: { aspectRatio: "aspectRatio", border: "border", controls: "controls", controlsOverflow: "controlsOverflow", controlsSticky: "controlsSticky", fullHeight: "fullHeight", htmlRole: "htmlRole", interface: "interface", inverted: "inverted", itemsPerView: "itemsPerView", scrollY: "scrollY", space: "space", steps: "steps", value: "value" }, outputs: { balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
513
513
  };
514
514
  BalCarousel = __decorate([
515
515
  ProxyCmp({
@@ -520,7 +520,7 @@ BalCarousel = __decorate([
520
520
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
521
521
  ], BalCarousel);
522
522
  export { BalCarousel };
523
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCarousel, decorators: [{
523
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCarousel, decorators: [{
524
524
  type: Component,
525
525
  args: [{
526
526
  selector: 'bal-carousel',
@@ -538,8 +538,8 @@ let BalCarouselItem = class BalCarouselItem {
538
538
  this.el = r.nativeElement;
539
539
  proxyOutputs(this, this.el, ['balNavigate', 'balFocus', 'balBlur']);
540
540
  }
541
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCarouselItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
542
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCarouselItem, selector: "bal-carousel-item", inputs: { color: "color", download: "download", elementType: "elementType", href: "href", htmlRole: "htmlRole", label: "label", name: "name", rel: "rel", src: "src", svg: "svg", target: "target", value: "value" }, outputs: { balNavigate: "balNavigate", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
541
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCarouselItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
542
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCarouselItem, selector: "bal-carousel-item", inputs: { color: "color", download: "download", elementType: "elementType", href: "href", htmlRole: "htmlRole", label: "label", name: "name", rel: "rel", src: "src", svg: "svg", target: "target", value: "value" }, outputs: { balNavigate: "balNavigate", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
543
543
  };
544
544
  BalCarouselItem = __decorate([
545
545
  ProxyCmp({
@@ -550,7 +550,7 @@ BalCarouselItem = __decorate([
550
550
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
551
551
  ], BalCarouselItem);
552
552
  export { BalCarouselItem };
553
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCarouselItem, decorators: [{
553
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCarouselItem, decorators: [{
554
554
  type: Component,
555
555
  args: [{
556
556
  selector: 'bal-carousel-item',
@@ -567,8 +567,8 @@ let BalCheck = class BalCheck {
567
567
  c.detach();
568
568
  this.el = r.nativeElement;
569
569
  }
570
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCheck, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
571
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCheck, selector: "bal-check", inputs: { checked: "checked", disabled: "disabled", invalid: "invalid", inverted: "inverted" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
570
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCheck, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
571
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCheck, selector: "bal-check", inputs: { checked: "checked", disabled: "disabled", invalid: "invalid", inverted: "inverted" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
572
572
  };
573
573
  BalCheck = __decorate([
574
574
  ProxyCmp({
@@ -578,7 +578,7 @@ BalCheck = __decorate([
578
578
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
579
579
  ], BalCheck);
580
580
  export { BalCheck };
581
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCheck, decorators: [{
581
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCheck, decorators: [{
582
582
  type: Component,
583
583
  args: [{
584
584
  selector: 'bal-check',
@@ -595,8 +595,8 @@ let BalCheckbox = class BalCheckbox {
595
595
  this.el = r.nativeElement;
596
596
  proxyOutputs(this, this.el, ['balFocus', 'balBlur', 'balChange']);
597
597
  }
598
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
599
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCheckbox, selector: "bal-checkbox", inputs: { autoInvalidOff: "autoInvalidOff", checked: "checked", color: "color", disabled: "disabled", flat: "flat", interface: "interface", invalid: "invalid", label: "label", labelHidden: "labelHidden", name: "name", nonSubmit: "nonSubmit", readonly: "readonly", required: "required", value: "value" }, outputs: { balFocus: "balFocus", balBlur: "balBlur", balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
598
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
599
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCheckbox, selector: "bal-checkbox", inputs: { autoInvalidOff: "autoInvalidOff", checked: "checked", color: "color", disabled: "disabled", flat: "flat", interface: "interface", invalid: "invalid", label: "label", labelHidden: "labelHidden", name: "name", nonSubmit: "nonSubmit", readonly: "readonly", required: "required", value: "value" }, outputs: { balFocus: "balFocus", balBlur: "balBlur", balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
600
600
  };
601
601
  BalCheckbox = __decorate([
602
602
  ProxyCmp({
@@ -607,7 +607,7 @@ BalCheckbox = __decorate([
607
607
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
608
608
  ], BalCheckbox);
609
609
  export { BalCheckbox };
610
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCheckbox, decorators: [{
610
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCheckbox, decorators: [{
611
611
  type: Component,
612
612
  args: [{
613
613
  selector: 'bal-checkbox',
@@ -625,8 +625,8 @@ let BalCheckboxGroup = class BalCheckboxGroup {
625
625
  this.el = r.nativeElement;
626
626
  proxyOutputs(this, this.el, ['balChange', 'balFocus', 'balBlur']);
627
627
  }
628
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCheckboxGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
629
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalCheckboxGroup, selector: "bal-checkbox-group", inputs: { autoInvalidOff: "autoInvalidOff", columns: "columns", columnsMobile: "columnsMobile", columnsTablet: "columnsTablet", control: "control", disabled: "disabled", expanded: "expanded", interface: "interface", invalid: "invalid", name: "name", options: "options", readonly: "readonly", value: "value", vertical: "vertical", verticalOnMobile: "verticalOnMobile" }, outputs: { balChange: "balChange", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
628
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCheckboxGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
629
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalCheckboxGroup, selector: "bal-checkbox-group", inputs: { autoInvalidOff: "autoInvalidOff", columns: "columns", columnsMobile: "columnsMobile", columnsTablet: "columnsTablet", control: "control", disabled: "disabled", expanded: "expanded", interface: "interface", invalid: "invalid", name: "name", options: "options", readonly: "readonly", value: "value", vertical: "vertical", verticalOnMobile: "verticalOnMobile" }, outputs: { balChange: "balChange", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
630
630
  };
631
631
  BalCheckboxGroup = __decorate([
632
632
  ProxyCmp({
@@ -637,7 +637,7 @@ BalCheckboxGroup = __decorate([
637
637
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
638
638
  ], BalCheckboxGroup);
639
639
  export { BalCheckboxGroup };
640
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalCheckboxGroup, decorators: [{
640
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalCheckboxGroup, decorators: [{
641
641
  type: Component,
642
642
  args: [{
643
643
  selector: 'bal-checkbox-group',
@@ -654,8 +654,8 @@ let BalClose = class BalClose {
654
654
  c.detach();
655
655
  this.el = r.nativeElement;
656
656
  }
657
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalClose, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
658
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalClose, selector: "bal-close", inputs: { inverted: "inverted", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
657
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalClose, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
658
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalClose, selector: "bal-close", inputs: { inverted: "inverted", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
659
659
  };
660
660
  BalClose = __decorate([
661
661
  ProxyCmp({
@@ -665,7 +665,7 @@ BalClose = __decorate([
665
665
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
666
666
  ], BalClose);
667
667
  export { BalClose };
668
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalClose, decorators: [{
668
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalClose, decorators: [{
669
669
  type: Component,
670
670
  args: [{
671
671
  selector: 'bal-close',
@@ -681,8 +681,8 @@ let BalContent = class BalContent {
681
681
  c.detach();
682
682
  this.el = r.nativeElement;
683
683
  }
684
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
685
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalContent, selector: "bal-content", inputs: { align: "align", layout: "layout", space: "space" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
684
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
685
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalContent, selector: "bal-content", inputs: { align: "align", layout: "layout", space: "space" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
686
686
  };
687
687
  BalContent = __decorate([
688
688
  ProxyCmp({
@@ -692,7 +692,7 @@ BalContent = __decorate([
692
692
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
693
693
  ], BalContent);
694
694
  export { BalContent };
695
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalContent, decorators: [{
695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalContent, decorators: [{
696
696
  type: Component,
697
697
  args: [{
698
698
  selector: 'bal-content',
@@ -708,8 +708,8 @@ let BalData = class BalData {
708
708
  c.detach();
709
709
  this.el = r.nativeElement;
710
710
  }
711
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalData, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
712
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalData, selector: "bal-data", inputs: { border: "border", horizontal: "horizontal" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
711
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalData, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
712
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalData, selector: "bal-data", inputs: { border: "border", horizontal: "horizontal" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
713
713
  };
714
714
  BalData = __decorate([
715
715
  ProxyCmp({
@@ -719,7 +719,7 @@ BalData = __decorate([
719
719
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
720
720
  ], BalData);
721
721
  export { BalData };
722
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalData, decorators: [{
722
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalData, decorators: [{
723
723
  type: Component,
724
724
  args: [{
725
725
  selector: 'bal-data',
@@ -735,8 +735,8 @@ let BalDataItem = class BalDataItem {
735
735
  c.detach();
736
736
  this.el = r.nativeElement;
737
737
  }
738
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDataItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
739
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalDataItem, selector: "bal-data-item", inputs: { border: "border", disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
738
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDataItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
739
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalDataItem, selector: "bal-data-item", inputs: { border: "border", disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
740
740
  };
741
741
  BalDataItem = __decorate([
742
742
  ProxyCmp({
@@ -746,7 +746,7 @@ BalDataItem = __decorate([
746
746
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
747
747
  ], BalDataItem);
748
748
  export { BalDataItem };
749
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDataItem, decorators: [{
749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDataItem, decorators: [{
750
750
  type: Component,
751
751
  args: [{
752
752
  selector: 'bal-data-item',
@@ -762,8 +762,8 @@ let BalDataLabel = class BalDataLabel {
762
762
  c.detach();
763
763
  this.el = r.nativeElement;
764
764
  }
765
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDataLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
766
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalDataLabel, selector: "bal-data-label", inputs: { required: "required" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
765
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDataLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
766
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalDataLabel, selector: "bal-data-label", inputs: { required: "required" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
767
767
  };
768
768
  BalDataLabel = __decorate([
769
769
  ProxyCmp({
@@ -773,7 +773,7 @@ BalDataLabel = __decorate([
773
773
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
774
774
  ], BalDataLabel);
775
775
  export { BalDataLabel };
776
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDataLabel, decorators: [{
776
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDataLabel, decorators: [{
777
777
  type: Component,
778
778
  args: [{
779
779
  selector: 'bal-data-label',
@@ -790,8 +790,8 @@ let BalDataValue = class BalDataValue {
790
790
  this.el = r.nativeElement;
791
791
  proxyOutputs(this, this.el, ['balClick', 'balFocus', 'balBlur']);
792
792
  }
793
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDataValue, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
794
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalDataValue, selector: "bal-data-value", inputs: { disabled: "disabled", editable: "editable", multiline: "multiline" }, outputs: { balClick: "balClick", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
793
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDataValue, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
794
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalDataValue, selector: "bal-data-value", inputs: { disabled: "disabled", editable: "editable", multiline: "multiline" }, outputs: { balClick: "balClick", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
795
795
  };
796
796
  BalDataValue = __decorate([
797
797
  ProxyCmp({
@@ -801,7 +801,7 @@ BalDataValue = __decorate([
801
801
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
802
802
  ], BalDataValue);
803
803
  export { BalDataValue };
804
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDataValue, decorators: [{
804
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDataValue, decorators: [{
805
805
  type: Component,
806
806
  args: [{
807
807
  selector: 'bal-data-value',
@@ -819,8 +819,8 @@ let BalDate = class BalDate {
819
819
  this.el = r.nativeElement;
820
820
  proxyOutputs(this, this.el, ['balInput', 'balChange', 'balWillAnimate', 'balDidAnimate', 'balBlur', 'balFocus', 'balInputClick', 'balIconClick']);
821
821
  }
822
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDate, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
823
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalDate, selector: "bal-date", inputs: { allowInvalidValue: "allowInvalidValue", allowedDates: "allowedDates", autoInvalidOff: "autoInvalidOff", autocomplete: "autocomplete", closeOnSelect: "closeOnSelect", debounce: "debounce", defaultDate: "defaultDate", disabled: "disabled", freeSolo: "freeSolo", invalid: "invalid", max: "max", maxYearProp: "maxYearProp", min: "min", minYearProp: "minYearProp", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", triggerIcon: "triggerIcon", value: "value" }, outputs: { balInput: "balInput", balChange: "balChange", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate", balBlur: "balBlur", balFocus: "balFocus", balInputClick: "balInputClick", balIconClick: "balIconClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
822
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDate, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
823
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalDate, selector: "bal-date", inputs: { allowInvalidValue: "allowInvalidValue", allowedDates: "allowedDates", autoInvalidOff: "autoInvalidOff", autocomplete: "autocomplete", closeOnSelect: "closeOnSelect", debounce: "debounce", defaultDate: "defaultDate", disabled: "disabled", freeSolo: "freeSolo", invalid: "invalid", max: "max", maxYearProp: "maxYearProp", min: "min", minYearProp: "minYearProp", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", triggerIcon: "triggerIcon", value: "value" }, outputs: { balInput: "balInput", balChange: "balChange", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate", balBlur: "balBlur", balFocus: "balFocus", balInputClick: "balInputClick", balIconClick: "balIconClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
824
824
  };
825
825
  BalDate = __decorate([
826
826
  ProxyCmp({
@@ -831,7 +831,7 @@ BalDate = __decorate([
831
831
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
832
832
  ], BalDate);
833
833
  export { BalDate };
834
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDate, decorators: [{
834
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDate, decorators: [{
835
835
  type: Component,
836
836
  args: [{
837
837
  selector: 'bal-date',
@@ -849,8 +849,8 @@ let BalDateCalendar = class BalDateCalendar {
849
849
  this.el = r.nativeElement;
850
850
  proxyOutputs(this, this.el, ['balChange']);
851
851
  }
852
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDateCalendar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
853
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalDateCalendar, selector: "bal-date-calendar", inputs: { allowedDates: "allowedDates", defaultDate: "defaultDate", max: "max", maxYearProp: "maxYearProp", min: "min", minYearProp: "minYearProp", value: "value" }, outputs: { balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
852
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDateCalendar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
853
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalDateCalendar, selector: "bal-date-calendar", inputs: { allowedDates: "allowedDates", defaultDate: "defaultDate", max: "max", maxYearProp: "maxYearProp", min: "min", minYearProp: "minYearProp", value: "value" }, outputs: { balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
854
854
  };
855
855
  BalDateCalendar = __decorate([
856
856
  ProxyCmp({
@@ -860,7 +860,7 @@ BalDateCalendar = __decorate([
860
860
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
861
861
  ], BalDateCalendar);
862
862
  export { BalDateCalendar };
863
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDateCalendar, decorators: [{
863
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDateCalendar, decorators: [{
864
864
  type: Component,
865
865
  args: [{
866
866
  selector: 'bal-date-calendar',
@@ -878,8 +878,8 @@ let BalDateCalendarCell = class BalDateCalendarCell {
878
878
  this.el = r.nativeElement;
879
879
  proxyOutputs(this, this.el, ['balSelectDay']);
880
880
  }
881
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDateCalendarCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
882
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalDateCalendarCell, selector: "bal-date-calendar-cell", inputs: { day: "day", disabled: "disabled", fullDate: "fullDate", isoDate: "isoDate", month: "month", selected: "selected", today: "today", year: "year" }, outputs: { balSelectDay: "balSelectDay" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
881
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDateCalendarCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
882
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalDateCalendarCell, selector: "bal-date-calendar-cell", inputs: { day: "day", disabled: "disabled", fullDate: "fullDate", isoDate: "isoDate", month: "month", selected: "selected", today: "today", year: "year" }, outputs: { balSelectDay: "balSelectDay" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
883
883
  };
884
884
  BalDateCalendarCell = __decorate([
885
885
  ProxyCmp({
@@ -889,7 +889,7 @@ BalDateCalendarCell = __decorate([
889
889
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
890
890
  ], BalDateCalendarCell);
891
891
  export { BalDateCalendarCell };
892
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDateCalendarCell, decorators: [{
892
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDateCalendarCell, decorators: [{
893
893
  type: Component,
894
894
  args: [{
895
895
  selector: 'bal-date-calendar-cell',
@@ -906,8 +906,8 @@ let BalDivider = class BalDivider {
906
906
  c.detach();
907
907
  this.el = r.nativeElement;
908
908
  }
909
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
910
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalDivider, selector: "bal-divider", inputs: { borderStyle: "borderStyle", color: "color", layout: "layout", space: "space" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
909
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
910
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalDivider, selector: "bal-divider", inputs: { borderStyle: "borderStyle", color: "color", layout: "layout", space: "space" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
911
911
  };
912
912
  BalDivider = __decorate([
913
913
  ProxyCmp({
@@ -917,7 +917,7 @@ BalDivider = __decorate([
917
917
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
918
918
  ], BalDivider);
919
919
  export { BalDivider };
920
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDivider, decorators: [{
920
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDivider, decorators: [{
921
921
  type: Component,
922
922
  args: [{
923
923
  selector: 'bal-divider',
@@ -934,8 +934,8 @@ let BalDropdown = class BalDropdown {
934
934
  this.el = r.nativeElement;
935
935
  proxyOutputs(this, this.el, ['balChange', 'balFocus', 'balBlur']);
936
936
  }
937
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
938
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalDropdown, selector: "bal-dropdown", inputs: { autocomplete: "autocomplete", chips: "chips", clearable: "clearable", contentHeight: "contentHeight", disabled: "disabled", filter: "filter", icon: "icon", inlineLabel: "inlineLabel", invalid: "invalid", loading: "loading", multiple: "multiple", name: "name", options: "options", placeholder: "placeholder", readonly: "readonly", required: "required", size: "size", theme: "theme", value: "value" }, outputs: { balChange: "balChange", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
937
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
938
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalDropdown, selector: "bal-dropdown", inputs: { autocomplete: "autocomplete", chips: "chips", clearable: "clearable", contentHeight: "contentHeight", disabled: "disabled", filter: "filter", icon: "icon", inlineLabel: "inlineLabel", invalid: "invalid", loading: "loading", multiple: "multiple", name: "name", options: "options", placeholder: "placeholder", readonly: "readonly", required: "required", size: "size", theme: "theme", value: "value" }, outputs: { balChange: "balChange", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
939
939
  };
940
940
  BalDropdown = __decorate([
941
941
  ProxyCmp({
@@ -946,7 +946,7 @@ BalDropdown = __decorate([
946
946
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
947
947
  ], BalDropdown);
948
948
  export { BalDropdown };
949
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalDropdown, decorators: [{
949
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalDropdown, decorators: [{
950
950
  type: Component,
951
951
  args: [{
952
952
  selector: 'bal-dropdown',
@@ -964,8 +964,8 @@ let BalField = class BalField {
964
964
  this.el = r.nativeElement;
965
965
  proxyOutputs(this, this.el, ['balFormControlDidLoad']);
966
966
  }
967
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
968
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalField, selector: "bal-field", inputs: { disabled: "disabled", horizontal: "horizontal", invalid: "invalid", loading: "loading", readonly: "readonly", required: "required", valid: "valid" }, outputs: { balFormControlDidLoad: "balFormControlDidLoad" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
967
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
968
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalField, selector: "bal-field", inputs: { disabled: "disabled", horizontal: "horizontal", invalid: "invalid", loading: "loading", readonly: "readonly", required: "required", valid: "valid" }, outputs: { balFormControlDidLoad: "balFormControlDidLoad" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
969
969
  };
970
970
  BalField = __decorate([
971
971
  ProxyCmp({
@@ -975,7 +975,7 @@ BalField = __decorate([
975
975
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
976
976
  ], BalField);
977
977
  export { BalField };
978
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalField, decorators: [{
978
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalField, decorators: [{
979
979
  type: Component,
980
980
  args: [{
981
981
  selector: 'bal-field',
@@ -992,8 +992,8 @@ let BalFieldControl = class BalFieldControl {
992
992
  c.detach();
993
993
  this.el = r.nativeElement;
994
994
  }
995
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFieldControl, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
996
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalFieldControl, selector: "bal-field-control", inputs: { expandedOnMobile: "expandedOnMobile", iconLeft: "iconLeft", iconRight: "iconRight", loading: "loading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
995
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFieldControl, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
996
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalFieldControl, selector: "bal-field-control", inputs: { expandedOnMobile: "expandedOnMobile", iconLeft: "iconLeft", iconRight: "iconRight", loading: "loading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
997
997
  };
998
998
  BalFieldControl = __decorate([
999
999
  ProxyCmp({
@@ -1003,7 +1003,7 @@ BalFieldControl = __decorate([
1003
1003
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1004
1004
  ], BalFieldControl);
1005
1005
  export { BalFieldControl };
1006
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFieldControl, decorators: [{
1006
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFieldControl, decorators: [{
1007
1007
  type: Component,
1008
1008
  args: [{
1009
1009
  selector: 'bal-field-control',
@@ -1019,8 +1019,8 @@ let BalFieldHint = class BalFieldHint {
1019
1019
  c.detach();
1020
1020
  this.el = r.nativeElement;
1021
1021
  }
1022
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFieldHint, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1023
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalFieldHint, selector: "bal-field-hint", inputs: { closeLabel: "closeLabel", hideTitleOnDesktop: "hideTitleOnDesktop", small: "small", subject: "subject" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1022
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFieldHint, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1023
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalFieldHint, selector: "bal-field-hint", inputs: { closeLabel: "closeLabel", hideTitleOnDesktop: "hideTitleOnDesktop", small: "small", subject: "subject" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1024
1024
  };
1025
1025
  BalFieldHint = __decorate([
1026
1026
  ProxyCmp({
@@ -1030,7 +1030,7 @@ BalFieldHint = __decorate([
1030
1030
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1031
1031
  ], BalFieldHint);
1032
1032
  export { BalFieldHint };
1033
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFieldHint, decorators: [{
1033
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFieldHint, decorators: [{
1034
1034
  type: Component,
1035
1035
  args: [{
1036
1036
  selector: 'bal-field-hint',
@@ -1046,8 +1046,8 @@ let BalFieldLabel = class BalFieldLabel {
1046
1046
  c.detach();
1047
1047
  this.el = r.nativeElement;
1048
1048
  }
1049
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFieldLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1050
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalFieldLabel, selector: "bal-field-label", inputs: { disabled: "disabled", htmlFor: "htmlFor", invalid: "invalid", readonly: "readonly", required: "required", size: "size", valid: "valid", weight: "weight" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1049
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFieldLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1050
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalFieldLabel, selector: "bal-field-label", inputs: { disabled: "disabled", htmlFor: "htmlFor", invalid: "invalid", readonly: "readonly", required: "required", size: "size", valid: "valid", weight: "weight" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1051
1051
  };
1052
1052
  BalFieldLabel = __decorate([
1053
1053
  ProxyCmp({
@@ -1057,7 +1057,7 @@ BalFieldLabel = __decorate([
1057
1057
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1058
1058
  ], BalFieldLabel);
1059
1059
  export { BalFieldLabel };
1060
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFieldLabel, decorators: [{
1060
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFieldLabel, decorators: [{
1061
1061
  type: Component,
1062
1062
  args: [{
1063
1063
  selector: 'bal-field-label',
@@ -1073,8 +1073,8 @@ let BalFieldMessage = class BalFieldMessage {
1073
1073
  c.detach();
1074
1074
  this.el = r.nativeElement;
1075
1075
  }
1076
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFieldMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1077
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalFieldMessage, selector: "bal-field-message", inputs: { color: "color", disabled: "disabled", invalid: "invalid", noReservedSpace: "noReservedSpace", readonly: "readonly", valid: "valid" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1076
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFieldMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1077
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalFieldMessage, selector: "bal-field-message", inputs: { color: "color", disabled: "disabled", invalid: "invalid", noReservedSpace: "noReservedSpace", readonly: "readonly", valid: "valid" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1078
1078
  };
1079
1079
  BalFieldMessage = __decorate([
1080
1080
  ProxyCmp({
@@ -1084,7 +1084,7 @@ BalFieldMessage = __decorate([
1084
1084
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1085
1085
  ], BalFieldMessage);
1086
1086
  export { BalFieldMessage };
1087
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFieldMessage, decorators: [{
1087
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFieldMessage, decorators: [{
1088
1088
  type: Component,
1089
1089
  args: [{
1090
1090
  selector: 'bal-field-message',
@@ -1101,8 +1101,8 @@ let BalFileUpload = class BalFileUpload {
1101
1101
  this.el = r.nativeElement;
1102
1102
  proxyOutputs(this, this.el, ['balChange', 'balFilesAdded', 'balFilesRemoved', 'balRejectedFile', 'balInputClick', 'balBlur', 'balFocus']);
1103
1103
  }
1104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFileUpload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalFileUpload, selector: "bal-file-upload", inputs: { accept: "accept", autoInvalidOff: "autoInvalidOff", disabled: "disabled", hasFileList: "hasFileList", invalid: "invalid", label: "label", loading: "loading", maxBundleSize: "maxBundleSize", maxFileSize: "maxFileSize", maxFiles: "maxFiles", multiple: "multiple", name: "name", readonly: "readonly", required: "required", subTitle: "subTitle", value: "value" }, outputs: { balChange: "balChange", balFilesAdded: "balFilesAdded", balFilesRemoved: "balFilesRemoved", balRejectedFile: "balRejectedFile", balInputClick: "balInputClick", balBlur: "balBlur", balFocus: "balFocus" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFileUpload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalFileUpload, selector: "bal-file-upload", inputs: { accept: "accept", autoInvalidOff: "autoInvalidOff", disabled: "disabled", hasFileList: "hasFileList", invalid: "invalid", label: "label", loading: "loading", maxBundleSize: "maxBundleSize", maxFileSize: "maxFileSize", maxFiles: "maxFiles", multiple: "multiple", name: "name", readonly: "readonly", required: "required", subTitle: "subTitle", value: "value" }, outputs: { balChange: "balChange", balFilesAdded: "balFilesAdded", balFilesRemoved: "balFilesRemoved", balRejectedFile: "balRejectedFile", balInputClick: "balInputClick", balBlur: "balBlur", balFocus: "balFocus" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1106
1106
  };
1107
1107
  BalFileUpload = __decorate([
1108
1108
  ProxyCmp({
@@ -1113,7 +1113,7 @@ BalFileUpload = __decorate([
1113
1113
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1114
1114
  ], BalFileUpload);
1115
1115
  export { BalFileUpload };
1116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFileUpload, decorators: [{
1116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFileUpload, decorators: [{
1117
1117
  type: Component,
1118
1118
  args: [{
1119
1119
  selector: 'bal-file-upload',
@@ -1130,8 +1130,8 @@ let BalFooter = class BalFooter {
1130
1130
  c.detach();
1131
1131
  this.el = r.nativeElement;
1132
1132
  }
1133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalFooter, selector: "bal-footer", inputs: { hideLanguageSelection: "hideLanguageSelection", hideLinks: "hideLinks", overrideLinks: "overrideLinks", showSocialMedia: "showSocialMedia" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalFooter, selector: "bal-footer", inputs: { hideLanguageSelection: "hideLanguageSelection", hideLinks: "hideLinks", overrideLinks: "overrideLinks", showSocialMedia: "showSocialMedia" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1135
1135
  };
1136
1136
  BalFooter = __decorate([
1137
1137
  ProxyCmp({
@@ -1141,7 +1141,7 @@ BalFooter = __decorate([
1141
1141
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1142
1142
  ], BalFooter);
1143
1143
  export { BalFooter };
1144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFooter, decorators: [{
1144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFooter, decorators: [{
1145
1145
  type: Component,
1146
1146
  args: [{
1147
1147
  selector: 'bal-footer',
@@ -1157,8 +1157,8 @@ let BalForm = class BalForm {
1157
1157
  c.detach();
1158
1158
  this.el = r.nativeElement;
1159
1159
  }
1160
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalForm, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1161
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalForm, selector: "bal-form", inputs: { formClass: "formClass", native: "native", novalidate: "novalidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalForm, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalForm, selector: "bal-form", inputs: { formClass: "formClass", native: "native", novalidate: "novalidate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1162
1162
  };
1163
1163
  BalForm = __decorate([
1164
1164
  ProxyCmp({
@@ -1169,7 +1169,7 @@ BalForm = __decorate([
1169
1169
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1170
1170
  ], BalForm);
1171
1171
  export { BalForm };
1172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalForm, decorators: [{
1172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalForm, decorators: [{
1173
1173
  type: Component,
1174
1174
  args: [{
1175
1175
  selector: 'bal-form',
@@ -1185,8 +1185,8 @@ let BalFormCol = class BalFormCol {
1185
1185
  c.detach();
1186
1186
  this.el = r.nativeElement;
1187
1187
  }
1188
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFormCol, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1189
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalFormCol, selector: "bal-form-col", inputs: { size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1188
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFormCol, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1189
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalFormCol, selector: "bal-form-col", inputs: { size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1190
1190
  };
1191
1191
  BalFormCol = __decorate([
1192
1192
  ProxyCmp({
@@ -1196,7 +1196,7 @@ BalFormCol = __decorate([
1196
1196
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1197
1197
  ], BalFormCol);
1198
1198
  export { BalFormCol };
1199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFormCol, decorators: [{
1199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFormCol, decorators: [{
1200
1200
  type: Component,
1201
1201
  args: [{
1202
1202
  selector: 'bal-form-col',
@@ -1212,8 +1212,8 @@ let BalFormGrid = class BalFormGrid {
1212
1212
  c.detach();
1213
1213
  this.el = r.nativeElement;
1214
1214
  }
1215
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFormGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1216
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalFormGrid, selector: "bal-form-grid", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFormGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1216
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalFormGrid, selector: "bal-form-grid", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1217
1217
  };
1218
1218
  BalFormGrid = __decorate([
1219
1219
  ProxyCmp({
@@ -1222,7 +1222,7 @@ BalFormGrid = __decorate([
1222
1222
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1223
1223
  ], BalFormGrid);
1224
1224
  export { BalFormGrid };
1225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalFormGrid, decorators: [{
1225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalFormGrid, decorators: [{
1226
1226
  type: Component,
1227
1227
  args: [{
1228
1228
  selector: 'bal-form-grid',
@@ -1237,8 +1237,8 @@ let BalHeading = class BalHeading {
1237
1237
  c.detach();
1238
1238
  this.el = r.nativeElement;
1239
1239
  }
1240
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalHeading, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1241
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalHeading, selector: "bal-heading", inputs: { autoLevel: "autoLevel", color: "color", inverted: "inverted", level: "level", noWrap: "noWrap", shadow: "shadow", space: "space", subtitle: "subtitle", visualLevel: "visualLevel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalHeading, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1241
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalHeading, selector: "bal-heading", inputs: { autoLevel: "autoLevel", color: "color", inverted: "inverted", level: "level", noWrap: "noWrap", shadow: "shadow", space: "space", subtitle: "subtitle", visualLevel: "visualLevel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1242
1242
  };
1243
1243
  BalHeading = __decorate([
1244
1244
  ProxyCmp({
@@ -1248,7 +1248,7 @@ BalHeading = __decorate([
1248
1248
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1249
1249
  ], BalHeading);
1250
1250
  export { BalHeading };
1251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalHeading, decorators: [{
1251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalHeading, decorators: [{
1252
1252
  type: Component,
1253
1253
  args: [{
1254
1254
  selector: 'bal-heading',
@@ -1264,8 +1264,8 @@ let BalHint = class BalHint {
1264
1264
  c.detach();
1265
1265
  this.el = r.nativeElement;
1266
1266
  }
1267
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalHint, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1268
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalHint, selector: "bal-hint", inputs: { closeLabel: "closeLabel", small: "small" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1267
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalHint, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1268
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalHint, selector: "bal-hint", inputs: { closeLabel: "closeLabel", small: "small" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1269
1269
  };
1270
1270
  BalHint = __decorate([
1271
1271
  ProxyCmp({
@@ -1276,7 +1276,7 @@ BalHint = __decorate([
1276
1276
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1277
1277
  ], BalHint);
1278
1278
  export { BalHint };
1279
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalHint, decorators: [{
1279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalHint, decorators: [{
1280
1280
  type: Component,
1281
1281
  args: [{
1282
1282
  selector: 'bal-hint',
@@ -1292,8 +1292,8 @@ let BalHintText = class BalHintText {
1292
1292
  c.detach();
1293
1293
  this.el = r.nativeElement;
1294
1294
  }
1295
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalHintText, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1296
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalHintText, selector: "bal-hint-text", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1295
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalHintText, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1296
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalHintText, selector: "bal-hint-text", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1297
1297
  };
1298
1298
  BalHintText = __decorate([
1299
1299
  ProxyCmp({
@@ -1302,7 +1302,7 @@ BalHintText = __decorate([
1302
1302
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1303
1303
  ], BalHintText);
1304
1304
  export { BalHintText };
1305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalHintText, decorators: [{
1305
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalHintText, decorators: [{
1306
1306
  type: Component,
1307
1307
  args: [{
1308
1308
  selector: 'bal-hint-text',
@@ -1317,8 +1317,8 @@ let BalHintTitle = class BalHintTitle {
1317
1317
  c.detach();
1318
1318
  this.el = r.nativeElement;
1319
1319
  }
1320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalHintTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalHintTitle, selector: "bal-hint-title", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalHintTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1321
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalHintTitle, selector: "bal-hint-title", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1322
1322
  };
1323
1323
  BalHintTitle = __decorate([
1324
1324
  ProxyCmp({
@@ -1327,7 +1327,7 @@ BalHintTitle = __decorate([
1327
1327
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1328
1328
  ], BalHintTitle);
1329
1329
  export { BalHintTitle };
1330
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalHintTitle, decorators: [{
1330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalHintTitle, decorators: [{
1331
1331
  type: Component,
1332
1332
  args: [{
1333
1333
  selector: 'bal-hint-title',
@@ -1342,8 +1342,8 @@ let BalIcon = class BalIcon {
1342
1342
  c.detach();
1343
1343
  this.el = r.nativeElement;
1344
1344
  }
1345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1346
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalIcon, selector: "bal-icon", inputs: { color: "color", colorHovered: "colorHovered", colorPressed: "colorPressed", disabled: "disabled", inline: "inline", invalid: "invalid", inverted: "inverted", name: "name", shadow: "shadow", size: "size", svg: "svg", tile: "tile", tileColor: "tileColor", turn: "turn" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1345
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1346
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalIcon, selector: "bal-icon", inputs: { color: "color", colorHovered: "colorHovered", colorPressed: "colorPressed", disabled: "disabled", inline: "inline", invalid: "invalid", inverted: "inverted", name: "name", shadow: "shadow", size: "size", svg: "svg", tile: "tile", tileColor: "tileColor", turn: "turn" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1347
1347
  };
1348
1348
  BalIcon = __decorate([
1349
1349
  ProxyCmp({
@@ -1353,7 +1353,7 @@ BalIcon = __decorate([
1353
1353
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1354
1354
  ], BalIcon);
1355
1355
  export { BalIcon };
1356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalIcon, decorators: [{
1356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalIcon, decorators: [{
1357
1357
  type: Component,
1358
1358
  args: [{
1359
1359
  selector: 'bal-icon',
@@ -1370,8 +1370,8 @@ let BalInput = class BalInput {
1370
1370
  this.el = r.nativeElement;
1371
1371
  proxyOutputs(this, this.el, ['balInput', 'balBlur', 'balKeyPress', 'balFocus', 'balChange']);
1372
1372
  }
1373
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1374
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalInput, selector: "bal-input", inputs: { accept: "accept", allowedKeyPress: "allowedKeyPress", autoInvalidOff: "autoInvalidOff", autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", clickable: "clickable", debounce: "debounce", disabled: "disabled", inputmode: "inputmode", invalid: "invalid", mask: "mask", max: "max", maxLength: "maxLength", min: "min", minLength: "minLength", multiple: "multiple", name: "name", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", spellcheck: "spellcheck", suffix: "suffix", textAlign: "textAlign", type: "type", value: "value" }, outputs: { balInput: "balInput", balBlur: "balBlur", balKeyPress: "balKeyPress", balFocus: "balFocus", balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1373
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1374
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalInput, selector: "bal-input", inputs: { accept: "accept", allowedKeyPress: "allowedKeyPress", autoInvalidOff: "autoInvalidOff", autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", clickable: "clickable", debounce: "debounce", disabled: "disabled", inputmode: "inputmode", invalid: "invalid", mask: "mask", max: "max", maxLength: "maxLength", min: "min", minLength: "minLength", multiple: "multiple", name: "name", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", spellcheck: "spellcheck", suffix: "suffix", textAlign: "textAlign", type: "type", value: "value" }, outputs: { balInput: "balInput", balBlur: "balBlur", balKeyPress: "balKeyPress", balFocus: "balFocus", balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1375
1375
  };
1376
1376
  BalInput = __decorate([
1377
1377
  ProxyCmp({
@@ -1382,7 +1382,7 @@ BalInput = __decorate([
1382
1382
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1383
1383
  ], BalInput);
1384
1384
  export { BalInput };
1385
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalInput, decorators: [{
1385
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalInput, decorators: [{
1386
1386
  type: Component,
1387
1387
  args: [{
1388
1388
  selector: 'bal-input',
@@ -1400,8 +1400,8 @@ let BalInputDate = class BalInputDate {
1400
1400
  this.el = r.nativeElement;
1401
1401
  proxyOutputs(this, this.el, ['balKeyPress', 'balChange', 'balInput', 'balBlur', 'balFocus']);
1402
1402
  }
1403
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalInputDate, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1404
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalInputDate, selector: "bal-input-date", inputs: { allowInvalidValue: "allowInvalidValue", autoInvalidOff: "autoInvalidOff", autocomplete: "autocomplete", clickable: "clickable", disabled: "disabled", invalid: "invalid", max: "max", min: "min", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", value: "value" }, outputs: { balKeyPress: "balKeyPress", balChange: "balChange", balInput: "balInput", balBlur: "balBlur", balFocus: "balFocus" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1403
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalInputDate, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1404
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalInputDate, selector: "bal-input-date", inputs: { allowInvalidValue: "allowInvalidValue", autoInvalidOff: "autoInvalidOff", autocomplete: "autocomplete", clickable: "clickable", disabled: "disabled", invalid: "invalid", max: "max", min: "min", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", value: "value" }, outputs: { balKeyPress: "balKeyPress", balChange: "balChange", balInput: "balInput", balBlur: "balBlur", balFocus: "balFocus" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1405
1405
  };
1406
1406
  BalInputDate = __decorate([
1407
1407
  ProxyCmp({
@@ -1412,7 +1412,7 @@ BalInputDate = __decorate([
1412
1412
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1413
1413
  ], BalInputDate);
1414
1414
  export { BalInputDate };
1415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalInputDate, decorators: [{
1415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalInputDate, decorators: [{
1416
1416
  type: Component,
1417
1417
  args: [{
1418
1418
  selector: 'bal-input-date',
@@ -1429,8 +1429,8 @@ let BalInputGroup = class BalInputGroup {
1429
1429
  c.detach();
1430
1430
  this.el = r.nativeElement;
1431
1431
  }
1432
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalInputGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1433
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalInputGroup, selector: "bal-input-group", inputs: { disabled: "disabled", invalid: "invalid", readonly: "readonly" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1432
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalInputGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1433
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalInputGroup, selector: "bal-input-group", inputs: { disabled: "disabled", invalid: "invalid", readonly: "readonly" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1434
1434
  };
1435
1435
  BalInputGroup = __decorate([
1436
1436
  ProxyCmp({
@@ -1440,7 +1440,7 @@ BalInputGroup = __decorate([
1440
1440
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1441
1441
  ], BalInputGroup);
1442
1442
  export { BalInputGroup };
1443
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalInputGroup, decorators: [{
1443
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalInputGroup, decorators: [{
1444
1444
  type: Component,
1445
1445
  args: [{
1446
1446
  selector: 'bal-input-group',
@@ -1457,8 +1457,8 @@ let BalInputSlider = class BalInputSlider {
1457
1457
  this.el = r.nativeElement;
1458
1458
  proxyOutputs(this, this.el, ['balInput', 'balBlur', 'balKeyPress', 'balFocus', 'balChange']);
1459
1459
  }
1460
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalInputSlider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1461
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalInputSlider, selector: "bal-input-slider", inputs: { autoInvalidOff: "autoInvalidOff", balTabindex: "balTabindex", debounce: "debounce", disabled: "disabled", hasTicks: "hasTicks", invalid: "invalid", max: "max", min: "min", name: "name", readonly: "readonly", required: "required", step: "step", value: "value" }, outputs: { balInput: "balInput", balBlur: "balBlur", balKeyPress: "balKeyPress", balFocus: "balFocus", balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1460
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalInputSlider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1461
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalInputSlider, selector: "bal-input-slider", inputs: { autoInvalidOff: "autoInvalidOff", balTabindex: "balTabindex", debounce: "debounce", disabled: "disabled", hasTicks: "hasTicks", invalid: "invalid", max: "max", min: "min", name: "name", readonly: "readonly", required: "required", step: "step", value: "value" }, outputs: { balInput: "balInput", balBlur: "balBlur", balKeyPress: "balKeyPress", balFocus: "balFocus", balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1462
1462
  };
1463
1463
  BalInputSlider = __decorate([
1464
1464
  ProxyCmp({
@@ -1469,7 +1469,7 @@ BalInputSlider = __decorate([
1469
1469
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1470
1470
  ], BalInputSlider);
1471
1471
  export { BalInputSlider };
1472
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalInputSlider, decorators: [{
1472
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalInputSlider, decorators: [{
1473
1473
  type: Component,
1474
1474
  args: [{
1475
1475
  selector: 'bal-input-slider',
@@ -1487,8 +1487,8 @@ let BalInputStepper = class BalInputStepper {
1487
1487
  this.el = r.nativeElement;
1488
1488
  proxyOutputs(this, this.el, ['balChange', 'balInput', 'balIncrease', 'balDecrease', 'balFocus', 'balBlur']);
1489
1489
  }
1490
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalInputStepper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1491
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalInputStepper, selector: "bal-input-stepper", inputs: { autoInvalidOff: "autoInvalidOff", debounce: "debounce", disabled: "disabled", invalid: "invalid", max: "max", min: "min", name: "name", readonly: "readonly", steps: "steps", value: "value" }, outputs: { balChange: "balChange", balInput: "balInput", balIncrease: "balIncrease", balDecrease: "balDecrease", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1490
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalInputStepper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1491
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalInputStepper, selector: "bal-input-stepper", inputs: { autoInvalidOff: "autoInvalidOff", debounce: "debounce", disabled: "disabled", invalid: "invalid", max: "max", min: "min", name: "name", readonly: "readonly", steps: "steps", value: "value" }, outputs: { balChange: "balChange", balInput: "balInput", balIncrease: "balIncrease", balDecrease: "balDecrease", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1492
1492
  };
1493
1493
  BalInputStepper = __decorate([
1494
1494
  ProxyCmp({
@@ -1499,7 +1499,7 @@ BalInputStepper = __decorate([
1499
1499
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1500
1500
  ], BalInputStepper);
1501
1501
  export { BalInputStepper };
1502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalInputStepper, decorators: [{
1502
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalInputStepper, decorators: [{
1503
1503
  type: Component,
1504
1504
  args: [{
1505
1505
  selector: 'bal-input-stepper',
@@ -1516,8 +1516,8 @@ let BalLabel = class BalLabel {
1516
1516
  c.detach();
1517
1517
  this.el = r.nativeElement;
1518
1518
  }
1519
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1520
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalLabel, selector: "bal-label", inputs: { disabled: "disabled", htmlFor: "htmlFor", htmlId: "htmlId", invalid: "invalid", multiline: "multiline", noWrap: "noWrap", readonly: "readonly", required: "required", size: "size", valid: "valid", weight: "weight" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1519
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1520
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalLabel, selector: "bal-label", inputs: { disabled: "disabled", htmlFor: "htmlFor", htmlId: "htmlId", invalid: "invalid", multiline: "multiline", noWrap: "noWrap", readonly: "readonly", required: "required", size: "size", valid: "valid", weight: "weight" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1521
1521
  };
1522
1522
  BalLabel = __decorate([
1523
1523
  ProxyCmp({
@@ -1527,7 +1527,7 @@ BalLabel = __decorate([
1527
1527
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1528
1528
  ], BalLabel);
1529
1529
  export { BalLabel };
1530
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalLabel, decorators: [{
1530
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalLabel, decorators: [{
1531
1531
  type: Component,
1532
1532
  args: [{
1533
1533
  selector: 'bal-label',
@@ -1543,8 +1543,8 @@ let BalList = class BalList {
1543
1543
  c.detach();
1544
1544
  this.el = r.nativeElement;
1545
1545
  }
1546
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1547
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalList, selector: "bal-list", inputs: { accordionOneLevel: "accordionOneLevel", background: "background", border: "border", disabled: "disabled", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1546
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1547
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalList, selector: "bal-list", inputs: { accordionOneLevel: "accordionOneLevel", background: "background", border: "border", disabled: "disabled", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1548
1548
  };
1549
1549
  BalList = __decorate([
1550
1550
  ProxyCmp({
@@ -1554,7 +1554,7 @@ BalList = __decorate([
1554
1554
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1555
1555
  ], BalList);
1556
1556
  export { BalList };
1557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalList, decorators: [{
1557
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalList, decorators: [{
1558
1558
  type: Component,
1559
1559
  args: [{
1560
1560
  selector: 'bal-list',
@@ -1571,8 +1571,8 @@ let BalListItem = class BalListItem {
1571
1571
  this.el = r.nativeElement;
1572
1572
  proxyOutputs(this, this.el, ['balNavigate', 'balGroupStateChanged', 'balWillAnimate', 'balDidAnimate']);
1573
1573
  }
1574
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1575
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalListItem, selector: "bal-list-item", inputs: { accordion: "accordion", clickable: "clickable", disabled: "disabled", download: "download", href: "href", rel: "rel", selected: "selected", subAccordionItem: "subAccordionItem", target: "target" }, outputs: { balNavigate: "balNavigate", balGroupStateChanged: "balGroupStateChanged", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1574
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1575
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalListItem, selector: "bal-list-item", inputs: { accordion: "accordion", clickable: "clickable", disabled: "disabled", download: "download", href: "href", rel: "rel", selected: "selected", subAccordionItem: "subAccordionItem", target: "target" }, outputs: { balNavigate: "balNavigate", balGroupStateChanged: "balGroupStateChanged", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1576
1576
  };
1577
1577
  BalListItem = __decorate([
1578
1578
  ProxyCmp({
@@ -1583,7 +1583,7 @@ BalListItem = __decorate([
1583
1583
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1584
1584
  ], BalListItem);
1585
1585
  export { BalListItem };
1586
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItem, decorators: [{
1586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItem, decorators: [{
1587
1587
  type: Component,
1588
1588
  args: [{
1589
1589
  selector: 'bal-list-item',
@@ -1600,8 +1600,8 @@ let BalListItemAccordionBody = class BalListItemAccordionBody {
1600
1600
  c.detach();
1601
1601
  this.el = r.nativeElement;
1602
1602
  }
1603
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemAccordionBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1604
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalListItemAccordionBody, selector: "bal-list-item-accordion-body", inputs: { accordionGroup: "accordionGroup", contentAlignment: "contentAlignment", contentSpace: "contentSpace" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1603
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemAccordionBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1604
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalListItemAccordionBody, selector: "bal-list-item-accordion-body", inputs: { accordionGroup: "accordionGroup", contentAlignment: "contentAlignment", contentSpace: "contentSpace" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1605
1605
  };
1606
1606
  BalListItemAccordionBody = __decorate([
1607
1607
  ProxyCmp({
@@ -1611,7 +1611,7 @@ BalListItemAccordionBody = __decorate([
1611
1611
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1612
1612
  ], BalListItemAccordionBody);
1613
1613
  export { BalListItemAccordionBody };
1614
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemAccordionBody, decorators: [{
1614
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemAccordionBody, decorators: [{
1615
1615
  type: Component,
1616
1616
  args: [{
1617
1617
  selector: 'bal-list-item-accordion-body',
@@ -1628,8 +1628,8 @@ let BalListItemAccordionHead = class BalListItemAccordionHead {
1628
1628
  this.el = r.nativeElement;
1629
1629
  proxyOutputs(this, this.el, ['balAccordionChange']);
1630
1630
  }
1631
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemAccordionHead, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1632
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalListItemAccordionHead, selector: "bal-list-item-accordion-head", inputs: { accordionOpen: "accordionOpen", icon: "icon" }, outputs: { balAccordionChange: "balAccordionChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1631
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemAccordionHead, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1632
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalListItemAccordionHead, selector: "bal-list-item-accordion-head", inputs: { accordionOpen: "accordionOpen", icon: "icon" }, outputs: { balAccordionChange: "balAccordionChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1633
1633
  };
1634
1634
  BalListItemAccordionHead = __decorate([
1635
1635
  ProxyCmp({
@@ -1639,7 +1639,7 @@ BalListItemAccordionHead = __decorate([
1639
1639
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1640
1640
  ], BalListItemAccordionHead);
1641
1641
  export { BalListItemAccordionHead };
1642
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemAccordionHead, decorators: [{
1642
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemAccordionHead, decorators: [{
1643
1643
  type: Component,
1644
1644
  args: [{
1645
1645
  selector: 'bal-list-item-accordion-head',
@@ -1656,8 +1656,8 @@ let BalListItemContent = class BalListItemContent {
1656
1656
  c.detach();
1657
1657
  this.el = r.nativeElement;
1658
1658
  }
1659
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1660
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalListItemContent, selector: "bal-list-item-content", inputs: { contentAlignment: "contentAlignment" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1659
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1660
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalListItemContent, selector: "bal-list-item-content", inputs: { contentAlignment: "contentAlignment" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1661
1661
  };
1662
1662
  BalListItemContent = __decorate([
1663
1663
  ProxyCmp({
@@ -1667,7 +1667,7 @@ BalListItemContent = __decorate([
1667
1667
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1668
1668
  ], BalListItemContent);
1669
1669
  export { BalListItemContent };
1670
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemContent, decorators: [{
1670
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemContent, decorators: [{
1671
1671
  type: Component,
1672
1672
  args: [{
1673
1673
  selector: 'bal-list-item-content',
@@ -1683,8 +1683,8 @@ let BalListItemIcon = class BalListItemIcon {
1683
1683
  c.detach();
1684
1684
  this.el = r.nativeElement;
1685
1685
  }
1686
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1687
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalListItemIcon, selector: "bal-list-item-icon", inputs: { right: "right" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1686
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1687
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalListItemIcon, selector: "bal-list-item-icon", inputs: { right: "right" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1688
1688
  };
1689
1689
  BalListItemIcon = __decorate([
1690
1690
  ProxyCmp({
@@ -1694,7 +1694,7 @@ BalListItemIcon = __decorate([
1694
1694
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1695
1695
  ], BalListItemIcon);
1696
1696
  export { BalListItemIcon };
1697
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemIcon, decorators: [{
1697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemIcon, decorators: [{
1698
1698
  type: Component,
1699
1699
  args: [{
1700
1700
  selector: 'bal-list-item-icon',
@@ -1710,8 +1710,8 @@ let BalListItemSubtitle = class BalListItemSubtitle {
1710
1710
  c.detach();
1711
1711
  this.el = r.nativeElement;
1712
1712
  }
1713
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemSubtitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1714
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalListItemSubtitle, selector: "bal-list-item-subtitle", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1713
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemSubtitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1714
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalListItemSubtitle, selector: "bal-list-item-subtitle", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1715
1715
  };
1716
1716
  BalListItemSubtitle = __decorate([
1717
1717
  ProxyCmp({
@@ -1720,7 +1720,7 @@ BalListItemSubtitle = __decorate([
1720
1720
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1721
1721
  ], BalListItemSubtitle);
1722
1722
  export { BalListItemSubtitle };
1723
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemSubtitle, decorators: [{
1723
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemSubtitle, decorators: [{
1724
1724
  type: Component,
1725
1725
  args: [{
1726
1726
  selector: 'bal-list-item-subtitle',
@@ -1735,8 +1735,8 @@ let BalListItemTitle = class BalListItemTitle {
1735
1735
  c.detach();
1736
1736
  this.el = r.nativeElement;
1737
1737
  }
1738
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1739
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalListItemTitle, selector: "bal-list-item-title", inputs: { level: "level", visualLevel: "visualLevel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1738
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1739
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalListItemTitle, selector: "bal-list-item-title", inputs: { level: "level", visualLevel: "visualLevel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1740
1740
  };
1741
1741
  BalListItemTitle = __decorate([
1742
1742
  ProxyCmp({
@@ -1746,7 +1746,7 @@ BalListItemTitle = __decorate([
1746
1746
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1747
1747
  ], BalListItemTitle);
1748
1748
  export { BalListItemTitle };
1749
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalListItemTitle, decorators: [{
1749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalListItemTitle, decorators: [{
1750
1750
  type: Component,
1751
1751
  args: [{
1752
1752
  selector: 'bal-list-item-title',
@@ -1762,8 +1762,8 @@ let BalLogo = class BalLogo {
1762
1762
  c.detach();
1763
1763
  this.el = r.nativeElement;
1764
1764
  }
1765
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalLogo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1766
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalLogo, selector: "bal-logo", inputs: { animated: "animated", color: "color", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1765
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalLogo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1766
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalLogo, selector: "bal-logo", inputs: { animated: "animated", color: "color", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1767
1767
  };
1768
1768
  BalLogo = __decorate([
1769
1769
  ProxyCmp({
@@ -1773,7 +1773,7 @@ BalLogo = __decorate([
1773
1773
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1774
1774
  ], BalLogo);
1775
1775
  export { BalLogo };
1776
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalLogo, decorators: [{
1776
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalLogo, decorators: [{
1777
1777
  type: Component,
1778
1778
  args: [{
1779
1779
  selector: 'bal-logo',
@@ -1790,8 +1790,8 @@ let BalModal = class BalModal {
1790
1790
  this.el = r.nativeElement;
1791
1791
  proxyOutputs(this, this.el, ['balModalDidPresent', 'balModalWillPresent', 'balModalWillDismiss', 'balModalDidDismiss']);
1792
1792
  }
1793
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1794
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalModal, selector: "bal-modal", inputs: { backdropDismiss: "backdropDismiss", component: "component", componentProps: "componentProps", cssClass: "cssClass", focusTrap: "focusTrap", hasBackdrop: "hasBackdrop", isClosable: "isClosable", modalWidth: "modalWidth", space: "space" }, outputs: { balModalDidPresent: "balModalDidPresent", balModalWillPresent: "balModalWillPresent", balModalWillDismiss: "balModalWillDismiss", balModalDidDismiss: "balModalDidDismiss" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1793
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1794
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalModal, selector: "bal-modal", inputs: { backdropDismiss: "backdropDismiss", component: "component", componentProps: "componentProps", cssClass: "cssClass", focusTrap: "focusTrap", hasBackdrop: "hasBackdrop", isClosable: "isClosable", modalWidth: "modalWidth", space: "space" }, outputs: { balModalDidPresent: "balModalDidPresent", balModalWillPresent: "balModalWillPresent", balModalWillDismiss: "balModalWillDismiss", balModalDidDismiss: "balModalDidDismiss" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1795
1795
  };
1796
1796
  BalModal = __decorate([
1797
1797
  ProxyCmp({
@@ -1802,7 +1802,7 @@ BalModal = __decorate([
1802
1802
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1803
1803
  ], BalModal);
1804
1804
  export { BalModal };
1805
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalModal, decorators: [{
1805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalModal, decorators: [{
1806
1806
  type: Component,
1807
1807
  args: [{
1808
1808
  selector: 'bal-modal',
@@ -1819,8 +1819,8 @@ let BalModalBody = class BalModalBody {
1819
1819
  c.detach();
1820
1820
  this.el = r.nativeElement;
1821
1821
  }
1822
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalModalBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1823
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalModalBody, selector: "bal-modal-body", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1822
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalModalBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1823
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalModalBody, selector: "bal-modal-body", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1824
1824
  };
1825
1825
  BalModalBody = __decorate([
1826
1826
  ProxyCmp({
@@ -1829,7 +1829,7 @@ BalModalBody = __decorate([
1829
1829
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1830
1830
  ], BalModalBody);
1831
1831
  export { BalModalBody };
1832
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalModalBody, decorators: [{
1832
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalModalBody, decorators: [{
1833
1833
  type: Component,
1834
1834
  args: [{
1835
1835
  selector: 'bal-modal-body',
@@ -1844,8 +1844,8 @@ let BalModalHeader = class BalModalHeader {
1844
1844
  c.detach();
1845
1845
  this.el = r.nativeElement;
1846
1846
  }
1847
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalModalHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1848
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalModalHeader, selector: "bal-modal-header", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1847
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalModalHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1848
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalModalHeader, selector: "bal-modal-header", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1849
1849
  };
1850
1850
  BalModalHeader = __decorate([
1851
1851
  ProxyCmp({
@@ -1854,7 +1854,7 @@ BalModalHeader = __decorate([
1854
1854
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1855
1855
  ], BalModalHeader);
1856
1856
  export { BalModalHeader };
1857
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalModalHeader, decorators: [{
1857
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalModalHeader, decorators: [{
1858
1858
  type: Component,
1859
1859
  args: [{
1860
1860
  selector: 'bal-modal-header',
@@ -1870,8 +1870,8 @@ let BalNav = class BalNav {
1870
1870
  this.el = r.nativeElement;
1871
1871
  proxyOutputs(this, this.el, ['balNavItemClick']);
1872
1872
  }
1873
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNav, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1874
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNav, selector: "bal-nav", inputs: { buttons: "buttons", logo: "logo", options: "options" }, outputs: { balNavItemClick: "balNavItemClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1873
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNav, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1874
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNav, selector: "bal-nav", inputs: { buttons: "buttons", logo: "logo", options: "options" }, outputs: { balNavItemClick: "balNavItemClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1875
1875
  };
1876
1876
  BalNav = __decorate([
1877
1877
  ProxyCmp({
@@ -1881,7 +1881,7 @@ BalNav = __decorate([
1881
1881
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1882
1882
  ], BalNav);
1883
1883
  export { BalNav };
1884
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNav, decorators: [{
1884
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNav, decorators: [{
1885
1885
  type: Component,
1886
1886
  args: [{
1887
1887
  selector: 'bal-nav',
@@ -1898,8 +1898,8 @@ let BalNavLink = class BalNavLink {
1898
1898
  c.detach();
1899
1899
  this.el = r.nativeElement;
1900
1900
  }
1901
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavLink, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1902
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavLink, selector: "bal-nav-link", inputs: { clickable: "clickable", href: "href", rel: "rel", selected: "selected", target: "target", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1901
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavLink, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1902
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavLink, selector: "bal-nav-link", inputs: { clickable: "clickable", href: "href", rel: "rel", selected: "selected", target: "target", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1903
1903
  };
1904
1904
  BalNavLink = __decorate([
1905
1905
  ProxyCmp({
@@ -1909,7 +1909,7 @@ BalNavLink = __decorate([
1909
1909
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1910
1910
  ], BalNavLink);
1911
1911
  export { BalNavLink };
1912
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavLink, decorators: [{
1912
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavLink, decorators: [{
1913
1913
  type: Component,
1914
1914
  args: [{
1915
1915
  selector: 'bal-nav-link',
@@ -1925,8 +1925,8 @@ let BalNavLinkGrid = class BalNavLinkGrid {
1925
1925
  c.detach();
1926
1926
  this.el = r.nativeElement;
1927
1927
  }
1928
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavLinkGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1929
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavLinkGrid, selector: "bal-nav-link-grid", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1928
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavLinkGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1929
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavLinkGrid, selector: "bal-nav-link-grid", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1930
1930
  };
1931
1931
  BalNavLinkGrid = __decorate([
1932
1932
  ProxyCmp({
@@ -1935,7 +1935,7 @@ BalNavLinkGrid = __decorate([
1935
1935
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1936
1936
  ], BalNavLinkGrid);
1937
1937
  export { BalNavLinkGrid };
1938
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavLinkGrid, decorators: [{
1938
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavLinkGrid, decorators: [{
1939
1939
  type: Component,
1940
1940
  args: [{
1941
1941
  selector: 'bal-nav-link-grid',
@@ -1950,8 +1950,8 @@ let BalNavLinkGridCol = class BalNavLinkGridCol {
1950
1950
  c.detach();
1951
1951
  this.el = r.nativeElement;
1952
1952
  }
1953
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavLinkGridCol, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1954
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavLinkGridCol, selector: "bal-nav-link-grid-col", inputs: { staticCol: "staticCol" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1953
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavLinkGridCol, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1954
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavLinkGridCol, selector: "bal-nav-link-grid-col", inputs: { staticCol: "staticCol" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1955
1955
  };
1956
1956
  BalNavLinkGridCol = __decorate([
1957
1957
  ProxyCmp({
@@ -1961,7 +1961,7 @@ BalNavLinkGridCol = __decorate([
1961
1961
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1962
1962
  ], BalNavLinkGridCol);
1963
1963
  export { BalNavLinkGridCol };
1964
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavLinkGridCol, decorators: [{
1964
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavLinkGridCol, decorators: [{
1965
1965
  type: Component,
1966
1966
  args: [{
1967
1967
  selector: 'bal-nav-link-grid-col',
@@ -1977,8 +1977,8 @@ let BalNavLinkGroup = class BalNavLinkGroup {
1977
1977
  c.detach();
1978
1978
  this.el = r.nativeElement;
1979
1979
  }
1980
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavLinkGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1981
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavLinkGroup, selector: "bal-nav-link-group", inputs: { color: "color" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1980
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavLinkGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1981
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavLinkGroup, selector: "bal-nav-link-group", inputs: { color: "color" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1982
1982
  };
1983
1983
  BalNavLinkGroup = __decorate([
1984
1984
  ProxyCmp({
@@ -1988,7 +1988,7 @@ BalNavLinkGroup = __decorate([
1988
1988
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
1989
1989
  ], BalNavLinkGroup);
1990
1990
  export { BalNavLinkGroup };
1991
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavLinkGroup, decorators: [{
1991
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavLinkGroup, decorators: [{
1992
1992
  type: Component,
1993
1993
  args: [{
1994
1994
  selector: 'bal-nav-link-group',
@@ -2004,8 +2004,8 @@ let BalNavMenuBar = class BalNavMenuBar {
2004
2004
  c.detach();
2005
2005
  this.el = r.nativeElement;
2006
2006
  }
2007
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavMenuBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2008
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavMenuBar, selector: "bal-nav-menu-bar", inputs: { invisible: "invisible", position: "position" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2007
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavMenuBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2008
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavMenuBar, selector: "bal-nav-menu-bar", inputs: { invisible: "invisible", position: "position" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2009
2009
  };
2010
2010
  BalNavMenuBar = __decorate([
2011
2011
  ProxyCmp({
@@ -2015,7 +2015,7 @@ BalNavMenuBar = __decorate([
2015
2015
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2016
2016
  ], BalNavMenuBar);
2017
2017
  export { BalNavMenuBar };
2018
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavMenuBar, decorators: [{
2018
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavMenuBar, decorators: [{
2019
2019
  type: Component,
2020
2020
  args: [{
2021
2021
  selector: 'bal-nav-menu-bar',
@@ -2032,8 +2032,8 @@ let BalNavMenuFlyout = class BalNavMenuFlyout {
2032
2032
  this.el = r.nativeElement;
2033
2033
  proxyOutputs(this, this.el, ['balFocusOut']);
2034
2034
  }
2035
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavMenuFlyout, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2036
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavMenuFlyout, selector: "bal-nav-menu-flyout", inputs: { navId: "navId" }, outputs: { balFocusOut: "balFocusOut" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2035
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavMenuFlyout, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2036
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavMenuFlyout, selector: "bal-nav-menu-flyout", inputs: { navId: "navId" }, outputs: { balFocusOut: "balFocusOut" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2037
2037
  };
2038
2038
  BalNavMenuFlyout = __decorate([
2039
2039
  ProxyCmp({
@@ -2043,7 +2043,7 @@ BalNavMenuFlyout = __decorate([
2043
2043
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2044
2044
  ], BalNavMenuFlyout);
2045
2045
  export { BalNavMenuFlyout };
2046
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavMenuFlyout, decorators: [{
2046
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavMenuFlyout, decorators: [{
2047
2047
  type: Component,
2048
2048
  args: [{
2049
2049
  selector: 'bal-nav-menu-flyout',
@@ -2060,8 +2060,8 @@ let BalNavMetaBar = class BalNavMetaBar {
2060
2060
  c.detach();
2061
2061
  this.el = r.nativeElement;
2062
2062
  }
2063
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavMetaBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2064
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavMetaBar, selector: "bal-nav-meta-bar", inputs: { invisible: "invisible", position: "position", size: "size", stayOnTopOfBackdrop: "stayOnTopOfBackdrop", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2063
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavMetaBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2064
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavMetaBar, selector: "bal-nav-meta-bar", inputs: { invisible: "invisible", position: "position", size: "size", stayOnTopOfBackdrop: "stayOnTopOfBackdrop", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2065
2065
  };
2066
2066
  BalNavMetaBar = __decorate([
2067
2067
  ProxyCmp({
@@ -2071,7 +2071,7 @@ BalNavMetaBar = __decorate([
2071
2071
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2072
2072
  ], BalNavMetaBar);
2073
2073
  export { BalNavMetaBar };
2074
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavMetaBar, decorators: [{
2074
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavMetaBar, decorators: [{
2075
2075
  type: Component,
2076
2076
  args: [{
2077
2077
  selector: 'bal-nav-meta-bar',
@@ -2087,18 +2087,19 @@ let BalNavbar = class BalNavbar {
2087
2087
  c.detach();
2088
2088
  this.el = r.nativeElement;
2089
2089
  }
2090
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2091
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavbar, selector: "bal-navbar", inputs: { container: "container", interface: "interface", light: "light" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2090
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2091
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavbar, selector: "bal-navbar", inputs: { container: "container", interface: "interface", light: "light" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2092
2092
  };
2093
2093
  BalNavbar = __decorate([
2094
2094
  ProxyCmp({
2095
2095
  inputs: ['container', 'interface', 'light'],
2096
+ methods: ['toggleMenu'],
2096
2097
  defineCustomElementFn: defineBalNavbar
2097
2098
  }),
2098
2099
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2099
2100
  ], BalNavbar);
2100
2101
  export { BalNavbar };
2101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavbar, decorators: [{
2102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavbar, decorators: [{
2102
2103
  type: Component,
2103
2104
  args: [{
2104
2105
  selector: 'bal-navbar',
@@ -2115,8 +2116,8 @@ let BalNavbarBrand = class BalNavbarBrand {
2115
2116
  this.el = r.nativeElement;
2116
2117
  proxyOutputs(this, this.el, ['balNavigate', 'balWillAnimate', 'balDidAnimate']);
2117
2118
  }
2118
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavbarBrand, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2119
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavbarBrand, selector: "bal-navbar-brand", inputs: { animated: "animated", href: "href", logo: "logo", logoClickable: "logoClickable", logoLabel: "logoLabel", logoSize: "logoSize", rel: "rel", simple: "simple", target: "target" }, outputs: { balNavigate: "balNavigate", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavbarBrand, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavbarBrand, selector: "bal-navbar-brand", inputs: { animated: "animated", href: "href", logo: "logo", logoClickable: "logoClickable", logoLabel: "logoLabel", logoSize: "logoSize", rel: "rel", simple: "simple", target: "target" }, outputs: { balNavigate: "balNavigate", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2120
2121
  };
2121
2122
  BalNavbarBrand = __decorate([
2122
2123
  ProxyCmp({
@@ -2126,7 +2127,7 @@ BalNavbarBrand = __decorate([
2126
2127
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2127
2128
  ], BalNavbarBrand);
2128
2129
  export { BalNavbarBrand };
2129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavbarBrand, decorators: [{
2130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavbarBrand, decorators: [{
2130
2131
  type: Component,
2131
2132
  args: [{
2132
2133
  selector: 'bal-navbar-brand',
@@ -2143,8 +2144,8 @@ let BalNavbarMenu = class BalNavbarMenu {
2143
2144
  c.detach();
2144
2145
  this.el = r.nativeElement;
2145
2146
  }
2146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavbarMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavbarMenu, selector: "bal-navbar-menu", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavbarMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavbarMenu, selector: "bal-navbar-menu", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2148
2149
  };
2149
2150
  BalNavbarMenu = __decorate([
2150
2151
  ProxyCmp({
@@ -2153,7 +2154,7 @@ BalNavbarMenu = __decorate([
2153
2154
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2154
2155
  ], BalNavbarMenu);
2155
2156
  export { BalNavbarMenu };
2156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavbarMenu, decorators: [{
2157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavbarMenu, decorators: [{
2157
2158
  type: Component,
2158
2159
  args: [{
2159
2160
  selector: 'bal-navbar-menu',
@@ -2168,8 +2169,8 @@ let BalNavbarMenuEnd = class BalNavbarMenuEnd {
2168
2169
  c.detach();
2169
2170
  this.el = r.nativeElement;
2170
2171
  }
2171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavbarMenuEnd, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2172
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavbarMenuEnd, selector: "bal-navbar-menu-end", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavbarMenuEnd, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2173
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavbarMenuEnd, selector: "bal-navbar-menu-end", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2173
2174
  };
2174
2175
  BalNavbarMenuEnd = __decorate([
2175
2176
  ProxyCmp({
@@ -2178,7 +2179,7 @@ BalNavbarMenuEnd = __decorate([
2178
2179
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2179
2180
  ], BalNavbarMenuEnd);
2180
2181
  export { BalNavbarMenuEnd };
2181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavbarMenuEnd, decorators: [{
2182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavbarMenuEnd, decorators: [{
2182
2183
  type: Component,
2183
2184
  args: [{
2184
2185
  selector: 'bal-navbar-menu-end',
@@ -2193,8 +2194,8 @@ let BalNavbarMenuStart = class BalNavbarMenuStart {
2193
2194
  c.detach();
2194
2195
  this.el = r.nativeElement;
2195
2196
  }
2196
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavbarMenuStart, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2197
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNavbarMenuStart, selector: "bal-navbar-menu-start", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2197
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavbarMenuStart, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNavbarMenuStart, selector: "bal-navbar-menu-start", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2198
2199
  };
2199
2200
  BalNavbarMenuStart = __decorate([
2200
2201
  ProxyCmp({
@@ -2203,7 +2204,7 @@ BalNavbarMenuStart = __decorate([
2203
2204
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2204
2205
  ], BalNavbarMenuStart);
2205
2206
  export { BalNavbarMenuStart };
2206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNavbarMenuStart, decorators: [{
2207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNavbarMenuStart, decorators: [{
2207
2208
  type: Component,
2208
2209
  args: [{
2209
2210
  selector: 'bal-navbar-menu-start',
@@ -2218,8 +2219,8 @@ let BalNotices = class BalNotices {
2218
2219
  c.detach();
2219
2220
  this.el = r.nativeElement;
2220
2221
  }
2221
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNotices, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2222
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNotices, selector: "bal-notices", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2222
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNotices, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNotices, selector: "bal-notices", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2223
2224
  };
2224
2225
  BalNotices = __decorate([
2225
2226
  ProxyCmp({
@@ -2228,7 +2229,7 @@ BalNotices = __decorate([
2228
2229
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2229
2230
  ], BalNotices);
2230
2231
  export { BalNotices };
2231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNotices, decorators: [{
2232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNotices, decorators: [{
2232
2233
  type: Component,
2233
2234
  args: [{
2234
2235
  selector: 'bal-notices',
@@ -2243,8 +2244,8 @@ let BalNotification = class BalNotification {
2243
2244
  c.detach();
2244
2245
  this.el = r.nativeElement;
2245
2246
  }
2246
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNotification, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2247
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNotification, selector: "bal-notification", inputs: { color: "color", light: "light", noIcon: "noIcon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2247
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNotification, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2248
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNotification, selector: "bal-notification", inputs: { color: "color", light: "light", noIcon: "noIcon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2248
2249
  };
2249
2250
  BalNotification = __decorate([
2250
2251
  ProxyCmp({
@@ -2254,7 +2255,7 @@ BalNotification = __decorate([
2254
2255
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2255
2256
  ], BalNotification);
2256
2257
  export { BalNotification };
2257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNotification, decorators: [{
2258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNotification, decorators: [{
2258
2259
  type: Component,
2259
2260
  args: [{
2260
2261
  selector: 'bal-notification',
@@ -2271,8 +2272,8 @@ let BalNumberInput = class BalNumberInput {
2271
2272
  this.el = r.nativeElement;
2272
2273
  proxyOutputs(this, this.el, ['balInput', 'balChange', 'balBlur', 'balFocus', 'balKeyPress']);
2273
2274
  }
2274
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNumberInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2275
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalNumberInput, selector: "bal-number-input", inputs: { autoInvalidOff: "autoInvalidOff", debounce: "debounce", decimal: "decimal", disabled: "disabled", exactNumber: "exactNumber", invalid: "invalid", max: "max", min: "min", name: "name", onlyPositive: "onlyPositive", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", suffix: "suffix", value: "value" }, outputs: { balInput: "balInput", balChange: "balChange", balBlur: "balBlur", balFocus: "balFocus", balKeyPress: "balKeyPress" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2275
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNumberInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2276
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalNumberInput, selector: "bal-number-input", inputs: { autoInvalidOff: "autoInvalidOff", debounce: "debounce", decimal: "decimal", disabled: "disabled", exactNumber: "exactNumber", invalid: "invalid", max: "max", min: "min", name: "name", onlyPositive: "onlyPositive", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", suffix: "suffix", value: "value" }, outputs: { balInput: "balInput", balChange: "balChange", balBlur: "balBlur", balFocus: "balFocus", balKeyPress: "balKeyPress" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2276
2277
  };
2277
2278
  BalNumberInput = __decorate([
2278
2279
  ProxyCmp({
@@ -2283,7 +2284,7 @@ BalNumberInput = __decorate([
2283
2284
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2284
2285
  ], BalNumberInput);
2285
2286
  export { BalNumberInput };
2286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalNumberInput, decorators: [{
2287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalNumberInput, decorators: [{
2287
2288
  type: Component,
2288
2289
  args: [{
2289
2290
  selector: 'bal-number-input',
@@ -2301,8 +2302,8 @@ let BalOption = class BalOption {
2301
2302
  this.el = r.nativeElement;
2302
2303
  proxyOutputs(this, this.el, ['balOptionChange']);
2303
2304
  }
2304
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2305
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalOption, selector: "bal-option", inputs: { disabled: "disabled", focused: "focused", hidden: "hidden", invalid: "invalid", label: "label", multiline: "multiline", selected: "selected", value: "value" }, outputs: { balOptionChange: "balOptionChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2306
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalOption, selector: "bal-option", inputs: { disabled: "disabled", focused: "focused", hidden: "hidden", invalid: "invalid", label: "label", multiline: "multiline", selected: "selected", value: "value" }, outputs: { balOptionChange: "balOptionChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2306
2307
  };
2307
2308
  BalOption = __decorate([
2308
2309
  ProxyCmp({
@@ -2313,7 +2314,7 @@ BalOption = __decorate([
2313
2314
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2314
2315
  ], BalOption);
2315
2316
  export { BalOption };
2316
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalOption, decorators: [{
2317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalOption, decorators: [{
2317
2318
  type: Component,
2318
2319
  args: [{
2319
2320
  selector: 'bal-option',
@@ -2330,8 +2331,8 @@ let BalOptionList = class BalOptionList {
2330
2331
  c.detach();
2331
2332
  this.el = r.nativeElement;
2332
2333
  }
2333
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalOptionList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2334
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalOptionList, selector: "bal-option-list", inputs: { contentHeight: "contentHeight", disabled: "disabled", filter: "filter", focusIndex: "focusIndex", labelledby: "labelledby", multiple: "multiple", required: "required" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2334
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalOptionList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2335
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalOptionList, selector: "bal-option-list", inputs: { contentHeight: "contentHeight", disabled: "disabled", filter: "filter", focusIndex: "focusIndex", labelledby: "labelledby", multiple: "multiple", required: "required" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2335
2336
  };
2336
2337
  BalOptionList = __decorate([
2337
2338
  ProxyCmp({
@@ -2342,7 +2343,7 @@ BalOptionList = __decorate([
2342
2343
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2343
2344
  ], BalOptionList);
2344
2345
  export { BalOptionList };
2345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalOptionList, decorators: [{
2346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalOptionList, decorators: [{
2346
2347
  type: Component,
2347
2348
  args: [{
2348
2349
  selector: 'bal-option-list',
@@ -2359,8 +2360,8 @@ let BalPagination = class BalPagination {
2359
2360
  this.el = r.nativeElement;
2360
2361
  proxyOutputs(this, this.el, ['balChange']);
2361
2362
  }
2362
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2363
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalPagination, selector: "bal-pagination", inputs: { align: "align", disabled: "disabled", interface: "interface", pageRange: "pageRange", size: "size", sticky: "sticky", top: "top", totalPages: "totalPages", value: "value" }, outputs: { balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2363
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2364
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalPagination, selector: "bal-pagination", inputs: { align: "align", disabled: "disabled", interface: "interface", pageRange: "pageRange", size: "size", sticky: "sticky", top: "top", totalPages: "totalPages", value: "value" }, outputs: { balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2364
2365
  };
2365
2366
  BalPagination = __decorate([
2366
2367
  ProxyCmp({
@@ -2371,7 +2372,7 @@ BalPagination = __decorate([
2371
2372
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2372
2373
  ], BalPagination);
2373
2374
  export { BalPagination };
2374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalPagination, decorators: [{
2375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalPagination, decorators: [{
2375
2376
  type: Component,
2376
2377
  args: [{
2377
2378
  selector: 'bal-pagination',
@@ -2389,8 +2390,8 @@ let BalPopover = class BalPopover {
2389
2390
  this.el = r.nativeElement;
2390
2391
  proxyOutputs(this, this.el, ['balChange', 'balWillAnimate', 'balDidAnimate']);
2391
2392
  }
2392
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalPopover, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2393
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalPopover, selector: "bal-popover", inputs: { active: "active", arrow: "arrow", autoTrigger: "autoTrigger", backdrop: "backdrop", hint: "hint", hover: "hover", mobileTop: "mobileTop", offsetX: "offsetX", offsetY: "offsetY", padding: "padding", position: "position", tooltip: "tooltip" }, outputs: { balChange: "balChange", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2393
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalPopover, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2394
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalPopover, selector: "bal-popover", inputs: { active: "active", arrow: "arrow", autoTrigger: "autoTrigger", backdrop: "backdrop", hint: "hint", hover: "hover", mobileTop: "mobileTop", offsetX: "offsetX", offsetY: "offsetY", padding: "padding", position: "position", tooltip: "tooltip" }, outputs: { balChange: "balChange", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2394
2395
  };
2395
2396
  BalPopover = __decorate([
2396
2397
  ProxyCmp({
@@ -2401,7 +2402,7 @@ BalPopover = __decorate([
2401
2402
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2402
2403
  ], BalPopover);
2403
2404
  export { BalPopover };
2404
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalPopover, decorators: [{
2405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalPopover, decorators: [{
2405
2406
  type: Component,
2406
2407
  args: [{
2407
2408
  selector: 'bal-popover',
@@ -2418,8 +2419,8 @@ let BalPopoverContent = class BalPopoverContent {
2418
2419
  c.detach();
2419
2420
  this.el = r.nativeElement;
2420
2421
  }
2421
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalPopoverContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2422
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalPopoverContent, selector: "bal-popover-content", inputs: { color: "color", contentMinWidth: "contentMinWidth", contentWidth: "contentWidth", expanded: "expanded", mobileTop: "mobileTop", noShadow: "noShadow", radius: "radius", scrollable: "scrollable", spaceless: "spaceless" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2422
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalPopoverContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2423
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalPopoverContent, selector: "bal-popover-content", inputs: { color: "color", contentMinWidth: "contentMinWidth", contentWidth: "contentWidth", expanded: "expanded", mobileTop: "mobileTop", noShadow: "noShadow", radius: "radius", scrollable: "scrollable", spaceless: "spaceless" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2423
2424
  };
2424
2425
  BalPopoverContent = __decorate([
2425
2426
  ProxyCmp({
@@ -2429,7 +2430,7 @@ BalPopoverContent = __decorate([
2429
2430
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2430
2431
  ], BalPopoverContent);
2431
2432
  export { BalPopoverContent };
2432
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalPopoverContent, decorators: [{
2433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalPopoverContent, decorators: [{
2433
2434
  type: Component,
2434
2435
  args: [{
2435
2436
  selector: 'bal-popover-content',
@@ -2446,8 +2447,8 @@ let BalPopup = class BalPopup {
2446
2447
  this.el = r.nativeElement;
2447
2448
  proxyOutputs(this, this.el, ['balChange', 'balWillAnimate', 'balDidAnimate']);
2448
2449
  }
2449
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalPopup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2450
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalPopup, selector: "bal-popup", inputs: { active: "active", arrow: "arrow", backdrop: "backdrop", backdropDismiss: "backdropDismiss", closable: "closable", contentWidth: "contentWidth", label: "label", offset: "offset", placement: "placement", reference: "reference", variant: "variant" }, outputs: { balChange: "balChange", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2450
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalPopup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2451
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalPopup, selector: "bal-popup", inputs: { active: "active", arrow: "arrow", backdrop: "backdrop", backdropDismiss: "backdropDismiss", closable: "closable", contentWidth: "contentWidth", label: "label", offset: "offset", placement: "placement", reference: "reference", variant: "variant" }, outputs: { balChange: "balChange", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2451
2452
  };
2452
2453
  BalPopup = __decorate([
2453
2454
  ProxyCmp({
@@ -2458,7 +2459,7 @@ BalPopup = __decorate([
2458
2459
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2459
2460
  ], BalPopup);
2460
2461
  export { BalPopup };
2461
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalPopup, decorators: [{
2462
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalPopup, decorators: [{
2462
2463
  type: Component,
2463
2464
  args: [{
2464
2465
  selector: 'bal-popup',
@@ -2475,8 +2476,8 @@ let BalProgressBar = class BalProgressBar {
2475
2476
  c.detach();
2476
2477
  this.el = r.nativeElement;
2477
2478
  }
2478
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalProgressBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2479
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalProgressBar, selector: "bal-progress-bar", inputs: { background: "background", color: "color", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2479
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalProgressBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2480
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalProgressBar, selector: "bal-progress-bar", inputs: { background: "background", color: "color", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2480
2481
  };
2481
2482
  BalProgressBar = __decorate([
2482
2483
  ProxyCmp({
@@ -2487,7 +2488,7 @@ BalProgressBar = __decorate([
2487
2488
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2488
2489
  ], BalProgressBar);
2489
2490
  export { BalProgressBar };
2490
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalProgressBar, decorators: [{
2491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalProgressBar, decorators: [{
2491
2492
  type: Component,
2492
2493
  args: [{
2493
2494
  selector: 'bal-progress-bar',
@@ -2504,8 +2505,8 @@ let BalRadio = class BalRadio {
2504
2505
  this.el = r.nativeElement;
2505
2506
  proxyOutputs(this, this.el, ['balFocus', 'balBlur', 'balChange']);
2506
2507
  }
2507
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2508
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalRadio, selector: "bal-radio", inputs: { color: "color", disabled: "disabled", flat: "flat", interface: "interface", invalid: "invalid", label: "label", labelHidden: "labelHidden", name: "name", nonSubmit: "nonSubmit", readonly: "readonly", required: "required", value: "value" }, outputs: { balFocus: "balFocus", balBlur: "balBlur", balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2508
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2509
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalRadio, selector: "bal-radio", inputs: { color: "color", disabled: "disabled", flat: "flat", interface: "interface", invalid: "invalid", label: "label", labelHidden: "labelHidden", name: "name", nonSubmit: "nonSubmit", readonly: "readonly", required: "required", value: "value" }, outputs: { balFocus: "balFocus", balBlur: "balBlur", balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2509
2510
  };
2510
2511
  BalRadio = __decorate([
2511
2512
  ProxyCmp({
@@ -2516,7 +2517,7 @@ BalRadio = __decorate([
2516
2517
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2517
2518
  ], BalRadio);
2518
2519
  export { BalRadio };
2519
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalRadio, decorators: [{
2520
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalRadio, decorators: [{
2520
2521
  type: Component,
2521
2522
  args: [{
2522
2523
  selector: 'bal-radio',
@@ -2534,8 +2535,8 @@ let BalRadioGroup = class BalRadioGroup {
2534
2535
  this.el = r.nativeElement;
2535
2536
  proxyOutputs(this, this.el, ['balChange', 'balFocus', 'balBlur']);
2536
2537
  }
2537
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalRadioGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2538
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalRadioGroup, selector: "bal-radio-group", inputs: { allowEmptySelection: "allowEmptySelection", autoInvalidOff: "autoInvalidOff", columns: "columns", columnsMobile: "columnsMobile", columnsTablet: "columnsTablet", disabled: "disabled", expanded: "expanded", interface: "interface", invalid: "invalid", name: "name", options: "options", readonly: "readonly", value: "value", vertical: "vertical", verticalOnMobile: "verticalOnMobile" }, outputs: { balChange: "balChange", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2538
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalRadioGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2539
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalRadioGroup, selector: "bal-radio-group", inputs: { allowEmptySelection: "allowEmptySelection", autoInvalidOff: "autoInvalidOff", columns: "columns", columnsMobile: "columnsMobile", columnsTablet: "columnsTablet", disabled: "disabled", expanded: "expanded", interface: "interface", invalid: "invalid", name: "name", options: "options", readonly: "readonly", value: "value", vertical: "vertical", verticalOnMobile: "verticalOnMobile" }, outputs: { balChange: "balChange", balFocus: "balFocus", balBlur: "balBlur" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2539
2540
  };
2540
2541
  BalRadioGroup = __decorate([
2541
2542
  ProxyCmp({
@@ -2546,7 +2547,7 @@ BalRadioGroup = __decorate([
2546
2547
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2547
2548
  ], BalRadioGroup);
2548
2549
  export { BalRadioGroup };
2549
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalRadioGroup, decorators: [{
2550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalRadioGroup, decorators: [{
2550
2551
  type: Component,
2551
2552
  args: [{
2552
2553
  selector: 'bal-radio-group',
@@ -2563,8 +2564,8 @@ let BalRadioIcon = class BalRadioIcon {
2563
2564
  c.detach();
2564
2565
  this.el = r.nativeElement;
2565
2566
  }
2566
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalRadioIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2567
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalRadioIcon, selector: "bal-radio-icon", inputs: { checked: "checked", disabled: "disabled", invalid: "invalid", inverted: "inverted" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2567
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalRadioIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2568
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalRadioIcon, selector: "bal-radio-icon", inputs: { checked: "checked", disabled: "disabled", invalid: "invalid", inverted: "inverted" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2568
2569
  };
2569
2570
  BalRadioIcon = __decorate([
2570
2571
  ProxyCmp({
@@ -2574,7 +2575,7 @@ BalRadioIcon = __decorate([
2574
2575
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2575
2576
  ], BalRadioIcon);
2576
2577
  export { BalRadioIcon };
2577
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalRadioIcon, decorators: [{
2578
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalRadioIcon, decorators: [{
2578
2579
  type: Component,
2579
2580
  args: [{
2580
2581
  selector: 'bal-radio-icon',
@@ -2591,8 +2592,8 @@ let BalSegment = class BalSegment {
2591
2592
  this.el = r.nativeElement;
2592
2593
  proxyOutputs(this, this.el, ['balFocus', 'balBlur', 'balChange']);
2593
2594
  }
2594
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSegment, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2595
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalSegment, selector: "bal-segment", inputs: { autoInvalidOff: "autoInvalidOff", disabled: "disabled", expanded: "expanded", invalid: "invalid", scrollable: "scrollable", value: "value", vertical: "vertical" }, outputs: { balFocus: "balFocus", balBlur: "balBlur", balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2595
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSegment, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2596
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalSegment, selector: "bal-segment", inputs: { autoInvalidOff: "autoInvalidOff", disabled: "disabled", expanded: "expanded", invalid: "invalid", scrollable: "scrollable", value: "value", vertical: "vertical" }, outputs: { balFocus: "balFocus", balBlur: "balBlur", balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2596
2597
  };
2597
2598
  BalSegment = __decorate([
2598
2599
  ProxyCmp({
@@ -2602,7 +2603,7 @@ BalSegment = __decorate([
2602
2603
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2603
2604
  ], BalSegment);
2604
2605
  export { BalSegment };
2605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSegment, decorators: [{
2606
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSegment, decorators: [{
2606
2607
  type: Component,
2607
2608
  args: [{
2608
2609
  selector: 'bal-segment',
@@ -2619,8 +2620,8 @@ let BalSegmentItem = class BalSegmentItem {
2619
2620
  c.detach();
2620
2621
  this.el = r.nativeElement;
2621
2622
  }
2622
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSegmentItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2623
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalSegmentItem, selector: "bal-segment-item", inputs: { disabled: "disabled", invalid: "invalid", label: "label", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2623
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSegmentItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2624
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalSegmentItem, selector: "bal-segment-item", inputs: { disabled: "disabled", invalid: "invalid", label: "label", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2624
2625
  };
2625
2626
  BalSegmentItem = __decorate([
2626
2627
  ProxyCmp({
@@ -2630,7 +2631,7 @@ BalSegmentItem = __decorate([
2630
2631
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2631
2632
  ], BalSegmentItem);
2632
2633
  export { BalSegmentItem };
2633
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSegmentItem, decorators: [{
2634
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSegmentItem, decorators: [{
2634
2635
  type: Component,
2635
2636
  args: [{
2636
2637
  selector: 'bal-segment-item',
@@ -2647,8 +2648,8 @@ let BalSelect = class BalSelect {
2647
2648
  this.el = r.nativeElement;
2648
2649
  proxyOutputs(this, this.el, ['balChange', 'balInputClick', 'balInput', 'balBlur', 'balFocus', 'balCancel', 'balKeyPress']);
2649
2650
  }
2650
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2651
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalSelect, selector: "bal-select", inputs: { autoInvalidOff: "autoInvalidOff", autocomplete: "autocomplete", balTabindex: "balTabindex", disabled: "disabled", filter: "filter", freeSolo: "freeSolo", invalid: "invalid", loading: "loading", maxLength: "maxLength", multiple: "multiple", name: "name", noDataLabel: "noDataLabel", placeholder: "placeholder", readonly: "readonly", remote: "remote", required: "required", scrollable: "scrollable", selectionOptional: "selectionOptional", typeahead: "typeahead", value: "value" }, outputs: { balChange: "balChange", balInputClick: "balInputClick", balInput: "balInput", balBlur: "balBlur", balFocus: "balFocus", balCancel: "balCancel", balKeyPress: "balKeyPress" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2651
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2652
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalSelect, selector: "bal-select", inputs: { autoInvalidOff: "autoInvalidOff", autocomplete: "autocomplete", balTabindex: "balTabindex", disabled: "disabled", filter: "filter", freeSolo: "freeSolo", invalid: "invalid", loading: "loading", maxLength: "maxLength", multiple: "multiple", name: "name", noDataLabel: "noDataLabel", placeholder: "placeholder", readonly: "readonly", remote: "remote", required: "required", scrollable: "scrollable", selectionOptional: "selectionOptional", typeahead: "typeahead", value: "value" }, outputs: { balChange: "balChange", balInputClick: "balInputClick", balInput: "balInput", balBlur: "balBlur", balFocus: "balFocus", balCancel: "balCancel", balKeyPress: "balKeyPress" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2652
2653
  };
2653
2654
  BalSelect = __decorate([
2654
2655
  ProxyCmp({
@@ -2659,7 +2660,7 @@ BalSelect = __decorate([
2659
2660
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2660
2661
  ], BalSelect);
2661
2662
  export { BalSelect };
2662
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSelect, decorators: [{
2663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSelect, decorators: [{
2663
2664
  type: Component,
2664
2665
  args: [{
2665
2666
  selector: 'bal-select',
@@ -2676,8 +2677,8 @@ let BalSelectOption = class BalSelectOption {
2676
2677
  c.detach();
2677
2678
  this.el = r.nativeElement;
2678
2679
  }
2679
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSelectOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2680
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalSelectOption, selector: "bal-select-option", inputs: { disabled: "disabled", label: "label", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2680
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSelectOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2681
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalSelectOption, selector: "bal-select-option", inputs: { disabled: "disabled", label: "label", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2681
2682
  };
2682
2683
  BalSelectOption = __decorate([
2683
2684
  ProxyCmp({
@@ -2687,7 +2688,7 @@ BalSelectOption = __decorate([
2687
2688
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2688
2689
  ], BalSelectOption);
2689
2690
  export { BalSelectOption };
2690
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSelectOption, decorators: [{
2691
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSelectOption, decorators: [{
2691
2692
  type: Component,
2692
2693
  args: [{
2693
2694
  selector: 'bal-select-option',
@@ -2703,8 +2704,8 @@ let BalShape = class BalShape {
2703
2704
  c.detach();
2704
2705
  this.el = r.nativeElement;
2705
2706
  }
2706
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalShape, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2707
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalShape, selector: "bal-shape", inputs: { color: "color", rotation: "rotation", variation: "variation" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2707
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalShape, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2708
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalShape, selector: "bal-shape", inputs: { color: "color", rotation: "rotation", variation: "variation" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2708
2709
  };
2709
2710
  BalShape = __decorate([
2710
2711
  ProxyCmp({
@@ -2714,7 +2715,7 @@ BalShape = __decorate([
2714
2715
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2715
2716
  ], BalShape);
2716
2717
  export { BalShape };
2717
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalShape, decorators: [{
2718
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalShape, decorators: [{
2718
2719
  type: Component,
2719
2720
  args: [{
2720
2721
  selector: 'bal-shape',
@@ -2730,8 +2731,8 @@ let BalSheet = class BalSheet {
2730
2731
  c.detach();
2731
2732
  this.el = r.nativeElement;
2732
2733
  }
2733
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSheet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2734
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalSheet, selector: "bal-sheet", inputs: { containerSize: "containerSize" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2734
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSheet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2735
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalSheet, selector: "bal-sheet", inputs: { containerSize: "containerSize" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2735
2736
  };
2736
2737
  BalSheet = __decorate([
2737
2738
  ProxyCmp({
@@ -2741,7 +2742,7 @@ BalSheet = __decorate([
2741
2742
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2742
2743
  ], BalSheet);
2743
2744
  export { BalSheet };
2744
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSheet, decorators: [{
2745
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSheet, decorators: [{
2745
2746
  type: Component,
2746
2747
  args: [{
2747
2748
  selector: 'bal-sheet',
@@ -2758,8 +2759,8 @@ let BalSnackbar = class BalSnackbar {
2758
2759
  this.el = r.nativeElement;
2759
2760
  proxyOutputs(this, this.el, ['balClose', 'balAction']);
2760
2761
  }
2761
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSnackbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2762
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalSnackbar, selector: "bal-snackbar", inputs: { action: "action", color: "color", duration: "duration", href: "href", icon: "icon", message: "message", subject: "subject", target: "target" }, outputs: { balClose: "balClose", balAction: "balAction" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2762
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSnackbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2763
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalSnackbar, selector: "bal-snackbar", inputs: { action: "action", color: "color", duration: "duration", href: "href", icon: "icon", message: "message", subject: "subject", target: "target" }, outputs: { balClose: "balClose", balAction: "balAction" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2763
2764
  };
2764
2765
  BalSnackbar = __decorate([
2765
2766
  ProxyCmp({
@@ -2770,7 +2771,7 @@ BalSnackbar = __decorate([
2770
2771
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2771
2772
  ], BalSnackbar);
2772
2773
  export { BalSnackbar };
2773
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSnackbar, decorators: [{
2774
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSnackbar, decorators: [{
2774
2775
  type: Component,
2775
2776
  args: [{
2776
2777
  selector: 'bal-snackbar',
@@ -2787,8 +2788,8 @@ let BalSpinner = class BalSpinner {
2787
2788
  c.detach();
2788
2789
  this.el = r.nativeElement;
2789
2790
  }
2790
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2791
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalSpinner, selector: "bal-spinner", inputs: { color: "color", deactivated: "deactivated", inverted: "inverted", small: "small", variation: "variation" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2791
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2792
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalSpinner, selector: "bal-spinner", inputs: { color: "color", deactivated: "deactivated", inverted: "inverted", small: "small", variation: "variation" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2792
2793
  };
2793
2794
  BalSpinner = __decorate([
2794
2795
  ProxyCmp({
@@ -2798,7 +2799,7 @@ BalSpinner = __decorate([
2798
2799
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2799
2800
  ], BalSpinner);
2800
2801
  export { BalSpinner };
2801
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSpinner, decorators: [{
2802
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSpinner, decorators: [{
2802
2803
  type: Component,
2803
2804
  args: [{
2804
2805
  selector: 'bal-spinner',
@@ -2814,8 +2815,8 @@ let BalStack = class BalStack {
2814
2815
  c.detach();
2815
2816
  this.el = r.nativeElement;
2816
2817
  }
2817
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStack, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2818
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalStack, selector: "bal-stack", inputs: { align: "align", fitContent: "fitContent", layout: "layout", px: "px", py: "py", space: "space", spaceColumn: "spaceColumn", spaceRow: "spaceRow", useWrap: "useWrap" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2818
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStack, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2819
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalStack, selector: "bal-stack", inputs: { align: "align", fitContent: "fitContent", layout: "layout", px: "px", py: "py", space: "space", spaceColumn: "spaceColumn", spaceRow: "spaceRow", useWrap: "useWrap" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2819
2820
  };
2820
2821
  BalStack = __decorate([
2821
2822
  ProxyCmp({
@@ -2825,7 +2826,7 @@ BalStack = __decorate([
2825
2826
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2826
2827
  ], BalStack);
2827
2828
  export { BalStack };
2828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStack, decorators: [{
2829
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStack, decorators: [{
2829
2830
  type: Component,
2830
2831
  args: [{
2831
2832
  selector: 'bal-stack',
@@ -2841,8 +2842,8 @@ let BalStage = class BalStage {
2841
2842
  c.detach();
2842
2843
  this.el = r.nativeElement;
2843
2844
  }
2844
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2845
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalStage, selector: "bal-stage", inputs: { color: "color", containerSize: "containerSize", shape: "shape", shapeRotation: "shapeRotation", shapeVariation: "shapeVariation", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2845
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2846
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalStage, selector: "bal-stage", inputs: { color: "color", containerSize: "containerSize", shape: "shape", shapeRotation: "shapeRotation", shapeVariation: "shapeVariation", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2846
2847
  };
2847
2848
  BalStage = __decorate([
2848
2849
  ProxyCmp({
@@ -2852,7 +2853,7 @@ BalStage = __decorate([
2852
2853
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2853
2854
  ], BalStage);
2854
2855
  export { BalStage };
2855
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStage, decorators: [{
2856
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStage, decorators: [{
2856
2857
  type: Component,
2857
2858
  args: [{
2858
2859
  selector: 'bal-stage',
@@ -2868,8 +2869,8 @@ let BalStageBackLink = class BalStageBackLink {
2868
2869
  c.detach();
2869
2870
  this.el = r.nativeElement;
2870
2871
  }
2871
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStageBackLink, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2872
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalStageBackLink, selector: "bal-stage-back-link", inputs: { href: "href", inverted: "inverted", rel: "rel", shadow: "shadow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2872
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStageBackLink, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2873
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalStageBackLink, selector: "bal-stage-back-link", inputs: { href: "href", inverted: "inverted", rel: "rel", shadow: "shadow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2873
2874
  };
2874
2875
  BalStageBackLink = __decorate([
2875
2876
  ProxyCmp({
@@ -2879,7 +2880,7 @@ BalStageBackLink = __decorate([
2879
2880
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2880
2881
  ], BalStageBackLink);
2881
2882
  export { BalStageBackLink };
2882
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStageBackLink, decorators: [{
2883
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStageBackLink, decorators: [{
2883
2884
  type: Component,
2884
2885
  args: [{
2885
2886
  selector: 'bal-stage-back-link',
@@ -2895,8 +2896,8 @@ let BalStageBody = class BalStageBody {
2895
2896
  c.detach();
2896
2897
  this.el = r.nativeElement;
2897
2898
  }
2898
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStageBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2899
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalStageBody, selector: "bal-stage-body", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2899
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStageBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2900
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalStageBody, selector: "bal-stage-body", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2900
2901
  };
2901
2902
  BalStageBody = __decorate([
2902
2903
  ProxyCmp({
@@ -2905,7 +2906,7 @@ BalStageBody = __decorate([
2905
2906
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2906
2907
  ], BalStageBody);
2907
2908
  export { BalStageBody };
2908
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStageBody, decorators: [{
2909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStageBody, decorators: [{
2909
2910
  type: Component,
2910
2911
  args: [{
2911
2912
  selector: 'bal-stage-body',
@@ -2920,8 +2921,8 @@ let BalStageFoot = class BalStageFoot {
2920
2921
  c.detach();
2921
2922
  this.el = r.nativeElement;
2922
2923
  }
2923
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStageFoot, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2924
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalStageFoot, selector: "bal-stage-foot", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2924
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStageFoot, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2925
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalStageFoot, selector: "bal-stage-foot", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2925
2926
  };
2926
2927
  BalStageFoot = __decorate([
2927
2928
  ProxyCmp({
@@ -2930,7 +2931,7 @@ BalStageFoot = __decorate([
2930
2931
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2931
2932
  ], BalStageFoot);
2932
2933
  export { BalStageFoot };
2933
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStageFoot, decorators: [{
2934
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStageFoot, decorators: [{
2934
2935
  type: Component,
2935
2936
  args: [{
2936
2937
  selector: 'bal-stage-foot',
@@ -2945,8 +2946,8 @@ let BalStageHead = class BalStageHead {
2945
2946
  c.detach();
2946
2947
  this.el = r.nativeElement;
2947
2948
  }
2948
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStageHead, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2949
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalStageHead, selector: "bal-stage-head", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2949
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStageHead, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2950
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalStageHead, selector: "bal-stage-head", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2950
2951
  };
2951
2952
  BalStageHead = __decorate([
2952
2953
  ProxyCmp({
@@ -2955,7 +2956,7 @@ BalStageHead = __decorate([
2955
2956
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2956
2957
  ], BalStageHead);
2957
2958
  export { BalStageHead };
2958
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStageHead, decorators: [{
2959
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStageHead, decorators: [{
2959
2960
  type: Component,
2960
2961
  args: [{
2961
2962
  selector: 'bal-stage-head',
@@ -2970,8 +2971,8 @@ let BalStageImage = class BalStageImage {
2970
2971
  c.detach();
2971
2972
  this.el = r.nativeElement;
2972
2973
  }
2973
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStageImage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2974
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalStageImage, selector: "bal-stage-image", inputs: { fallback: "fallback", srcSet: "srcSet" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2974
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStageImage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2975
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalStageImage, selector: "bal-stage-image", inputs: { fallback: "fallback", srcSet: "srcSet" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2975
2976
  };
2976
2977
  BalStageImage = __decorate([
2977
2978
  ProxyCmp({
@@ -2981,7 +2982,7 @@ BalStageImage = __decorate([
2981
2982
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
2982
2983
  ], BalStageImage);
2983
2984
  export { BalStageImage };
2984
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStageImage, decorators: [{
2985
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStageImage, decorators: [{
2985
2986
  type: Component,
2986
2987
  args: [{
2987
2988
  selector: 'bal-stage-image',
@@ -2998,8 +2999,8 @@ let BalStepItem = class BalStepItem {
2998
2999
  this.el = r.nativeElement;
2999
3000
  proxyOutputs(this, this.el, ['balNavigate']);
3000
3001
  }
3001
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStepItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3002
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalStepItem, selector: "bal-step-item", inputs: { active: "active", disabled: "disabled", done: "done", failed: "failed", href: "href", invisible: "invisible", label: "label", prevent: "prevent", rel: "rel", target: "target", value: "value" }, outputs: { balNavigate: "balNavigate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3002
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStepItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3003
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalStepItem, selector: "bal-step-item", inputs: { active: "active", disabled: "disabled", done: "done", failed: "failed", href: "href", invisible: "invisible", label: "label", prevent: "prevent", rel: "rel", target: "target", value: "value" }, outputs: { balNavigate: "balNavigate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3003
3004
  };
3004
3005
  BalStepItem = __decorate([
3005
3006
  ProxyCmp({
@@ -3010,7 +3011,7 @@ BalStepItem = __decorate([
3010
3011
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3011
3012
  ], BalStepItem);
3012
3013
  export { BalStepItem };
3013
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalStepItem, decorators: [{
3014
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalStepItem, decorators: [{
3014
3015
  type: Component,
3015
3016
  args: [{
3016
3017
  selector: 'bal-step-item',
@@ -3028,8 +3029,8 @@ let BalSteps = class BalSteps {
3028
3029
  this.el = r.nativeElement;
3029
3030
  proxyOutputs(this, this.el, ['balChange']);
3030
3031
  }
3031
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSteps, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3032
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalSteps, selector: "bal-steps", inputs: { clickable: "clickable", color: "color", debounce: "debounce", options: "options", value: "value" }, outputs: { balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3032
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSteps, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3033
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalSteps, selector: "bal-steps", inputs: { clickable: "clickable", color: "color", debounce: "debounce", options: "options", value: "value" }, outputs: { balChange: "balChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3033
3034
  };
3034
3035
  BalSteps = __decorate([
3035
3036
  ProxyCmp({
@@ -3040,7 +3041,7 @@ BalSteps = __decorate([
3040
3041
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3041
3042
  ], BalSteps);
3042
3043
  export { BalSteps };
3043
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSteps, decorators: [{
3044
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSteps, decorators: [{
3044
3045
  type: Component,
3045
3046
  args: [{
3046
3047
  selector: 'bal-steps',
@@ -3057,8 +3058,8 @@ let BalSwitch = class BalSwitch {
3057
3058
  c.detach();
3058
3059
  this.el = r.nativeElement;
3059
3060
  }
3060
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSwitch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3061
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalSwitch, selector: "bal-switch", inputs: { checked: "checked", disabled: "disabled", invalid: "invalid" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3061
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSwitch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3062
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalSwitch, selector: "bal-switch", inputs: { checked: "checked", disabled: "disabled", invalid: "invalid" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3062
3063
  };
3063
3064
  BalSwitch = __decorate([
3064
3065
  ProxyCmp({
@@ -3068,7 +3069,7 @@ BalSwitch = __decorate([
3068
3069
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3069
3070
  ], BalSwitch);
3070
3071
  export { BalSwitch };
3071
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalSwitch, decorators: [{
3072
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalSwitch, decorators: [{
3072
3073
  type: Component,
3073
3074
  args: [{
3074
3075
  selector: 'bal-switch',
@@ -3085,8 +3086,8 @@ let BalTabItem = class BalTabItem {
3085
3086
  this.el = r.nativeElement;
3086
3087
  proxyOutputs(this, this.el, ['balNavigate', 'balKeyDown']);
3087
3088
  }
3088
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTabItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3089
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalTabItem, selector: "bal-tab-item", inputs: { a11yControls: "a11yControls", active: "active", bubble: "bubble", disabled: "disabled", href: "href", icon: "icon", invisible: "invisible", label: "label", noPanel: "noPanel", prevent: "prevent", rel: "rel", subLabel: "subLabel", svg: "svg", target: "target", value: "value" }, outputs: { balNavigate: "balNavigate", balKeyDown: "balKeyDown" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3089
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTabItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3090
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalTabItem, selector: "bal-tab-item", inputs: { a11yControls: "a11yControls", active: "active", bubble: "bubble", disabled: "disabled", href: "href", icon: "icon", invisible: "invisible", label: "label", noPanel: "noPanel", prevent: "prevent", rel: "rel", subLabel: "subLabel", svg: "svg", target: "target", value: "value" }, outputs: { balNavigate: "balNavigate", balKeyDown: "balKeyDown" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3090
3091
  };
3091
3092
  BalTabItem = __decorate([
3092
3093
  ProxyCmp({
@@ -3097,7 +3098,7 @@ BalTabItem = __decorate([
3097
3098
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3098
3099
  ], BalTabItem);
3099
3100
  export { BalTabItem };
3100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTabItem, decorators: [{
3101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTabItem, decorators: [{
3101
3102
  type: Component,
3102
3103
  args: [{
3103
3104
  selector: 'bal-tab-item',
@@ -3114,8 +3115,8 @@ let BalTable = class BalTable {
3114
3115
  c.detach();
3115
3116
  this.el = r.nativeElement;
3116
3117
  }
3117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalTable, selector: "bal-table", inputs: { expanded: "expanded" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalTable, selector: "bal-table", inputs: { expanded: "expanded" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3119
3120
  };
3120
3121
  BalTable = __decorate([
3121
3122
  ProxyCmp({
@@ -3125,7 +3126,7 @@ BalTable = __decorate([
3125
3126
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3126
3127
  ], BalTable);
3127
3128
  export { BalTable };
3128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTable, decorators: [{
3129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTable, decorators: [{
3129
3130
  type: Component,
3130
3131
  args: [{
3131
3132
  selector: 'bal-table',
@@ -3142,8 +3143,8 @@ let BalTabs = class BalTabs {
3142
3143
  this.el = r.nativeElement;
3143
3144
  proxyOutputs(this, this.el, ['balChange', 'balWillAnimate', 'balDidAnimate']);
3144
3145
  }
3145
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3146
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalTabs, selector: "bal-tabs", inputs: { accordion: "accordion", border: "border", clickable: "clickable", context: "context", debounce: "debounce", dimInactiveElements: "dimInactiveElements", expanded: "expanded", float: "float", fullwidth: "fullwidth", handleAsTabList: "handleAsTabList", iconPosition: "iconPosition", inverted: "inverted", optionalTabSelection: "optionalTabSelection", options: "options", overflow: "overflow", selectOnMobile: "selectOnMobile", spaceless: "spaceless", value: "value", vertical: "vertical", verticalColSize: "verticalColSize" }, outputs: { balChange: "balChange", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalTabs, selector: "bal-tabs", inputs: { accordion: "accordion", border: "border", clickable: "clickable", context: "context", debounce: "debounce", dimInactiveElements: "dimInactiveElements", expanded: "expanded", float: "float", fullwidth: "fullwidth", handleAsTabList: "handleAsTabList", iconPosition: "iconPosition", inverted: "inverted", optionalTabSelection: "optionalTabSelection", options: "options", overflow: "overflow", selectOnMobile: "selectOnMobile", spaceless: "spaceless", value: "value", vertical: "vertical", verticalColSize: "verticalColSize" }, outputs: { balChange: "balChange", balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3147
3148
  };
3148
3149
  BalTabs = __decorate([
3149
3150
  ProxyCmp({
@@ -3154,7 +3155,7 @@ BalTabs = __decorate([
3154
3155
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3155
3156
  ], BalTabs);
3156
3157
  export { BalTabs };
3157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTabs, decorators: [{
3158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTabs, decorators: [{
3158
3159
  type: Component,
3159
3160
  args: [{
3160
3161
  selector: 'bal-tabs',
@@ -3172,8 +3173,8 @@ let BalTag = class BalTag {
3172
3173
  this.el = r.nativeElement;
3173
3174
  proxyOutputs(this, this.el, ['balCloseClick']);
3174
3175
  }
3175
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTag, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3176
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalTag, selector: "bal-tag", inputs: { closable: "closable", color: "color", disabled: "disabled", invalid: "invalid", light: "light", position: "position", size: "size" }, outputs: { balCloseClick: "balCloseClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3176
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTag, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3177
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalTag, selector: "bal-tag", inputs: { closable: "closable", color: "color", disabled: "disabled", invalid: "invalid", light: "light", position: "position", size: "size" }, outputs: { balCloseClick: "balCloseClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3177
3178
  };
3178
3179
  BalTag = __decorate([
3179
3180
  ProxyCmp({
@@ -3183,7 +3184,7 @@ BalTag = __decorate([
3183
3184
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3184
3185
  ], BalTag);
3185
3186
  export { BalTag };
3186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTag, decorators: [{
3187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTag, decorators: [{
3187
3188
  type: Component,
3188
3189
  args: [{
3189
3190
  selector: 'bal-tag',
@@ -3200,8 +3201,8 @@ let BalTagGroup = class BalTagGroup {
3200
3201
  c.detach();
3201
3202
  this.el = r.nativeElement;
3202
3203
  }
3203
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTagGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalTagGroup, selector: "bal-tag-group", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTagGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3205
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalTagGroup, selector: "bal-tag-group", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3205
3206
  };
3206
3207
  BalTagGroup = __decorate([
3207
3208
  ProxyCmp({
@@ -3210,7 +3211,7 @@ BalTagGroup = __decorate([
3210
3211
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3211
3212
  ], BalTagGroup);
3212
3213
  export { BalTagGroup };
3213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTagGroup, decorators: [{
3214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTagGroup, decorators: [{
3214
3215
  type: Component,
3215
3216
  args: [{
3216
3217
  selector: 'bal-tag-group',
@@ -3225,8 +3226,8 @@ let BalText = class BalText {
3225
3226
  c.detach();
3226
3227
  this.el = r.nativeElement;
3227
3228
  }
3228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalText, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalText, selector: "bal-text", inputs: { bold: "bold", color: "color", disabled: "disabled", heading: "heading", inline: "inline", invalid: "invalid", inverted: "inverted", noWrap: "noWrap", shadow: "shadow", size: "size", space: "space" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalText, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3230
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalText, selector: "bal-text", inputs: { bold: "bold", color: "color", disabled: "disabled", heading: "heading", inline: "inline", invalid: "invalid", inverted: "inverted", noWrap: "noWrap", shadow: "shadow", size: "size", space: "space" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3230
3231
  };
3231
3232
  BalText = __decorate([
3232
3233
  ProxyCmp({
@@ -3236,7 +3237,7 @@ BalText = __decorate([
3236
3237
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3237
3238
  ], BalText);
3238
3239
  export { BalText };
3239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalText, decorators: [{
3240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalText, decorators: [{
3240
3241
  type: Component,
3241
3242
  args: [{
3242
3243
  selector: 'bal-text',
@@ -3253,8 +3254,8 @@ let BalTextarea = class BalTextarea {
3253
3254
  this.el = r.nativeElement;
3254
3255
  proxyOutputs(this, this.el, ['balChange', 'balInput', 'balBlur', 'balKeyPress', 'balFocus']);
3255
3256
  }
3256
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3257
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalTextarea, selector: "bal-textarea", inputs: { autoInvalidOff: "autoInvalidOff", autocapitalize: "autocapitalize", autocomplete: "autocomplete", autofocus: "autofocus", clickable: "clickable", cols: "cols", debounce: "debounce", disabled: "disabled", inputmode: "inputmode", invalid: "invalid", maxLength: "maxLength", minLength: "minLength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", rows: "rows", value: "value", wrap: "wrap" }, outputs: { balChange: "balChange", balInput: "balInput", balBlur: "balBlur", balKeyPress: "balKeyPress", balFocus: "balFocus" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalTextarea, selector: "bal-textarea", inputs: { autoInvalidOff: "autoInvalidOff", autocapitalize: "autocapitalize", autocomplete: "autocomplete", autofocus: "autofocus", clickable: "clickable", cols: "cols", debounce: "debounce", disabled: "disabled", inputmode: "inputmode", invalid: "invalid", maxLength: "maxLength", minLength: "minLength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", rows: "rows", value: "value", wrap: "wrap" }, outputs: { balChange: "balChange", balInput: "balInput", balBlur: "balBlur", balKeyPress: "balKeyPress", balFocus: "balFocus" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3258
3259
  };
3259
3260
  BalTextarea = __decorate([
3260
3261
  ProxyCmp({
@@ -3265,7 +3266,7 @@ BalTextarea = __decorate([
3265
3266
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3266
3267
  ], BalTextarea);
3267
3268
  export { BalTextarea };
3268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTextarea, decorators: [{
3269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTextarea, decorators: [{
3269
3270
  type: Component,
3270
3271
  args: [{
3271
3272
  selector: 'bal-textarea',
@@ -3283,8 +3284,8 @@ let BalTimeInput = class BalTimeInput {
3283
3284
  this.el = r.nativeElement;
3284
3285
  proxyOutputs(this, this.el, ['balInput', 'balChange', 'balBlur', 'balFocus', 'balKeyPress', 'balClick']);
3285
3286
  }
3286
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTimeInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3287
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalTimeInput, selector: "bal-time-input", inputs: { autoInvalidOff: "autoInvalidOff", debounce: "debounce", disabled: "disabled", invalid: "invalid", name: "name", readonly: "readonly", required: "required", value: "value" }, outputs: { balInput: "balInput", balChange: "balChange", balBlur: "balBlur", balFocus: "balFocus", balKeyPress: "balKeyPress", balClick: "balClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3287
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTimeInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3288
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalTimeInput, selector: "bal-time-input", inputs: { autoInvalidOff: "autoInvalidOff", debounce: "debounce", disabled: "disabled", invalid: "invalid", name: "name", readonly: "readonly", required: "required", value: "value" }, outputs: { balInput: "balInput", balChange: "balChange", balBlur: "balBlur", balFocus: "balFocus", balKeyPress: "balKeyPress", balClick: "balClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3288
3289
  };
3289
3290
  BalTimeInput = __decorate([
3290
3291
  ProxyCmp({
@@ -3295,7 +3296,7 @@ BalTimeInput = __decorate([
3295
3296
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3296
3297
  ], BalTimeInput);
3297
3298
  export { BalTimeInput };
3298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTimeInput, decorators: [{
3299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTimeInput, decorators: [{
3299
3300
  type: Component,
3300
3301
  args: [{
3301
3302
  selector: 'bal-time-input',
@@ -3313,8 +3314,8 @@ let BalToast = class BalToast {
3313
3314
  this.el = r.nativeElement;
3314
3315
  proxyOutputs(this, this.el, ['balClose']);
3315
3316
  }
3316
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3317
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalToast, selector: "bal-toast", inputs: { closable: "closable", color: "color", duration: "duration", message: "message" }, outputs: { balClose: "balClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3317
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3318
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalToast, selector: "bal-toast", inputs: { closable: "closable", color: "color", duration: "duration", message: "message" }, outputs: { balClose: "balClose" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3318
3319
  };
3319
3320
  BalToast = __decorate([
3320
3321
  ProxyCmp({
@@ -3325,7 +3326,7 @@ BalToast = __decorate([
3325
3326
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3326
3327
  ], BalToast);
3327
3328
  export { BalToast };
3328
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalToast, decorators: [{
3329
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalToast, decorators: [{
3329
3330
  type: Component,
3330
3331
  args: [{
3331
3332
  selector: 'bal-toast',
@@ -3343,8 +3344,8 @@ let BalTooltip = class BalTooltip {
3343
3344
  this.el = r.nativeElement;
3344
3345
  proxyOutputs(this, this.el, ['balWillAnimate', 'balDidAnimate']);
3345
3346
  }
3346
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3347
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: BalTooltip, selector: "bal-tooltip", inputs: { contentWidth: "contentWidth", offset: "offset", placement: "placement", reference: "reference" }, outputs: { balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3347
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3348
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: BalTooltip, selector: "bal-tooltip", inputs: { contentWidth: "contentWidth", offset: "offset", placement: "placement", reference: "reference" }, outputs: { balWillAnimate: "balWillAnimate", balDidAnimate: "balDidAnimate" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3348
3349
  };
3349
3350
  BalTooltip = __decorate([
3350
3351
  ProxyCmp({
@@ -3354,7 +3355,7 @@ BalTooltip = __decorate([
3354
3355
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef, NgZone])
3355
3356
  ], BalTooltip);
3356
3357
  export { BalTooltip };
3357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: BalTooltip, decorators: [{
3358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: BalTooltip, decorators: [{
3358
3359
  type: Component,
3359
3360
  args: [{
3360
3361
  selector: 'bal-tooltip',
@@ -3365,4 +3366,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
3365
3366
  outputs: ['balWillAnimate', 'balDidAnimate']
3366
3367
  }]
3367
3368
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
3368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWtELE1BQU0sZUFBZSxDQUFDO0FBQzFKLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDckgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDckgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDckgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLElBQUksZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0csT0FBTyxFQUFFLG1CQUFtQixJQUFJLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxD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Q0FBQyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7OEdBVlUsVUFBVTtrR0FBVixVQUFVLDhPQUxYLDJCQUEyQjs7QUFLMUIsVUFBVTtJQVp0QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDNUQscUJBQXFCLEVBQUUsZ0JBQWdCO0tBQ3hDLENBQUM7cUNBZWUsaUJBQWlCLEVBQUssVUFBVSxFQUFlLE1BQU07R0FOekQsVUFBVSxDQVd0Qjs7MkZBWFksVUFBVTtrQkFSdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxLQUFLO29CQUNqQixNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7b0JBQzVELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQztpQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE5nWm9uZSwgRXZlbnRFbWl0dGVyLCBOZ01vZHVsZSwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQWNjb3JkaW9uIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1hY2NvcmRpb24nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxBY2NvcmRpb25EZXRhaWxzIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1hY2NvcmRpb24tZGV0YWlscyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEFjY29yZGlvblN1bW1hcnkgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWFjY29yZGlvbi1zdW1tYXJ5JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQWNjb3JkaW9uVHJpZ2dlciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtYWNjb3JkaW9uLXRyaWdnZXInO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxBcHAgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWFwcCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEJhZGdlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1iYWRnZSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEJ1dHRvbiB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtYnV0dG9uJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQnV0dG9uR3JvdXAgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWJ1dHRvbi1ncm91cCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbENhcmQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWNhcmQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxDYXJkQWN0aW9ucyB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtY2FyZC1hY3Rpb25zJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2FyZEJ1dHRvbiB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtY2FyZC1idXR0b24nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxDYXJkQ29udGVudCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtY2FyZC1jb250ZW50JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2FyZFN1YnRpdGxlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1jYXJkLXN1YnRpdGxlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2FyZFRpdGxlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1jYXJkLXRpdGxlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2Fyb3VzZWwgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWNhcm91c2VsJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2Fyb3VzZWxJdGVtIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1jYXJvdXNlbC1pdGVtJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2hlY2sgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWNoZWNrJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2hlY2tib3ggfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWNoZWNrYm94JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2hlY2tib3hHcm91cCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtY2hlY2tib3gtZ3JvdXAnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxDbG9zZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtY2xvc2UnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxDb250ZW50IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1jb250ZW50JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRGF0YSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZGF0YSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbERhdGFJdGVtIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1kYXRhLWl0ZW0nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxEYXRhTGFiZWwgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWRhdGEtbGFiZWwnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxEYXRhVmFsdWUgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWRhdGEtdmFsdWUnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxEYXRlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1kYXRlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRGF0ZUNhbGVuZGFyIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1kYXRlLWNhbGVuZGFyJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRGF0ZUNhbGVuZGFyQ2VsbCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZGF0ZS1jYWxlbmRhci1jZWxsJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRGl2aWRlciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZGl2aWRlcic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbERyb3Bkb3duIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1kcm9wZG93bic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEZpZWxkIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1maWVsZCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEZpZWxkQ29udHJvbCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZmllbGQtY29udHJvbCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEZpZWxkSGludCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZmllbGQtaGludCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEZpZWxkTGFiZWwgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWZpZWxkLWxhYmVsJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRmllbGRNZXNzYWdlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1maWVsZC1tZXNzYWdlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRmlsZVVwbG9hZCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZmlsZS11cGxvYWQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxGb290ZXIgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWZvb3Rlcic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEZvcm0gfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWZvcm0nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxGb3JtQ29sIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1mb3JtLWNvbCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEZvcm1HcmlkIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1mb3JtLWdyaWQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxIZWFkaW5nIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1oZWFkaW5nJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsSGludCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtaGludCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEhpbnRUZXh0IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1oaW50LXRleHQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxIaW50VGl0bGUgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWhpbnQtdGl0bGUnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxJY29uIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1pY29uJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsSW5wdXQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWlucHV0JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsSW5wdXREYXRlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1pbnB1dC1kYXRlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsSW5wdXRHcm91cCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtaW5wdXQtZ3JvdXAnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxJbnB1dFNsaWRlciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtaW5wdXQtc2xpZGVyJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsSW5wdXRTdGVwcGVyIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1pbnB1dC1zdGVwcGVyJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTGFiZWwgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWxhYmVsJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTGlzdCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbGlzdCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbExpc3RJdGVtIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxMaXN0SXRlbUFjY29yZGlvbkJvZHkgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWxpc3QtaXRlbS1hY2NvcmRpb24tYm9keSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbExpc3RJdGVtQWNjb3JkaW9uSGVhZCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbGlzdC1pdGVtLWFjY29yZGlvbi1oZWFkJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTGlzdEl0ZW1Db250ZW50IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1saXN0LWl0ZW0tY29udGVudCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbExpc3RJdGVtSWNvbiB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbGlzdC1pdGVtLWljb24nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxMaXN0SXRlbVN1YnRpdGxlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1saXN0LWl0ZW0tc3VidGl0bGUnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxMaXN0SXRlbVRpdGxlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1saXN0LWl0ZW0tdGl0bGUnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxMb2dvIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1sb2dvJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTW9kYWwgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLW1vZGFsJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTW9kYWxCb2R5IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1tb2RhbC1ib2R5JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTW9kYWxIZWFkZXIgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLW1vZGFsLWhlYWRlcic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE5hdiB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTmF2TGluayB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2LWxpbmsnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZMaW5rR3JpZCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2LWxpbmstZ3JpZCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE5hdkxpbmtHcmlkQ29sIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1uYXYtbGluay1ncmlkLWNvbCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE5hdkxpbmtHcm91cCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2LWxpbmstZ3JvdXAnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZNZW51QmFyIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1uYXYtbWVudS1iYXInO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZNZW51Rmx5b3V0IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1uYXYtbWVudS1mbHlvdXQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZNZXRhQmFyIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1uYXYtbWV0YS1iYXInO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZiYXIgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLW5hdmJhcic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE5hdmJhckJyYW5kIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1uYXZiYXItYnJhbmQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZiYXJNZW51IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1uYXZiYXItbWVudSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE5hdmJhck1lbnVFbmQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLW5hdmJhci1tZW51LWVuZCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE5hdmJhck1lbnVTdGFydCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2YmFyLW1lbnUtc3RhcnQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOb3RpY2VzIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1ub3RpY2VzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTm90aWZpY2F0aW9uIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOdW1iZXJJbnB1dCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbnVtYmVyLWlucHV0JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsT3B0aW9uIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1vcHRpb24nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxPcHRpb25MaXN0IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1vcHRpb24tbGlzdCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFBhZ2luYXRpb24gfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXBhZ2luYXRpb24nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxQb3BvdmVyIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1wb3BvdmVyJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsUG9wb3ZlckNvbnRlbnQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXBvcG92ZXItY29udGVudCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFBvcHVwIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1wb3B1cCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFByb2dyZXNzQmFyIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxSYWRpbyB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtcmFkaW8nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxSYWRpb0dyb3VwIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1yYWRpby1ncm91cCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFJhZGlvSWNvbiB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtcmFkaW8taWNvbic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFNlZ21lbnQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXNlZ21lbnQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxTZWdtZW50SXRlbSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc2VnbWVudC1pdGVtJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU2VsZWN0IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zZWxlY3QnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxTZWxlY3RPcHRpb24gfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXNlbGVjdC1vcHRpb24nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxTaGFwZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc2hhcGUnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxTaGVldCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc2hlZXQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxTbmFja2JhciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc25hY2tiYXInO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxTcGlubmVyIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zcGlubmVyJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3RhY2sgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXN0YWNrJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3RhZ2UgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXN0YWdlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3RhZ2VCYWNrTGluayB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc3RhZ2UtYmFjay1saW5rJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3RhZ2VCb2R5IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zdGFnZS1ib2R5JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3RhZ2VGb290IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zdGFnZS1mb290JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3RhZ2VIZWFkIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zdGFnZS1oZWFkJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3RhZ2VJbWFnZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc3RhZ2UtaW1hZ2UnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxTdGVwSXRlbSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc3RlcC1pdGVtJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3RlcHMgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXN0ZXBzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3dpdGNoIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zd2l0Y2gnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxUYWJJdGVtIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC10YWItaXRlbSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFRhYmxlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC10YWJsZSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFRhYnMgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXRhYnMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxUYWcgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXRhZyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFRhZ0dyb3VwIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC10YWctZ3JvdXAnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxUZXh0IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC10ZXh0JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsVGV4dGFyZWEgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXRleHRhcmVhJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsVGltZUlucHV0IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC10aW1lLWlucHV0JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsVG9hc3QgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXRvYXN0JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsVG9vbHRpcCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtdG9vbHRpcCc7XG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50cywgRmlsZVVwbG9hZFJlamVjdGVkRmlsZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cyc7XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbEFjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuQmFsQWNjb3JkaW9uIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2NhcmQnLCAnY2xvc2VJY29uJywgJ2Nsb3NlTGFiZWwnLCAnZGVib3VuY2UnLCAnb3Blbkljb24nLCAnb3BlbkxhYmVsJ10sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ3RvZ2dsZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEFjY29yZGlvblxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY3RpdmUnLCAnY2FyZCcsICdjbG9zZUljb24nLCAnY2xvc2VMYWJlbCcsICdkZWJvdW5jZScsICdvcGVuSWNvbicsICdvcGVuTGFiZWwnXSxcbiAgb3V0cHV0czogWydiYWxDaGFuZ2UnLCAnYmFsV2lsbEFuaW1hdGUnLCAnYmFsRGlkQW5pbWF0ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEFjY29yZGlvbiB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGFjY29yZGlvbiBoYXMgb3BlbmVkIG9yIGNsb3NlZCAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbEFjY29yZGlvbkN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRzICovXG4gIGJhbFdpbGxBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxBY2NvcmRpb25DdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKiBFbWl0dGVkIGFmdGVyIHRoZSBhbmltYXRpb24gaGFzIGZpbmlzaGVkICovXG4gIGJhbERpZEFuaW1hdGUhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbEFjY29yZGlvbkN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQWNjb3JkaW9uRGV0YWlscyBleHRlbmRzIENvbXBvbmVudHMuQmFsQWNjb3JkaW9uRGV0YWlscyB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxBY2NvcmRpb25EZXRhaWxzXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWFjY29yZGlvbi1kZXRhaWxzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbEFjY29yZGlvbkRldGFpbHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxBY2NvcmRpb25TdW1tYXJ5IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxBY2NvcmRpb25TdW1tYXJ5IHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndHJpZ2dlciddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEFjY29yZGlvblN1bW1hcnlcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtYWNjb3JkaW9uLXN1bW1hcnknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWyd0cmlnZ2VyJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQWNjb3JkaW9uU3VtbWFyeSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbEFjY29yZGlvblRyaWdnZXIgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEFjY29yZGlvblRyaWdnZXIge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydidXR0b24nLCAnY2xvc2VJY29uJywgJ2Nsb3NlTGFiZWwnLCAnY29sb3InLCAnZXhwYW5kZWQnLCAnb3Blbkljb24nLCAnb3BlbkxhYmVsJywgJ3NpemUnLCAndmFyaWFudCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEFjY29yZGlvblRyaWdnZXJcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtYWNjb3JkaW9uLXRyaWdnZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydidXR0b24nLCAnY2xvc2VJY29uJywgJ2Nsb3NlTGFiZWwnLCAnY29sb3InLCAnZXhwYW5kZWQnLCAnb3Blbkljb24nLCAnb3BlbkxhYmVsJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEFjY29yZGlvblRyaWdnZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxBcHAgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEFwcCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxBcHBcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtYXBwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxBcHAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuQmFsQmFkZ2Uge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdpY29uJywgJ3Bvc2l0aW9uJywgJ3NpemUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxCYWRnZVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2ljb24nLCAncG9zaXRpb24nLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxCdXR0b24ge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUhhc3BvcHVwJywgJ2ExMXlMYWJlbCcsICdhMTF5VGl0bGUnLCAnYmFsUG9wdXAnLCAnY29sb3InLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZWxlbWVudFR5cGUnLCAnZXhwYW5kZWQnLCAnZmxhdCcsICdocmVmJywgJ2ljb24nLCAnaWNvblJpZ2h0JywgJ2ljb25UdXJuJywgJ2ludmVydGVkJywgJ2lzQWN0aXZlJywgJ2xvYWRpbmcnLCAnbmFtZScsICdub1dyYXAnLCAnb3V0bGluZWQnLCAncmVsJywgJ3JvdW5kZWQnLCAnc2hhZG93JywgJ3NpemUnLCAnc3F1YXJlJywgJ3RhcmdldCcsICd2YWx1ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEJ1dHRvblxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUhhc3BvcHVwJywgJ2ExMXlMYWJlbCcsICdhMTF5VGl0bGUnLCAnYmFsUG9wdXAnLCAnY29sb3InLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZWxlbWVudFR5cGUnLCAnZXhwYW5kZWQnLCAnZmxhdCcsICdocmVmJywgJ2ljb24nLCAnaWNvblJpZ2h0JywgJ2ljb25UdXJuJywgJ2ludmVydGVkJywgJ2lzQWN0aXZlJywgJ2xvYWRpbmcnLCAnbmFtZScsICdub1dyYXAnLCAnb3V0bGluZWQnLCAncmVsJywgJ3JvdW5kZWQnLCAnc2hhZG93JywgJ3NpemUnLCAnc3F1YXJlJywgJ3RhcmdldCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbENsaWNrJywgJ2JhbE5hdmlnYXRlJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInLCAnYmFsRGlkUmVuZGVyJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQnV0dG9uIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbGluayBlbGVtZW50IGhhcyBjbGlja2VkLiAqL1xuICBiYWxDbGljayE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQnV0dG9uQ3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBsaW5rIGVsZW1lbnQgaGFzIGNsaWNrZWQuICovXG4gIGJhbE5hdmlnYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxCdXR0b25DdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxCdXR0b25DdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQnV0dG9uQ3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaGFzIGJlZW4gIHJlbmRlcmVkLiAqL1xuICBiYWxEaWRSZW5kZXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbEJ1dHRvbkN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2xpY2snLCAnYmFsTmF2aWdhdGUnLCAnYmFsRm9jdXMnLCAnYmFsQmx1cicsICdiYWxEaWRSZW5kZXInXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQnV0dG9uR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEJ1dHRvbkdyb3VwIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlyZWN0aW9uJywgJ3Bvc2l0aW9uJywgJ3JldmVyc2UnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxCdXR0b25Hcm91cFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1idXR0b24tZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydkaXJlY3Rpb24nLCAncG9zaXRpb24nLCAncmV2ZXJzZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEJ1dHRvbkdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuQmFsQ2FyZCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JvcmRlcicsICdjbGlja2FibGUnLCAnY29sb3InLCAnZmxhdCcsICdmdWxsaGVpZ2h0JywgJ2ludmVydGVkJywgJ3NlbGVjdGVkJywgJ3NwYWNlJywgJ3NxdWFyZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENhcmRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2JvcmRlcicsICdjbGlja2FibGUnLCAnY29sb3InLCAnZmxhdCcsICdmdWxsaGVpZ2h0JywgJ2ludmVydGVkJywgJ3NlbGVjdGVkJywgJ3NwYWNlJywgJ3NxdWFyZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbENhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDYXJkQWN0aW9ucyBleHRlbmRzIENvbXBvbmVudHMuQmFsQ2FyZEFjdGlvbnMge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwb3NpdGlvbiddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENhcmRBY3Rpb25zXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWNhcmQtYWN0aW9ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ3Bvc2l0aW9uJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQ2FyZEFjdGlvbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDYXJkQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxDYXJkQnV0dG9uIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZWxlbWVudFR5cGUnLCAnaHJlZicsICdpY29uJywgJ2ljb25SaWdodCcsICdsb2FkaW5nJywgJ3RhcmdldCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENhcmRCdXR0b25cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtY2FyZC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdlbGVtZW50VHlwZScsICdocmVmJywgJ2ljb24nLCAnaWNvblJpZ2h0JywgJ2xvYWRpbmcnLCAndGFyZ2V0J11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQ2FyZEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbENhcmRDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxDYXJkQ29udGVudCB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxDYXJkQ29udGVudFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1jYXJkLWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsQ2FyZENvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDYXJkU3VidGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLkJhbENhcmRTdWJ0aXRsZSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JvbGQnLCAnY29sb3InLCAnaW52ZXJ0ZWQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxDYXJkU3VidGl0bGVcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtY2FyZC1zdWJ0aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2JvbGQnLCAnY29sb3InLCAnaW52ZXJ0ZWQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxDYXJkU3VidGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDYXJkVGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLkJhbENhcmRUaXRsZSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ludmVydGVkJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQ2FyZFRpdGxlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWNhcmQtdGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydpbnZlcnRlZCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbENhcmRUaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbENhcm91c2VsIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxDYXJvdXNlbCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FzcGVjdFJhdGlvJywgJ2JvcmRlcicsICdjb250cm9scycsICdjb250cm9sc092ZXJmbG93JywgJ2NvbnRyb2xzU3RpY2t5JywgJ2Z1bGxIZWlnaHQnLCAnaHRtbFJvbGUnLCAnaW50ZXJmYWNlJywgJ2ludmVydGVkJywgJ2l0ZW1zUGVyVmlldycsICdzY3JvbGxZJywgJ3NwYWNlJywgJ3N0ZXBzJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsncHJldmlvdXMnLCAnbmV4dCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENhcm91c2VsXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWNhcm91c2VsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYXNwZWN0UmF0aW8nLCAnYm9yZGVyJywgJ2NvbnRyb2xzJywgJ2NvbnRyb2xzT3ZlcmZsb3cnLCAnY29udHJvbHNTdGlja3knLCAnZnVsbEhlaWdodCcsICdodG1sUm9sZScsICdpbnRlcmZhY2UnLCAnaW52ZXJ0ZWQnLCAnaXRlbXNQZXJWaWV3JywgJ3Njcm9sbFknLCAnc3BhY2UnLCAnc3RlcHMnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxDaGFuZ2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxDYXJvdXNlbCB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBvcHRpb24gZ290IHNlbGVjdGVkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbENhcm91c2VsQ3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDYXJvdXNlbEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkJhbENhcm91c2VsSXRlbSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rvd25sb2FkJywgJ2VsZW1lbnRUeXBlJywgJ2hyZWYnLCAnaHRtbFJvbGUnLCAnbGFiZWwnLCAnbmFtZScsICdyZWwnLCAnc3JjJywgJ3N2ZycsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cyddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENhcm91c2VsSXRlbVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1jYXJvdXNlbC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29sb3InLCAnZG93bmxvYWQnLCAnZWxlbWVudFR5cGUnLCAnaHJlZicsICdodG1sUm9sZScsICdsYWJlbCcsICduYW1lJywgJ3JlbCcsICdzcmMnLCAnc3ZnJywgJ3RhcmdldCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbE5hdmlnYXRlJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxDYXJvdXNlbEl0ZW0ge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBsaW5rIGVsZW1lbnQgaGFzIGNsaWNrZWQuICovXG4gIGJhbE5hdmlnYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxDYXJvdXNlbEl0ZW1DdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxDYXJvdXNlbEl0ZW1DdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQ2Fyb3VzZWxJdGVtQ3VzdG9tRXZlbnQ8dm9pZD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxOYXZpZ2F0ZScsICdiYWxGb2N1cycsICdiYWxCbHVyJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbENoZWNrIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxDaGVjayB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdpbnZlcnRlZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENoZWNrXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWNoZWNrJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ2ludmVydGVkJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQ2hlY2sge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDaGVja2JveCBleHRlbmRzIENvbXBvbmVudHMuQmFsQ2hlY2tib3gge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdjaGVja2VkJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2ZsYXQnLCAnaW50ZXJmYWNlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbmFtZScsICdub25TdWJtaXQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdnZXRJbnB1dEVsZW1lbnQnLCAnZ2V0T3B0aW9uJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQ2hlY2tib3hcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdjaGVja2VkJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2ZsYXQnLCAnaW50ZXJmYWNlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbmFtZScsICdub25TdWJtaXQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxGb2N1cycsICdiYWxCbHVyJywgJ2JhbENoYW5nZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbENoZWNrYm94IHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdG9nZ2xlIGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbENoZWNrYm94Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0b2dnbGUgbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbENoZWNrYm94Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSBwcm9wZXJ0eSBoYXMgY2hhbmdlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxDaGVja2JveEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsRm9jdXMnLCAnYmFsQmx1cicsICdiYWxDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQ2hlY2tib3hHcm91cCBleHRlbmRzIENvbXBvbmVudHMuQmFsQ2hlY2tib3hHcm91cCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2NvbHVtbnMnLCAnY29sdW1uc01vYmlsZScsICdjb2x1bW5zVGFibGV0JywgJ2NvbnRyb2wnLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnaW50ZXJmYWNlJywgJ2ludmFsaWQnLCAnbmFtZScsICdvcHRpb25zJywgJ3JlYWRvbmx5JywgJ3ZhbHVlJywgJ3ZlcnRpY2FsJywgJ3ZlcnRpY2FsT25Nb2JpbGUnXSxcbiAgbWV0aG9kczogWydnZXRPcHRpb25CeVZhbHVlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQ2hlY2tib3hHcm91cFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1jaGVja2JveC1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2NvbHVtbnMnLCAnY29sdW1uc01vYmlsZScsICdjb2x1bW5zVGFibGV0JywgJ2NvbnRyb2wnLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnaW50ZXJmYWNlJywgJ2ludmFsaWQnLCAnbmFtZScsICdvcHRpb25zJywgJ3JlYWRvbmx5JywgJ3ZhbHVlJywgJ3ZlcnRpY2FsJywgJ3ZlcnRpY2FsT25Nb2JpbGUnXSxcbiAgb3V0cHV0czogWydiYWxDaGFuZ2UnLCAnYmFsRm9jdXMnLCAnYmFsQmx1ciddXG59KVxuZXhwb3J0IGNsYXNzIEJhbENoZWNrYm94R3JvdXAge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBjaGVja2VkIHByb3BlcnR5IGhhcyBjaGFuZ2VkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbENoZWNrYm94R3JvdXBDdXN0b21FdmVudDxhbnlbXT4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0b2dnbGUgaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQ2hlY2tib3hHcm91cEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdG9nZ2xlIGxvc2VzIGZvY3VzLiAqL1xuICBiYWxCbHVyITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxDaGVja2JveEdyb3VwQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnLCAnYmFsRm9jdXMnLCAnYmFsQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDbG9zZSBleHRlbmRzIENvbXBvbmVudHMuQmFsQ2xvc2Uge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbnZlcnRlZCcsICdzaXplJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQ2xvc2Vcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtY2xvc2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydpbnZlcnRlZCcsICdzaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQ2xvc2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxDb250ZW50IHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxpZ24nLCAnbGF5b3V0JywgJ3NwYWNlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQ29udGVudFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1jb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWxpZ24nLCAnbGF5b3V0JywgJ3NwYWNlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbERhdGEgZXh0ZW5kcyBDb21wb25lbnRzLkJhbERhdGEge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib3JkZXInLCAnaG9yaXpvbnRhbCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbERhdGFcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZGF0YScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2JvcmRlcicsICdob3Jpem9udGFsJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsRGF0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbERhdGFJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxEYXRhSXRlbSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JvcmRlcicsICdkaXNhYmxlZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbERhdGFJdGVtXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWRhdGEtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2JvcmRlcicsICdkaXNhYmxlZCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbERhdGFJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRGF0YUxhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxEYXRhTGFiZWwge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydyZXF1aXJlZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbERhdGFMYWJlbFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1kYXRhLWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsncmVxdWlyZWQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxEYXRhTGFiZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxEYXRhVmFsdWUgZXh0ZW5kcyBDb21wb25lbnRzLkJhbERhdGFWYWx1ZSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2VkaXRhYmxlJywgJ211bHRpbGluZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbERhdGFWYWx1ZVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1kYXRhLXZhbHVlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZWRpdGFibGUnLCAnbXVsdGlsaW5lJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2xpY2snLCAnYmFsRm9jdXMnLCAnYmFsQmx1ciddXG59KVxuZXhwb3J0IGNsYXNzIEJhbERhdGFWYWx1ZSB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGVkaXQgYnV0dG9uIGhhcyBmb2N1cy4gKi9cbiAgYmFsQ2xpY2shOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERhdGFWYWx1ZUN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZWRpdCBidXR0b24gaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRGF0YVZhbHVlQ3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBlZGl0IGJ1dHRvbiBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRGF0YVZhbHVlQ3VzdG9tRXZlbnQ8dm9pZD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDbGljaycsICdiYWxGb2N1cycsICdiYWxCbHVyJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbERhdGUgZXh0ZW5kcyBDb21wb25lbnRzLkJhbERhdGUge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvd0ludmFsaWRWYWx1ZScsICdhbGxvd2VkRGF0ZXMnLCAnYXV0b0ludmFsaWRPZmYnLCAnYXV0b2NvbXBsZXRlJywgJ2Nsb3NlT25TZWxlY3QnLCAnZGVib3VuY2UnLCAnZGVmYXVsdERhdGUnLCAnZGlzYWJsZWQnLCAnZnJlZVNvbG8nLCAnaW52YWxpZCcsICdtYXgnLCAnbWF4WWVhclByb3AnLCAnbWluJywgJ21pblllYXJQcm9wJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndHJpZ2dlckljb24nLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydvcGVuJywgJ2Nsb3NlJywgJ3RvZ2dsZScsICdzZWxlY3QnLCAnc2V0Rm9jdXMnLCAnZ2V0SW5wdXRFbGVtZW50J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsRGF0ZVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1kYXRlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWxsb3dJbnZhbGlkVmFsdWUnLCAnYWxsb3dlZERhdGVzJywgJ2F1dG9JbnZhbGlkT2ZmJywgJ2F1dG9jb21wbGV0ZScsICdjbG9zZU9uU2VsZWN0JywgJ2RlYm91bmNlJywgJ2RlZmF1bHREYXRlJywgJ2Rpc2FibGVkJywgJ2ZyZWVTb2xvJywgJ2ludmFsaWQnLCAnbWF4JywgJ21heFllYXJQcm9wJywgJ21pbicsICdtaW5ZZWFyUHJvcCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3RyaWdnZXJJY29uJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsSW5wdXQnLCAnYmFsQ2hhbmdlJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnLCAnYmFsQmx1cicsICdiYWxGb2N1cycsICdiYWxJbnB1dENsaWNrJywgJ2JhbEljb25DbGljayddXG59KVxuZXhwb3J0IGNsYXNzIEJhbERhdGUge1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbElucHV0ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxEYXRlQ3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBvcHRpb24gZ290IHNlbGVjdGVkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERhdGVDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRzICovXG4gIGJhbFdpbGxBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxEYXRlQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKiogRW1pdHRlZCBhZnRlciB0aGUgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCAqL1xuICBiYWxEaWRBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxEYXRlQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRGF0ZUN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRGF0ZUN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGNsaWNrZWQuICovXG4gIGJhbElucHV0Q2xpY2shOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERhdGVDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGljb24gaGFzIGNsaWNrZWQuICovXG4gIGJhbEljb25DbGljayE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRGF0ZUN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsSW5wdXQnLCAnYmFsQ2hhbmdlJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnLCAnYmFsQmx1cicsICdiYWxGb2N1cycsICdiYWxJbnB1dENsaWNrJywgJ2JhbEljb25DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxEYXRlQ2FsZW5kYXIgZXh0ZW5kcyBDb21wb25lbnRzLkJhbERhdGVDYWxlbmRhciB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93ZWREYXRlcycsICdkZWZhdWx0RGF0ZScsICdtYXgnLCAnbWF4WWVhclByb3AnLCAnbWluJywgJ21pblllYXJQcm9wJywgJ3ZhbHVlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsRGF0ZUNhbGVuZGFyXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWRhdGUtY2FsZW5kYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhbGxvd2VkRGF0ZXMnLCAnZGVmYXVsdERhdGUnLCAnbWF4JywgJ21heFllYXJQcm9wJywgJ21pbicsICdtaW5ZZWFyUHJvcCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbENoYW5nZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbERhdGVDYWxlbmRhciB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBvcHRpb24gZ290IHNlbGVjdGVkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERhdGVDYWxlbmRhckN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRGF0ZUNhbGVuZGFyQ2VsbCBleHRlbmRzIENvbXBvbmVudHMuQmFsRGF0ZUNhbGVuZGFyQ2VsbCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RheScsICdkaXNhYmxlZCcsICdmdWxsRGF0ZScsICdpc29EYXRlJywgJ21vbnRoJywgJ3NlbGVjdGVkJywgJ3RvZGF5JywgJ3llYXInXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxEYXRlQ2FsZW5kYXJDZWxsXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWRhdGUtY2FsZW5kYXItY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2RheScsICdkaXNhYmxlZCcsICdmdWxsRGF0ZScsICdpc29EYXRlJywgJ21vbnRoJywgJ3NlbGVjdGVkJywgJ3RvZGF5JywgJ3llYXInXSxcbiAgb3V0cHV0czogWydiYWxTZWxlY3REYXknXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxEYXRlQ2FsZW5kYXJDZWxsIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIG9wdGlvbiBnb3Qgc2VsZWN0ZWQuICovXG4gIGJhbFNlbGVjdERheSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRGF0ZUNhbGVuZGFyQ2VsbEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxTZWxlY3REYXknXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRGl2aWRlciBleHRlbmRzIENvbXBvbmVudHMuQmFsRGl2aWRlciB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JvcmRlclN0eWxlJywgJ2NvbG9yJywgJ2xheW91dCcsICdzcGFjZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbERpdmlkZXJcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZGl2aWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2JvcmRlclN0eWxlJywgJ2NvbG9yJywgJ2xheW91dCcsICdzcGFjZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbERpdmlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuQmFsRHJvcGRvd24ge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvY29tcGxldGUnLCAnY2hpcHMnLCAnY2xlYXJhYmxlJywgJ2NvbnRlbnRIZWlnaHQnLCAnZGlzYWJsZWQnLCAnZmlsdGVyJywgJ2ljb24nLCAnaW5saW5lTGFiZWwnLCAnaW52YWxpZCcsICdsb2FkaW5nJywgJ211bHRpcGxlJywgJ25hbWUnLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3RoZW1lJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZ2V0VmFsdWUnLCAnY2xlYXInLCAnb3BlbicsICdjbG9zZScsICdzZWxlY3QnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxEcm9wZG93blxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2F1dG9jb21wbGV0ZScsICdjaGlwcycsICdjbGVhcmFibGUnLCAnY29udGVudEhlaWdodCcsICdkaXNhYmxlZCcsICdmaWx0ZXInLCAnaWNvbicsICdpbmxpbmVMYWJlbCcsICdpbnZhbGlkJywgJ2xvYWRpbmcnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdvcHRpb25zJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndGhlbWUnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxDaGFuZ2UnLCAnYmFsRm9jdXMnLCAnYmFsQmx1ciddXG59KVxuZXhwb3J0IGNsYXNzIEJhbERyb3Bkb3duIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIG9wdGlvbiBnb3Qgc2VsZWN0ZWQuICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRHJvcGRvd25DdXN0b21FdmVudDxzdHJpbmcgfCBzdHJpbmdbXT4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxEcm9wZG93bkN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERyb3Bkb3duQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnLCAnYmFsRm9jdXMnLCAnYmFsQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxGaWVsZCBleHRlbmRzIENvbXBvbmVudHMuQmFsRmllbGQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdob3Jpem9udGFsJywgJ2ludmFsaWQnLCAnbG9hZGluZycsICdyZWFkb25seScsICdyZXF1aXJlZCcsICd2YWxpZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEZpZWxkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaG9yaXpvbnRhbCcsICdpbnZhbGlkJywgJ2xvYWRpbmcnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsaWQnXSxcbiAgb3V0cHV0czogWydiYWxGb3JtQ29udHJvbERpZExvYWQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxGaWVsZCB7XG4gIC8qKiBFbWl0dGVkIGFmdGVyIHJlbmRlciB3aGVuIGVsZW1lbnQgaXMgbGFiZWxsZWQgKi9cbiAgYmFsRm9ybUNvbnRyb2xEaWRMb2FkITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxGaWVsZEN1c3RvbUV2ZW50PEhUTUxFbGVtZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbEZvcm1Db250cm9sRGlkTG9hZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxGaWVsZENvbnRyb2wgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEZpZWxkQ29udHJvbCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2V4cGFuZGVkT25Nb2JpbGUnLCAnaWNvbkxlZnQnLCAnaWNvblJpZ2h0JywgJ2xvYWRpbmcnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxGaWVsZENvbnRyb2xcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZmllbGQtY29udHJvbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2V4cGFuZGVkT25Nb2JpbGUnLCAnaWNvbkxlZnQnLCAnaWNvblJpZ2h0JywgJ2xvYWRpbmcnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxGaWVsZENvbnRyb2wge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxGaWVsZEhpbnQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEZpZWxkSGludCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NlTGFiZWwnLCAnaGlkZVRpdGxlT25EZXNrdG9wJywgJ3NtYWxsJywgJ3N1YmplY3QnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxGaWVsZEhpbnRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZmllbGQtaGludCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2Nsb3NlTGFiZWwnLCAnaGlkZVRpdGxlT25EZXNrdG9wJywgJ3NtYWxsJywgJ3N1YmplY3QnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxGaWVsZEhpbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxGaWVsZExhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxGaWVsZExhYmVsIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaHRtbEZvcicsICdpbnZhbGlkJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsaWQnLCAnd2VpZ2h0J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsRmllbGRMYWJlbFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1maWVsZC1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2h0bWxGb3InLCAnaW52YWxpZCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbGlkJywgJ3dlaWdodCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEZpZWxkTGFiZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxGaWVsZE1lc3NhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEZpZWxkTWVzc2FnZSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbm9SZXNlcnZlZFNwYWNlJywgJ3JlYWRvbmx5JywgJ3ZhbGlkJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsRmllbGRNZXNzYWdlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWZpZWxkLW1lc3NhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjb2xvcicsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ25vUmVzZXJ2ZWRTcGFjZScsICdyZWFkb25seScsICd2YWxpZCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEZpZWxkTWVzc2FnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbEZpbGVVcGxvYWQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEZpbGVVcGxvYWQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2NlcHQnLCAnYXV0b0ludmFsaWRPZmYnLCAnZGlzYWJsZWQnLCAnaGFzRmlsZUxpc3QnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ21heEJ1bmRsZVNpemUnLCAnbWF4RmlsZVNpemUnLCAnbWF4RmlsZXMnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdWJUaXRsZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2NsZWFyJywgJ3NldEZvY3VzJywgJ2dldElucHV0RWxlbWVudCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEZpbGVVcGxvYWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZmlsZS11cGxvYWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY2NlcHQnLCAnYXV0b0ludmFsaWRPZmYnLCAnZGlzYWJsZWQnLCAnaGFzRmlsZUxpc3QnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ21heEJ1bmRsZVNpemUnLCAnbWF4RmlsZVNpemUnLCAnbWF4RmlsZXMnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdWJUaXRsZScsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbENoYW5nZScsICdiYWxGaWxlc0FkZGVkJywgJ2JhbEZpbGVzUmVtb3ZlZCcsICdiYWxSZWplY3RlZEZpbGUnLCAnYmFsSW5wdXRDbGljaycsICdiYWxCbHVyJywgJ2JhbEZvY3VzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsRmlsZVVwbG9hZCB7XG4gIC8qKiBUcmlnZ2VycyB3aGVuIGEgZmlsZSBpcyBhZGRlZCBvciByZW1vdmVkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbEZpbGVVcGxvYWRDdXN0b21FdmVudDxGaWxlW10+PjtcbiAgLyoqIFRyaWdnZXJzIHdoZW4gYSBmaWxlIGlzIGFkZGVkLiAqL1xuICBiYWxGaWxlc0FkZGVkITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxGaWxlVXBsb2FkQ3VzdG9tRXZlbnQ8RmlsZVtdPj47XG4gIC8qKiBUcmlnZ2VycyB3aGVuIGEgZmlsZSBpcyByZW1vdmVkLiAqL1xuICBiYWxGaWxlc1JlbW92ZWQhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbEZpbGVVcGxvYWRDdXN0b21FdmVudDxGaWxlW10+PjtcbiAgLyoqIFRyaWdnZXJzIHdoZW4gYSBmaWxlIGlzIHJlamVjdGVkIGR1ZSB0byBub3QgYWxsb3dlZCBNSU1FLVR5cGUgYW5kIHNvIG9uLiAqL1xuICBiYWxSZWplY3RlZEZpbGUhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbEZpbGVVcGxvYWRDdXN0b21FdmVudDxGaWxlVXBsb2FkUmVqZWN0ZWRGaWxlPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBjbGlja2VkLiAqL1xuICBiYWxJbnB1dENsaWNrITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxGaWxlVXBsb2FkQ3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRmlsZVVwbG9hZEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRmlsZVVwbG9hZEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJywgJ2JhbEZpbGVzQWRkZWQnLCAnYmFsRmlsZXNSZW1vdmVkJywgJ2JhbFJlamVjdGVkRmlsZScsICdiYWxJbnB1dENsaWNrJywgJ2JhbEJsdXInLCAnYmFsRm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxGb290ZXIge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlTGFuZ3VhZ2VTZWxlY3Rpb24nLCAnaGlkZUxpbmtzJywgJ292ZXJyaWRlTGlua3MnLCAnc2hvd1NvY2lhbE1lZGlhJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsRm9vdGVyXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2hpZGVMYW5ndWFnZVNlbGVjdGlvbicsICdoaWRlTGlua3MnLCAnb3ZlcnJpZGVMaW5rcycsICdzaG93U29jaWFsTWVkaWEnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxGb3JtIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxGb3JtIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZm9ybUNsYXNzJywgJ25hdGl2ZScsICdub3ZhbGlkYXRlJ10sXG4gIG1ldGhvZHM6IFsnc2Nyb2xsVG9GaXJzdEludmFsaWRGaWVsZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEZvcm1cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZm9ybScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2Zvcm1DbGFzcycsICduYXRpdmUnLCAnbm92YWxpZGF0ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEZvcm0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxGb3JtQ29sIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxGb3JtQ29sIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2l6ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEZvcm1Db2xcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZm9ybS1jb2wnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydzaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsRm9ybUNvbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbEZvcm1HcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxGb3JtR3JpZCB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxGb3JtR3JpZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1mb3JtLWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsRm9ybUdyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxIZWFkaW5nIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxIZWFkaW5nIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0xldmVsJywgJ2NvbG9yJywgJ2ludmVydGVkJywgJ2xldmVsJywgJ25vV3JhcCcsICdzaGFkb3cnLCAnc3BhY2UnLCAnc3VidGl0bGUnLCAndmlzdWFsTGV2ZWwnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxIZWFkaW5nXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWhlYWRpbmcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhdXRvTGV2ZWwnLCAnY29sb3InLCAnaW52ZXJ0ZWQnLCAnbGV2ZWwnLCAnbm9XcmFwJywgJ3NoYWRvdycsICdzcGFjZScsICdzdWJ0aXRsZScsICd2aXN1YWxMZXZlbCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEhlYWRpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxIaW50IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxIaW50IHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VMYWJlbCcsICdzbWFsbCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZScsICdwcmVzZW50JywgJ2Rpc21pc3MnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxIaW50XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWhpbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjbG9zZUxhYmVsJywgJ3NtYWxsJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsSGludCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbEhpbnRUZXh0IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxIaW50VGV4dCB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxIaW50VGV4dFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1oaW50LXRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsSGludFRleHQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxIaW50VGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEhpbnRUaXRsZSB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxIaW50VGl0bGVcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtaGludC10aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYWxIaW50VGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxJY29uIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY29sb3JIb3ZlcmVkJywgJ2NvbG9yUHJlc3NlZCcsICdkaXNhYmxlZCcsICdpbmxpbmUnLCAnaW52YWxpZCcsICdpbnZlcnRlZCcsICduYW1lJywgJ3NoYWRvdycsICdzaXplJywgJ3N2ZycsICd0aWxlJywgJ3RpbGVDb2xvcicsICd0dXJuJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsSWNvblxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29sb3InLCAnY29sb3JIb3ZlcmVkJywgJ2NvbG9yUHJlc3NlZCcsICdkaXNhYmxlZCcsICdpbmxpbmUnLCAnaW52YWxpZCcsICdpbnZlcnRlZCcsICduYW1lJywgJ3NoYWRvdycsICdzaXplJywgJ3N2ZycsICd0aWxlJywgJ3RpbGVDb2xvcicsICd0dXJuJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbElucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxJbnB1dCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2VwdCcsICdhbGxvd2VkS2V5UHJlc3MnLCAnYXV0b0ludmFsaWRPZmYnLCAnYXV0b2NhcGl0YWxpemUnLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9jb3JyZWN0JywgJ2F1dG9mb2N1cycsICdjbGlja2FibGUnLCAnZGVib3VuY2UnLCAnZGlzYWJsZWQnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbWFzaycsICdtYXgnLCAnbWF4TGVuZ3RoJywgJ21pbicsICdtaW5MZW5ndGgnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdwYXR0ZXJuJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NwZWxsY2hlY2snLCAnc3VmZml4JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZ2V0SW5wdXRFbGVtZW50J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsSW5wdXRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtaW5wdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY2NlcHQnLCAnYWxsb3dlZEtleVByZXNzJywgJ2F1dG9JbnZhbGlkT2ZmJywgJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvY29ycmVjdCcsICdhdXRvZm9jdXMnLCAnY2xpY2thYmxlJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ21hc2snLCAnbWF4JywgJ21heExlbmd0aCcsICdtaW4nLCAnbWluTGVuZ3RoJywgJ211bHRpcGxlJywgJ25hbWUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzcGVsbGNoZWNrJywgJ3N1ZmZpeCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbElucHV0JywgJ2JhbEJsdXInLCAnYmFsS2V5UHJlc3MnLCAnYmFsRm9jdXMnLCAnYmFsQ2hhbmdlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsSW5wdXQge1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbElucHV0ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQga2V5IGhhcyBwcmVzc2VkLiAqL1xuICBiYWxLZXlQcmVzcyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXRDdXN0b21FdmVudDxLZXlib2FyZEV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBoYXMgY2hhbmdlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxJbnB1dCcsICdiYWxCbHVyJywgJ2JhbEtleVByZXNzJywgJ2JhbEZvY3VzJywgJ2JhbENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxJbnB1dERhdGUgZXh0ZW5kcyBDb21wb25lbnRzLkJhbElucHV0RGF0ZSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93SW52YWxpZFZhbHVlJywgJ2F1dG9JbnZhbGlkT2ZmJywgJ2F1dG9jb21wbGV0ZScsICdjbGlja2FibGUnLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdnZXRJbnB1dEVsZW1lbnQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxJbnB1dERhdGVcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtaW5wdXQtZGF0ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2FsbG93SW52YWxpZFZhbHVlJywgJ2F1dG9JbnZhbGlkT2ZmJywgJ2F1dG9jb21wbGV0ZScsICdjbGlja2FibGUnLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxLZXlQcmVzcycsICdiYWxDaGFuZ2UnLCAnYmFsSW5wdXQnLCAnYmFsQmx1cicsICdiYWxGb2N1cyddXG59KVxuZXhwb3J0IGNsYXNzIEJhbElucHV0RGF0ZSB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBrZXlib2FyZCBrZXkgaGFzIHByZXNzZWQuICovXG4gIGJhbEtleVByZXNzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dERhdGVDdXN0b21FdmVudDxLZXlib2FyZEV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBvcHRpb24gZ290IHNlbGVjdGVkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0RGF0ZUN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbElucHV0ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dERhdGVDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0RGF0ZUN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXREYXRlQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxLZXlQcmVzcycsICdiYWxDaGFuZ2UnLCAnYmFsSW5wdXQnLCAnYmFsQmx1cicsICdiYWxGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxJbnB1dEdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxJbnB1dEdyb3VwIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdyZWFkb25seSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbElucHV0R3JvdXBcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtaW5wdXQtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpbnZhbGlkJywgJ3JlYWRvbmx5J11cbn0pXG5leHBvcnQgY2xhc3MgQmFsSW5wdXRHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbElucHV0U2xpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxJbnB1dFNsaWRlciB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2JhbFRhYmluZGV4JywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ2hhc1RpY2tzJywgJ2ludmFsaWQnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3N0ZXAnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdnZXRJbnB1dEVsZW1lbnQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxJbnB1dFNsaWRlclxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1pbnB1dC1zbGlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdiYWxUYWJpbmRleCcsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdoYXNUaWNrcycsICdpbnZhbGlkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsSW5wdXQnLCAnYmFsQmx1cicsICdiYWxLZXlQcmVzcycsICdiYWxGb2N1cycsICdiYWxDaGFuZ2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxJbnB1dFNsaWRlciB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBrZXlib2FyZCBpbnB1dCBvY2N1cnJlZC4gKi9cbiAgYmFsSW5wdXQhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0U2xpZGVyQ3VzdG9tRXZlbnQ8bnVtYmVyIHwgc3RyaW5nPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBrZXlib2FyZCBpbnB1dCBvY2N1cnJlZC4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXRTbGlkZXJDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBrZXlib2FyZCBrZXkgaGFzIHByZXNzZWQuICovXG4gIGJhbEtleVByZXNzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dFNsaWRlckN1c3RvbUV2ZW50PEtleWJvYXJkRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXRTbGlkZXJDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGhhcyBjaGFuZ2VkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0U2xpZGVyQ3VzdG9tRXZlbnQ8bnVtYmVyIHwgc3RyaW5nPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbElucHV0JywgJ2JhbEJsdXInLCAnYmFsS2V5UHJlc3MnLCAnYmFsRm9jdXMnLCAnYmFsQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbElucHV0U3RlcHBlciBleHRlbmRzIENvbXBvbmVudHMuQmFsSW5wdXRTdGVwcGVyIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0ludmFsaWRPZmYnLCAnZGVib3VuY2UnLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmVhZG9ubHknLCAnc3RlcHMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydnZXRJbnB1dEVsZW1lbnQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxJbnB1dFN0ZXBwZXJcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtaW5wdXQtc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3JlYWRvbmx5JywgJ3N0ZXBzJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJywgJ2JhbElucHV0JywgJ2JhbEluY3JlYXNlJywgJ2JhbERlY3JlYXNlJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxJbnB1dFN0ZXBwZXIge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBoYXMgY2hhbmdlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dFN0ZXBwZXJDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgaGFzIGNoYW5nZWQuICovXG4gIGJhbElucHV0ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dFN0ZXBwZXJDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgaGFzIGluY3JlYXNlZC4gKi9cbiAgYmFsSW5jcmVhc2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0U3RlcHBlckN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBoYXMgZGVjcmVhc2VkLiAqL1xuICBiYWxEZWNyZWFzZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXRTdGVwcGVyQ3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0U3RlcHBlckN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGlucHV0IG9jY3VycmVkLiAqL1xuICBiYWxCbHVyITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dFN0ZXBwZXJDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENoYW5nZScsICdiYWxJbnB1dCcsICdiYWxJbmNyZWFzZScsICdiYWxEZWNyZWFzZScsICdiYWxGb2N1cycsICdiYWxCbHVyJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbExhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxMYWJlbCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2h0bWxGb3InLCAnaHRtbElkJywgJ2ludmFsaWQnLCAnbXVsdGlsaW5lJywgJ25vV3JhcCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbGlkJywgJ3dlaWdodCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbExhYmVsXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaHRtbEZvcicsICdodG1sSWQnLCAnaW52YWxpZCcsICdtdWx0aWxpbmUnLCAnbm9XcmFwJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsaWQnLCAnd2VpZ2h0J11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTGFiZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxMaXN0IHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjb3JkaW9uT25lTGV2ZWwnLCAnYmFja2dyb3VuZCcsICdib3JkZXInLCAnZGlzYWJsZWQnLCAnc2l6ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbExpc3Rcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2FjY29yZGlvbk9uZUxldmVsJywgJ2JhY2tncm91bmQnLCAnYm9yZGVyJywgJ2Rpc2FibGVkJywgJ3NpemUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkJhbExpc3RJdGVtIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjb3JkaW9uJywgJ2NsaWNrYWJsZScsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ3JlbCcsICdzZWxlY3RlZCcsICdzdWJBY2NvcmRpb25JdGVtJywgJ3RhcmdldCddLFxuICBtZXRob2RzOiBbJ3ByZXNlbnQnLCAnZGlzbWlzcycsICd0b2dnbGUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxMaXN0SXRlbVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY2NvcmRpb24nLCAnY2xpY2thYmxlJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2hyZWYnLCAncmVsJywgJ3NlbGVjdGVkJywgJ3N1YkFjY29yZGlvbkl0ZW0nLCAndGFyZ2V0J10sXG4gIG91dHB1dHM6IFsnYmFsTmF2aWdhdGUnLCAnYmFsR3JvdXBTdGF0ZUNoYW5nZWQnLCAnYmFsV2lsbEFuaW1hdGUnLCAnYmFsRGlkQW5pbWF0ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbExpc3RJdGVtIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbGluayBlbGVtZW50IGhhcyBjbGlja2VkICovXG4gIGJhbE5hdmlnYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxMaXN0SXRlbUN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgc3RhdGUgb2YgdGhlIGdyb3VwIGlzIGNoYW5naW5nICovXG4gIGJhbEdyb3VwU3RhdGVDaGFuZ2VkITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxMaXN0SXRlbUN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRzICovXG4gIGJhbFdpbGxBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxMaXN0SXRlbUN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQgKi9cbiAgYmFsRGlkQW5pbWF0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTGlzdEl0ZW1DdXN0b21FdmVudDxib29sZWFuPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbE5hdmlnYXRlJywgJ2JhbEdyb3VwU3RhdGVDaGFuZ2VkJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTGlzdEl0ZW1BY2NvcmRpb25Cb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxMaXN0SXRlbUFjY29yZGlvbkJvZHkge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2NvcmRpb25Hcm91cCcsICdjb250ZW50QWxpZ25tZW50JywgJ2NvbnRlbnRTcGFjZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbExpc3RJdGVtQWNjb3JkaW9uQm9keVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1saXN0LWl0ZW0tYWNjb3JkaW9uLWJvZHknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY2NvcmRpb25Hcm91cCcsICdjb250ZW50QWxpZ25tZW50JywgJ2NvbnRlbnRTcGFjZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbExpc3RJdGVtQWNjb3JkaW9uQm9keSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbExpc3RJdGVtQWNjb3JkaW9uSGVhZCBleHRlbmRzIENvbXBvbmVudHMuQmFsTGlzdEl0ZW1BY2NvcmRpb25IZWFkIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjb3JkaW9uT3BlbicsICdpY29uJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTGlzdEl0ZW1BY2NvcmRpb25IZWFkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWxpc3QtaXRlbS1hY2NvcmRpb24taGVhZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2FjY29yZGlvbk9wZW4nLCAnaWNvbiddLFxuICBvdXRwdXRzOiBbJ2JhbEFjY29yZGlvbkNoYW5nZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbExpc3RJdGVtQWNjb3JkaW9uSGVhZCB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGFjY29yZGlvbiBzdGF0ZSBpcyBjaGFuZ2VkICovXG4gIGJhbEFjY29yZGlvbkNoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTGlzdEl0ZW1BY2NvcmRpb25IZWFkQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxBY2NvcmRpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTGlzdEl0ZW1Db250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxMaXN0SXRlbUNvbnRlbnQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250ZW50QWxpZ25tZW50J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTGlzdEl0ZW1Db250ZW50XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWxpc3QtaXRlbS1jb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29udGVudEFsaWdubWVudCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbExpc3RJdGVtQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbExpc3RJdGVtSWNvbiBleHRlbmRzIENvbXBvbmVudHMuQmFsTGlzdEl0ZW1JY29uIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncmlnaHQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxMaXN0SXRlbUljb25cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbGlzdC1pdGVtLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydyaWdodCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbExpc3RJdGVtSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbExpc3RJdGVtU3VidGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLkJhbExpc3RJdGVtU3VidGl0bGUge31cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTGlzdEl0ZW1TdWJ0aXRsZVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1saXN0LWl0ZW0tc3VidGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsTGlzdEl0ZW1TdWJ0aXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbExpc3RJdGVtVGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLkJhbExpc3RJdGVtVGl0bGUge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsZXZlbCcsICd2aXN1YWxMZXZlbCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbExpc3RJdGVtVGl0bGVcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbGlzdC1pdGVtLXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnbGV2ZWwnLCAndmlzdWFsTGV2ZWwnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxMaXN0SXRlbVRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTG9nbyBleHRlbmRzIENvbXBvbmVudHMuQmFsTG9nbyB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJywgJ2NvbG9yJywgJ3NpemUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxMb2dvXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWxvZ28nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhbmltYXRlZCcsICdjb2xvcicsICdzaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTG9nbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE1vZGFsIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxNb2RhbCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JhY2tkcm9wRGlzbWlzcycsICdjb21wb25lbnQnLCAnY29tcG9uZW50UHJvcHMnLCAnY3NzQ2xhc3MnLCAnZm9jdXNUcmFwJywgJ2hhc0JhY2tkcm9wJywgJ2lzQ2xvc2FibGUnLCAnbW9kYWxXaWR0aCcsICdzcGFjZSddLFxuICBtZXRob2RzOiBbJ3ByZXNlbnQnLCAnZGlzbWlzcycsICdvbkRpZERpc21pc3MnLCAnb25XaWxsRGlzbWlzcyddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE1vZGFsXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW1vZGFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYmFja2Ryb3BEaXNtaXNzJywgJ2NvbXBvbmVudCcsICdjb21wb25lbnRQcm9wcycsICdjc3NDbGFzcycsICdmb2N1c1RyYXAnLCAnaGFzQmFja2Ryb3AnLCAnaXNDbG9zYWJsZScsICdtb2RhbFdpZHRoJywgJ3NwYWNlJ10sXG4gIG91dHB1dHM6IFsnYmFsTW9kYWxEaWRQcmVzZW50JywgJ2JhbE1vZGFsV2lsbFByZXNlbnQnLCAnYmFsTW9kYWxXaWxsRGlzbWlzcycsICdiYWxNb2RhbERpZERpc21pc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxNb2RhbCB7XG4gIC8qKiBFbWl0dGVkIGFmdGVyIHRoZSBtb2RhbCBoYXMgcHJlc2VudGVkLiAqL1xuICBiYWxNb2RhbERpZFByZXNlbnQhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE1vZGFsQ3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKiogRW1pdHRlZCBiZWZvcmUgdGhlIG1vZGFsIGhhcyBwcmVzZW50ZWQuICovXG4gIGJhbE1vZGFsV2lsbFByZXNlbnQhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE1vZGFsQ3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKiogRW1pdHRlZCBiZWZvcmUgdGhlIG1vZGFsIGhhcyBkaXNtaXNzZWQuICovXG4gIGJhbE1vZGFsV2lsbERpc21pc3MhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE1vZGFsQ3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKiBFbWl0dGVkIGFmdGVyIHRoZSBtb2RhbCBoYXMgZGlzbWlzc2VkLiAqL1xuICBiYWxNb2RhbERpZERpc21pc3MhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE1vZGFsQ3VzdG9tRXZlbnQ8YW55Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbE1vZGFsRGlkUHJlc2VudCcsICdiYWxNb2RhbFdpbGxQcmVzZW50JywgJ2JhbE1vZGFsV2lsbERpc21pc3MnLCAnYmFsTW9kYWxEaWREaXNtaXNzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE1vZGFsQm9keSBleHRlbmRzIENvbXBvbmVudHMuQmFsTW9kYWxCb2R5IHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE1vZGFsQm9keVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1tb2RhbC1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbE1vZGFsQm9keSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE1vZGFsSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxNb2RhbEhlYWRlciB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxNb2RhbEhlYWRlclxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1tb2RhbC1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsTW9kYWxIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXYgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE5hdiB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2J1dHRvbnMnLCAnbG9nbycsICdvcHRpb25zJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTmF2XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW5hdicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2J1dHRvbnMnLCAnbG9nbycsICdvcHRpb25zJ10sXG4gIG91dHB1dHM6IFsnYmFsTmF2SXRlbUNsaWNrJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2IHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIG5hdiBsaW5rIGl0ZW0gaXMgY2xpY2tlZC4gVGhpcyBldmVudCBjYW4gYmUgdXNlZCB0b1xuYWRkIGRhdGEgdHJhY2tpbmcgKi9cbiAgYmFsTmF2SXRlbUNsaWNrITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxOYXZDdXN0b21FdmVudDxCYWxFdmVudHMuQmFsTmF2SXRlbUNsaWNrRGV0YWlsPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbE5hdkl0ZW1DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXZMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxOYXZMaW5rIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xpY2thYmxlJywgJ2hyZWYnLCAncmVsJywgJ3NlbGVjdGVkJywgJ3RhcmdldCcsICd2YXJpYW50J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTmF2TGlua1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1uYXYtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdocmVmJywgJ3JlbCcsICdzZWxlY3RlZCcsICd0YXJnZXQnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbE5hdkxpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXZMaW5rR3JpZCBleHRlbmRzIENvbXBvbmVudHMuQmFsTmF2TGlua0dyaWQge31cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTmF2TGlua0dyaWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbmF2LWxpbmstZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYWxOYXZMaW5rR3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE5hdkxpbmtHcmlkQ29sIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxOYXZMaW5rR3JpZENvbCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3N0YXRpY0NvbCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdkxpbmtHcmlkQ29sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW5hdi1saW5rLWdyaWQtY29sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnc3RhdGljQ29sJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2TGlua0dyaWRDb2wge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXZMaW5rR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE5hdkxpbmtHcm91cCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTmF2TGlua0dyb3VwXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW5hdi1saW5rLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29sb3InXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxOYXZMaW5rR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXZNZW51QmFyIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxOYXZNZW51QmFyIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW52aXNpYmxlJywgJ3Bvc2l0aW9uJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTmF2TWVudUJhclxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1uYXYtbWVudS1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydpbnZpc2libGUnLCAncG9zaXRpb24nXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxOYXZNZW51QmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTmF2TWVudUZseW91dCBleHRlbmRzIENvbXBvbmVudHMuQmFsTmF2TWVudUZseW91dCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ25hdklkJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTmF2TWVudUZseW91dFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1uYXYtbWVudS1mbHlvdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWyduYXZJZCddLFxuICBvdXRwdXRzOiBbJ2JhbEZvY3VzT3V0J11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2TWVudUZseW91dCB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZseW91dCBsb3NlcyBmb2N1cyAqL1xuICBiYWxGb2N1c091dCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTmF2TWVudUZseW91dEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsRm9jdXNPdXQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTmF2TWV0YUJhciBleHRlbmRzIENvbXBvbmVudHMuQmFsTmF2TWV0YUJhciB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ludmlzaWJsZScsICdwb3NpdGlvbicsICdzaXplJywgJ3N0YXlPblRvcE9mQmFja2Ryb3AnLCAndmFyaWFudCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdk1ldGFCYXJcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbmF2LW1ldGEtYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnaW52aXNpYmxlJywgJ3Bvc2l0aW9uJywgJ3NpemUnLCAnc3RheU9uVG9wT2ZCYWNrZHJvcCcsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2TWV0YUJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE5hdmJhciBleHRlbmRzIENvbXBvbmVudHMuQmFsTmF2YmFyIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2ludGVyZmFjZScsICdsaWdodCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdmJhclxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1uYXZiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjb250YWluZXInLCAnaW50ZXJmYWNlJywgJ2xpZ2h0J11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2YmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTmF2YmFyQnJhbmQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE5hdmJhckJyYW5kIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnaHJlZicsICdsb2dvJywgJ2xvZ29DbGlja2FibGUnLCAnbG9nb0xhYmVsJywgJ2xvZ29TaXplJywgJ3JlbCcsICdzaW1wbGUnLCAndGFyZ2V0J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTmF2YmFyQnJhbmRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbmF2YmFyLWJyYW5kJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnaHJlZicsICdsb2dvJywgJ2xvZ29DbGlja2FibGUnLCAnbG9nb0xhYmVsJywgJ2xvZ29TaXplJywgJ3JlbCcsICdzaW1wbGUnLCAndGFyZ2V0J10sXG4gIG91dHB1dHM6IFsnYmFsTmF2aWdhdGUnLCAnYmFsV2lsbEFuaW1hdGUnLCAnYmFsRGlkQW5pbWF0ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbE5hdmJhckJyYW5kIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbGluayBlbGVtZW50IGhhcyBjbGlja2VkICovXG4gIGJhbE5hdmlnYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxOYXZiYXJCcmFuZEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRzICovXG4gIGJhbFdpbGxBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxOYXZiYXJCcmFuZEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQgKi9cbiAgYmFsRGlkQW5pbWF0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTmF2YmFyQnJhbmRDdXN0b21FdmVudDxib29sZWFuPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbE5hdmlnYXRlJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTmF2YmFyTWVudSBleHRlbmRzIENvbXBvbmVudHMuQmFsTmF2YmFyTWVudSB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxOYXZiYXJNZW51XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW5hdmJhci1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbE5hdmJhck1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXZiYXJNZW51RW5kIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxOYXZiYXJNZW51RW5kIHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdmJhck1lbnVFbmRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbmF2YmFyLW1lbnUtZW5kJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbE5hdmJhck1lbnVFbmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXZiYXJNZW51U3RhcnQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE5hdmJhck1lbnVTdGFydCB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxOYXZiYXJNZW51U3RhcnRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbmF2YmFyLW1lbnUtc3RhcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2YmFyTWVudVN0YXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTm90aWNlcyBleHRlbmRzIENvbXBvbmVudHMuQmFsTm90aWNlcyB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxOb3RpY2VzXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW5vdGljZXMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsTm90aWNlcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE5vdGlmaWNhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuQmFsTm90aWZpY2F0aW9uIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnbGlnaHQnLCAnbm9JY29uJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTm90aWZpY2F0aW9uXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW5vdGlmaWNhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2xpZ2h0JywgJ25vSWNvbiddXG59KVxuZXhwb3J0IGNsYXNzIEJhbE5vdGlmaWNhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE51bWJlcklucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxOdW1iZXJJbnB1dCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2RlYm91bmNlJywgJ2RlY2ltYWwnLCAnZGlzYWJsZWQnLCAnZXhhY3ROdW1iZXInLCAnaW52YWxpZCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb25seVBvc2l0aXZlJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3VmZml4JywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZ2V0SW5wdXRFbGVtZW50J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTnVtYmVySW5wdXRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbnVtYmVyLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYXV0b0ludmFsaWRPZmYnLCAnZGVib3VuY2UnLCAnZGVjaW1hbCcsICdkaXNhYmxlZCcsICdleGFjdE51bWJlcicsICdpbnZhbGlkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdvbmx5UG9zaXRpdmUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdWZmaXgnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxJbnB1dCcsICdiYWxDaGFuZ2UnLCAnYmFsQmx1cicsICdiYWxGb2N1cycsICdiYWxLZXlQcmVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJhbE51bWJlcklucHV0IHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGlucHV0IG9jY3VycmVkLiAqL1xuICBiYWxJbnB1dCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTnVtYmVySW5wdXRDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTnVtYmVySW5wdXRDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE51bWJlcklucHV0Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxOdW1iZXJJbnB1dEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGtleSBoYXMgcHJlc3NlZC4gKi9cbiAgYmFsS2V5UHJlc3MhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE51bWJlcklucHV0Q3VzdG9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxJbnB1dCcsICdiYWxDaGFuZ2UnLCAnYmFsQmx1cicsICdiYWxGb2N1cycsICdiYWxLZXlQcmVzcyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxPcHRpb24gZXh0ZW5kcyBDb21wb25lbnRzLkJhbE9wdGlvbiB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ZvY3VzZWQnLCAnaGlkZGVuJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbXVsdGlsaW5lJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsT3B0aW9uXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW9wdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ZvY3VzZWQnLCAnaGlkZGVuJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbXVsdGlsaW5lJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsT3B0aW9uQ2hhbmdlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsT3B0aW9uIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgb3B0aW9uIGdldHMgc2VsZWN0ZWQgb3IgdW5zZWxlY3RlZCAqL1xuICBiYWxPcHRpb25DaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE9wdGlvbkN1c3RvbUV2ZW50PEJhbEV2ZW50cy5CYWxPcHRpb25DaGFuZ2VEZXRhaWw+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsT3B0aW9uQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE9wdGlvbkxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE9wdGlvbkxpc3Qge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250ZW50SGVpZ2h0JywgJ2Rpc2FibGVkJywgJ2ZpbHRlcicsICdmb2N1c0luZGV4JywgJ2xhYmVsbGVkYnknLCAnbXVsdGlwbGUnLCAncmVxdWlyZWQnXSxcbiAgbWV0aG9kczogWydmb2N1c1NlbGVjdGVkJywgJ2ZvY3VzRmlyc3QnLCAnZm9jdXNMYXN0JywgJ2ZvY3VzTmV4dCcsICdmb2N1c1ByZXZpb3VzJywgJ2ZvY3VzQnlMYWJlbCcsICdmaWx0ZXJCeUNvbnRlbnQnLCAncmVzZXRIaWRkZW4nLCAncmVzZXRTZWxlY3RlZCcsICd1cGRhdGVTZWxlY3RlZCcsICdyZXNldEZvY3VzJywgJ2dldFNlbGVjdGVkVmFsdWVzJywgJ2dldFNlbGVjdGVkT3B0aW9ucycsICdnZXRWYWx1ZXMnLCAnZ2V0TGFiZWxzJywgJ2dldE9wdGlvbnMnLCAnc2VsZWN0QnlGb2N1cyddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE9wdGlvbkxpc3Rcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtb3B0aW9uLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjb250ZW50SGVpZ2h0JywgJ2Rpc2FibGVkJywgJ2ZpbHRlcicsICdmb2N1c0luZGV4JywgJ2xhYmVsbGVkYnknLCAnbXVsdGlwbGUnLCAncmVxdWlyZWQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxPcHRpb25MaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsUGFnaW5hdGlvbiBleHRlbmRzIENvbXBvbmVudHMuQmFsUGFnaW5hdGlvbiB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2Rpc2FibGVkJywgJ2ludGVyZmFjZScsICdwYWdlUmFuZ2UnLCAnc2l6ZScsICdzdGlja3knLCAndG9wJywgJ3RvdGFsUGFnZXMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyduZXh0JywgJ3ByZXZpb3VzJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsUGFnaW5hdGlvblxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1wYWdpbmF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWxpZ24nLCAnZGlzYWJsZWQnLCAnaW50ZXJmYWNlJywgJ3BhZ2VSYW5nZScsICdzaXplJywgJ3N0aWNreScsICd0b3AnLCAndG90YWxQYWdlcycsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbENoYW5nZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFBhZ2luYXRpb24ge1xuICAvKiogVHJpZ2dlcnMgd2hlbiBhIHBhZ2UgY2hhbmdlIGhhcHBlbnMgKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxQYWdpbmF0aW9uQ3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxQb3BvdmVyIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxQb3BvdmVyIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Fycm93JywgJ2F1dG9UcmlnZ2VyJywgJ2JhY2tkcm9wJywgJ2hpbnQnLCAnaG92ZXInLCAnbW9iaWxlVG9wJywgJ29mZnNldFgnLCAnb2Zmc2V0WScsICdwYWRkaW5nJywgJ3Bvc2l0aW9uJywgJ3Rvb2x0aXAnXSxcbiAgbWV0aG9kczogWydwcmVzZW50JywgJ2Rpc21pc3MnLCAndG9nZ2xlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsUG9wb3ZlclxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1wb3BvdmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Fycm93JywgJ2F1dG9UcmlnZ2VyJywgJ2JhY2tkcm9wJywgJ2hpbnQnLCAnaG92ZXInLCAnbW9iaWxlVG9wJywgJ29mZnNldFgnLCAnb2Zmc2V0WScsICdwYWRkaW5nJywgJ3Bvc2l0aW9uJywgJ3Rvb2x0aXAnXSxcbiAgb3V0cHV0czogWydiYWxDaGFuZ2UnLCAnYmFsV2lsbEFuaW1hdGUnLCAnYmFsRGlkQW5pbWF0ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFBvcG92ZXIge1xuICAvKiogTGlzdGVuIHdoZW4gdGhlIHBvcG92ZXIgb3BlbnMgb3IgY2xvc2VzLiBSZXR1cm5zIHRoZSBjdXJyZW50IHZhbHVlLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFBvcG92ZXJDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKiBFbWl0dGVkIGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0YXJ0cyAqL1xuICBiYWxXaWxsQW5pbWF0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsUG9wb3ZlckN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQgKi9cbiAgYmFsRGlkQW5pbWF0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsUG9wb3ZlckN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsUG9wb3ZlckNvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFBvcG92ZXJDb250ZW50IHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY29udGVudE1pbldpZHRoJywgJ2NvbnRlbnRXaWR0aCcsICdleHBhbmRlZCcsICdtb2JpbGVUb3AnLCAnbm9TaGFkb3cnLCAncmFkaXVzJywgJ3Njcm9sbGFibGUnLCAnc3BhY2VsZXNzJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsUG9wb3ZlckNvbnRlbnRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtcG9wb3Zlci1jb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29sb3InLCAnY29udGVudE1pbldpZHRoJywgJ2NvbnRlbnRXaWR0aCcsICdleHBhbmRlZCcsICdtb2JpbGVUb3AnLCAnbm9TaGFkb3cnLCAncmFkaXVzJywgJ3Njcm9sbGFibGUnLCAnc3BhY2VsZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsUG9wb3ZlckNvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxQb3B1cCBleHRlbmRzIENvbXBvbmVudHMuQmFsUG9wdXAge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnYXJyb3cnLCAnYmFja2Ryb3AnLCAnYmFja2Ryb3BEaXNtaXNzJywgJ2Nsb3NhYmxlJywgJ2NvbnRlbnRXaWR0aCcsICdsYWJlbCcsICdvZmZzZXQnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ3RvZ2dsZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFBvcHVwXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXBvcHVwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Fycm93JywgJ2JhY2tkcm9wJywgJ2JhY2tkcm9wRGlzbWlzcycsICdjbG9zYWJsZScsICdjb250ZW50V2lkdGgnLCAnbGFiZWwnLCAnb2Zmc2V0JywgJ3BsYWNlbWVudCcsICdyZWZlcmVuY2UnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ2JhbENoYW5nZScsICdiYWxXaWxsQW5pbWF0ZScsICdiYWxEaWRBbmltYXRlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsUG9wdXAge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBhY2NvcmRpb24gaGFzIG9wZW5lZCBvciBjbG9zZWQgKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxQb3B1cEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRzICovXG4gIGJhbFdpbGxBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxQb3B1cEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQgKi9cbiAgYmFsRGlkQW5pbWF0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsUG9wdXBDdXN0b21FdmVudDxib29sZWFuPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENoYW5nZScsICdiYWxXaWxsQW5pbWF0ZScsICdiYWxEaWRBbmltYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFByb2dyZXNzQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxQcm9ncmVzc0JhciB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnY29sb3InLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydjb25maWdDaGFuZ2VkJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsUHJvZ3Jlc3NCYXJcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtcHJvZ3Jlc3MtYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdjb2xvcicsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFByb2dyZXNzQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsUmFkaW8gZXh0ZW5kcyBDb21wb25lbnRzLkJhbFJhZGlvIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzYWJsZWQnLCAnZmxhdCcsICdpbnRlcmZhY2UnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICduYW1lJywgJ25vblN1Ym1pdCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ2dldElucHV0RWxlbWVudCcsICdnZXRPcHRpb24nXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxSYWRpb1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1yYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2ZsYXQnLCAnaW50ZXJmYWNlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbmFtZScsICdub25TdWJtaXQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxGb2N1cycsICdiYWxCbHVyJywgJ2JhbENoYW5nZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFJhZGlvIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdG9nZ2xlIGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFJhZGlvQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0b2dnbGUgbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFJhZGlvQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBjaGVja2VkIHByb3BlcnR5IGhhcyBjaGFuZ2VkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFJhZGlvQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxGb2N1cycsICdiYWxCbHVyJywgJ2JhbENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxSYWRpb0dyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxSYWRpb0dyb3VwIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxsb3dFbXB0eVNlbGVjdGlvbicsICdhdXRvSW52YWxpZE9mZicsICdjb2x1bW5zJywgJ2NvbHVtbnNNb2JpbGUnLCAnY29sdW1uc1RhYmxldCcsICdkaXNhYmxlZCcsICdleHBhbmRlZCcsICdpbnRlcmZhY2UnLCAnaW52YWxpZCcsICduYW1lJywgJ29wdGlvbnMnLCAncmVhZG9ubHknLCAndmFsdWUnLCAndmVydGljYWwnLCAndmVydGljYWxPbk1vYmlsZSddLFxuICBtZXRob2RzOiBbJ2dldE9wdGlvbkJ5VmFsdWUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxSYWRpb0dyb3VwXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXJhZGlvLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWxsb3dFbXB0eVNlbGVjdGlvbicsICdhdXRvSW52YWxpZE9mZicsICdjb2x1bW5zJywgJ2NvbHVtbnNNb2JpbGUnLCAnY29sdW1uc1RhYmxldCcsICdkaXNhYmxlZCcsICdleHBhbmRlZCcsICdpbnRlcmZhY2UnLCAnaW52YWxpZCcsICduYW1lJywgJ29wdGlvbnMnLCAncmVhZG9ubHknLCAndmFsdWUnLCAndmVydGljYWwnLCAndmVydGljYWxPbk1vYmlsZSddLFxuICBvdXRwdXRzOiBbJ2JhbENoYW5nZScsICdiYWxGb2N1cycsICdiYWxCbHVyJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsUmFkaW9Hcm91cCB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNoZWNrZWQgcHJvcGVydHkgaGFzIGNoYW5nZWQuICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsUmFkaW9Hcm91cEN1c3RvbUV2ZW50PGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdG9nZ2xlIGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFJhZGlvR3JvdXBDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRvZ2dsZSBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsUmFkaW9Hcm91cEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsUmFkaW9JY29uIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxSYWRpb0ljb24ge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnaW52ZXJ0ZWQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxSYWRpb0ljb25cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtcmFkaW8taWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdpbnZlcnRlZCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFJhZGlvSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFNlZ21lbnQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFNlZ21lbnQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdkaXNhYmxlZCcsICdleHBhbmRlZCcsICdpbnZhbGlkJywgJ3Njcm9sbGFibGUnLCAndmFsdWUnLCAndmVydGljYWwnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTZWdtZW50XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXNlZ21lbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdkaXNhYmxlZCcsICdleHBhbmRlZCcsICdpbnZhbGlkJywgJ3Njcm9sbGFibGUnLCAndmFsdWUnLCAndmVydGljYWwnXSxcbiAgb3V0cHV0czogWydiYWxGb2N1cycsICdiYWxCbHVyJywgJ2JhbENoYW5nZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFNlZ21lbnQge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0b2dnbGUgaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsU2VnbWVudEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgY29tcG9uZW50IHdhcyB0b3VjaGVkICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFNlZ21lbnRDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHZhbHVlIHByb3BlcnR5IGhhcyBjaGFuZ2VkIGFuZCBhbnkgZHJhZ2dpbmcgcG9pbnRlciBoYXMgYmVlbiByZWxlYXNlZCBmcm9tIGBiYWwtc2VnbWVudGAuXG5cblRoaXMgZXZlbnQgd2lsbCBub3QgZW1pdCB3aGVuIHByb2dyYW1tYXRpY2FsbHkgc2V0dGluZyB0aGUgYHZhbHVlYCBwcm9wZXJ0eS4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTZWdtZW50Q3VzdG9tRXZlbnQ8Ym9vbGVhbiB8IG51bWJlciB8IHN0cmluZz4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxGb2N1cycsICdiYWxCbHVyJywgJ2JhbENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTZWdtZW50SXRlbSBleHRlbmRzIENvbXBvbmVudHMuQmFsU2VnbWVudEl0ZW0ge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ3ZhbHVlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsU2VnbWVudEl0ZW1cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc2VnbWVudC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdsYWJlbCcsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFNlZ21lbnRJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsU2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTZWxlY3Qge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdhdXRvY29tcGxldGUnLCAnYmFsVGFiaW5kZXgnLCAnZGlzYWJsZWQnLCAnZmlsdGVyJywgJ2ZyZWVTb2xvJywgJ2ludmFsaWQnLCAnbG9hZGluZycsICdtYXhMZW5ndGgnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdub0RhdGFMYWJlbCcsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZW1vdGUnLCAncmVxdWlyZWQnLCAnc2Nyb2xsYWJsZScsICdzZWxlY3Rpb25PcHRpb25hbCcsICd0eXBlYWhlYWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdnZXRWYWx1ZScsICdjbGVhcicsICdvcGVuJywgJ2Nsb3NlJywgJ2NhbmNlbCcsICdzZWxlY3QnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTZWxlY3Rcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYXV0b0ludmFsaWRPZmYnLCAnYXV0b2NvbXBsZXRlJywgJ2JhbFRhYmluZGV4JywgJ2Rpc2FibGVkJywgJ2ZpbHRlcicsICdmcmVlU29sbycsICdpbnZhbGlkJywgJ2xvYWRpbmcnLCAnbWF4TGVuZ3RoJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9EYXRhTGFiZWwnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVtb3RlJywgJ3JlcXVpcmVkJywgJ3Njcm9sbGFibGUnLCAnc2VsZWN0aW9uT3B0aW9uYWwnLCAndHlwZWFoZWFkJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJywgJ2JhbElucHV0Q2xpY2snLCAnYmFsSW5wdXQnLCAnYmFsQmx1cicsICdiYWxGb2N1cycsICdiYWxDYW5jZWwnLCAnYmFsS2V5UHJlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTZWxlY3Qge1xuICAvKiogRW1pdHRlZCB3aGVuIGEgb3B0aW9uIGdvdCBzZWxlY3RlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTZWxlY3RDdXN0b21FdmVudDxzdHJpbmcgfCBzdHJpbmdbXT4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBnb3QgY2xpY2tlZC4gKi9cbiAgYmFsSW5wdXRDbGljayE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsU2VsZWN0Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbElucHV0ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTZWxlY3RDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFNlbGVjdEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsU2VsZWN0Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNhbmNlbHMgdGhlIGlucHV0LiAqL1xuICBiYWxDYW5jZWwhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFNlbGVjdEN1c3RvbUV2ZW50PEtleWJvYXJkRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGZvY3VzIGFuZCBrZXkgZnJvbSB0aGUga2V5Ym9hcmQgZ28gaGl0LiAqL1xuICBiYWxLZXlQcmVzcyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsU2VsZWN0Q3VzdG9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnLCAnYmFsSW5wdXRDbGljaycsICdiYWxJbnB1dCcsICdiYWxCbHVyJywgJ2JhbEZvY3VzJywgJ2JhbENhbmNlbCcsICdiYWxLZXlQcmVzcyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTZWxlY3RPcHRpb24gZXh0ZW5kcyBDb21wb25lbnRzLkJhbFNlbGVjdE9wdGlvbiB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2xhYmVsJywgJ3ZhbHVlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsU2VsZWN0T3B0aW9uXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXNlbGVjdC1vcHRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdsYWJlbCcsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFNlbGVjdE9wdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFNoYXBlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTaGFwZSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ3JvdGF0aW9uJywgJ3ZhcmlhdGlvbiddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFNoYXBlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXNoYXBlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29sb3InLCAncm90YXRpb24nLCAndmFyaWF0aW9uJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU2hhcGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTaGVldCBleHRlbmRzIENvbXBvbmVudHMuQmFsU2hlZXQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250YWluZXJTaXplJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsU2hlZXRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc2hlZXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjb250YWluZXJTaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU2hlZXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTbmFja2JhciBleHRlbmRzIENvbXBvbmVudHMuQmFsU25hY2tiYXIge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3Rpb24nLCAnY29sb3InLCAnZHVyYXRpb24nLCAnaHJlZicsICdpY29uJywgJ21lc3NhZ2UnLCAnc3ViamVjdCcsICd0YXJnZXQnXSxcbiAgbWV0aG9kczogWydjbG9zZUluJywgJ2Nsb3NlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsU25hY2tiYXJcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc25hY2tiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY3Rpb24nLCAnY29sb3InLCAnZHVyYXRpb24nLCAnaHJlZicsICdpY29uJywgJ21lc3NhZ2UnLCAnc3ViamVjdCcsICd0YXJnZXQnXSxcbiAgb3V0cHV0czogWydiYWxDbG9zZScsICdiYWxBY3Rpb24nXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTbmFja2JhciB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gc25hY2tiYXIgaXMgY2xvc2VkICovXG4gIGJhbENsb3NlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTbmFja2JhckN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBhY3Rpb24gYnV0dG9uIGlzIGNsaWNrZWQgKi9cbiAgYmFsQWN0aW9uITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTbmFja2JhckN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDbG9zZScsICdiYWxBY3Rpb24nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsU3Bpbm5lciBleHRlbmRzIENvbXBvbmVudHMuQmFsU3Bpbm5lciB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2RlYWN0aXZhdGVkJywgJ2ludmVydGVkJywgJ3NtYWxsJywgJ3ZhcmlhdGlvbiddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFNwaW5uZXJcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc3Bpbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2RlYWN0aXZhdGVkJywgJ2ludmVydGVkJywgJ3NtYWxsJywgJ3ZhcmlhdGlvbiddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFNwaW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTdGFjayBleHRlbmRzIENvbXBvbmVudHMuQmFsU3RhY2sge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGlnbicsICdmaXRDb250ZW50JywgJ2xheW91dCcsICdweCcsICdweScsICdzcGFjZScsICdzcGFjZUNvbHVtbicsICdzcGFjZVJvdycsICd1c2VXcmFwJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsU3RhY2tcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc3RhY2snLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhbGlnbicsICdmaXRDb250ZW50JywgJ2xheW91dCcsICdweCcsICdweScsICdzcGFjZScsICdzcGFjZUNvbHVtbicsICdzcGFjZVJvdycsICd1c2VXcmFwJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU3RhY2sge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTdGFnZSBleHRlbmRzIENvbXBvbmVudHMuQmFsU3RhZ2Uge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdjb250YWluZXJTaXplJywgJ3NoYXBlJywgJ3NoYXBlUm90YXRpb24nLCAnc2hhcGVWYXJpYXRpb24nLCAnc2l6ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFN0YWdlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXN0YWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29sb3InLCAnY29udGFpbmVyU2l6ZScsICdzaGFwZScsICdzaGFwZVJvdGF0aW9uJywgJ3NoYXBlVmFyaWF0aW9uJywgJ3NpemUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTdGFnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFN0YWdlQmFja0xpbmsgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFN0YWdlQmFja0xpbmsge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydocmVmJywgJ2ludmVydGVkJywgJ3JlbCcsICdzaGFkb3cnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTdGFnZUJhY2tMaW5rXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXN0YWdlLWJhY2stbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2hyZWYnLCAnaW52ZXJ0ZWQnLCAncmVsJywgJ3NoYWRvdyddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFN0YWdlQmFja0xpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTdGFnZUJvZHkgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFN0YWdlQm9keSB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTdGFnZUJvZHlcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc3RhZ2UtYm9keScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTdGFnZUJvZHkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTdGFnZUZvb3QgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFN0YWdlRm9vdCB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTdGFnZUZvb3Rcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc3RhZ2UtZm9vdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTdGFnZUZvb3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTdGFnZUhlYWQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFN0YWdlSGVhZCB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTdGFnZUhlYWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc3RhZ2UtaGVhZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTdGFnZUhlYWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTdGFnZUltYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTdGFnZUltYWdlIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmFsbGJhY2snLCAnc3JjU2V0J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsU3RhZ2VJbWFnZVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zdGFnZS1pbWFnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2ZhbGxiYWNrJywgJ3NyY1NldCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFN0YWdlSW1hZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTdGVwSXRlbSBleHRlbmRzIENvbXBvbmVudHMuQmFsU3RlcEl0ZW0ge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnZGlzYWJsZWQnLCAnZG9uZScsICdmYWlsZWQnLCAnaHJlZicsICdpbnZpc2libGUnLCAnbGFiZWwnLCAncHJldmVudCcsICdyZWwnLCAndGFyZ2V0JywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0T3B0aW9ucycsICdzZXRBY3RpdmUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTdGVwSXRlbVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zdGVwLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY3RpdmUnLCAnZGlzYWJsZWQnLCAnZG9uZScsICdmYWlsZWQnLCAnaHJlZicsICdpbnZpc2libGUnLCAnbGFiZWwnLCAncHJldmVudCcsICdyZWwnLCAndGFyZ2V0JywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsTmF2aWdhdGUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTdGVwSXRlbSB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGxpbmsgZWxlbWVudCBoYXMgY2xpY2tlZCAqL1xuICBiYWxOYXZpZ2F0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsU3RlcEl0ZW1DdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbE5hdmlnYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFN0ZXBzIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTdGVwcyB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdjb2xvcicsICdkZWJvdW5jZScsICdvcHRpb25zJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0JywgJ2dldE9wdGlvbkJ5VmFsdWUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTdGVwc1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zdGVwcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdjb2xvcicsICdkZWJvdW5jZScsICdvcHRpb25zJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU3RlcHMge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBjaGFuZ2VzIGhhcyBmaW5pc2hlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTdGVwc0N1c3RvbUV2ZW50PHN0cmluZz4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsU3dpdGNoIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTd2l0Y2gge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTd2l0Y2hcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc3dpdGNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpbnZhbGlkJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU3dpdGNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsVGFiSXRlbSBleHRlbmRzIENvbXBvbmVudHMuQmFsVGFiSXRlbSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhY3RpdmUnLCAnYnViYmxlJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdpbnZpc2libGUnLCAnbGFiZWwnLCAnbm9QYW5lbCcsICdwcmV2ZW50JywgJ3JlbCcsICdzdWJMYWJlbCcsICdzdmcnLCAndGFyZ2V0JywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0T3B0aW9ucycsICdzZXRBY3RpdmUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxUYWJJdGVtXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXRhYi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2FjdGl2ZScsICdidWJibGUnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ludmlzaWJsZScsICdsYWJlbCcsICdub1BhbmVsJywgJ3ByZXZlbnQnLCAncmVsJywgJ3N1YkxhYmVsJywgJ3N2ZycsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxOYXZpZ2F0ZScsICdiYWxLZXlEb3duJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsVGFiSXRlbSB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGxpbmsgZWxlbWVudCBoYXMgY2xpY2tlZCAqL1xuICBiYWxOYXZpZ2F0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGFiSXRlbUN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbGluayBlbGVtZW50IGhhcyBjbGlja2VkICovXG4gIGJhbEtleURvd24hOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRhYkl0ZW1DdXN0b21FdmVudDxLZXlib2FyZEV2ZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbE5hdmlnYXRlJywgJ2JhbEtleURvd24nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsVGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFRhYmxlIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZXhwYW5kZWQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxUYWJsZVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2V4cGFuZGVkJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsVGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxUYWJzIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxUYWJzIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjb3JkaW9uJywgJ2JvcmRlcicsICdjbGlja2FibGUnLCAnY29udGV4dCcsICdkZWJvdW5jZScsICdkaW1JbmFjdGl2ZUVsZW1lbnRzJywgJ2V4cGFuZGVkJywgJ2Zsb2F0JywgJ2Z1bGx3aWR0aCcsICdoYW5kbGVBc1RhYkxpc3QnLCAnaWNvblBvc2l0aW9uJywgJ2ludmVydGVkJywgJ29wdGlvbmFsVGFiU2VsZWN0aW9uJywgJ29wdGlvbnMnLCAnb3ZlcmZsb3cnLCAnc2VsZWN0T25Nb2JpbGUnLCAnc3BhY2VsZXNzJywgJ3ZhbHVlJywgJ3ZlcnRpY2FsJywgJ3ZlcnRpY2FsQ29sU2l6ZSddLFxuICBtZXRob2RzOiBbJ3NlbGVjdCcsICdnZXRPcHRpb25CeVZhbHVlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsVGFic1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC10YWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWNjb3JkaW9uJywgJ2JvcmRlcicsICdjbGlja2FibGUnLCAnY29udGV4dCcsICdkZWJvdW5jZScsICdkaW1JbmFjdGl2ZUVsZW1lbnRzJywgJ2V4cGFuZGVkJywgJ2Zsb2F0JywgJ2Z1bGx3aWR0aCcsICdoYW5kbGVBc1RhYkxpc3QnLCAnaWNvblBvc2l0aW9uJywgJ2ludmVydGVkJywgJ29wdGlvbmFsVGFiU2VsZWN0aW9uJywgJ29wdGlvbnMnLCAnb3ZlcmZsb3cnLCAnc2VsZWN0T25Nb2JpbGUnLCAnc3BhY2VsZXNzJywgJ3ZhbHVlJywgJ3ZlcnRpY2FsJywgJ3ZlcnRpY2FsQ29sU2l6ZSddLFxuICBvdXRwdXRzOiBbJ2JhbENoYW5nZScsICdiYWxXaWxsQW5pbWF0ZScsICdiYWxEaWRBbmltYXRlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsVGFicyB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNoYW5nZXMgaGFzIGZpbmlzaGVkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRhYnNDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRzICovXG4gIGJhbFdpbGxBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUYWJzQ3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKiBFbWl0dGVkIGFmdGVyIHRoZSBhbmltYXRpb24gaGFzIGZpbmlzaGVkICovXG4gIGJhbERpZEFuaW1hdGUhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRhYnNDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsVGFnIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxUYWcge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zYWJsZScsICdjb2xvcicsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ2xpZ2h0JywgJ3Bvc2l0aW9uJywgJ3NpemUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxUYWdcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtdGFnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnY29sb3InLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdsaWdodCcsICdwb3NpdGlvbicsICdzaXplJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2xvc2VDbGljayddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFRhZyB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGdvdCBjbGlja2VkLiAqL1xuICBiYWxDbG9zZUNsaWNrITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUYWdDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENsb3NlQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsVGFnR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFRhZ0dyb3VwIHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFRhZ0dyb3VwXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXRhZy1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYWxUYWdHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFRleHQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFRleHQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib2xkJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2hlYWRpbmcnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaW52ZXJ0ZWQnLCAnbm9XcmFwJywgJ3NoYWRvdycsICdzaXplJywgJ3NwYWNlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsVGV4dFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC10ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYm9sZCcsICdjb2xvcicsICdkaXNhYmxlZCcsICdoZWFkaW5nJywgJ2lubGluZScsICdpbnZhbGlkJywgJ2ludmVydGVkJywgJ25vV3JhcCcsICdzaGFkb3cnLCAnc2l6ZScsICdzcGFjZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFRleHQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxUZXh0YXJlYSBleHRlbmRzIENvbXBvbmVudHMuQmFsVGV4dGFyZWEge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdhdXRvY2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnYXV0b2ZvY3VzJywgJ2NsaWNrYWJsZScsICdjb2xzJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ21heExlbmd0aCcsICdtaW5MZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyb3dzJywgJ3ZhbHVlJywgJ3dyYXAnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdnZXRJbnB1dEVsZW1lbnQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxUZXh0YXJlYVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC10ZXh0YXJlYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvZm9jdXMnLCAnY2xpY2thYmxlJywgJ2NvbHMnLCAnZGVib3VuY2UnLCAnZGlzYWJsZWQnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbWF4TGVuZ3RoJywgJ21pbkxlbmd0aCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Jvd3MnLCAndmFsdWUnLCAnd3JhcCddLFxuICBvdXRwdXRzOiBbJ2JhbENoYW5nZScsICdiYWxJbnB1dCcsICdiYWxCbHVyJywgJ2JhbEtleVByZXNzJywgJ2JhbEZvY3VzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsVGV4dGFyZWEge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBoYXMgY2hhbmdlZC4uICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGV4dGFyZWFDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGlucHV0IG9jY3VycmVkLiAqL1xuICBiYWxJbnB1dCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGV4dGFyZWFDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGlucHV0IG9jY3VycmVkLiAqL1xuICBiYWxCbHVyITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUZXh0YXJlYUN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGtleSBoYXMgcHJlc3NlZC4gKi9cbiAgYmFsS2V5UHJlc3MhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRleHRhcmVhQ3VzdG9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUZXh0YXJlYUN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJywgJ2JhbElucHV0JywgJ2JhbEJsdXInLCAnYmFsS2V5UHJlc3MnLCAnYmFsRm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsVGltZUlucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxUaW1lSW5wdXQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdnZXRJbnB1dEVsZW1lbnQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxUaW1lSW5wdXRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtdGltZS1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbElucHV0JywgJ2JhbENoYW5nZScsICdiYWxCbHVyJywgJ2JhbEZvY3VzJywgJ2JhbEtleVByZXNzJywgJ2JhbENsaWNrJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsVGltZUlucHV0IHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGlucHV0IG9jY3VycmVkLiAqL1xuICBiYWxJbnB1dCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGltZUlucHV0Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHZhbHVlIGhhcyBjaGFuZ2VkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRpbWVJbnB1dEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGltZUlucHV0Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUaW1lSW5wdXRDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBrZXlib2FyZCBrZXkgaGFzIHByZXNzZWQuICovXG4gIGJhbEtleVByZXNzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUaW1lSW5wdXRDdXN0b21FdmVudDxLZXlib2FyZEV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBjbGlja2VkLiAqL1xuICBiYWxDbGljayE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGltZUlucHV0Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxJbnB1dCcsICdiYWxDaGFuZ2UnLCAnYmFsQmx1cicsICdiYWxGb2N1cycsICdiYWxLZXlQcmVzcycsICdiYWxDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxUb2FzdCBleHRlbmRzIENvbXBvbmVudHMuQmFsVG9hc3Qge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zYWJsZScsICdjb2xvcicsICdkdXJhdGlvbicsICdtZXNzYWdlJ10sXG4gIG1ldGhvZHM6IFsnY2xvc2VJbicsICdjbG9zZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFRvYXN0XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXRvYXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnY29sb3InLCAnZHVyYXRpb24nLCAnbWVzc2FnZSddLFxuICBvdXRwdXRzOiBbJ2JhbENsb3NlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsVG9hc3Qge1xuICAvKiogRW1pdHRlZCB3aGVuIHRvYXN0IGlzIGNsb3NlZCAqL1xuICBiYWxDbG9zZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVG9hc3RDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuQmFsVG9vbHRpcCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnRXaWR0aCcsICdvZmZzZXQnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFRvb2x0aXBcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbnRlbnRXaWR0aCcsICdvZmZzZXQnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZSddLFxuICBvdXRwdXRzOiBbJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxUb29sdGlwIHtcbiAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRzICovXG4gIGJhbFdpbGxBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUb29sdGlwQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKiogRW1pdHRlZCBhZnRlciB0aGUgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCAqL1xuICBiYWxEaWRBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUb29sdGlwQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxXaWxsQW5pbWF0ZScsICdiYWxEaWRBbmltYXRlJ10pO1xuICB9XG59XG4iXX0=
3369
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWtELE1BQU0sZUFBZSxDQUFDO0FBQzFKLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDckgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDckgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDckgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLElBQUksZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0csT0FBTyxFQUFFLG1CQUFtQixJQUFJLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxD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UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDOzhHQVZVLFVBQVU7a0dBQVYsVUFBVSw4T0FMWCwyQkFBMkI7O0FBSzFCLFVBQVU7SUFadEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQzVELHFCQUFxQixFQUFFLGdCQUFnQjtLQUN4QyxDQUFDO3FDQWVlLGlCQUFpQixFQUFLLFVBQVUsRUFBZSxNQUFNO0dBTnpELFVBQVUsQ0FXdEI7OzJGQVhZLFVBQVU7a0JBUnRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsS0FBSztvQkFDakIsTUFBTSxFQUFFLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDO29CQUM1RCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUM7aUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBOZ1pvbmUsIEV2ZW50RW1pdHRlciwgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEFjY29yZGlvbiB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtYWNjb3JkaW9uJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQWNjb3JkaW9uRGV0YWlscyB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtYWNjb3JkaW9uLWRldGFpbHMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxBY2NvcmRpb25TdW1tYXJ5IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1hY2NvcmRpb24tc3VtbWFyeSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEFjY29yZGlvblRyaWdnZXIgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWFjY29yZGlvbi10cmlnZ2VyJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQXBwIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1hcHAnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxCYWRnZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtYmFkZ2UnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxCdXR0b24gfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWJ1dHRvbic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEJ1dHRvbkdyb3VwIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1idXR0b24tZ3JvdXAnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxDYXJkIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1jYXJkJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2FyZEFjdGlvbnMgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWNhcmQtYWN0aW9ucyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbENhcmRCdXR0b24gfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWNhcmQtYnV0dG9uJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2FyZENvbnRlbnQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWNhcmQtY29udGVudCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbENhcmRTdWJ0aXRsZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtY2FyZC1zdWJ0aXRsZSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbENhcmRUaXRsZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtY2FyZC10aXRsZSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbENhcm91c2VsIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1jYXJvdXNlbCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbENhcm91c2VsSXRlbSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtY2Fyb3VzZWwtaXRlbSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbENoZWNrIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1jaGVjayc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbENoZWNrYm94IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1jaGVja2JveCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbENoZWNrYm94R3JvdXAgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWNoZWNrYm94LWdyb3VwJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ2xvc2UgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWNsb3NlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsQ29udGVudCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtY29udGVudCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbERhdGEgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWRhdGEnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxEYXRhSXRlbSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZGF0YS1pdGVtJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRGF0YUxhYmVsIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1kYXRhLWxhYmVsJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRGF0YVZhbHVlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1kYXRhLXZhbHVlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRGF0ZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZGF0ZSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbERhdGVDYWxlbmRhciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZGF0ZS1jYWxlbmRhcic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbERhdGVDYWxlbmRhckNlbGwgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWRhdGUtY2FsZW5kYXItY2VsbCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbERpdmlkZXIgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWRpdmlkZXInO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxEcm9wZG93biB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZHJvcGRvd24nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxGaWVsZCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZmllbGQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxGaWVsZENvbnRyb2wgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWZpZWxkLWNvbnRyb2wnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxGaWVsZEhpbnQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWZpZWxkLWhpbnQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxGaWVsZExhYmVsIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1maWVsZC1sYWJlbCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEZpZWxkTWVzc2FnZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZmllbGQtbWVzc2FnZSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEZpbGVVcGxvYWQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWZpbGUtdXBsb2FkJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRm9vdGVyIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1mb290ZXInO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxGb3JtIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1mb3JtJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsRm9ybUNvbCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZm9ybS1jb2wnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxGb3JtR3JpZCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtZm9ybS1ncmlkJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsSGVhZGluZyB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtaGVhZGluZyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbEhpbnQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWhpbnQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxIaW50VGV4dCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtaGludC10ZXh0JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsSGludFRpdGxlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1oaW50LXRpdGxlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsSWNvbiB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtaWNvbic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbElucHV0IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1pbnB1dCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbElucHV0RGF0ZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtaW5wdXQtZGF0ZSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbElucHV0R3JvdXAgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWlucHV0LWdyb3VwJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsSW5wdXRTbGlkZXIgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWlucHV0LXNsaWRlcic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbElucHV0U3RlcHBlciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtaW5wdXQtc3RlcHBlcic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbExhYmVsIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1sYWJlbCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbExpc3QgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWxpc3QnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxMaXN0SXRlbSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbGlzdC1pdGVtJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTGlzdEl0ZW1BY2NvcmRpb25Cb2R5IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1saXN0LWl0ZW0tYWNjb3JkaW9uLWJvZHknO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxMaXN0SXRlbUFjY29yZGlvbkhlYWQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWxpc3QtaXRlbS1hY2NvcmRpb24taGVhZCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbExpc3RJdGVtQ29udGVudCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbGlzdC1pdGVtLWNvbnRlbnQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxMaXN0SXRlbUljb24gfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLWxpc3QtaXRlbS1pY29uJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTGlzdEl0ZW1TdWJ0aXRsZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbGlzdC1pdGVtLXN1YnRpdGxlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTGlzdEl0ZW1UaXRsZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbGlzdC1pdGVtLXRpdGxlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTG9nbyB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbG9nbyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE1vZGFsIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1tb2RhbCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE1vZGFsQm9keSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbW9kYWwtYm9keSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE1vZGFsSGVhZGVyIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1tb2RhbC1oZWFkZXInO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXYgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLW5hdic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE5hdkxpbmsgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLW5hdi1saW5rJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTmF2TGlua0dyaWQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLW5hdi1saW5rLWdyaWQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZMaW5rR3JpZENvbCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2LWxpbmstZ3JpZC1jb2wnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZMaW5rR3JvdXAgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLW5hdi1saW5rLWdyb3VwJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTmF2TWVudUJhciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2LW1lbnUtYmFyJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTmF2TWVudUZseW91dCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2LW1lbnUtZmx5b3V0JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTmF2TWV0YUJhciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2LW1ldGEtYmFyJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTmF2YmFyIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1uYXZiYXInO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZiYXJCcmFuZCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2YmFyLWJyYW5kJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTmF2YmFyTWVudSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbmF2YmFyLW1lbnUnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZiYXJNZW51RW5kIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1uYXZiYXItbWVudS1lbmQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxOYXZiYXJNZW51U3RhcnQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLW5hdmJhci1tZW51LXN0YXJ0JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTm90aWNlcyB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbm90aWNlcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE5vdGlmaWNhdGlvbiB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsTnVtYmVySW5wdXQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLW51bWJlci1pbnB1dCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbE9wdGlvbiB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtb3B0aW9uJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsT3B0aW9uTGlzdCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtb3B0aW9uLWxpc3QnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxQYWdpbmF0aW9uIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1wYWdpbmF0aW9uJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsUG9wb3ZlciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtcG9wb3Zlcic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFBvcG92ZXJDb250ZW50IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1wb3BvdmVyLWNvbnRlbnQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxQb3B1cCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtcG9wdXAnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxQcm9ncmVzc0JhciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsUmFkaW8gfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXJhZGlvJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsUmFkaW9Hcm91cCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtcmFkaW8tZ3JvdXAnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxSYWRpb0ljb24gfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXJhZGlvLWljb24nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxTZWdtZW50IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zZWdtZW50JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU2VnbWVudEl0ZW0gfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXNlZ21lbnQtaXRlbSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFNlbGVjdCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc2VsZWN0JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU2VsZWN0T3B0aW9uIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zZWxlY3Qtb3B0aW9uJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU2hhcGUgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXNoYXBlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU2hlZXQgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXNoZWV0JztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU25hY2tiYXIgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXNuYWNrYmFyJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3Bpbm5lciB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc3Bpbm5lcic7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFN0YWNrIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zdGFjayc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFN0YWdlIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zdGFnZSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFN0YWdlQmFja0xpbmsgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXN0YWdlLWJhY2stbGluayc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFN0YWdlQm9keSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc3RhZ2UtYm9keSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFN0YWdlRm9vdCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc3RhZ2UtZm9vdCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFN0YWdlSGVhZCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc3RhZ2UtaGVhZCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFN0YWdlSW1hZ2UgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXN0YWdlLWltYWdlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsU3RlcEl0ZW0gfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXN0ZXAtaXRlbSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFN0ZXBzIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC1zdGVwcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFN3aXRjaCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtc3dpdGNoJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsVGFiSXRlbSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtdGFiLWl0ZW0nO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxUYWJsZSB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtdGFibGUnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxUYWJzIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC10YWJzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsVGFnIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC10YWcnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVCYWxUYWdHcm91cCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtdGFnLWdyb3VwJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lQmFsVGV4dCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtdGV4dCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFRleHRhcmVhIH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC10ZXh0YXJlYSc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFRpbWVJbnB1dCB9IGZyb20gJ0BiYWxvaXNlL2RzLWNvcmUvY29tcG9uZW50cy9iYWwtdGltZS1pbnB1dCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFRvYXN0IH0gZnJvbSAnQGJhbG9pc2UvZHMtY29yZS9jb21wb25lbnRzL2JhbC10b2FzdCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZUJhbFRvb2x0aXAgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMvYmFsLXRvb2x0aXAnO1xuXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudHMsIEZpbGVVcGxvYWRSZWplY3RlZEZpbGUgfSBmcm9tICdAYmFsb2lzZS9kcy1jb3JlL2NvbXBvbmVudHMnO1xuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLkJhbEFjY29yZGlvbiB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjYXJkJywgJ2Nsb3NlSWNvbicsICdjbG9zZUxhYmVsJywgJ2RlYm91bmNlJywgJ29wZW5JY29uJywgJ29wZW5MYWJlbCddLFxuICBtZXRob2RzOiBbJ3ByZXNlbnQnLCAnZGlzbWlzcycsICd0b2dnbGUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxBY2NvcmRpb25cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2NhcmQnLCAnY2xvc2VJY29uJywgJ2Nsb3NlTGFiZWwnLCAnZGVib3VuY2UnLCAnb3Blbkljb24nLCAnb3BlbkxhYmVsJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxBY2NvcmRpb24ge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBhY2NvcmRpb24gaGFzIG9wZW5lZCBvciBjbG9zZWQgKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxBY2NvcmRpb25DdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKiBFbWl0dGVkIGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0YXJ0cyAqL1xuICBiYWxXaWxsQW5pbWF0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQWNjb3JkaW9uQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKiogRW1pdHRlZCBhZnRlciB0aGUgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCAqL1xuICBiYWxEaWRBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxBY2NvcmRpb25DdXN0b21FdmVudDxib29sZWFuPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENoYW5nZScsICdiYWxXaWxsQW5pbWF0ZScsICdiYWxEaWRBbmltYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbEFjY29yZGlvbkRldGFpbHMgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEFjY29yZGlvbkRldGFpbHMge31cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQWNjb3JkaW9uRGV0YWlsc1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1hY2NvcmRpb24tZGV0YWlscycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYWxBY2NvcmRpb25EZXRhaWxzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQWNjb3JkaW9uU3VtbWFyeSBleHRlbmRzIENvbXBvbmVudHMuQmFsQWNjb3JkaW9uU3VtbWFyeSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3RyaWdnZXInXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxBY2NvcmRpb25TdW1tYXJ5XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWFjY29yZGlvbi1zdW1tYXJ5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsndHJpZ2dlciddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEFjY29yZGlvblN1bW1hcnkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxBY2NvcmRpb25UcmlnZ2VyIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxBY2NvcmRpb25UcmlnZ2VyIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uJywgJ2Nsb3NlSWNvbicsICdjbG9zZUxhYmVsJywgJ2NvbG9yJywgJ2V4cGFuZGVkJywgJ29wZW5JY29uJywgJ29wZW5MYWJlbCcsICdzaXplJywgJ3ZhcmlhbnQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxBY2NvcmRpb25UcmlnZ2VyXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWFjY29yZGlvbi10cmlnZ2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYnV0dG9uJywgJ2Nsb3NlSWNvbicsICdjbG9zZUxhYmVsJywgJ2NvbG9yJywgJ2V4cGFuZGVkJywgJ29wZW5JY29uJywgJ29wZW5MYWJlbCcsICdzaXplJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxBY2NvcmRpb25UcmlnZ2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQXBwIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxBcHAge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmltYXRlZCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQXBwXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWFwcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQXBwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQmFkZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEJhZGdlIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnaWNvbicsICdwb3NpdGlvbicsICdzaXplJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQmFkZ2Vcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjb2xvcicsICdpY29uJywgJ3Bvc2l0aW9uJywgJ3NpemUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuQmFsQnV0dG9uIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlIYXNwb3B1cCcsICdhMTF5TGFiZWwnLCAnYTExeVRpdGxlJywgJ2JhbFBvcHVwJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2VsZW1lbnRUeXBlJywgJ2V4cGFuZGVkJywgJ2ZsYXQnLCAnaHJlZicsICdpY29uJywgJ2ljb25SaWdodCcsICdpY29uVHVybicsICdpbnZlcnRlZCcsICdpc0FjdGl2ZScsICdsb2FkaW5nJywgJ25hbWUnLCAnbm9XcmFwJywgJ291dGxpbmVkJywgJ3JlbCcsICdyb3VuZGVkJywgJ3NoYWRvdycsICdzaXplJywgJ3NxdWFyZScsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxCdXR0b25cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlIYXNwb3B1cCcsICdhMTF5TGFiZWwnLCAnYTExeVRpdGxlJywgJ2JhbFBvcHVwJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2VsZW1lbnRUeXBlJywgJ2V4cGFuZGVkJywgJ2ZsYXQnLCAnaHJlZicsICdpY29uJywgJ2ljb25SaWdodCcsICdpY29uVHVybicsICdpbnZlcnRlZCcsICdpc0FjdGl2ZScsICdsb2FkaW5nJywgJ25hbWUnLCAnbm9XcmFwJywgJ291dGxpbmVkJywgJ3JlbCcsICdyb3VuZGVkJywgJ3NoYWRvdycsICdzaXplJywgJ3NxdWFyZScsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxDbGljaycsICdiYWxOYXZpZ2F0ZScsICdiYWxGb2N1cycsICdiYWxCbHVyJywgJ2JhbERpZFJlbmRlciddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEJ1dHRvbiB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGxpbmsgZWxlbWVudCBoYXMgY2xpY2tlZC4gKi9cbiAgYmFsQ2xpY2shOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbEJ1dHRvbkN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbGluayBlbGVtZW50IGhhcyBjbGlja2VkLiAqL1xuICBiYWxOYXZpZ2F0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQnV0dG9uQ3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQnV0dG9uQ3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbEJ1dHRvbkN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgYnV0dG9uIGhhcyBiZWVuICByZW5kZXJlZC4gKi9cbiAgYmFsRGlkUmVuZGVyITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxCdXR0b25DdXN0b21FdmVudDx2b2lkPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENsaWNrJywgJ2JhbE5hdmlnYXRlJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInLCAnYmFsRGlkUmVuZGVyJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbEJ1dHRvbkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxCdXR0b25Hcm91cCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RpcmVjdGlvbicsICdwb3NpdGlvbicsICdyZXZlcnNlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQnV0dG9uR3JvdXBcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtYnV0dG9uLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnZGlyZWN0aW9uJywgJ3Bvc2l0aW9uJywgJ3JldmVyc2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxCdXR0b25Hcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbENhcmQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib3JkZXInLCAnY2xpY2thYmxlJywgJ2NvbG9yJywgJ2ZsYXQnLCAnZnVsbGhlaWdodCcsICdpbnZlcnRlZCcsICdzZWxlY3RlZCcsICdzcGFjZScsICdzcXVhcmUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxDYXJkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydib3JkZXInLCAnY2xpY2thYmxlJywgJ2NvbG9yJywgJ2ZsYXQnLCAnZnVsbGhlaWdodCcsICdpbnZlcnRlZCcsICdzZWxlY3RlZCcsICdzcGFjZScsICdzcXVhcmUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQ2FyZEFjdGlvbnMgZXh0ZW5kcyBDb21wb25lbnRzLkJhbENhcmRBY3Rpb25zIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncG9zaXRpb24nXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxDYXJkQWN0aW9uc1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1jYXJkLWFjdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydwb3NpdGlvbiddXG59KVxuZXhwb3J0IGNsYXNzIEJhbENhcmRBY3Rpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQ2FyZEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuQmFsQ2FyZEJ1dHRvbiB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2VsZW1lbnRUeXBlJywgJ2hyZWYnLCAnaWNvbicsICdpY29uUmlnaHQnLCAnbG9hZGluZycsICd0YXJnZXQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxDYXJkQnV0dG9uXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWNhcmQtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZWxlbWVudFR5cGUnLCAnaHJlZicsICdpY29uJywgJ2ljb25SaWdodCcsICdsb2FkaW5nJywgJ3RhcmdldCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbENhcmRCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDYXJkQ29udGVudCBleHRlbmRzIENvbXBvbmVudHMuQmFsQ2FyZENvbnRlbnQge31cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQ2FyZENvbnRlbnRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtY2FyZC1jb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbENhcmRDb250ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQ2FyZFN1YnRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxDYXJkU3VidGl0bGUge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib2xkJywgJ2NvbG9yJywgJ2ludmVydGVkJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsQ2FyZFN1YnRpdGxlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWNhcmQtc3VidGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydib2xkJywgJ2NvbG9yJywgJ2ludmVydGVkJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQ2FyZFN1YnRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQ2FyZFRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxDYXJkVGl0bGUge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbnZlcnRlZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENhcmRUaXRsZVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1jYXJkLXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnaW52ZXJ0ZWQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxDYXJkVGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDYXJvdXNlbCBleHRlbmRzIENvbXBvbmVudHMuQmFsQ2Fyb3VzZWwge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhc3BlY3RSYXRpbycsICdib3JkZXInLCAnY29udHJvbHMnLCAnY29udHJvbHNPdmVyZmxvdycsICdjb250cm9sc1N0aWNreScsICdmdWxsSGVpZ2h0JywgJ2h0bWxSb2xlJywgJ2ludGVyZmFjZScsICdpbnZlcnRlZCcsICdpdGVtc1BlclZpZXcnLCAnc2Nyb2xsWScsICdzcGFjZScsICdzdGVwcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3ByZXZpb3VzJywgJ25leHQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxDYXJvdXNlbFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1jYXJvdXNlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2FzcGVjdFJhdGlvJywgJ2JvcmRlcicsICdjb250cm9scycsICdjb250cm9sc092ZXJmbG93JywgJ2NvbnRyb2xzU3RpY2t5JywgJ2Z1bGxIZWlnaHQnLCAnaHRtbFJvbGUnLCAnaW50ZXJmYWNlJywgJ2ludmVydGVkJywgJ2l0ZW1zUGVyVmlldycsICdzY3JvbGxZJywgJ3NwYWNlJywgJ3N0ZXBzJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQ2Fyb3VzZWwge1xuICAvKiogRW1pdHRlZCB3aGVuIGEgb3B0aW9uIGdvdCBzZWxlY3RlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxDYXJvdXNlbEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQ2Fyb3VzZWxJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxDYXJvdXNlbEl0ZW0ge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdkb3dubG9hZCcsICdlbGVtZW50VHlwZScsICdocmVmJywgJ2h0bWxSb2xlJywgJ2xhYmVsJywgJ25hbWUnLCAncmVsJywgJ3NyYycsICdzdmcnLCAndGFyZ2V0JywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxDYXJvdXNlbEl0ZW1cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtY2Fyb3VzZWwtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2Rvd25sb2FkJywgJ2VsZW1lbnRUeXBlJywgJ2hyZWYnLCAnaHRtbFJvbGUnLCAnbGFiZWwnLCAnbmFtZScsICdyZWwnLCAnc3JjJywgJ3N2ZycsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxOYXZpZ2F0ZScsICdiYWxGb2N1cycsICdiYWxCbHVyJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsQ2Fyb3VzZWxJdGVtIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbGluayBlbGVtZW50IGhhcyBjbGlja2VkLiAqL1xuICBiYWxOYXZpZ2F0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQ2Fyb3VzZWxJdGVtQ3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQ2Fyb3VzZWxJdGVtQ3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbENhcm91c2VsSXRlbUN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsTmF2aWdhdGUnLCAnYmFsRm9jdXMnLCAnYmFsQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxDaGVjayBleHRlbmRzIENvbXBvbmVudHMuQmFsQ2hlY2sge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnaW52ZXJ0ZWQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxDaGVja1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1jaGVjaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdpbnZlcnRlZCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbENoZWNrIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLkJhbENoZWNrYm94IHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0ludmFsaWRPZmYnLCAnY2hlY2tlZCcsICdjb2xvcicsICdkaXNhYmxlZCcsICdmbGF0JywgJ2ludGVyZmFjZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ25hbWUnLCAnbm9uU3VibWl0JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZ2V0SW5wdXRFbGVtZW50JywgJ2dldE9wdGlvbiddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENoZWNrYm94XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYXV0b0ludmFsaWRPZmYnLCAnY2hlY2tlZCcsICdjb2xvcicsICdkaXNhYmxlZCcsICdmbGF0JywgJ2ludGVyZmFjZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ25hbWUnLCAnbm9uU3VibWl0JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsRm9jdXMnLCAnYmFsQmx1cicsICdiYWxDaGFuZ2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxDaGVja2JveCB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRvZ2dsZSBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxDaGVja2JveEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdG9nZ2xlIGxvc2VzIGZvY3VzLiAqL1xuICBiYWxCbHVyITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxDaGVja2JveEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdmFsdWUgcHJvcGVydHkgaGFzIGNoYW5nZWQuICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQ2hlY2tib3hDdXN0b21FdmVudDxib29sZWFuPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbEZvY3VzJywgJ2JhbEJsdXInLCAnYmFsQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbENoZWNrYm94R3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLkJhbENoZWNrYm94R3JvdXAge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdjb2x1bW5zJywgJ2NvbHVtbnNNb2JpbGUnLCAnY29sdW1uc1RhYmxldCcsICdjb250cm9sJywgJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJywgJ2ludGVyZmFjZScsICdpbnZhbGlkJywgJ25hbWUnLCAnb3B0aW9ucycsICdyZWFkb25seScsICd2YWx1ZScsICd2ZXJ0aWNhbCcsICd2ZXJ0aWNhbE9uTW9iaWxlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0T3B0aW9uQnlWYWx1ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENoZWNrYm94R3JvdXBcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtY2hlY2tib3gtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdjb2x1bW5zJywgJ2NvbHVtbnNNb2JpbGUnLCAnY29sdW1uc1RhYmxldCcsICdjb250cm9sJywgJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJywgJ2ludGVyZmFjZScsICdpbnZhbGlkJywgJ25hbWUnLCAnb3B0aW9ucycsICdyZWFkb25seScsICd2YWx1ZScsICd2ZXJ0aWNhbCcsICd2ZXJ0aWNhbE9uTW9iaWxlJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxDaGVja2JveEdyb3VwIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgY2hlY2tlZCBwcm9wZXJ0eSBoYXMgY2hhbmdlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxDaGVja2JveEdyb3VwQ3VzdG9tRXZlbnQ8YW55W10+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdG9nZ2xlIGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbENoZWNrYm94R3JvdXBDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRvZ2dsZSBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsQ2hlY2tib3hHcm91cEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQ2xvc2UgZXh0ZW5kcyBDb21wb25lbnRzLkJhbENsb3NlIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW52ZXJ0ZWQnLCAnc2l6ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENsb3NlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWNsb3NlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnaW52ZXJ0ZWQnLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbENsb3NlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsQ29udGVudCBleHRlbmRzIENvbXBvbmVudHMuQmFsQ29udGVudCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2xheW91dCcsICdzcGFjZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbENvbnRlbnRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2xheW91dCcsICdzcGFjZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbENvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxEYXRhIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxEYXRhIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9yZGVyJywgJ2hvcml6b250YWwnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxEYXRhXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWRhdGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydib3JkZXInLCAnaG9yaXpvbnRhbCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbERhdGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxEYXRhSXRlbSBleHRlbmRzIENvbXBvbmVudHMuQmFsRGF0YUl0ZW0ge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib3JkZXInLCAnZGlzYWJsZWQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxEYXRhSXRlbVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1kYXRhLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydib3JkZXInLCAnZGlzYWJsZWQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxEYXRhSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbERhdGFMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuQmFsRGF0YUxhYmVsIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncmVxdWlyZWQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxEYXRhTGFiZWxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZGF0YS1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ3JlcXVpcmVkJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsRGF0YUxhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRGF0YVZhbHVlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxEYXRhVmFsdWUge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdlZGl0YWJsZScsICdtdWx0aWxpbmUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxEYXRhVmFsdWVcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZGF0YS12YWx1ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2VkaXRhYmxlJywgJ211bHRpbGluZSddLFxuICBvdXRwdXRzOiBbJ2JhbENsaWNrJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxEYXRhVmFsdWUge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBlZGl0IGJ1dHRvbiBoYXMgZm9jdXMuICovXG4gIGJhbENsaWNrITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxEYXRhVmFsdWVDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGVkaXQgYnV0dG9uIGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERhdGFWYWx1ZUN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZWRpdCBidXR0b24gbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERhdGFWYWx1ZUN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2xpY2snLCAnYmFsRm9jdXMnLCAnYmFsQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxEYXRlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxEYXRlIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxsb3dJbnZhbGlkVmFsdWUnLCAnYWxsb3dlZERhdGVzJywgJ2F1dG9JbnZhbGlkT2ZmJywgJ2F1dG9jb21wbGV0ZScsICdjbG9zZU9uU2VsZWN0JywgJ2RlYm91bmNlJywgJ2RlZmF1bHREYXRlJywgJ2Rpc2FibGVkJywgJ2ZyZWVTb2xvJywgJ2ludmFsaWQnLCAnbWF4JywgJ21heFllYXJQcm9wJywgJ21pbicsICdtaW5ZZWFyUHJvcCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3RyaWdnZXJJY29uJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnb3BlbicsICdjbG9zZScsICd0b2dnbGUnLCAnc2VsZWN0JywgJ3NldEZvY3VzJywgJ2dldElucHV0RWxlbWVudCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbERhdGVcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZGF0ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2FsbG93SW52YWxpZFZhbHVlJywgJ2FsbG93ZWREYXRlcycsICdhdXRvSW52YWxpZE9mZicsICdhdXRvY29tcGxldGUnLCAnY2xvc2VPblNlbGVjdCcsICdkZWJvdW5jZScsICdkZWZhdWx0RGF0ZScsICdkaXNhYmxlZCcsICdmcmVlU29sbycsICdpbnZhbGlkJywgJ21heCcsICdtYXhZZWFyUHJvcCcsICdtaW4nLCAnbWluWWVhclByb3AnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICd0cmlnZ2VySWNvbicsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbElucHV0JywgJ2JhbENoYW5nZScsICdiYWxXaWxsQW5pbWF0ZScsICdiYWxEaWRBbmltYXRlJywgJ2JhbEJsdXInLCAnYmFsRm9jdXMnLCAnYmFsSW5wdXRDbGljaycsICdiYWxJY29uQ2xpY2snXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxEYXRlIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGlucHV0IG9jY3VycmVkLiAqL1xuICBiYWxJbnB1dCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRGF0ZUN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEgb3B0aW9uIGdvdCBzZWxlY3RlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxEYXRlQ3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKiBFbWl0dGVkIGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0YXJ0cyAqL1xuICBiYWxXaWxsQW5pbWF0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRGF0ZUN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQgKi9cbiAgYmFsRGlkQW5pbWF0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRGF0ZUN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERhdGVDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERhdGVDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBjbGlja2VkLiAqL1xuICBiYWxJbnB1dENsaWNrITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxEYXRlQ3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpY29uIGhhcyBjbGlja2VkLiAqL1xuICBiYWxJY29uQ2xpY2shOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERhdGVDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbElucHV0JywgJ2JhbENoYW5nZScsICdiYWxXaWxsQW5pbWF0ZScsICdiYWxEaWRBbmltYXRlJywgJ2JhbEJsdXInLCAnYmFsRm9jdXMnLCAnYmFsSW5wdXRDbGljaycsICdiYWxJY29uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRGF0ZUNhbGVuZGFyIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxEYXRlQ2FsZW5kYXIge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvd2VkRGF0ZXMnLCAnZGVmYXVsdERhdGUnLCAnbWF4JywgJ21heFllYXJQcm9wJywgJ21pbicsICdtaW5ZZWFyUHJvcCcsICd2YWx1ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbERhdGVDYWxlbmRhclxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1kYXRlLWNhbGVuZGFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWxsb3dlZERhdGVzJywgJ2RlZmF1bHREYXRlJywgJ21heCcsICdtYXhZZWFyUHJvcCcsICdtaW4nLCAnbWluWWVhclByb3AnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxDaGFuZ2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxEYXRlQ2FsZW5kYXIge1xuICAvKiogRW1pdHRlZCB3aGVuIGEgb3B0aW9uIGdvdCBzZWxlY3RlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxEYXRlQ2FsZW5kYXJDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbERhdGVDYWxlbmRhckNlbGwgZXh0ZW5kcyBDb21wb25lbnRzLkJhbERhdGVDYWxlbmRhckNlbGwge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXknLCAnZGlzYWJsZWQnLCAnZnVsbERhdGUnLCAnaXNvRGF0ZScsICdtb250aCcsICdzZWxlY3RlZCcsICd0b2RheScsICd5ZWFyJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsRGF0ZUNhbGVuZGFyQ2VsbFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1kYXRlLWNhbGVuZGFyLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydkYXknLCAnZGlzYWJsZWQnLCAnZnVsbERhdGUnLCAnaXNvRGF0ZScsICdtb250aCcsICdzZWxlY3RlZCcsICd0b2RheScsICd5ZWFyJ10sXG4gIG91dHB1dHM6IFsnYmFsU2VsZWN0RGF5J11cbn0pXG5leHBvcnQgY2xhc3MgQmFsRGF0ZUNhbGVuZGFyQ2VsbCB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBvcHRpb24gZ290IHNlbGVjdGVkLiAqL1xuICBiYWxTZWxlY3REYXkhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERhdGVDYWxlbmRhckNlbGxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsU2VsZWN0RGF5J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbERpdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLkJhbERpdmlkZXIge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib3JkZXJTdHlsZScsICdjb2xvcicsICdsYXlvdXQnLCAnc3BhY2UnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxEaXZpZGVyXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWRpdmlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydib3JkZXJTdHlsZScsICdjb2xvcicsICdsYXlvdXQnLCAnc3BhY2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxEaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLkJhbERyb3Bkb3duIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2NvbXBsZXRlJywgJ2NoaXBzJywgJ2NsZWFyYWJsZScsICdjb250ZW50SGVpZ2h0JywgJ2Rpc2FibGVkJywgJ2ZpbHRlcicsICdpY29uJywgJ2lubGluZUxhYmVsJywgJ2ludmFsaWQnLCAnbG9hZGluZycsICdtdWx0aXBsZScsICduYW1lJywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0aGVtZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ2dldFZhbHVlJywgJ2NsZWFyJywgJ29wZW4nLCAnY2xvc2UnLCAnc2VsZWN0J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsRHJvcGRvd25cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhdXRvY29tcGxldGUnLCAnY2hpcHMnLCAnY2xlYXJhYmxlJywgJ2NvbnRlbnRIZWlnaHQnLCAnZGlzYWJsZWQnLCAnZmlsdGVyJywgJ2ljb24nLCAnaW5saW5lTGFiZWwnLCAnaW52YWxpZCcsICdsb2FkaW5nJywgJ211bHRpcGxlJywgJ25hbWUnLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3RoZW1lJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxEcm9wZG93biB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBvcHRpb24gZ290IHNlbGVjdGVkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbERyb3Bkb3duQ3VzdG9tRXZlbnQ8c3RyaW5nIHwgc3RyaW5nW10+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRHJvcGRvd25DdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLiAqL1xuICBiYWxCbHVyITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxEcm9wZG93bkN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbEZpZWxkIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaG9yaXpvbnRhbCcsICdpbnZhbGlkJywgJ2xvYWRpbmcnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAndmFsaWQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxGaWVsZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1maWVsZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hvcml6b250YWwnLCAnaW52YWxpZCcsICdsb2FkaW5nJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3ZhbGlkJ10sXG4gIG91dHB1dHM6IFsnYmFsRm9ybUNvbnRyb2xEaWRMb2FkJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsRmllbGQge1xuICAvKiogRW1pdHRlZCBhZnRlciByZW5kZXIgd2hlbiBlbGVtZW50IGlzIGxhYmVsbGVkICovXG4gIGJhbEZvcm1Db250cm9sRGlkTG9hZCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRmllbGRDdXN0b21FdmVudDxIVE1MRWxlbWVudD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxGb3JtQ29udHJvbERpZExvYWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRmllbGRDb250cm9sIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxGaWVsZENvbnRyb2wge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHBhbmRlZE9uTW9iaWxlJywgJ2ljb25MZWZ0JywgJ2ljb25SaWdodCcsICdsb2FkaW5nJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsRmllbGRDb250cm9sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWZpZWxkLWNvbnRyb2wnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydleHBhbmRlZE9uTW9iaWxlJywgJ2ljb25MZWZ0JywgJ2ljb25SaWdodCcsICdsb2FkaW5nJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsRmllbGRDb250cm9sIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRmllbGRIaW50IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxGaWVsZEhpbnQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZUxhYmVsJywgJ2hpZGVUaXRsZU9uRGVza3RvcCcsICdzbWFsbCcsICdzdWJqZWN0J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsRmllbGRIaW50XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWZpZWxkLWhpbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjbG9zZUxhYmVsJywgJ2hpZGVUaXRsZU9uRGVza3RvcCcsICdzbWFsbCcsICdzdWJqZWN0J11cbn0pXG5leHBvcnQgY2xhc3MgQmFsRmllbGRIaW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRmllbGRMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuQmFsRmllbGRMYWJlbCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2h0bWxGb3InLCAnaW52YWxpZCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbGlkJywgJ3dlaWdodCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEZpZWxkTGFiZWxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZmllbGQtbGFiZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdodG1sRm9yJywgJ2ludmFsaWQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZCcsICd3ZWlnaHQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxGaWVsZExhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRmllbGRNZXNzYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxGaWVsZE1lc3NhZ2Uge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ25vUmVzZXJ2ZWRTcGFjZScsICdyZWFkb25seScsICd2YWxpZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEZpZWxkTWVzc2FnZVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1maWVsZC1tZXNzYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdub1Jlc2VydmVkU3BhY2UnLCAncmVhZG9ubHknLCAndmFsaWQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxGaWVsZE1lc3NhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxGaWxlVXBsb2FkIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxGaWxlVXBsb2FkIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2F1dG9JbnZhbGlkT2ZmJywgJ2Rpc2FibGVkJywgJ2hhc0ZpbGVMaXN0JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9hZGluZycsICdtYXhCdW5kbGVTaXplJywgJ21heEZpbGVTaXplJywgJ21heEZpbGVzJywgJ211bHRpcGxlJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3ViVGl0bGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydjbGVhcicsICdzZXRGb2N1cycsICdnZXRJbnB1dEVsZW1lbnQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxGaWxlVXBsb2FkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWZpbGUtdXBsb2FkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2F1dG9JbnZhbGlkT2ZmJywgJ2Rpc2FibGVkJywgJ2hhc0ZpbGVMaXN0JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9hZGluZycsICdtYXhCdW5kbGVTaXplJywgJ21heEZpbGVTaXplJywgJ21heEZpbGVzJywgJ211bHRpcGxlJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3ViVGl0bGUnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxDaGFuZ2UnLCAnYmFsRmlsZXNBZGRlZCcsICdiYWxGaWxlc1JlbW92ZWQnLCAnYmFsUmVqZWN0ZWRGaWxlJywgJ2JhbElucHV0Q2xpY2snLCAnYmFsQmx1cicsICdiYWxGb2N1cyddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEZpbGVVcGxvYWQge1xuICAvKiogVHJpZ2dlcnMgd2hlbiBhIGZpbGUgaXMgYWRkZWQgb3IgcmVtb3ZlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxGaWxlVXBsb2FkQ3VzdG9tRXZlbnQ8RmlsZVtdPj47XG4gIC8qKiBUcmlnZ2VycyB3aGVuIGEgZmlsZSBpcyBhZGRlZC4gKi9cbiAgYmFsRmlsZXNBZGRlZCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRmlsZVVwbG9hZEN1c3RvbUV2ZW50PEZpbGVbXT4+O1xuICAvKiogVHJpZ2dlcnMgd2hlbiBhIGZpbGUgaXMgcmVtb3ZlZC4gKi9cbiAgYmFsRmlsZXNSZW1vdmVkITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxGaWxlVXBsb2FkQ3VzdG9tRXZlbnQ8RmlsZVtdPj47XG4gIC8qKiBUcmlnZ2VycyB3aGVuIGEgZmlsZSBpcyByZWplY3RlZCBkdWUgdG8gbm90IGFsbG93ZWQgTUlNRS1UeXBlIGFuZCBzbyBvbi4gKi9cbiAgYmFsUmVqZWN0ZWRGaWxlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxGaWxlVXBsb2FkQ3VzdG9tRXZlbnQ8RmlsZVVwbG9hZFJlamVjdGVkRmlsZT4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBoYXMgY2xpY2tlZC4gKi9cbiAgYmFsSW5wdXRDbGljayE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsRmlsZVVwbG9hZEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbEZpbGVVcGxvYWRDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbEZpbGVVcGxvYWRDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENoYW5nZScsICdiYWxGaWxlc0FkZGVkJywgJ2JhbEZpbGVzUmVtb3ZlZCcsICdiYWxSZWplY3RlZEZpbGUnLCAnYmFsSW5wdXRDbGljaycsICdiYWxCbHVyJywgJ2JhbEZvY3VzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbEZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuQmFsRm9vdGVyIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUxhbmd1YWdlU2VsZWN0aW9uJywgJ2hpZGVMaW5rcycsICdvdmVycmlkZUxpbmtzJywgJ3Nob3dTb2NpYWxNZWRpYSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEZvb3RlclxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydoaWRlTGFuZ3VhZ2VTZWxlY3Rpb24nLCAnaGlkZUxpbmtzJywgJ292ZXJyaWRlTGlua3MnLCAnc2hvd1NvY2lhbE1lZGlhJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRm9ybSBleHRlbmRzIENvbXBvbmVudHMuQmFsRm9ybSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Zvcm1DbGFzcycsICduYXRpdmUnLCAnbm92YWxpZGF0ZSddLFxuICBtZXRob2RzOiBbJ3Njcm9sbFRvRmlyc3RJbnZhbGlkRmllbGQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxGb3JtXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWZvcm0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydmb3JtQ2xhc3MnLCAnbmF0aXZlJywgJ25vdmFsaWRhdGUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxGb3JtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsRm9ybUNvbCBleHRlbmRzIENvbXBvbmVudHMuQmFsRm9ybUNvbCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxGb3JtQ29sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWZvcm0tY29sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEZvcm1Db2wge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxGb3JtR3JpZCBleHRlbmRzIENvbXBvbmVudHMuQmFsRm9ybUdyaWQge31cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsRm9ybUdyaWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtZm9ybS1ncmlkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbEZvcm1HcmlkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsSGVhZGluZyBleHRlbmRzIENvbXBvbmVudHMuQmFsSGVhZGluZyB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9MZXZlbCcsICdjb2xvcicsICdpbnZlcnRlZCcsICdsZXZlbCcsICdub1dyYXAnLCAnc2hhZG93JywgJ3NwYWNlJywgJ3N1YnRpdGxlJywgJ3Zpc3VhbExldmVsJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsSGVhZGluZ1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1oZWFkaW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYXV0b0xldmVsJywgJ2NvbG9yJywgJ2ludmVydGVkJywgJ2xldmVsJywgJ25vV3JhcCcsICdzaGFkb3cnLCAnc3BhY2UnLCAnc3VidGl0bGUnLCAndmlzdWFsTGV2ZWwnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxIZWFkaW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsSGludCBleHRlbmRzIENvbXBvbmVudHMuQmFsSGludCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NlTGFiZWwnLCAnc21hbGwnXSxcbiAgbWV0aG9kczogWyd0b2dnbGUnLCAncHJlc2VudCcsICdkaXNtaXNzJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsSGludFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1oaW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY2xvc2VMYWJlbCcsICdzbWFsbCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEhpbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxIaW50VGV4dCBleHRlbmRzIENvbXBvbmVudHMuQmFsSGludFRleHQge31cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsSGludFRleHRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtaGludC10ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbEhpbnRUZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsSGludFRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxIaW50VGl0bGUge31cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsSGludFRpdGxlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWhpbnQtdGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsSGludFRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsSWNvbiBleHRlbmRzIENvbXBvbmVudHMuQmFsSWNvbiB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2NvbG9ySG92ZXJlZCcsICdjb2xvclByZXNzZWQnLCAnZGlzYWJsZWQnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaW52ZXJ0ZWQnLCAnbmFtZScsICdzaGFkb3cnLCAnc2l6ZScsICdzdmcnLCAndGlsZScsICd0aWxlQ29sb3InLCAndHVybiddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbEljb25cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2NvbG9ySG92ZXJlZCcsICdjb2xvclByZXNzZWQnLCAnZGlzYWJsZWQnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaW52ZXJ0ZWQnLCAnbmFtZScsICdzaGFkb3cnLCAnc2l6ZScsICdzdmcnLCAndGlsZScsICd0aWxlQ29sb3InLCAndHVybiddXG59KVxuZXhwb3J0IGNsYXNzIEJhbEljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuQmFsSW5wdXQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2NlcHQnLCAnYWxsb3dlZEtleVByZXNzJywgJ2F1dG9JbnZhbGlkT2ZmJywgJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvY29ycmVjdCcsICdhdXRvZm9jdXMnLCAnY2xpY2thYmxlJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ21hc2snLCAnbWF4JywgJ21heExlbmd0aCcsICdtaW4nLCAnbWluTGVuZ3RoJywgJ211bHRpcGxlJywgJ25hbWUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzcGVsbGNoZWNrJywgJ3N1ZmZpeCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ2dldElucHV0RWxlbWVudCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbElucHV0XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FsbG93ZWRLZXlQcmVzcycsICdhdXRvSW52YWxpZE9mZicsICdhdXRvY2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnYXV0b2NvcnJlY3QnLCAnYXV0b2ZvY3VzJywgJ2NsaWNrYWJsZScsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdtYXNrJywgJ21heCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21pbkxlbmd0aCcsICdtdWx0aXBsZScsICduYW1lJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3BlbGxjaGVjaycsICdzdWZmaXgnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxJbnB1dCcsICdiYWxCbHVyJywgJ2JhbEtleVByZXNzJywgJ2JhbEZvY3VzJywgJ2JhbENoYW5nZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbElucHV0IHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGlucHV0IG9jY3VycmVkLiAqL1xuICBiYWxJbnB1dCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXRDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGlucHV0IG9jY3VycmVkLiAqL1xuICBiYWxCbHVyITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGtleSBoYXMgcHJlc3NlZC4gKi9cbiAgYmFsS2V5UHJlc3MhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0Q3VzdG9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgaGFzIGNoYW5nZWQuICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXRDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsSW5wdXQnLCAnYmFsQmx1cicsICdiYWxLZXlQcmVzcycsICdiYWxGb2N1cycsICdiYWxDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsSW5wdXREYXRlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxJbnB1dERhdGUge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvd0ludmFsaWRWYWx1ZScsICdhdXRvSW52YWxpZE9mZicsICdhdXRvY29tcGxldGUnLCAnY2xpY2thYmxlJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZ2V0SW5wdXRFbGVtZW50J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsSW5wdXREYXRlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWlucHV0LWRhdGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhbGxvd0ludmFsaWRWYWx1ZScsICdhdXRvSW52YWxpZE9mZicsICdhdXRvY29tcGxldGUnLCAnY2xpY2thYmxlJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsS2V5UHJlc3MnLCAnYmFsQ2hhbmdlJywgJ2JhbElucHV0JywgJ2JhbEJsdXInLCAnYmFsRm9jdXMnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxJbnB1dERhdGUge1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQga2V5IGhhcyBwcmVzc2VkLiAqL1xuICBiYWxLZXlQcmVzcyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXREYXRlQ3VzdG9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEgb3B0aW9uIGdvdCBzZWxlY3RlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dERhdGVDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGlucHV0IG9jY3VycmVkLiAqL1xuICBiYWxJbnB1dCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXREYXRlQ3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLiAqL1xuICBiYWxCbHVyITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dERhdGVDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0RGF0ZUN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsS2V5UHJlc3MnLCAnYmFsQ2hhbmdlJywgJ2JhbElucHV0JywgJ2JhbEJsdXInLCAnYmFsRm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsSW5wdXRHcm91cCBleHRlbmRzIENvbXBvbmVudHMuQmFsSW5wdXRHcm91cCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAncmVhZG9ubHknXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxJbnB1dEdyb3VwXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWlucHV0LWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdyZWFkb25seSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbElucHV0R3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxJbnB1dFNsaWRlciBleHRlbmRzIENvbXBvbmVudHMuQmFsSW5wdXRTbGlkZXIge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdiYWxUYWJpbmRleCcsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdoYXNUaWNrcycsICdpbnZhbGlkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZ2V0SW5wdXRFbGVtZW50J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsSW5wdXRTbGlkZXJcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtaW5wdXQtc2xpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYXV0b0ludmFsaWRPZmYnLCAnYmFsVGFiaW5kZXgnLCAnZGVib3VuY2UnLCAnZGlzYWJsZWQnLCAnaGFzVGlja3MnLCAnaW52YWxpZCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc3RlcCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbElucHV0JywgJ2JhbEJsdXInLCAnYmFsS2V5UHJlc3MnLCAnYmFsRm9jdXMnLCAnYmFsQ2hhbmdlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsSW5wdXRTbGlkZXIge1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbElucHV0ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dFNsaWRlckN1c3RvbUV2ZW50PG51bWJlciB8IHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0U2xpZGVyQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQga2V5IGhhcyBwcmVzc2VkLiAqL1xuICBiYWxLZXlQcmVzcyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXRTbGlkZXJDdXN0b21FdmVudDxLZXlib2FyZEV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0U2xpZGVyQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBoYXMgY2hhbmdlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dFNsaWRlckN1c3RvbUV2ZW50PG51bWJlciB8IHN0cmluZz4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxJbnB1dCcsICdiYWxCbHVyJywgJ2JhbEtleVByZXNzJywgJ2JhbEZvY3VzJywgJ2JhbENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxJbnB1dFN0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLkJhbElucHV0U3RlcHBlciB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3JlYWRvbmx5JywgJ3N0ZXBzJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0SW5wdXRFbGVtZW50J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsSW5wdXRTdGVwcGVyXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWlucHV0LXN0ZXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkb25seScsICdzdGVwcycsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbENoYW5nZScsICdiYWxJbnB1dCcsICdiYWxJbmNyZWFzZScsICdiYWxEZWNyZWFzZScsICdiYWxGb2N1cycsICdiYWxCbHVyJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsSW5wdXRTdGVwcGVyIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgaGFzIGNoYW5nZWQuICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXRTdGVwcGVyQ3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGhhcyBjaGFuZ2VkLiAqL1xuICBiYWxJbnB1dCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXRTdGVwcGVyQ3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGhhcyBpbmNyZWFzZWQuICovXG4gIGJhbEluY3JlYXNlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dFN0ZXBwZXJDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgaGFzIGRlY3JlYXNlZC4gKi9cbiAgYmFsRGVjcmVhc2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbElucHV0U3RlcHBlckN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxJbnB1dFN0ZXBwZXJDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBrZXlib2FyZCBpbnB1dCBvY2N1cnJlZC4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsSW5wdXRTdGVwcGVyQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnLCAnYmFsSW5wdXQnLCAnYmFsSW5jcmVhc2UnLCAnYmFsRGVjcmVhc2UnLCAnYmFsRm9jdXMnLCAnYmFsQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuQmFsTGFiZWwge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdodG1sRm9yJywgJ2h0bWxJZCcsICdpbnZhbGlkJywgJ211bHRpbGluZScsICdub1dyYXAnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZCcsICd3ZWlnaHQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxMYWJlbFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2h0bWxGb3InLCAnaHRtbElkJywgJ2ludmFsaWQnLCAnbXVsdGlsaW5lJywgJ25vV3JhcCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbGlkJywgJ3dlaWdodCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbExhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTGlzdCBleHRlbmRzIENvbXBvbmVudHMuQmFsTGlzdCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY29yZGlvbk9uZUxldmVsJywgJ2JhY2tncm91bmQnLCAnYm9yZGVyJywgJ2Rpc2FibGVkJywgJ3NpemUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxMaXN0XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY2NvcmRpb25PbmVMZXZlbCcsICdiYWNrZ3JvdW5kJywgJ2JvcmRlcicsICdkaXNhYmxlZCcsICdzaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbExpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxMaXN0SXRlbSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY29yZGlvbicsICdjbGlja2FibGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnaHJlZicsICdyZWwnLCAnc2VsZWN0ZWQnLCAnc3ViQWNjb3JkaW9uSXRlbScsICd0YXJnZXQnXSxcbiAgbWV0aG9kczogWydwcmVzZW50JywgJ2Rpc21pc3MnLCAndG9nZ2xlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTGlzdEl0ZW1cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWNjb3JkaW9uJywgJ2NsaWNrYWJsZScsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ3JlbCcsICdzZWxlY3RlZCcsICdzdWJBY2NvcmRpb25JdGVtJywgJ3RhcmdldCddLFxuICBvdXRwdXRzOiBbJ2JhbE5hdmlnYXRlJywgJ2JhbEdyb3VwU3RhdGVDaGFuZ2VkJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxMaXN0SXRlbSB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGxpbmsgZWxlbWVudCBoYXMgY2xpY2tlZCAqL1xuICBiYWxOYXZpZ2F0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTGlzdEl0ZW1DdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSBncm91cCBpcyBjaGFuZ2luZyAqL1xuICBiYWxHcm91cFN0YXRlQ2hhbmdlZCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTGlzdEl0ZW1DdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0YXJ0cyAqL1xuICBiYWxXaWxsQW5pbWF0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTGlzdEl0ZW1DdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKiBFbWl0dGVkIGFmdGVyIHRoZSBhbmltYXRpb24gaGFzIGZpbmlzaGVkICovXG4gIGJhbERpZEFuaW1hdGUhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbExpc3RJdGVtQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxOYXZpZ2F0ZScsICdiYWxHcm91cFN0YXRlQ2hhbmdlZCcsICdiYWxXaWxsQW5pbWF0ZScsICdiYWxEaWRBbmltYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbExpc3RJdGVtQWNjb3JkaW9uQm9keSBleHRlbmRzIENvbXBvbmVudHMuQmFsTGlzdEl0ZW1BY2NvcmRpb25Cb2R5IHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjb3JkaW9uR3JvdXAnLCAnY29udGVudEFsaWdubWVudCcsICdjb250ZW50U3BhY2UnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxMaXN0SXRlbUFjY29yZGlvbkJvZHlcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbGlzdC1pdGVtLWFjY29yZGlvbi1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYWNjb3JkaW9uR3JvdXAnLCAnY29udGVudEFsaWdubWVudCcsICdjb250ZW50U3BhY2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxMaXN0SXRlbUFjY29yZGlvbkJvZHkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxMaXN0SXRlbUFjY29yZGlvbkhlYWQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbExpc3RJdGVtQWNjb3JkaW9uSGVhZCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY29yZGlvbk9wZW4nLCAnaWNvbiddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbExpc3RJdGVtQWNjb3JkaW9uSGVhZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1saXN0LWl0ZW0tYWNjb3JkaW9uLWhlYWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY2NvcmRpb25PcGVuJywgJ2ljb24nXSxcbiAgb3V0cHV0czogWydiYWxBY2NvcmRpb25DaGFuZ2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxMaXN0SXRlbUFjY29yZGlvbkhlYWQge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBhY2NvcmRpb24gc3RhdGUgaXMgY2hhbmdlZCAqL1xuICBiYWxBY2NvcmRpb25DaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbExpc3RJdGVtQWNjb3JkaW9uSGVhZEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQWNjb3JkaW9uQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbExpc3RJdGVtQ29udGVudCBleHRlbmRzIENvbXBvbmVudHMuQmFsTGlzdEl0ZW1Db250ZW50IHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudEFsaWdubWVudCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbExpc3RJdGVtQ29udGVudFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1saXN0LWl0ZW0tY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbnRlbnRBbGlnbm1lbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxMaXN0SXRlbUNvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxMaXN0SXRlbUljb24gZXh0ZW5kcyBDb21wb25lbnRzLkJhbExpc3RJdGVtSWNvbiB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3JpZ2h0J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTGlzdEl0ZW1JY29uXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWxpc3QtaXRlbS1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsncmlnaHQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxMaXN0SXRlbUljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxMaXN0SXRlbVN1YnRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxMaXN0SXRlbVN1YnRpdGxlIHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbExpc3RJdGVtU3VidGl0bGVcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbGlzdC1pdGVtLXN1YnRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbExpc3RJdGVtU3VidGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxMaXN0SXRlbVRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxMaXN0SXRlbVRpdGxlIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGV2ZWwnLCAndmlzdWFsTGV2ZWwnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxMaXN0SXRlbVRpdGxlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLWxpc3QtaXRlbS10aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2xldmVsJywgJ3Zpc3VhbExldmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTGlzdEl0ZW1UaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbExvZ28gZXh0ZW5kcyBDb21wb25lbnRzLkJhbExvZ28ge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmltYXRlZCcsICdjb2xvcicsICdzaXplJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTG9nb1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1sb2dvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnY29sb3InLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbExvZ28ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxNb2RhbCBleHRlbmRzIENvbXBvbmVudHMuQmFsTW9kYWwge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZHJvcERpc21pc3MnLCAnY29tcG9uZW50JywgJ2NvbXBvbmVudFByb3BzJywgJ2Nzc0NsYXNzJywgJ2ZvY3VzVHJhcCcsICdoYXNCYWNrZHJvcCcsICdpc0Nsb3NhYmxlJywgJ21vZGFsV2lkdGgnLCAnc3BhY2UnXSxcbiAgbWV0aG9kczogWydwcmVzZW50JywgJ2Rpc21pc3MnLCAnb25EaWREaXNtaXNzJywgJ29uV2lsbERpc21pc3MnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxNb2RhbFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1tb2RhbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2JhY2tkcm9wRGlzbWlzcycsICdjb21wb25lbnQnLCAnY29tcG9uZW50UHJvcHMnLCAnY3NzQ2xhc3MnLCAnZm9jdXNUcmFwJywgJ2hhc0JhY2tkcm9wJywgJ2lzQ2xvc2FibGUnLCAnbW9kYWxXaWR0aCcsICdzcGFjZSddLFxuICBvdXRwdXRzOiBbJ2JhbE1vZGFsRGlkUHJlc2VudCcsICdiYWxNb2RhbFdpbGxQcmVzZW50JywgJ2JhbE1vZGFsV2lsbERpc21pc3MnLCAnYmFsTW9kYWxEaWREaXNtaXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTW9kYWwge1xuICAvKiogRW1pdHRlZCBhZnRlciB0aGUgbW9kYWwgaGFzIHByZXNlbnRlZC4gKi9cbiAgYmFsTW9kYWxEaWRQcmVzZW50ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxNb2RhbEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBtb2RhbCBoYXMgcHJlc2VudGVkLiAqL1xuICBiYWxNb2RhbFdpbGxQcmVzZW50ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxNb2RhbEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBtb2RhbCBoYXMgZGlzbWlzc2VkLiAqL1xuICBiYWxNb2RhbFdpbGxEaXNtaXNzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxNb2RhbEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKiogRW1pdHRlZCBhZnRlciB0aGUgbW9kYWwgaGFzIGRpc21pc3NlZC4gKi9cbiAgYmFsTW9kYWxEaWREaXNtaXNzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxNb2RhbEN1c3RvbUV2ZW50PGFueT4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxNb2RhbERpZFByZXNlbnQnLCAnYmFsTW9kYWxXaWxsUHJlc2VudCcsICdiYWxNb2RhbFdpbGxEaXNtaXNzJywgJ2JhbE1vZGFsRGlkRGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxNb2RhbEJvZHkgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE1vZGFsQm9keSB7fVxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxNb2RhbEJvZHlcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbW9kYWwtYm9keScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYWxNb2RhbEJvZHkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxNb2RhbEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuQmFsTW9kYWxIZWFkZXIge31cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTW9kYWxIZWFkZXJcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbW9kYWwtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbE1vZGFsSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTmF2IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxOYXYge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydidXR0b25zJywgJ2xvZ28nLCAnb3B0aW9ucyddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdlxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1uYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydidXR0b25zJywgJ2xvZ28nLCAnb3B0aW9ucyddLFxuICBvdXRwdXRzOiBbJ2JhbE5hdkl0ZW1DbGljayddXG59KVxuZXhwb3J0IGNsYXNzIEJhbE5hdiB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBuYXYgbGluayBpdGVtIGlzIGNsaWNrZWQuIFRoaXMgZXZlbnQgY2FuIGJlIHVzZWQgdG9cbmFkZCBkYXRhIHRyYWNraW5nICovXG4gIGJhbE5hdkl0ZW1DbGljayE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTmF2Q3VzdG9tRXZlbnQ8QmFsRXZlbnRzLkJhbE5hdkl0ZW1DbGlja0RldGFpbD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxOYXZJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTmF2TGluayBleHRlbmRzIENvbXBvbmVudHMuQmFsTmF2TGluayB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdocmVmJywgJ3JlbCcsICdzZWxlY3RlZCcsICd0YXJnZXQnLCAndmFyaWFudCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdkxpbmtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbmF2LWxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjbGlja2FibGUnLCAnaHJlZicsICdyZWwnLCAnc2VsZWN0ZWQnLCAndGFyZ2V0JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxOYXZMaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTmF2TGlua0dyaWQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE5hdkxpbmtHcmlkIHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdkxpbmtHcmlkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW5hdi1saW5rLWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2TGlua0dyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXZMaW5rR3JpZENvbCBleHRlbmRzIENvbXBvbmVudHMuQmFsTmF2TGlua0dyaWRDb2wge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzdGF0aWNDb2wnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxOYXZMaW5rR3JpZENvbFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1uYXYtbGluay1ncmlkLWNvbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ3N0YXRpY0NvbCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbE5hdkxpbmtHcmlkQ29sIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTmF2TGlua0dyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxOYXZMaW5rR3JvdXAge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvciddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdkxpbmtHcm91cFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1uYXYtbGluay1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbG9yJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2TGlua0dyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTmF2TWVudUJhciBleHRlbmRzIENvbXBvbmVudHMuQmFsTmF2TWVudUJhciB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ludmlzaWJsZScsICdwb3NpdGlvbiddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdk1lbnVCYXJcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbmF2LW1lbnUtYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnaW52aXNpYmxlJywgJ3Bvc2l0aW9uJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2TWVudUJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE5hdk1lbnVGbHlvdXQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE5hdk1lbnVGbHlvdXQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyduYXZJZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdk1lbnVGbHlvdXRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbmF2LW1lbnUtZmx5b3V0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnbmF2SWQnXSxcbiAgb3V0cHV0czogWydiYWxGb2N1c091dCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbE5hdk1lbnVGbHlvdXQge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmbHlvdXQgbG9zZXMgZm9jdXMgKi9cbiAgYmFsRm9jdXNPdXQhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE5hdk1lbnVGbHlvdXRDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbEZvY3VzT3V0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE5hdk1ldGFCYXIgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE5hdk1ldGFCYXIge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbnZpc2libGUnLCAncG9zaXRpb24nLCAnc2l6ZScsICdzdGF5T25Ub3BPZkJhY2tkcm9wJywgJ3ZhcmlhbnQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxOYXZNZXRhQmFyXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW5hdi1tZXRhLWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2ludmlzaWJsZScsICdwb3NpdGlvbicsICdzaXplJywgJ3N0YXlPblRvcE9mQmFja2Ryb3AnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbE5hdk1ldGFCYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXZiYXIgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE5hdmJhciB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lcicsICdpbnRlcmZhY2UnLCAnbGlnaHQnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVNZW51J10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTmF2YmFyXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLW5hdmJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lcicsICdpbnRlcmZhY2UnLCAnbGlnaHQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxOYXZiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXZiYXJCcmFuZCBleHRlbmRzIENvbXBvbmVudHMuQmFsTmF2YmFyQnJhbmQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmltYXRlZCcsICdocmVmJywgJ2xvZ28nLCAnbG9nb0NsaWNrYWJsZScsICdsb2dvTGFiZWwnLCAnbG9nb1NpemUnLCAncmVsJywgJ3NpbXBsZScsICd0YXJnZXQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxOYXZiYXJCcmFuZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1uYXZiYXItYnJhbmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhbmltYXRlZCcsICdocmVmJywgJ2xvZ28nLCAnbG9nb0NsaWNrYWJsZScsICdsb2dvTGFiZWwnLCAnbG9nb1NpemUnLCAncmVsJywgJ3NpbXBsZScsICd0YXJnZXQnXSxcbiAgb3V0cHV0czogWydiYWxOYXZpZ2F0ZScsICdiYWxXaWxsQW5pbWF0ZScsICdiYWxEaWRBbmltYXRlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2YmFyQnJhbmQge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBsaW5rIGVsZW1lbnQgaGFzIGNsaWNrZWQgKi9cbiAgYmFsTmF2aWdhdGUhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE5hdmJhckJyYW5kQ3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKiogRW1pdHRlZCBiZWZvcmUgdGhlIGFuaW1hdGlvbiBzdGFydHMgKi9cbiAgYmFsV2lsbEFuaW1hdGUhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE5hdmJhckJyYW5kQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKiogRW1pdHRlZCBhZnRlciB0aGUgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCAqL1xuICBiYWxEaWRBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxOYXZiYXJCcmFuZEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsTmF2aWdhdGUnLCAnYmFsV2lsbEFuaW1hdGUnLCAnYmFsRGlkQW5pbWF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOYXZiYXJNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxOYXZiYXJNZW51IHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdmJhck1lbnVcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbmF2YmFyLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2YmFyTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE5hdmJhck1lbnVFbmQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE5hdmJhck1lbnVFbmQge31cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsTmF2YmFyTWVudUVuZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1uYXZiYXItbWVudS1lbmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmFsTmF2YmFyTWVudUVuZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE5hdmJhck1lbnVTdGFydCBleHRlbmRzIENvbXBvbmVudHMuQmFsTmF2YmFyTWVudVN0YXJ0IHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5hdmJhck1lbnVTdGFydFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1uYXZiYXItbWVudS1zdGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYWxOYXZiYXJNZW51U3RhcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxOb3RpY2VzIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxOb3RpY2VzIHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbE5vdGljZXNcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbm90aWNlcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBCYWxOb3RpY2VzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTm90aWZpY2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxOb3RpZmljYXRpb24ge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdsaWdodCcsICdub0ljb24nXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxOb3RpZmljYXRpb25cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtbm90aWZpY2F0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29sb3InLCAnbGlnaHQnLCAnbm9JY29uJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTm90aWZpY2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsTnVtYmVySW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbE51bWJlcklucHV0IHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0ludmFsaWRPZmYnLCAnZGVib3VuY2UnLCAnZGVjaW1hbCcsICdkaXNhYmxlZCcsICdleGFjdE51bWJlcicsICdpbnZhbGlkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdvbmx5UG9zaXRpdmUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzdWZmaXgnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdnZXRJbnB1dEVsZW1lbnQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxOdW1iZXJJbnB1dFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1udW1iZXItaW5wdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdkZWJvdW5jZScsICdkZWNpbWFsJywgJ2Rpc2FibGVkJywgJ2V4YWN0TnVtYmVyJywgJ2ludmFsaWQnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ29ubHlQb3NpdGl2ZScsICdwYXR0ZXJuJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3N1ZmZpeCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbElucHV0JywgJ2JhbENoYW5nZScsICdiYWxCbHVyJywgJ2JhbEZvY3VzJywgJ2JhbEtleVByZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsTnVtYmVySW5wdXQge1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbElucHV0ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxOdW1iZXJJbnB1dEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxOdW1iZXJJbnB1dEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTnVtYmVySW5wdXRDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbE51bWJlcklucHV0Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQga2V5IGhhcyBwcmVzc2VkLiAqL1xuICBiYWxLZXlQcmVzcyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsTnVtYmVySW5wdXRDdXN0b21FdmVudDxLZXlib2FyZEV2ZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbElucHV0JywgJ2JhbENoYW5nZScsICdiYWxCbHVyJywgJ2JhbEZvY3VzJywgJ2JhbEtleVByZXNzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbE9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuQmFsT3B0aW9uIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZm9jdXNlZCcsICdoaWRkZW4nLCAnaW52YWxpZCcsICdsYWJlbCcsICdtdWx0aWxpbmUnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZWxlY3QnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxPcHRpb25cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtb3B0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZm9jdXNlZCcsICdoaWRkZW4nLCAnaW52YWxpZCcsICdsYWJlbCcsICdtdWx0aWxpbmUnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxPcHRpb25DaGFuZ2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxPcHRpb24ge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBvcHRpb24gZ2V0cyBzZWxlY3RlZCBvciB1bnNlbGVjdGVkICovXG4gIGJhbE9wdGlvbkNoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsT3B0aW9uQ3VzdG9tRXZlbnQ8QmFsRXZlbnRzLkJhbE9wdGlvbkNoYW5nZURldGFpbD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxPcHRpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsT3B0aW9uTGlzdCBleHRlbmRzIENvbXBvbmVudHMuQmFsT3B0aW9uTGlzdCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnRIZWlnaHQnLCAnZGlzYWJsZWQnLCAnZmlsdGVyJywgJ2ZvY3VzSW5kZXgnLCAnbGFiZWxsZWRieScsICdtdWx0aXBsZScsICdyZXF1aXJlZCddLFxuICBtZXRob2RzOiBbJ2ZvY3VzU2VsZWN0ZWQnLCAnZm9jdXNGaXJzdCcsICdmb2N1c0xhc3QnLCAnZm9jdXNOZXh0JywgJ2ZvY3VzUHJldmlvdXMnLCAnZm9jdXNCeUxhYmVsJywgJ2ZpbHRlckJ5Q29udGVudCcsICdyZXNldEhpZGRlbicsICdyZXNldFNlbGVjdGVkJywgJ3VwZGF0ZVNlbGVjdGVkJywgJ3Jlc2V0Rm9jdXMnLCAnZ2V0U2VsZWN0ZWRWYWx1ZXMnLCAnZ2V0U2VsZWN0ZWRPcHRpb25zJywgJ2dldFZhbHVlcycsICdnZXRMYWJlbHMnLCAnZ2V0T3B0aW9ucycsICdzZWxlY3RCeUZvY3VzJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsT3B0aW9uTGlzdFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1vcHRpb24tbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbnRlbnRIZWlnaHQnLCAnZGlzYWJsZWQnLCAnZmlsdGVyJywgJ2ZvY3VzSW5kZXgnLCAnbGFiZWxsZWRieScsICdtdWx0aXBsZScsICdyZXF1aXJlZCddXG59KVxuZXhwb3J0IGNsYXNzIEJhbE9wdGlvbkxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxQYWdpbmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxQYWdpbmF0aW9uIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxpZ24nLCAnZGlzYWJsZWQnLCAnaW50ZXJmYWNlJywgJ3BhZ2VSYW5nZScsICdzaXplJywgJ3N0aWNreScsICd0b3AnLCAndG90YWxQYWdlcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ25leHQnLCAncHJldmlvdXMnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxQYWdpbmF0aW9uXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXBhZ2luYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhbGlnbicsICdkaXNhYmxlZCcsICdpbnRlcmZhY2UnLCAncGFnZVJhbmdlJywgJ3NpemUnLCAnc3RpY2t5JywgJ3RvcCcsICd0b3RhbFBhZ2VzJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsUGFnaW5hdGlvbiB7XG4gIC8qKiBUcmlnZ2VycyB3aGVuIGEgcGFnZSBjaGFuZ2UgaGFwcGVucyAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFBhZ2luYXRpb25DdXN0b21FdmVudDxudW1iZXI+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFBvcG92ZXIgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFBvcG92ZXIge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnYXJyb3cnLCAnYXV0b1RyaWdnZXInLCAnYmFja2Ryb3AnLCAnaGludCcsICdob3ZlcicsICdtb2JpbGVUb3AnLCAnb2Zmc2V0WCcsICdvZmZzZXRZJywgJ3BhZGRpbmcnLCAncG9zaXRpb24nLCAndG9vbHRpcCddLFxuICBtZXRob2RzOiBbJ3ByZXNlbnQnLCAnZGlzbWlzcycsICd0b2dnbGUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxQb3BvdmVyXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXBvcG92ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY3RpdmUnLCAnYXJyb3cnLCAnYXV0b1RyaWdnZXInLCAnYmFja2Ryb3AnLCAnaGludCcsICdob3ZlcicsICdtb2JpbGVUb3AnLCAnb2Zmc2V0WCcsICdvZmZzZXRZJywgJ3BhZGRpbmcnLCAncG9zaXRpb24nLCAndG9vbHRpcCddLFxuICBvdXRwdXRzOiBbJ2JhbENoYW5nZScsICdiYWxXaWxsQW5pbWF0ZScsICdiYWxEaWRBbmltYXRlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsUG9wb3ZlciB7XG4gIC8qKiBMaXN0ZW4gd2hlbiB0aGUgcG9wb3ZlciBvcGVucyBvciBjbG9zZXMuIFJldHVybnMgdGhlIGN1cnJlbnQgdmFsdWUuICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsUG9wb3ZlckN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhbmltYXRpb24gc3RhcnRzICovXG4gIGJhbFdpbGxBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxQb3BvdmVyQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKiogRW1pdHRlZCBhZnRlciB0aGUgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCAqL1xuICBiYWxEaWRBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxQb3BvdmVyQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnLCAnYmFsV2lsbEFuaW1hdGUnLCAnYmFsRGlkQW5pbWF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxQb3BvdmVyQ29udGVudCBleHRlbmRzIENvbXBvbmVudHMuQmFsUG9wb3ZlckNvbnRlbnQge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdjb250ZW50TWluV2lkdGgnLCAnY29udGVudFdpZHRoJywgJ2V4cGFuZGVkJywgJ21vYmlsZVRvcCcsICdub1NoYWRvdycsICdyYWRpdXMnLCAnc2Nyb2xsYWJsZScsICdzcGFjZWxlc3MnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxQb3BvdmVyQ29udGVudFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1wb3BvdmVyLWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjb2xvcicsICdjb250ZW50TWluV2lkdGgnLCAnY29udGVudFdpZHRoJywgJ2V4cGFuZGVkJywgJ21vYmlsZVRvcCcsICdub1NoYWRvdycsICdyYWRpdXMnLCAnc2Nyb2xsYWJsZScsICdzcGFjZWxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxQb3BvdmVyQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFBvcHVwIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxQb3B1cCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhcnJvdycsICdiYWNrZHJvcCcsICdiYWNrZHJvcERpc21pc3MnLCAnY2xvc2FibGUnLCAnY29udGVudFdpZHRoJywgJ2xhYmVsJywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydwcmVzZW50JywgJ2Rpc21pc3MnLCAndG9nZ2xlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsUG9wdXBcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtcG9wdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY3RpdmUnLCAnYXJyb3cnLCAnYmFja2Ryb3AnLCAnYmFja2Ryb3BEaXNtaXNzJywgJ2Nsb3NhYmxlJywgJ2NvbnRlbnRXaWR0aCcsICdsYWJlbCcsICdvZmZzZXQnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZScsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxQb3B1cCB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGFjY29yZGlvbiBoYXMgb3BlbmVkIG9yIGNsb3NlZCAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFBvcHVwQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKiogRW1pdHRlZCBiZWZvcmUgdGhlIGFuaW1hdGlvbiBzdGFydHMgKi9cbiAgYmFsV2lsbEFuaW1hdGUhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFBvcHVwQ3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKiogRW1pdHRlZCBhZnRlciB0aGUgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCAqL1xuICBiYWxEaWRBbmltYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxQb3B1cEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2hhbmdlJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsUHJvZ3Jlc3NCYXIgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFByb2dyZXNzQmFyIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdjb2xvcicsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2NvbmZpZ0NoYW5nZWQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxQcm9ncmVzc0JhclxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1wcm9ncmVzcy1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2NvbG9yJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsUHJvZ3Jlc3NCYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxSYWRpbyBleHRlbmRzIENvbXBvbmVudHMuQmFsUmFkaW8ge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdkaXNhYmxlZCcsICdmbGF0JywgJ2ludGVyZmFjZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ25hbWUnLCAnbm9uU3VibWl0JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZ2V0SW5wdXRFbGVtZW50JywgJ2dldE9wdGlvbiddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFJhZGlvXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzYWJsZWQnLCAnZmxhdCcsICdpbnRlcmZhY2UnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICduYW1lJywgJ25vblN1Ym1pdCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbEZvY3VzJywgJ2JhbEJsdXInLCAnYmFsQ2hhbmdlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsUmFkaW8ge1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0b2dnbGUgaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsUmFkaW9DdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRvZ2dsZSBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsUmFkaW9DdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNoZWNrZWQgcHJvcGVydHkgaGFzIGNoYW5nZWQuICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsUmFkaW9DdXN0b21FdmVudDxib29sZWFuPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbEZvY3VzJywgJ2JhbEJsdXInLCAnYmFsQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFJhZGlvR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFJhZGlvR3JvdXAge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvd0VtcHR5U2VsZWN0aW9uJywgJ2F1dG9JbnZhbGlkT2ZmJywgJ2NvbHVtbnMnLCAnY29sdW1uc01vYmlsZScsICdjb2x1bW5zVGFibGV0JywgJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJywgJ2ludGVyZmFjZScsICdpbnZhbGlkJywgJ25hbWUnLCAnb3B0aW9ucycsICdyZWFkb25seScsICd2YWx1ZScsICd2ZXJ0aWNhbCcsICd2ZXJ0aWNhbE9uTW9iaWxlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0T3B0aW9uQnlWYWx1ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFJhZGlvR3JvdXBcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtcmFkaW8tZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhbGxvd0VtcHR5U2VsZWN0aW9uJywgJ2F1dG9JbnZhbGlkT2ZmJywgJ2NvbHVtbnMnLCAnY29sdW1uc01vYmlsZScsICdjb2x1bW5zVGFibGV0JywgJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJywgJ2ludGVyZmFjZScsICdpbnZhbGlkJywgJ25hbWUnLCAnb3B0aW9ucycsICdyZWFkb25seScsICd2YWx1ZScsICd2ZXJ0aWNhbCcsICd2ZXJ0aWNhbE9uTW9iaWxlJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJywgJ2JhbEZvY3VzJywgJ2JhbEJsdXInXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxSYWRpb0dyb3VwIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgY2hlY2tlZCBwcm9wZXJ0eSBoYXMgY2hhbmdlZC4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxSYWRpb0dyb3VwQ3VzdG9tRXZlbnQ8Ym9vbGVhbiB8IG51bWJlciB8IHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0b2dnbGUgaGFzIGZvY3VzLiAqL1xuICBiYWxGb2N1cyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsUmFkaW9Hcm91cEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdG9nZ2xlIGxvc2VzIGZvY3VzLiAqL1xuICBiYWxCbHVyITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxSYWRpb0dyb3VwQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnLCAnYmFsRm9jdXMnLCAnYmFsQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxSYWRpb0ljb24gZXh0ZW5kcyBDb21wb25lbnRzLkJhbFJhZGlvSWNvbiB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICdpbnZlcnRlZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFJhZGlvSWNvblxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1yYWRpby1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ2ludmVydGVkJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsUmFkaW9JY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsU2VnbWVudCBleHRlbmRzIENvbXBvbmVudHMuQmFsU2VnbWVudCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJywgJ2ludmFsaWQnLCAnc2Nyb2xsYWJsZScsICd2YWx1ZScsICd2ZXJ0aWNhbCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFNlZ21lbnRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc2VnbWVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2Rpc2FibGVkJywgJ2V4cGFuZGVkJywgJ2ludmFsaWQnLCAnc2Nyb2xsYWJsZScsICd2YWx1ZScsICd2ZXJ0aWNhbCddLFxuICBvdXRwdXRzOiBbJ2JhbEZvY3VzJywgJ2JhbEJsdXInLCAnYmFsQ2hhbmdlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU2VnbWVudCB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRvZ2dsZSBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTZWdtZW50Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBjb21wb25lbnQgd2FzIHRvdWNoZWQgKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsU2VnbWVudEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdmFsdWUgcHJvcGVydHkgaGFzIGNoYW5nZWQgYW5kIGFueSBkcmFnZ2luZyBwb2ludGVyIGhhcyBiZWVuIHJlbGVhc2VkIGZyb20gYGJhbC1zZWdtZW50YC5cblxuVGhpcyBldmVudCB3aWxsIG5vdCBlbWl0IHdoZW4gcHJvZ3JhbW1hdGljYWxseSBzZXR0aW5nIHRoZSBgdmFsdWVgIHByb3BlcnR5LiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFNlZ21lbnRDdXN0b21FdmVudDxib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbEZvY3VzJywgJ2JhbEJsdXInLCAnYmFsQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFNlZ21lbnRJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTZWdtZW50SXRlbSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAndmFsdWUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTZWdtZW50SXRlbVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zZWdtZW50LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU2VnbWVudEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFNlbGVjdCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2F1dG9jb21wbGV0ZScsICdiYWxUYWJpbmRleCcsICdkaXNhYmxlZCcsICdmaWx0ZXInLCAnZnJlZVNvbG8nLCAnaW52YWxpZCcsICdsb2FkaW5nJywgJ21heExlbmd0aCcsICdtdWx0aXBsZScsICduYW1lJywgJ25vRGF0YUxhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlbW90ZScsICdyZXF1aXJlZCcsICdzY3JvbGxhYmxlJywgJ3NlbGVjdGlvbk9wdGlvbmFsJywgJ3R5cGVhaGVhZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ2dldFZhbHVlJywgJ2NsZWFyJywgJ29wZW4nLCAnY2xvc2UnLCAnY2FuY2VsJywgJ3NlbGVjdCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFNlbGVjdFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhdXRvSW52YWxpZE9mZicsICdhdXRvY29tcGxldGUnLCAnYmFsVGFiaW5kZXgnLCAnZGlzYWJsZWQnLCAnZmlsdGVyJywgJ2ZyZWVTb2xvJywgJ2ludmFsaWQnLCAnbG9hZGluZycsICdtYXhMZW5ndGgnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdub0RhdGFMYWJlbCcsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZW1vdGUnLCAncmVxdWlyZWQnLCAnc2Nyb2xsYWJsZScsICdzZWxlY3Rpb25PcHRpb25hbCcsICd0eXBlYWhlYWQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxDaGFuZ2UnLCAnYmFsSW5wdXRDbGljaycsICdiYWxJbnB1dCcsICdiYWxCbHVyJywgJ2JhbEZvY3VzJywgJ2JhbENhbmNlbCcsICdiYWxLZXlQcmVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFNlbGVjdCB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBvcHRpb24gZ290IHNlbGVjdGVkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFNlbGVjdEN1c3RvbUV2ZW50PHN0cmluZyB8IHN0cmluZ1tdPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGdvdCBjbGlja2VkLiAqL1xuICBiYWxJbnB1dENsaWNrITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTZWxlY3RDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBrZXlib2FyZCBpbnB1dCBvY2N1cnJlZC4gKi9cbiAgYmFsSW5wdXQhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFNlbGVjdEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy4gKi9cbiAgYmFsQmx1ciE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsU2VsZWN0Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBoYXMgZm9jdXMuICovXG4gIGJhbEZvY3VzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTZWxlY3RDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgY2FuY2VscyB0aGUgaW5wdXQuICovXG4gIGJhbENhbmNlbCE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsU2VsZWN0Q3VzdG9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBoYXMgZm9jdXMgYW5kIGtleSBmcm9tIHRoZSBrZXlib2FyZCBnbyBoaXQuICovXG4gIGJhbEtleVByZXNzITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTZWxlY3RDdXN0b21FdmVudDxLZXlib2FyZEV2ZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENoYW5nZScsICdiYWxJbnB1dENsaWNrJywgJ2JhbElucHV0JywgJ2JhbEJsdXInLCAnYmFsRm9jdXMnLCAnYmFsQ2FuY2VsJywgJ2JhbEtleVByZXNzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFNlbGVjdE9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuQmFsU2VsZWN0T3B0aW9uIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnbGFiZWwnLCAndmFsdWUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTZWxlY3RPcHRpb25cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc2VsZWN0LW9wdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2xhYmVsJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU2VsZWN0T3B0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsU2hhcGUgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFNoYXBlIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAncm90YXRpb24nLCAndmFyaWF0aW9uJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsU2hhcGVcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc2hhcGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjb2xvcicsICdyb3RhdGlvbicsICd2YXJpYXRpb24nXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTaGFwZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFNoZWV0IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTaGVldCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lclNpemUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTaGVldFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zaGVldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lclNpemUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTaGVldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFNuYWNrYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTbmFja2JhciB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbicsICdjb2xvcicsICdkdXJhdGlvbicsICdocmVmJywgJ2ljb24nLCAnbWVzc2FnZScsICdzdWJqZWN0JywgJ3RhcmdldCddLFxuICBtZXRob2RzOiBbJ2Nsb3NlSW4nLCAnY2xvc2UnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTbmFja2JhclxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zbmFja2JhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2FjdGlvbicsICdjb2xvcicsICdkdXJhdGlvbicsICdocmVmJywgJ2ljb24nLCAnbWVzc2FnZScsICdzdWJqZWN0JywgJ3RhcmdldCddLFxuICBvdXRwdXRzOiBbJ2JhbENsb3NlJywgJ2JhbEFjdGlvbiddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFNuYWNrYmFyIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBzbmFja2JhciBpcyBjbG9zZWQgKi9cbiAgYmFsQ2xvc2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFNuYWNrYmFyQ3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGFjdGlvbiBidXR0b24gaXMgY2xpY2tlZCAqL1xuICBiYWxBY3Rpb24hOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFNuYWNrYmFyQ3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENsb3NlJywgJ2JhbEFjdGlvbiddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTcGlubmVyIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTcGlubmVyIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnZGVhY3RpdmF0ZWQnLCAnaW52ZXJ0ZWQnLCAnc21hbGwnLCAndmFyaWF0aW9uJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsU3Bpbm5lclxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zcGlubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29sb3InLCAnZGVhY3RpdmF0ZWQnLCAnaW52ZXJ0ZWQnLCAnc21hbGwnLCAndmFyaWF0aW9uJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU3Bpbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFN0YWNrIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTdGFjayB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2ZpdENvbnRlbnQnLCAnbGF5b3V0JywgJ3B4JywgJ3B5JywgJ3NwYWNlJywgJ3NwYWNlQ29sdW1uJywgJ3NwYWNlUm93JywgJ3VzZVdyYXAnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTdGFja1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zdGFjaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2ZpdENvbnRlbnQnLCAnbGF5b3V0JywgJ3B4JywgJ3B5JywgJ3NwYWNlJywgJ3NwYWNlQ29sdW1uJywgJ3NwYWNlUm93JywgJ3VzZVdyYXAnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTdGFjayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFN0YWdlIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTdGFnZSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2NvbnRhaW5lclNpemUnLCAnc2hhcGUnLCAnc2hhcGVSb3RhdGlvbicsICdzaGFwZVZhcmlhdGlvbicsICdzaXplJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsU3RhZ2Vcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc3RhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjb2xvcicsICdjb250YWluZXJTaXplJywgJ3NoYXBlJywgJ3NoYXBlUm90YXRpb24nLCAnc2hhcGVWYXJpYXRpb24nLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFN0YWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsU3RhZ2VCYWNrTGluayBleHRlbmRzIENvbXBvbmVudHMuQmFsU3RhZ2VCYWNrTGluayB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hyZWYnLCAnaW52ZXJ0ZWQnLCAncmVsJywgJ3NoYWRvdyddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFN0YWdlQmFja0xpbmtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtc3RhZ2UtYmFjay1saW5rJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnaHJlZicsICdpbnZlcnRlZCcsICdyZWwnLCAnc2hhZG93J11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU3RhZ2VCYWNrTGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFN0YWdlQm9keSBleHRlbmRzIENvbXBvbmVudHMuQmFsU3RhZ2VCb2R5IHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFN0YWdlQm9keVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zdGFnZS1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbFN0YWdlQm9keSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFN0YWdlRm9vdCBleHRlbmRzIENvbXBvbmVudHMuQmFsU3RhZ2VGb290IHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFN0YWdlRm9vdFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zdGFnZS1mb290JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbFN0YWdlRm9vdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFN0YWdlSGVhZCBleHRlbmRzIENvbXBvbmVudHMuQmFsU3RhZ2VIZWFkIHt9XG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFN0YWdlSGVhZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zdGFnZS1oZWFkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbFN0YWdlSGVhZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFN0YWdlSW1hZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFN0YWdlSW1hZ2Uge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmYWxsYmFjaycsICdzcmNTZXQnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxTdGFnZUltYWdlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXN0YWdlLWltYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnZmFsbGJhY2snLCAnc3JjU2V0J11cbn0pXG5leHBvcnQgY2xhc3MgQmFsU3RhZ2VJbWFnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFN0ZXBJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxTdGVwSXRlbSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdkaXNhYmxlZCcsICdkb25lJywgJ2ZhaWxlZCcsICdocmVmJywgJ2ludmlzaWJsZScsICdsYWJlbCcsICdwcmV2ZW50JywgJ3JlbCcsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydnZXRPcHRpb25zJywgJ3NldEFjdGl2ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFN0ZXBJdGVtXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXN0ZXAtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdkaXNhYmxlZCcsICdkb25lJywgJ2ZhaWxlZCcsICdocmVmJywgJ2ludmlzaWJsZScsICdsYWJlbCcsICdwcmV2ZW50JywgJ3JlbCcsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxOYXZpZ2F0ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFN0ZXBJdGVtIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbGluayBlbGVtZW50IGhhcyBjbGlja2VkICovXG4gIGJhbE5hdmlnYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxTdGVwSXRlbUN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsTmF2aWdhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsU3RlcHMgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFN0ZXBzIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xpY2thYmxlJywgJ2NvbG9yJywgJ2RlYm91bmNlJywgJ29wdGlvbnMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZWxlY3QnLCAnZ2V0T3B0aW9uQnlWYWx1ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFN0ZXBzXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXN0ZXBzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY2xpY2thYmxlJywgJ2NvbG9yJywgJ2RlYm91bmNlJywgJ29wdGlvbnMnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydiYWxDaGFuZ2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTdGVwcyB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNoYW5nZXMgaGFzIGZpbmlzaGVkLiAqL1xuICBiYWxDaGFuZ2UhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFN0ZXBzQ3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxTd2l0Y2ggZXh0ZW5kcyBDb21wb25lbnRzLkJhbFN3aXRjaCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW52YWxpZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFN3aXRjaFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC1zd2l0Y2gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxTd2l0Y2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxUYWJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxUYWJJdGVtIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2FjdGl2ZScsICdidWJibGUnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ludmlzaWJsZScsICdsYWJlbCcsICdub1BhbmVsJywgJ3ByZXZlbnQnLCAncmVsJywgJ3N1YkxhYmVsJywgJ3N2ZycsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydnZXRPcHRpb25zJywgJ3NldEFjdGl2ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFRhYkl0ZW1cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtdGFiLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYWN0aXZlJywgJ2J1YmJsZScsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnaW52aXNpYmxlJywgJ2xhYmVsJywgJ25vUGFuZWwnLCAncHJldmVudCcsICdyZWwnLCAnc3ViTGFiZWwnLCAnc3ZnJywgJ3RhcmdldCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ2JhbE5hdmlnYXRlJywgJ2JhbEtleURvd24nXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxUYWJJdGVtIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbGluayBlbGVtZW50IGhhcyBjbGlja2VkICovXG4gIGJhbE5hdmlnYXRlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUYWJJdGVtQ3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIHRoZSBsaW5rIGVsZW1lbnQgaGFzIGNsaWNrZWQgKi9cbiAgYmFsS2V5RG93biE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGFiSXRlbUN1c3RvbUV2ZW50PEtleWJvYXJkRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsTmF2aWdhdGUnLCAnYmFsS2V5RG93biddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuQmFsVGFibGUge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHBhbmRlZCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFRhYmxlXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnZXhwYW5kZWQnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFRhYnMgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFRhYnMge31cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2NvcmRpb24nLCAnYm9yZGVyJywgJ2NsaWNrYWJsZScsICdjb250ZXh0JywgJ2RlYm91bmNlJywgJ2RpbUluYWN0aXZlRWxlbWVudHMnLCAnZXhwYW5kZWQnLCAnZmxvYXQnLCAnZnVsbHdpZHRoJywgJ2hhbmRsZUFzVGFiTGlzdCcsICdpY29uUG9zaXRpb24nLCAnaW52ZXJ0ZWQnLCAnb3B0aW9uYWxUYWJTZWxlY3Rpb24nLCAnb3B0aW9ucycsICdvdmVyZmxvdycsICdzZWxlY3RPbk1vYmlsZScsICdzcGFjZWxlc3MnLCAndmFsdWUnLCAndmVydGljYWwnLCAndmVydGljYWxDb2xTaXplJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0JywgJ2dldE9wdGlvbkJ5VmFsdWUnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxUYWJzXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXRhYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydhY2NvcmRpb24nLCAnYm9yZGVyJywgJ2NsaWNrYWJsZScsICdjb250ZXh0JywgJ2RlYm91bmNlJywgJ2RpbUluYWN0aXZlRWxlbWVudHMnLCAnZXhwYW5kZWQnLCAnZmxvYXQnLCAnZnVsbHdpZHRoJywgJ2hhbmRsZUFzVGFiTGlzdCcsICdpY29uUG9zaXRpb24nLCAnaW52ZXJ0ZWQnLCAnb3B0aW9uYWxUYWJTZWxlY3Rpb24nLCAnb3B0aW9ucycsICdvdmVyZmxvdycsICdzZWxlY3RPbk1vYmlsZScsICdzcGFjZWxlc3MnLCAndmFsdWUnLCAndmVydGljYWwnLCAndmVydGljYWxDb2xTaXplJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJywgJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxUYWJzIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgY2hhbmdlcyBoYXMgZmluaXNoZWQuICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGFic0N1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCBiZWZvcmUgdGhlIGFuaW1hdGlvbiBzdGFydHMgKi9cbiAgYmFsV2lsbEFuaW1hdGUhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRhYnNDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQgKi9cbiAgYmFsRGlkQW5pbWF0ZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGFic0N1c3RvbUV2ZW50PHN0cmluZz4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnLCAnYmFsV2lsbEFuaW1hdGUnLCAnYmFsRGlkQW5pbWF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxUYWcgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFRhZyB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NhYmxlJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbGlnaHQnLCAncG9zaXRpb24nLCAnc2l6ZSddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFRhZ1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjbG9zYWJsZScsICdjb2xvcicsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ2xpZ2h0JywgJ3Bvc2l0aW9uJywgJ3NpemUnXSxcbiAgb3V0cHV0czogWydiYWxDbG9zZUNsaWNrJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsVGFnIHtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgZ290IGNsaWNrZWQuICovXG4gIGJhbENsb3NlQ2xpY2shOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRhZ0N1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYmFsQ2xvc2VDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxUYWdHcm91cCBleHRlbmRzIENvbXBvbmVudHMuQmFsVGFnR3JvdXAge31cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsVGFnR3JvdXBcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtdGFnLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJhbFRhZ0dyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQmFsVGV4dCBleHRlbmRzIENvbXBvbmVudHMuQmFsVGV4dCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JvbGQnLCAnY29sb3InLCAnZGlzYWJsZWQnLCAnaGVhZGluZycsICdpbmxpbmUnLCAnaW52YWxpZCcsICdpbnZlcnRlZCcsICdub1dyYXAnLCAnc2hhZG93JywgJ3NpemUnLCAnc3BhY2UnXSxcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVCYWxUZXh0XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydib2xkJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ2hlYWRpbmcnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaW52ZXJ0ZWQnLCAnbm9XcmFwJywgJ3NoYWRvdycsICdzaXplJywgJ3NwYWNlJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFsVGV4dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFRleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxUZXh0YXJlYSB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvZm9jdXMnLCAnY2xpY2thYmxlJywgJ2NvbHMnLCAnZGVib3VuY2UnLCAnZGlzYWJsZWQnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbWF4TGVuZ3RoJywgJ21pbkxlbmd0aCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Jvd3MnLCAndmFsdWUnLCAnd3JhcCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ2dldElucHV0RWxlbWVudCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFRleHRhcmVhXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFsLXRleHRhcmVhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYXV0b0ludmFsaWRPZmYnLCAnYXV0b2NhcGl0YWxpemUnLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdjbGlja2FibGUnLCAnY29scycsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdtYXhMZW5ndGgnLCAnbWluTGVuZ3RoJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncm93cycsICd2YWx1ZScsICd3cmFwJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2hhbmdlJywgJ2JhbElucHV0JywgJ2JhbEJsdXInLCAnYmFsS2V5UHJlc3MnLCAnYmFsRm9jdXMnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxUZXh0YXJlYSB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGhhcyBjaGFuZ2VkLi4gKi9cbiAgYmFsQ2hhbmdlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUZXh0YXJlYUN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbElucHV0ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUZXh0YXJlYUN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbEJsdXIhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRleHRhcmVhQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQga2V5IGhhcyBwcmVzc2VkLiAqL1xuICBiYWxLZXlQcmVzcyE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGV4dGFyZWFDdXN0b21FdmVudDxLZXlib2FyZEV2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRleHRhcmVhQ3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDaGFuZ2UnLCAnYmFsSW5wdXQnLCAnYmFsQmx1cicsICdiYWxLZXlQcmVzcycsICdiYWxGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxUaW1lSW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLkJhbFRpbWVJbnB1dCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9JbnZhbGlkT2ZmJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ2dldElucHV0RWxlbWVudCddLFxuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUJhbFRpbWVJbnB1dFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC10aW1lLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnYXV0b0ludmFsaWRPZmYnLCAnZGVib3VuY2UnLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnYmFsSW5wdXQnLCAnYmFsQ2hhbmdlJywgJ2JhbEJsdXInLCAnYmFsRm9jdXMnLCAnYmFsS2V5UHJlc3MnLCAnYmFsQ2xpY2snXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxUaW1lSW5wdXQge1xuICAvKiogRW1pdHRlZCB3aGVuIGEga2V5Ym9hcmQgaW5wdXQgb2NjdXJyZWQuICovXG4gIGJhbElucHV0ITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUaW1lSW5wdXRDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuICovXG4gIGJhbENoYW5nZSE6IEV2ZW50RW1pdHRlcjxCYWxFdmVudHMuQmFsVGltZUlucHV0Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLiAqL1xuICBiYWxCbHVyITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUaW1lSW5wdXRDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGhhcyBmb2N1cy4gKi9cbiAgYmFsRm9jdXMhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRpbWVJbnB1dEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGtleWJvYXJkIGtleSBoYXMgcHJlc3NlZC4gKi9cbiAgYmFsS2V5UHJlc3MhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRpbWVJbnB1dEN1c3RvbUV2ZW50PEtleWJvYXJkRXZlbnQ+PjtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaGFzIGNsaWNrZWQuICovXG4gIGJhbENsaWNrITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUaW1lSW5wdXRDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbElucHV0JywgJ2JhbENoYW5nZScsICdiYWxCbHVyJywgJ2JhbEZvY3VzJywgJ2JhbEtleVByZXNzJywgJ2JhbENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEJhbFRvYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5CYWxUb2FzdCB7fVxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NhYmxlJywgJ2NvbG9yJywgJ2R1cmF0aW9uJywgJ21lc3NhZ2UnXSxcbiAgbWV0aG9kczogWydjbG9zZUluJywgJ2Nsb3NlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsVG9hc3Rcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYWwtdG9hc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIGlucHV0czogWydjbG9zYWJsZScsICdjb2xvcicsICdkdXJhdGlvbicsICdtZXNzYWdlJ10sXG4gIG91dHB1dHM6IFsnYmFsQ2xvc2UnXVxufSlcbmV4cG9ydCBjbGFzcyBCYWxUb2FzdCB7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdG9hc3QgaXMgY2xvc2VkICovXG4gIGJhbENsb3NlITogRXZlbnRFbWl0dGVyPEJhbEV2ZW50cy5CYWxUb2FzdEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydiYWxDbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYWxUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5CYWxUb29sdGlwIHt9XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudFdpZHRoJywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlJ10sXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lQmFsVG9vbHRpcFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JhbC10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBpbnB1dHM6IFsnY29udGVudFdpZHRoJywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlJ10sXG4gIG91dHB1dHM6IFsnYmFsV2lsbEFuaW1hdGUnLCAnYmFsRGlkQW5pbWF0ZSddXG59KVxuZXhwb3J0IGNsYXNzIEJhbFRvb2x0aXAge1xuICAvKiogRW1pdHRlZCBiZWZvcmUgdGhlIGFuaW1hdGlvbiBzdGFydHMgKi9cbiAgYmFsV2lsbEFuaW1hdGUhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRvb2x0aXBDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKiBFbWl0dGVkIGFmdGVyIHRoZSBhbmltYXRpb24gaGFzIGZpbmlzaGVkICovXG4gIGJhbERpZEFuaW1hdGUhOiBFdmVudEVtaXR0ZXI8QmFsRXZlbnRzLkJhbFRvb2x0aXBDdXN0b21FdmVudDxib29sZWFuPj47XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JhbFdpbGxBbmltYXRlJywgJ2JhbERpZEFuaW1hdGUnXSk7XG4gIH1cbn1cbiJdfQ==