@paperless/angular 2.0.1-beta.22 → 2.0.1-beta.221

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/esm2020/lib/directives/index.mjs +9 -9
  2. package/esm2020/lib/directives/p-pagination-pages.directive.mjs +41 -0
  3. package/esm2020/lib/directives/p-pagination-size.directive.mjs +41 -0
  4. package/esm2020/lib/directives/p-radio.directive.mjs +16 -4
  5. package/esm2020/lib/modules/table/components/table/table.component.mjs +146 -80
  6. package/esm2020/lib/modules/table/components/table-cell/table-cell.component.mjs +5 -19
  7. package/esm2020/lib/modules/table/components/table-column/table-column.component.mjs +20 -4
  8. package/esm2020/lib/modules/toast/types.mjs +4 -3
  9. package/esm2020/lib/paperless.module.mjs +4 -4
  10. package/esm2020/lib/stencil/angular-component-lib/utils.mjs +9 -1
  11. package/esm2020/lib/stencil/components.mjs +331 -261
  12. package/esm2020/lib/stencil/index.mjs +13 -10
  13. package/esm2020/lib/stencil.module.mjs +1 -1
  14. package/fesm2015/paperless-angular.mjs +600 -441
  15. package/fesm2015/paperless-angular.mjs.map +1 -1
  16. package/fesm2020/paperless-angular.mjs +597 -440
  17. package/fesm2020/paperless-angular.mjs.map +1 -1
  18. package/lib/directives/index.d.ts +6 -6
  19. package/lib/directives/p-pagination-pages.directive.d.ts +10 -0
  20. package/lib/directives/{p-page-size-select.directive.d.ts → p-pagination-size.directive.d.ts} +3 -3
  21. package/lib/directives/p-radio.directive.d.ts +1 -0
  22. package/lib/modules/table/components/table/table.component.d.ts +40 -14
  23. package/lib/modules/table/components/table-cell/table-cell.component.d.ts +2 -6
  24. package/lib/modules/table/components/table-column/table-column.component.d.ts +1 -1
  25. package/lib/modules/toast/types.d.ts +3 -2
  26. package/lib/paperless.module.d.ts +3 -3
  27. package/lib/stencil/components.d.ts +241 -166
  28. package/lib/stencil/index.d.ts +1 -1
  29. package/lib/stencil.module.d.ts +1 -1
  30. package/package.json +1 -1
  31. package/paperless.css +250 -59
  32. package/esm2020/lib/directives/p-page-size-select.directive.mjs +0 -41
  33. package/esm2020/lib/directives/p-pagination.directive.mjs +0 -41
  34. package/lib/directives/p-pagination.directive.d.ts +0 -10
@@ -13,10 +13,10 @@ let PAccordion = class PAccordion {
13
13
  }
14
14
  };
15
15
  PAccordion.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
16
- PAccordion.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PAccordion, selector: "p-accordion", inputs: { closeable: "closeable", header: "header", open: "open", openable: "openable" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
+ PAccordion.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PAccordion, selector: "p-accordion", inputs: { closeable: "closeable", header: "header", open: "open", openable: "openable", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
17
  PAccordion = __decorate([
18
18
  ProxyCmp({
19
- inputs: ['closeable', 'header', 'open', 'openable']
19
+ inputs: ['closeable', 'header', 'open', 'openable', 'variant']
20
20
  })
21
21
  ], PAccordion);
22
22
  export { PAccordion };
@@ -27,7 +27,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
27
27
  changeDetection: ChangeDetectionStrategy.OnPush,
28
28
  template: '<ng-content></ng-content>',
29
29
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
30
- inputs: ['closeable', 'header', 'open', 'openable'],
30
+ inputs: ['closeable', 'header', 'open', 'openable', 'variant'],
31
31
  }]
32
32
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
33
33
  let PAttachment = class PAttachment {
@@ -35,14 +35,14 @@ let PAttachment = class PAttachment {
35
35
  this.z = z;
36
36
  c.detach();
37
37
  this.el = r.nativeElement;
38
- proxyOutputs(this, this.el, ['download', 'delete']);
38
+ proxyOutputs(this, this.el, ['upload', 'download', 'delete']);
39
39
  }
40
40
  };
41
41
  PAttachment.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PAttachment, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
42
- PAttachment.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PAttachment, selector: "p-attachment", inputs: { downloading: "downloading", error: "error", loading: "loading", mode: "mode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
+ PAttachment.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PAttachment, selector: "p-attachment", inputs: { accept: "accept", cameraTooltip: "cameraTooltip", deleteTooltip: "deleteTooltip", downloadTooltip: "downloadTooltip", enableCameraOnMobile: "enableCameraOnMobile", error: "error", fileId: "fileId", helper: "helper", label: "label", loading: "loading", mode: "mode", placeholder: "placeholder", required: "required", uploadTooltip: "uploadTooltip", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
43
43
  PAttachment = __decorate([
44
44
  ProxyCmp({
45
- inputs: ['downloading', 'error', 'loading', 'mode']
45
+ inputs: ['accept', 'cameraTooltip', 'deleteTooltip', 'downloadTooltip', 'enableCameraOnMobile', 'error', 'fileId', 'helper', 'label', 'loading', 'mode', 'placeholder', 'required', 'uploadTooltip', 'value']
46
46
  })
47
47
  ], PAttachment);
48
48
  export { PAttachment };
@@ -53,7 +53,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
53
53
  changeDetection: ChangeDetectionStrategy.OnPush,
54
54
  template: '<ng-content></ng-content>',
55
55
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
56
- inputs: ['downloading', 'error', 'loading', 'mode'],
56
+ inputs: ['accept', 'cameraTooltip', 'deleteTooltip', 'downloadTooltip', 'enableCameraOnMobile', 'error', 'fileId', 'helper', 'label', 'loading', 'mode', 'placeholder', 'required', 'uploadTooltip', 'value'],
57
57
  }]
58
58
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
59
59
  let PAvatar = class PAvatar {
@@ -64,10 +64,10 @@ let PAvatar = class PAvatar {
64
64
  }
65
65
  };
66
66
  PAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
67
- PAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PAvatar, selector: "p-avatar", inputs: { defaultImage: "defaultImage", letters: "letters", size: "size", src: "src" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
67
+ PAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PAvatar, selector: "p-avatar", inputs: { defaultImage: "defaultImage", letters: "letters", size: "size", src: "src", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
68
68
  PAvatar = __decorate([
69
69
  ProxyCmp({
70
- inputs: ['defaultImage', 'letters', 'size', 'src']
70
+ inputs: ['defaultImage', 'letters', 'size', 'src', 'variant']
71
71
  })
72
72
  ], PAvatar);
73
73
  export { PAvatar };
@@ -78,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
78
78
  changeDetection: ChangeDetectionStrategy.OnPush,
79
79
  template: '<ng-content></ng-content>',
80
80
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
81
- inputs: ['defaultImage', 'letters', 'size', 'src'],
81
+ inputs: ['defaultImage', 'letters', 'size', 'src', 'variant'],
82
82
  }]
83
83
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
84
84
  let PAvatarGroup = class PAvatarGroup {
@@ -164,10 +164,10 @@ let PButton = class PButton {
164
164
  }
165
165
  };
166
166
  PButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
167
- PButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PButton, selector: "p-button", inputs: { active: "active", as: "as", buttonGroupPosition: "buttonGroupPosition", chevron: "chevron", chevronPosition: "chevronPosition", class: "class", disabled: "disabled", href: "href", icon: "icon", iconFlip: "iconFlip", iconOnly: "iconOnly", iconPosition: "iconPosition", iconRotate: "iconRotate", inheritText: "inheritText", loading: "loading", size: "size", target: "target", type: "type", underline: "underline", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
167
+ PButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PButton, selector: "p-button", inputs: { active: "active", as: "as", buttonGroupPosition: "buttonGroupPosition", chevron: "chevron", chevronPosition: "chevronPosition", class: "class", disabled: "disabled", error: "error", href: "href", icon: "icon", iconFlip: "iconFlip", iconOnly: "iconOnly", iconPosition: "iconPosition", iconRotate: "iconRotate", inheritText: "inheritText", label: "label", loading: "loading", size: "size", target: "target", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
168
168
  PButton = __decorate([
169
169
  ProxyCmp({
170
- inputs: ['active', 'as', 'buttonGroupPosition', 'chevron', 'chevronPosition', 'class', 'disabled', 'href', 'icon', 'iconFlip', 'iconOnly', 'iconPosition', 'iconRotate', 'inheritText', 'loading', 'size', 'target', 'type', 'underline', 'variant']
170
+ inputs: ['active', 'as', 'buttonGroupPosition', 'chevron', 'chevronPosition', 'class', 'disabled', 'error', 'href', 'icon', 'iconFlip', 'iconOnly', 'iconPosition', 'iconRotate', 'inheritText', 'label', 'loading', 'size', 'target', 'type', 'variant']
171
171
  })
172
172
  ], PButton);
173
173
  export { PButton };
@@ -178,7 +178,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
178
178
  changeDetection: ChangeDetectionStrategy.OnPush,
179
179
  template: '<ng-content></ng-content>',
180
180
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
181
- inputs: ['active', 'as', 'buttonGroupPosition', 'chevron', 'chevronPosition', 'class', 'disabled', 'href', 'icon', 'iconFlip', 'iconOnly', 'iconPosition', 'iconRotate', 'inheritText', 'loading', 'size', 'target', 'type', 'underline', 'variant'],
181
+ inputs: ['active', 'as', 'buttonGroupPosition', 'chevron', 'chevronPosition', 'class', 'disabled', 'error', 'href', 'icon', 'iconFlip', 'iconOnly', 'iconPosition', 'iconRotate', 'inheritText', 'label', 'loading', 'size', 'target', 'type', 'variant'],
182
182
  }]
183
183
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
184
184
  let PButtonGroup = class PButtonGroup {
@@ -215,10 +215,10 @@ let PCalendar = class PCalendar {
215
215
  }
216
216
  };
217
217
  PCalendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PCalendar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
218
- PCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCalendar, selector: "p-calendar", inputs: { disableWeekends: "disableWeekends", disabledDates: "disabledDates", maxDate: "maxDate", minDate: "minDate", mode: "mode", preselectToday: "preselectToday", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
218
+ PCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCalendar, selector: "p-calendar", inputs: { disableWeekends: "disableWeekends", disabledDates: "disabledDates", enableToday: "enableToday", maxDate: "maxDate", minDate: "minDate", mode: "mode", preselectToday: "preselectToday", todayText: "todayText", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
219
219
  PCalendar = __decorate([
220
220
  ProxyCmp({
221
- inputs: ['disableWeekends', 'disabledDates', 'maxDate', 'minDate', 'mode', 'preselectToday', 'value', 'variant']
221
+ inputs: ['disableWeekends', 'disabledDates', 'enableToday', 'maxDate', 'minDate', 'mode', 'preselectToday', 'todayText', 'value', 'variant']
222
222
  })
223
223
  ], PCalendar);
224
224
  export { PCalendar };
@@ -229,7 +229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
229
229
  changeDetection: ChangeDetectionStrategy.OnPush,
230
230
  template: '<ng-content></ng-content>',
231
231
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
232
- inputs: ['disableWeekends', 'disabledDates', 'maxDate', 'minDate', 'mode', 'preselectToday', 'value', 'variant'],
232
+ inputs: ['disableWeekends', 'disabledDates', 'enableToday', 'maxDate', 'minDate', 'mode', 'preselectToday', 'todayText', 'value', 'variant'],
233
233
  }]
234
234
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
235
235
  let PCardBody = class PCardBody {
@@ -240,11 +240,9 @@ let PCardBody = class PCardBody {
240
240
  }
241
241
  };
242
242
  PCardBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PCardBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
243
- PCardBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCardBody, selector: "p-card-body", inputs: { inheritText: "inheritText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
243
+ PCardBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCardBody, selector: "p-card-body", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
244
244
  PCardBody = __decorate([
245
- ProxyCmp({
246
- inputs: ['inheritText']
247
- })
245
+ ProxyCmp({})
248
246
  ], PCardBody);
249
247
  export { PCardBody };
250
248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PCardBody, decorators: [{
@@ -254,7 +252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
254
252
  changeDetection: ChangeDetectionStrategy.OnPush,
255
253
  template: '<ng-content></ng-content>',
256
254
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
257
- inputs: ['inheritText'],
255
+ inputs: [],
258
256
  }]
259
257
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
260
258
  let PCardContainer = class PCardContainer {
@@ -265,10 +263,10 @@ let PCardContainer = class PCardContainer {
265
263
  }
266
264
  };
267
265
  PCardContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PCardContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
268
- PCardContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCardContainer, selector: "p-card-container", inputs: { hoverable: "hoverable", shadow: "shadow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
266
+ PCardContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCardContainer, selector: "p-card-container", inputs: { active: "active", bgClass: "bgClass", border: "border", hoverable: "hoverable", shadow: "shadow", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
269
267
  PCardContainer = __decorate([
270
268
  ProxyCmp({
271
- inputs: ['hoverable', 'shadow']
269
+ inputs: ['active', 'bgClass', 'border', 'hoverable', 'shadow', 'variant']
272
270
  })
273
271
  ], PCardContainer);
274
272
  export { PCardContainer };
@@ -279,7 +277,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
279
277
  changeDetection: ChangeDetectionStrategy.OnPush,
280
278
  template: '<ng-content></ng-content>',
281
279
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
282
- inputs: ['hoverable', 'shadow'],
280
+ inputs: ['active', 'bgClass', 'border', 'hoverable', 'shadow', 'variant'],
283
281
  }]
284
282
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
285
283
  let PCardHeader = class PCardHeader {
@@ -290,10 +288,10 @@ let PCardHeader = class PCardHeader {
290
288
  }
291
289
  };
292
290
  PCardHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PCardHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
293
- PCardHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCardHeader, selector: "p-card-header", inputs: { arrow: "arrow", header: "header" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
291
+ PCardHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCardHeader, selector: "p-card-header", inputs: { divider: "divider", header: "header", icon: "icon", iconFlip: "iconFlip", iconRotate: "iconRotate", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
294
292
  PCardHeader = __decorate([
295
293
  ProxyCmp({
296
- inputs: ['arrow', 'header']
294
+ inputs: ['divider', 'header', 'icon', 'iconFlip', 'iconRotate', 'variant']
297
295
  })
298
296
  ], PCardHeader);
299
297
  export { PCardHeader };
@@ -304,7 +302,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
304
302
  changeDetection: ChangeDetectionStrategy.OnPush,
305
303
  template: '<ng-content></ng-content>',
306
304
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
307
- inputs: ['arrow', 'header'],
305
+ inputs: ['divider', 'header', 'icon', 'iconFlip', 'iconRotate', 'variant'],
308
306
  }]
309
307
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
310
308
  let PCheckbox = class PCheckbox {
@@ -316,10 +314,10 @@ let PCheckbox = class PCheckbox {
316
314
  }
317
315
  };
318
316
  PCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
319
- PCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCheckbox, selector: "p-checkbox", inputs: { checked: "checked", disabled: "disabled", id: "id", indeterminate: "indeterminate", name: "name", required: "required", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
317
+ PCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCheckbox, selector: "p-checkbox", inputs: { checked: "checked", disabled: "disabled", id: "id", indeterminate: "indeterminate", name: "name", required: "required" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
320
318
  PCheckbox = __decorate([
321
319
  ProxyCmp({
322
- inputs: ['checked', 'disabled', 'id', 'indeterminate', 'name', 'required', 'size']
320
+ inputs: ['checked', 'disabled', 'id', 'indeterminate', 'name', 'required']
323
321
  })
324
322
  ], PCheckbox);
325
323
  export { PCheckbox };
@@ -330,7 +328,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
330
328
  changeDetection: ChangeDetectionStrategy.OnPush,
331
329
  template: '<ng-content></ng-content>',
332
330
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
333
- inputs: ['checked', 'disabled', 'id', 'indeterminate', 'name', 'required', 'size'],
331
+ inputs: ['checked', 'disabled', 'id', 'indeterminate', 'name', 'required'],
334
332
  }]
335
333
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
336
334
  let PContentSlider = class PContentSlider {
@@ -358,31 +356,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
358
356
  inputs: ['disableAutoCenter', 'disableDrag', 'disableIndicatorClick', 'hideMobileIndicator'],
359
357
  }]
360
358
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
361
- let PCounter = class PCounter {
362
- constructor(c, r, z) {
363
- this.z = z;
364
- c.detach();
365
- this.el = r.nativeElement;
366
- }
367
- };
368
- PCounter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PCounter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
369
- PCounter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCounter, selector: "p-counter", inputs: { size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
370
- PCounter = __decorate([
371
- ProxyCmp({
372
- inputs: ['size', 'variant']
373
- })
374
- ], PCounter);
375
- export { PCounter };
376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PCounter, decorators: [{
377
- type: Component,
378
- args: [{
379
- selector: 'p-counter',
380
- changeDetection: ChangeDetectionStrategy.OnPush,
381
- template: '<ng-content></ng-content>',
382
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
383
- inputs: ['size', 'variant'],
384
- }]
385
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
386
359
  let PCropper = class PCropper {
387
360
  constructor(c, r, z) {
388
361
  this.z = z;
@@ -392,10 +365,10 @@ let PCropper = class PCropper {
392
365
  }
393
366
  };
394
367
  PCropper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PCropper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
395
- PCropper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCropper, selector: "p-cropper", inputs: { returnType: "returnType", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
368
+ PCropper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PCropper, selector: "p-cropper", inputs: { returnType: "returnType", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
396
369
  PCropper = __decorate([
397
370
  ProxyCmp({
398
- inputs: ['returnType', 'value', 'variant']
371
+ inputs: ['returnType', 'value']
399
372
  })
400
373
  ], PCropper);
401
374
  export { PCropper };
@@ -406,7 +379,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
406
379
  changeDetection: ChangeDetectionStrategy.OnPush,
407
380
  template: '<ng-content></ng-content>',
408
381
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
409
- inputs: ['returnType', 'value', 'variant'],
382
+ inputs: ['returnType', 'value'],
410
383
  }]
411
384
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
412
385
  let PDatepicker = class PDatepicker {
@@ -418,10 +391,10 @@ let PDatepicker = class PDatepicker {
418
391
  }
419
392
  };
420
393
  PDatepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PDatepicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
421
- PDatepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDatepicker, selector: "p-datepicker", inputs: { disableWeekends: "disableWeekends", disabled: "disabled", disabledDates: "disabledDates", error: "error", format: "format", helper: "helper", hideIconWhenFilled: "hideIconWhenFilled", label: "label", maxDate: "maxDate", minDate: "minDate", mode: "mode", placeholder: "placeholder", placement: "placement", prefix: "prefix", preselectToday: "preselectToday", required: "required", size: "size", strategy: "strategy", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
394
+ PDatepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDatepicker, selector: "p-datepicker", inputs: { disableWeekends: "disableWeekends", disabled: "disabled", disabledDates: "disabledDates", enableNativePicker: "enableNativePicker", enableToday: "enableToday", error: "error", format: "format", helper: "helper", hideIconWhenFilled: "hideIconWhenFilled", label: "label", loading: "loading", maxDate: "maxDate", minDate: "minDate", mode: "mode", placeholder: "placeholder", placement: "placement", prefix: "prefix", preselectToday: "preselectToday", required: "required", showOptional: "showOptional", size: "size", strategy: "strategy", todayText: "todayText", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
422
395
  PDatepicker = __decorate([
423
396
  ProxyCmp({
424
- inputs: ['disableWeekends', 'disabled', 'disabledDates', 'error', 'format', 'helper', 'hideIconWhenFilled', 'label', 'maxDate', 'minDate', 'mode', 'placeholder', 'placement', 'prefix', 'preselectToday', 'required', 'size', 'strategy', 'value']
397
+ inputs: ['disableWeekends', 'disabled', 'disabledDates', 'enableNativePicker', 'enableToday', 'error', 'format', 'helper', 'hideIconWhenFilled', 'label', 'loading', 'maxDate', 'minDate', 'mode', 'placeholder', 'placement', 'prefix', 'preselectToday', 'required', 'showOptional', 'size', 'strategy', 'todayText', 'value']
425
398
  })
426
399
  ], PDatepicker);
427
400
  export { PDatepicker };
@@ -432,7 +405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
432
405
  changeDetection: ChangeDetectionStrategy.OnPush,
433
406
  template: '<ng-content></ng-content>',
434
407
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
435
- inputs: ['disableWeekends', 'disabled', 'disabledDates', 'error', 'format', 'helper', 'hideIconWhenFilled', 'label', 'maxDate', 'minDate', 'mode', 'placeholder', 'placement', 'prefix', 'preselectToday', 'required', 'size', 'strategy', 'value'],
408
+ inputs: ['disableWeekends', 'disabled', 'disabledDates', 'enableNativePicker', 'enableToday', 'error', 'format', 'helper', 'hideIconWhenFilled', 'label', 'loading', 'maxDate', 'minDate', 'mode', 'placeholder', 'placement', 'prefix', 'preselectToday', 'required', 'showOptional', 'size', 'strategy', 'todayText', 'value'],
436
409
  }]
437
410
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
438
411
  let PDivider = class PDivider {
@@ -443,10 +416,10 @@ let PDivider = class PDivider {
443
416
  }
444
417
  };
445
418
  PDivider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
446
- PDivider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDivider, selector: "p-divider", inputs: { variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
419
+ PDivider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDivider, selector: "p-divider", inputs: { alignContent: "alignContent", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
447
420
  PDivider = __decorate([
448
421
  ProxyCmp({
449
- inputs: ['variant']
422
+ inputs: ['alignContent', 'variant']
450
423
  })
451
424
  ], PDivider);
452
425
  export { PDivider };
@@ -457,7 +430,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
457
430
  changeDetection: ChangeDetectionStrategy.OnPush,
458
431
  template: '<ng-content></ng-content>',
459
432
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
460
- inputs: ['variant'],
433
+ inputs: ['alignContent', 'variant'],
461
434
  }]
462
435
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
463
436
  let PDrawer = class PDrawer {
@@ -494,11 +467,9 @@ let PDrawerBody = class PDrawerBody {
494
467
  }
495
468
  };
496
469
  PDrawerBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PDrawerBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
497
- PDrawerBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDrawerBody, selector: "p-drawer-body", inputs: { variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
470
+ PDrawerBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDrawerBody, selector: "p-drawer-body", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
498
471
  PDrawerBody = __decorate([
499
- ProxyCmp({
500
- inputs: ['variant']
501
- })
472
+ ProxyCmp({})
502
473
  ], PDrawerBody);
503
474
  export { PDrawerBody };
504
475
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PDrawerBody, decorators: [{
@@ -508,7 +479,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
508
479
  changeDetection: ChangeDetectionStrategy.OnPush,
509
480
  template: '<ng-content></ng-content>',
510
481
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
511
- inputs: ['variant'],
482
+ inputs: [],
512
483
  }]
513
484
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
514
485
  let PDrawerContainer = class PDrawerContainer {
@@ -571,10 +542,10 @@ let PDropdown = class PDropdown {
571
542
  }
572
543
  };
573
544
  PDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
574
- PDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDropdown, selector: "p-dropdown", inputs: { allowOverflow: "allowOverflow", applyChevron: "applyChevron", applyFullWidth: "applyFullWidth", applyMaxWidth: "applyMaxWidth", calculateWidth: "calculateWidth", chevronDirection: "chevronDirection", chevronPosition: "chevronPosition", disableTriggerClick: "disableTriggerClick", insideClick: "insideClick", offset: "offset", placement: "placement", scrollable: "scrollable", show: "show", strategy: "strategy", usePortal: "usePortal" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
545
+ PDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDropdown, selector: "p-dropdown", inputs: { allowOverflow: "allowOverflow", applyChevron: "applyChevron", applyFullWidth: "applyFullWidth", applyMaxWidth: "applyMaxWidth", chevronDirection: "chevronDirection", chevronPosition: "chevronPosition", disableTriggerClick: "disableTriggerClick", insideClick: "insideClick", manual: "manual", offset: "offset", placement: "placement", scrollable: "scrollable", show: "show", strategy: "strategy", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
575
546
  PDropdown = __decorate([
576
547
  ProxyCmp({
577
- inputs: ['allowOverflow', 'applyChevron', 'applyFullWidth', 'applyMaxWidth', 'calculateWidth', 'chevronDirection', 'chevronPosition', 'disableTriggerClick', 'insideClick', 'offset', 'placement', 'scrollable', 'show', 'strategy', 'usePortal']
548
+ inputs: ['allowOverflow', 'applyChevron', 'applyFullWidth', 'applyMaxWidth', 'chevronDirection', 'chevronPosition', 'disableTriggerClick', 'insideClick', 'manual', 'offset', 'placement', 'scrollable', 'show', 'strategy', 'variant']
578
549
  })
579
550
  ], PDropdown);
580
551
  export { PDropdown };
@@ -585,7 +556,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
585
556
  changeDetection: ChangeDetectionStrategy.OnPush,
586
557
  template: '<ng-content></ng-content>',
587
558
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
588
- inputs: ['allowOverflow', 'applyChevron', 'applyFullWidth', 'applyMaxWidth', 'calculateWidth', 'chevronDirection', 'chevronPosition', 'disableTriggerClick', 'insideClick', 'offset', 'placement', 'scrollable', 'show', 'strategy', 'usePortal'],
559
+ inputs: ['allowOverflow', 'applyChevron', 'applyFullWidth', 'applyMaxWidth', 'chevronDirection', 'chevronPosition', 'disableTriggerClick', 'insideClick', 'manual', 'offset', 'placement', 'scrollable', 'show', 'strategy', 'variant'],
589
560
  }]
590
561
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
591
562
  let PDropdownMenuContainer = class PDropdownMenuContainer {
@@ -596,10 +567,10 @@ let PDropdownMenuContainer = class PDropdownMenuContainer {
596
567
  }
597
568
  };
598
569
  PDropdownMenuContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PDropdownMenuContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
599
- PDropdownMenuContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDropdownMenuContainer, selector: "p-dropdown-menu-container", inputs: { allowOverflow: "allowOverflow", class: "class", fullWidth: "fullWidth", maxWidth: "maxWidth", scrollable: "scrollable" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
570
+ PDropdownMenuContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDropdownMenuContainer, selector: "p-dropdown-menu-container", inputs: { allowOverflow: "allowOverflow", class: "class", fullWidth: "fullWidth", maxWidth: "maxWidth", scrollable: "scrollable", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
600
571
  PDropdownMenuContainer = __decorate([
601
572
  ProxyCmp({
602
- inputs: ['allowOverflow', 'class', 'fullWidth', 'maxWidth', 'scrollable']
573
+ inputs: ['allowOverflow', 'class', 'fullWidth', 'maxWidth', 'scrollable', 'variant']
603
574
  })
604
575
  ], PDropdownMenuContainer);
605
576
  export { PDropdownMenuContainer };
@@ -610,7 +581,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
610
581
  changeDetection: ChangeDetectionStrategy.OnPush,
611
582
  template: '<ng-content></ng-content>',
612
583
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
613
- inputs: ['allowOverflow', 'class', 'fullWidth', 'maxWidth', 'scrollable'],
584
+ inputs: ['allowOverflow', 'class', 'fullWidth', 'maxWidth', 'scrollable', 'variant'],
614
585
  }]
615
586
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
616
587
  let PDropdownMenuItem = class PDropdownMenuItem {
@@ -621,10 +592,10 @@ let PDropdownMenuItem = class PDropdownMenuItem {
621
592
  }
622
593
  };
623
594
  PDropdownMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PDropdownMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
624
- PDropdownMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDropdownMenuItem, selector: "p-dropdown-menu-item", inputs: { active: "active", checkbox: "checkbox", disabled: "disabled", enableHover: "enableHover", icon: "icon", useContainer: "useContainer", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
595
+ PDropdownMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PDropdownMenuItem, selector: "p-dropdown-menu-item", inputs: { active: "active", checkbox: "checkbox", disabled: "disabled", enableHover: "enableHover", enableTextWrap: "enableTextWrap", icon: "icon", iconWave: "iconWave", useContainer: "useContainer", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
625
596
  PDropdownMenuItem = __decorate([
626
597
  ProxyCmp({
627
- inputs: ['active', 'checkbox', 'disabled', 'enableHover', 'icon', 'useContainer', 'variant']
598
+ inputs: ['active', 'checkbox', 'disabled', 'enableHover', 'enableTextWrap', 'icon', 'iconWave', 'useContainer', 'variant']
628
599
  })
629
600
  ], PDropdownMenuItem);
630
601
  export { PDropdownMenuItem };
@@ -635,7 +606,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
635
606
  changeDetection: ChangeDetectionStrategy.OnPush,
636
607
  template: '<ng-content></ng-content>',
637
608
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
638
- inputs: ['active', 'checkbox', 'disabled', 'enableHover', 'icon', 'useContainer', 'variant'],
609
+ inputs: ['active', 'checkbox', 'disabled', 'enableHover', 'enableTextWrap', 'icon', 'iconWave', 'useContainer', 'variant'],
610
+ }]
611
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
612
+ let PEmptyState = class PEmptyState {
613
+ constructor(c, r, z) {
614
+ this.z = z;
615
+ c.detach();
616
+ this.el = r.nativeElement;
617
+ proxyOutputs(this, this.el, ['action']);
618
+ }
619
+ };
620
+ PEmptyState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PEmptyState, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
621
+ PEmptyState.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PEmptyState, selector: "p-empty-state", inputs: { actionIcon: "actionIcon", actionIconPosition: "actionIconPosition", actionLoading: "actionLoading", actionText: "actionText", actionVariant: "actionVariant", content: "content", enableAction: "enableAction", header: "header", illustration: "illustration" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
622
+ PEmptyState = __decorate([
623
+ ProxyCmp({
624
+ inputs: ['actionIcon', 'actionIconPosition', 'actionLoading', 'actionText', 'actionVariant', 'content', 'enableAction', 'header', 'illustration']
625
+ })
626
+ ], PEmptyState);
627
+ export { PEmptyState };
628
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PEmptyState, decorators: [{
629
+ type: Component,
630
+ args: [{
631
+ selector: 'p-empty-state',
632
+ changeDetection: ChangeDetectionStrategy.OnPush,
633
+ template: '<ng-content></ng-content>',
634
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
635
+ inputs: ['actionIcon', 'actionIconPosition', 'actionLoading', 'actionText', 'actionVariant', 'content', 'enableAction', 'header', 'illustration'],
639
636
  }]
640
637
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
641
638
  let PField = class PField {
@@ -643,14 +640,14 @@ let PField = class PField {
643
640
  this.z = z;
644
641
  c.detach();
645
642
  this.el = r.nativeElement;
646
- proxyOutputs(this, this.el, ['valueChange', 'inputRefChange']);
643
+ proxyOutputs(this, this.el, ['valueChange', 'inputRefChange', 'add']);
647
644
  }
648
645
  };
649
646
  PField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
650
- PField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PField, selector: "p-field", inputs: { disabled: "disabled", error: "error", errorPlacement: "errorPlacement", focusMethod: "focusMethod", focused: "focused", forceShowTooltip: "forceShowTooltip", helper: "helper", icon: "icon", iconFlip: "iconFlip", iconPosition: "iconPosition", iconRotate: "iconRotate", label: "label", optionalTemplate: "optionalTemplate", placeholder: "placeholder", prefix: "prefix", properties: "properties", required: "required", selectAllOnFocus: "selectAllOnFocus", size: "size", suffix: "suffix", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
647
+ PField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PField, selector: "p-field", inputs: { addText: "addText", align: "align", autofocus: "autofocus", disabled: "disabled", error: "error", errorPlacement: "errorPlacement", focusMethod: "focusMethod", focused: "focused", forceShowTooltip: "forceShowTooltip", helper: "helper", icon: "icon", iconFlip: "iconFlip", iconPosition: "iconPosition", iconRotate: "iconRotate", id: "id", label: "label", loading: "loading", optionalTemplate: "optionalTemplate", placeholder: "placeholder", prefix: "prefix", properties: "properties", required: "required", selectAllOnFocus: "selectAllOnFocus", showAddOnEmpty: "showAddOnEmpty", showOptional: "showOptional", size: "size", suffix: "suffix", type: "type", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
651
648
  PField = __decorate([
652
649
  ProxyCmp({
653
- inputs: ['disabled', 'error', 'errorPlacement', 'focusMethod', 'focused', 'forceShowTooltip', 'helper', 'icon', 'iconFlip', 'iconPosition', 'iconRotate', 'label', 'optionalTemplate', 'placeholder', 'prefix', 'properties', 'required', 'selectAllOnFocus', 'size', 'suffix', 'type', 'value']
650
+ inputs: ['addText', 'align', 'autofocus', 'disabled', 'error', 'errorPlacement', 'focusMethod', 'focused', 'forceShowTooltip', 'helper', 'icon', 'iconFlip', 'iconPosition', 'iconRotate', 'id', 'label', 'loading', 'optionalTemplate', 'placeholder', 'prefix', 'properties', 'required', 'selectAllOnFocus', 'showAddOnEmpty', 'showOptional', 'size', 'suffix', 'type', 'value', 'variant']
654
651
  })
655
652
  ], PField);
656
653
  export { PField };
@@ -661,7 +658,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
661
658
  changeDetection: ChangeDetectionStrategy.OnPush,
662
659
  template: '<ng-content></ng-content>',
663
660
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
664
- inputs: ['disabled', 'error', 'errorPlacement', 'focusMethod', 'focused', 'forceShowTooltip', 'helper', 'icon', 'iconFlip', 'iconPosition', 'iconRotate', 'label', 'optionalTemplate', 'placeholder', 'prefix', 'properties', 'required', 'selectAllOnFocus', 'size', 'suffix', 'type', 'value'],
661
+ inputs: ['addText', 'align', 'autofocus', 'disabled', 'error', 'errorPlacement', 'focusMethod', 'focused', 'forceShowTooltip', 'helper', 'icon', 'iconFlip', 'iconPosition', 'iconRotate', 'id', 'label', 'loading', 'optionalTemplate', 'placeholder', 'prefix', 'properties', 'required', 'selectAllOnFocus', 'showAddOnEmpty', 'showOptional', 'size', 'suffix', 'type', 'value', 'variant'],
665
662
  }]
666
663
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
667
664
  let PFieldContainer = class PFieldContainer {
@@ -673,10 +670,10 @@ let PFieldContainer = class PFieldContainer {
673
670
  }
674
671
  };
675
672
  PFieldContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PFieldContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
676
- PFieldContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PFieldContainer, selector: "p-field-container", inputs: { error: "error", errorPlacement: "errorPlacement", forceShowTooltip: "forceShowTooltip", helper: "helper", label: "label", optionalTemplate: "optionalTemplate", required: "required" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
673
+ PFieldContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PFieldContainer, selector: "p-field-container", inputs: { align: "align", error: "error", errorPlacement: "errorPlacement", forceShowTooltip: "forceShowTooltip", helper: "helper", id: "id", label: "label", loading: "loading", loadingSize: "loadingSize", optionalTemplate: "optionalTemplate", required: "required", showOptional: "showOptional", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
677
674
  PFieldContainer = __decorate([
678
675
  ProxyCmp({
679
- inputs: ['error', 'errorPlacement', 'forceShowTooltip', 'helper', 'label', 'optionalTemplate', 'required']
676
+ inputs: ['align', 'error', 'errorPlacement', 'forceShowTooltip', 'helper', 'id', 'label', 'loading', 'loadingSize', 'optionalTemplate', 'required', 'showOptional', 'variant']
680
677
  })
681
678
  ], PFieldContainer);
682
679
  export { PFieldContainer };
@@ -687,7 +684,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
687
684
  changeDetection: ChangeDetectionStrategy.OnPush,
688
685
  template: '<ng-content></ng-content>',
689
686
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
690
- inputs: ['error', 'errorPlacement', 'forceShowTooltip', 'helper', 'label', 'optionalTemplate', 'required'],
687
+ inputs: ['align', 'error', 'errorPlacement', 'forceShowTooltip', 'helper', 'id', 'label', 'loading', 'loadingSize', 'optionalTemplate', 'required', 'showOptional', 'variant'],
691
688
  }]
692
689
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
693
690
  let PFloatingMenuContainer = class PFloatingMenuContainer {
@@ -695,13 +692,14 @@ let PFloatingMenuContainer = class PFloatingMenuContainer {
695
692
  this.z = z;
696
693
  c.detach();
697
694
  this.el = r.nativeElement;
695
+ proxyOutputs(this, this.el, ['close']);
698
696
  }
699
697
  };
700
698
  PFloatingMenuContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PFloatingMenuContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
701
- PFloatingMenuContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PFloatingMenuContainer, selector: "p-floating-menu-container", inputs: { usedInTable: "usedInTable" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
699
+ PFloatingMenuContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PFloatingMenuContainer, selector: "p-floating-menu-container", inputs: { amount: "amount", amountSelectedTemplate: "amountSelectedTemplate", enableAmountSelected: "enableAmountSelected", enableClose: "enableClose", usedInTable: "usedInTable" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
702
700
  PFloatingMenuContainer = __decorate([
703
701
  ProxyCmp({
704
- inputs: ['usedInTable']
702
+ inputs: ['amount', 'amountSelectedTemplate', 'enableAmountSelected', 'enableClose', 'usedInTable']
705
703
  })
706
704
  ], PFloatingMenuContainer);
707
705
  export { PFloatingMenuContainer };
@@ -712,7 +710,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
712
710
  changeDetection: ChangeDetectionStrategy.OnPush,
713
711
  template: '<ng-content></ng-content>',
714
712
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
715
- inputs: ['usedInTable'],
713
+ inputs: ['amount', 'amountSelectedTemplate', 'enableAmountSelected', 'enableClose', 'usedInTable'],
716
714
  }]
717
715
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
718
716
  let PFloatingMenuItem = class PFloatingMenuItem {
@@ -723,10 +721,10 @@ let PFloatingMenuItem = class PFloatingMenuItem {
723
721
  }
724
722
  };
725
723
  PFloatingMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PFloatingMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
726
- PFloatingMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PFloatingMenuItem, selector: "p-floating-menu-item", inputs: { disabled: "disabled", hover: "hover" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
724
+ PFloatingMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PFloatingMenuItem, selector: "p-floating-menu-item", inputs: { disabled: "disabled", hover: "hover", icon: "icon", iconFlip: "iconFlip", iconPosition: "iconPosition", iconRotate: "iconRotate", loading: "loading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
727
725
  PFloatingMenuItem = __decorate([
728
726
  ProxyCmp({
729
- inputs: ['disabled', 'hover']
727
+ inputs: ['disabled', 'hover', 'icon', 'iconFlip', 'iconPosition', 'iconRotate', 'loading']
730
728
  })
731
729
  ], PFloatingMenuItem);
732
730
  export { PFloatingMenuItem };
@@ -737,7 +735,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
737
735
  changeDetection: ChangeDetectionStrategy.OnPush,
738
736
  template: '<ng-content></ng-content>',
739
737
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
740
- inputs: ['disabled', 'hover'],
738
+ inputs: ['disabled', 'hover', 'icon', 'iconFlip', 'iconPosition', 'iconRotate', 'loading'],
741
739
  }]
742
740
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
743
741
  let PHelper = class PHelper {
@@ -815,50 +813,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
815
813
  inputs: ['flip', 'rotate', 'size', 'variant'],
816
814
  }]
817
815
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
818
- let PIconDeprecated = class PIconDeprecated {
816
+ let PIllustration = class PIllustration {
819
817
  constructor(c, r, z) {
820
818
  this.z = z;
821
819
  c.detach();
822
820
  this.el = r.nativeElement;
823
821
  }
824
822
  };
825
- PIconDeprecated.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PIconDeprecated, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
826
- PIconDeprecated.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PIconDeprecated, selector: "p-icon-deprecated", inputs: { flip: "flip", rotate: "rotate", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
827
- PIconDeprecated = __decorate([
823
+ PIllustration.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PIllustration, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
824
+ PIllustration.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PIllustration, selector: "p-illustration", inputs: { variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
825
+ PIllustration = __decorate([
828
826
  ProxyCmp({
829
- inputs: ['flip', 'rotate', 'size', 'variant']
827
+ inputs: ['variant']
830
828
  })
831
- ], PIconDeprecated);
832
- export { PIconDeprecated };
833
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PIconDeprecated, decorators: [{
829
+ ], PIllustration);
830
+ export { PIllustration };
831
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PIllustration, decorators: [{
834
832
  type: Component,
835
833
  args: [{
836
- selector: 'p-icon-deprecated',
834
+ selector: 'p-illustration',
837
835
  changeDetection: ChangeDetectionStrategy.OnPush,
838
836
  template: '<ng-content></ng-content>',
839
837
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
840
- inputs: ['flip', 'rotate', 'size', 'variant'],
838
+ inputs: ['variant'],
841
839
  }]
842
840
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
843
- let PIllustration = class PIllustration {
841
+ let PIllustrationDeprecated = class PIllustrationDeprecated {
844
842
  constructor(c, r, z) {
845
843
  this.z = z;
846
844
  c.detach();
847
845
  this.el = r.nativeElement;
848
846
  }
849
847
  };
850
- PIllustration.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PIllustration, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
851
- PIllustration.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PIllustration, selector: "p-illustration", inputs: { variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
852
- PIllustration = __decorate([
848
+ PIllustrationDeprecated.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PIllustrationDeprecated, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
849
+ PIllustrationDeprecated.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PIllustrationDeprecated, selector: "p-illustration-deprecated", inputs: { variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
850
+ PIllustrationDeprecated = __decorate([
853
851
  ProxyCmp({
854
852
  inputs: ['variant']
855
853
  })
856
- ], PIllustration);
857
- export { PIllustration };
858
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PIllustration, decorators: [{
854
+ ], PIllustrationDeprecated);
855
+ export { PIllustrationDeprecated };
856
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PIllustrationDeprecated, decorators: [{
859
857
  type: Component,
860
858
  args: [{
861
- selector: 'p-illustration',
859
+ selector: 'p-illustration-deprecated',
862
860
  changeDetection: ChangeDetectionStrategy.OnPush,
863
861
  template: '<ng-content></ng-content>',
864
862
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
@@ -891,31 +889,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
891
889
  inputs: ['closeable', 'content', 'header', 'variant'],
892
890
  }]
893
891
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
894
- let PInputError = class PInputError {
895
- constructor(c, r, z) {
896
- this.z = z;
897
- c.detach();
898
- this.el = r.nativeElement;
899
- }
900
- };
901
- PInputError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PInputError, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
902
- PInputError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PInputError, selector: "p-input-error", inputs: { error: "error", forceShowTooltip: "forceShowTooltip" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
903
- PInputError = __decorate([
904
- ProxyCmp({
905
- inputs: ['error', 'forceShowTooltip']
906
- })
907
- ], PInputError);
908
- export { PInputError };
909
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PInputError, decorators: [{
910
- type: Component,
911
- args: [{
912
- selector: 'p-input-error',
913
- changeDetection: ChangeDetectionStrategy.OnPush,
914
- template: '<ng-content></ng-content>',
915
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
916
- inputs: ['error', 'forceShowTooltip'],
917
- }]
918
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
919
892
  let PLabel = class PLabel {
920
893
  constructor(c, r, z) {
921
894
  this.z = z;
@@ -946,6 +919,7 @@ let PLayout = class PLayout {
946
919
  this.z = z;
947
920
  c.detach();
948
921
  this.el = r.nativeElement;
922
+ proxyOutputs(this, this.el, ['scroll']);
949
923
  }
950
924
  };
951
925
  PLayout.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PLayout, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
@@ -966,6 +940,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
966
940
  inputs: ['variant'],
967
941
  }]
968
942
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
943
+ let PListing = class PListing {
944
+ constructor(c, r, z) {
945
+ this.z = z;
946
+ c.detach();
947
+ this.el = r.nativeElement;
948
+ }
949
+ };
950
+ PListing.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PListing, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
951
+ PListing.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PListing, selector: "p-listing", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
952
+ PListing = __decorate([
953
+ ProxyCmp({})
954
+ ], PListing);
955
+ export { PListing };
956
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PListing, decorators: [{
957
+ type: Component,
958
+ args: [{
959
+ selector: 'p-listing',
960
+ changeDetection: ChangeDetectionStrategy.OnPush,
961
+ template: '<ng-content></ng-content>',
962
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
963
+ inputs: [],
964
+ }]
965
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
966
+ let PListingItem = class PListingItem {
967
+ constructor(c, r, z) {
968
+ this.z = z;
969
+ c.detach();
970
+ this.el = r.nativeElement;
971
+ }
972
+ };
973
+ PListingItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PListingItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
974
+ PListingItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PListingItem, selector: "p-listing-item", inputs: { icon: "icon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
975
+ PListingItem = __decorate([
976
+ ProxyCmp({
977
+ inputs: ['icon']
978
+ })
979
+ ], PListingItem);
980
+ export { PListingItem };
981
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PListingItem, decorators: [{
982
+ type: Component,
983
+ args: [{
984
+ selector: 'p-listing-item',
985
+ changeDetection: ChangeDetectionStrategy.OnPush,
986
+ template: '<ng-content></ng-content>',
987
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
988
+ inputs: ['icon'],
989
+ }]
990
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
991
+ let PListingLine = class PListingLine {
992
+ constructor(c, r, z) {
993
+ this.z = z;
994
+ c.detach();
995
+ this.el = r.nativeElement;
996
+ }
997
+ };
998
+ PListingLine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PListingLine, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
999
+ PListingLine.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PListingLine, selector: "p-listing-line", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1000
+ PListingLine = __decorate([
1001
+ ProxyCmp({})
1002
+ ], PListingLine);
1003
+ export { PListingLine };
1004
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PListingLine, decorators: [{
1005
+ type: Component,
1006
+ args: [{
1007
+ selector: 'p-listing-line',
1008
+ changeDetection: ChangeDetectionStrategy.OnPush,
1009
+ template: '<ng-content></ng-content>',
1010
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1011
+ inputs: [],
1012
+ }]
1013
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
969
1014
  let PLoader = class PLoader {
970
1015
  constructor(c, r, z) {
971
1016
  this.z = z;
@@ -1000,10 +1045,10 @@ let PModal = class PModal {
1000
1045
  }
1001
1046
  };
1002
1047
  PModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1003
- PModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PModal, selector: "p-modal", inputs: { applyBlur: "applyBlur", backdropClickClose: "backdropClickClose", header: "header", padding: "padding", scrollLock: "scrollLock", show: "show", showClose: "showClose", showMobileFooter: "showMobileFooter", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1048
+ PModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PModal, selector: "p-modal", inputs: { applyBlur: "applyBlur", backdropClickClose: "backdropClickClose", header: "header", scrollLock: "scrollLock", show: "show", showClose: "showClose", showMobileFooter: "showMobileFooter", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1004
1049
  PModal = __decorate([
1005
1050
  ProxyCmp({
1006
- inputs: ['applyBlur', 'backdropClickClose', 'header', 'padding', 'scrollLock', 'show', 'showClose', 'showMobileFooter', 'size', 'variant']
1051
+ inputs: ['applyBlur', 'backdropClickClose', 'header', 'scrollLock', 'show', 'showClose', 'showMobileFooter', 'size']
1007
1052
  })
1008
1053
  ], PModal);
1009
1054
  export { PModal };
@@ -1014,7 +1059,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1014
1059
  changeDetection: ChangeDetectionStrategy.OnPush,
1015
1060
  template: '<ng-content></ng-content>',
1016
1061
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1017
- inputs: ['applyBlur', 'backdropClickClose', 'header', 'padding', 'scrollLock', 'show', 'showClose', 'showMobileFooter', 'size', 'variant'],
1062
+ inputs: ['applyBlur', 'backdropClickClose', 'header', 'scrollLock', 'show', 'showClose', 'showMobileFooter', 'size'],
1018
1063
  }]
1019
1064
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1020
1065
  let PModalBody = class PModalBody {
@@ -1025,10 +1070,10 @@ let PModalBody = class PModalBody {
1025
1070
  }
1026
1071
  };
1027
1072
  PModalBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PModalBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1028
- PModalBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PModalBody, selector: "p-modal-body", inputs: { padding: "padding", roundedBottom: "roundedBottom", roundedTop: "roundedTop", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1073
+ PModalBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PModalBody, selector: "p-modal-body", inputs: { roundedBottom: "roundedBottom", roundedTop: "roundedTop" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1029
1074
  PModalBody = __decorate([
1030
1075
  ProxyCmp({
1031
- inputs: ['padding', 'roundedBottom', 'roundedTop', 'variant']
1076
+ inputs: ['roundedBottom', 'roundedTop']
1032
1077
  })
1033
1078
  ], PModalBody);
1034
1079
  export { PModalBody };
@@ -1039,7 +1084,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1039
1084
  changeDetection: ChangeDetectionStrategy.OnPush,
1040
1085
  template: '<ng-content></ng-content>',
1041
1086
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1042
- inputs: ['padding', 'roundedBottom', 'roundedTop', 'variant'],
1087
+ inputs: ['roundedBottom', 'roundedTop'],
1043
1088
  }]
1044
1089
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1045
1090
  let PModalContainer = class PModalContainer {
@@ -1212,104 +1257,107 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1212
1257
  inputs: [],
1213
1258
  }]
1214
1259
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1215
- let PPageSizeSelect = class PPageSizeSelect {
1260
+ let PPagination = class PPagination {
1216
1261
  constructor(c, r, z) {
1217
1262
  this.z = z;
1218
1263
  c.detach();
1219
1264
  this.el = r.nativeElement;
1220
- proxyOutputs(this, this.el, ['sizeChange']);
1265
+ proxyOutputs(this, this.el, ['pageChange', 'pageSizeChange', 'pagesChange']);
1221
1266
  }
1222
1267
  };
1223
- PPageSizeSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPageSizeSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1224
- PPageSizeSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PPageSizeSelect, selector: "p-page-size-select", inputs: { buttonSize: "buttonSize", buttonTemplate: "buttonTemplate", chevronPosition: "chevronPosition", hidden: "hidden", itemTemplate: "itemTemplate", size: "size", sizeOptions: "sizeOptions" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1225
- PPageSizeSelect = __decorate([
1268
+ PPagination.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1269
+ PPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PPagination, selector: "p-pagination", inputs: { enablePaginationPages: "enablePaginationPages", enablePaginationSize: "enablePaginationSize", hideOnSinglePage: "hideOnSinglePage", page: "page", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", total: "total" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1270
+ PPagination = __decorate([
1226
1271
  ProxyCmp({
1227
- inputs: ['buttonSize', 'buttonTemplate', 'chevronPosition', 'hidden', 'itemTemplate', 'size', 'sizeOptions']
1272
+ inputs: ['enablePaginationPages', 'enablePaginationSize', 'hideOnSinglePage', 'page', 'pageSize', 'pageSizeOptions', 'total']
1228
1273
  })
1229
- ], PPageSizeSelect);
1230
- export { PPageSizeSelect };
1231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPageSizeSelect, decorators: [{
1274
+ ], PPagination);
1275
+ export { PPagination };
1276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPagination, decorators: [{
1232
1277
  type: Component,
1233
1278
  args: [{
1234
- selector: 'p-page-size-select',
1279
+ selector: 'p-pagination',
1235
1280
  changeDetection: ChangeDetectionStrategy.OnPush,
1236
1281
  template: '<ng-content></ng-content>',
1237
1282
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1238
- inputs: ['buttonSize', 'buttonTemplate', 'chevronPosition', 'hidden', 'itemTemplate', 'size', 'sizeOptions'],
1283
+ inputs: ['enablePaginationPages', 'enablePaginationSize', 'hideOnSinglePage', 'page', 'pageSize', 'pageSizeOptions', 'total'],
1239
1284
  }]
1240
1285
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1241
- let PPagination = class PPagination {
1286
+ let PPaginationPages = class PPaginationPages {
1242
1287
  constructor(c, r, z) {
1243
1288
  this.z = z;
1244
1289
  c.detach();
1245
1290
  this.el = r.nativeElement;
1246
- proxyOutputs(this, this.el, ['pageChange']);
1291
+ proxyOutputs(this, this.el, ['pageChange', 'pagesChange']);
1247
1292
  }
1248
1293
  };
1249
- PPagination.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1250
- PPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PPagination, selector: "p-pagination", inputs: { hideOnSinglePage: "hideOnSinglePage", page: "page", pageSize: "pageSize", total: "total" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1251
- PPagination = __decorate([
1294
+ PPaginationPages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPaginationPages, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1295
+ PPaginationPages.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PPaginationPages, selector: "p-pagination-pages", inputs: { hideOnSinglePage: "hideOnSinglePage", page: "page", pageSize: "pageSize", total: "total" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1296
+ PPaginationPages = __decorate([
1252
1297
  ProxyCmp({
1253
1298
  inputs: ['hideOnSinglePage', 'page', 'pageSize', 'total']
1254
1299
  })
1255
- ], PPagination);
1256
- export { PPagination };
1257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPagination, decorators: [{
1300
+ ], PPaginationPages);
1301
+ export { PPaginationPages };
1302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPaginationPages, decorators: [{
1258
1303
  type: Component,
1259
1304
  args: [{
1260
- selector: 'p-pagination',
1305
+ selector: 'p-pagination-pages',
1261
1306
  changeDetection: ChangeDetectionStrategy.OnPush,
1262
1307
  template: '<ng-content></ng-content>',
1263
1308
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1264
1309
  inputs: ['hideOnSinglePage', 'page', 'pageSize', 'total'],
1265
1310
  }]
1266
1311
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1267
- let PPaginationItem = class PPaginationItem {
1312
+ let PPaginationPagesItem = class PPaginationPagesItem {
1268
1313
  constructor(c, r, z) {
1269
1314
  this.z = z;
1270
1315
  c.detach();
1271
1316
  this.el = r.nativeElement;
1272
1317
  }
1273
1318
  };
1274
- PPaginationItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPaginationItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1275
- PPaginationItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PPaginationItem, selector: "p-pagination-item", inputs: { active: "active" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1276
- PPaginationItem = __decorate([
1319
+ PPaginationPagesItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPaginationPagesItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1320
+ PPaginationPagesItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PPaginationPagesItem, selector: "p-pagination-pages-item", inputs: { active: "active", disabled: "disabled", hover: "hover", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1321
+ PPaginationPagesItem = __decorate([
1277
1322
  ProxyCmp({
1278
- inputs: ['active']
1323
+ inputs: ['active', 'disabled', 'hover', 'variant']
1279
1324
  })
1280
- ], PPaginationItem);
1281
- export { PPaginationItem };
1282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPaginationItem, decorators: [{
1325
+ ], PPaginationPagesItem);
1326
+ export { PPaginationPagesItem };
1327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPaginationPagesItem, decorators: [{
1283
1328
  type: Component,
1284
1329
  args: [{
1285
- selector: 'p-pagination-item',
1330
+ selector: 'p-pagination-pages-item',
1286
1331
  changeDetection: ChangeDetectionStrategy.OnPush,
1287
1332
  template: '<ng-content></ng-content>',
1288
1333
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1289
- inputs: ['active'],
1334
+ inputs: ['active', 'disabled', 'hover', 'variant'],
1290
1335
  }]
1291
1336
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1292
- let PPortal = class PPortal {
1337
+ let PPaginationSize = class PPaginationSize {
1293
1338
  constructor(c, r, z) {
1294
1339
  this.z = z;
1295
1340
  c.detach();
1296
1341
  this.el = r.nativeElement;
1342
+ proxyOutputs(this, this.el, ['sizeChange']);
1297
1343
  }
1298
1344
  };
1299
- PPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPortal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1300
- PPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PPortal, selector: "p-portal", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1301
- PPortal = __decorate([
1302
- ProxyCmp({})
1303
- ], PPortal);
1304
- export { PPortal };
1305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPortal, decorators: [{
1345
+ PPaginationSize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPaginationSize, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1346
+ PPaginationSize.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PPaginationSize, selector: "p-pagination-size", inputs: { hidden: "hidden", itemTemplate: "itemTemplate", size: "size", sizeOptions: "sizeOptions" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1347
+ PPaginationSize = __decorate([
1348
+ ProxyCmp({
1349
+ inputs: ['hidden', 'itemTemplate', 'size', 'sizeOptions']
1350
+ })
1351
+ ], PPaginationSize);
1352
+ export { PPaginationSize };
1353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PPaginationSize, decorators: [{
1306
1354
  type: Component,
1307
1355
  args: [{
1308
- selector: 'p-portal',
1356
+ selector: 'p-pagination-size',
1309
1357
  changeDetection: ChangeDetectionStrategy.OnPush,
1310
1358
  template: '<ng-content></ng-content>',
1311
1359
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1312
- inputs: [],
1360
+ inputs: ['hidden', 'itemTemplate', 'size', 'sizeOptions'],
1313
1361
  }]
1314
1362
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1315
1363
  let PProfile = class PProfile {
@@ -1346,10 +1394,10 @@ let PRadio = class PRadio {
1346
1394
  }
1347
1395
  };
1348
1396
  PRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1349
- PRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PRadio, selector: "p-radio", inputs: { checked: "checked", disabled: "disabled", id: "id", name: "name", required: "required", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1397
+ PRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PRadio, selector: "p-radio", inputs: { checked: "checked", disabled: "disabled", id: "id", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1350
1398
  PRadio = __decorate([
1351
1399
  ProxyCmp({
1352
- inputs: ['checked', 'disabled', 'id', 'name', 'required', 'size', 'value']
1400
+ inputs: ['checked', 'disabled', 'id', 'name', 'required', 'value']
1353
1401
  })
1354
1402
  ], PRadio);
1355
1403
  export { PRadio };
@@ -1360,7 +1408,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1360
1408
  changeDetection: ChangeDetectionStrategy.OnPush,
1361
1409
  template: '<ng-content></ng-content>',
1362
1410
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1363
- inputs: ['checked', 'disabled', 'id', 'name', 'required', 'size', 'value'],
1411
+ inputs: ['checked', 'disabled', 'id', 'name', 'required', 'value'],
1412
+ }]
1413
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1414
+ let PRange = class PRange {
1415
+ constructor(c, r, z) {
1416
+ this.z = z;
1417
+ c.detach();
1418
+ this.el = r.nativeElement;
1419
+ proxyOutputs(this, this.el, ['valueChange']);
1420
+ }
1421
+ };
1422
+ PRange.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PRange, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1423
+ PRange.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PRange, selector: "p-range", inputs: { max: "max", min: "min", step: "step", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1424
+ PRange = __decorate([
1425
+ ProxyCmp({
1426
+ inputs: ['max', 'min', 'step', 'value']
1427
+ })
1428
+ ], PRange);
1429
+ export { PRange };
1430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PRange, decorators: [{
1431
+ type: Component,
1432
+ args: [{
1433
+ selector: 'p-range',
1434
+ changeDetection: ChangeDetectionStrategy.OnPush,
1435
+ template: '<ng-content></ng-content>',
1436
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1437
+ inputs: ['max', 'min', 'step', 'value'],
1364
1438
  }]
1365
1439
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1366
1440
  let PSegmentContainer = class PSegmentContainer {
@@ -1394,10 +1468,10 @@ let PSegmentItem = class PSegmentItem {
1394
1468
  }
1395
1469
  };
1396
1470
  PSegmentItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PSegmentItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1397
- PSegmentItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PSegmentItem, selector: "p-segment-item", inputs: { active: "active", icon: "icon", iconFlip: "iconFlip", iconOnly: "iconOnly", iconRotate: "iconRotate", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1471
+ PSegmentItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PSegmentItem, selector: "p-segment-item", inputs: { active: "active", icon: "icon", iconFlip: "iconFlip", iconOnly: "iconOnly", iconRotate: "iconRotate", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1398
1472
  PSegmentItem = __decorate([
1399
1473
  ProxyCmp({
1400
- inputs: ['active', 'icon', 'iconFlip', 'iconOnly', 'iconRotate', 'size']
1474
+ inputs: ['active', 'icon', 'iconFlip', 'iconOnly', 'iconRotate', 'variant']
1401
1475
  })
1402
1476
  ], PSegmentItem);
1403
1477
  export { PSegmentItem };
@@ -1408,7 +1482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1408
1482
  changeDetection: ChangeDetectionStrategy.OnPush,
1409
1483
  template: '<ng-content></ng-content>',
1410
1484
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1411
- inputs: ['active', 'icon', 'iconFlip', 'iconOnly', 'iconRotate', 'size'],
1485
+ inputs: ['active', 'icon', 'iconFlip', 'iconOnly', 'iconRotate', 'variant'],
1412
1486
  }]
1413
1487
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1414
1488
  let PSelect = class PSelect {
@@ -1420,10 +1494,10 @@ let PSelect = class PSelect {
1420
1494
  }
1421
1495
  };
1422
1496
  PSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1423
- PSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PSelect, selector: "p-select", inputs: { addItemText: "addItemText", applyClassOnSelectedItem: "applyClassOnSelectedItem", asyncFilter: "asyncFilter", autoSelectFirst: "autoSelectFirst", autocompletePlaceholder: "autocompletePlaceholder", avatarKey: "avatarKey", avatarLettersKey: "avatarLettersKey", classKey: "classKey", disabled: "disabled", displayKey: "displayKey", dropdownDisplayKey: "dropdownDisplayKey", emptyStateText: "emptyStateText", enableAutocomplete: "enableAutocomplete", enableSelectAll: "enableSelectAll", error: "error", helper: "helper", icon: "icon", iconKey: "iconKey", identifierKey: "identifierKey", items: "items", label: "label", loading: "loading", maxDisplayedItems: "maxDisplayedItems", multi: "multi", placeholder: "placeholder", prefix: "prefix", query: "query", queryKey: "queryKey", required: "required", selectAllIcon: "selectAllIcon", selectAllText: "selectAllText", selectionDisplayKey: "selectionDisplayKey", showAddItem: "showAddItem", showChevron: "showChevron", showIconInSelectedItem: "showIconInSelectedItem", size: "size", value: "value", valueKey: "valueKey" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1497
+ PSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PSelect, selector: "p-select", inputs: { addItemText: "addItemText", applyClassOnSelectedItem: "applyClassOnSelectedItem", asyncFilter: "asyncFilter", autoSelectFirst: "autoSelectFirst", autocompletePlaceholder: "autocompletePlaceholder", avatarKey: "avatarKey", avatarLettersKey: "avatarLettersKey", classKey: "classKey", disabled: "disabled", displayKey: "displayKey", dropdownDisplayKey: "dropdownDisplayKey", emptyStateText: "emptyStateText", enableAutocomplete: "enableAutocomplete", enableSelectAll: "enableSelectAll", enableTextWrap: "enableTextWrap", error: "error", helper: "helper", icon: "icon", iconKey: "iconKey", identifierKey: "identifierKey", items: "items", label: "label", loading: "loading", maxDisplayedItems: "maxDisplayedItems", multi: "multi", placeholder: "placeholder", prefix: "prefix", query: "query", queryKey: "queryKey", required: "required", selectAllIcon: "selectAllIcon", selectAllText: "selectAllText", selectionDisplayKey: "selectionDisplayKey", showAddItem: "showAddItem", showChevron: "showChevron", showIconOnSelectedItem: "showIconOnSelectedItem", showOptional: "showOptional", size: "size", strategy: "strategy", value: "value", valueKey: "valueKey" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1424
1498
  PSelect = __decorate([
1425
1499
  ProxyCmp({
1426
- inputs: ['addItemText', 'applyClassOnSelectedItem', 'asyncFilter', 'autoSelectFirst', 'autocompletePlaceholder', 'avatarKey', 'avatarLettersKey', 'classKey', 'disabled', 'displayKey', 'dropdownDisplayKey', 'emptyStateText', 'enableAutocomplete', 'enableSelectAll', 'error', 'helper', 'icon', 'iconKey', 'identifierKey', 'items', 'label', 'loading', 'maxDisplayedItems', 'multi', 'placeholder', 'prefix', 'query', 'queryKey', 'required', 'selectAllIcon', 'selectAllText', 'selectionDisplayKey', 'showAddItem', 'showChevron', 'showIconInSelectedItem', 'size', 'value', 'valueKey']
1500
+ inputs: ['addItemText', 'applyClassOnSelectedItem', 'asyncFilter', 'autoSelectFirst', 'autocompletePlaceholder', 'avatarKey', 'avatarLettersKey', 'classKey', 'disabled', 'displayKey', 'dropdownDisplayKey', 'emptyStateText', 'enableAutocomplete', 'enableSelectAll', 'enableTextWrap', 'error', 'helper', 'icon', 'iconKey', 'identifierKey', 'items', 'label', 'loading', 'maxDisplayedItems', 'multi', 'placeholder', 'prefix', 'query', 'queryKey', 'required', 'selectAllIcon', 'selectAllText', 'selectionDisplayKey', 'showAddItem', 'showChevron', 'showIconOnSelectedItem', 'showOptional', 'size', 'strategy', 'value', 'valueKey']
1427
1501
  })
1428
1502
  ], PSelect);
1429
1503
  export { PSelect };
@@ -1434,57 +1508,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1434
1508
  changeDetection: ChangeDetectionStrategy.OnPush,
1435
1509
  template: '<ng-content></ng-content>',
1436
1510
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1437
- inputs: ['addItemText', 'applyClassOnSelectedItem', 'asyncFilter', 'autoSelectFirst', 'autocompletePlaceholder', 'avatarKey', 'avatarLettersKey', 'classKey', 'disabled', 'displayKey', 'dropdownDisplayKey', 'emptyStateText', 'enableAutocomplete', 'enableSelectAll', 'error', 'helper', 'icon', 'iconKey', 'identifierKey', 'items', 'label', 'loading', 'maxDisplayedItems', 'multi', 'placeholder', 'prefix', 'query', 'queryKey', 'required', 'selectAllIcon', 'selectAllText', 'selectionDisplayKey', 'showAddItem', 'showChevron', 'showIconInSelectedItem', 'size', 'value', 'valueKey'],
1438
- }]
1439
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1440
- let PSliderIndicator = class PSliderIndicator {
1441
- constructor(c, r, z) {
1442
- this.z = z;
1443
- c.detach();
1444
- this.el = r.nativeElement;
1445
- }
1446
- };
1447
- PSliderIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PSliderIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1448
- PSliderIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PSliderIndicator, selector: "p-slider-indicator", inputs: { active: "active" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1449
- PSliderIndicator = __decorate([
1450
- ProxyCmp({
1451
- inputs: ['active']
1452
- })
1453
- ], PSliderIndicator);
1454
- export { PSliderIndicator };
1455
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PSliderIndicator, decorators: [{
1456
- type: Component,
1457
- args: [{
1458
- selector: 'p-slider-indicator',
1459
- changeDetection: ChangeDetectionStrategy.OnPush,
1460
- template: '<ng-content></ng-content>',
1461
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1462
- inputs: ['active'],
1511
+ inputs: ['addItemText', 'applyClassOnSelectedItem', 'asyncFilter', 'autoSelectFirst', 'autocompletePlaceholder', 'avatarKey', 'avatarLettersKey', 'classKey', 'disabled', 'displayKey', 'dropdownDisplayKey', 'emptyStateText', 'enableAutocomplete', 'enableSelectAll', 'enableTextWrap', 'error', 'helper', 'icon', 'iconKey', 'identifierKey', 'items', 'label', 'loading', 'maxDisplayedItems', 'multi', 'placeholder', 'prefix', 'query', 'queryKey', 'required', 'selectAllIcon', 'selectAllText', 'selectionDisplayKey', 'showAddItem', 'showChevron', 'showIconOnSelectedItem', 'showOptional', 'size', 'strategy', 'value', 'valueKey'],
1463
1512
  }]
1464
1513
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1465
- let PStatus = class PStatus {
1514
+ let PSmile = class PSmile {
1466
1515
  constructor(c, r, z) {
1467
1516
  this.z = z;
1468
1517
  c.detach();
1469
1518
  this.el = r.nativeElement;
1470
1519
  }
1471
1520
  };
1472
- PStatus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PStatus, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1473
- PStatus.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PStatus, selector: "p-status", inputs: { icon: "icon", iconFlip: "iconFlip", iconRotate: "iconRotate", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1474
- PStatus = __decorate([
1521
+ PSmile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PSmile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1522
+ PSmile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PSmile, selector: "p-smile", inputs: { variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1523
+ PSmile = __decorate([
1475
1524
  ProxyCmp({
1476
- inputs: ['icon', 'iconFlip', 'iconRotate', 'variant']
1525
+ inputs: ['variant']
1477
1526
  })
1478
- ], PStatus);
1479
- export { PStatus };
1480
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PStatus, decorators: [{
1527
+ ], PSmile);
1528
+ export { PSmile };
1529
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PSmile, decorators: [{
1481
1530
  type: Component,
1482
1531
  args: [{
1483
- selector: 'p-status',
1532
+ selector: 'p-smile',
1484
1533
  changeDetection: ChangeDetectionStrategy.OnPush,
1485
1534
  template: '<ng-content></ng-content>',
1486
1535
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1487
- inputs: ['icon', 'iconFlip', 'iconRotate', 'variant'],
1536
+ inputs: ['variant'],
1488
1537
  }]
1489
1538
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1490
1539
  let PStepper = class PStepper {
@@ -1495,10 +1544,10 @@ let PStepper = class PStepper {
1495
1544
  }
1496
1545
  };
1497
1546
  PStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PStepper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1498
- PStepper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PStepper, selector: "p-stepper", inputs: { activeStep: "activeStep", contentPosition: "contentPosition", direction: "direction" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1547
+ PStepper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PStepper, selector: "p-stepper", inputs: { activeStep: "activeStep", align: "align", contentPosition: "contentPosition", direction: "direction", enableAutoStatus: "enableAutoStatus", steps: "steps" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1499
1548
  PStepper = __decorate([
1500
1549
  ProxyCmp({
1501
- inputs: ['activeStep', 'contentPosition', 'direction']
1550
+ inputs: ['activeStep', 'align', 'contentPosition', 'direction', 'enableAutoStatus', 'steps']
1502
1551
  })
1503
1552
  ], PStepper);
1504
1553
  export { PStepper };
@@ -1509,7 +1558,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1509
1558
  changeDetection: ChangeDetectionStrategy.OnPush,
1510
1559
  template: '<ng-content></ng-content>',
1511
1560
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1512
- inputs: ['activeStep', 'contentPosition', 'direction'],
1561
+ inputs: ['activeStep', 'align', 'contentPosition', 'direction', 'enableAutoStatus', 'steps'],
1513
1562
  }]
1514
1563
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1515
1564
  let PStepperItem = class PStepperItem {
@@ -1520,10 +1569,10 @@ let PStepperItem = class PStepperItem {
1520
1569
  }
1521
1570
  };
1522
1571
  PStepperItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PStepperItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1523
- PStepperItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PStepperItem, selector: "p-stepper-item", inputs: { active: "active", align: "align", contentPosition: "contentPosition", direction: "direction", finished: "finished" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1572
+ PStepperItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PStepperItem, selector: "p-stepper-item", inputs: { active: "active", align: "align", contentPosition: "contentPosition", direction: "direction", finished: "finished", number: "number" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1524
1573
  PStepperItem = __decorate([
1525
1574
  ProxyCmp({
1526
- inputs: ['active', 'align', 'contentPosition', 'direction', 'finished']
1575
+ inputs: ['active', 'align', 'contentPosition', 'direction', 'finished', 'number']
1527
1576
  })
1528
1577
  ], PStepperItem);
1529
1578
  export { PStepperItem };
@@ -1534,7 +1583,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1534
1583
  changeDetection: ChangeDetectionStrategy.OnPush,
1535
1584
  template: '<ng-content></ng-content>',
1536
1585
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1537
- inputs: ['active', 'align', 'contentPosition', 'direction', 'finished'],
1586
+ inputs: ['active', 'align', 'contentPosition', 'direction', 'finished', 'number'],
1538
1587
  }]
1539
1588
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1540
1589
  let PStepperLine = class PStepperLine {
@@ -1562,23 +1611,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1562
1611
  inputs: ['active', 'direction'],
1563
1612
  }]
1564
1613
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1565
- let PTabGroup = class PTabGroup {
1614
+ let PTabContainer = class PTabContainer {
1566
1615
  constructor(c, r, z) {
1567
1616
  this.z = z;
1568
1617
  c.detach();
1569
1618
  this.el = r.nativeElement;
1570
1619
  }
1571
1620
  };
1572
- PTabGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTabGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1573
- PTabGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTabGroup, selector: "p-tab-group", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1574
- PTabGroup = __decorate([
1621
+ PTabContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTabContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1622
+ PTabContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTabContainer, selector: "p-tab-container", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1623
+ PTabContainer = __decorate([
1575
1624
  ProxyCmp({})
1576
- ], PTabGroup);
1577
- export { PTabGroup };
1578
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTabGroup, decorators: [{
1625
+ ], PTabContainer);
1626
+ export { PTabContainer };
1627
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTabContainer, decorators: [{
1579
1628
  type: Component,
1580
1629
  args: [{
1581
- selector: 'p-tab-group',
1630
+ selector: 'p-tab-container',
1582
1631
  changeDetection: ChangeDetectionStrategy.OnPush,
1583
1632
  template: '<ng-content></ng-content>',
1584
1633
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
@@ -1618,11 +1667,9 @@ let PTableContainer = class PTableContainer {
1618
1667
  }
1619
1668
  };
1620
1669
  PTableContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTableContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1621
- PTableContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTableContainer, selector: "p-table-container", inputs: { shadow: "shadow" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1670
+ PTableContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTableContainer, selector: "p-table-container", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1622
1671
  PTableContainer = __decorate([
1623
- ProxyCmp({
1624
- inputs: ['shadow']
1625
- })
1672
+ ProxyCmp({})
1626
1673
  ], PTableContainer);
1627
1674
  export { PTableContainer };
1628
1675
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTableContainer, decorators: [{
@@ -1632,7 +1679,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1632
1679
  changeDetection: ChangeDetectionStrategy.OnPush,
1633
1680
  template: '<ng-content></ng-content>',
1634
1681
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1635
- inputs: ['shadow'],
1682
+ inputs: [],
1636
1683
  }]
1637
1684
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1638
1685
  let PTableFooter = class PTableFooter {
@@ -1640,14 +1687,14 @@ let PTableFooter = class PTableFooter {
1640
1687
  this.z = z;
1641
1688
  c.detach();
1642
1689
  this.el = r.nativeElement;
1643
- proxyOutputs(this, this.el, ['pageChange', 'pageSizeChange', 'export']);
1690
+ proxyOutputs(this, this.el, ['pageChange', 'pageSizeChange', 'hiddenChange']);
1644
1691
  }
1645
1692
  };
1646
1693
  PTableFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTableFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1647
- PTableFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTableFooter, selector: "p-table-footer", inputs: { enableExport: "enableExport", enablePageSize: "enablePageSize", enablePagination: "enablePagination", hideOnSinglePage: "hideOnSinglePage", loading: "loading", page: "page", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", total: "total" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1694
+ PTableFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTableFooter, selector: "p-table-footer", inputs: { enablePaginationPages: "enablePaginationPages", enablePaginationSize: "enablePaginationSize", hideOnSinglePage: "hideOnSinglePage", loading: "loading", page: "page", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", total: "total" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1648
1695
  PTableFooter = __decorate([
1649
1696
  ProxyCmp({
1650
- inputs: ['enableExport', 'enablePageSize', 'enablePagination', 'hideOnSinglePage', 'loading', 'page', 'pageSize', 'pageSizeOptions', 'total']
1697
+ inputs: ['enablePaginationPages', 'enablePaginationSize', 'hideOnSinglePage', 'loading', 'page', 'pageSize', 'pageSizeOptions', 'total']
1651
1698
  })
1652
1699
  ], PTableFooter);
1653
1700
  export { PTableFooter };
@@ -1658,7 +1705,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1658
1705
  changeDetection: ChangeDetectionStrategy.OnPush,
1659
1706
  template: '<ng-content></ng-content>',
1660
1707
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1661
- inputs: ['enableExport', 'enablePageSize', 'enablePagination', 'hideOnSinglePage', 'loading', 'page', 'pageSize', 'pageSizeOptions', 'total'],
1708
+ inputs: ['enablePaginationPages', 'enablePaginationSize', 'hideOnSinglePage', 'loading', 'page', 'pageSize', 'pageSizeOptions', 'total'],
1662
1709
  }]
1663
1710
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1664
1711
  let PTableHeader = class PTableHeader {
@@ -1666,14 +1713,14 @@ let PTableHeader = class PTableHeader {
1666
1713
  this.z = z;
1667
1714
  c.detach();
1668
1715
  this.el = r.nativeElement;
1669
- proxyOutputs(this, this.el, ['quickFilter', 'queryChange', 'filter', 'action']);
1716
+ proxyOutputs(this, this.el, ['quickFilter', 'queryChange', 'filter', 'action', 'export']);
1670
1717
  }
1671
1718
  };
1672
1719
  PTableHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTableHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1673
- PTableHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTableHeader, selector: "p-table-header", inputs: { actionButtonTemplate: "actionButtonTemplate", actionIcon: "actionIcon", actionLoading: "actionLoading", actionText: "actionText", activeQuickFilterIdentifier: "activeQuickFilterIdentifier", canUseAction: "canUseAction", enableAction: "enableAction", enableFilter: "enableFilter", enableFilterDesktop: "enableFilterDesktop", enableSearch: "enableSearch", filterButtonTemplate: "filterButtonTemplate", itemsSelectedAmount: "itemsSelectedAmount", loading: "loading", query: "query", quickFilters: "quickFilters", selectedFiltersAmount: "selectedFiltersAmount" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1720
+ PTableHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTableHeader, selector: "p-table-header", inputs: { actionButtonTemplate: "actionButtonTemplate", actionIcon: "actionIcon", actionLoading: "actionLoading", actionText: "actionText", activeQuickFilterIdentifier: "activeQuickFilterIdentifier", canUseAction: "canUseAction", enableAction: "enableAction", enableExport: "enableExport", enableFilter: "enableFilter", enableFilterDesktop: "enableFilterDesktop", enableSearch: "enableSearch", filterButtonTemplate: "filterButtonTemplate", itemsSelectedAmount: "itemsSelectedAmount", loading: "loading", query: "query", quickFilters: "quickFilters", selectedFiltersAmount: "selectedFiltersAmount" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1674
1721
  PTableHeader = __decorate([
1675
1722
  ProxyCmp({
1676
- inputs: ['actionButtonTemplate', 'actionIcon', 'actionLoading', 'actionText', 'activeQuickFilterIdentifier', 'canUseAction', 'enableAction', 'enableFilter', 'enableFilterDesktop', 'enableSearch', 'filterButtonTemplate', 'itemsSelectedAmount', 'loading', 'query', 'quickFilters', 'selectedFiltersAmount']
1723
+ inputs: ['actionButtonTemplate', 'actionIcon', 'actionLoading', 'actionText', 'activeQuickFilterIdentifier', 'canUseAction', 'enableAction', 'enableExport', 'enableFilter', 'enableFilterDesktop', 'enableSearch', 'filterButtonTemplate', 'itemsSelectedAmount', 'loading', 'query', 'quickFilters', 'selectedFiltersAmount']
1677
1724
  })
1678
1725
  ], PTableHeader);
1679
1726
  export { PTableHeader };
@@ -1684,7 +1731,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1684
1731
  changeDetection: ChangeDetectionStrategy.OnPush,
1685
1732
  template: '<ng-content></ng-content>',
1686
1733
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1687
- inputs: ['actionButtonTemplate', 'actionIcon', 'actionLoading', 'actionText', 'activeQuickFilterIdentifier', 'canUseAction', 'enableAction', 'enableFilter', 'enableFilterDesktop', 'enableSearch', 'filterButtonTemplate', 'itemsSelectedAmount', 'loading', 'query', 'quickFilters', 'selectedFiltersAmount'],
1734
+ inputs: ['actionButtonTemplate', 'actionIcon', 'actionLoading', 'actionText', 'activeQuickFilterIdentifier', 'canUseAction', 'enableAction', 'enableExport', 'enableFilter', 'enableFilterDesktop', 'enableSearch', 'filterButtonTemplate', 'itemsSelectedAmount', 'loading', 'query', 'quickFilters', 'selectedFiltersAmount'],
1688
1735
  }]
1689
1736
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1690
1737
  let PTableRow = class PTableRow {
@@ -1695,10 +1742,10 @@ let PTableRow = class PTableRow {
1695
1742
  }
1696
1743
  };
1697
1744
  PTableRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTableRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1698
- PTableRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTableRow, selector: "p-table-row", inputs: { enableHover: "enableHover", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1745
+ PTableRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTableRow, selector: "p-table-row", inputs: { checked: "checked", enableHover: "enableHover", isLast: "isLast", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1699
1746
  PTableRow = __decorate([
1700
1747
  ProxyCmp({
1701
- inputs: ['enableHover', 'variant']
1748
+ inputs: ['checked', 'enableHover', 'isLast', 'variant']
1702
1749
  })
1703
1750
  ], PTableRow);
1704
1751
  export { PTableRow };
@@ -1709,7 +1756,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1709
1756
  changeDetection: ChangeDetectionStrategy.OnPush,
1710
1757
  template: '<ng-content></ng-content>',
1711
1758
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1712
- inputs: ['enableHover', 'variant'],
1759
+ inputs: ['checked', 'enableHover', 'isLast', 'variant'],
1760
+ }]
1761
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1762
+ let PTableRowActionsContainer = class PTableRowActionsContainer {
1763
+ constructor(c, r, z) {
1764
+ this.z = z;
1765
+ c.detach();
1766
+ this.el = r.nativeElement;
1767
+ }
1768
+ };
1769
+ PTableRowActionsContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTableRowActionsContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1770
+ PTableRowActionsContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTableRowActionsContainer, selector: "p-table-row-actions-container", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1771
+ PTableRowActionsContainer = __decorate([
1772
+ ProxyCmp({})
1773
+ ], PTableRowActionsContainer);
1774
+ export { PTableRowActionsContainer };
1775
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTableRowActionsContainer, decorators: [{
1776
+ type: Component,
1777
+ args: [{
1778
+ selector: 'p-table-row-actions-container',
1779
+ changeDetection: ChangeDetectionStrategy.OnPush,
1780
+ template: '<ng-content></ng-content>',
1781
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1782
+ inputs: [],
1713
1783
  }]
1714
1784
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1715
1785
  let PToast = class PToast {
@@ -1747,10 +1817,10 @@ let PToggle = class PToggle {
1747
1817
  }
1748
1818
  };
1749
1819
  PToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1750
- PToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PToggle, selector: "p-toggle", inputs: { checked: "checked", disabled: "disabled", id: "id", indeterminate: "indeterminate", name: "name", required: "required", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1820
+ PToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PToggle, selector: "p-toggle", inputs: { checked: "checked", disabled: "disabled", id: "id", name: "name", required: "required" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1751
1821
  PToggle = __decorate([
1752
1822
  ProxyCmp({
1753
- inputs: ['checked', 'disabled', 'id', 'indeterminate', 'name', 'required', 'size']
1823
+ inputs: ['checked', 'disabled', 'id', 'name', 'required']
1754
1824
  })
1755
1825
  ], PToggle);
1756
1826
  export { PToggle };
@@ -1761,7 +1831,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1761
1831
  changeDetection: ChangeDetectionStrategy.OnPush,
1762
1832
  template: '<ng-content></ng-content>',
1763
1833
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1764
- inputs: ['checked', 'disabled', 'id', 'indeterminate', 'name', 'required', 'size'],
1834
+ inputs: ['checked', 'disabled', 'id', 'name', 'required'],
1765
1835
  }]
1766
1836
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1767
1837
  let PTooltip = class PTooltip {
@@ -1773,10 +1843,10 @@ let PTooltip = class PTooltip {
1773
1843
  }
1774
1844
  };
1775
1845
  PTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1776
- PTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTooltip, selector: "p-tooltip", inputs: { canManuallyClose: "canManuallyClose", content: "content", enableUserInput: "enableUserInput", offset: "offset", placement: "placement", show: "show", strategy: "strategy", usePortal: "usePortal", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1846
+ PTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PTooltip, selector: "p-tooltip", inputs: { canManuallyClose: "canManuallyClose", content: "content", enableUserInput: "enableUserInput", offset: "offset", placement: "placement", show: "show", strategy: "strategy", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1777
1847
  PTooltip = __decorate([
1778
1848
  ProxyCmp({
1779
- inputs: ['canManuallyClose', 'content', 'enableUserInput', 'offset', 'placement', 'show', 'strategy', 'usePortal', 'variant']
1849
+ inputs: ['canManuallyClose', 'content', 'enableUserInput', 'offset', 'placement', 'show', 'strategy', 'variant']
1780
1850
  })
1781
1851
  ], PTooltip);
1782
1852
  export { PTooltip };
@@ -1787,7 +1857,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1787
1857
  changeDetection: ChangeDetectionStrategy.OnPush,
1788
1858
  template: '<ng-content></ng-content>',
1789
1859
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1790
- inputs: ['canManuallyClose', 'content', 'enableUserInput', 'offset', 'placement', 'show', 'strategy', 'usePortal', 'variant'],
1860
+ inputs: ['canManuallyClose', 'content', 'enableUserInput', 'offset', 'placement', 'show', 'strategy', 'variant'],
1791
1861
  }]
1792
1862
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1793
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3BhcGVybGVzcy9zcmMvbGliL3N0ZW5jaWwvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFlaEUsSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVTtJQUVyQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3VHQU5VLFVBQVU7MkZBQVYsVUFBVSw2SUFKWCwyQkFBMkI7QUFJMUIsVUFBVTtJQVZ0QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUM7S0FDcEQsQ0FBQztHQVFXLFVBQVUsQ0FPdEI7U0FQWSxVQUFVOzJGQUFWLFVBQVU7a0JBUHRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQztpQkFDcEQ7O0FBNkJNLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFFdEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7d0dBTlUsV0FBVzs0RkFBWCxXQUFXLDhJQUpaLDJCQUEyQjtBQUkxQixXQUFXO0lBVnZCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQztLQUNwRCxDQUFDO0dBUVcsV0FBVyxDQU92QjtTQVBZLFdBQVc7MkZBQVgsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDO2lCQUNwRDs7QUFpQ00sSUFBTSxPQUFPLEdBQWIsTUFBTSxPQUFPO0lBRWxCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O29HQUxVLE9BQU87d0ZBQVAsT0FBTyx3SUFKUiwyQkFBMkI7QUFJMUIsT0FBTztJQVZuQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7S0FDbkQsQ0FBQztHQVFXLE9BQU8sQ0FNbkI7U0FOWSxPQUFPOzJGQUFQLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztpQkFDbkQ7O0FBdUJNLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQVk7SUFFdkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7eUdBTFUsWUFBWTs2RkFBWixZQUFZLGtGQUpiLDJCQUEyQjtBQUkxQixZQUFZO0lBVnhCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQztLQUNsQixDQUFDO0dBUVcsWUFBWSxDQU14QjtTQU5ZLFlBQVk7MkZBQVosWUFBWTtrQkFQeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCOztBQXVCTSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFcEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDOztzR0FOVSxTQUFTOzBGQUFULFNBQVMsd0tBSlYsMkJBQTJCO0FBSTFCLFNBQVM7SUFWckIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztLQUNuRSxDQUFDO0dBUVcsU0FBUyxDQU9yQjtTQVBZLFNBQVM7MkZBQVQsU0FBUztrQkFQckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztpQkFDbkU7O0FBNEJNLElBQU0sTUFBTSxHQUFaLE1BQU0sTUFBTTtJQUVqQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzttR0FMVSxNQUFNO3VGQUFOLE1BQU0sK0NBSlAsMkJBQTJCO0FBSTFCLE1BQU07SUFUbEIsUUFBUSxDQUFDLEVBQ1QsQ0FBQztHQVFXLE1BQU0sQ0FNbEI7U0FOWSxNQUFNOzJGQUFOLE1BQU07a0JBUGxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxFQUFFO2lCQUNYOztBQXVCTSxJQUFNLE9BQU8sR0FBYixNQUFNLE9BQU87SUFFbEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDOztvR0FOVSxPQUFPO3dGQUFQLE9BQU8sNGVBSlIsMkJBQTJCO0FBSTFCLE9BQU87SUFWbkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUM7S0FDclAsQ0FBQztHQVFXLE9BQU8sQ0FPbkI7U0FQWSxPQUFPOzJGQUFQLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDO2lCQUNyUDs7QUE2Qk0sSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzt5R0FMVSxZQUFZOzZGQUFaLFlBQVksZ0ZBSmIsMkJBQTJCO0FBSTFCLFlBQVk7SUFWeEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO0tBQ2pCLENBQUM7R0FRVyxZQUFZLENBTXhCO1NBTlksWUFBWTsyRkFBWixZQUFZO2tCQVB4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztpQkFDakI7O0FBdUJNLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7O3NHQU5VLFNBQVM7MEZBQVQsU0FBUyw4UEFKViwyQkFBMkI7QUFJMUIsU0FBUztJQVZyQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQztLQUNqSCxDQUFDO0dBUVcsU0FBUyxDQU9yQjtTQVBZLFNBQVM7MkZBQVQsU0FBUztrQkFQckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUM7aUJBQ2pIOztBQTZCTSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFcEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7c0dBTFUsU0FBUzswRkFBVCxTQUFTLDJGQUpWLDJCQUEyQjtBQUkxQixTQUFTO0lBVnJCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQztLQUN4QixDQUFDO0dBUVcsU0FBUyxDQU1yQjtTQU5ZLFNBQVM7MkZBQVQsU0FBUztrQkFQckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN4Qjs7QUF1Qk0sSUFBTSxjQUFjLEdBQXBCLE1BQU0sY0FBYztJQUV6QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzsyR0FMVSxjQUFjOytGQUFkLGNBQWMsOEdBSmYsMkJBQTJCO0FBSTFCLGNBQWM7SUFWMUIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQztLQUNoQyxDQUFDO0dBUVcsY0FBYyxDQU0xQjtTQU5ZLGNBQWM7MkZBQWQsY0FBYztrQkFQMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO2lCQUNoQzs7QUF1Qk0sSUFBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUV0QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzt3R0FMVSxXQUFXOzRGQUFYLFdBQVcsbUdBSlosMkJBQTJCO0FBSTFCLFdBQVc7SUFWdkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztLQUM1QixDQUFDO0dBUVcsV0FBVyxDQU12QjtTQU5ZLFdBQVc7MkZBQVgsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztpQkFDNUI7O0FBdUJNLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O3NHQU5VLFNBQVM7MEZBQVQsU0FBUyxvTUFKViwyQkFBMkI7QUFJMUIsU0FBUztJQVZyQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUM7S0FDbkYsQ0FBQztHQVFXLFNBQVMsQ0FPckI7U0FQWSxTQUFTOzJGQUFULFNBQVM7a0JBUHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQztpQkFDbkY7O0FBaUNNLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUFFekIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7MkdBTFUsY0FBYzsrRkFBZCxjQUFjLG9PQUpmLDJCQUEyQjtBQUkxQixjQUFjO0lBVjFCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGFBQWEsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQztLQUM3RixDQUFDO0dBUVcsY0FBYyxDQU0xQjtTQU5ZLGNBQWM7MkZBQWQsY0FBYztrQkFQMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLENBQUM7aUJBQzdGOztBQXVCTSxJQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVE7SUFFbkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7cUdBTFUsUUFBUTt5RkFBUixRQUFRLCtGQUpULDJCQUEyQjtBQUkxQixRQUFRO0lBVnBCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7S0FDNUIsQ0FBQztHQVFXLFFBQVEsQ0FNcEI7U0FOWSxRQUFROzJGQUFSLFFBQVE7a0JBUHBCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7aUJBQzVCOztBQXVCTSxJQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVE7SUFFbkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDOztxR0FOVSxRQUFRO3lGQUFSLFFBQVEsMkhBSlQsMkJBQTJCO0FBSTFCLFFBQVE7SUFWcEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUM7S0FDM0MsQ0FBQztHQVFXLFFBQVEsQ0FPcEI7U0FQWSxRQUFROzJGQUFSLFFBQVE7a0JBUHBCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO2lCQUMzQzs7QUE2Qk0sSUFBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUV0QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7O3dHQU5VLFdBQVc7NEZBQVgsV0FBVyxnZkFKWiwyQkFBMkI7QUFJMUIsV0FBVztJQVZ2QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUM7S0FDcFAsQ0FBQztHQVFXLFdBQVcsQ0FPdkI7U0FQWSxXQUFXOzJGQUFYLFdBQVc7a0JBUHZCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQztpQkFDcFA7O0FBNkJNLElBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUTtJQUVuQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOztxR0FMVSxRQUFRO3lGQUFSLFFBQVEsaUZBSlQsMkJBQTJCO0FBSTFCLFFBQVE7SUFWcEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO0tBQ3BCLENBQUM7R0FRVyxRQUFRLENBTXBCO1NBTlksUUFBUTsyRkFBUixRQUFRO2tCQVBwQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQ3BCOztBQXVCTSxJQUFNLE9BQU8sR0FBYixNQUFNLE9BQU87SUFFbEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7b0dBTlUsT0FBTzt3RkFBUCxPQUFPLHNPQUpSLDJCQUEyQjtBQUkxQixPQUFPO0lBVm5CLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDO0tBQ3JHLENBQUM7R0FRVyxPQUFPLENBT25CO1NBUFksT0FBTzsyRkFBUCxPQUFPO2tCQVBuQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQztpQkFDckc7O0FBaUNNLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFFdEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7d0dBTFUsV0FBVzs0RkFBWCxXQUFXLHFGQUpaLDJCQUEyQjtBQUkxQixXQUFXO0lBVnZCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztLQUNwQixDQUFDO0dBUVcsV0FBVyxDQU12QjtTQU5ZLFdBQVc7MkZBQVgsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUNwQjs7QUF1Qk0sSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFFM0IsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7NkdBTFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsMEZBSmpCLDJCQUEyQjtBQUkxQixnQkFBZ0I7SUFWNUIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO0tBQ3BCLENBQUM7R0FRVyxnQkFBZ0IsQ0FNNUI7U0FOWSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFQNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQ3BCOztBQXVCTSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7MEdBTlUsYUFBYTs4RkFBYixhQUFhLDJGQUpkLDJCQUEyQjtBQUkxQixhQUFhO0lBVnpCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQztLQUN0QixDQUFDO0dBUVcsYUFBYSxDQU96QjtTQVBZLGFBQWE7MkZBQWIsYUFBYTtrQkFQekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUM7aUJBQ3RCOztBQTZCTSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFcEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDOztzR0FOVSxTQUFTOzBGQUFULFNBQVMsa2ZBSlYsMkJBQTJCO0FBSTFCLFNBQVM7SUFWckIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDO0tBQ2xQLENBQUM7R0FRVyxTQUFTLENBT3JCO1NBUFksU0FBUzsyRkFBVCxTQUFTO2tCQVByQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUM7aUJBQ2xQOztBQTZCTSxJQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUFzQjtJQUVqQyxZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzttSEFMVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixxTUFKdkIsMkJBQTJCO0FBSTFCLHNCQUFzQjtJQVZsQyxRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDO0tBQzFFLENBQUM7R0FRVyxzQkFBc0IsQ0FNbEM7U0FOWSxzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFQbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDO2lCQUMxRTs7QUF1Qk0sSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFFNUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7OEdBTFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsa09BSmxCLDJCQUEyQjtBQUkxQixpQkFBaUI7SUFWN0IsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDO0tBQzdGLENBQUM7R0FRVyxpQkFBaUIsQ0FNN0I7U0FOWSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFQN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUM7aUJBQzdGOztBQXVCTSxJQUFNLE1BQU0sR0FBWixNQUFNLE1BQU07SUFFakIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDOzttR0FOVSxNQUFNO3VGQUFOLE1BQU0sK2pCQUpQLDJCQUEyQjtBQUkxQixNQUFNO0lBVmxCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO0tBQ2pTLENBQUM7R0FRVyxNQUFNLENBT2xCO1NBUFksTUFBTTsyRkFBTixNQUFNO2tCQVBsQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztpQkFDalM7O0FBaUNNLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFFMUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs0R0FOVSxlQUFlO2dHQUFmLGVBQWUsMlBBSmhCLDJCQUEyQjtBQUkxQixlQUFlO0lBVjNCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsQ0FBQztLQUMzRyxDQUFDO0dBUVcsZUFBZSxDQU8zQjtTQVBZLGVBQWU7MkZBQWYsZUFBZTtrQkFQM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLENBQUM7aUJBQzNHOztBQTJCTSxJQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUFzQjtJQUVqQyxZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzttSEFMVSxzQkFBc0I7dUdBQXRCLHNCQUFzQix5R0FKdkIsMkJBQTJCO0FBSTFCLHNCQUFzQjtJQVZsQyxRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUM7S0FDeEIsQ0FBQztHQVFXLHNCQUFzQixDQU1sQztTQU5ZLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQVBsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDeEI7O0FBdUJNLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBRTVCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzhHQUxVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDhHQUpsQiwyQkFBMkI7QUFJMUIsaUJBQWlCO0lBVjdCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUM7S0FDOUIsQ0FBQztHQVFXLGlCQUFpQixDQU03QjtTQU5ZLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQVA3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUM7aUJBQzlCOztBQXVCTSxJQUFNLE9BQU8sR0FBYixNQUFNLE9BQU87SUFFbEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7b0dBTFUsT0FBTzt3RkFBUCxPQUFPLDBHQUpSLDJCQUEyQjtBQUkxQixPQUFPO0lBVm5CLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7S0FDbEMsQ0FBQztHQVFXLE9BQU8sQ0FNbkI7U0FOWSxPQUFPOzJGQUFQLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7aUJBQ2xDOztBQXVCTSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFcEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7c0dBTFUsU0FBUzswRkFBVCxTQUFTLGlHQUpWLDJCQUEyQjtBQUkxQixTQUFTO0lBVnJCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7S0FDNUIsQ0FBQztHQVFXLFNBQVMsQ0FNckI7U0FOWSxTQUFTOzJGQUFULFNBQVM7a0JBUHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7aUJBQzVCOztBQXVCTSxJQUFNLEtBQUssR0FBWCxNQUFNLEtBQUs7SUFFaEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7a0dBTFUsS0FBSztzRkFBTCxLQUFLLDRIQUpOLDJCQUEyQjtBQUkxQixLQUFLO0lBVmpCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztLQUM5QyxDQUFDO0dBUVcsS0FBSyxDQU1qQjtTQU5ZLEtBQUs7MkZBQUwsS0FBSztrQkFQakIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO2lCQUM5Qzs7QUF1Qk0sSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUUxQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzs0R0FMVSxlQUFlO2dHQUFmLGVBQWUsdUlBSmhCLDJCQUEyQjtBQUkxQixlQUFlO0lBVjNCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztLQUM5QyxDQUFDO0dBUVcsZUFBZSxDQU0zQjtTQU5ZLGVBQWU7MkZBQWYsZUFBZTtrQkFQM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUM7aUJBQzlDOztBQXVCTSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzBHQUxVLGFBQWE7OEZBQWIsYUFBYSxzRkFKZCwyQkFBMkI7QUFJMUIsYUFBYTtJQVZ6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7S0FDcEIsQ0FBQztHQVFXLGFBQWEsQ0FNekI7U0FOWSxhQUFhOzJGQUFiLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUNwQjs7QUF1Qk0sSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVTtJQUVyQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3VHQU5VLFVBQVU7MkZBQVYsVUFBVSxrSkFKWCwyQkFBMkI7QUFJMUIsVUFBVTtJQVZ0QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUM7S0FDdEQsQ0FBQztHQVFXLFVBQVUsQ0FPdEI7U0FQWSxVQUFVOzJGQUFWLFVBQVU7a0JBUHRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztpQkFDdEQ7O0FBNkJNLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFFdEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7d0dBTFUsV0FBVzs0RkFBWCxXQUFXLHVIQUpaLDJCQUEyQjtBQUkxQixXQUFXO0lBVnZCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQztLQUN0QyxDQUFDO0dBUVcsV0FBVyxDQU12QjtTQU5ZLFdBQVc7MkZBQVgsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDO2lCQUN0Qzs7QUF1Qk0sSUFBTSxNQUFNLEdBQVosTUFBTSxNQUFNO0lBRWpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O21HQUxVLE1BQU07dUZBQU4sTUFBTSwyTUFKUCwyQkFBMkI7QUFJMUIsTUFBTTtJQVZsQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDO0tBQ3ZGLENBQUM7R0FRVyxNQUFNLENBTWxCO1NBTlksTUFBTTsyRkFBTixNQUFNO2tCQVBsQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDO2lCQUN2Rjs7QUF1Qk0sSUFBTSxPQUFPLEdBQWIsTUFBTSxPQUFPO0lBRWxCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O29HQUxVLE9BQU87d0ZBQVAsT0FBTyxnRkFKUiwyQkFBMkI7QUFJMUIsT0FBTztJQVZuQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7S0FDcEIsQ0FBQztHQVFXLE9BQU8sQ0FNbkI7U0FOWSxPQUFPOzJGQUFQLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztpQkFDcEI7O0FBdUJNLElBQU0sT0FBTyxHQUFiLE1BQU0sT0FBTztJQUVsQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOztvR0FMVSxPQUFPO3dGQUFQLE9BQU8sOEtBSlIsMkJBQTJCO0FBSTFCLE9BQU87SUFWbkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO0tBQ3ZFLENBQUM7R0FRVyxPQUFPLENBTW5CO1NBTlksT0FBTzsyRkFBUCxPQUFPO2tCQVBuQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUM7aUJBQ3ZFOztBQXVCTSxJQUFNLE1BQU0sR0FBWixNQUFNLE1BQU07SUFFakIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7bUdBTlUsTUFBTTt1RkFBTixNQUFNLDJTQUpQLDJCQUEyQjtBQUkxQixNQUFNO0lBVmxCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUM7S0FDM0ksQ0FBQztHQVFXLE1BQU0sQ0FPbEI7U0FQWSxNQUFNOzJGQUFOLE1BQU07a0JBUGxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUM7aUJBQzNJOztBQWlDTSxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFVO0lBRXJCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3VHQUxVLFVBQVU7MkZBQVYsVUFBVSxrS0FKWCwyQkFBMkI7QUFJMUIsVUFBVTtJQVZ0QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUM7S0FDOUQsQ0FBQztHQVFXLFVBQVUsQ0FNdEI7U0FOWSxVQUFVOzJGQUFWLFVBQVU7a0JBUHRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztpQkFDOUQ7O0FBdUJNLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFFMUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7NEdBTFUsZUFBZTtnR0FBZixlQUFlLHVHQUpoQiwyQkFBMkI7QUFJMUIsZUFBZTtJQVYzQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0tBQzVCLENBQUM7R0FRVyxlQUFlLENBTTNCO1NBTlksZUFBZTsyRkFBZixlQUFlO2tCQVAzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7aUJBQzVCOztBQXNCTSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3lHQUxVLFlBQVk7NkZBQVosWUFBWSxzREFKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVR4QixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsWUFBWSxDQU14QjtTQU5ZLFlBQVk7MkZBQVosWUFBWTtrQkFQeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsRUFBRTtpQkFDWDs7QUF1Qk0sSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O3lHQU5VLFlBQVk7NkZBQVosWUFBWSwwRkFKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDdEIsQ0FBQztHQVFXLFlBQVksQ0FPeEI7U0FQWSxZQUFZOzJGQUFaLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN0Qjs7QUE0Qk0sSUFBTSxPQUFPLEdBQWIsTUFBTSxPQUFPO0lBRWxCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O29HQUxVLE9BQU87d0ZBQVAsT0FBTyxnREFKUiwyQkFBMkI7QUFJMUIsT0FBTztJQVRuQixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsT0FBTyxDQU1uQjtTQU5ZLE9BQU87MkZBQVAsT0FBTztrQkFQbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7O0FBdUJNLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFFMUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7NEdBTFUsZUFBZTtnR0FBZixlQUFlLHVNQUpoQiwyQkFBMkI7QUFJMUIsZUFBZTtJQVYzQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDO0tBQ2xGLENBQUM7R0FRVyxlQUFlLENBTTNCO1NBTlksZUFBZTsyRkFBZixlQUFlO2tCQVAzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUM7aUJBQ2xGOztBQXVCTSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFrQjtJQUU3QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzsrR0FMVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwwRkFKbkIsMkJBQTJCO0FBSTFCLGtCQUFrQjtJQVY5QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7S0FDbkIsQ0FBQztHQVFXLGtCQUFrQixDQU05QjtTQU5ZLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQVA5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztpQkFDbkI7O0FBc0JNLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBRTNCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzZHQUxVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLDBEQUpqQiwyQkFBMkI7QUFJMUIsZ0JBQWdCO0lBVDVCLFFBQVEsQ0FBQyxFQUNULENBQUM7R0FRVyxnQkFBZ0IsQ0FNNUI7U0FOWSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFQNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsRUFBRTtpQkFDWDs7QUF1Qk0sSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUUxQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7OzRHQU5VLGVBQWU7Z0dBQWYsZUFBZSxnUUFKaEIsMkJBQTJCO0FBSTFCLGVBQWU7SUFWM0IsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQztLQUM3RyxDQUFDO0dBUVcsZUFBZSxDQU8zQjtTQVBZLGVBQWU7MkZBQWYsZUFBZTtrQkFQM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDO2lCQUM3Rzs7QUE2Qk0sSUFBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUV0QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7O3dHQU5VLFdBQVc7NEZBQVgsV0FBVywwSkFKWiwyQkFBMkI7QUFJMUIsV0FBVztJQVZ2QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQztLQUMxRCxDQUFDO0dBUVcsV0FBVyxDQU92QjtTQVBZLFdBQVc7MkZBQVgsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUM7aUJBQzFEOztBQTZCTSxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFlO0lBRTFCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzRHQUxVLGVBQWU7Z0dBQWYsZUFBZSx1RkFKaEIsMkJBQTJCO0FBSTFCLGVBQWU7SUFWM0IsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO0tBQ25CLENBQUM7R0FRVyxlQUFlLENBTTNCO1NBTlksZUFBZTsyRkFBZixlQUFlO2tCQVAzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztpQkFDbkI7O0FBc0JNLElBQU0sT0FBTyxHQUFiLE1BQU0sT0FBTztJQUVsQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOztvR0FMVSxPQUFPO3dGQUFQLE9BQU8sZ0RBSlIsMkJBQTJCO0FBSTFCLE9BQU87SUFUbkIsUUFBUSxDQUFDLEVBQ1QsQ0FBQztHQVFXLE9BQU8sQ0FNbkI7U0FOWSxPQUFPOzJGQUFQLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxFQUFFO2lCQUNYOztBQXVCTSxJQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVE7SUFFbkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7cUdBTFUsUUFBUTt5RkFBUixRQUFRLG1HQUpULDJCQUEyQjtBQUkxQixRQUFRO0lBVnBCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDO0tBQzdCLENBQUM7R0FRVyxRQUFRLENBTXBCO1NBTlksUUFBUTsyRkFBUixRQUFRO2tCQVBwQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDN0I7O0FBdUJNLElBQU0sTUFBTSxHQUFaLE1BQU0sTUFBTTtJQUVqQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7O21HQU5VLE1BQU07dUZBQU4sTUFBTSxpTEFKUCwyQkFBMkI7QUFJMUIsTUFBTTtJQVZsQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7S0FDM0UsQ0FBQztHQVFXLE1BQU0sQ0FPbEI7U0FQWSxNQUFNOzJGQUFOLE1BQU07a0JBUGxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztpQkFDM0U7O0FBNEJNLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBRTVCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzhHQUxVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJEQUpsQiwyQkFBMkI7QUFJMUIsaUJBQWlCO0lBVDdCLFFBQVEsQ0FBQyxFQUNULENBQUM7R0FRVyxpQkFBaUIsQ0FNN0I7U0FOWSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFQN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsRUFBRTtpQkFDWDs7QUF1Qk0sSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzt5R0FMVSxZQUFZOzZGQUFaLFlBQVksc0xBSmIsMkJBQTJCO0FBSTFCLFlBQVk7SUFWeEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUM7S0FDekUsQ0FBQztHQVFXLFlBQVksQ0FNeEI7U0FOWSxZQUFZOzJGQUFaLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUM7aUJBQ3pFOztBQXVCTSxJQUFNLE9BQU8sR0FBYixNQUFNLE9BQU87SUFFbEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDOztvR0FOVSxPQUFPO3dGQUFQLE9BQU8sb21DQUpSLDJCQUEyQjtBQUkxQixPQUFPO0lBVm5CLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDO0tBQ25rQixDQUFDO0dBUVcsT0FBTyxDQU9uQjtTQVBZLE9BQU87MkZBQVAsT0FBTztrQkFQbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUM7aUJBQ25rQjs7QUE2Q00sSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFFM0IsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7NkdBTFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isd0ZBSmpCLDJCQUEyQjtBQUkxQixnQkFBZ0I7SUFWNUIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO0tBQ25CLENBQUM7R0FRVyxnQkFBZ0IsQ0FNNUI7U0FOWSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFQNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7aUJBQ25COztBQXVCTSxJQUFNLE9BQU8sR0FBYixNQUFNLE9BQU87SUFFbEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7b0dBTFUsT0FBTzt3RkFBUCxPQUFPLDhJQUpSLDJCQUEyQjtBQUkxQixPQUFPO0lBVm5CLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztLQUN0RCxDQUFDO0dBUVcsT0FBTyxDQU1uQjtTQU5ZLE9BQU87MkZBQVAsT0FBTztrQkFQbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDO2lCQUN0RDs7QUF1Qk0sSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3FHQUxVLFFBQVE7eUZBQVIsUUFBUSxtSkFKVCwyQkFBMkI7QUFJMUIsUUFBUTtJQVZwQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO0tBQ3ZELENBQUM7R0FRVyxRQUFRLENBTXBCO1NBTlksUUFBUTsyRkFBUixRQUFRO2tCQVBwQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO2lCQUN2RDs7QUF1Qk0sSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzt5R0FMVSxZQUFZOzZGQUFaLFlBQVksc0xBSmIsMkJBQTJCO0FBSTFCLFlBQVk7SUFWeEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDO0tBQ3hFLENBQUM7R0FRVyxZQUFZLENBTXhCO1NBTlksWUFBWTsyRkFBWixZQUFZO2tCQVB4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQztpQkFDeEU7O0FBdUJNLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQVk7SUFFdkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7eUdBTFUsWUFBWTs2RkFBWixZQUFZLDRHQUpiLDJCQUEyQjtBQUkxQixZQUFZO0lBVnhCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7S0FDaEMsQ0FBQztHQVFXLFlBQVksQ0FNeEI7U0FOWSxZQUFZOzJGQUFaLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQztpQkFDaEM7O0FBc0JNLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOztzR0FMVSxTQUFTOzBGQUFULFNBQVMsbURBSlYsMkJBQTJCO0FBSTFCLFNBQVM7SUFUckIsUUFBUSxDQUFDLEVBQ1QsQ0FBQztHQVFXLFNBQVMsQ0FNckI7U0FOWSxTQUFTOzJGQUFULFNBQVM7a0JBUHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxFQUFFO2lCQUNYOztBQXVCTSxJQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVE7SUFFbkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7cUdBTFUsUUFBUTt5RkFBUixRQUFRLGdGQUpULDJCQUEyQjtBQUkxQixRQUFRO0lBVnBCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNuQixDQUFDO0dBUVcsUUFBUSxDQU1wQjtTQU5ZLFFBQVE7MkZBQVIsUUFBUTtrQkFQcEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUNuQjs7QUF1Qk0sSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUUxQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzs0R0FMVSxlQUFlO2dHQUFmLGVBQWUsdUZBSmhCLDJCQUEyQjtBQUkxQixlQUFlO0lBVjNCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNuQixDQUFDO0dBUVcsZUFBZSxDQU0zQjtTQU5ZLGVBQWU7MkZBQWYsZUFBZTtrQkFQM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7aUJBQ25COztBQXVCTSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7O3lHQU5VLFlBQVk7NkZBQVosWUFBWSwwVEFKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0tBQzlJLENBQUM7R0FRVyxZQUFZLENBT3hCO1NBUFksWUFBWTsyRkFBWixZQUFZO2tCQVB4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUM7aUJBQzlJOztBQXFDTSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQzs7eUdBTlUsWUFBWTs2RkFBWixZQUFZLGduQkFKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSw2QkFBNkIsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsdUJBQXVCLENBQUM7S0FDaFQsQ0FBQztHQVFXLFlBQVksQ0FPeEI7U0FQWSxZQUFZOzJGQUFaLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsNkJBQTZCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixDQUFDO2lCQUNoVDs7QUEyQ00sSUFBTSxTQUFTLEdBQWYsTUFBTSxTQUFTO0lBRXBCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3NHQUxVLFNBQVM7MEZBQVQsU0FBUywrR0FKViwyQkFBMkI7QUFJMUIsU0FBUztJQVZyQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDO0tBQ25DLENBQUM7R0FRVyxTQUFTLENBTXJCO1NBTlksU0FBUzsyRkFBVCxTQUFTO2tCQVByQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDO2lCQUNuQzs7QUF1Qk0sSUFBTSxNQUFNLEdBQVosTUFBTSxNQUFNO0lBRWpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7bUdBTlUsTUFBTTt1RkFBTixNQUFNLHFQQUpQLDJCQUEyQjtBQUkxQixNQUFNO0lBVmxCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUM7S0FDN0csQ0FBQztHQVFXLE1BQU0sQ0FPbEI7U0FQWSxNQUFNOzJGQUFOLE1BQU07a0JBUGxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUM7aUJBQzdHOztBQTZCTSxJQUFNLE9BQU8sR0FBYixNQUFNLE9BQU87SUFFbEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDOztvR0FOVSxPQUFPO3dGQUFQLE9BQU8sa01BSlIsMkJBQTJCO0FBSTFCLE9BQU87SUFWbkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDO0tBQ25GLENBQUM7R0FRVyxPQUFPLENBT25CO1NBUFksT0FBTzsyRkFBUCxPQUFPO2tCQVBuQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUM7aUJBQ25GOztBQWlDTSxJQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVE7SUFFbkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDOztxR0FOVSxRQUFRO3lGQUFSLFFBQVEscVJBSlQsMkJBQTJCO0FBSTFCLFFBQVE7SUFWcEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDO0tBQzlILENBQUM7R0FRVyxRQUFRLENBT3BCO1NBUFksUUFBUTsyRkFBUixRQUFRO2tCQVBwQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUM7aUJBQzlIIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRzIH0gZnJvbSAnQHBhcGVybGVzcy9jb3JlJztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VhYmxlJywgJ2hlYWRlcicsICdvcGVuJywgJ29wZW5hYmxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWFjY29yZGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2VhYmxlJywgJ2hlYWRlcicsICdvcGVuJywgJ29wZW5hYmxlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBBY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpc09wZW4nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEFjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuUEFjY29yZGlvbiB7XG4gIC8qKlxuICAgKiBPcGVuIGNoYW5nZSBldmVudFxuICAgKi9cbiAgaXNPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkb3dubG9hZGluZycsICdlcnJvcicsICdsb2FkaW5nJywgJ21vZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtYXR0YWNobWVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZG93bmxvYWRpbmcnLCAnZXJyb3InLCAnbG9hZGluZycsICdtb2RlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBBdHRhY2htZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZG93bmxvYWQnLCAnZGVsZXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBBdHRhY2htZW50IGV4dGVuZHMgQ29tcG9uZW50cy5QQXR0YWNobWVudCB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuIGRvd25sb2FkIGlzIHByZXNzZWRcbiAgICovXG4gIGRvd25sb2FkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuIGRlbGV0ZSBpcyBwcmVzc2VkXG4gICAqL1xuICBkZWxldGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdEltYWdlJywgJ2xldHRlcnMnLCAnc2l6ZScsICdzcmMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtYXZhdGFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWZhdWx0SW1hZ2UnLCAnbGV0dGVycycsICdzaXplJywgJ3NyYyddLFxufSlcbmV4cG9ydCBjbGFzcyBQQXZhdGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEF2YXRhciBleHRlbmRzIENvbXBvbmVudHMuUEF2YXRhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1hdmF0YXItZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2V4dHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBBdmF0YXJHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBBdmF0YXJHcm91cCBleHRlbmRzIENvbXBvbmVudHMuUEF2YXRhckdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcGx5Qmx1cicsICdjbGFzcycsICdjbG9zaW5nJywgJ3Njcm9sbExvY2snLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1iYWNrZHJvcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwbHlCbHVyJywgJ2NsYXNzJywgJ2Nsb3NpbmcnLCAnc2Nyb2xsTG9jaycsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBCYWNrZHJvcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2NsaWNrZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEJhY2tkcm9wIGV4dGVuZHMgQ29tcG9uZW50cy5QQmFja2Ryb3Age1xuICAvKipcbiAgICogV2hlbiB0aGUgYmFja2Ryb3AgaXMgY2xpY2tlZFxuICAgKi9cbiAgY2xpY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgUEJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEJhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5QQmFkZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2FzJywgJ2J1dHRvbkdyb3VwUG9zaXRpb24nLCAnY2hldnJvbicsICdjaGV2cm9uUG9zaXRpb24nLCAnY2xhc3MnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25GbGlwJywgJ2ljb25Pbmx5JywgJ2ljb25Qb3NpdGlvbicsICdpY29uUm90YXRlJywgJ2luaGVyaXRUZXh0JywgJ2xvYWRpbmcnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZScsICd1bmRlcmxpbmUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhcycsICdidXR0b25Hcm91cFBvc2l0aW9uJywgJ2NoZXZyb24nLCAnY2hldnJvblBvc2l0aW9uJywgJ2NsYXNzJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdpY29uRmxpcCcsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnaWNvblJvdGF0ZScsICdpbmhlcml0VGV4dCcsICdsb2FkaW5nJywgJ3NpemUnLCAndGFyZ2V0JywgJ3R5cGUnLCAndW5kZXJsaW5lJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuUEJ1dHRvbiB7XG4gIC8qKlxuICAgKiBCdXR0b24gY2xpY2sgZXZlbnRcbiAgICovXG4gIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtYnV0dG9uLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBCdXR0b25Hcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBCdXR0b25Hcm91cCBleHRlbmRzIENvbXBvbmVudHMuUEJ1dHRvbkdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVXZWVrZW5kcycsICdkaXNhYmxlZERhdGVzJywgJ21heERhdGUnLCAnbWluRGF0ZScsICdtb2RlJywgJ3ByZXNlbGVjdFRvZGF5JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtY2FsZW5kYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVXZWVrZW5kcycsICdkaXNhYmxlZERhdGVzJywgJ21heERhdGUnLCAnbWluRGF0ZScsICdtb2RlJywgJ3ByZXNlbGVjdFRvZGF5JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUENhbGVuZGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUENhbGVuZGFyIGV4dGVuZHMgQ29tcG9uZW50cy5QQ2FsZW5kYXIge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiB0aGUgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW5oZXJpdFRleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtY2FyZC1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpbmhlcml0VGV4dCddLFxufSlcbmV4cG9ydCBjbGFzcyBQQ2FyZEJvZHkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQQ2FyZEJvZHkgZXh0ZW5kcyBDb21wb25lbnRzLlBDYXJkQm9keSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydob3ZlcmFibGUnLCAnc2hhZG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWNhcmQtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydob3ZlcmFibGUnLCAnc2hhZG93J10sXG59KVxuZXhwb3J0IGNsYXNzIFBDYXJkQ29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUENhcmRDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBDYXJkQ29udGFpbmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fycm93JywgJ2hlYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1jYXJkLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJyb3cnLCAnaGVhZGVyJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBDYXJkSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUENhcmRIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBDYXJkSGVhZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaWQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaWQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUENoZWNrYm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2hlY2tlZENoYW5nZScsICdpbmRldGVybWluYXRlQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBDaGVja2JveCBleHRlbmRzIENvbXBvbmVudHMuUENoZWNrYm94IHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW5ldmVyIHRoZSBjaGVja2VkIGNoYW5nZXNcbiAgICovXG4gIGNoZWNrZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgaW5kZXRlcm1pbmF0ZSBjaGFuZ2VzXG4gICAqL1xuICBpbmRldGVybWluYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlQXV0b0NlbnRlcicsICdkaXNhYmxlRHJhZycsICdkaXNhYmxlSW5kaWNhdG9yQ2xpY2snLCAnaGlkZU1vYmlsZUluZGljYXRvciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1jb250ZW50LXNsaWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZUF1dG9DZW50ZXInLCAnZGlzYWJsZURyYWcnLCAnZGlzYWJsZUluZGljYXRvckNsaWNrJywgJ2hpZGVNb2JpbGVJbmRpY2F0b3InXSxcbn0pXG5leHBvcnQgY2xhc3MgUENvbnRlbnRTbGlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQQ29udGVudFNsaWRlciBleHRlbmRzIENvbXBvbmVudHMuUENvbnRlbnRTbGlkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2l6ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWNvdW50ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NpemUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBQQ291bnRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBDb3VudGVyIGV4dGVuZHMgQ29tcG9uZW50cy5QQ291bnRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydyZXR1cm5UeXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtY3JvcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncmV0dXJuVHlwZScsICd2YWx1ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBDcm9wcGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUENyb3BwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBDcm9wcGVyIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gdGhlIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVXZWVrZW5kcycsICdkaXNhYmxlZCcsICdkaXNhYmxlZERhdGVzJywgJ2Vycm9yJywgJ2Zvcm1hdCcsICdoZWxwZXInLCAnaGlkZUljb25XaGVuRmlsbGVkJywgJ2xhYmVsJywgJ21heERhdGUnLCAnbWluRGF0ZScsICdtb2RlJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdwcmVmaXgnLCAncHJlc2VsZWN0VG9kYXknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdHJhdGVneScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlV2Vla2VuZHMnLCAnZGlzYWJsZWQnLCAnZGlzYWJsZWREYXRlcycsICdlcnJvcicsICdmb3JtYXQnLCAnaGVscGVyJywgJ2hpZGVJY29uV2hlbkZpbGxlZCcsICdsYWJlbCcsICdtYXhEYXRlJywgJ21pbkRhdGUnLCAnbW9kZScsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncHJlZml4JywgJ3ByZXNlbGVjdFRvZGF5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RyYXRlZ3knLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUERhdGVwaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2YWx1ZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQRGF0ZXBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuUERhdGVwaWNrZXIge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiB0aGUgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1kaXZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBEaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUERpdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBEaXZpZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcGx5Qmx1cicsICdiYWNrZHJvcENsaWNrQ2xvc2UnLCAnY2FuQ2xvc2UnLCAnaGVhZGVyJywgJ3Njcm9sbExvY2snLCAnc2hvdycsICdzaG93Q2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtZHJhd2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBseUJsdXInLCAnYmFja2Ryb3BDbGlja0Nsb3NlJywgJ2NhbkNsb3NlJywgJ2hlYWRlcicsICdzY3JvbGxMb2NrJywgJ3Nob3cnLCAnc2hvd0Nsb3NlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBEcmF3ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjbG9zZUNsaWNrZWQnLCAnY2xvc2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBEcmF3ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBEcmF3ZXIge1xuICAvKipcbiAgICogQ2xvc2UgY2xpY2sgZXZlbnRcbiAgICovXG4gIGNsb3NlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZXZlbnQ6IE1vdXNlRXZlbnQ7IGNhbkNsb3NlOiBib29sZWFuOyBzb3VyY2U6ICd1bmtub3duJyB8ICdiYWNrZHJvcCcgfCAnY2xvc2UnIHwgJ2V2ZW50JyB9Pj47XG4gIC8qKlxuICAgKiBDbG9zZWQgZXZlbnRcbiAgICovXG4gIGNsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bGw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1kcmF3ZXItYm9keScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBQRHJhd2VyQm9keSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBEcmF3ZXJCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5QRHJhd2VyQm9keSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWRyYXdlci1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NpbmcnXSxcbn0pXG5leHBvcnQgY2xhc3MgUERyYXdlckNvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBEcmF3ZXJDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBEcmF3ZXJDb250YWluZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2hvd0Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWRyYXdlci1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3Nob3dDbG9zZSddLFxufSlcbmV4cG9ydCBjbGFzcyBQRHJhd2VySGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUERyYXdlckhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuUERyYXdlckhlYWRlciB7XG4gIC8qKlxuICAgKiBDbG9zZSBjbGljayBldmVudFxuICAgKi9cbiAgY2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93T3ZlcmZsb3cnLCAnYXBwbHlDaGV2cm9uJywgJ2FwcGx5RnVsbFdpZHRoJywgJ2FwcGx5TWF4V2lkdGgnLCAnY2FsY3VsYXRlV2lkdGgnLCAnY2hldnJvbkRpcmVjdGlvbicsICdjaGV2cm9uUG9zaXRpb24nLCAnZGlzYWJsZVRyaWdnZXJDbGljaycsICdpbnNpZGVDbGljaycsICdvZmZzZXQnLCAncGxhY2VtZW50JywgJ3Njcm9sbGFibGUnLCAnc2hvdycsICdzdHJhdGVneScsICd1c2VQb3J0YWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93T3ZlcmZsb3cnLCAnYXBwbHlDaGV2cm9uJywgJ2FwcGx5RnVsbFdpZHRoJywgJ2FwcGx5TWF4V2lkdGgnLCAnY2FsY3VsYXRlV2lkdGgnLCAnY2hldnJvbkRpcmVjdGlvbicsICdjaGV2cm9uUG9zaXRpb24nLCAnZGlzYWJsZVRyaWdnZXJDbGljaycsICdpbnNpZGVDbGljaycsICdvZmZzZXQnLCAncGxhY2VtZW50JywgJ3Njcm9sbGFibGUnLCAnc2hvdycsICdzdHJhdGVneScsICd1c2VQb3J0YWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgUERyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaXNPcGVuJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuUERyb3Bkb3duIHtcbiAgLyoqXG4gICAqIE9wZW4gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBpc09wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93T3ZlcmZsb3cnLCAnY2xhc3MnLCAnZnVsbFdpZHRoJywgJ21heFdpZHRoJywgJ3Njcm9sbGFibGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtZHJvcGRvd24tbWVudS1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93T3ZlcmZsb3cnLCAnY2xhc3MnLCAnZnVsbFdpZHRoJywgJ21heFdpZHRoJywgJ3Njcm9sbGFibGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUERyb3Bkb3duTWVudUNvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBEcm9wZG93bk1lbnVDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBEcm9wZG93bk1lbnVDb250YWluZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2NoZWNrYm94JywgJ2Rpc2FibGVkJywgJ2VuYWJsZUhvdmVyJywgJ2ljb24nLCAndXNlQ29udGFpbmVyJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtZHJvcGRvd24tbWVudS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnY2hlY2tib3gnLCAnZGlzYWJsZWQnLCAnZW5hYmxlSG92ZXInLCAnaWNvbicsICd1c2VDb250YWluZXInLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBQRHJvcGRvd25NZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBEcm9wZG93bk1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5QRHJvcGRvd25NZW51SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclBsYWNlbWVudCcsICdmb2N1c01ldGhvZCcsICdmb2N1c2VkJywgJ2ZvcmNlU2hvd1Rvb2x0aXAnLCAnaGVscGVyJywgJ2ljb24nLCAnaWNvbkZsaXAnLCAnaWNvblBvc2l0aW9uJywgJ2ljb25Sb3RhdGUnLCAnbGFiZWwnLCAnb3B0aW9uYWxUZW1wbGF0ZScsICdwbGFjZWhvbGRlcicsICdwcmVmaXgnLCAncHJvcGVydGllcycsICdyZXF1aXJlZCcsICdzZWxlY3RBbGxPbkZvY3VzJywgJ3NpemUnLCAnc3VmZml4JywgJ3R5cGUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtZmllbGQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yUGxhY2VtZW50JywgJ2ZvY3VzTWV0aG9kJywgJ2ZvY3VzZWQnLCAnZm9yY2VTaG93VG9vbHRpcCcsICdoZWxwZXInLCAnaWNvbicsICdpY29uRmxpcCcsICdpY29uUG9zaXRpb24nLCAnaWNvblJvdGF0ZScsICdsYWJlbCcsICdvcHRpb25hbFRlbXBsYXRlJywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeCcsICdwcm9wZXJ0aWVzJywgJ3JlcXVpcmVkJywgJ3NlbGVjdEFsbE9uRm9jdXMnLCAnc2l6ZScsICdzdWZmaXgnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBQRmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2YWx1ZUNoYW5nZScsICdpbnB1dFJlZkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQRmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLlBGaWVsZCB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW5ldmVyIHRoZSBpbnB1dCByZWYgY2hhbmdlc1xuICAgKi9cbiAgaW5wdXRSZWZDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydlcnJvcicsICdlcnJvclBsYWNlbWVudCcsICdmb3JjZVNob3dUb29sdGlwJywgJ2hlbHBlcicsICdsYWJlbCcsICdvcHRpb25hbFRlbXBsYXRlJywgJ3JlcXVpcmVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWZpZWxkLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZXJyb3InLCAnZXJyb3JQbGFjZW1lbnQnLCAnZm9yY2VTaG93VG9vbHRpcCcsICdoZWxwZXInLCAnbGFiZWwnLCAnb3B0aW9uYWxUZW1wbGF0ZScsICdyZXF1aXJlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBQRmllbGRDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydmb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQRmllbGRDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBGaWVsZENvbnRhaW5lciB7XG5cbiAgZm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3VzZWRJblRhYmxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWZsb2F0aW5nLW1lbnUtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd1c2VkSW5UYWJsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBQRmxvYXRpbmdNZW51Q29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEZsb2F0aW5nTWVudUNvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuUEZsb2F0aW5nTWVudUNvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdob3ZlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1mbG9hdGluZy1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hvdmVyJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBGbG9hdGluZ01lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEZsb2F0aW5nTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlBGbG9hdGluZ01lbnVJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3BsYWNlbWVudCcsICdzdHJhdGVneSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1oZWxwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BsYWNlbWVudCcsICdzdHJhdGVneSddLFxufSlcbmV4cG9ydCBjbGFzcyBQSGVscGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEhlbHBlciBleHRlbmRzIENvbXBvbmVudHMuUEhlbHBlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpYmFuJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtaWJhbi1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpYmFuJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEliYW5JY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEliYW5JY29uIGV4dGVuZHMgQ29tcG9uZW50cy5QSWJhbkljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmxpcCcsICdyb3RhdGUnLCAnc2l6ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZsaXAnLCAncm90YXRlJywgJ3NpemUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBQSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5QSWNvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmbGlwJywgJ3JvdGF0ZScsICdzaXplJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtaWNvbi1kZXByZWNhdGVkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmbGlwJywgJ3JvdGF0ZScsICdzaXplJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEljb25EZXByZWNhdGVkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEljb25EZXByZWNhdGVkIGV4dGVuZHMgQ29tcG9uZW50cy5QSWNvbkRlcHJlY2F0ZWQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1pbGx1c3RyYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUElsbHVzdHJhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBJbGx1c3RyYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlBJbGx1c3RyYXRpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VhYmxlJywgJ2NvbnRlbnQnLCAnaGVhZGVyJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtaW5mby1wYW5lbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2VhYmxlJywgJ2NvbnRlbnQnLCAnaGVhZGVyJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEluZm9QYW5lbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQSW5mb1BhbmVsIGV4dGVuZHMgQ29tcG9uZW50cy5QSW5mb1BhbmVsIHtcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGJhY2tkcm9wIGlzIGNsaWNrZWRcbiAgICovXG4gIGNsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZXJyb3InLCAnZm9yY2VTaG93VG9vbHRpcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1pbnB1dC1lcnJvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZXJyb3InLCAnZm9yY2VTaG93VG9vbHRpcCddLFxufSlcbmV4cG9ydCBjbGFzcyBQSW5wdXRFcnJvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBJbnB1dEVycm9yIGV4dGVuZHMgQ29tcG9uZW50cy5QSW5wdXRFcnJvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uJywgJ2ljb25GbGlwJywgJ2ljb25Pbmx5JywgJ2ljb25Sb3RhdGUnLCAna2VlcE1vYmlsZUNvbnRlbnQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvbicsICdpY29uRmxpcCcsICdpY29uT25seScsICdpY29uUm90YXRlJywgJ2tlZXBNb2JpbGVDb250ZW50JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUExhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUExhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5QTGFiZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1sYXlvdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUExheW91dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBMYXlvdXQgZXh0ZW5kcyBDb21wb25lbnRzLlBMYXlvdXQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnbW9kYWxEZXNjcmlwdGlvbicsICdtb2RhbFRpdGxlJywgJ3Nob3cnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1sb2FkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ21vZGFsRGVzY3JpcHRpb24nLCAnbW9kYWxUaXRsZScsICdzaG93JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUExvYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBMb2FkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBMb2FkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwbHlCbHVyJywgJ2JhY2tkcm9wQ2xpY2tDbG9zZScsICdoZWFkZXInLCAncGFkZGluZycsICdzY3JvbGxMb2NrJywgJ3Nob3cnLCAnc2hvd0Nsb3NlJywgJ3Nob3dNb2JpbGVGb290ZXInLCAnc2l6ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLW1vZGFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBseUJsdXInLCAnYmFja2Ryb3BDbGlja0Nsb3NlJywgJ2hlYWRlcicsICdwYWRkaW5nJywgJ3Njcm9sbExvY2snLCAnc2hvdycsICdzaG93Q2xvc2UnLCAnc2hvd01vYmlsZUZvb3RlcicsICdzaXplJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUE1vZGFsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2VDbGlja2VkJywgJ2Nsb3NlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQTW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLlBNb2RhbCB7XG4gIC8qKlxuICAgKiBDbG9zZSBjbGljayBldmVudFxuICAgKi9cbiAgY2xvc2VDbGlja2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50XG4gICAqL1xuICBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGFkZGluZycsICdyb3VuZGVkQm90dG9tJywgJ3JvdW5kZWRUb3AnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1tb2RhbC1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwYWRkaW5nJywgJ3JvdW5kZWRCb3R0b20nLCAncm91bmRlZFRvcCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBNb2RhbEJvZHkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQTW9kYWxCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5QTW9kYWxCb2R5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NpbmcnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1tb2RhbC1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NpbmcnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBQTW9kYWxDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQTW9kYWxDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBNb2RhbENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1tb2RhbC1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgUE1vZGFsRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUE1vZGFsRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5QTW9kYWxGb290ZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2hvd0Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLW1vZGFsLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2hvd0Nsb3NlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBNb2RhbEhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBNb2RhbEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuUE1vZGFsSGVhZGVyIHtcbiAgLyoqXG4gICAqIENsb3NlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBjbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtbmF2YmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFBOYXZiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQTmF2YmFyIGV4dGVuZHMgQ29tcG9uZW50cy5QTmF2YmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhcycsICdjbGFzcycsICdjb3VudGVyJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nJywgJ3RhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1uYXZpZ2F0aW9uLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhcycsICdjbGFzcycsICdjb3VudGVyJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nJywgJ3RhcmdldCddLFxufSlcbmV4cG9ydCBjbGFzcyBQTmF2aWdhdGlvbkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQTmF2aWdhdGlvbkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlBOYXZpZ2F0aW9uSXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtbmF2aWdhdGlvbi1zZWN0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgUE5hdmlnYXRpb25TZWN0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUE5hdmlnYXRpb25TZWN0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5QTmF2aWdhdGlvblNlY3Rpb24ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtbmF2aWdhdGlvbi10aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBQTmF2aWdhdGlvblRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUE5hdmlnYXRpb25UaXRsZSBleHRlbmRzIENvbXBvbmVudHMuUE5hdmlnYXRpb25UaXRsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydidXR0b25TaXplJywgJ2J1dHRvblRlbXBsYXRlJywgJ2NoZXZyb25Qb3NpdGlvbicsICdoaWRkZW4nLCAnaXRlbVRlbXBsYXRlJywgJ3NpemUnLCAnc2l6ZU9wdGlvbnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtcGFnZS1zaXplLXNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnV0dG9uU2l6ZScsICdidXR0b25UZW1wbGF0ZScsICdjaGV2cm9uUG9zaXRpb24nLCAnaGlkZGVuJywgJ2l0ZW1UZW1wbGF0ZScsICdzaXplJywgJ3NpemVPcHRpb25zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBQYWdlU2l6ZVNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpemVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFBhZ2VTaXplU2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5QUGFnZVNpemVTZWxlY3Qge1xuICAvKipcbiAgICogRXZlbnQgd2hlbmV2ZXIgdGhlIHNpemUgY2hhbmdlc1xuICAgKi9cbiAgc2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlT25TaW5nbGVQYWdlJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAndG90YWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtcGFnaW5hdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZU9uU2luZ2xlUGFnZScsICdwYWdlJywgJ3BhZ2VTaXplJywgJ3RvdGFsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBQYWdpbmF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsncGFnZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQUGFnaW5hdGlvbiBleHRlbmRzIENvbXBvbmVudHMuUFBhZ2luYXRpb24ge1xuICAvKipcbiAgICogRXZlbnQgd2hlbmV2ZXIgdGhlIHBhZ2UgY2hhbmdlc1xuICAgKi9cbiAgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtcGFnaW5hdGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFBhZ2luYXRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFBhZ2luYXRpb25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5QUGFnaW5hdGlvbkl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtcG9ydGFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFBQb3J0YWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQUG9ydGFsIGV4dGVuZHMgQ29tcG9uZW50cy5QUG9ydGFsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Ryb3Bkb3duTG9jYXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtcHJvZmlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZHJvcGRvd25Mb2NhdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBQUHJvZmlsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBQcm9maWxlIGV4dGVuZHMgQ29tcG9uZW50cy5QUHJvZmlsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2lkJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1yYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpZCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFJhZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2hlY2tlZENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQUmFkaW8gZXh0ZW5kcyBDb21wb25lbnRzLlBSYWRpbyB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgY2hlY2tlZCBjaGFuZ2VzXG4gICAqL1xuICBjaGVja2VkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1zZWdtZW50LWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBQU2VnbWVudENvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBTZWdtZW50Q29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5QU2VnbWVudENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnaWNvbicsICdpY29uRmxpcCcsICdpY29uT25seScsICdpY29uUm90YXRlJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Atc2VnbWVudC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnaWNvbicsICdpY29uRmxpcCcsICdpY29uT25seScsICdpY29uUm90YXRlJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFNlZ21lbnRJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFNlZ21lbnRJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5QU2VnbWVudEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWRkSXRlbVRleHQnLCAnYXBwbHlDbGFzc09uU2VsZWN0ZWRJdGVtJywgJ2FzeW5jRmlsdGVyJywgJ2F1dG9TZWxlY3RGaXJzdCcsICdhdXRvY29tcGxldGVQbGFjZWhvbGRlcicsICdhdmF0YXJLZXknLCAnYXZhdGFyTGV0dGVyc0tleScsICdjbGFzc0tleScsICdkaXNhYmxlZCcsICdkaXNwbGF5S2V5JywgJ2Ryb3Bkb3duRGlzcGxheUtleScsICdlbXB0eVN0YXRlVGV4dCcsICdlbmFibGVBdXRvY29tcGxldGUnLCAnZW5hYmxlU2VsZWN0QWxsJywgJ2Vycm9yJywgJ2hlbHBlcicsICdpY29uJywgJ2ljb25LZXknLCAnaWRlbnRpZmllcktleScsICdpdGVtcycsICdsYWJlbCcsICdsb2FkaW5nJywgJ21heERpc3BsYXllZEl0ZW1zJywgJ211bHRpJywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeCcsICdxdWVyeScsICdxdWVyeUtleScsICdyZXF1aXJlZCcsICdzZWxlY3RBbGxJY29uJywgJ3NlbGVjdEFsbFRleHQnLCAnc2VsZWN0aW9uRGlzcGxheUtleScsICdzaG93QWRkSXRlbScsICdzaG93Q2hldnJvbicsICdzaG93SWNvbkluU2VsZWN0ZWRJdGVtJywgJ3NpemUnLCAndmFsdWUnLCAndmFsdWVLZXknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Atc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhZGRJdGVtVGV4dCcsICdhcHBseUNsYXNzT25TZWxlY3RlZEl0ZW0nLCAnYXN5bmNGaWx0ZXInLCAnYXV0b1NlbGVjdEZpcnN0JywgJ2F1dG9jb21wbGV0ZVBsYWNlaG9sZGVyJywgJ2F2YXRhcktleScsICdhdmF0YXJMZXR0ZXJzS2V5JywgJ2NsYXNzS2V5JywgJ2Rpc2FibGVkJywgJ2Rpc3BsYXlLZXknLCAnZHJvcGRvd25EaXNwbGF5S2V5JywgJ2VtcHR5U3RhdGVUZXh0JywgJ2VuYWJsZUF1dG9jb21wbGV0ZScsICdlbmFibGVTZWxlY3RBbGwnLCAnZXJyb3InLCAnaGVscGVyJywgJ2ljb24nLCAnaWNvbktleScsICdpZGVudGlmaWVyS2V5JywgJ2l0ZW1zJywgJ2xhYmVsJywgJ2xvYWRpbmcnLCAnbWF4RGlzcGxheWVkSXRlbXMnLCAnbXVsdGknLCAncGxhY2Vob2xkZXInLCAncHJlZml4JywgJ3F1ZXJ5JywgJ3F1ZXJ5S2V5JywgJ3JlcXVpcmVkJywgJ3NlbGVjdEFsbEljb24nLCAnc2VsZWN0QWxsVGV4dCcsICdzZWxlY3Rpb25EaXNwbGF5S2V5JywgJ3Nob3dBZGRJdGVtJywgJ3Nob3dDaGV2cm9uJywgJ3Nob3dJY29uSW5TZWxlY3RlZEl0ZW0nLCAnc2l6ZScsICd2YWx1ZScsICd2YWx1ZUtleSddLFxufSlcbmV4cG9ydCBjbGFzcyBQU2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsncXVlcnlDaGFuZ2UnLCAndmFsdWVDaGFuZ2UnLCAnc2VsZWN0QWxsQ2hhbmdlJywgJ2Ryb3Bkb3duU2hvd24nLCAnYWRkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLlBTZWxlY3Qge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiB0aGUgcXVlcnkgb2YgdGhlIGF1dG9jb21wbGV0ZSBjaGFuZ2VzXG4gICAqL1xuICBxdWVyeUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbiB0aGUgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gdGhlIHNlbGVjdCBhbGwgaXRlbSBoYXMgYmVlbiBzZWxlY3RlZCBvciBub3RcbiAgICovXG4gIHNlbGVjdEFsbENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbiB0aGUgZHJvcGRvd24gc2hvd3NcbiAgICovXG4gIGRyb3Bkb3duU2hvd246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gdGhlIGFkZCBpdGVtIGlzIGNsaWNrZWRcbiAgICovXG4gIGFkZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Atc2xpZGVyLWluZGljYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBTbGlkZXJJbmRpY2F0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQU2xpZGVySW5kaWNhdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5QU2xpZGVySW5kaWNhdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb24nLCAnaWNvbkZsaXAnLCAnaWNvblJvdGF0ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXN0YXR1cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvbicsICdpY29uRmxpcCcsICdpY29uUm90YXRlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFN0YXR1cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBTdGF0dXMgZXh0ZW5kcyBDb21wb25lbnRzLlBTdGF0dXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlU3RlcCcsICdjb250ZW50UG9zaXRpb24nLCAnZGlyZWN0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXN0ZXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZVN0ZXAnLCAnY29udGVudFBvc2l0aW9uJywgJ2RpcmVjdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBQU3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBTdGVwcGVyIGV4dGVuZHMgQ29tcG9uZW50cy5QU3RlcHBlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnYWxpZ24nLCAnY29udGVudFBvc2l0aW9uJywgJ2RpcmVjdGlvbicsICdmaW5pc2hlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1zdGVwcGVyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGlnbicsICdjb250ZW50UG9zaXRpb24nLCAnZGlyZWN0aW9uJywgJ2ZpbmlzaGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBTdGVwcGVySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBTdGVwcGVySXRlbSBleHRlbmRzIENvbXBvbmVudHMuUFN0ZXBwZXJJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdkaXJlY3Rpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Atc3RlcHBlci1saW5lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnZGlyZWN0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBTdGVwcGVyTGluZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBTdGVwcGVyTGluZSBleHRlbmRzIENvbXBvbmVudHMuUFN0ZXBwZXJMaW5lIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXRhYi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBQVGFiR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQVGFiR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlBUYWJHcm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtdGFiLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBQVGFiSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBUYWJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5QVGFiSXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzaGFkb3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtdGFibGUtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaGFkb3cnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRhYmxlQ29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFRhYmxlQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5QVGFibGVDb250YWluZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZW5hYmxlRXhwb3J0JywgJ2VuYWJsZVBhZ2VTaXplJywgJ2VuYWJsZVBhZ2luYXRpb24nLCAnaGlkZU9uU2luZ2xlUGFnZScsICdsb2FkaW5nJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncGFnZVNpemVPcHRpb25zJywgJ3RvdGFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXRhYmxlLWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZW5hYmxlRXhwb3J0JywgJ2VuYWJsZVBhZ2VTaXplJywgJ2VuYWJsZVBhZ2luYXRpb24nLCAnaGlkZU9uU2luZ2xlUGFnZScsICdsb2FkaW5nJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncGFnZVNpemVPcHRpb25zJywgJ3RvdGFsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBUYWJsZUZvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3BhZ2VDaGFuZ2UnLCAncGFnZVNpemVDaGFuZ2UnLCAnZXhwb3J0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBUYWJsZUZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuUFRhYmxlRm9vdGVyIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW5ldmVyIHRoZSBwYWdlIGNoYW5nZXNcbiAgICovXG4gIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW5ldmVyIHRoZSBwYWdlIGNoYW5nZXNcbiAgICovXG4gIHBhZ2VTaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgcGFnZSBjaGFuZ2VzXG4gICAqL1xuICBleHBvcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9uQnV0dG9uVGVtcGxhdGUnLCAnYWN0aW9uSWNvbicsICdhY3Rpb25Mb2FkaW5nJywgJ2FjdGlvblRleHQnLCAnYWN0aXZlUXVpY2tGaWx0ZXJJZGVudGlmaWVyJywgJ2NhblVzZUFjdGlvbicsICdlbmFibGVBY3Rpb24nLCAnZW5hYmxlRmlsdGVyJywgJ2VuYWJsZUZpbHRlckRlc2t0b3AnLCAnZW5hYmxlU2VhcmNoJywgJ2ZpbHRlckJ1dHRvblRlbXBsYXRlJywgJ2l0ZW1zU2VsZWN0ZWRBbW91bnQnLCAnbG9hZGluZycsICdxdWVyeScsICdxdWlja0ZpbHRlcnMnLCAnc2VsZWN0ZWRGaWx0ZXJzQW1vdW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXRhYmxlLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9uQnV0dG9uVGVtcGxhdGUnLCAnYWN0aW9uSWNvbicsICdhY3Rpb25Mb2FkaW5nJywgJ2FjdGlvblRleHQnLCAnYWN0aXZlUXVpY2tGaWx0ZXJJZGVudGlmaWVyJywgJ2NhblVzZUFjdGlvbicsICdlbmFibGVBY3Rpb24nLCAnZW5hYmxlRmlsdGVyJywgJ2VuYWJsZUZpbHRlckRlc2t0b3AnLCAnZW5hYmxlU2VhcmNoJywgJ2ZpbHRlckJ1dHRvblRlbXBsYXRlJywgJ2l0ZW1zU2VsZWN0ZWRBbW91bnQnLCAnbG9hZGluZycsICdxdWVyeScsICdxdWlja0ZpbHRlcnMnLCAnc2VsZWN0ZWRGaWx0ZXJzQW1vdW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBUYWJsZUhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3F1aWNrRmlsdGVyJywgJ3F1ZXJ5Q2hhbmdlJywgJ2ZpbHRlcicsICdhY3Rpb24nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFF1aWNrRmlsdGVyIGFzIElQVGFibGVIZWFkZXJRdWlja0ZpbHRlciB9IGZyb20gJ0BwYXBlcmxlc3MvY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQVGFibGVIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBUYWJsZUhlYWRlciB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuIG9uZSBvZiB0aGUgcXVpY2sgZmlsdGVycyBpcyBjbGlja2VkXG4gICAqL1xuICBxdWlja0ZpbHRlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElQVGFibGVIZWFkZXJRdWlja0ZpbHRlcj4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbiB0aGUgcXVlcnkgY2hhbmdlc1xuICAgKi9cbiAgcXVlcnlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gdGhlIGZpbHRlciBidXR0b24gaXMgY2xpY2tlZFxuICAgKi9cbiAgZmlsdGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVsbD4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbiB0aGUgYWN0aW9uIGJ1dHRvbiBpcyBjbGlja2VkXG4gICAqL1xuICBhY3Rpb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudWxsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2VuYWJsZUhvdmVyJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtdGFibGUtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydlbmFibGVIb3ZlcicsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBUYWJsZVJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBUYWJsZVJvdyBleHRlbmRzIENvbXBvbmVudHMuUFRhYmxlUm93IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbkljb24nLCAnYWN0aW9uSWNvbkZsaXAnLCAnYWN0aW9uSWNvblJvdGF0ZScsICdjb250ZW50JywgJ2VuYWJsZUFjdGlvbicsICdoZWFkZXInLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC10b2FzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9uSWNvbicsICdhY3Rpb25JY29uRmxpcCcsICdhY3Rpb25JY29uUm90YXRlJywgJ2NvbnRlbnQnLCAnZW5hYmxlQWN0aW9uJywgJ2hlYWRlcicsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBUb2FzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2FjdGlvbiddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQVG9hc3QgZXh0ZW5kcyBDb21wb25lbnRzLlBUb2FzdCB7XG4gIC8qKlxuICAgKiBCdXR0b24gY2xpY2sgZXZlbnRcbiAgICovXG4gIGFjdGlvbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpZCcsICdpbmRldGVybWluYXRlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaWQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2NoZWNrZWRDaGFuZ2UnLCAnaW5kZXRlcm1pbmF0ZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5QVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW5ldmVyIHRoZSBjaGVja2VkIGNoYW5nZXNcbiAgICovXG4gIGNoZWNrZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgaW5kZXRlcm1pbmF0ZSBjaGFuZ2VzXG4gICAqL1xuICBpbmRldGVybWluYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYW5NYW51YWxseUNsb3NlJywgJ2NvbnRlbnQnLCAnZW5hYmxlVXNlcklucHV0JywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAnc2hvdycsICdzdHJhdGVneScsICd1c2VQb3J0YWwnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYW5NYW51YWxseUNsb3NlJywgJ2NvbnRlbnQnLCAnZW5hYmxlVXNlcklucHV0JywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAnc2hvdycsICdzdHJhdGVneScsICd1c2VQb3J0YWwnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBQVG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lzT3BlbiddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuUFRvb2x0aXAge1xuICAvKipcbiAgICogT3BlbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIGlzT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG4iXX0=
1863
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3BhcGVybGVzcy9zcmMvbGliL3N0ZW5jaWwvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFlaEUsSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVTtJQUVyQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3VHQU5VLFVBQVU7MkZBQVYsVUFBVSxpS0FKWCwyQkFBMkI7QUFJMUIsVUFBVTtJQVZ0QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDO0tBQy9ELENBQUM7R0FRVyxVQUFVLENBT3RCO1NBUFksVUFBVTsyRkFBVixVQUFVO2tCQVB0QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDO2lCQUMvRDs7QUE2Qk0sSUFBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUV0QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7d0dBTlUsV0FBVzs0RkFBWCxXQUFXLDRhQUpaLDJCQUEyQjtBQUkxQixXQUFXO0lBVnZCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQztLQUM5TSxDQUFDO0dBUVcsV0FBVyxDQU92QjtTQVBZLFdBQVc7MkZBQVgsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDO2lCQUM5TTs7QUFxQ00sSUFBTSxPQUFPLEdBQWIsTUFBTSxPQUFPO0lBRWxCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O29HQUxVLE9BQU87d0ZBQVAsT0FBTyw0SkFKUiwyQkFBMkI7QUFJMUIsT0FBTztJQVZuQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDO0tBQzlELENBQUM7R0FRVyxPQUFPLENBTW5CO1NBTlksT0FBTzsyRkFBUCxPQUFPO2tCQVBuQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDO2lCQUM5RDs7QUF1Qk0sSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzt5R0FMVSxZQUFZOzZGQUFaLFlBQVksa0ZBSmIsMkJBQTJCO0FBSTFCLFlBQVk7SUFWeEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO0tBQ2xCLENBQUM7R0FRVyxZQUFZLENBTXhCO1NBTlksWUFBWTsyRkFBWixZQUFZO2tCQVB4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDbEI7O0FBdUJNLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7O3NHQU5VLFNBQVM7MEZBQVQsU0FBUyx3S0FKViwyQkFBMkI7QUFJMUIsU0FBUztJQVZyQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDO0tBQ25FLENBQUM7R0FRVyxTQUFTLENBT3JCO1NBUFksU0FBUzsyRkFBVCxTQUFTO2tCQVByQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDO2lCQUNuRTs7QUE0Qk0sSUFBTSxNQUFNLEdBQVosTUFBTSxNQUFNO0lBRWpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O21HQUxVLE1BQU07dUZBQU4sTUFBTSwrQ0FKUCwyQkFBMkI7QUFJMUIsTUFBTTtJQVRsQixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsTUFBTSxDQU1sQjtTQU5ZLE1BQU07MkZBQU4sTUFBTTtrQkFQbEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7O0FBdUJNLElBQU0sT0FBTyxHQUFiLE1BQU0sT0FBTztJQUVsQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7O29HQU5VLE9BQU87d0ZBQVAsT0FBTyxvZkFKUiwyQkFBMkI7QUFJMUIsT0FBTztJQVZuQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUM7S0FDMVAsQ0FBQztHQVFXLE9BQU8sQ0FPbkI7U0FQWSxPQUFPOzJGQUFQLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztpQkFDMVA7O0FBNkJNLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQVk7SUFFdkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7eUdBTFUsWUFBWTs2RkFBWixZQUFZLGdGQUpiLDJCQUEyQjtBQUkxQixZQUFZO0lBVnhCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztLQUNqQixDQUFDO0dBUVcsWUFBWSxDQU14QjtTQU5ZLFlBQVk7MkZBQVosWUFBWTtrQkFQeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUM7aUJBQ2pCOztBQXVCTSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFcEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDOztzR0FOVSxTQUFTOzBGQUFULFNBQVMsa1RBSlYsMkJBQTJCO0FBSTFCLFNBQVM7SUFWckIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQztLQUM3SSxDQUFDO0dBUVcsU0FBUyxDQU9yQjtTQVBZLFNBQVM7MkZBQVQsU0FBUztrQkFQckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQztpQkFDN0k7O0FBNEJNLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOztzR0FMVSxTQUFTOzBGQUFULFNBQVMsbURBSlYsMkJBQTJCO0FBSTFCLFNBQVM7SUFUckIsUUFBUSxDQUFDLEVBQ1QsQ0FBQztHQVFXLFNBQVMsQ0FNckI7U0FOWSxTQUFTOzJGQUFULFNBQVM7a0JBUHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxFQUFFO2lCQUNYOztBQXVCTSxJQUFNLGNBQWMsR0FBcEIsTUFBTSxjQUFjO0lBRXpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzJHQUxVLGNBQWM7K0ZBQWQsY0FBYywwTEFKZiwyQkFBMkI7QUFJMUIsY0FBYztJQVYxQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztLQUMxRSxDQUFDO0dBUVcsY0FBYyxDQU0xQjtTQU5ZLGNBQWM7MkZBQWQsY0FBYztrQkFQMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztpQkFDMUU7O0FBdUJNLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFFdEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7d0dBTFUsV0FBVzs0RkFBWCxXQUFXLHlMQUpaLDJCQUEyQjtBQUkxQixXQUFXO0lBVnZCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDO0tBQzNFLENBQUM7R0FRVyxXQUFXLENBTXZCO1NBTlksV0FBVzsyRkFBWCxXQUFXO2tCQVB2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztpQkFDM0U7O0FBdUJNLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O3NHQU5VLFNBQVM7MEZBQVQsU0FBUyxzTEFKViwyQkFBMkI7QUFJMUIsU0FBUztJQVZyQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQztLQUMzRSxDQUFDO0dBUVcsU0FBUyxDQU9yQjtTQVBZLFNBQVM7MkZBQVQsU0FBUztrQkFQckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUM7aUJBQzNFOztBQWlDTSxJQUFNLGNBQWMsR0FBcEIsTUFBTSxjQUFjO0lBRXpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzJHQUxVLGNBQWM7K0ZBQWQsY0FBYyxvT0FKZiwyQkFBMkI7QUFJMUIsY0FBYztJQVYxQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLENBQUM7S0FDN0YsQ0FBQztHQVFXLGNBQWMsQ0FNMUI7U0FOWSxjQUFjOzJGQUFkLGNBQWM7a0JBUDFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixDQUFDO2lCQUM3Rjs7QUF1Qk0sSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7cUdBTlUsUUFBUTt5RkFBUixRQUFRLHVHQUpULDJCQUEyQjtBQUkxQixRQUFRO0lBVnBCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7S0FDaEMsQ0FBQztHQVFXLFFBQVEsQ0FPcEI7U0FQWSxRQUFROzJGQUFSLFFBQVE7a0JBUHBCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7aUJBQ2hDOztBQTZCTSxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO0lBRXRCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7d0dBTlUsV0FBVzs0RkFBWCxXQUFXLGdvQkFKWiwyQkFBMkI7QUFJMUIsV0FBVztJQVZ2QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDO0tBQ2pVLENBQUM7R0FRVyxXQUFXLENBT3ZCO1NBUFksV0FBVzsyRkFBWCxXQUFXO2tCQVB2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDO2lCQUNqVTs7QUE2Qk0sSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3FHQUxVLFFBQVE7eUZBQVIsUUFBUSwrR0FKVCwyQkFBMkI7QUFJMUIsUUFBUTtJQVZwQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDO0tBQ3BDLENBQUM7R0FRVyxRQUFRLENBTXBCO1NBTlksUUFBUTsyRkFBUixRQUFRO2tCQVBwQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDO2lCQUNwQzs7QUF1Qk0sSUFBTSxPQUFPLEdBQWIsTUFBTSxPQUFPO0lBRWxCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7O29HQU5VLE9BQU87d0ZBQVAsT0FBTyxzT0FKUiwyQkFBMkI7QUFJMUIsT0FBTztJQVZuQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQztLQUNyRyxDQUFDO0dBUVcsT0FBTyxDQU9uQjtTQVBZLE9BQU87MkZBQVAsT0FBTztrQkFQbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7aUJBQ3JHOztBQWdDTSxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO0lBRXRCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3dHQUxVLFdBQVc7NEZBQVgsV0FBVyxxREFKWiwyQkFBMkI7QUFJMUIsV0FBVztJQVR2QixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsV0FBVyxDQU12QjtTQU5ZLFdBQVc7MkZBQVgsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7O0FBdUJNLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBRTNCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzZHQUxVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLDBGQUpqQiwyQkFBMkI7QUFJMUIsZ0JBQWdCO0lBVjVCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztLQUNwQixDQUFDO0dBUVcsZ0JBQWdCLENBTTVCO1NBTlksZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBUDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUNwQjs7QUF1Qk0sSUFBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUV4QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OzBHQU5VLGFBQWE7OEZBQWIsYUFBYSwyRkFKZCwyQkFBMkI7QUFJMUIsYUFBYTtJQVZ6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDdEIsQ0FBQztHQVFXLGFBQWEsQ0FPekI7U0FQWSxhQUFhOzJGQUFiLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN0Qjs7QUE2Qk0sSUFBTSxTQUFTLEdBQWYsTUFBTSxTQUFTO0lBRXBCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7c0dBTlUsU0FBUzswRkFBVCxTQUFTLDhkQUpWLDJCQUEyQjtBQUkxQixTQUFTO0lBVnJCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUM7S0FDeE8sQ0FBQztHQVFXLFNBQVMsQ0FPckI7U0FQWSxTQUFTOzJGQUFULFNBQVM7a0JBUHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUM7aUJBQ3hPOztBQTZCTSxJQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUFzQjtJQUVqQyxZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzttSEFMVSxzQkFBc0I7dUdBQXRCLHNCQUFzQix5TkFKdkIsMkJBQTJCO0FBSTFCLHNCQUFzQjtJQVZsQyxRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztLQUNyRixDQUFDO0dBUVcsc0JBQXNCLENBTWxDO1NBTlksc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBUGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUM7aUJBQ3JGOztBQXVCTSxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQUU1QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzs4R0FMVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwUkFKbEIsMkJBQTJCO0FBSTFCLGlCQUFpQjtJQVY3QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDO0tBQzNILENBQUM7R0FRVyxpQkFBaUIsQ0FNN0I7U0FOWSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFQN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDO2lCQUMzSDs7QUF1Qk0sSUFBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUV0QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3dHQU5VLFdBQVc7NEZBQVgsV0FBVyxpVUFKWiwyQkFBMkI7QUFJMUIsV0FBVztJQVZ2QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDO0tBQ2xKLENBQUM7R0FRVyxXQUFXLENBT3ZCO1NBUFksV0FBVzsyRkFBWCxXQUFXO2tCQVB2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDO2lCQUNsSjs7QUE2Qk0sSUFBTSxNQUFNLEdBQVosTUFBTSxNQUFNO0lBRWpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O21HQU5VLE1BQU07dUZBQU4sTUFBTSw2dUJBSlAsMkJBQTJCO0FBSTFCLE1BQU07SUFWbEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO0tBQ2hZLENBQUM7R0FRVyxNQUFNLENBT2xCO1NBUFksTUFBTTsyRkFBTixNQUFNO2tCQVBsQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUM7aUJBQ2hZOztBQXFDTSxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFlO0lBRTFCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7NEdBTlUsZUFBZTtnR0FBZixlQUFlLHVYQUpoQiwyQkFBMkI7QUFJMUIsZUFBZTtJQVYzQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUM7S0FDL0ssQ0FBQztHQVFXLGVBQWUsQ0FPM0I7U0FQWSxlQUFlOzJGQUFmLGVBQWU7a0JBUDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDO2lCQUMvSzs7QUEyQk0sSUFBTSxzQkFBc0IsR0FBNUIsTUFBTSxzQkFBc0I7SUFFakMsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDOzttSEFOVSxzQkFBc0I7dUdBQXRCLHNCQUFzQix1UEFKdkIsMkJBQTJCO0FBSTFCLHNCQUFzQjtJQVZsQyxRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQztLQUNuRyxDQUFDO0dBUVcsc0JBQXNCLENBT2xDO1NBUFksc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBUGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUM7aUJBQ25HOztBQTZCTSxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQUU1QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzs4R0FMVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiw4TkFKbEIsMkJBQTJCO0FBSTFCLGlCQUFpQjtJQVY3QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUM7S0FDM0YsQ0FBQztHQVFXLGlCQUFpQixDQU03QjtTQU5ZLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQVA3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztpQkFDM0Y7O0FBdUJNLElBQU0sT0FBTyxHQUFiLE1BQU0sT0FBTztJQUVsQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOztvR0FMVSxPQUFPO3dGQUFQLE9BQU8sMEdBSlIsMkJBQTJCO0FBSTFCLE9BQU87SUFWbkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQztLQUNsQyxDQUFDO0dBUVcsT0FBTyxDQU1uQjtTQU5ZLE9BQU87MkZBQVAsT0FBTztrQkFQbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQztpQkFDbEM7O0FBdUJNLElBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOztzR0FMVSxTQUFTOzBGQUFULFNBQVMsaUdBSlYsMkJBQTJCO0FBSTFCLFNBQVM7SUFWckIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztLQUM1QixDQUFDO0dBUVcsU0FBUyxDQU1yQjtTQU5ZLFNBQVM7MkZBQVQsU0FBUztrQkFQckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztpQkFDNUI7O0FBdUJNLElBQU0sS0FBSyxHQUFYLE1BQU0sS0FBSztJQUVoQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOztrR0FMVSxLQUFLO3NGQUFMLEtBQUssNEhBSk4sMkJBQTJCO0FBSTFCLEtBQUs7SUFWakIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO0tBQzlDLENBQUM7R0FRVyxLQUFLLENBTWpCO1NBTlksS0FBSzsyRkFBTCxLQUFLO2tCQVBqQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxRQUFRO29CQUNsQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUM7aUJBQzlDOztBQXVCTSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzBHQUxVLGFBQWE7OEZBQWIsYUFBYSxzRkFKZCwyQkFBMkI7QUFJMUIsYUFBYTtJQVZ6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7S0FDcEIsQ0FBQztHQVFXLGFBQWEsQ0FNekI7U0FOWSxhQUFhOzJGQUFiLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUNwQjs7QUF1Qk0sSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7SUFFbEMsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7b0hBTFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsaUdBSnhCLDJCQUEyQjtBQUkxQix1QkFBdUI7SUFWbkMsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO0tBQ3BCLENBQUM7R0FRVyx1QkFBdUIsQ0FNbkM7U0FOWSx1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFQbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQ3BCOztBQXVCTSxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFVO0lBRXJCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7dUdBTlUsVUFBVTsyRkFBVixVQUFVLGtKQUpYLDJCQUEyQjtBQUkxQixVQUFVO0lBVnRCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztLQUN0RCxDQUFDO0dBUVcsVUFBVSxDQU90QjtTQVBZLFVBQVU7MkZBQVYsVUFBVTtrQkFQdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDO2lCQUN0RDs7QUE2Qk0sSUFBTSxNQUFNLEdBQVosTUFBTSxNQUFNO0lBRWpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O21HQUxVLE1BQU07dUZBQU4sTUFBTSwyTUFKUCwyQkFBMkI7QUFJMUIsTUFBTTtJQVZsQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDO0tBQ3ZGLENBQUM7R0FRVyxNQUFNLENBTWxCO1NBTlksTUFBTTsyRkFBTixNQUFNO2tCQVBsQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDO2lCQUN2Rjs7QUF1Qk0sSUFBTSxPQUFPLEdBQWIsTUFBTSxPQUFPO0lBRWxCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7b0dBTlUsT0FBTzt3RkFBUCxPQUFPLGdGQUpSLDJCQUEyQjtBQUkxQixPQUFPO0lBVm5CLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztLQUNwQixDQUFDO0dBUVcsT0FBTyxDQU9uQjtTQVBZLE9BQU87MkZBQVAsT0FBTztrQkFQbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUNwQjs7QUE0Qk0sSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3FHQUxVLFFBQVE7eUZBQVIsUUFBUSxpREFKVCwyQkFBMkI7QUFJMUIsUUFBUTtJQVRwQixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsUUFBUSxDQU1wQjtTQU5ZLFFBQVE7MkZBQVIsUUFBUTtrQkFQcEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7O0FBdUJNLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQVk7SUFFdkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7eUdBTFUsWUFBWTs2RkFBWixZQUFZLGdGQUpiLDJCQUEyQjtBQUkxQixZQUFZO0lBVnhCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztLQUNqQixDQUFDO0dBUVcsWUFBWSxDQU14QjtTQU5ZLFlBQVk7MkZBQVosWUFBWTtrQkFQeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUM7aUJBQ2pCOztBQXNCTSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3lHQUxVLFlBQVk7NkZBQVosWUFBWSxzREFKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVR4QixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsWUFBWSxDQU14QjtTQU5ZLFlBQVk7MkZBQVosWUFBWTtrQkFQeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsRUFBRTtpQkFDWDs7QUF1Qk0sSUFBTSxPQUFPLEdBQWIsTUFBTSxPQUFPO0lBRWxCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O29HQUxVLE9BQU87d0ZBQVAsT0FBTyw4S0FKUiwyQkFBMkI7QUFJMUIsT0FBTztJQVZuQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUM7S0FDdkUsQ0FBQztHQVFXLE9BQU8sQ0FNbkI7U0FOWSxPQUFPOzJGQUFQLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztpQkFDdkU7O0FBdUJNLElBQU0sTUFBTSxHQUFaLE1BQU0sTUFBTTtJQUVqQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDOzttR0FOVSxNQUFNO3VGQUFOLE1BQU0sbVFBSlAsMkJBQTJCO0FBSTFCLE1BQU07SUFWbEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLENBQUM7S0FDckgsQ0FBQztHQVFXLE1BQU0sQ0FPbEI7U0FQWSxNQUFNOzJGQUFOLE1BQU07a0JBUGxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxDQUFDO2lCQUNySDs7QUFpQ00sSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVTtJQUVyQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzt1R0FMVSxVQUFVOzJGQUFWLFVBQVUsMEhBSlgsMkJBQTJCO0FBSTFCLFVBQVU7SUFWdEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQztLQUN4QyxDQUFDO0dBUVcsVUFBVSxDQU10QjtTQU5ZLFVBQVU7MkZBQVYsVUFBVTtrQkFQdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQztpQkFDeEM7O0FBdUJNLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFFMUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7NEdBTFUsZUFBZTtnR0FBZixlQUFlLHVHQUpoQiwyQkFBMkI7QUFJMUIsZUFBZTtJQVYzQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0tBQzVCLENBQUM7R0FRVyxlQUFlLENBTTNCO1NBTlksZUFBZTsyRkFBZixlQUFlO2tCQVAzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7aUJBQzVCOztBQXNCTSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3lHQUxVLFlBQVk7NkZBQVosWUFBWSxzREFKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVR4QixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsWUFBWSxDQU14QjtTQU5ZLFlBQVk7MkZBQVosWUFBWTtrQkFQeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsRUFBRTtpQkFDWDs7QUF1Qk0sSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O3lHQU5VLFlBQVk7NkZBQVosWUFBWSwwRkFKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDdEIsQ0FBQztHQVFXLFlBQVksQ0FPeEI7U0FQWSxZQUFZOzJGQUFaLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN0Qjs7QUE0Qk0sSUFBTSxPQUFPLEdBQWIsTUFBTSxPQUFPO0lBRWxCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O29HQUxVLE9BQU87d0ZBQVAsT0FBTyxnREFKUiwyQkFBMkI7QUFJMUIsT0FBTztJQVRuQixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsT0FBTyxDQU1uQjtTQU5ZLE9BQU87MkZBQVAsT0FBTztrQkFQbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7O0FBdUJNLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFFMUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7NEdBTFUsZUFBZTtnR0FBZixlQUFlLHVNQUpoQiwyQkFBMkI7QUFJMUIsZUFBZTtJQVYzQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDO0tBQ2xGLENBQUM7R0FRVyxlQUFlLENBTTNCO1NBTlksZUFBZTsyRkFBZixlQUFlO2tCQVAzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUM7aUJBQ2xGOztBQXVCTSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFrQjtJQUU3QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzsrR0FMVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwwRkFKbkIsMkJBQTJCO0FBSTFCLGtCQUFrQjtJQVY5QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7S0FDbkIsQ0FBQztHQVFXLGtCQUFrQixDQU05QjtTQU5ZLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQVA5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztpQkFDbkI7O0FBc0JNLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBRTNCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzZHQUxVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLDBEQUpqQiwyQkFBMkI7QUFJMUIsZ0JBQWdCO0lBVDVCLFFBQVEsQ0FBQyxFQUNULENBQUM7R0FRVyxnQkFBZ0IsQ0FNNUI7U0FOWSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFQNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsRUFBRTtpQkFDWDs7QUF1Qk0sSUFBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUV0QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDOzt3R0FOVSxXQUFXOzRGQUFYLFdBQVcsNFJBSlosMkJBQTJCO0FBSTFCLFdBQVc7SUFWdkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUM7S0FDOUgsQ0FBQztHQVFXLFdBQVcsQ0FPdkI7U0FQWSxXQUFXOzJGQUFYLFdBQVc7a0JBUHZCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO2lCQUM5SDs7QUFxQ00sSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFFM0IsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7NkdBTlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsZ0tBSmpCLDJCQUEyQjtBQUkxQixnQkFBZ0I7SUFWNUIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUM7S0FDMUQsQ0FBQztHQVFXLGdCQUFnQixDQU81QjtTQVBZLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQVA1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDO2lCQUMxRDs7QUFpQ00sSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFFL0IsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7aUhBTFUsb0JBQW9CO3FHQUFwQixvQkFBb0IsdUpBSnJCLDJCQUEyQjtBQUkxQixvQkFBb0I7SUFWaEMsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO0tBQ25ELENBQUM7R0FRVyxvQkFBb0IsQ0FNaEM7U0FOWSxvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFQaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUM7aUJBQ25EOztBQXVCTSxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFlO0lBRTFCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7NEdBTlUsZUFBZTtnR0FBZixlQUFlLCtKQUpoQiwyQkFBMkI7QUFJMUIsZUFBZTtJQVYzQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUM7S0FDMUQsQ0FBQztHQVFXLGVBQWUsQ0FPM0I7U0FQWSxlQUFlOzJGQUFmLGVBQWU7a0JBUDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDO2lCQUMxRDs7QUE2Qk0sSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3FHQUxVLFFBQVE7eUZBQVIsUUFBUSxtR0FKVCwyQkFBMkI7QUFJMUIsUUFBUTtJQVZwQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztLQUM3QixDQUFDO0dBUVcsUUFBUSxDQU1wQjtTQU5ZLFFBQVE7MkZBQVIsUUFBUTtrQkFQcEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQzdCOztBQXVCTSxJQUFNLE1BQU0sR0FBWixNQUFNLE1BQU07SUFFakIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDOzttR0FOVSxNQUFNO3VGQUFOLE1BQU0sbUtBSlAsMkJBQTJCO0FBSTFCLE1BQU07SUFWbEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUM7S0FDbkUsQ0FBQztHQVFXLE1BQU0sQ0FPbEI7U0FQWSxNQUFNOzJGQUFOLE1BQU07a0JBUGxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDO2lCQUNuRTs7QUE2Qk0sSUFBTSxNQUFNLEdBQVosTUFBTSxNQUFNO0lBRWpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7bUdBTlUsTUFBTTt1RkFBTixNQUFNLGlIQUpQLDJCQUEyQjtBQUkxQixNQUFNO0lBVmxCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztLQUN4QyxDQUFDO0dBUVcsTUFBTSxDQU9sQjtTQVBZLE1BQU07MkZBQU4sTUFBTTtrQkFQbEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO2lCQUN4Qzs7QUE0Qk0sSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFFNUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7OEdBTFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsMkRBSmxCLDJCQUEyQjtBQUkxQixpQkFBaUI7SUFUN0IsUUFBUSxDQUFDLEVBQ1QsQ0FBQztHQVFXLGlCQUFpQixDQU03QjtTQU5ZLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQVA3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxFQUFFO2lCQUNYOztBQXVCTSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3lHQUxVLFlBQVk7NkZBQVosWUFBWSw0TEFKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztLQUM1RSxDQUFDO0dBUVcsWUFBWSxDQU14QjtTQU5ZLFlBQVk7MkZBQVosWUFBWTtrQkFQeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztpQkFDNUU7O0FBdUJNLElBQU0sT0FBTyxHQUFiLE1BQU0sT0FBTztJQUVsQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7O29HQU5VLE9BQU87d0ZBQVAsT0FBTywwckNBSlIsMkJBQTJCO0FBSTFCLE9BQU87SUFWbkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQztLQUNqbkIsQ0FBQztHQVFXLE9BQU8sQ0FPbkI7U0FQWSxPQUFPOzJGQUFQLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUM7aUJBQ2puQjs7QUE2Q00sSUFBTSxNQUFNLEdBQVosTUFBTSxNQUFNO0lBRWpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O21HQUxVLE1BQU07dUZBQU4sTUFBTSwrRUFKUCwyQkFBMkI7QUFJMUIsTUFBTTtJQVZsQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7S0FDcEIsQ0FBQztHQVFXLE1BQU0sQ0FNbEI7U0FOWSxNQUFNOzJGQUFOLE1BQU07a0JBUGxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztpQkFDcEI7O0FBdUJNLElBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUTtJQUVuQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOztxR0FMVSxRQUFRO3lGQUFSLFFBQVEseU5BSlQsMkJBQTJCO0FBSTFCLFFBQVE7SUFWcEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDO0tBQzdGLENBQUM7R0FRVyxRQUFRLENBTXBCO1NBTlksUUFBUTsyRkFBUixRQUFRO2tCQVBwQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLENBQUM7aUJBQzdGOztBQXVCTSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3lHQUxVLFlBQVk7NkZBQVosWUFBWSx3TUFKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDO0tBQ2xGLENBQUM7R0FRVyxZQUFZLENBTXhCO1NBTlksWUFBWTsyRkFBWixZQUFZO2tCQVB4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUM7aUJBQ2xGOztBQXVCTSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3lHQUxVLFlBQVk7NkZBQVosWUFBWSw0R0FKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO0tBQ2hDLENBQUM7R0FRVyxZQUFZLENBTXhCO1NBTlksWUFBWTsyRkFBWixZQUFZO2tCQVB4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7aUJBQ2hDOztBQXNCTSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7OzBHQUxVLGFBQWE7OEZBQWIsYUFBYSx1REFKZCwyQkFBMkI7QUFJMUIsYUFBYTtJQVR6QixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsYUFBYSxDQU16QjtTQU5ZLGFBQWE7MkZBQWIsYUFBYTtrQkFQekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsRUFBRTtpQkFDWDs7QUF1Qk0sSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3FHQUxVLFFBQVE7eUZBQVIsUUFBUSxnRkFKVCwyQkFBMkI7QUFJMUIsUUFBUTtJQVZwQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7S0FDbkIsQ0FBQztHQVFXLFFBQVEsQ0FNcEI7U0FOWSxRQUFROzJGQUFSLFFBQVE7a0JBUHBCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztpQkFDbkI7O0FBc0JNLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFFMUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7NEdBTFUsZUFBZTtnR0FBZixlQUFlLHlEQUpoQiwyQkFBMkI7QUFJMUIsZUFBZTtJQVQzQixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsZUFBZSxDQU0zQjtTQU5ZLGVBQWU7MkZBQWYsZUFBZTtrQkFQM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsRUFBRTtpQkFDWDs7QUF1Qk0sSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDOzt5R0FOVSxZQUFZOzZGQUFaLFlBQVksa1RBSmIsMkJBQTJCO0FBSTFCLFlBQVk7SUFWeEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0tBQ3pJLENBQUM7R0FRVyxZQUFZLENBT3hCO1NBUFksWUFBWTsyRkFBWixZQUFZO2tCQVB4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQztpQkFDekk7O0FBcUNNLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQVk7SUFFdkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQzs7eUdBTlUsWUFBWTs2RkFBWixZQUFZLDhvQkFKYiwyQkFBMkI7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSw2QkFBNkIsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixDQUFDO0tBQ2hVLENBQUM7R0FRVyxZQUFZLENBT3hCO1NBUFksWUFBWTsyRkFBWixZQUFZO2tCQVB4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLHNCQUFzQixFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLDZCQUE2QixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsdUJBQXVCLENBQUM7aUJBQ2hVOztBQStDTSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFcEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7c0dBTFUsU0FBUzswRkFBVCxTQUFTLHFKQUpWLDJCQUEyQjtBQUkxQixTQUFTO0lBVnJCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztLQUN4RCxDQUFDO0dBUVcsU0FBUyxDQU1yQjtTQU5ZLFNBQVM7MkZBQVQsU0FBUztrQkFQckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDO2lCQUN4RDs7QUFzQk0sSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBeUI7SUFFcEMsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7c0hBTFUseUJBQXlCOzBHQUF6Qix5QkFBeUIscUVBSjFCLDJCQUEyQjtBQUkxQix5QkFBeUI7SUFUckMsUUFBUSxDQUFDLEVBQ1QsQ0FBQztHQVFXLHlCQUF5QixDQU1yQztTQU5ZLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQVByQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxFQUFFO2lCQUNYOztBQXVCTSxJQUFNLE1BQU0sR0FBWixNQUFNLE1BQU07SUFFakIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDOzttR0FOVSxNQUFNO3VGQUFOLE1BQU0scVBBSlAsMkJBQTJCO0FBSTFCLE1BQU07SUFWbEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztLQUM3RyxDQUFDO0dBUVcsTUFBTSxDQU9sQjtTQVBZLE1BQU07MkZBQU4sTUFBTTtrQkFQbEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztpQkFDN0c7O0FBNkJNLElBQU0sT0FBTyxHQUFiLE1BQU0sT0FBTztJQUVsQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O29HQU5VLE9BQU87d0ZBQVAsT0FBTyxvSkFKUiwyQkFBMkI7QUFJMUIsT0FBTztJQVZuQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDO0tBQzFELENBQUM7R0FRVyxPQUFPLENBT25CO1NBUFksT0FBTzsyRkFBUCxPQUFPO2tCQVBuQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDO2lCQUMxRDs7QUFpQ00sSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7cUdBTlUsUUFBUTt5RkFBUixRQUFRLDZQQUpULDJCQUEyQjtBQUkxQixRQUFRO0lBVnBCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDO0tBQ2pILENBQUM7R0FRVyxRQUFRLENBT3BCO1NBUFksUUFBUTsyRkFBUixRQUFRO2tCQVBwQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQztpQkFDakgiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAcGFwZXJsZXNzL2NvcmUnO1xuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZWFibGUnLCAnaGVhZGVyJywgJ29wZW4nLCAnb3BlbmFibGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlYWJsZScsICdoZWFkZXInLCAnb3BlbicsICdvcGVuYWJsZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBBY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQQWNjb3JkaW9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaXNPcGVuJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlBBY2NvcmRpb24ge1xuICAvKipcbiAgICogT3BlbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIGlzT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2NhbWVyYVRvb2x0aXAnLCAnZGVsZXRlVG9vbHRpcCcsICdkb3dubG9hZFRvb2x0aXAnLCAnZW5hYmxlQ2FtZXJhT25Nb2JpbGUnLCAnZXJyb3InLCAnZmlsZUlkJywgJ2hlbHBlcicsICdsYWJlbCcsICdsb2FkaW5nJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAndXBsb2FkVG9vbHRpcCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1hdHRhY2htZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2NlcHQnLCAnY2FtZXJhVG9vbHRpcCcsICdkZWxldGVUb29sdGlwJywgJ2Rvd25sb2FkVG9vbHRpcCcsICdlbmFibGVDYW1lcmFPbk1vYmlsZScsICdlcnJvcicsICdmaWxlSWQnLCAnaGVscGVyJywgJ2xhYmVsJywgJ2xvYWRpbmcnLCAnbW9kZScsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICd1cGxvYWRUb29sdGlwJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBBdHRhY2htZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUEF0dGFjaG1lbnRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd1cGxvYWQnLCAnZG93bmxvYWQnLCAnZGVsZXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBBdHRhY2htZW50IGV4dGVuZHMgQ29tcG9uZW50cy5QQXR0YWNobWVudCB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuIHVwbG9hZCBpcyBwcmVzc2VkXG4gICAqL1xuICB1cGxvYWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGZpbGU6IEZpbGU7IGZpbGVJZDogc3RyaW5nOyByZXN1bHQ6IHN0cmluZzsgfT4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBkb3dubG9hZCBpcyBwcmVzc2VkXG4gICAqL1xuICBkb3dubG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gZGVsZXRlIGlzIHByZXNzZWRcbiAgICovXG4gIGRlbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdEltYWdlJywgJ2xldHRlcnMnLCAnc2l6ZScsICdzcmMnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlZmF1bHRJbWFnZScsICdsZXR0ZXJzJywgJ3NpemUnLCAnc3JjJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEF2YXRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBBdmF0YXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQQXZhdGFyIGV4dGVuZHMgQ29tcG9uZW50cy5QQXZhdGFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2V4dHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWF2YXRhci1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZXh0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEF2YXRhckdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUEF2YXRhckdyb3VwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEF2YXRhckdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5QQXZhdGFyR3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwbHlCbHVyJywgJ2NsYXNzJywgJ2Nsb3NpbmcnLCAnc2Nyb2xsTG9jaycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWJhY2tkcm9wJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBseUJsdXInLCAnY2xhc3MnLCAnY2xvc2luZycsICdzY3JvbGxMb2NrJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEJhY2tkcm9wIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUEJhY2tkcm9wRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xpY2tlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQQmFja2Ryb3AgZXh0ZW5kcyBDb21wb25lbnRzLlBCYWNrZHJvcCB7XG4gIC8qKlxuICAgKiBXaGVuIHRoZSBiYWNrZHJvcCBpcyBjbGlja2VkXG4gICAqL1xuICBjbGlja2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBQQmFkZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQQmFkZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQQmFkZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlBCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnYXMnLCAnYnV0dG9uR3JvdXBQb3NpdGlvbicsICdjaGV2cm9uJywgJ2NoZXZyb25Qb3NpdGlvbicsICdjbGFzcycsICdkaXNhYmxlZCcsICdlcnJvcicsICdocmVmJywgJ2ljb24nLCAnaWNvbkZsaXAnLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2ljb25Sb3RhdGUnLCAnaW5oZXJpdFRleHQnLCAnbGFiZWwnLCAnbG9hZGluZycsICdzaXplJywgJ3RhcmdldCcsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnYXMnLCAnYnV0dG9uR3JvdXBQb3NpdGlvbicsICdjaGV2cm9uJywgJ2NoZXZyb25Qb3NpdGlvbicsICdjbGFzcycsICdkaXNhYmxlZCcsICdlcnJvcicsICdocmVmJywgJ2ljb24nLCAnaWNvbkZsaXAnLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2ljb25Sb3RhdGUnLCAnaW5oZXJpdFRleHQnLCAnbGFiZWwnLCAnbG9hZGluZycsICdzaXplJywgJ3RhcmdldCcsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBCdXR0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlBCdXR0b24ge1xuICAvKipcbiAgICogQnV0dG9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWJ1dHRvbi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBQQnV0dG9uR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQQnV0dG9uR3JvdXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQQnV0dG9uR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlBCdXR0b25Hcm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlV2Vla2VuZHMnLCAnZGlzYWJsZWREYXRlcycsICdlbmFibGVUb2RheScsICdtYXhEYXRlJywgJ21pbkRhdGUnLCAnbW9kZScsICdwcmVzZWxlY3RUb2RheScsICd0b2RheVRleHQnLCAndmFsdWUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1jYWxlbmRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZVdlZWtlbmRzJywgJ2Rpc2FibGVkRGF0ZXMnLCAnZW5hYmxlVG9kYXknLCAnbWF4RGF0ZScsICdtaW5EYXRlJywgJ21vZGUnLCAncHJlc2VsZWN0VG9kYXknLCAndG9kYXlUZXh0JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUENhbGVuZGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUENhbGVuZGFyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUENhbGVuZGFyIGV4dGVuZHMgQ29tcG9uZW50cy5QQ2FsZW5kYXIge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiB0aGUgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtY2FyZC1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFBDYXJkQm9keSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBDYXJkQm9keUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBDYXJkQm9keSBleHRlbmRzIENvbXBvbmVudHMuUENhcmRCb2R5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdiZ0NsYXNzJywgJ2JvcmRlcicsICdob3ZlcmFibGUnLCAnc2hhZG93JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtY2FyZC1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdiZ0NsYXNzJywgJ2JvcmRlcicsICdob3ZlcmFibGUnLCAnc2hhZG93JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUENhcmRDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQQ2FyZENvbnRhaW5lckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBDYXJkQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5QQ2FyZENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXZpZGVyJywgJ2hlYWRlcicsICdpY29uJywgJ2ljb25GbGlwJywgJ2ljb25Sb3RhdGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1jYXJkLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGl2aWRlcicsICdoZWFkZXInLCAnaWNvbicsICdpY29uRmxpcCcsICdpY29uUm90YXRlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUENhcmRIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQQ2FyZEhlYWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBDYXJkSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5QQ2FyZEhlYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2lkJywgJ2luZGV0ZXJtaW5hdGUnLCAnbmFtZScsICdyZXF1aXJlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpZCcsICdpbmRldGVybWluYXRlJywgJ25hbWUnLCAncmVxdWlyZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUENoZWNrYm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUENoZWNrYm94RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2hlY2tlZENoYW5nZScsICdpbmRldGVybWluYXRlQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBDaGVja2JveCBleHRlbmRzIENvbXBvbmVudHMuUENoZWNrYm94IHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW5ldmVyIHRoZSBjaGVja2VkIGNoYW5nZXNcbiAgICovXG4gIGNoZWNrZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgaW5kZXRlcm1pbmF0ZSBjaGFuZ2VzXG4gICAqL1xuICBpbmRldGVybWluYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlQXV0b0NlbnRlcicsICdkaXNhYmxlRHJhZycsICdkaXNhYmxlSW5kaWNhdG9yQ2xpY2snLCAnaGlkZU1vYmlsZUluZGljYXRvciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1jb250ZW50LXNsaWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZUF1dG9DZW50ZXInLCAnZGlzYWJsZURyYWcnLCAnZGlzYWJsZUluZGljYXRvckNsaWNrJywgJ2hpZGVNb2JpbGVJbmRpY2F0b3InXSxcbn0pXG5leHBvcnQgY2xhc3MgUENvbnRlbnRTbGlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQQ29udGVudFNsaWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBDb250ZW50U2xpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5QQ29udGVudFNsaWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydyZXR1cm5UeXBlJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWNyb3BwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3JldHVyblR5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUENyb3BwZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQQ3JvcHBlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZhbHVlQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBDcm9wcGVyIGV4dGVuZHMgQ29tcG9uZW50cy5QQ3JvcHBlciB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzXG4gICAqL1xuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlV2Vla2VuZHMnLCAnZGlzYWJsZWQnLCAnZGlzYWJsZWREYXRlcycsICdlbmFibGVOYXRpdmVQaWNrZXInLCAnZW5hYmxlVG9kYXknLCAnZXJyb3InLCAnZm9ybWF0JywgJ2hlbHBlcicsICdoaWRlSWNvbldoZW5GaWxsZWQnLCAnbGFiZWwnLCAnbG9hZGluZycsICdtYXhEYXRlJywgJ21pbkRhdGUnLCAnbW9kZScsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncHJlZml4JywgJ3ByZXNlbGVjdFRvZGF5JywgJ3JlcXVpcmVkJywgJ3Nob3dPcHRpb25hbCcsICdzaXplJywgJ3N0cmF0ZWd5JywgJ3RvZGF5VGV4dCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlV2Vla2VuZHMnLCAnZGlzYWJsZWQnLCAnZGlzYWJsZWREYXRlcycsICdlbmFibGVOYXRpdmVQaWNrZXInLCAnZW5hYmxlVG9kYXknLCAnZXJyb3InLCAnZm9ybWF0JywgJ2hlbHBlcicsICdoaWRlSWNvbldoZW5GaWxsZWQnLCAnbGFiZWwnLCAnbG9hZGluZycsICdtYXhEYXRlJywgJ21pbkRhdGUnLCAnbW9kZScsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncHJlZml4JywgJ3ByZXNlbGVjdFRvZGF5JywgJ3JlcXVpcmVkJywgJ3Nob3dPcHRpb25hbCcsICdzaXplJywgJ3N0cmF0ZWd5JywgJ3RvZGF5VGV4dCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBQRGF0ZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBEYXRlcGlja2VyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUERhdGVwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBEYXRlcGlja2VyIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gdGhlIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWduQ29udGVudCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWRpdmlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWduQ29udGVudCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBEaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUERpdmlkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQRGl2aWRlciBleHRlbmRzIENvbXBvbmVudHMuUERpdmlkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwbHlCbHVyJywgJ2JhY2tkcm9wQ2xpY2tDbG9zZScsICdjYW5DbG9zZScsICdoZWFkZXInLCAnc2Nyb2xsTG9jaycsICdzaG93JywgJ3Nob3dDbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1kcmF3ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwcGx5Qmx1cicsICdiYWNrZHJvcENsaWNrQ2xvc2UnLCAnY2FuQ2xvc2UnLCAnaGVhZGVyJywgJ3Njcm9sbExvY2snLCAnc2hvdycsICdzaG93Q2xvc2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgUERyYXdlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBEcmF3ZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjbG9zZUNsaWNrZWQnLCAnY2xvc2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBEcmF3ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBEcmF3ZXIge1xuICAvKipcbiAgICogQ2xvc2UgY2xpY2sgZXZlbnRcbiAgICovXG4gIGNsb3NlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZXZlbnQ6IE1vdXNlRXZlbnQ7IGNhbkNsb3NlOiBib29sZWFuOyBzb3VyY2U6ICd1bmtub3duJyB8ICdiYWNrZHJvcCcgfCAnY2xvc2UnIHwgJ2V2ZW50JyB9Pj47XG4gIC8qKlxuICAgKiBDbG9zZWQgZXZlbnRcbiAgICovXG4gIGNsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bGw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtZHJhd2VyLWJvZHknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgUERyYXdlckJvZHkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQRHJhd2VyQm9keUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBEcmF3ZXJCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5QRHJhd2VyQm9keSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWRyYXdlci1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NpbmcnXSxcbn0pXG5leHBvcnQgY2xhc3MgUERyYXdlckNvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBEcmF3ZXJDb250YWluZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQRHJhd2VyQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5QRHJhd2VyQ29udGFpbmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3Nob3dDbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1kcmF3ZXItaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaG93Q2xvc2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgUERyYXdlckhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBEcmF3ZXJIZWFkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQRHJhd2VySGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5QRHJhd2VySGVhZGVyIHtcbiAgLyoqXG4gICAqIENsb3NlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBjbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxsb3dPdmVyZmxvdycsICdhcHBseUNoZXZyb24nLCAnYXBwbHlGdWxsV2lkdGgnLCAnYXBwbHlNYXhXaWR0aCcsICdjaGV2cm9uRGlyZWN0aW9uJywgJ2NoZXZyb25Qb3NpdGlvbicsICdkaXNhYmxlVHJpZ2dlckNsaWNrJywgJ2luc2lkZUNsaWNrJywgJ21hbnVhbCcsICdvZmZzZXQnLCAncGxhY2VtZW50JywgJ3Njcm9sbGFibGUnLCAnc2hvdycsICdzdHJhdGVneScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWRyb3Bkb3duJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGxvd092ZXJmbG93JywgJ2FwcGx5Q2hldnJvbicsICdhcHBseUZ1bGxXaWR0aCcsICdhcHBseU1heFdpZHRoJywgJ2NoZXZyb25EaXJlY3Rpb24nLCAnY2hldnJvblBvc2l0aW9uJywgJ2Rpc2FibGVUcmlnZ2VyQ2xpY2snLCAnaW5zaWRlQ2xpY2snLCAnbWFudWFsJywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAnc2Nyb2xsYWJsZScsICdzaG93JywgJ3N0cmF0ZWd5JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUERyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUERyb3Bkb3duRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaXNPcGVuJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuUERyb3Bkb3duIHtcbiAgLyoqXG4gICAqIE9wZW4gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBpc09wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93T3ZlcmZsb3cnLCAnY2xhc3MnLCAnZnVsbFdpZHRoJywgJ21heFdpZHRoJywgJ3Njcm9sbGFibGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1kcm9wZG93bi1tZW51LWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3dPdmVyZmxvdycsICdjbGFzcycsICdmdWxsV2lkdGgnLCAnbWF4V2lkdGgnLCAnc2Nyb2xsYWJsZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBEcm9wZG93bk1lbnVDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQRHJvcGRvd25NZW51Q29udGFpbmVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUERyb3Bkb3duTWVudUNvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuUERyb3Bkb3duTWVudUNvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnY2hlY2tib3gnLCAnZGlzYWJsZWQnLCAnZW5hYmxlSG92ZXInLCAnZW5hYmxlVGV4dFdyYXAnLCAnaWNvbicsICdpY29uV2F2ZScsICd1c2VDb250YWluZXInLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1kcm9wZG93bi1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjaGVja2JveCcsICdkaXNhYmxlZCcsICdlbmFibGVIb3ZlcicsICdlbmFibGVUZXh0V3JhcCcsICdpY29uJywgJ2ljb25XYXZlJywgJ3VzZUNvbnRhaW5lcicsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBEcm9wZG93bk1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUERyb3Bkb3duTWVudUl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQRHJvcGRvd25NZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuUERyb3Bkb3duTWVudUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9uSWNvbicsICdhY3Rpb25JY29uUG9zaXRpb24nLCAnYWN0aW9uTG9hZGluZycsICdhY3Rpb25UZXh0JywgJ2FjdGlvblZhcmlhbnQnLCAnY29udGVudCcsICdlbmFibGVBY3Rpb24nLCAnaGVhZGVyJywgJ2lsbHVzdHJhdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1lbXB0eS1zdGF0ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9uSWNvbicsICdhY3Rpb25JY29uUG9zaXRpb24nLCAnYWN0aW9uTG9hZGluZycsICdhY3Rpb25UZXh0JywgJ2FjdGlvblZhcmlhbnQnLCAnY29udGVudCcsICdlbmFibGVBY3Rpb24nLCAnaGVhZGVyJywgJ2lsbHVzdHJhdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBQRW1wdHlTdGF0ZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBFbXB0eVN0YXRlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYWN0aW9uJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBFbXB0eVN0YXRlIGV4dGVuZHMgQ29tcG9uZW50cy5QRW1wdHlTdGF0ZSB7XG4gIC8qKlxuICAgKiBUaGUgdGV4dCBvbiB0aGUgYWN0aW9uIGJ1dHRvblxuICAgKi9cbiAgYWN0aW9uOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhZGRUZXh0JywgJ2FsaWduJywgJ2F1dG9mb2N1cycsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclBsYWNlbWVudCcsICdmb2N1c01ldGhvZCcsICdmb2N1c2VkJywgJ2ZvcmNlU2hvd1Rvb2x0aXAnLCAnaGVscGVyJywgJ2ljb24nLCAnaWNvbkZsaXAnLCAnaWNvblBvc2l0aW9uJywgJ2ljb25Sb3RhdGUnLCAnaWQnLCAnbGFiZWwnLCAnbG9hZGluZycsICdvcHRpb25hbFRlbXBsYXRlJywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeCcsICdwcm9wZXJ0aWVzJywgJ3JlcXVpcmVkJywgJ3NlbGVjdEFsbE9uRm9jdXMnLCAnc2hvd0FkZE9uRW1wdHknLCAnc2hvd09wdGlvbmFsJywgJ3NpemUnLCAnc3VmZml4JywgJ3R5cGUnLCAndmFsdWUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1maWVsZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWRkVGV4dCcsICdhbGlnbicsICdhdXRvZm9jdXMnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JQbGFjZW1lbnQnLCAnZm9jdXNNZXRob2QnLCAnZm9jdXNlZCcsICdmb3JjZVNob3dUb29sdGlwJywgJ2hlbHBlcicsICdpY29uJywgJ2ljb25GbGlwJywgJ2ljb25Qb3NpdGlvbicsICdpY29uUm90YXRlJywgJ2lkJywgJ2xhYmVsJywgJ2xvYWRpbmcnLCAnb3B0aW9uYWxUZW1wbGF0ZScsICdwbGFjZWhvbGRlcicsICdwcmVmaXgnLCAncHJvcGVydGllcycsICdyZXF1aXJlZCcsICdzZWxlY3RBbGxPbkZvY3VzJywgJ3Nob3dBZGRPbkVtcHR5JywgJ3Nob3dPcHRpb25hbCcsICdzaXplJywgJ3N1ZmZpeCcsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEZpZWxkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUEZpZWxkRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2UnLCAnaW5wdXRSZWZDaGFuZ2UnLCAnYWRkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBGaWVsZCBleHRlbmRzIENvbXBvbmVudHMuUEZpZWxkIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW5ldmVyIHRoZSB2YWx1ZSBjaGFuZ2VzXG4gICAqL1xuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbmV2ZXIgdGhlIGlucHV0IHJlZiBjaGFuZ2VzXG4gICAqL1xuICBpbnB1dFJlZkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgYWRkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGlnbicsICdlcnJvcicsICdlcnJvclBsYWNlbWVudCcsICdmb3JjZVNob3dUb29sdGlwJywgJ2hlbHBlcicsICdpZCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdTaXplJywgJ29wdGlvbmFsVGVtcGxhdGUnLCAncmVxdWlyZWQnLCAnc2hvd09wdGlvbmFsJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtZmllbGQtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGlnbicsICdlcnJvcicsICdlcnJvclBsYWNlbWVudCcsICdmb3JjZVNob3dUb29sdGlwJywgJ2hlbHBlcicsICdpZCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdTaXplJywgJ29wdGlvbmFsVGVtcGxhdGUnLCAncmVxdWlyZWQnLCAnc2hvd09wdGlvbmFsJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEZpZWxkQ29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUEZpZWxkQ29udGFpbmVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEZpZWxkQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5QRmllbGRDb250YWluZXIge1xuXG4gIGZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbW91bnQnLCAnYW1vdW50U2VsZWN0ZWRUZW1wbGF0ZScsICdlbmFibGVBbW91bnRTZWxlY3RlZCcsICdlbmFibGVDbG9zZScsICd1c2VkSW5UYWJsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1mbG9hdGluZy1tZW51LWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW1vdW50JywgJ2Ftb3VudFNlbGVjdGVkVGVtcGxhdGUnLCAnZW5hYmxlQW1vdW50U2VsZWN0ZWQnLCAnZW5hYmxlQ2xvc2UnLCAndXNlZEluVGFibGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEZsb2F0aW5nTWVudUNvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBGbG9hdGluZ01lbnVDb250YWluZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQRmxvYXRpbmdNZW51Q29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5QRmxvYXRpbmdNZW51Q29udGFpbmVyIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW5ldmVyIHRoZSBjbG9zZSBidXR0b24gaXMgY2xpY2tlZFxuICAgKi9cbiAgY2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hvdmVyJywgJ2ljb24nLCAnaWNvbkZsaXAnLCAnaWNvblBvc2l0aW9uJywgJ2ljb25Sb3RhdGUnLCAnbG9hZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1mbG9hdGluZy1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hvdmVyJywgJ2ljb24nLCAnaWNvbkZsaXAnLCAnaWNvblBvc2l0aW9uJywgJ2ljb25Sb3RhdGUnLCAnbG9hZGluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBQRmxvYXRpbmdNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBGbG9hdGluZ01lbnVJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUEZsb2F0aW5nTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlBGbG9hdGluZ01lbnVJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3BsYWNlbWVudCcsICdzdHJhdGVneSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1oZWxwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BsYWNlbWVudCcsICdzdHJhdGVneSddLFxufSlcbmV4cG9ydCBjbGFzcyBQSGVscGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUEhlbHBlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBIZWxwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBIZWxwZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWJhbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWliYW4taWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWJhbicsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBJYmFuSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBJYmFuSWNvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBJYmFuSWNvbiBleHRlbmRzIENvbXBvbmVudHMuUEliYW5JY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZsaXAnLCAncm90YXRlJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmbGlwJywgJ3JvdGF0ZScsICdzaXplJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUEljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQSWNvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5QSWNvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWlsbHVzdHJhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBQSWxsdXN0cmF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUElsbHVzdHJhdGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBJbGx1c3RyYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlBJbGx1c3RyYXRpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1pbGx1c3RyYXRpb24tZGVwcmVjYXRlZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBQSWxsdXN0cmF0aW9uRGVwcmVjYXRlZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBJbGx1c3RyYXRpb25EZXByZWNhdGVkRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUElsbHVzdHJhdGlvbkRlcHJlY2F0ZWQgZXh0ZW5kcyBDb21wb25lbnRzLlBJbGx1c3RyYXRpb25EZXByZWNhdGVkIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NlYWJsZScsICdjb250ZW50JywgJ2hlYWRlcicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWluZm8tcGFuZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlYWJsZScsICdjb250ZW50JywgJ2hlYWRlcicsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBJbmZvUGFuZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQSW5mb1BhbmVsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBJbmZvUGFuZWwgZXh0ZW5kcyBDb21wb25lbnRzLlBJbmZvUGFuZWwge1xuICAvKipcbiAgICogV2hlbiB0aGUgYmFja2Ryb3AgaXMgY2xpY2tlZFxuICAgKi9cbiAgY2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uJywgJ2ljb25GbGlwJywgJ2ljb25Pbmx5JywgJ2ljb25Sb3RhdGUnLCAna2VlcE1vYmlsZUNvbnRlbnQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvbicsICdpY29uRmxpcCcsICdpY29uT25seScsICdpY29uUm90YXRlJywgJ2tlZXBNb2JpbGVDb250ZW50JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUExhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUExhYmVsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUExhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5QTGFiZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1sYXlvdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUExheW91dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBMYXlvdXRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzY3JvbGwnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUExheW91dCBleHRlbmRzIENvbXBvbmVudHMuUExheW91dCB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgbGF5b3V0IGlzIGJlaW5nIHNjcm9sbGVkXG4gICAqL1xuICBzY3JvbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtbGlzdGluZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBQTGlzdGluZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBMaXN0aW5nRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUExpc3RpbmcgZXh0ZW5kcyBDb21wb25lbnRzLlBMaXN0aW5nIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtbGlzdGluZy1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBMaXN0aW5nSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBMaXN0aW5nSXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBMaXN0aW5nSXRlbSBleHRlbmRzIENvbXBvbmVudHMuUExpc3RpbmdJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWxpc3RpbmctbGluZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBQTGlzdGluZ0xpbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQTGlzdGluZ0xpbmVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQTGlzdGluZ0xpbmUgZXh0ZW5kcyBDb21wb25lbnRzLlBMaXN0aW5nTGluZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdtb2RhbERlc2NyaXB0aW9uJywgJ21vZGFsVGl0bGUnLCAnc2hvdycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLWxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnbW9kYWxEZXNjcmlwdGlvbicsICdtb2RhbFRpdGxlJywgJ3Nob3cnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBQTG9hZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUExvYWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBMb2FkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBMb2FkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwbHlCbHVyJywgJ2JhY2tkcm9wQ2xpY2tDbG9zZScsICdoZWFkZXInLCAnc2Nyb2xsTG9jaycsICdzaG93JywgJ3Nob3dDbG9zZScsICdzaG93TW9iaWxlRm9vdGVyJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtbW9kYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwcGx5Qmx1cicsICdiYWNrZHJvcENsaWNrQ2xvc2UnLCAnaGVhZGVyJywgJ3Njcm9sbExvY2snLCAnc2hvdycsICdzaG93Q2xvc2UnLCAnc2hvd01vYmlsZUZvb3RlcicsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBNb2RhbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBNb2RhbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlQ2xpY2tlZCcsICdjbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUE1vZGFsIGV4dGVuZHMgQ29tcG9uZW50cy5QTW9kYWwge1xuICAvKipcbiAgICogQ2xvc2UgY2xpY2sgZXZlbnRcbiAgICovXG4gIGNsb3NlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlZCBldmVudFxuICAgKi9cbiAgY2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3JvdW5kZWRCb3R0b20nLCAncm91bmRlZFRvcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1tb2RhbC1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydyb3VuZGVkQm90dG9tJywgJ3JvdW5kZWRUb3AnXSxcbn0pXG5leHBvcnQgY2xhc3MgUE1vZGFsQm9keSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBNb2RhbEJvZHlFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQTW9kYWxCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5QTW9kYWxCb2R5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NpbmcnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1tb2RhbC1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NpbmcnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBQTW9kYWxDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQTW9kYWxDb250YWluZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQTW9kYWxDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBNb2RhbENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1tb2RhbC1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgUE1vZGFsRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUE1vZGFsRm9vdGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUE1vZGFsRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5QTW9kYWxGb290ZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2hvd0Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLW1vZGFsLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2hvd0Nsb3NlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBNb2RhbEhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBNb2RhbEhlYWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBNb2RhbEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuUE1vZGFsSGVhZGVyIHtcbiAgLyoqXG4gICAqIENsb3NlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBjbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtbmF2YmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFBOYXZiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQTmF2YmFyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUE5hdmJhciBleHRlbmRzIENvbXBvbmVudHMuUE5hdmJhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnYXMnLCAnY2xhc3MnLCAnY291bnRlcicsICdocmVmJywgJ2ljb24nLCAnbG9hZGluZycsICd0YXJnZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtbmF2aWdhdGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnYXMnLCAnY2xhc3MnLCAnY291bnRlcicsICdocmVmJywgJ2ljb24nLCAnbG9hZGluZycsICd0YXJnZXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUE5hdmlnYXRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUE5hdmlnYXRpb25JdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUE5hdmlnYXRpb25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5QTmF2aWdhdGlvbkl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLW5hdmlnYXRpb24tc2VjdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGVyJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBOYXZpZ2F0aW9uU2VjdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBOYXZpZ2F0aW9uU2VjdGlvbiBleHRlbmRzIENvbXBvbmVudHMuUE5hdmlnYXRpb25TZWN0aW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLW5hdmlnYXRpb24tdGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgUE5hdmlnYXRpb25UaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBOYXZpZ2F0aW9uVGl0bGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQTmF2aWdhdGlvblRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5QTmF2aWdhdGlvblRpdGxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2VuYWJsZVBhZ2luYXRpb25QYWdlcycsICdlbmFibGVQYWdpbmF0aW9uU2l6ZScsICdoaWRlT25TaW5nbGVQYWdlJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncGFnZVNpemVPcHRpb25zJywgJ3RvdGFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXBhZ2luYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2VuYWJsZVBhZ2luYXRpb25QYWdlcycsICdlbmFibGVQYWdpbmF0aW9uU2l6ZScsICdoaWRlT25TaW5nbGVQYWdlJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncGFnZVNpemVPcHRpb25zJywgJ3RvdGFsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBQYWdpbmF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUFBhZ2luYXRpb25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydwYWdlQ2hhbmdlJywgJ3BhZ2VTaXplQ2hhbmdlJywgJ3BhZ2VzQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBQYWdpbmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5QUGFnaW5hdGlvbiB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgcGFnZSBjaGFuZ2VzXG4gICAqL1xuICBwYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgcGFnZSBjaGFuZ2VzXG4gICAqL1xuICBwYWdlU2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKipcbiAgICogVGhlIHBhZ2VzIHRoYXQgd2VyZSBnZW5lcmF0ZWRcbiAgICovXG4gIHBhZ2VzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVPblNpbmdsZVBhZ2UnLCAncGFnZScsICdwYWdlU2l6ZScsICd0b3RhbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1wYWdpbmF0aW9uLXBhZ2VzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlT25TaW5nbGVQYWdlJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAndG90YWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFBhZ2luYXRpb25QYWdlcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBQYWdpbmF0aW9uUGFnZXNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydwYWdlQ2hhbmdlJywgJ3BhZ2VzQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBQYWdpbmF0aW9uUGFnZXMgZXh0ZW5kcyBDb21wb25lbnRzLlBQYWdpbmF0aW9uUGFnZXMge1xuICAvKipcbiAgICogRXZlbnQgd2hlbmV2ZXIgdGhlIHBhZ2UgY2hhbmdlc1xuICAgKi9cbiAgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKipcbiAgICogVGhlIHBhZ2VzIHRoYXQgd2VyZSBnZW5lcmF0ZWRcbiAgICovXG4gIHBhZ2VzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdkaXNhYmxlZCcsICdob3ZlcicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXBhZ2luYXRpb24tcGFnZXMtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Rpc2FibGVkJywgJ2hvdmVyJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFBhZ2luYXRpb25QYWdlc0l0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQUGFnaW5hdGlvblBhZ2VzSXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBQYWdpbmF0aW9uUGFnZXNJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5QUGFnaW5hdGlvblBhZ2VzSXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRkZW4nLCAnaXRlbVRlbXBsYXRlJywgJ3NpemUnLCAnc2l6ZU9wdGlvbnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtcGFnaW5hdGlvbi1zaXplJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRkZW4nLCAnaXRlbVRlbXBsYXRlJywgJ3NpemUnLCAnc2l6ZU9wdGlvbnMnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFBhZ2luYXRpb25TaXplIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUFBhZ2luYXRpb25TaXplRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l6ZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQUGFnaW5hdGlvblNpemUgZXh0ZW5kcyBDb21wb25lbnRzLlBQYWdpbmF0aW9uU2l6ZSB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgc2l6ZSBjaGFuZ2VzXG4gICAqL1xuICBzaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Ryb3Bkb3duTG9jYXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtcHJvZmlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZHJvcGRvd25Mb2NhdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBQUHJvZmlsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBQcm9maWxlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFByb2ZpbGUgZXh0ZW5kcyBDb21wb25lbnRzLlBQcm9maWxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaWQnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1yYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpZCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBSYWRpb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2NoZWNrZWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5QUmFkaW8ge1xuICAvKipcbiAgICogRXZlbnQgd2hlbmV2ZXIgdGhlIGNoZWNrZWQgY2hhbmdlc1xuICAgKi9cbiAgY2hlY2tlZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbWF4JywgJ21pbicsICdzdGVwJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXJhbmdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydtYXgnLCAnbWluJywgJ3N0ZXAnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFJhbmdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUFJhbmdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5QUmFuZ2Uge1xuICAvKipcbiAgICogRXZlbnQgd2hlbmV2ZXIgdGhlIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXNlZ21lbnQtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFBTZWdtZW50Q29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUFNlZ21lbnRDb250YWluZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQU2VnbWVudENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuUFNlZ21lbnRDb250YWluZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2ljb24nLCAnaWNvbkZsaXAnLCAnaWNvbk9ubHknLCAnaWNvblJvdGF0ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXNlZ21lbnQtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2ljb24nLCAnaWNvbkZsaXAnLCAnaWNvbk9ubHknLCAnaWNvblJvdGF0ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBTZWdtZW50SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBTZWdtZW50SXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBTZWdtZW50SXRlbSBleHRlbmRzIENvbXBvbmVudHMuUFNlZ21lbnRJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FkZEl0ZW1UZXh0JywgJ2FwcGx5Q2xhc3NPblNlbGVjdGVkSXRlbScsICdhc3luY0ZpbHRlcicsICdhdXRvU2VsZWN0Rmlyc3QnLCAnYXV0b2NvbXBsZXRlUGxhY2Vob2xkZXInLCAnYXZhdGFyS2V5JywgJ2F2YXRhckxldHRlcnNLZXknLCAnY2xhc3NLZXknLCAnZGlzYWJsZWQnLCAnZGlzcGxheUtleScsICdkcm9wZG93bkRpc3BsYXlLZXknLCAnZW1wdHlTdGF0ZVRleHQnLCAnZW5hYmxlQXV0b2NvbXBsZXRlJywgJ2VuYWJsZVNlbGVjdEFsbCcsICdlbmFibGVUZXh0V3JhcCcsICdlcnJvcicsICdoZWxwZXInLCAnaWNvbicsICdpY29uS2V5JywgJ2lkZW50aWZpZXJLZXknLCAnaXRlbXMnLCAnbGFiZWwnLCAnbG9hZGluZycsICdtYXhEaXNwbGF5ZWRJdGVtcycsICdtdWx0aScsICdwbGFjZWhvbGRlcicsICdwcmVmaXgnLCAncXVlcnknLCAncXVlcnlLZXknLCAncmVxdWlyZWQnLCAnc2VsZWN0QWxsSWNvbicsICdzZWxlY3RBbGxUZXh0JywgJ3NlbGVjdGlvbkRpc3BsYXlLZXknLCAnc2hvd0FkZEl0ZW0nLCAnc2hvd0NoZXZyb24nLCAnc2hvd0ljb25PblNlbGVjdGVkSXRlbScsICdzaG93T3B0aW9uYWwnLCAnc2l6ZScsICdzdHJhdGVneScsICd2YWx1ZScsICd2YWx1ZUtleSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FkZEl0ZW1UZXh0JywgJ2FwcGx5Q2xhc3NPblNlbGVjdGVkSXRlbScsICdhc3luY0ZpbHRlcicsICdhdXRvU2VsZWN0Rmlyc3QnLCAnYXV0b2NvbXBsZXRlUGxhY2Vob2xkZXInLCAnYXZhdGFyS2V5JywgJ2F2YXRhckxldHRlcnNLZXknLCAnY2xhc3NLZXknLCAnZGlzYWJsZWQnLCAnZGlzcGxheUtleScsICdkcm9wZG93bkRpc3BsYXlLZXknLCAnZW1wdHlTdGF0ZVRleHQnLCAnZW5hYmxlQXV0b2NvbXBsZXRlJywgJ2VuYWJsZVNlbGVjdEFsbCcsICdlbmFibGVUZXh0V3JhcCcsICdlcnJvcicsICdoZWxwZXInLCAnaWNvbicsICdpY29uS2V5JywgJ2lkZW50aWZpZXJLZXknLCAnaXRlbXMnLCAnbGFiZWwnLCAnbG9hZGluZycsICdtYXhEaXNwbGF5ZWRJdGVtcycsICdtdWx0aScsICdwbGFjZWhvbGRlcicsICdwcmVmaXgnLCAncXVlcnknLCAncXVlcnlLZXknLCAncmVxdWlyZWQnLCAnc2VsZWN0QWxsSWNvbicsICdzZWxlY3RBbGxUZXh0JywgJ3NlbGVjdGlvbkRpc3BsYXlLZXknLCAnc2hvd0FkZEl0ZW0nLCAnc2hvd0NoZXZyb24nLCAnc2hvd0ljb25PblNlbGVjdGVkSXRlbScsICdzaG93T3B0aW9uYWwnLCAnc2l6ZScsICdzdHJhdGVneScsICd2YWx1ZScsICd2YWx1ZUtleSddLFxufSlcbmV4cG9ydCBjbGFzcyBQU2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUFNlbGVjdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3F1ZXJ5Q2hhbmdlJywgJ3ZhbHVlQ2hhbmdlJywgJ3NlbGVjdEFsbENoYW5nZScsICdkcm9wZG93blNob3duJywgJ2FkZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQU2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5QU2VsZWN0IHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gdGhlIHF1ZXJ5IG9mIHRoZSBhdXRvY29tcGxldGUgY2hhbmdlc1xuICAgKi9cbiAgcXVlcnlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gdGhlIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuIHRoZSBzZWxlY3QgYWxsIGl0ZW0gaGFzIGJlZW4gc2VsZWN0ZWQgb3Igbm90XG4gICAqL1xuICBzZWxlY3RBbGxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gdGhlIGRyb3Bkb3duIHNob3dzXG4gICAqL1xuICBkcm9wZG93blNob3duOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuIHRoZSBhZGQgaXRlbSBpcyBjbGlja2VkXG4gICAqL1xuICBhZGQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1zbWlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBQU21pbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQU21pbGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQU21pbGUgZXh0ZW5kcyBDb21wb25lbnRzLlBTbWlsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmVTdGVwJywgJ2FsaWduJywgJ2NvbnRlbnRQb3NpdGlvbicsICdkaXJlY3Rpb24nLCAnZW5hYmxlQXV0b1N0YXR1cycsICdzdGVwcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1zdGVwcGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmVTdGVwJywgJ2FsaWduJywgJ2NvbnRlbnRQb3NpdGlvbicsICdkaXJlY3Rpb24nLCAnZW5hYmxlQXV0b1N0YXR1cycsICdzdGVwcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQU3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBTdGVwcGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFN0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBTdGVwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGlnbicsICdjb250ZW50UG9zaXRpb24nLCAnZGlyZWN0aW9uJywgJ2ZpbmlzaGVkJywgJ251bWJlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1zdGVwcGVyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGlnbicsICdjb250ZW50UG9zaXRpb24nLCAnZGlyZWN0aW9uJywgJ2ZpbmlzaGVkJywgJ251bWJlciddLFxufSlcbmV4cG9ydCBjbGFzcyBQU3RlcHBlckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQU3RlcHBlckl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQU3RlcHBlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlBTdGVwcGVySXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnZGlyZWN0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXN0ZXBwZXItbGluZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2RpcmVjdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBQU3RlcHBlckxpbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQU3RlcHBlckxpbmVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQU3RlcHBlckxpbmUgZXh0ZW5kcyBDb21wb25lbnRzLlBTdGVwcGVyTGluZSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC10YWItY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFBUYWJDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQVGFiQ29udGFpbmVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFRhYkNvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuUFRhYkNvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtdGFiLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBQVGFiSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBUYWJJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFRhYkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlBUYWJJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXRhYmxlLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBQVGFibGVDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQVGFibGVDb250YWluZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQVGFibGVDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBUYWJsZUNvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydlbmFibGVQYWdpbmF0aW9uUGFnZXMnLCAnZW5hYmxlUGFnaW5hdGlvblNpemUnLCAnaGlkZU9uU2luZ2xlUGFnZScsICdsb2FkaW5nJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncGFnZVNpemVPcHRpb25zJywgJ3RvdGFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXRhYmxlLWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZW5hYmxlUGFnaW5hdGlvblBhZ2VzJywgJ2VuYWJsZVBhZ2luYXRpb25TaXplJywgJ2hpZGVPblNpbmdsZVBhZ2UnLCAnbG9hZGluZycsICdwYWdlJywgJ3BhZ2VTaXplJywgJ3BhZ2VTaXplT3B0aW9ucycsICd0b3RhbCddLFxufSlcbmV4cG9ydCBjbGFzcyBQVGFibGVGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxQVGFibGVGb290ZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydwYWdlQ2hhbmdlJywgJ3BhZ2VTaXplQ2hhbmdlJywgJ2hpZGRlbkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQVGFibGVGb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBUYWJsZUZvb3RlciB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgcGFnZSBjaGFuZ2VzXG4gICAqL1xuICBwYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgcGFnZSBjaGFuZ2VzXG4gICAqL1xuICBwYWdlU2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbmV2ZXIgdGhlIGZvb3RlciBpcyBoaWRkZW4gb3Igbm9nXG4gICAqL1xuICBoaWRkZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbkJ1dHRvblRlbXBsYXRlJywgJ2FjdGlvbkljb24nLCAnYWN0aW9uTG9hZGluZycsICdhY3Rpb25UZXh0JywgJ2FjdGl2ZVF1aWNrRmlsdGVySWRlbnRpZmllcicsICdjYW5Vc2VBY3Rpb24nLCAnZW5hYmxlQWN0aW9uJywgJ2VuYWJsZUV4cG9ydCcsICdlbmFibGVGaWx0ZXInLCAnZW5hYmxlRmlsdGVyRGVza3RvcCcsICdlbmFibGVTZWFyY2gnLCAnZmlsdGVyQnV0dG9uVGVtcGxhdGUnLCAnaXRlbXNTZWxlY3RlZEFtb3VudCcsICdsb2FkaW5nJywgJ3F1ZXJ5JywgJ3F1aWNrRmlsdGVycycsICdzZWxlY3RlZEZpbHRlcnNBbW91bnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtdGFibGUtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3Rpb25CdXR0b25UZW1wbGF0ZScsICdhY3Rpb25JY29uJywgJ2FjdGlvbkxvYWRpbmcnLCAnYWN0aW9uVGV4dCcsICdhY3RpdmVRdWlja0ZpbHRlcklkZW50aWZpZXInLCAnY2FuVXNlQWN0aW9uJywgJ2VuYWJsZUFjdGlvbicsICdlbmFibGVFeHBvcnQnLCAnZW5hYmxlRmlsdGVyJywgJ2VuYWJsZUZpbHRlckRlc2t0b3AnLCAnZW5hYmxlU2VhcmNoJywgJ2ZpbHRlckJ1dHRvblRlbXBsYXRlJywgJ2l0ZW1zU2VsZWN0ZWRBbW91bnQnLCAnbG9hZGluZycsICdxdWVyeScsICdxdWlja0ZpbHRlcnMnLCAnc2VsZWN0ZWRGaWx0ZXJzQW1vdW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBUYWJsZUhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBUYWJsZUhlYWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3F1aWNrRmlsdGVyJywgJ3F1ZXJ5Q2hhbmdlJywgJ2ZpbHRlcicsICdhY3Rpb24nLCAnZXhwb3J0J10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBRdWlja0ZpbHRlciBhcyBJUFRhYmxlSGVhZGVyUXVpY2tGaWx0ZXIgfSBmcm9tICdAcGFwZXJsZXNzL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFRhYmxlSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5QVGFibGVIZWFkZXIge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBvbmUgb2YgdGhlIHF1aWNrIGZpbHRlcnMgaXMgY2xpY2tlZFxuICAgKi9cbiAgcXVpY2tGaWx0ZXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJUFRhYmxlSGVhZGVyUXVpY2tGaWx0ZXI+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gdGhlIHF1ZXJ5IGNoYW5nZXNcbiAgICovXG4gIHF1ZXJ5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuIHRoZSBmaWx0ZXIgYnV0dG9uIGlzIGNsaWNrZWRcbiAgICovXG4gIGZpbHRlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bGw+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gdGhlIGFjdGlvbiBidXR0b24gaXMgY2xpY2tlZFxuICAgKi9cbiAgYWN0aW9uOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVsbD4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbmV2ZXIgdGhlIGV4cG9ydCBidXR0b24gaXMgY2xpY2tlZFxuICAgKi9cbiAgZXhwb3J0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZW5hYmxlSG92ZXInLCAnaXNMYXN0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtdGFibGUtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2VuYWJsZUhvdmVyJywgJ2lzTGFzdCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBUYWJsZVJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBUYWJsZVJvd0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBUYWJsZVJvdyBleHRlbmRzIENvbXBvbmVudHMuUFRhYmxlUm93IHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXRhYmxlLXJvdy1hY3Rpb25zLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBQVGFibGVSb3dBY3Rpb25zQ29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUFRhYmxlUm93QWN0aW9uc0NvbnRhaW5lckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBUYWJsZVJvd0FjdGlvbnNDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlBUYWJsZVJvd0FjdGlvbnNDb250YWluZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9uSWNvbicsICdhY3Rpb25JY29uRmxpcCcsICdhY3Rpb25JY29uUm90YXRlJywgJ2NvbnRlbnQnLCAnZW5hYmxlQWN0aW9uJywgJ2hlYWRlcicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwLXRvYXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3Rpb25JY29uJywgJ2FjdGlvbkljb25GbGlwJywgJ2FjdGlvbkljb25Sb3RhdGUnLCAnY29udGVudCcsICdlbmFibGVBY3Rpb24nLCAnaGVhZGVyJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRvYXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUFRvYXN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYWN0aW9uJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBUb2FzdCBleHRlbmRzIENvbXBvbmVudHMuUFRvYXN0IHtcbiAgLyoqXG4gICAqIEJ1dHRvbiBjbGljayBldmVudFxuICAgKi9cbiAgYWN0aW9uOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2lkJywgJ25hbWUnLCAncmVxdWlyZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2lkJywgJ25hbWUnLCAncmVxdWlyZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFBUb2dnbGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjaGVja2VkQ2hhbmdlJywgJ2luZGV0ZXJtaW5hdGVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuUFRvZ2dsZSB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuZXZlciB0aGUgY2hlY2tlZCBjaGFuZ2VzXG4gICAqL1xuICBjaGVja2VkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbmV2ZXIgdGhlIGluZGV0ZXJtaW5hdGUgY2hhbmdlc1xuICAgKi9cbiAgaW5kZXRlcm1pbmF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FuTWFudWFsbHlDbG9zZScsICdjb250ZW50JywgJ2VuYWJsZVVzZXJJbnB1dCcsICdvZmZzZXQnLCAncGxhY2VtZW50JywgJ3Nob3cnLCAnc3RyYXRlZ3knLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYW5NYW51YWxseUNsb3NlJywgJ2NvbnRlbnQnLCAnZW5hYmxlVXNlcklucHV0JywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAnc2hvdycsICdzdHJhdGVneScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFBUb29sdGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MUFRvb2x0aXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpc09wZW4nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUFRvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLlBUb29sdGlwIHtcbiAgLyoqXG4gICAqIE9wZW4gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBpc09wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuIl19