@porsche-design-system/components-angular 3.8.0-rc.0 → 3.9.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/CHANGELOG.md +45 -1
  2. package/esm/lib/components/accordion.wrapper.d.ts +3 -5
  3. package/esm/lib/components/banner.wrapper.d.ts +3 -5
  4. package/esm/lib/components/barrel.d.ts +1 -64
  5. package/esm/lib/components/button-group.wrapper.d.ts +2 -5
  6. package/esm/lib/components/button-pure.wrapper.d.ts +5 -6
  7. package/esm/lib/components/button-tile.wrapper.d.ts +2 -5
  8. package/esm/lib/components/button.wrapper.d.ts +5 -6
  9. package/esm/lib/components/carousel.wrapper.d.ts +3 -5
  10. package/esm/lib/components/checkbox-wrapper.wrapper.d.ts +2 -5
  11. package/esm/lib/components/content-wrapper.wrapper.d.ts +2 -5
  12. package/esm/lib/components/crest.wrapper.d.ts +2 -5
  13. package/esm/lib/components/display.wrapper.d.ts +2 -5
  14. package/esm/lib/components/divider.wrapper.d.ts +2 -5
  15. package/esm/lib/components/fieldset-wrapper.wrapper.d.ts +2 -5
  16. package/esm/lib/components/fieldset.wrapper.d.ts +2 -5
  17. package/esm/lib/components/flex-item.wrapper.d.ts +2 -5
  18. package/esm/lib/components/flex.wrapper.d.ts +2 -5
  19. package/esm/lib/components/flyout.wrapper.d.ts +3 -5
  20. package/esm/lib/components/grid-item.wrapper.d.ts +2 -5
  21. package/esm/lib/components/grid.wrapper.d.ts +2 -5
  22. package/esm/lib/components/heading.wrapper.d.ts +2 -5
  23. package/esm/lib/components/headline.wrapper.d.ts +2 -5
  24. package/esm/lib/components/icon.wrapper.d.ts +2 -5
  25. package/esm/lib/components/inline-notification.wrapper.d.ts +3 -5
  26. package/esm/lib/components/link-pure.wrapper.d.ts +2 -5
  27. package/esm/lib/components/link-social.wrapper.d.ts +2 -5
  28. package/esm/lib/components/link-tile-model-signature.wrapper.d.ts +2 -5
  29. package/esm/lib/components/link-tile.wrapper.d.ts +2 -5
  30. package/esm/lib/components/link.wrapper.d.ts +2 -5
  31. package/esm/lib/components/marque.wrapper.d.ts +2 -5
  32. package/esm/lib/components/modal.wrapper.d.ts +3 -5
  33. package/esm/lib/components/model-signature.wrapper.d.ts +2 -5
  34. package/esm/lib/components/multi-select-option.wrapper.d.ts +2 -5
  35. package/esm/lib/components/multi-select.wrapper.d.ts +3 -5
  36. package/esm/lib/components/pagination.wrapper.d.ts +3 -5
  37. package/esm/lib/components/pin-code.wrapper.d.ts +3 -5
  38. package/esm/lib/components/popover.wrapper.d.ts +2 -5
  39. package/esm/lib/components/radio-button-wrapper.wrapper.d.ts +2 -5
  40. package/esm/lib/components/scroller.wrapper.d.ts +2 -5
  41. package/esm/lib/components/segmented-control-item.wrapper.d.ts +2 -5
  42. package/esm/lib/components/segmented-control.wrapper.d.ts +3 -5
  43. package/esm/lib/components/select-wrapper.wrapper.d.ts +2 -5
  44. package/esm/lib/components/spinner.wrapper.d.ts +2 -5
  45. package/esm/lib/components/stepper-horizontal-item.wrapper.d.ts +2 -5
  46. package/esm/lib/components/stepper-horizontal.wrapper.d.ts +3 -5
  47. package/esm/lib/components/switch.wrapper.d.ts +3 -5
  48. package/esm/lib/components/table-body.wrapper.d.ts +2 -5
  49. package/esm/lib/components/table-cell.wrapper.d.ts +2 -5
  50. package/esm/lib/components/table-head-cell.wrapper.d.ts +2 -5
  51. package/esm/lib/components/table-head-row.wrapper.d.ts +2 -5
  52. package/esm/lib/components/table-head.wrapper.d.ts +2 -5
  53. package/esm/lib/components/table-row.wrapper.d.ts +2 -5
  54. package/esm/lib/components/table.wrapper.d.ts +6 -8
  55. package/esm/lib/components/tabs-bar.wrapper.d.ts +3 -5
  56. package/esm/lib/components/tabs-item.wrapper.d.ts +2 -5
  57. package/esm/lib/components/tabs.wrapper.d.ts +6 -8
  58. package/esm/lib/components/tag-dismissible.wrapper.d.ts +2 -5
  59. package/esm/lib/components/tag.wrapper.d.ts +2 -5
  60. package/esm/lib/components/text-field-wrapper.wrapper.d.ts +3 -5
  61. package/esm/lib/components/text-list-item.wrapper.d.ts +2 -5
  62. package/esm/lib/components/text-list.wrapper.d.ts +2 -5
  63. package/esm/lib/components/text.wrapper.d.ts +2 -5
  64. package/esm/lib/components/textarea-wrapper.wrapper.d.ts +2 -5
  65. package/esm/lib/components/toast.wrapper.d.ts +2 -5
  66. package/esm/lib/components/wordmark.wrapper.d.ts +2 -5
  67. package/esm/lib/types.d.ts +15 -0
  68. package/esm/porsche-design-system.module.d.ts +5 -1
  69. package/esm/public-api.d.ts +2 -2
  70. package/esm/utils.d.ts +26 -7
  71. package/esm2020/lib/components/accordion.wrapper.mjs +16 -31
  72. package/esm2020/lib/components/banner.wrapper.mjs +14 -31
  73. package/esm2020/lib/components/button-group.wrapper.mjs +10 -29
  74. package/esm2020/lib/components/button-pure.wrapper.mjs +10 -29
  75. package/esm2020/lib/components/button-tile.wrapper.mjs +10 -29
  76. package/esm2020/lib/components/button.wrapper.mjs +10 -29
  77. package/esm2020/lib/components/carousel.wrapper.mjs +16 -31
  78. package/esm2020/lib/components/checkbox-wrapper.wrapper.mjs +10 -29
  79. package/esm2020/lib/components/content-wrapper.wrapper.mjs +10 -29
  80. package/esm2020/lib/components/crest.wrapper.mjs +10 -29
  81. package/esm2020/lib/components/display.wrapper.mjs +10 -29
  82. package/esm2020/lib/components/divider.wrapper.mjs +10 -29
  83. package/esm2020/lib/components/fieldset-wrapper.wrapper.mjs +10 -29
  84. package/esm2020/lib/components/fieldset.wrapper.mjs +10 -29
  85. package/esm2020/lib/components/flex-item.wrapper.mjs +10 -29
  86. package/esm2020/lib/components/flex.wrapper.mjs +10 -29
  87. package/esm2020/lib/components/flyout.wrapper.mjs +14 -31
  88. package/esm2020/lib/components/grid-item.wrapper.mjs +10 -29
  89. package/esm2020/lib/components/grid.wrapper.mjs +10 -29
  90. package/esm2020/lib/components/heading.wrapper.mjs +10 -29
  91. package/esm2020/lib/components/headline.wrapper.mjs +10 -29
  92. package/esm2020/lib/components/icon.wrapper.mjs +10 -29
  93. package/esm2020/lib/components/inline-notification.wrapper.mjs +15 -31
  94. package/esm2020/lib/components/link-pure.wrapper.mjs +10 -29
  95. package/esm2020/lib/components/link-social.wrapper.mjs +10 -29
  96. package/esm2020/lib/components/link-tile-model-signature.wrapper.mjs +10 -29
  97. package/esm2020/lib/components/link-tile.wrapper.mjs +10 -29
  98. package/esm2020/lib/components/link.wrapper.mjs +10 -29
  99. package/esm2020/lib/components/marque.wrapper.mjs +10 -29
  100. package/esm2020/lib/components/modal.wrapper.mjs +16 -31
  101. package/esm2020/lib/components/model-signature.wrapper.mjs +10 -29
  102. package/esm2020/lib/components/multi-select-option.wrapper.mjs +10 -29
  103. package/esm2020/lib/components/multi-select.wrapper.mjs +14 -31
  104. package/esm2020/lib/components/pagination.wrapper.mjs +16 -31
  105. package/esm2020/lib/components/pin-code.wrapper.mjs +14 -31
  106. package/esm2020/lib/components/popover.wrapper.mjs +10 -29
  107. package/esm2020/lib/components/radio-button-wrapper.wrapper.mjs +10 -29
  108. package/esm2020/lib/components/scroller.wrapper.mjs +10 -29
  109. package/esm2020/lib/components/segmented-control-item.wrapper.mjs +10 -29
  110. package/esm2020/lib/components/segmented-control.wrapper.mjs +16 -31
  111. package/esm2020/lib/components/select-wrapper.wrapper.mjs +10 -29
  112. package/esm2020/lib/components/spinner.wrapper.mjs +10 -29
  113. package/esm2020/lib/components/stepper-horizontal-item.wrapper.mjs +10 -29
  114. package/esm2020/lib/components/stepper-horizontal.wrapper.mjs +16 -31
  115. package/esm2020/lib/components/switch.wrapper.mjs +16 -31
  116. package/esm2020/lib/components/table-body.wrapper.mjs +9 -25
  117. package/esm2020/lib/components/table-cell.wrapper.mjs +10 -29
  118. package/esm2020/lib/components/table-head-cell.wrapper.mjs +10 -29
  119. package/esm2020/lib/components/table-head-row.wrapper.mjs +9 -25
  120. package/esm2020/lib/components/table-head.wrapper.mjs +9 -25
  121. package/esm2020/lib/components/table-row.wrapper.mjs +9 -25
  122. package/esm2020/lib/components/table.wrapper.mjs +16 -31
  123. package/esm2020/lib/components/tabs-bar.wrapper.mjs +16 -31
  124. package/esm2020/lib/components/tabs-item.wrapper.mjs +10 -29
  125. package/esm2020/lib/components/tabs.wrapper.mjs +16 -31
  126. package/esm2020/lib/components/tag-dismissible.wrapper.mjs +10 -29
  127. package/esm2020/lib/components/tag.wrapper.mjs +10 -29
  128. package/esm2020/lib/components/text-field-wrapper.wrapper.mjs +14 -31
  129. package/esm2020/lib/components/text-list-item.wrapper.mjs +9 -25
  130. package/esm2020/lib/components/text-list.wrapper.mjs +10 -29
  131. package/esm2020/lib/components/text.wrapper.mjs +10 -29
  132. package/esm2020/lib/components/textarea-wrapper.wrapper.mjs +10 -29
  133. package/esm2020/lib/components/toast.wrapper.mjs +10 -29
  134. package/esm2020/lib/components/wordmark.wrapper.mjs +10 -29
  135. package/esm2020/lib/types.mjs +1 -1
  136. package/esm2020/porsche-design-system.module.mjs +22 -5
  137. package/esm2020/public-api.mjs +2 -1
  138. package/esm2020/utils.mjs +43 -39
  139. package/fesm2015/porsche-design-system-components-angular.mjs +717 -2038
  140. package/fesm2015/porsche-design-system-components-angular.mjs.map +1 -1
  141. package/fesm2020/porsche-design-system-components-angular.mjs +717 -1782
  142. package/fesm2020/porsche-design-system-components-angular.mjs.map +1 -1
  143. package/package.json +5 -4
@@ -1,35 +1,16 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { ChangeDetectionStrategy, Component } from '@angular/core';
8
- import { ProxyCmp } from '../../utils';
1
+ import { Component } from '@angular/core';
2
+ import { BaseComponentWithTheme } from '../../utils';
9
3
  import * as i0 from "@angular/core";
10
- const inputs = ['aria', 'href', 'size', 'target', 'theme'];
11
- let PWordmark = class PWordmark {
12
- constructor(c, r, z) {
13
- this.z = z;
14
- c.detach();
15
- this.el = r.nativeElement;
16
- }
17
- };
18
- PWordmark.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PWordmark, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
19
- PWordmark.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PWordmark, selector: "p-wordmark,[p-wordmark]", inputs: { aria: "aria", href: "href", size: "size", target: "target", theme: "theme" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
- PWordmark = __decorate([
21
- ProxyCmp({
22
- inputs
23
- })
24
- ], PWordmark);
25
- export { PWordmark };
4
+ export class PWordmark extends BaseComponentWithTheme {
5
+ }
6
+ PWordmark.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PWordmark, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
+ PWordmark.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PWordmark, selector: "p-wordmark,[p-wordmark]", inputs: { aria: "aria", href: "href", size: "size", target: "target", theme: "theme" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true });
26
8
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PWordmark, decorators: [{
27
9
  type: Component,
28
10
  args: [{
29
11
  selector: 'p-wordmark,[p-wordmark]',
30
- changeDetection: ChangeDetectionStrategy.OnPush,
31
- template: '<ng-content></ng-content>',
32
- inputs
12
+ template: '<ng-content />',
13
+ inputs: ['aria', 'href', 'size', 'target', 'theme']
33
14
  }]
34
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZG1hcmsud3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItd3JhcHBlci9zcmMvbGliL2NvbXBvbmVudHMvd29yZG1hcmsud3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFHdkMsTUFBTSxNQUFNLEdBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFXOUQsSUFBTSxTQUFTLEdBQWYsTUFBTSxTQUFTO0lBUXBCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7O3VHQVhVLFNBQVM7MkZBQVQsU0FBUyx1SkFIViwyQkFBMkI7QUFHMUIsU0FBUztJQVRyQixRQUFRLENBQUM7UUFDUixNQUFNO0tBQ1AsQ0FBQztHQU9XLFNBQVMsQ0FZckI7U0FaWSxTQUFTOzRGQUFULFNBQVM7a0JBTnJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLE1BQU07aUJBQ1AiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm94eUNtcCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB0eXBlIHsgU2VsZWN0ZWRBcmlhQXR0cmlidXRlcywgV29yZG1hcmtBcmlhQXR0cmlidXRlLCBXb3JkbWFya1NpemUsIFdvcmRtYXJrVGFyZ2V0LCBUaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgaW5wdXRzOiBzdHJpbmdbXSA9IFsnYXJpYScsICdocmVmJywgJ3NpemUnLCAndGFyZ2V0JywgJ3RoZW1lJ107XG5cbkBQcm94eUNtcCh7XG4gIGlucHV0c1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Atd29yZG1hcmssW3Atd29yZG1hcmtdJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0c1xufSlcbmV4cG9ydCBjbGFzcyBQV29yZG1hcmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBhcmlhPzogU2VsZWN0ZWRBcmlhQXR0cmlidXRlczxXb3JkbWFya0FyaWFBdHRyaWJ1dGU+O1xuICBocmVmPzogc3RyaW5nO1xuICBzaXplPzogV29yZG1hcmtTaXplO1xuICB0YXJnZXQ/OiBXb3JkbWFya1RhcmdldDtcbiAgdGhlbWU/OiBUaGVtZTtcblxuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufSJdfQ==
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZG1hcmsud3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItd3JhcHBlci9zcmMvbGliL2NvbXBvbmVudHMvd29yZG1hcmsud3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFRckQsTUFBTSxPQUFPLFNBQVUsU0FBUSxzQkFBc0I7O3VHQUF4QyxTQUFTOzJGQUFULFNBQVMsOEtBSFYsZ0JBQWdCOzRGQUdmLFNBQVM7a0JBTHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQztpQkFDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnRXaXRoVGhlbWUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdGVkQXJpYUF0dHJpYnV0ZXMsIFdvcmRtYXJrQXJpYUF0dHJpYnV0ZSwgV29yZG1hcmtTaXplLCBXb3JkbWFya1RhcmdldCwgVGhlbWUgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Atd29yZG1hcmssW3Atd29yZG1hcmtdJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudCAvPicsXG4gIGlucHV0czogWydhcmlhJywgJ2hyZWYnLCAnc2l6ZScsICd0YXJnZXQnLCAndGhlbWUnXVxufSlcbmV4cG9ydCBjbGFzcyBQV29yZG1hcmsgZXh0ZW5kcyBCYXNlQ29tcG9uZW50V2l0aFRoZW1lIHtcbiAgYXJpYT86IFNlbGVjdGVkQXJpYUF0dHJpYnV0ZXM8V29yZG1hcmtBcmlhQXR0cmlidXRlPjtcbiAgaHJlZj86IHN0cmluZztcbiAgc2l6ZT86IFdvcmRtYXJrU2l6ZTtcbiAgdGFyZ2V0PzogV29yZG1hcmtUYXJnZXQ7XG4gIGRlY2xhcmUgdGhlbWU/OiBUaGVtZTtcbn0iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXdyYXBwZXIvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyogQXV0byBHZW5lcmF0ZWQgQmVsb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9xdW90ZXMgKi9cbmV4cG9ydCB0eXBlIEJvb2xlYW5pc2ggPSBib29sZWFuIHwgXCJ0cnVlXCIgfCBcImZhbHNlXCI7XG5leHBvcnQgdHlwZSBBcmlhQXR0cmlidXRlcyA9IHtcblx0LyoqIElkZW50aWZpZXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZWxlbWVudCB3aGVuIERPTSBmb2N1cyBpcyBvbiBhIGNvbXBvc2l0ZSB3aWRnZXQsIHRleHRib3gsIGdyb3VwLCBvciBhcHBsaWNhdGlvbi4gKi9cblx0XCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIEluZGljYXRlcyB3aGV0aGVyIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMgd2lsbCBwcmVzZW50IGFsbCwgb3Igb25seSBwYXJ0cyBvZiwgdGhlIGNoYW5nZWQgcmVnaW9uIGJhc2VkIG9uIHRoZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBkZWZpbmVkIGJ5IHRoZSBhcmlhLXJlbGV2YW50IGF0dHJpYnV0ZS4gKi9cblx0XCJhcmlhLWF0b21pY1wiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIGlucHV0dGluZyB0ZXh0IGNvdWxkIHRyaWdnZXIgZGlzcGxheSBvZiBvbmUgb3IgbW9yZSBwcmVkaWN0aW9ucyBvZiB0aGUgdXNlcidzIGludGVuZGVkIHZhbHVlIGZvciBhbiBpbnB1dCBhbmQgc3BlY2lmaWVzIGhvdyBwcmVkaWN0aW9ucyB3b3VsZCBiZVxuXHQgKiBwcmVzZW50ZWQgaWYgdGhleSBhcmUgbWFkZS5cblx0ICovXG5cdFwiYXJpYS1hdXRvY29tcGxldGVcIj86IFwibm9uZVwiIHwgXCJpbmxpbmVcIiB8IFwibGlzdFwiIHwgXCJib3RoXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgYW4gZWxlbWVudCBpcyBiZWluZyBtb2RpZmllZCBhbmQgdGhhdCBhc3Npc3RpdmUgdGVjaG5vbG9naWVzIE1BWSB3YW50IHRvIHdhaXQgdW50aWwgdGhlIG1vZGlmaWNhdGlvbnMgYXJlIGNvbXBsZXRlIGJlZm9yZSBleHBvc2luZyB0aGVtIHRvIHRoZSB1c2VyLiAqL1xuXHQvKipcblx0ICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGxhYmVscyB0aGUgY3VycmVudCBlbGVtZW50LCB3aGljaCBpcyBpbnRlbmRlZCB0byBiZSBjb252ZXJ0ZWQgaW50byBCcmFpbGxlLlxuXHQgKiBAc2VlIGFyaWEtbGFiZWwuXG5cdCAqL1xuXHRcImFyaWEtYnJhaWxsZWxhYmVsXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgaHVtYW4tcmVhZGFibGUsIGF1dGhvci1sb2NhbGl6ZWQgYWJicmV2aWF0ZWQgZGVzY3JpcHRpb24gZm9yIHRoZSByb2xlIG9mIGFuIGVsZW1lbnQsIHdoaWNoIGlzIGludGVuZGVkIHRvIGJlIGNvbnZlcnRlZCBpbnRvIEJyYWlsbGUuXG5cdCAqIEBzZWUgYXJpYS1yb2xlZGVzY3JpcHRpb24uXG5cdCAqL1xuXHRcImFyaWEtYnJhaWxsZXJvbGVkZXNjcmlwdGlvblwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcImFyaWEtYnVzeVwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgY3VycmVudCBcImNoZWNrZWRcIiBzdGF0ZSBvZiBjaGVja2JveGVzLCByYWRpbyBidXR0b25zLCBhbmQgb3RoZXIgd2lkZ2V0cy5cblx0ICogQHNlZSBhcmlhLXByZXNzZWQgQHNlZSBhcmlhLXNlbGVjdGVkLlxuXHQgKi9cblx0XCJhcmlhLWNoZWNrZWRcIj86IGJvb2xlYW4gfCBcImZhbHNlXCIgfCBcIm1peGVkXCIgfCBcInRydWVcIiB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIGEgdGFibGUsIGdyaWQsIG9yIHRyZWVncmlkLlxuXHQgKiBAc2VlIGFyaWEtY29saW5kZXguXG5cdCAqL1xuXHRcImFyaWEtY29sY291bnRcIj86IG51bWJlciB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgYW4gZWxlbWVudCdzIGNvbHVtbiBpbmRleCBvciBwb3NpdGlvbiB3aXRoIHJlc3BlY3QgdG8gdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIHdpdGhpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLWNvbGNvdW50IEBzZWUgYXJpYS1jb2xzcGFuLlxuXHQgKi9cblx0XCJhcmlhLWNvbGluZGV4XCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgaHVtYW4gcmVhZGFibGUgdGV4dCBhbHRlcm5hdGl2ZSBvZiBhcmlhLWNvbGluZGV4LlxuXHQgKiBAc2VlIGFyaWEtcm93aW5kZXh0ZXh0LlxuXHQgKi9cblx0XCJhcmlhLWNvbGluZGV4dGV4dFwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgc3Bhbm5lZCBieSBhIGNlbGwgb3IgZ3JpZGNlbGwgd2l0aGluIGEgdGFibGUsIGdyaWQsIG9yIHRyZWVncmlkLlxuXHQgKiBAc2VlIGFyaWEtY29saW5kZXggQHNlZSBhcmlhLXJvd3NwYW4uXG5cdCAqL1xuXHRcImFyaWEtY29sc3BhblwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSWRlbnRpZmllcyB0aGUgZWxlbWVudCAob3IgZWxlbWVudHMpIHdob3NlIGNvbnRlbnRzIG9yIHByZXNlbmNlIGFyZSBjb250cm9sbGVkIGJ5IHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqIEBzZWUgYXJpYS1vd25zLlxuXHQgKi9cblx0XCJhcmlhLWNvbnRyb2xzXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhlIGVsZW1lbnQgdGhhdCByZXByZXNlbnRzIHRoZSBjdXJyZW50IGl0ZW0gd2l0aGluIGEgY29udGFpbmVyIG9yIHNldCBvZiByZWxhdGVkIGVsZW1lbnRzLiAqL1xuXHRcImFyaWEtY3VycmVudFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwidHJ1ZVwiIHwgXCJwYWdlXCIgfCBcInN0ZXBcIiB8IFwibG9jYXRpb25cIiB8IFwiZGF0ZVwiIHwgXCJ0aW1lXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IChvciBlbGVtZW50cykgdGhhdCBkZXNjcmliZXMgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWxhYmVsbGVkYnlcblx0ICovXG5cdFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGRlc2NyaWJlcyBvciBhbm5vdGF0ZXMgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICogQHNlZSByZWxhdGVkIGFyaWEtZGVzY3JpYmVkYnkuXG5cdCAqL1xuXHRcImFyaWEtZGVzY3JpcHRpb25cIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIElkZW50aWZpZXMgdGhlIGVsZW1lbnQgdGhhdCBwcm92aWRlcyBhIGRldGFpbGVkLCBleHRlbmRlZCBkZXNjcmlwdGlvbiBmb3IgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWRldGFpbHNcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGF0IHRoZSBlbGVtZW50IGlzIHBlcmNlaXZhYmxlIGJ1dCBkaXNhYmxlZCwgc28gaXQgaXMgbm90IGVkaXRhYmxlIG9yIG90aGVyd2lzZSBvcGVyYWJsZS5cblx0ICogQHNlZSBhcmlhLWhpZGRlbiBAc2VlIGFyaWEtcmVhZG9ubHkuXG5cdCAqL1xuXHRcImFyaWEtZGlzYWJsZWRcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hhdCBmdW5jdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCB3aGVuIGEgZHJhZ2dlZCBvYmplY3QgaXMgcmVsZWFzZWQgb24gdGhlIGRyb3AgdGFyZ2V0LlxuXHQgKiBAZGVwcmVjYXRlZCBpbiBBUklBIDEuMVxuXHQgKi9cblx0XCJhcmlhLWRyb3BlZmZlY3RcIj86IFwibm9uZVwiIHwgXCJjb3B5XCIgfCBcImV4ZWN1dGVcIiB8IFwibGlua1wiIHwgXCJtb3ZlXCIgfCBcInBvcHVwXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IHRoYXQgcHJvdmlkZXMgYW4gZXJyb3IgbWVzc2FnZSBmb3IgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWludmFsaWQgQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWVycm9ybWVzc2FnZVwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQsIG9yIGFub3RoZXIgZ3JvdXBpbmcgZWxlbWVudCBpdCBjb250cm9scywgaXMgY3VycmVudGx5IGV4cGFuZGVkIG9yIGNvbGxhcHNlZC4gKi9cblx0XCJhcmlhLWV4cGFuZGVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSWRlbnRpZmllcyB0aGUgbmV4dCBlbGVtZW50IChvciBlbGVtZW50cykgaW4gYW4gYWx0ZXJuYXRlIHJlYWRpbmcgb3JkZXIgb2YgY29udGVudCB3aGljaCwgYXQgdGhlIHVzZXIncyBkaXNjcmV0aW9uLFxuXHQgKiBhbGxvd3MgYXNzaXN0aXZlIHRlY2hub2xvZ3kgdG8gb3ZlcnJpZGUgdGhlIGdlbmVyYWwgZGVmYXVsdCBvZiByZWFkaW5nIGluIGRvY3VtZW50IHNvdXJjZSBvcmRlci5cblx0ICovXG5cdFwiYXJpYS1mbG93dG9cIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyBhbiBlbGVtZW50J3MgXCJncmFiYmVkXCIgc3RhdGUgaW4gYSBkcmFnLWFuZC1kcm9wIG9wZXJhdGlvbi5cblx0ICogQGRlcHJlY2F0ZWQgaW4gQVJJQSAxLjFcblx0ICovXG5cdFwiYXJpYS1ncmFiYmVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHRoZSBhdmFpbGFiaWxpdHkgYW5kIHR5cGUgb2YgaW50ZXJhY3RpdmUgcG9wdXAgZWxlbWVudCwgc3VjaCBhcyBtZW51IG9yIGRpYWxvZywgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGFuIGVsZW1lbnQuICovXG5cdFwiYXJpYS1oYXNwb3B1cFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwidHJ1ZVwiIHwgXCJtZW51XCIgfCBcImxpc3Rib3hcIiB8IFwidHJlZVwiIHwgXCJncmlkXCIgfCBcImRpYWxvZ1wiIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgZXhwb3NlZCB0byBhbiBhY2Nlc3NpYmlsaXR5IEFQSS5cblx0ICogQHNlZSBhcmlhLWRpc2FibGVkLlxuXHQgKi9cblx0XCJhcmlhLWhpZGRlblwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgZW50ZXJlZCB2YWx1ZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuXHQgKiBAc2VlIGFyaWEtZXJyb3JtZXNzYWdlLlxuXHQgKi9cblx0XCJhcmlhLWludmFsaWRcIj86IGJvb2xlYW4gfCBcImZhbHNlXCIgfCBcInRydWVcIiB8IFwiZ3JhbW1hclwiIHwgXCJzcGVsbGluZ1wiIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIGtleWJvYXJkIHNob3J0Y3V0cyB0aGF0IGFuIGF1dGhvciBoYXMgaW1wbGVtZW50ZWQgdG8gYWN0aXZhdGUgb3IgZ2l2ZSBmb2N1cyB0byBhbiBlbGVtZW50LiAqL1xuXHRcImFyaWEta2V5c2hvcnRjdXRzXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgc3RyaW5nIHZhbHVlIHRoYXQgbGFiZWxzIHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqIEBzZWUgYXJpYS1sYWJlbGxlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWxhYmVsXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IChvciBlbGVtZW50cykgdGhhdCBsYWJlbHMgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICogQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWxhYmVsbGVkYnlcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIERlZmluZXMgdGhlIGhpZXJhcmNoaWNhbCBsZXZlbCBvZiBhbiBlbGVtZW50IHdpdGhpbiBhIHN0cnVjdHVyZS4gKi9cblx0XCJhcmlhLWxldmVsXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IHdpbGwgYmUgdXBkYXRlZCwgYW5kIGRlc2NyaWJlcyB0aGUgdHlwZXMgb2YgdXBkYXRlcyB0aGUgdXNlciBhZ2VudHMsIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMsIGFuZCB1c2VyIGNhbiBleHBlY3QgZnJvbSB0aGUgbGl2ZSByZWdpb24uICovXG5cdFwiYXJpYS1saXZlXCI/OiBcIm9mZlwiIHwgXCJhc3NlcnRpdmVcIiB8IFwicG9saXRlXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBlbGVtZW50IGlzIG1vZGFsIHdoZW4gZGlzcGxheWVkLiAqL1xuXHRcImFyaWEtbW9kYWxcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhIHRleHQgYm94IGFjY2VwdHMgbXVsdGlwbGUgbGluZXMgb2YgaW5wdXQgb3Igb25seSBhIHNpbmdsZSBsaW5lLiAqL1xuXHRcImFyaWEtbXVsdGlsaW5lXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHRoYXQgdGhlIHVzZXIgbWF5IHNlbGVjdCBtb3JlIHRoYW4gb25lIGl0ZW0gZnJvbSB0aGUgY3VycmVudCBzZWxlY3RhYmxlIGRlc2NlbmRhbnRzLiAqL1xuXHRcImFyaWEtbXVsdGlzZWxlY3RhYmxlXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQncyBvcmllbnRhdGlvbiBpcyBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgb3IgdW5rbm93bi9hbWJpZ3VvdXMuICovXG5cdFwiYXJpYS1vcmllbnRhdGlvblwiPzogXCJob3Jpem9udGFsXCIgfCBcInZlcnRpY2FsXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIGFuIGVsZW1lbnQgKG9yIGVsZW1lbnRzKSBpbiBvcmRlciB0byBkZWZpbmUgYSB2aXN1YWwsIGZ1bmN0aW9uYWwsIG9yIGNvbnRleHR1YWwgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcFxuXHQgKiBiZXR3ZWVuIERPTSBlbGVtZW50cyB3aGVyZSB0aGUgRE9NIGhpZXJhcmNoeSBjYW5ub3QgYmUgdXNlZCB0byByZXByZXNlbnQgdGhlIHJlbGF0aW9uc2hpcC5cblx0ICogQHNlZSBhcmlhLWNvbnRyb2xzLlxuXHQgKi9cblx0XCJhcmlhLW93bnNcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgYSBzaG9ydCBoaW50IChhIHdvcmQgb3Igc2hvcnQgcGhyYXNlKSBpbnRlbmRlZCB0byBhaWQgdGhlIHVzZXIgd2l0aCBkYXRhIGVudHJ5IHdoZW4gdGhlIGNvbnRyb2wgaGFzIG5vIHZhbHVlLlxuXHQgKiBBIGhpbnQgY291bGQgYmUgYSBzYW1wbGUgdmFsdWUgb3IgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0XCJhcmlhLXBsYWNlaG9sZGVyXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGFuIGVsZW1lbnQncyBudW1iZXIgb3IgcG9zaXRpb24gaW4gdGhlIGN1cnJlbnQgc2V0IG9mIGxpc3RpdGVtcyBvciB0cmVlaXRlbXMuIE5vdCByZXF1aXJlZCBpZiBhbGwgZWxlbWVudHMgaW4gdGhlIHNldCBhcmUgcHJlc2VudCBpbiB0aGUgRE9NLlxuXHQgKiBAc2VlIGFyaWEtc2V0c2l6ZS5cblx0ICovXG5cdFwiYXJpYS1wb3NpbnNldFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoZSBjdXJyZW50IFwicHJlc3NlZFwiIHN0YXRlIG9mIHRvZ2dsZSBidXR0b25zLlxuXHQgKiBAc2VlIGFyaWEtY2hlY2tlZCBAc2VlIGFyaWEtc2VsZWN0ZWQuXG5cdCAqL1xuXHRcImFyaWEtcHJlc3NlZFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwibWl4ZWRcIiB8IFwidHJ1ZVwiIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgaXMgbm90IGVkaXRhYmxlLCBidXQgaXMgb3RoZXJ3aXNlIG9wZXJhYmxlLlxuXHQgKiBAc2VlIGFyaWEtZGlzYWJsZWQuXG5cdCAqL1xuXHRcImFyaWEtcmVhZG9ubHlcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hhdCBub3RpZmljYXRpb25zIHRoZSB1c2VyIGFnZW50IHdpbGwgdHJpZ2dlciB3aGVuIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2l0aGluIGEgbGl2ZSByZWdpb24gaXMgbW9kaWZpZWQuXG5cdCAqIEBzZWUgYXJpYS1hdG9taWMuXG5cdCAqL1xuXHRcImFyaWEtcmVsZXZhbnRcIj86IFwiYWRkaXRpb25zXCIgfCBcImFkZGl0aW9ucyByZW1vdmFsc1wiIHwgXCJhZGRpdGlvbnMgdGV4dFwiIHwgXCJhbGxcIiB8IFwicmVtb3ZhbHNcIiB8IFwicmVtb3ZhbHMgYWRkaXRpb25zXCIgfCBcInJlbW92YWxzIHRleHRcIiB8IFwidGV4dFwiIHwgXCJ0ZXh0IGFkZGl0aW9uc1wiIHwgXCJ0ZXh0IHJlbW92YWxzXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCB1c2VyIGlucHV0IGlzIHJlcXVpcmVkIG9uIHRoZSBlbGVtZW50IGJlZm9yZSBhIGZvcm0gbWF5IGJlIHN1Ym1pdHRlZC4gKi9cblx0XCJhcmlhLXJlcXVpcmVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyBhIGh1bWFuLXJlYWRhYmxlLCBhdXRob3ItbG9jYWxpemVkIGRlc2NyaXB0aW9uIGZvciB0aGUgcm9sZSBvZiBhbiBlbGVtZW50LiAqL1xuXHRcImFyaWEtcm9sZWRlc2NyaXB0aW9uXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cyBpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLXJvd2luZGV4LlxuXHQgKi9cblx0XCJhcmlhLXJvd2NvdW50XCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGFuIGVsZW1lbnQncyByb3cgaW5kZXggb3IgcG9zaXRpb24gd2l0aCByZXNwZWN0IHRvIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cyB3aXRoaW4gYSB0YWJsZSwgZ3JpZCwgb3IgdHJlZWdyaWQuXG5cdCAqIEBzZWUgYXJpYS1yb3djb3VudCBAc2VlIGFyaWEtcm93c3Bhbi5cblx0ICovXG5cdFwiYXJpYS1yb3dpbmRleFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyBhIGh1bWFuIHJlYWRhYmxlIHRleHQgYWx0ZXJuYXRpdmUgb2YgYXJpYS1yb3dpbmRleC5cblx0ICogQHNlZSBhcmlhLWNvbGluZGV4dGV4dC5cblx0ICovXG5cdFwiYXJpYS1yb3dpbmRleHRleHRcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIG51bWJlciBvZiByb3dzIHNwYW5uZWQgYnkgYSBjZWxsIG9yIGdyaWRjZWxsIHdpdGhpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLXJvd2luZGV4IEBzZWUgYXJpYS1jb2xzcGFuLlxuXHQgKi9cblx0XCJhcmlhLXJvd3NwYW5cIj86IG51bWJlciB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgY3VycmVudCBcInNlbGVjdGVkXCIgc3RhdGUgb2YgdmFyaW91cyB3aWRnZXRzLlxuXHQgKiBAc2VlIGFyaWEtY2hlY2tlZCBAc2VlIGFyaWEtcHJlc3NlZC5cblx0ICovXG5cdFwiYXJpYS1zZWxlY3RlZFwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgY3VycmVudCBzZXQgb2YgbGlzdGl0ZW1zIG9yIHRyZWVpdGVtcy4gTm90IHJlcXVpcmVkIGlmIGFsbCBlbGVtZW50cyBpbiB0aGUgc2V0IGFyZSBwcmVzZW50IGluIHRoZSBET00uXG5cdCAqIEBzZWUgYXJpYS1wb3NpbnNldC5cblx0ICovXG5cdFwiYXJpYS1zZXRzaXplXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgaWYgaXRlbXMgaW4gYSB0YWJsZSBvciBncmlkIGFyZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgb3JkZXIuICovXG5cdFwiYXJpYS1zb3J0XCI/OiBcIm5vbmVcIiB8IFwiYXNjZW5kaW5nXCIgfCBcImRlc2NlbmRpbmdcIiB8IFwib3RoZXJcIiB8IHVuZGVmaW5lZDtcblx0LyoqIERlZmluZXMgdGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBmb3IgYSByYW5nZSB3aWRnZXQuICovXG5cdFwiYXJpYS12YWx1ZW1heFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyB0aGUgbWluaW11bSBhbGxvd2VkIHZhbHVlIGZvciBhIHJhbmdlIHdpZGdldC4gKi9cblx0XCJhcmlhLXZhbHVlbWluXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBjdXJyZW50IHZhbHVlIGZvciBhIHJhbmdlIHdpZGdldC5cblx0ICogQHNlZSBhcmlhLXZhbHVldGV4dC5cblx0ICovXG5cdFwiYXJpYS12YWx1ZW5vd1wiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyB0aGUgaHVtYW4gcmVhZGFibGUgdGV4dCBhbHRlcm5hdGl2ZSBvZiBhcmlhLXZhbHVlbm93IGZvciBhIHJhbmdlIHdpZGdldC4gKi9cblx0XCJhcmlhLXZhbHVldGV4dFwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKiogQWxsIHRoZSBXQUktQVJJQSAxLjEgcm9sZSBhdHRyaWJ1dGUgdmFsdWVzIGZyb20gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLTEuMS8jcm9sZV9kZWZpbml0aW9ucyAqL1xuXHRyb2xlPzogQXJpYVJvbGU7XG59O1xuZXhwb3J0IHR5cGUgQXJpYVJvbGUgPSBcImFsZXJ0XCIgfCBcImFsZXJ0ZGlhbG9nXCIgfCBcImFwcGxpY2F0aW9uXCIgfCBcImFydGljbGVcIiB8IFwiYmFubmVyXCIgfCBcImJ1dHRvblwiIHwgXCJjZWxsXCIgfCBcImNoZWNrYm94XCIgfCBcImNvbHVtbmhlYWRlclwiIHwgXCJjb21ib2JveFwiIHwgXCJjb21wbGVtZW50YXJ5XCIgfCBcImNvbnRlbnRpbmZvXCIgfCBcImRlZmluaXRpb25cIiB8IFwiZGlhbG9nXCIgfCBcImRpcmVjdG9yeVwiIHwgXCJkb2N1bWVudFwiIHwgXCJmZWVkXCIgfCBcImZpZ3VyZVwiIHwgXCJmb3JtXCIgfCBcImdyaWRcIiB8IFwiZ3JpZGNlbGxcIiB8IFwiZ3JvdXBcIiB8IFwiaGVhZGluZ1wiIHwgXCJpbWdcIiB8IFwibGlua1wiIHwgXCJsaXN0XCIgfCBcImxpc3Rib3hcIiB8IFwibGlzdGl0ZW1cIiB8IFwibG9nXCIgfCBcIm1haW5cIiB8IFwibWFycXVlZVwiIHwgXCJtYXRoXCIgfCBcIm1lbnVcIiB8IFwibWVudWJhclwiIHwgXCJtZW51aXRlbVwiIHwgXCJtZW51aXRlbWNoZWNrYm94XCIgfCBcIm1lbnVpdGVtcmFkaW9cIiB8IFwibmF2aWdhdGlvblwiIHwgXCJub25lXCIgfCBcIm5vdGVcIiB8IFwib3B0aW9uXCIgfCBcInByZXNlbnRhdGlvblwiIHwgXCJwcm9ncmVzc2JhclwiIHwgXCJyYWRpb1wiIHwgXCJyYWRpb2dyb3VwXCIgfCBcInJlZ2lvblwiIHwgXCJyb3dcIiB8IFwicm93Z3JvdXBcIiB8IFwicm93aGVhZGVyXCIgfCBcInNjcm9sbGJhclwiIHwgXCJzZWFyY2hcIiB8IFwic2VhcmNoYm94XCIgfCBcInNlcGFyYXRvclwiIHwgXCJzbGlkZXJcIiB8IFwic3BpbmJ1dHRvblwiIHwgXCJzdGF0dXNcIiB8IFwic3dpdGNoXCIgfCBcInRhYlwiIHwgXCJ0YWJsZVwiIHwgXCJ0YWJsaXN0XCIgfCBcInRhYnBhbmVsXCIgfCBcInRlcm1cIiB8IFwidGV4dGJveFwiIHwgXCJ0aW1lclwiIHwgXCJ0b29sYmFyXCIgfCBcInRvb2x0aXBcIiB8IFwidHJlZVwiIHwgXCJ0cmVlZ3JpZFwiIHwgXCJ0cmVlaXRlbVwiO1xuZGVjbGFyZSBjb25zdCBJQ09OX05BTUVTOiByZWFkb25seSBbXG5cdFwiMzYwXCIsXG5cdFwiYWNjZXNzaWJpbGl0eVwiLFxuXHRcImFjdGl2ZS1jYWJpbi12ZW50aWxhdGlvblwiLFxuXHRcImFkZFwiLFxuXHRcImFkanVzdFwiLFxuXHRcImFycm93LWRvdWJsZS1kb3duXCIsXG5cdFwiYXJyb3ctZG91YmxlLWxlZnRcIixcblx0XCJhcnJvdy1kb3VibGUtcmlnaHRcIixcblx0XCJhcnJvdy1kb3VibGUtdXBcIixcblx0XCJhcnJvdy1kb3duXCIsXG5cdFwiYXJyb3ctZmlyc3RcIixcblx0XCJhcnJvdy1oZWFkLWRvd25cIixcblx0XCJhcnJvdy1oZWFkLWxlZnRcIixcblx0XCJhcnJvdy1oZWFkLXJpZ2h0XCIsXG5cdFwiYXJyb3ctaGVhZC11cFwiLFxuXHRcImFycm93LWxhc3RcIixcblx0XCJhcnJvdy1sZWZ0XCIsXG5cdFwiYXJyb3ctcmlnaHRcIixcblx0XCJhcnJvdy11cFwiLFxuXHRcImF1Z21lbnRlZC1yZWFsaXR5XCIsXG5cdFwiYmF0dGVyeS1lbXB0eVwiLFxuXHRcImJhdHRlcnktZnVsbFwiLFxuXHRcImJlbGxcIixcblx0XCJib29rbWFya1wiLFxuXHRcImJyb2FkY2FzdFwiLFxuXHRcImNhbGN1bGF0b3JcIixcblx0XCJjYWxlbmRhclwiLFxuXHRcImNhbWVyYVwiLFxuXHRcImNhclwiLFxuXHRcImNhci1iYXR0ZXJ5XCIsXG5cdFwiY2FyZFwiLFxuXHRcImNoYXJnaW5nLWFjdGl2ZVwiLFxuXHRcImNoYXJnaW5nLXN0YXRlXCIsXG5cdFwiY2hhcmdpbmctc3RhdGlvblwiLFxuXHRcImNoYXJ0XCIsXG5cdFwiY2hhdFwiLFxuXHRcImNoZWNrXCIsXG5cdFwiY2l0eVwiLFxuXHRcImNsaW1hdGVcIixcblx0XCJjbGltYXRlLWNvbnRyb2xcIixcblx0XCJjbG9ja1wiLFxuXHRcImNsb3NlXCIsXG5cdFwiY2xvc2VkLWNhcHRpb25cIixcblx0XCJjbzItZW1pc3Npb25cIixcblx0XCJjb21wYXJlXCIsXG5cdFwiY29uZmlndXJhdGVcIixcblx0XCJjb3B5XCIsXG5cdFwiY291bnRyeS1yb2FkXCIsXG5cdFwiY3ViaWMtY2FwYWNpdHlcIixcblx0XCJkZWxldGVcIixcblx0XCJkaXNhYmxlXCIsXG5cdFwiZG9jdW1lbnRcIixcblx0XCJkb3dubG9hZFwiLFxuXHRcImR1cmF0aW9uXCIsXG5cdFwiZWRpdFwiLFxuXHRcImVtYWlsXCIsXG5cdFwiZXJyb3ItZmlsbGVkXCIsXG5cdFwiZXhjbGFtYXRpb25cIixcblx0XCJleHRlcm5hbFwiLFxuXHRcImZpbHRlclwiLFxuXHRcImZpbmdlcnByaW50XCIsXG5cdFwiZmxhc2hcIixcblx0XCJmdWVsLXN0YXRpb25cIixcblx0XCJnYXJhZ2VcIixcblx0XCJnaWZ0XCIsXG5cdFwiZ2xvYmVcIixcblx0XCJncmlkXCIsXG5cdFwiaGVhcnRcIixcblx0XCJoZWFydC1maWxsZWRcIixcblx0XCJoaWdod2F5XCIsXG5cdFwiaG9tZVwiLFxuXHRcImhvcm5cIixcblx0XCJpbWFnZVwiLFxuXHRcImluY3JlYXNlXCIsXG5cdFwiaW5mb3JtYXRpb25cIixcblx0XCJpbmZvcm1hdGlvbi1maWxsZWRcIixcblx0XCJrZXlcIixcblx0XCJsZWFmXCIsXG5cdFwibGVhdGhlclwiLFxuXHRcImxpZ2h0XCIsXG5cdFwibGlzdFwiLFxuXHRcImxvY2F0ZVwiLFxuXHRcImxvY2tcIixcblx0XCJsb2NrLW9wZW5cIixcblx0XCJsb2dvLWFwcGxlLXBvZGNhc3RcIixcblx0XCJsb2dvLWJhaWR1XCIsXG5cdFwibG9nby1kZWxpY2lvdXNcIixcblx0XCJsb2dvLWRpZ2dcIixcblx0XCJsb2dvLWZhY2Vib29rXCIsXG5cdFwibG9nby1mb3Vyc3F1YXJlXCIsXG5cdFwibG9nby1nbWFpbFwiLFxuXHRcImxvZ28tZ29vZ2xlXCIsXG5cdFwibG9nby1oYXRlbmFcIixcblx0XCJsb2dvLWluc3RhZ3JhbVwiLFxuXHRcImxvZ28ta2FpeGluXCIsXG5cdFwibG9nby1rYWthb3RhbGtcIixcblx0XCJsb2dvLWxpbmtlZGluXCIsXG5cdFwibG9nby1uYXZlclwiLFxuXHRcImxvZ28tcGludGVyZXN0XCIsXG5cdFwibG9nby1xcVwiLFxuXHRcImxvZ28tcXEtc2hhcmVcIixcblx0XCJsb2dvLXJlZGRpdFwiLFxuXHRcImxvZ28tc2t5cm9ja1wiLFxuXHRcImxvZ28tc29odVwiLFxuXHRcImxvZ28tc3BvdGlmeVwiLFxuXHRcImxvZ28tdGVjZW50XCIsXG5cdFwibG9nby10ZWxlZ3JhbVwiLFxuXHRcImxvZ28tdGlrdG9rXCIsXG5cdFwibG9nby10dW1ibHJcIixcblx0XCJsb2dvLXR3aXR0ZXJcIixcblx0XCJsb2dvLXZpYmVyXCIsXG5cdFwibG9nby12a1wiLFxuXHRcImxvZ28td2VjaGF0XCIsXG5cdFwibG9nby13ZWlib1wiLFxuXHRcImxvZ28td2hhdHNhcHBcIixcblx0XCJsb2dvLXhpbmdcIixcblx0XCJsb2dvLXlhaG9vXCIsXG5cdFwibG9nby15b3VrdVwiLFxuXHRcImxvZ28teW91dHViZVwiLFxuXHRcImxvZ291dFwiLFxuXHRcIm1hcFwiLFxuXHRcIm1lbnUtZG90cy1ob3Jpem9udGFsXCIsXG5cdFwibWVudS1kb3RzLXZlcnRpY2FsXCIsXG5cdFwibWVudS1saW5lc1wiLFxuXHRcIm1pbnVzXCIsXG5cdFwibW9iaWxlXCIsXG5cdFwibW9vblwiLFxuXHRcIm9pbC1jYW5cIixcblx0XCJwYXJraW5nLWJyYWtlXCIsXG5cdFwicGFya2luZy1saWdodFwiLFxuXHRcInBhdXNlXCIsXG5cdFwicGhvbmVcIixcblx0XCJwaW5cIixcblx0XCJwaW4tZmlsbGVkXCIsXG5cdFwicGxheVwiLFxuXHRcInBsdWdcIixcblx0XCJwbHVzXCIsXG5cdFwicHJlaGVhdGluZ1wiLFxuXHRcInByaW50ZXJcIixcblx0XCJwdXJjaGFzZVwiLFxuXHRcInB1c2gtcGluXCIsXG5cdFwicHVzaC1waW4tb2ZmXCIsXG5cdFwicXJcIixcblx0XCJxdWVzdGlvblwiLFxuXHRcInJhY2luZy1mbGFnXCIsXG5cdFwicmVmcmVzaFwiLFxuXHRcInJlcGxheVwiLFxuXHRcInJlc2V0XCIsXG5cdFwicm9vZi1jbG9zZWRcIixcblx0XCJyb29mLW9wZW5cIixcblx0XCJyb3V0ZVwiLFxuXHRcInJzc1wiLFxuXHRcInNhdmVcIixcblx0XCJzY3JlZW5cIixcblx0XCJzZWFyY2hcIixcblx0XCJzZW5kXCIsXG5cdFwic2hhcmVcIixcblx0XCJzaG9wcGluZy1iYWdcIixcblx0XCJzaG9wcGluZy1iYWctZmlsbGVkXCIsXG5cdFwic2hvcHBpbmctY2FydFwiLFxuXHRcInNob3BwaW5nLWNhcnQtZmlsbGVkXCIsXG5cdFwic2lkZWxpZ2h0c1wiLFxuXHRcInNub3dmbGFrZVwiLFxuXHRcInNvcnRcIixcblx0XCJzdGFja1wiLFxuXHRcInN0YXJcIixcblx0XCJzdGVlcmluZy13aGVlbFwiLFxuXHRcInN0b3B3YXRjaFwiLFxuXHRcInN1YnRyYWN0XCIsXG5cdFwic3VjY2Vzc1wiLFxuXHRcInN1Y2Nlc3MtZmlsbGVkXCIsXG5cdFwic3VuXCIsXG5cdFwic3dpdGNoXCIsXG5cdFwidGFibGV0XCIsXG5cdFwidGFjaG9tZXRlclwiLFxuXHRcInRpcmVcIixcblx0XCJ0cnVja1wiLFxuXHRcInVwbG9hZFwiLFxuXHRcInVzZXJcIixcblx0XCJ1c2VyLWZpbGxlZFwiLFxuXHRcInVzZXItZ3JvdXBcIixcblx0XCJ1c2VyLW1hbnVhbFwiLFxuXHRcInZpZGVvXCIsXG5cdFwidmlld1wiLFxuXHRcInZpZXctb2ZmXCIsXG5cdFwidm9sdW1lLW9mZlwiLFxuXHRcInZvbHVtZS11cFwiLFxuXHRcIndhcm5pbmdcIixcblx0XCJ3YXJuaW5nLWZpbGxlZFwiLFxuXHRcIndlaWdodFwiLFxuXHRcIndpZmlcIixcblx0XCJ3b3JrXCIsXG5cdFwid3JlbmNoXCIsXG5cdFwid3JlbmNoZXNcIixcblx0XCJ6b29tLWluXCIsXG5cdFwiem9vbS1vdXRcIlxuXTtcbmV4cG9ydCB0eXBlIEljb25OYW1lID0gdHlwZW9mIElDT05fTkFNRVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRk9STV9TVEFURVM6IHJlYWRvbmx5IFtcblx0XCJub25lXCIsXG5cdFwiZXJyb3JcIixcblx0XCJzdWNjZXNzXCJcbl07XG5leHBvcnQgdHlwZSBGb3JtU3RhdGUgPSB0eXBlb2YgRk9STV9TVEFURVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQlVUVE9OX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIixcblx0XCJhcmlhLWV4cGFuZGVkXCIsXG5cdFwiYXJpYS1wcmVzc2VkXCIsXG5cdFwiYXJpYS1oYXNwb3B1cFwiXG5dO1xuZXhwb3J0IHR5cGUgQnV0dG9uQXJpYUF0dHJpYnV0ZSA9IHR5cGVvZiBCVVRUT05fQVJJQV9BVFRSSUJVVEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IExJTktfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiLFxuXHRcImFyaWEtY3VycmVudFwiXG5dO1xuZXhwb3J0IHR5cGUgTGlua0FyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIExJTktfQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBicmVha3BvaW50czogcmVhZG9ubHkgW1xuXHRcImJhc2VcIixcblx0XCJ4c1wiLFxuXHRcInNcIixcblx0XCJtXCIsXG5cdFwibFwiLFxuXHRcInhsXCIsXG5cdFwieHhsXCJcbl07XG5leHBvcnQgdHlwZSBCcmVha3BvaW50ID0gKHR5cGVvZiBicmVha3BvaW50cylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEJyZWFrcG9pbnRWYWx1ZXM8VD4gPSB7XG5cdFtrZXkgaW4gQnJlYWtwb2ludF0/OiBUO1xufSAmIHtcblx0YmFzZTogVDtcbn07XG5leHBvcnQgdHlwZSBCcmVha3BvaW50Q3VzdG9taXphYmxlPFQ+ID0gVCB8IEJyZWFrcG9pbnRWYWx1ZXM8VD4gfCBzdHJpbmc7XG5kZWNsYXJlIGNvbnN0IFRIRU1FUzogcmVhZG9ubHkgW1xuXHRcImxpZ2h0XCIsXG5cdFwiZGFya1wiLFxuXHRcImF1dG9cIlxuXTtcbmV4cG9ydCB0eXBlIFRoZW1lID0gKHR5cGVvZiBUSEVNRVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRJTEVfQVNQRUNUX1JBVElPUzogcmVhZG9ubHkgW1xuXHRcIjE6MVwiLFxuXHRcIjQ6M1wiLFxuXHRcIjM6NFwiLFxuXHRcIjE2OjlcIixcblx0XCI5OjE2XCJcbl07XG5leHBvcnQgdHlwZSBUaWxlQXNwZWN0UmF0aW8gPSAodHlwZW9mIFRJTEVfQVNQRUNUX1JBVElPUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVElMRV9TSVpFUzogcmVhZG9ubHkgW1xuXHRcImRlZmF1bHRcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBUaWxlU2l6ZSA9ICh0eXBlb2YgVElMRV9TSVpFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVElMRV9XRUlHSFRTOiByZWFkb25seSBbXG5cdFwicmVndWxhclwiLFxuXHRcInNlbWktYm9sZFwiXG5dO1xuZXhwb3J0IHR5cGUgVGlsZVdlaWdodCA9ICh0eXBlb2YgVElMRV9XRUlHSFRTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGlsZUJhY2tncm91bmQgPSAodHlwZW9mIFRIRU1FUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVElMRV9BTElHTlM6IHJlYWRvbmx5IFtcblx0XCJ0b3BcIixcblx0XCJib3R0b21cIlxuXTtcbmV4cG9ydCB0eXBlIFRpbGVBbGlnbiA9ICh0eXBlb2YgVElMRV9BTElHTlMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFNDUk9MTEVSX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcInJvbGVcIlxuXTtcbmV4cG9ydCB0eXBlIFNjcm9sbGVyQXJpYUF0dHJpYnV0ZSA9ICh0eXBlb2YgU0NST0xMRVJfQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUkFESUVOVF9DT0xPUl9TQ0hFTUVTOiByZWFkb25seSBbXG5cdFwiZGVmYXVsdFwiLFxuXHRcInN1cmZhY2VcIlxuXTtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgU2Nyb2xsZXJHcmFkaWVudENvbG9yU2NoZW1lID0gKHR5cGVvZiBHUkFESUVOVF9DT0xPUl9TQ0hFTUVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUkFESUVOVF9DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJiYWNrZ3JvdW5kLWJhc2VcIixcblx0XCJiYWNrZ3JvdW5kLXN1cmZhY2VcIlxuXTtcbmV4cG9ydCB0eXBlIFNjcm9sbGVyR3JhZGllbnRDb2xvciA9ICh0eXBlb2YgR1JBRElFTlRfQ09MT1JTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgU2Nyb2xsZXJTY3JvbGxUb1Bvc2l0aW9uID0ge1xuXHRzY3JvbGxQb3NpdGlvbjogbnVtYmVyO1xuXHRpc1Ntb290aD86IGJvb2xlYW47XG59IHwgc3RyaW5nO1xuZGVjbGFyZSBjb25zdCBTQ1JPTExfSU5ESUNBVE9SX1BPU0lUSU9OUzogcmVhZG9ubHkgW1xuXHRcInRvcFwiLFxuXHRcImNlbnRlclwiXG5dO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBTY3JvbGxlclNjcm9sbEluZGljYXRvclBvc2l0aW9uID0gKHR5cGVvZiBTQ1JPTExfSU5ESUNBVE9SX1BPU0lUSU9OUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNjcm9sbGVyQWxpZ25TY3JvbGxJbmRpY2F0b3IgPSBTY3JvbGxlclNjcm9sbEluZGljYXRvclBvc2l0aW9uO1xuZGVjbGFyZSBjb25zdCBTRUxFQ1RfRFJPUERPV05fRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcImRvd25cIixcblx0XCJ1cFwiLFxuXHRcImF1dG9cIlxuXTtcbmV4cG9ydCB0eXBlIFNlbGVjdERyb3Bkb3duRGlyZWN0aW9uID0gKHR5cGVvZiBTRUxFQ1RfRFJPUERPV05fRElSRUNUSU9OUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVFlQT0dSQVBIWV9BTElHTlM6IHJlYWRvbmx5IFtcblx0XCJzdGFydFwiLFxuXHRcImNlbnRlclwiLFxuXHRcImVuZFwiLFxuXHRcImxlZnRcIixcblx0XCJyaWdodFwiXG5dO1xuZXhwb3J0IHR5cGUgVHlwb2dyYXBoeUFsaWduID0gKHR5cGVvZiBUWVBPR1JBUEhZX0FMSUdOUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQUxJR05fTEFCRUxTOiByZWFkb25seSBbXG5cdFwic3RhcnRcIixcblx0XCJlbmRcIixcblx0XCJsZWZ0XCIsXG5cdFwicmlnaHRcIlxuXTtcbmV4cG9ydCB0eXBlIEFsaWduTGFiZWwgPSAodHlwZW9mIEFMSUdOX0xBQkVMUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQlVUVE9OX1RZUEVTOiByZWFkb25seSBbXG5cdFwiYnV0dG9uXCIsXG5cdFwic3VibWl0XCIsXG5cdFwicmVzZXRcIlxuXTtcbmV4cG9ydCB0eXBlIEJ1dHRvblR5cGUgPSB0eXBlb2YgQlVUVE9OX1RZUEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEhFQURJTkdfVEFHUzogcmVhZG9ubHkgW1xuXHRcImgxXCIsXG5cdFwiaDJcIixcblx0XCJoM1wiLFxuXHRcImg0XCIsXG5cdFwiaDVcIixcblx0XCJoNlwiXG5dO1xuZXhwb3J0IHR5cGUgSGVhZGluZ1RhZyA9IHR5cGVvZiBIRUFESU5HX1RBR1NbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTElOS19CVVRUT05fVkFSSUFOVFM6IHJlYWRvbmx5IFtcblx0XCJwcmltYXJ5XCIsXG5cdFwic2Vjb25kYXJ5XCIsXG5cdFwidGVydGlhcnlcIlxuXTtcbmV4cG9ydCB0eXBlIExpbmtCdXR0b25WYXJpYW50ID0gdHlwZW9mIExJTktfQlVUVE9OX1ZBUklBTlRTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRFWFRfQ09MT1JTOiByZWFkb25seSBbXG5cdFwicHJpbWFyeVwiLFxuXHRcImNvbnRyYXN0LWxvd1wiLFxuXHRcImNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcImNvbnRyYXN0LWhpZ2hcIixcblx0XCJub3RpZmljYXRpb24tc3VjY2Vzc1wiLFxuXHRcIm5vdGlmaWNhdGlvbi13YXJuaW5nXCIsXG5cdFwibm90aWZpY2F0aW9uLWVycm9yXCIsXG5cdFwibm90aWZpY2F0aW9uLWluZm9cIixcblx0XCJpbmhlcml0XCIsXG5cdFwiYnJhbmRcIixcblx0XCJkZWZhdWx0XCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1sb3dcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtaGlnaFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1uZXV0cmFsXCJcbl07XG5leHBvcnQgdHlwZSBUZXh0Q29sb3IgPSAodHlwZW9mIFRFWFRfQ09MT1JTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBURVhUX1NJWkVTOiByZWFkb25seSBbXG5cdFwieHgtc21hbGxcIixcblx0XCJ4LXNtYWxsXCIsXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIixcblx0XCJsYXJnZVwiLFxuXHRcIngtbGFyZ2VcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBUZXh0U2l6ZSA9ICh0eXBlb2YgVEVYVF9TSVpFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVEVYVF9XRUlHSFRTOiByZWFkb25seSBbXG5cdFwicmVndWxhclwiLFxuXHRcInNlbWktYm9sZFwiLFxuXHRcImJvbGRcIixcblx0XCJ0aGluXCIsXG5cdFwic2VtaWJvbGRcIlxuXTtcbmV4cG9ydCB0eXBlIFRleHRXZWlnaHQgPSAodHlwZW9mIFRFWFRfV0VJR0hUUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTElOS19UQVJHRVRTOiByZWFkb25seSBbXG5cdFwiX3NlbGZcIixcblx0XCJfYmxhbmtcIixcblx0XCJfcGFyZW50XCIsXG5cdFwiX3RvcFwiXG5dO1xuZXhwb3J0IHR5cGUgTGlua1RhcmdldCA9ICh0eXBlb2YgTElOS19UQVJHRVRTKVtudW1iZXJdIHwgc3RyaW5nO1xuZXhwb3J0IHR5cGUgTGlua0J1dHRvbkljb25OYW1lID0gSWNvbk5hbWUgfCBcIm5vbmVcIjtcbmV4cG9ydCB0eXBlIEJ1dHRvblZhcmlhbnQgPSBMaW5rQnV0dG9uVmFyaWFudDtcbmV4cG9ydCB0eXBlIExpbmtWYXJpYW50ID0gTGlua0J1dHRvblZhcmlhbnQ7XG5leHBvcnQgdHlwZSBTZWxlY3RlZEFyaWFBdHRyaWJ1dGVzPFQgZXh0ZW5kcyBrZXlvZiBBcmlhQXR0cmlidXRlcz4gPSBQaWNrPEFyaWFBdHRyaWJ1dGVzLCBUPiB8IHN0cmluZztcbmRlY2xhcmUgY29uc3QgQUNDT1JESU9OX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIlxuXTtcbmV4cG9ydCB0eXBlIEFjY29yZGlvblNpemUgPSAodHlwZW9mIEFDQ09SRElPTl9TSVpFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEFjY29yZGlvblVwZGF0ZUV2ZW50ID0ge1xuXHRvcGVuOiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIEFjY29yZGlvblRhZyA9IEhlYWRpbmdUYWc7XG5kZWNsYXJlIGNvbnN0IEJBTk5FUl9TVEFURVM6IHJlYWRvbmx5IFtcblx0XCJpbmZvXCIsXG5cdFwid2FybmluZ1wiLFxuXHRcImVycm9yXCIsXG5cdFwibmV1dHJhbFwiXG5dO1xuZXhwb3J0IHR5cGUgQmFubmVyU3RhdGUgPSB0eXBlb2YgQkFOTkVSX1NUQVRFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBCQU5ORVJfV0lEVEhTOiByZWFkb25seSBbXG5cdFwiZXh0ZW5kZWRcIixcblx0XCJiYXNpY1wiLFxuXHRcImZsdWlkXCJcbl07XG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCB0eXBlIEJhbm5lcldpZHRoID0gdHlwZW9mIEJBTk5FUl9XSURUSFNbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEJ1dHRvbkljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5kZWNsYXJlIGNvbnN0IEdST1VQX0RJUkVDVElPTlM6IHJlYWRvbmx5IFtcblx0XCJyb3dcIixcblx0XCJjb2x1bW5cIlxuXTtcbmV4cG9ydCB0eXBlIEdyb3VwRGlyZWN0aW9uID0gKHR5cGVvZiBHUk9VUF9ESVJFQ1RJT05TKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgQnV0dG9uR3JvdXBEaXJlY3Rpb24gPSBHcm91cERpcmVjdGlvbjtcbmV4cG9ydCB0eXBlIEJ1dHRvblB1cmVUeXBlID0gQnV0dG9uVHlwZTtcbmV4cG9ydCB0eXBlIEJ1dHRvblB1cmVJY29uID0gTGlua0J1dHRvbkljb25OYW1lO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHVyZUFyaWFBdHRyaWJ1dGUgPSBCdXR0b25BcmlhQXR0cmlidXRlO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHVyZUFsaWduTGFiZWwgPSBBbGlnbkxhYmVsO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHVyZVdlaWdodCA9IFRleHRXZWlnaHQ7XG5leHBvcnQgdHlwZSBCdXR0b25QdXJlU2l6ZSA9IFRleHRTaXplO1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZUFyaWFBdHRyaWJ1dGUgPSBCdXR0b25BcmlhQXR0cmlidXRlO1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZUljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlVHlwZSA9IEJ1dHRvblR5cGU7XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlQXNwZWN0UmF0aW8gPSBUaWxlQXNwZWN0UmF0aW87XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlU2l6ZSA9IFRpbGVTaXplO1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZUJhY2tncm91bmQgPSBUaWxlQmFja2dyb3VuZDtcbmV4cG9ydCB0eXBlIEJ1dHRvblRpbGVXZWlnaHQgPSBUaWxlV2VpZ2h0O1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZUFsaWduID0gVGlsZUFsaWduO1xuZGVjbGFyZSBjb25zdCBDQVJPVVNFTF9XSURUSFM6IHJlYWRvbmx5IFtcblx0XCJiYXNpY1wiLFxuXHRcImV4dGVuZGVkXCJcbl07XG5leHBvcnQgdHlwZSBDYXJvdXNlbFdpZHRoID0gKHR5cGVvZiBDQVJPVVNFTF9XSURUSFMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IENBUk9VU0VMX0FMSUdOX0hFQURFUlM6IHJlYWRvbmx5IFtcblx0XCJzdGFydFwiLFxuXHRcImNlbnRlclwiLFxuXHRcImxlZnRcIlxuXTtcbmV4cG9ydCB0eXBlIENhcm91c2VsQWxpZ25IZWFkZXIgPSAodHlwZW9mIENBUk9VU0VMX0FMSUdOX0hFQURFUlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBDYXJvdXNlbEludGVybmF0aW9uYWxpemF0aW9uID0gUGFydGlhbDxSZWNvcmQ8XCJwcmV2XCIgfCBcIm5leHRcIiB8IFwiZmlyc3RcIiB8IFwibGFzdFwiIHwgXCJzbGlkZUxhYmVsXCIgfCBcInNsaWRlXCIsIHN0cmluZz4+IHwgc3RyaW5nO1xuZXhwb3J0IHR5cGUgQ2Fyb3VzZWxVcGRhdGVFdmVudCA9IHtcblx0YWN0aXZlSW5kZXg6IG51bWJlcjtcblx0cHJldmlvdXNJbmRleDogbnVtYmVyO1xufTtcbmV4cG9ydCB0eXBlIENoZWNrYm94V3JhcHBlclN0YXRlID0gRm9ybVN0YXRlO1xuZGVjbGFyZSBjb25zdCBDT05URU5UX1dSQVBQRVJfQkFDS0dST1VORF9DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJ0cmFuc3BhcmVudFwiLFxuXHRcImRlZmF1bHRcIlxuXTtcbmV4cG9ydCB0eXBlIENvbnRlbnRXcmFwcGVyQmFja2dyb3VuZENvbG9yID0gdHlwZW9mIENPTlRFTlRfV1JBUFBFUl9CQUNLR1JPVU5EX0NPTE9SU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBDT05URU5UX1dSQVBQRVJfV0lEVEhTOiByZWFkb25seSBbXG5cdFwibmFycm93XCIsXG5cdFwiYmFzaWNcIixcblx0XCJleHRlbmRlZFwiLFxuXHRcImZsdWlkXCIsXG5cdFwiZnVsbFwiXG5dO1xuZXhwb3J0IHR5cGUgQ29udGVudFdyYXBwZXJXaWR0aCA9IHR5cGVvZiBDT05URU5UX1dSQVBQRVJfV0lEVEhTW251bWJlcl07XG5leHBvcnQgdHlwZSBDcmVzdFRhcmdldCA9IExpbmtUYXJnZXQ7XG5leHBvcnQgdHlwZSBDcmVzdEFyaWFBdHRyaWJ1dGUgPSBMaW5rQXJpYUF0dHJpYnV0ZTtcbmRlY2xhcmUgY29uc3QgRElTUExBWV9UQUdTOiByZWFkb25seSBbXG5cdFwiaDFcIixcblx0XCJoMlwiLFxuXHRcImgzXCIsXG5cdFwiaDRcIixcblx0XCJoNVwiLFxuXHRcImg2XCJcbl07XG5leHBvcnQgdHlwZSBEaXNwbGF5VGFnID0gKHR5cGVvZiBESVNQTEFZX1RBR1MpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IERJU1BMQVlfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiLFxuXHRcImxhcmdlXCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgRGlzcGxheVNpemUgPSAodHlwZW9mIERJU1BMQVlfU0laRVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IERJU1BMQVlfQ09MT1JTOiByZWFkb25seSBbXG5cdFwicHJpbWFyeVwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIERpc3BsYXlDb2xvciA9ICh0eXBlb2YgRElTUExBWV9DT0xPUlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBEaXNwbGF5QWxpZ24gPSBUeXBvZ3JhcGh5QWxpZ247XG5kZWNsYXJlIGNvbnN0IERJVklERVJfQ09MT1JTOiByZWFkb25seSBbXG5cdFwiY29udHJhc3QtbG93XCIsXG5cdFwiY29udHJhc3QtbWVkaXVtXCIsXG5cdFwiY29udHJhc3QtaGlnaFwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtaGlnaFwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtbWVkaXVtXCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1sb3dcIlxuXTtcbmV4cG9ydCB0eXBlIERpdmlkZXJDb2xvciA9IHR5cGVvZiBESVZJREVSX0NPTE9SU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBESVZJREVSX0RJUkVDVElPTlM6IHJlYWRvbmx5IFtcblx0XCJ2ZXJ0aWNhbFwiLFxuXHRcImhvcml6b250YWxcIlxuXTtcbmV4cG9ydCB0eXBlIERpdmlkZXJEaXJlY3Rpb24gPSB0eXBlb2YgRElWSURFUl9ESVJFQ1RJT05TW251bWJlcl07XG5leHBvcnQgdHlwZSBEaXZpZGVyT3JpZW50YXRpb24gPSBEaXZpZGVyRGlyZWN0aW9uO1xuZGVjbGFyZSBjb25zdCBGSUVMRFNFVF9MQUJFTF9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCJcbl07XG5leHBvcnQgdHlwZSBGaWVsZHNldExhYmVsU2l6ZSA9ICh0eXBlb2YgRklFTERTRVRfTEFCRUxfU0laRVMpW251bWJlcl07XG5leHBvcnQgdHlwZSBGaWVsZHNldFN0YXRlID0gRm9ybVN0YXRlO1xuZXhwb3J0IHR5cGUgRmllbGRzZXRXcmFwcGVyTGFiZWxTaXplID0gRmllbGRzZXRMYWJlbFNpemU7XG5leHBvcnQgdHlwZSBGaWVsZHNldFdyYXBwZXJTdGF0ZSA9IEZpZWxkc2V0U3RhdGU7XG5leHBvcnQgdHlwZSBGbGV4SW5saW5lID0gYm9vbGVhbjtcbmRlY2xhcmUgY29uc3QgRkxFWF9XUkFQUzogcmVhZG9ubHkgW1xuXHRcIm5vd3JhcFwiLFxuXHRcIndyYXBcIixcblx0XCJ3cmFwLXJldmVyc2VcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhXcmFwID0gdHlwZW9mIEZMRVhfV1JBUFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxFWF9ESVJFQ1RJT05TOiByZWFkb25seSBbXG5cdFwicm93XCIsXG5cdFwicm93LXJldmVyc2VcIixcblx0XCJjb2x1bW5cIixcblx0XCJjb2x1bW4tcmV2ZXJzZVwiXG5dO1xuZXhwb3J0IHR5cGUgRmxleERpcmVjdGlvbiA9IHR5cGVvZiBGTEVYX0RJUkVDVElPTlNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxFWF9KVVNUSUZZX0NPTlRFTlRTOiByZWFkb25seSBbXG5cdFwiZmxleC1zdGFydFwiLFxuXHRcImZsZXgtZW5kXCIsXG5cdFwiY2VudGVyXCIsXG5cdFwic3BhY2UtYmV0d2VlblwiLFxuXHRcInNwYWNlLWFyb3VuZFwiLFxuXHRcInNwYWNlLWV2ZW5seVwiXG5dO1xuZXhwb3J0IHR5cGUgRmxleEp1c3RpZnlDb250ZW50ID0gdHlwZW9mIEZMRVhfSlVTVElGWV9DT05URU5UU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0FMSUdOX0lURU1TOiByZWFkb25seSBbXG5cdFwic3RyZXRjaFwiLFxuXHRcImZsZXgtc3RhcnRcIixcblx0XCJmbGV4LWVuZFwiLFxuXHRcImNlbnRlclwiLFxuXHRcImJhc2VsaW5lXCJcbl07XG5leHBvcnQgdHlwZSBGbGV4QWxpZ25JdGVtcyA9IHR5cGVvZiBGTEVYX0FMSUdOX0lURU1TW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfQUxJR05fQ09OVEVOVFM6IHJlYWRvbmx5IFtcblx0XCJzdHJldGNoXCIsXG5cdFwiZmxleC1zdGFydFwiLFxuXHRcImZsZXgtZW5kXCIsXG5cdFwiY2VudGVyXCIsXG5cdFwic3BhY2UtYmV0d2VlblwiLFxuXHRcInNwYWNlLWFyb3VuZFwiLFxuXHRcInNwYWNlLWV2ZW5seVwiXG5dO1xuZXhwb3J0IHR5cGUgRmxleEFsaWduQ29udGVudCA9IHR5cGVvZiBGTEVYX0FMSUdOX0NPTlRFTlRTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSVRFTV9XSURUSFM6IHJlYWRvbmx5IFtcblx0XCJhdXRvXCIsXG5cdFwib25lLXF1YXJ0ZXJcIixcblx0XCJvbmUtdGhpcmRcIixcblx0XCJoYWxmXCIsXG5cdFwidHdvLXRoaXJkc1wiLFxuXHRcInRocmVlLXF1YXJ0ZXJzXCIsXG5cdFwiZnVsbFwiXG5dO1xuZXhwb3J0IHR5cGUgRmxleEl0ZW1XaWR0aCA9IHR5cGVvZiBGTEVYX0lURU1fV0lEVEhTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSVRFTV9PRkZTRVRTOiByZWFkb25seSBbXG5cdFwibm9uZVwiLFxuXHRcIm9uZS1xdWFydGVyXCIsXG5cdFwib25lLXRoaXJkXCIsXG5cdFwiaGFsZlwiLFxuXHRcInR3by10aGlyZHNcIixcblx0XCJ0aHJlZS1xdWFydGVyc1wiXG5dO1xuZXhwb3J0IHR5cGUgRmxleEl0ZW1PZmZzZXQgPSB0eXBlb2YgRkxFWF9JVEVNX09GRlNFVFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxFWF9JVEVNX0FMSUdOX1NFTEZTOiByZWFkb25seSBbXG5cdFwiYXV0b1wiLFxuXHRcImZsZXgtc3RhcnRcIixcblx0XCJmbGV4LWVuZFwiLFxuXHRcImNlbnRlclwiLFxuXHRcImJhc2VsaW5lXCIsXG5cdFwic3RyZXRjaFwiXG5dO1xuZXhwb3J0IHR5cGUgRmxleEl0ZW1BbGlnblNlbGYgPSB0eXBlb2YgRkxFWF9JVEVNX0FMSUdOX1NFTEZTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSVRFTV9HUk9XUzogcmVhZG9ubHkgW1xuXHQwLFxuXHQxXG5dO1xuZXhwb3J0IHR5cGUgRmxleEl0ZW1Hcm93ID0gdHlwZW9mIEZMRVhfSVRFTV9HUk9XU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0lURU1fU0hSSU5LUzogcmVhZG9ubHkgW1xuXHQwLFxuXHQxXG5dO1xuZXhwb3J0IHR5cGUgRmxleEl0ZW1TaHJpbmsgPSB0eXBlb2YgRkxFWF9JVEVNX1NIUklOS1NbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxFWF9JVEVNX0ZMRVhTOiByZWFkb25seSBbXG5cdFwiaW5pdGlhbFwiLFxuXHRcImF1dG9cIixcblx0XCJub25lXCIsXG5cdFwiZXF1YWxcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtRmxleCA9IHR5cGVvZiBGTEVYX0lURU1fRkxFWFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxZT1VUX1BPU0lUSU9OUzogcmVhZG9ubHkgW1xuXHRcInN0YXJ0XCIsXG5cdFwiZW5kXCIsXG5cdFwibGVmdFwiLFxuXHRcInJpZ2h0XCJcbl07XG5leHBvcnQgdHlwZSBGbHlvdXRQb3NpdGlvbiA9ICh0eXBlb2YgRkxZT1VUX1BPU0lUSU9OUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxZT1VUX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIlxuXTtcbmV4cG9ydCB0eXBlIEZseW91dEFyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIEZMWU9VVF9BUklBX0FUVFJJQlVURVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEdSSURfRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcInJvd1wiLFxuXHRcInJvdy1yZXZlcnNlXCIsXG5cdFwiY29sdW1uXCIsXG5cdFwiY29sdW1uLXJldmVyc2VcIlxuXTtcbmV4cG9ydCB0eXBlIEdyaWREaXJlY3Rpb24gPSB0eXBlb2YgR1JJRF9ESVJFQ1RJT05TW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEdSSURfV1JBUFM6IHJlYWRvbmx5IFtcblx0XCJub3dyYXBcIixcblx0XCJ3cmFwXCJcbl07XG5leHBvcnQgdHlwZSBHcmlkV3JhcCA9IHR5cGVvZiBHUklEX1dSQVBTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEdSSURfR1VUVEVSUzogcmVhZG9ubHkgW1xuXHQxNixcblx0MjQsXG5cdDM2XG5dO1xuZXhwb3J0IHR5cGUgR3JpZEd1dHRlciA9IHR5cGVvZiBHUklEX0dVVFRFUlNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgR1JJRF9JVEVNX1NJWkVTOiByZWFkb25seSBbXG5cdDEsXG5cdDIsXG5cdDMsXG5cdDQsXG5cdDUsXG5cdDYsXG5cdDcsXG5cdDgsXG5cdDksXG5cdDEwLFxuXHQxMSxcblx0MTJcbl07XG5leHBvcnQgdHlwZSBHcmlkSXRlbVNpemUgPSB0eXBlb2YgR1JJRF9JVEVNX1NJWkVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEdSSURfSVRFTV9PRkZTRVRTOiByZWFkb25seSBbXG5cdDAsXG5cdDEsXG5cdDIsXG5cdDMsXG5cdDQsXG5cdDUsXG5cdDYsXG5cdDcsXG5cdDgsXG5cdDksXG5cdDEwLFxuXHQxMVxuXTtcbmV4cG9ydCB0eXBlIEdyaWRJdGVtT2Zmc2V0ID0gdHlwZW9mIEdSSURfSVRFTV9PRkZTRVRTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEhFQURJTkdfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiLFxuXHRcImxhcmdlXCIsXG5cdFwieC1sYXJnZVwiLFxuXHRcInh4LWxhcmdlXCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgSGVhZGluZ1NpemUgPSAodHlwZW9mIEhFQURJTkdfU0laRVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEhFQURJTkdfQ09MT1JTOiByZWFkb25seSBbXG5cdFwicHJpbWFyeVwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIEhlYWRpbmdDb2xvciA9ICh0eXBlb2YgSEVBRElOR19DT0xPUlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBIZWFkaW5nQWxpZ24gPSBUeXBvZ3JhcGh5QWxpZ247XG5kZWNsYXJlIGNvbnN0IEhFQURMSU5FX1ZBUklBTlRTOiByZWFkb25seSBbXG5cdFwibGFyZ2UtdGl0bGVcIixcblx0XCJoZWFkbGluZS0xXCIsXG5cdFwiaGVhZGxpbmUtMlwiLFxuXHRcImhlYWRsaW5lLTNcIixcblx0XCJoZWFkbGluZS00XCIsXG5cdFwiaGVhZGxpbmUtNVwiXG5dO1xuZXhwb3J0IHR5cGUgSGVhZGxpbmVWYXJpYW50VHlwZSA9ICh0eXBlb2YgSEVBRExJTkVfVkFSSUFOVFMpW251bWJlcl07XG5leHBvcnQgdHlwZSBIZWFkbGluZVZhcmlhbnRDdXN0b20gPSBFeGNsdWRlPEJyZWFrcG9pbnRDdXN0b21pemFibGU8VGV4dFNpemU+LCBUZXh0U2l6ZT47XG5leHBvcnQgdHlwZSBIZWFkbGluZVZhcmlhbnQgPSBIZWFkbGluZVZhcmlhbnRUeXBlIHwgSGVhZGxpbmVWYXJpYW50Q3VzdG9tIHwgRXh0cmFjdDxUZXh0U2l6ZSwgXCJpbmhlcml0XCI+O1xuZGVjbGFyZSBjb25zdCBIRUFETElORV9UQUdTOiByZWFkb25seSBbXG5cdFwiaDFcIixcblx0XCJoMlwiLFxuXHRcImgzXCIsXG5cdFwiaDRcIixcblx0XCJoNVwiLFxuXHRcImg2XCJcbl07XG5leHBvcnQgdHlwZSBIZWFkbGluZVRhZyA9ICh0eXBlb2YgSEVBRExJTkVfVEFHUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgSEVBRExJTkVfQ09MT1JTOiByZWFkb25seSBbXG5cdFwicHJpbWFyeVwiLFxuXHRcImRlZmF1bHRcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBIZWFkbGluZUNvbG9yID0gKHR5cGVvZiBIRUFETElORV9DT0xPUlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBIZWFkbGluZUFsaWduID0gVHlwb2dyYXBoeUFsaWduO1xuZGVjbGFyZSBjb25zdCBJQ09OX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIlxuXTtcbmV4cG9ydCB0eXBlIEljb25BcmlhQXR0cmlidXRlID0gKHR5cGVvZiBJQ09OX0FSSUFfQVRUUklCVVRFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEljb25TaXplID0gVGV4dFNpemU7XG5kZWNsYXJlIGNvbnN0IElDT05fQ09MT1JTOiByZWFkb25seSBbXG5cdFwicHJpbWFyeVwiLFxuXHRcImNvbnRyYXN0LWxvd1wiLFxuXHRcImNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcImNvbnRyYXN0LWhpZ2hcIixcblx0XCJub3RpZmljYXRpb24tc3VjY2Vzc1wiLFxuXHRcIm5vdGlmaWNhdGlvbi13YXJuaW5nXCIsXG5cdFwibm90aWZpY2F0aW9uLWVycm9yXCIsXG5cdFwibm90aWZpY2F0aW9uLWluZm9cIixcblx0XCJpbmhlcml0XCIsXG5cdFwiYnJhbmRcIixcblx0XCJkZWZhdWx0XCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1sb3dcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtaGlnaFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1uZXV0cmFsXCIsXG5cdFwic3RhdGUtZGlzYWJsZWRcIlxuXTtcbmV4cG9ydCB0eXBlIEljb25Db2xvciA9ICh0eXBlb2YgSUNPTl9DT0xPUlMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IElOTElORV9OT1RJRklDQVRJT05fU1RBVEVTOiByZWFkb25seSBbXG5cdFwic3VjY2Vzc1wiLFxuXHRcImluZm9cIixcblx0XCJ3YXJuaW5nXCIsXG5cdFwiZXJyb3JcIixcblx0XCJuZXV0cmFsXCJcbl07XG5leHBvcnQgdHlwZSBJbmxpbmVOb3RpZmljYXRpb25TdGF0ZSA9IHR5cGVvZiBJTkxJTkVfTk9USUZJQ0FUSU9OX1NUQVRFU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgSW5saW5lTm90aWZpY2F0aW9uQWN0aW9uSWNvbiA9IEljb25OYW1lO1xuZXhwb3J0IHR5cGUgTGlua0ljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5leHBvcnQgdHlwZSBMaW5rUHVyZUljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5leHBvcnQgdHlwZSBMaW5rUHVyZUFyaWFBdHRyaWJ1dGUgPSBMaW5rQXJpYUF0dHJpYnV0ZTtcbmV4cG9ydCB0eXBlIExpbmtQdXJlQWxpZ25MYWJlbCA9IEFsaWduTGFiZWw7XG5leHBvcnQgdHlwZSBMaW5rUHVyZVdlaWdodCA9IFRleHRXZWlnaHQ7XG5leHBvcnQgdHlwZSBMaW5rUHVyZVNpemUgPSBUZXh0U2l6ZTtcbmV4cG9ydCB0eXBlIExpbmtQdXJlVGFyZ2V0ID0gTGlua1RhcmdldDtcbmV4cG9ydCB0eXBlIExpbmtTb2NpYWxJY29uID0gRXh0cmFjdDxJY29uTmFtZSwgXCJsb2dvLWZhY2Vib29rXCIgfCBcImxvZ28tZ29vZ2xlXCIgfCBcImxvZ28taW5zdGFncmFtXCIgfCBcImxvZ28tbGlua2VkaW5cIiB8IFwibG9nby1waW50ZXJlc3RcIiB8IFwibG9nby10d2l0dGVyXCIgfCBcImxvZ28td2VjaGF0XCIgfCBcImxvZ28td2hhdHNhcHBcIiB8IFwibG9nby14aW5nXCIgfCBcImxvZ28teW91dHViZVwiIHwgXCJsb2dvLWJhaWR1XCIgfCBcImxvZ28tZGVsaWNpb3VzXCIgfCBcImxvZ28tZGlnZ1wiIHwgXCJsb2dvLWZvdXJzcXVhcmVcIiB8IFwibG9nby1nbWFpbFwiIHwgXCJsb2dvLWhhdGVuYVwiIHwgXCJsb2dvLWthaXhpblwiIHwgXCJsb2dvLWtha2FvdGFsa1wiIHwgXCJsb2dvLW5hdmVyXCIgfCBcImxvZ28tcXEtc2hhcmVcIiB8IFwibG9nby1xcVwiIHwgXCJsb2dvLXJlZGRpdFwiIHwgXCJsb2dvLXNreXJvY2tcIiB8IFwibG9nby1zb2h1XCIgfCBcImxvZ28tdGVjZW50XCIgfCBcImxvZ28tdGVsZWdyYW1cIiB8IFwibG9nby10aWt0b2tcIiB8IFwibG9nby10dW1ibHJcIiB8IFwibG9nby12aWJlclwiIHwgXCJsb2dvLXZrXCIgfCBcImxvZ28td2VpYm9cIiB8IFwibG9nby15YWhvb1wiIHwgXCJsb2dvLXlvdWt1XCI+O1xuZXhwb3J0IHR5cGUgTGlua1NvY2lhbFRhcmdldCA9IExpbmtUYXJnZXQ7XG5leHBvcnQgdHlwZSBMaW5rVGlsZVRhcmdldCA9IExpbmtUYXJnZXQ7XG5leHBvcnQgdHlwZSBMaW5rVGlsZUFyaWFBdHRyaWJ1dGUgPSBMaW5rQXJpYUF0dHJpYnV0ZTtcbmV4cG9ydCB0eXBlIExpbmtUaWxlQXNwZWN0UmF0aW8gPSBUaWxlQXNwZWN0UmF0aW87XG5leHBvcnQgdHlwZSBMaW5rVGlsZVNpemUgPSBUaWxlU2l6ZTtcbmV4cG9ydCB0eXBlIExpbmtUaWxlQmFja2dyb3VuZCA9IFRpbGVCYWNrZ3JvdW5kO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVBbGlnbiA9IFRpbGVBbGlnbjtcbmRlY2xhcmUgY29uc3QgTElOS19USUxFX1dFSUdIVFM6IHJlYWRvbmx5IFtcblx0XCJyZWd1bGFyXCIsXG5cdFwic2VtaS1ib2xkXCIsXG5cdFwic2VtaWJvbGRcIlxuXTtcbmV4cG9ydCB0eXBlIExpbmtUaWxlV2VpZ2h0ID0gKHR5cGVvZiBMSU5LX1RJTEVfV0VJR0hUUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTElOS19USUxFX01PREVMX1NJR05BVFVSRV9NT0RFTFM6IHJlYWRvbmx5IFtcblx0XCI3MThcIixcblx0XCI5MTFcIixcblx0XCJib3hzdGVyXCIsXG5cdFwiY2F5ZW5uZVwiLFxuXHRcImNheW1hblwiLFxuXHRcIm1hY2FuXCIsXG5cdFwicGFuYW1lcmFcIixcblx0XCJ0YXljYW5cIixcblx0XCJ0dXJiby1zXCIsXG5cdFwidHVyYm9cIlxuXTtcbmV4cG9ydCB0eXBlIExpbmtUaWxlTW9kZWxTaWduYXR1cmVNb2RlbCA9ICh0eXBlb2YgTElOS19USUxFX01PREVMX1NJR05BVFVSRV9NT0RFTFMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IExJTktfVElMRV9NT0RFTF9TSUdOQVRVUkVfSEVBRElOR19UQUdTOiByZWFkb25seSBbXG5cdFwiaDJcIixcblx0XCJoM1wiLFxuXHRcImg0XCIsXG5cdFwiaDVcIixcblx0XCJoNlwiXG5dO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVNb2RlbFNpZ25hdHVyZUhlYWRpbmdUYWcgPSAodHlwZW9mIExJTktfVElMRV9NT0RFTF9TSUdOQVRVUkVfSEVBRElOR19UQUdTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVNb2RlbFNpZ25hdHVyZVdlaWdodCA9IFRpbGVXZWlnaHQ7XG5leHBvcnQgdHlwZSBMaW5rVGlsZU1vZGVsU2lnbmF0dXJlQXNwZWN0UmF0aW8gPSBUaWxlQXNwZWN0UmF0aW87XG5leHBvcnQgdHlwZSBMaW5rVGlsZU1vZGVsU2lnbmF0dXJlTGlua0RpcmVjdGlvbiA9IEdyb3VwRGlyZWN0aW9uO1xuZGVjbGFyZSBjb25zdCBNT0RFTF9TSUdOQVRVUkVTX01BTklGRVNUOiB7XG5cdFwiNzE4XCI6IHN0cmluZztcblx0XCI5MTFcIjogc3RyaW5nO1xuXHRib3hzdGVyOiBzdHJpbmc7XG5cdGNheWVubmU6IHN0cmluZztcblx0Y2F5bWFuOiBzdHJpbmc7XG5cdG1hY2FuOiBzdHJpbmc7XG5cdHBhbmFtZXJhOiBzdHJpbmc7XG5cdHRheWNhbjogc3RyaW5nO1xuXHRcInR1cmJvLXNcIjogc3RyaW5nO1xuXHR0dXJibzogc3RyaW5nO1xufTtcbmRlY2xhcmUgY29uc3QgTUFSUVVFX1ZBUklBTlRTOiByZWFkb25seSBbXG5cdFwiNzUteWVhcnNcIixcblx0XCJkZWZhdWx0XCJcbl07XG5leHBvcnQgdHlwZSBNYXJxdWVWYXJpYW50ID0gKHR5cGVvZiBNQVJRVUVfVkFSSUFOVFMpW251bWJlcl07XG5leHBvcnQgdHlwZSBNYXJxdWVUYXJnZXQgPSBMaW5rVGFyZ2V0O1xuZXhwb3J0IHR5cGUgTWFycXVlQXJpYUF0dHJpYnV0ZSA9IExpbmtBcmlhQXR0cmlidXRlO1xuZGVjbGFyZSBjb25zdCBNQVJRVUVfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJyZXNwb25zaXZlXCIsXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIlxuXTtcbmV4cG9ydCB0eXBlIE1hcnF1ZVNpemUgPSB0eXBlb2YgTUFSUVVFX1NJWkVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IE1PREFMX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIlxuXTtcbmV4cG9ydCB0eXBlIE1vZGFsQXJpYUF0dHJpYnV0ZSA9ICh0eXBlb2YgTU9EQUxfQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBNT0RFTF9TSUdOQVRVUkVfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIE1vZGVsU2lnbmF0dXJlU2l6ZSA9ICh0eXBlb2YgTU9ERUxfU0lHTkFUVVJFX1NJWkVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgTW9kZWxTaWduYXR1cmVNb2RlbCA9IGtleW9mIHR5cGVvZiBNT0RFTF9TSUdOQVRVUkVTX01BTklGRVNUO1xuZGVjbGFyZSBjb25zdCBNT0RFTF9TSUdOQVRVUkVfQ09MT1JTOiByZWFkb25seSBbXG5cdFwicHJpbWFyeVwiLFxuXHRcImNvbnRyYXN0LWxvd1wiLFxuXHRcImNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcImNvbnRyYXN0LWhpZ2hcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBNb2RlbFNpZ25hdHVyZUNvbG9yID0gKHR5cGVvZiBNT0RFTF9TSUdOQVRVUkVfQ09MT1JTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgTXVsdGlTZWxlY3RTdGF0ZSA9IEZvcm1TdGF0ZTtcbmV4cG9ydCB0eXBlIE11bHRpU2VsZWN0RHJvcGRvd25EaXJlY3Rpb24gPSBTZWxlY3REcm9wZG93bkRpcmVjdGlvbjtcbmV4cG9ydCB0eXBlIE11bHRpU2VsZWN0VXBkYXRlRXZlbnQgPSB7XG5cdHZhbHVlOiBzdHJpbmdbXTtcblx0bmFtZTogc3RyaW5nO1xufTtcbmRlY2xhcmUgY29uc3QgUEFHSU5BVElPTl9OVU1CRVJfT0ZfUEFHRV9MSU5LUzogcmVhZG9ubHkgW1xuXHQ1LFxuXHQ3XG5dO1xuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbk1heE51bWJlck9mUGFnZUxpbmtzID0gKHR5cGVvZiBQQUdJTkFUSU9OX05VTUJFUl9PRl9QQUdFX0xJTktTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgUGFnaW5hdGlvblVwZGF0ZUV2ZW50ID0ge1xuXHRwYWdlOiBudW1iZXI7XG5cdHByZXZpb3VzUGFnZTogbnVtYmVyO1xufTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25JbnRlcm5hdGlvbmFsaXphdGlvbiA9IFBhcnRpYWw8UmVjb3JkPFwicm9vdFwiIHwgXCJwcmV2XCIgfCBcIm5leHRcIiB8IFwicGFnZVwiLCBzdHJpbmc+PiB8IHN0cmluZztcbmRlY2xhcmUgY29uc3QgUElOX0NPREVfVFlQRVM6IHJlYWRvbmx5IFtcblx0XCJudW1iZXJcIixcblx0XCJwYXNzd29yZFwiXG5dO1xuZXhwb3J0IHR5cGUgUGluQ29kZVR5cGUgPSAodHlwZW9mIFBJTl9DT0RFX1RZUEVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBQSU5fQ09ERV9MRU5HVEhTOiByZWFkb25seSBbXG5cdDQsXG5cdDZcbl07XG5leHBvcnQgdHlwZSBQaW5Db2RlTGVuZ3RoID0gKHR5cGVvZiBQSU5fQ09ERV9MRU5HVEhTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgUGluQ29kZVVwZGF0ZUV2ZW50ID0ge1xuXHR2YWx1ZTogc3RyaW5nO1xuXHRpc0NvbXBsZXRlOiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIFBpbkNvZGVTdGF0ZSA9IEZvcm1TdGF0ZTtcbmRlY2xhcmUgY29uc3QgUE9QT1ZFUl9ESVJFQ1RJT05TOiByZWFkb25seSBbXG5cdFwidG9wXCIsXG5cdFwicmlnaHRcIixcblx0XCJib3R0b21cIixcblx0XCJsZWZ0XCJcbl07XG5leHBvcnQgdHlwZSBQb3BvdmVyRGlyZWN0aW9uID0gKHR5cGVvZiBQT1BPVkVSX0RJUkVDVElPTlMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFBPUE9WRVJfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgUG9wb3ZlckFyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIFBPUE9WRVJfQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgUmFkaW9CdXR0b25XcmFwcGVyU3RhdGUgPSBGb3JtU3RhdGU7XG5kZWNsYXJlIGNvbnN0IFNFR01FTlRFRF9DT05UUk9MX0JBQ0tHUk9VTkRfQ09MT1JTOiByZWFkb25seSBbXG5cdFwiYmFja2dyb3VuZC1zdXJmYWNlXCIsXG5cdFwiYmFja2dyb3VuZC1kZWZhdWx0XCJcbl07XG5leHBvcnQgdHlwZSBTZWdtZW50ZWRDb250cm9sQmFja2dyb3VuZENvbG9yID0gKHR5cGVvZiBTRUdNRU5URURfQ09OVFJPTF9CQUNLR1JPVU5EX0NPTE9SUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNlZ21lbnRlZENvbnRyb2xVcGRhdGVFdmVudCA9IHtcblx0dmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbn07XG5kZWNsYXJlIGNvbnN0IFNFR01FTlRFRF9DT05UUk9MX0NPTFVNTlM6IChzdHJpbmcgfCBudW1iZXIpW107XG5leHBvcnQgdHlwZSBTZWdtZW50ZWRDb250cm9sQ29sdW1ucyA9ICh0eXBlb2YgU0VHTUVOVEVEX0NPTlRST0xfQ09MVU1OUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNlZ21lbnRlZENvbnRyb2xJdGVtSWNvbiA9IExpbmtCdXR0b25JY29uTmFtZTtcbmRlY2xhcmUgY29uc3QgRFJPUERPV05fRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcImRvd25cIixcblx0XCJ1cFwiLFxuXHRcImF1dG9cIlxuXTtcbmV4cG9ydCB0eXBlIFNlbGVjdFdyYXBwZXJEcm9wZG93bkRpcmVjdGlvbiA9ICh0eXBlb2YgRFJPUERPV05fRElSRUNUSU9OUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNlbGVjdFdyYXBwZXJTdGF0ZSA9IEZvcm1TdGF0ZTtcbmRlY2xhcmUgY29uc3QgU1BJTk5FUl9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCIsXG5cdFwibGFyZ2VcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBTcGlubmVyU2l6ZSA9IHR5cGVvZiBTUElOTkVSX1NJWkVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFNQSU5ORVJfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgU3Bpbm5lckFyaWFBdHRyaWJ1dGUgPSB0eXBlb2YgU1BJTk5FUl9BUklBX0FUVFJJQlVURVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgU1RFUFBFUl9IT1JJWk9OVEFMX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIlxuXTtcbmV4cG9ydCB0eXBlIFN0ZXBwZXJIb3Jpem9udGFsU2l6ZSA9ICh0eXBlb2YgU1RFUFBFUl9IT1JJWk9OVEFMX1NJWkVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgU3RlcHBlckhvcml6b250YWxVcGRhdGVFdmVudCA9IHtcblx0YWN0aXZlU3RlcEluZGV4OiBudW1iZXI7XG59O1xuZGVjbGFyZSBjb25zdCBTVEVQUEVSX0lURU1fU1RBVEVTOiByZWFkb25seSBbXG5cdFwiY3VycmVudFwiLFxuXHRcImNvbXBsZXRlXCIsXG5cdFwid2FybmluZ1wiXG5dO1xuZXhwb3J0IHR5cGUgU3RlcHBlckhvcml6b250YWxJdGVtU3RhdGUgPSAodHlwZW9mIFNURVBQRVJfSVRFTV9TVEFURVMpW251bWJlcl07XG5leHBvcnQgdHlwZSBTd2l0Y2hBbGlnbkxhYmVsID0gQWxpZ25MYWJlbDtcbmV4cG9ydCB0eXBlIFN3aXRjaFVwZGF0ZUV2ZW50ID0ge1xuXHRjaGVja2VkOiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIERpcmVjdGlvbiA9IFwiYXNjXCIgfCBcImRlc2NcIjtcbmV4cG9ydCB0eXBlIFRhYmxlSGVhZENlbGxTb3J0ID0ge1xuXHRpZDogc3RyaW5nO1xuXHRhY3RpdmU/OiBib29sZWFuO1xuXHRkaXJlY3Rpb24/OiBEaXJlY3Rpb247XG59O1xuZXhwb3J0IHR5cGUgVGFibGVVcGRhdGVFdmVudCA9IFRhYmxlSGVhZENlbGxTb3J0O1xuZGVjbGFyZSBjb25zdCBUQUJTX0JBUl9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCJcbl07XG5leHBvcnQgdHlwZSBUYWJzQmFyU2l6ZSA9ICh0eXBlb2YgVEFCU19CQVJfU0laRVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRBQlNfQkFSX1dFSUdIVFM6IHJlYWRvbmx5IFtcblx0XCJyZWd1bGFyXCIsXG5cdFwic2VtaS1ib2xkXCIsXG5cdFwic2VtaWJvbGRcIlxuXTtcbmV4cG9ydCB0eXBlIFRhYnNCYXJXZWlnaHQgPSAodHlwZW9mIFRBQlNfQkFSX1dFSUdIVFMpW251bWJlcl07XG5leHBvcnQgdHlwZSBUYWJzQmFyVXBkYXRlRXZlbnQgPSB7XG5cdGFjdGl2ZVRhYkluZGV4OiBudW1iZXI7XG59O1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBUYWJzQmFyR3JhZGllbnRDb2xvclNjaGVtZSA9IFNjcm9sbGVyR3JhZGllbnRDb2xvclNjaGVtZTtcbmV4cG9ydCB0eXBlIFRhYnNCYXJHcmFkaWVudENvbG9yID0gU2Nyb2xsZXJHcmFkaWVudENvbG9yO1xuZXhwb3J0IHR5cGUgVGFic1NpemUgPSBUYWJzQmFyU2l6ZTtcbmV4cG9ydCB0eXBlIFRhYnNXZWlnaHQgPSBUYWJzQmFyV2VpZ2h0O1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBUYWJzR3JhZGllbnRDb2xvclNjaGVtZSA9IFRhYnNCYXJHcmFkaWVudENvbG9yU2NoZW1lO1xuZXhwb3J0IHR5cGUgVGFic0dyYWRpZW50Q29sb3IgPSBUYWJzQmFyR3JhZGllbnRDb2xvcjtcbmV4cG9ydCB0eXBlIFRhYnNVcGRhdGVFdmVudCA9IFRhYnNCYXJVcGRhdGVFdmVudDtcbmRlY2xhcmUgY29uc3QgVEFHX0RJU01JU1NJQkxFX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcImJhY2tncm91bmQtYmFzZVwiLFxuXHRcImJhY2tncm91bmQtc3VyZmFjZVwiLFxuXHRcImJhY2tncm91bmQtZGVmYXVsdFwiXG5dO1xuZXhwb3J0IHR5cGUgVGFnRGlzbWlzc2libGVDb2xvciA9IHR5cGVvZiBUQUdfRElTTUlTU0lCTEVfQ09MT1JTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRBR19ESVNNSVNTSUJMRV9BUklBX0FUVFJJQlVURVM6IHJlYWRvbmx5IFtcblx0XCJhcmlhLWxhYmVsXCJcbl07XG5leHBvcnQgdHlwZSBUYWdEaXNtaXNzaWJsZUFyaWFBdHRyaWJ1dGUgPSB0eXBlb2YgVEFHX0RJU01JU1NJQkxFX0FSSUFfQVRUUklCVVRFU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGFnSWNvbiA9IEljb25OYW1lO1xuZGVjbGFyZSBjb25zdCBUQUdfQ09MT1JTOiByZWFkb25seSBbXG5cdFwiYmFja2dyb3VuZC1iYXNlXCIsXG5cdFwiYmFja2dyb3VuZC1zdXJmYWNlXCIsXG5cdFwiYmFja2dyb3VuZC1kZWZhdWx0XCIsXG5cdFwicHJpbWFyeVwiLFxuXHRcIm5vdGlmaWNhdGlvbi1pbmZvLXNvZnRcIixcblx0XCJub3RpZmljYXRpb24td2FybmluZy1zb2Z0XCIsXG5cdFwibm90aWZpY2F0aW9uLXN1Y2Nlc3Mtc29mdFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1lcnJvci1zb2Z0XCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1oaWdoXCIsXG5cdFwibm90aWZpY2F0aW9uLW5ldXRyYWxcIixcblx0XCJub3RpZmljYXRpb24td2FybmluZ1wiLFxuXHRcIm5vdGlmaWNhdGlvbi1zdWNjZXNzXCIsXG5cdFwibm90aWZpY2F0aW9uLWVycm9yXCJcbl07XG5leHBvcnQgdHlwZSBUYWdDb2xvciA9ICh0eXBlb2YgVEFHX0NPTE9SUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVEVYVF9UQUdTOiByZWFkb25seSBbXG5cdFwicFwiLFxuXHRcInNwYW5cIixcblx0XCJkaXZcIixcblx0XCJhZGRyZXNzXCIsXG5cdFwiYmxvY2txdW90ZVwiLFxuXHRcImZpZ2NhcHRpb25cIixcblx0XCJjaXRlXCIsXG5cdFwidGltZVwiLFxuXHRcImxlZ2VuZFwiXG5dO1xuZXhwb3J0IHR5cGUgVGV4dFRhZyA9ICh0eXBlb2YgVEVYVF9UQUdTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGV4dEFsaWduID0gVHlwb2dyYXBoeUFsaWduO1xuZGVjbGFyZSBjb25zdCBVTklUX1BPU0lUSU9OUzogcmVhZG9ubHkgW1xuXHRcInByZWZpeFwiLFxuXHRcInN1ZmZpeFwiXG5dO1xuZXhwb3J0IHR5cGUgVGV4dEZpZWxkV3JhcHBlclVuaXRQb3NpdGlvbiA9ICh0eXBlb2YgVU5JVF9QT1NJVElPTlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBUZXh0RmllbGRXcmFwcGVyQWN0aW9uSWNvbiA9IEV4dHJhY3Q8SWNvbk5hbWUsIFwibG9jYXRlXCI+O1xuZXhwb3J0IHR5cGUgVGV4dEZpZWxkV3JhcHBlclN0YXRlID0gRm9ybVN0YXRlO1xuZGVjbGFyZSBjb25zdCBMSVNUX1RZUEVTOiByZWFkb25seSBbXG5cdFwidW5vcmRlcmVkXCIsXG5cdFwib3JkZXJlZFwiXG5dO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBUZXh0TGlzdExpc3RUeXBlID0gdHlwZW9mIExJU1RfVFlQRVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgT1JERVJfVFlQRVM6IHJlYWRvbmx5IFtcblx0XCJudW1iZXJlZFwiLFxuXHRcImFscGhhYmV0aWNhbGx5XCJcbl07XG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCB0eXBlIFRleHRMaXN0T3JkZXJUeXBlID0gdHlwZW9mIE9SREVSX1RZUEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRFWFRfTElTVF9UWVBFUzogcmVhZG9ubHkgW1xuXHRcInVub3JkZXJlZFwiLFxuXHRcIm51bWJlcmVkXCIsXG5cdFwiYWxwaGFiZXRpY2FsbHlcIlxuXTtcbmV4cG9ydCB0eXBlIFRleHRMaXN0VHlwZSA9IHR5cGVvZiBURVhUX0xJU1RfVFlQRVNbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFRleHRhcmVhV3JhcHBlclN0YXRlID0gRm9ybVN0YXRlO1xuZGVjbGFyZSBjb25zdCBUT0FTVF9TVEFURVM6IHJlYWRvbmx5IFtcblx0XCJpbmZvXCIsXG5cdFwic3VjY2Vzc1wiLFxuXHRcIm5ldXRyYWxcIlxuXTtcbmV4cG9ydCB0eXBlIFRvYXN0U3RhdGUgPSB0eXBlb2YgVE9BU1RfU1RBVEVTW251bWJlcl07XG5leHBvcnQgdHlwZSBUb2FzdE1lc3NhZ2UgPSB7XG5cdHRleHQ6IHN0cmluZztcblx0c3RhdGU/OiBUb2FzdFN0YXRlO1xufTtcbmRlY2xhcmUgY29uc3QgV09SRE1BUktfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIFdvcmRtYXJrU2l6ZSA9ICh0eXBlb2YgV09SRE1BUktfU0laRVMpW251bWJlcl07XG5leHBvcnQgdHlwZSBXb3JkbWFya1RhcmdldCA9IExpbmtUYXJnZXQ7XG5leHBvcnQgdHlwZSBXb3JkbWFya0FyaWFBdHRyaWJ1dGUgPSBMaW5rQXJpYUF0dHJpYnV0ZTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXdyYXBwZXIvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyogQXV0byBHZW5lcmF0ZWQgQmVsb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9xdW90ZXMgKi9cbmV4cG9ydCB0eXBlIEJvb2xlYW5pc2ggPSBib29sZWFuIHwgXCJ0cnVlXCIgfCBcImZhbHNlXCI7XG5leHBvcnQgdHlwZSBBcmlhQXR0cmlidXRlcyA9IHtcblx0LyoqIElkZW50aWZpZXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZWxlbWVudCB3aGVuIERPTSBmb2N1cyBpcyBvbiBhIGNvbXBvc2l0ZSB3aWRnZXQsIHRleHRib3gsIGdyb3VwLCBvciBhcHBsaWNhdGlvbi4gKi9cblx0XCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIEluZGljYXRlcyB3aGV0aGVyIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMgd2lsbCBwcmVzZW50IGFsbCwgb3Igb25seSBwYXJ0cyBvZiwgdGhlIGNoYW5nZWQgcmVnaW9uIGJhc2VkIG9uIHRoZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBkZWZpbmVkIGJ5IHRoZSBhcmlhLXJlbGV2YW50IGF0dHJpYnV0ZS4gKi9cblx0XCJhcmlhLWF0b21pY1wiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIGlucHV0dGluZyB0ZXh0IGNvdWxkIHRyaWdnZXIgZGlzcGxheSBvZiBvbmUgb3IgbW9yZSBwcmVkaWN0aW9ucyBvZiB0aGUgdXNlcidzIGludGVuZGVkIHZhbHVlIGZvciBhbiBpbnB1dCBhbmQgc3BlY2lmaWVzIGhvdyBwcmVkaWN0aW9ucyB3b3VsZCBiZVxuXHQgKiBwcmVzZW50ZWQgaWYgdGhleSBhcmUgbWFkZS5cblx0ICovXG5cdFwiYXJpYS1hdXRvY29tcGxldGVcIj86IFwibm9uZVwiIHwgXCJpbmxpbmVcIiB8IFwibGlzdFwiIHwgXCJib3RoXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgYW4gZWxlbWVudCBpcyBiZWluZyBtb2RpZmllZCBhbmQgdGhhdCBhc3Npc3RpdmUgdGVjaG5vbG9naWVzIE1BWSB3YW50IHRvIHdhaXQgdW50aWwgdGhlIG1vZGlmaWNhdGlvbnMgYXJlIGNvbXBsZXRlIGJlZm9yZSBleHBvc2luZyB0aGVtIHRvIHRoZSB1c2VyLiAqL1xuXHQvKipcblx0ICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGxhYmVscyB0aGUgY3VycmVudCBlbGVtZW50LCB3aGljaCBpcyBpbnRlbmRlZCB0byBiZSBjb252ZXJ0ZWQgaW50byBCcmFpbGxlLlxuXHQgKiBAc2VlIGFyaWEtbGFiZWwuXG5cdCAqL1xuXHRcImFyaWEtYnJhaWxsZWxhYmVsXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgaHVtYW4tcmVhZGFibGUsIGF1dGhvci1sb2NhbGl6ZWQgYWJicmV2aWF0ZWQgZGVzY3JpcHRpb24gZm9yIHRoZSByb2xlIG9mIGFuIGVsZW1lbnQsIHdoaWNoIGlzIGludGVuZGVkIHRvIGJlIGNvbnZlcnRlZCBpbnRvIEJyYWlsbGUuXG5cdCAqIEBzZWUgYXJpYS1yb2xlZGVzY3JpcHRpb24uXG5cdCAqL1xuXHRcImFyaWEtYnJhaWxsZXJvbGVkZXNjcmlwdGlvblwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcImFyaWEtYnVzeVwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgY3VycmVudCBcImNoZWNrZWRcIiBzdGF0ZSBvZiBjaGVja2JveGVzLCByYWRpbyBidXR0b25zLCBhbmQgb3RoZXIgd2lkZ2V0cy5cblx0ICogQHNlZSBhcmlhLXByZXNzZWQgQHNlZSBhcmlhLXNlbGVjdGVkLlxuXHQgKi9cblx0XCJhcmlhLWNoZWNrZWRcIj86IGJvb2xlYW4gfCBcImZhbHNlXCIgfCBcIm1peGVkXCIgfCBcInRydWVcIiB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIGEgdGFibGUsIGdyaWQsIG9yIHRyZWVncmlkLlxuXHQgKiBAc2VlIGFyaWEtY29saW5kZXguXG5cdCAqL1xuXHRcImFyaWEtY29sY291bnRcIj86IG51bWJlciB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgYW4gZWxlbWVudCdzIGNvbHVtbiBpbmRleCBvciBwb3NpdGlvbiB3aXRoIHJlc3BlY3QgdG8gdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIHdpdGhpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLWNvbGNvdW50IEBzZWUgYXJpYS1jb2xzcGFuLlxuXHQgKi9cblx0XCJhcmlhLWNvbGluZGV4XCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgaHVtYW4gcmVhZGFibGUgdGV4dCBhbHRlcm5hdGl2ZSBvZiBhcmlhLWNvbGluZGV4LlxuXHQgKiBAc2VlIGFyaWEtcm93aW5kZXh0ZXh0LlxuXHQgKi9cblx0XCJhcmlhLWNvbGluZGV4dGV4dFwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgc3Bhbm5lZCBieSBhIGNlbGwgb3IgZ3JpZGNlbGwgd2l0aGluIGEgdGFibGUsIGdyaWQsIG9yIHRyZWVncmlkLlxuXHQgKiBAc2VlIGFyaWEtY29saW5kZXggQHNlZSBhcmlhLXJvd3NwYW4uXG5cdCAqL1xuXHRcImFyaWEtY29sc3BhblwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSWRlbnRpZmllcyB0aGUgZWxlbWVudCAob3IgZWxlbWVudHMpIHdob3NlIGNvbnRlbnRzIG9yIHByZXNlbmNlIGFyZSBjb250cm9sbGVkIGJ5IHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqIEBzZWUgYXJpYS1vd25zLlxuXHQgKi9cblx0XCJhcmlhLWNvbnRyb2xzXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhlIGVsZW1lbnQgdGhhdCByZXByZXNlbnRzIHRoZSBjdXJyZW50IGl0ZW0gd2l0aGluIGEgY29udGFpbmVyIG9yIHNldCBvZiByZWxhdGVkIGVsZW1lbnRzLiAqL1xuXHRcImFyaWEtY3VycmVudFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwidHJ1ZVwiIHwgXCJwYWdlXCIgfCBcInN0ZXBcIiB8IFwibG9jYXRpb25cIiB8IFwiZGF0ZVwiIHwgXCJ0aW1lXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IChvciBlbGVtZW50cykgdGhhdCBkZXNjcmliZXMgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWxhYmVsbGVkYnlcblx0ICovXG5cdFwiYXJpYS1kZXNjcmliZWRieVwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGRlc2NyaWJlcyBvciBhbm5vdGF0ZXMgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICogQHNlZSByZWxhdGVkIGFyaWEtZGVzY3JpYmVkYnkuXG5cdCAqL1xuXHRcImFyaWEtZGVzY3JpcHRpb25cIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIElkZW50aWZpZXMgdGhlIGVsZW1lbnQgdGhhdCBwcm92aWRlcyBhIGRldGFpbGVkLCBleHRlbmRlZCBkZXNjcmlwdGlvbiBmb3IgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWRldGFpbHNcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGF0IHRoZSBlbGVtZW50IGlzIHBlcmNlaXZhYmxlIGJ1dCBkaXNhYmxlZCwgc28gaXQgaXMgbm90IGVkaXRhYmxlIG9yIG90aGVyd2lzZSBvcGVyYWJsZS5cblx0ICogQHNlZSBhcmlhLWhpZGRlbiBAc2VlIGFyaWEtcmVhZG9ubHkuXG5cdCAqL1xuXHRcImFyaWEtZGlzYWJsZWRcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hhdCBmdW5jdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCB3aGVuIGEgZHJhZ2dlZCBvYmplY3QgaXMgcmVsZWFzZWQgb24gdGhlIGRyb3AgdGFyZ2V0LlxuXHQgKiBAZGVwcmVjYXRlZCBpbiBBUklBIDEuMVxuXHQgKi9cblx0XCJhcmlhLWRyb3BlZmZlY3RcIj86IFwibm9uZVwiIHwgXCJjb3B5XCIgfCBcImV4ZWN1dGVcIiB8IFwibGlua1wiIHwgXCJtb3ZlXCIgfCBcInBvcHVwXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IHRoYXQgcHJvdmlkZXMgYW4gZXJyb3IgbWVzc2FnZSBmb3IgdGhlIG9iamVjdC5cblx0ICogQHNlZSBhcmlhLWludmFsaWQgQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWVycm9ybWVzc2FnZVwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQsIG9yIGFub3RoZXIgZ3JvdXBpbmcgZWxlbWVudCBpdCBjb250cm9scywgaXMgY3VycmVudGx5IGV4cGFuZGVkIG9yIGNvbGxhcHNlZC4gKi9cblx0XCJhcmlhLWV4cGFuZGVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSWRlbnRpZmllcyB0aGUgbmV4dCBlbGVtZW50IChvciBlbGVtZW50cykgaW4gYW4gYWx0ZXJuYXRlIHJlYWRpbmcgb3JkZXIgb2YgY29udGVudCB3aGljaCwgYXQgdGhlIHVzZXIncyBkaXNjcmV0aW9uLFxuXHQgKiBhbGxvd3MgYXNzaXN0aXZlIHRlY2hub2xvZ3kgdG8gb3ZlcnJpZGUgdGhlIGdlbmVyYWwgZGVmYXVsdCBvZiByZWFkaW5nIGluIGRvY3VtZW50IHNvdXJjZSBvcmRlci5cblx0ICovXG5cdFwiYXJpYS1mbG93dG9cIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyBhbiBlbGVtZW50J3MgXCJncmFiYmVkXCIgc3RhdGUgaW4gYSBkcmFnLWFuZC1kcm9wIG9wZXJhdGlvbi5cblx0ICogQGRlcHJlY2F0ZWQgaW4gQVJJQSAxLjFcblx0ICovXG5cdFwiYXJpYS1ncmFiYmVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHRoZSBhdmFpbGFiaWxpdHkgYW5kIHR5cGUgb2YgaW50ZXJhY3RpdmUgcG9wdXAgZWxlbWVudCwgc3VjaCBhcyBtZW51IG9yIGRpYWxvZywgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGFuIGVsZW1lbnQuICovXG5cdFwiYXJpYS1oYXNwb3B1cFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwidHJ1ZVwiIHwgXCJtZW51XCIgfCBcImxpc3Rib3hcIiB8IFwidHJlZVwiIHwgXCJncmlkXCIgfCBcImRpYWxvZ1wiIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgZXhwb3NlZCB0byBhbiBhY2Nlc3NpYmlsaXR5IEFQSS5cblx0ICogQHNlZSBhcmlhLWRpc2FibGVkLlxuXHQgKi9cblx0XCJhcmlhLWhpZGRlblwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgZW50ZXJlZCB2YWx1ZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuXHQgKiBAc2VlIGFyaWEtZXJyb3JtZXNzYWdlLlxuXHQgKi9cblx0XCJhcmlhLWludmFsaWRcIj86IGJvb2xlYW4gfCBcImZhbHNlXCIgfCBcInRydWVcIiB8IFwiZ3JhbW1hclwiIHwgXCJzcGVsbGluZ1wiIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIGtleWJvYXJkIHNob3J0Y3V0cyB0aGF0IGFuIGF1dGhvciBoYXMgaW1wbGVtZW50ZWQgdG8gYWN0aXZhdGUgb3IgZ2l2ZSBmb2N1cyB0byBhbiBlbGVtZW50LiAqL1xuXHRcImFyaWEta2V5c2hvcnRjdXRzXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGEgc3RyaW5nIHZhbHVlIHRoYXQgbGFiZWxzIHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqIEBzZWUgYXJpYS1sYWJlbGxlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWxhYmVsXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIHRoZSBlbGVtZW50IChvciBlbGVtZW50cykgdGhhdCBsYWJlbHMgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICogQHNlZSBhcmlhLWRlc2NyaWJlZGJ5LlxuXHQgKi9cblx0XCJhcmlhLWxhYmVsbGVkYnlcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIERlZmluZXMgdGhlIGhpZXJhcmNoaWNhbCBsZXZlbCBvZiBhbiBlbGVtZW50IHdpdGhpbiBhIHN0cnVjdHVyZS4gKi9cblx0XCJhcmlhLWxldmVsXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IHdpbGwgYmUgdXBkYXRlZCwgYW5kIGRlc2NyaWJlcyB0aGUgdHlwZXMgb2YgdXBkYXRlcyB0aGUgdXNlciBhZ2VudHMsIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMsIGFuZCB1c2VyIGNhbiBleHBlY3QgZnJvbSB0aGUgbGl2ZSByZWdpb24uICovXG5cdFwiYXJpYS1saXZlXCI/OiBcIm9mZlwiIHwgXCJhc3NlcnRpdmVcIiB8IFwicG9saXRlXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBlbGVtZW50IGlzIG1vZGFsIHdoZW4gZGlzcGxheWVkLiAqL1xuXHRcImFyaWEtbW9kYWxcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhIHRleHQgYm94IGFjY2VwdHMgbXVsdGlwbGUgbGluZXMgb2YgaW5wdXQgb3Igb25seSBhIHNpbmdsZSBsaW5lLiAqL1xuXHRcImFyaWEtbXVsdGlsaW5lXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHRoYXQgdGhlIHVzZXIgbWF5IHNlbGVjdCBtb3JlIHRoYW4gb25lIGl0ZW0gZnJvbSB0aGUgY3VycmVudCBzZWxlY3RhYmxlIGRlc2NlbmRhbnRzLiAqL1xuXHRcImFyaWEtbXVsdGlzZWxlY3RhYmxlXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVsZW1lbnQncyBvcmllbnRhdGlvbiBpcyBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgb3IgdW5rbm93bi9hbWJpZ3VvdXMuICovXG5cdFwiYXJpYS1vcmllbnRhdGlvblwiPzogXCJob3Jpem9udGFsXCIgfCBcInZlcnRpY2FsXCIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJZGVudGlmaWVzIGFuIGVsZW1lbnQgKG9yIGVsZW1lbnRzKSBpbiBvcmRlciB0byBkZWZpbmUgYSB2aXN1YWwsIGZ1bmN0aW9uYWwsIG9yIGNvbnRleHR1YWwgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcFxuXHQgKiBiZXR3ZWVuIERPTSBlbGVtZW50cyB3aGVyZSB0aGUgRE9NIGhpZXJhcmNoeSBjYW5ub3QgYmUgdXNlZCB0byByZXByZXNlbnQgdGhlIHJlbGF0aW9uc2hpcC5cblx0ICogQHNlZSBhcmlhLWNvbnRyb2xzLlxuXHQgKi9cblx0XCJhcmlhLW93bnNcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgYSBzaG9ydCBoaW50IChhIHdvcmQgb3Igc2hvcnQgcGhyYXNlKSBpbnRlbmRlZCB0byBhaWQgdGhlIHVzZXIgd2l0aCBkYXRhIGVudHJ5IHdoZW4gdGhlIGNvbnRyb2wgaGFzIG5vIHZhbHVlLlxuXHQgKiBBIGhpbnQgY291bGQgYmUgYSBzYW1wbGUgdmFsdWUgb3IgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0XCJhcmlhLXBsYWNlaG9sZGVyXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGFuIGVsZW1lbnQncyBudW1iZXIgb3IgcG9zaXRpb24gaW4gdGhlIGN1cnJlbnQgc2V0IG9mIGxpc3RpdGVtcyBvciB0cmVlaXRlbXMuIE5vdCByZXF1aXJlZCBpZiBhbGwgZWxlbWVudHMgaW4gdGhlIHNldCBhcmUgcHJlc2VudCBpbiB0aGUgRE9NLlxuXHQgKiBAc2VlIGFyaWEtc2V0c2l6ZS5cblx0ICovXG5cdFwiYXJpYS1wb3NpbnNldFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoZSBjdXJyZW50IFwicHJlc3NlZFwiIHN0YXRlIG9mIHRvZ2dsZSBidXR0b25zLlxuXHQgKiBAc2VlIGFyaWEtY2hlY2tlZCBAc2VlIGFyaWEtc2VsZWN0ZWQuXG5cdCAqL1xuXHRcImFyaWEtcHJlc3NlZFwiPzogYm9vbGVhbiB8IFwiZmFsc2VcIiB8IFwibWl4ZWRcIiB8IFwidHJ1ZVwiIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgaXMgbm90IGVkaXRhYmxlLCBidXQgaXMgb3RoZXJ3aXNlIG9wZXJhYmxlLlxuXHQgKiBAc2VlIGFyaWEtZGlzYWJsZWQuXG5cdCAqL1xuXHRcImFyaWEtcmVhZG9ubHlcIj86IEJvb2xlYW5pc2ggfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hhdCBub3RpZmljYXRpb25zIHRoZSB1c2VyIGFnZW50IHdpbGwgdHJpZ2dlciB3aGVuIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2l0aGluIGEgbGl2ZSByZWdpb24gaXMgbW9kaWZpZWQuXG5cdCAqIEBzZWUgYXJpYS1hdG9taWMuXG5cdCAqL1xuXHRcImFyaWEtcmVsZXZhbnRcIj86IFwiYWRkaXRpb25zXCIgfCBcImFkZGl0aW9ucyByZW1vdmFsc1wiIHwgXCJhZGRpdGlvbnMgdGV4dFwiIHwgXCJhbGxcIiB8IFwicmVtb3ZhbHNcIiB8IFwicmVtb3ZhbHMgYWRkaXRpb25zXCIgfCBcInJlbW92YWxzIHRleHRcIiB8IFwidGV4dFwiIHwgXCJ0ZXh0IGFkZGl0aW9uc1wiIHwgXCJ0ZXh0IHJlbW92YWxzXCIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgdGhhdCB1c2VyIGlucHV0IGlzIHJlcXVpcmVkIG9uIHRoZSBlbGVtZW50IGJlZm9yZSBhIGZvcm0gbWF5IGJlIHN1Ym1pdHRlZC4gKi9cblx0XCJhcmlhLXJlcXVpcmVkXCI/OiBCb29sZWFuaXNoIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyBhIGh1bWFuLXJlYWRhYmxlLCBhdXRob3ItbG9jYWxpemVkIGRlc2NyaXB0aW9uIGZvciB0aGUgcm9sZSBvZiBhbiBlbGVtZW50LiAqL1xuXHRcImFyaWEtcm9sZWRlc2NyaXB0aW9uXCI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cyBpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLXJvd2luZGV4LlxuXHQgKi9cblx0XCJhcmlhLXJvd2NvdW50XCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIGFuIGVsZW1lbnQncyByb3cgaW5kZXggb3IgcG9zaXRpb24gd2l0aCByZXNwZWN0IHRvIHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cyB3aXRoaW4gYSB0YWJsZSwgZ3JpZCwgb3IgdHJlZWdyaWQuXG5cdCAqIEBzZWUgYXJpYS1yb3djb3VudCBAc2VlIGFyaWEtcm93c3Bhbi5cblx0ICovXG5cdFwiYXJpYS1yb3dpbmRleFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKipcblx0ICogRGVmaW5lcyBhIGh1bWFuIHJlYWRhYmxlIHRleHQgYWx0ZXJuYXRpdmUgb2YgYXJpYS1yb3dpbmRleC5cblx0ICogQHNlZSBhcmlhLWNvbGluZGV4dGV4dC5cblx0ICovXG5cdFwiYXJpYS1yb3dpbmRleHRleHRcIj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIG51bWJlciBvZiByb3dzIHNwYW5uZWQgYnkgYSBjZWxsIG9yIGdyaWRjZWxsIHdpdGhpbiBhIHRhYmxlLCBncmlkLCBvciB0cmVlZ3JpZC5cblx0ICogQHNlZSBhcmlhLXJvd2luZGV4IEBzZWUgYXJpYS1jb2xzcGFuLlxuXHQgKi9cblx0XCJhcmlhLXJvd3NwYW5cIj86IG51bWJlciB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGUgY3VycmVudCBcInNlbGVjdGVkXCIgc3RhdGUgb2YgdmFyaW91cyB3aWRnZXRzLlxuXHQgKiBAc2VlIGFyaWEtY2hlY2tlZCBAc2VlIGFyaWEtcHJlc3NlZC5cblx0ICovXG5cdFwiYXJpYS1zZWxlY3RlZFwiPzogQm9vbGVhbmlzaCB8IHVuZGVmaW5lZDtcblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgY3VycmVudCBzZXQgb2YgbGlzdGl0ZW1zIG9yIHRyZWVpdGVtcy4gTm90IHJlcXVpcmVkIGlmIGFsbCBlbGVtZW50cyBpbiB0aGUgc2V0IGFyZSBwcmVzZW50IGluIHRoZSBET00uXG5cdCAqIEBzZWUgYXJpYS1wb3NpbnNldC5cblx0ICovXG5cdFwiYXJpYS1zZXRzaXplXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKiBJbmRpY2F0ZXMgaWYgaXRlbXMgaW4gYSB0YWJsZSBvciBncmlkIGFyZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgb3JkZXIuICovXG5cdFwiYXJpYS1zb3J0XCI/OiBcIm5vbmVcIiB8IFwiYXNjZW5kaW5nXCIgfCBcImRlc2NlbmRpbmdcIiB8IFwib3RoZXJcIiB8IHVuZGVmaW5lZDtcblx0LyoqIERlZmluZXMgdGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBmb3IgYSByYW5nZSB3aWRnZXQuICovXG5cdFwiYXJpYS12YWx1ZW1heFwiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyB0aGUgbWluaW11bSBhbGxvd2VkIHZhbHVlIGZvciBhIHJhbmdlIHdpZGdldC4gKi9cblx0XCJhcmlhLXZhbHVlbWluXCI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBjdXJyZW50IHZhbHVlIGZvciBhIHJhbmdlIHdpZGdldC5cblx0ICogQHNlZSBhcmlhLXZhbHVldGV4dC5cblx0ICovXG5cdFwiYXJpYS12YWx1ZW5vd1wiPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXHQvKiogRGVmaW5lcyB0aGUgaHVtYW4gcmVhZGFibGUgdGV4dCBhbHRlcm5hdGl2ZSBvZiBhcmlhLXZhbHVlbm93IGZvciBhIHJhbmdlIHdpZGdldC4gKi9cblx0XCJhcmlhLXZhbHVldGV4dFwiPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHQvKiogQWxsIHRoZSBXQUktQVJJQSAxLjEgcm9sZSBhdHRyaWJ1dGUgdmFsdWVzIGZyb20gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLTEuMS8jcm9sZV9kZWZpbml0aW9ucyAqL1xuXHRyb2xlPzogQXJpYVJvbGU7XG59O1xuZXhwb3J0IHR5cGUgQXJpYVJvbGUgPSBcImFsZXJ0XCIgfCBcImFsZXJ0ZGlhbG9nXCIgfCBcImFwcGxpY2F0aW9uXCIgfCBcImFydGljbGVcIiB8IFwiYmFubmVyXCIgfCBcImJ1dHRvblwiIHwgXCJjZWxsXCIgfCBcImNoZWNrYm94XCIgfCBcImNvbHVtbmhlYWRlclwiIHwgXCJjb21ib2JveFwiIHwgXCJjb21wbGVtZW50YXJ5XCIgfCBcImNvbnRlbnRpbmZvXCIgfCBcImRlZmluaXRpb25cIiB8IFwiZGlhbG9nXCIgfCBcImRpcmVjdG9yeVwiIHwgXCJkb2N1bWVudFwiIHwgXCJmZWVkXCIgfCBcImZpZ3VyZVwiIHwgXCJmb3JtXCIgfCBcImdyaWRcIiB8IFwiZ3JpZGNlbGxcIiB8IFwiZ3JvdXBcIiB8IFwiaGVhZGluZ1wiIHwgXCJpbWdcIiB8IFwibGlua1wiIHwgXCJsaXN0XCIgfCBcImxpc3Rib3hcIiB8IFwibGlzdGl0ZW1cIiB8IFwibG9nXCIgfCBcIm1haW5cIiB8IFwibWFycXVlZVwiIHwgXCJtYXRoXCIgfCBcIm1lbnVcIiB8IFwibWVudWJhclwiIHwgXCJtZW51aXRlbVwiIHwgXCJtZW51aXRlbWNoZWNrYm94XCIgfCBcIm1lbnVpdGVtcmFkaW9cIiB8IFwibmF2aWdhdGlvblwiIHwgXCJub25lXCIgfCBcIm5vdGVcIiB8IFwib3B0aW9uXCIgfCBcInByZXNlbnRhdGlvblwiIHwgXCJwcm9ncmVzc2JhclwiIHwgXCJyYWRpb1wiIHwgXCJyYWRpb2dyb3VwXCIgfCBcInJlZ2lvblwiIHwgXCJyb3dcIiB8IFwicm93Z3JvdXBcIiB8IFwicm93aGVhZGVyXCIgfCBcInNjcm9sbGJhclwiIHwgXCJzZWFyY2hcIiB8IFwic2VhcmNoYm94XCIgfCBcInNlcGFyYXRvclwiIHwgXCJzbGlkZXJcIiB8IFwic3BpbmJ1dHRvblwiIHwgXCJzdGF0dXNcIiB8IFwic3dpdGNoXCIgfCBcInRhYlwiIHwgXCJ0YWJsZVwiIHwgXCJ0YWJsaXN0XCIgfCBcInRhYnBhbmVsXCIgfCBcInRlcm1cIiB8IFwidGV4dGJveFwiIHwgXCJ0aW1lclwiIHwgXCJ0b29sYmFyXCIgfCBcInRvb2x0aXBcIiB8IFwidHJlZVwiIHwgXCJ0cmVlZ3JpZFwiIHwgXCJ0cmVlaXRlbVwiO1xuZGVjbGFyZSBjb25zdCBJQ09OX05BTUVTOiByZWFkb25seSBbXG5cdFwiMzYwXCIsXG5cdFwiYWNjZXNzaWJpbGl0eVwiLFxuXHRcImFjdGl2ZS1jYWJpbi12ZW50aWxhdGlvblwiLFxuXHRcImFkZFwiLFxuXHRcImFkanVzdFwiLFxuXHRcImFycm93LWRvdWJsZS1kb3duXCIsXG5cdFwiYXJyb3ctZG91YmxlLWxlZnRcIixcblx0XCJhcnJvdy1kb3VibGUtcmlnaHRcIixcblx0XCJhcnJvdy1kb3VibGUtdXBcIixcblx0XCJhcnJvdy1kb3duXCIsXG5cdFwiYXJyb3ctZmlyc3RcIixcblx0XCJhcnJvdy1oZWFkLWRvd25cIixcblx0XCJhcnJvdy1oZWFkLWxlZnRcIixcblx0XCJhcnJvdy1oZWFkLXJpZ2h0XCIsXG5cdFwiYXJyb3ctaGVhZC11cFwiLFxuXHRcImFycm93LWxhc3RcIixcblx0XCJhcnJvdy1sZWZ0XCIsXG5cdFwiYXJyb3ctcmlnaHRcIixcblx0XCJhcnJvdy11cFwiLFxuXHRcImF1Z21lbnRlZC1yZWFsaXR5XCIsXG5cdFwiYmF0dGVyeS1lbXB0eVwiLFxuXHRcImJhdHRlcnktZnVsbFwiLFxuXHRcImJlbGxcIixcblx0XCJib29rbWFya1wiLFxuXHRcImJyb2FkY2FzdFwiLFxuXHRcImNhbGN1bGF0b3JcIixcblx0XCJjYWxlbmRhclwiLFxuXHRcImNhbWVyYVwiLFxuXHRcImNhclwiLFxuXHRcImNhci1iYXR0ZXJ5XCIsXG5cdFwiY2FyZFwiLFxuXHRcImNoYXJnaW5nLWFjdGl2ZVwiLFxuXHRcImNoYXJnaW5nLXN0YXRlXCIsXG5cdFwiY2hhcmdpbmctc3RhdGlvblwiLFxuXHRcImNoYXJ0XCIsXG5cdFwiY2hhdFwiLFxuXHRcImNoZWNrXCIsXG5cdFwiY2l0eVwiLFxuXHRcImNsaW1hdGVcIixcblx0XCJjbGltYXRlLWNvbnRyb2xcIixcblx0XCJjbG9ja1wiLFxuXHRcImNsb3NlXCIsXG5cdFwiY2xvc2VkLWNhcHRpb25cIixcblx0XCJjbzItZW1pc3Npb25cIixcblx0XCJjb21wYXJlXCIsXG5cdFwiY29uZmlndXJhdGVcIixcblx0XCJjb3B5XCIsXG5cdFwiY291bnRyeS1yb2FkXCIsXG5cdFwiY3ViaWMtY2FwYWNpdHlcIixcblx0XCJkZWxldGVcIixcblx0XCJkaXNhYmxlXCIsXG5cdFwiZG9jdW1lbnRcIixcblx0XCJkb3dubG9hZFwiLFxuXHRcImR1cmF0aW9uXCIsXG5cdFwiZWRpdFwiLFxuXHRcImVtYWlsXCIsXG5cdFwiZXJyb3ItZmlsbGVkXCIsXG5cdFwiZXhjbGFtYXRpb25cIixcblx0XCJleHRlcm5hbFwiLFxuXHRcImZpbHRlclwiLFxuXHRcImZpbmdlcnByaW50XCIsXG5cdFwiZmxhc2hcIixcblx0XCJmdWVsLXN0YXRpb25cIixcblx0XCJnYXJhZ2VcIixcblx0XCJnaWZ0XCIsXG5cdFwiZ2xvYmVcIixcblx0XCJncmlkXCIsXG5cdFwiaGVhcnRcIixcblx0XCJoZWFydC1maWxsZWRcIixcblx0XCJoaWdod2F5XCIsXG5cdFwiaG9tZVwiLFxuXHRcImhvcm5cIixcblx0XCJpbWFnZVwiLFxuXHRcImluY3JlYXNlXCIsXG5cdFwiaW5mb3JtYXRpb25cIixcblx0XCJpbmZvcm1hdGlvbi1maWxsZWRcIixcblx0XCJrZXlcIixcblx0XCJsZWFmXCIsXG5cdFwibGVhdGhlclwiLFxuXHRcImxpZ2h0XCIsXG5cdFwibGlzdFwiLFxuXHRcImxvY2F0ZVwiLFxuXHRcImxvY2tcIixcblx0XCJsb2NrLW9wZW5cIixcblx0XCJsb2dvLWFwcGxlLXBvZGNhc3RcIixcblx0XCJsb2dvLWJhaWR1XCIsXG5cdFwibG9nby1kZWxpY2lvdXNcIixcblx0XCJsb2dvLWRpZ2dcIixcblx0XCJsb2dvLWZhY2Vib29rXCIsXG5cdFwibG9nby1mb3Vyc3F1YXJlXCIsXG5cdFwibG9nby1nbWFpbFwiLFxuXHRcImxvZ28tZ29vZ2xlXCIsXG5cdFwibG9nby1oYXRlbmFcIixcblx0XCJsb2dvLWluc3RhZ3JhbVwiLFxuXHRcImxvZ28ta2FpeGluXCIsXG5cdFwibG9nby1rYWthb3RhbGtcIixcblx0XCJsb2dvLWxpbmtlZGluXCIsXG5cdFwibG9nby1uYXZlclwiLFxuXHRcImxvZ28tcGludGVyZXN0XCIsXG5cdFwibG9nby1xcVwiLFxuXHRcImxvZ28tcXEtc2hhcmVcIixcblx0XCJsb2dvLXJlZGRpdFwiLFxuXHRcImxvZ28tc2t5cm9ja1wiLFxuXHRcImxvZ28tc29odVwiLFxuXHRcImxvZ28tc3BvdGlmeVwiLFxuXHRcImxvZ28tdGVjZW50XCIsXG5cdFwibG9nby10ZWxlZ3JhbVwiLFxuXHRcImxvZ28tdGlrdG9rXCIsXG5cdFwibG9nby10dW1ibHJcIixcblx0XCJsb2dvLXR3aXR0ZXJcIixcblx0XCJsb2dvLXZpYmVyXCIsXG5cdFwibG9nby12a1wiLFxuXHRcImxvZ28td2VjaGF0XCIsXG5cdFwibG9nby13ZWlib1wiLFxuXHRcImxvZ28td2hhdHNhcHBcIixcblx0XCJsb2dvLXhpbmdcIixcblx0XCJsb2dvLXlhaG9vXCIsXG5cdFwibG9nby15b3VrdVwiLFxuXHRcImxvZ28teW91dHViZVwiLFxuXHRcImxvZ291dFwiLFxuXHRcIm1hcFwiLFxuXHRcIm1lbnUtZG90cy1ob3Jpem9udGFsXCIsXG5cdFwibWVudS1kb3RzLXZlcnRpY2FsXCIsXG5cdFwibWVudS1saW5lc1wiLFxuXHRcIm1pbnVzXCIsXG5cdFwibW9iaWxlXCIsXG5cdFwibW9vblwiLFxuXHRcIm9pbC1jYW5cIixcblx0XCJwYXJraW5nLWJyYWtlXCIsXG5cdFwicGFya2luZy1saWdodFwiLFxuXHRcInBhdXNlXCIsXG5cdFwicGhvbmVcIixcblx0XCJwaW5cIixcblx0XCJwaW4tZmlsbGVkXCIsXG5cdFwicGxheVwiLFxuXHRcInBsdWdcIixcblx0XCJwbHVzXCIsXG5cdFwicHJlaGVhdGluZ1wiLFxuXHRcInByaW50ZXJcIixcblx0XCJwdXJjaGFzZVwiLFxuXHRcInB1c2gtcGluXCIsXG5cdFwicHVzaC1waW4tb2ZmXCIsXG5cdFwicXJcIixcblx0XCJxdWVzdGlvblwiLFxuXHRcInJhY2luZy1mbGFnXCIsXG5cdFwicmVmcmVzaFwiLFxuXHRcInJlcGxheVwiLFxuXHRcInJlc2V0XCIsXG5cdFwicm9vZi1jbG9zZWRcIixcblx0XCJyb29mLW9wZW5cIixcblx0XCJyb3V0ZVwiLFxuXHRcInJzc1wiLFxuXHRcInNhdmVcIixcblx0XCJzY3JlZW5cIixcblx0XCJzZWFyY2hcIixcblx0XCJzZW5kXCIsXG5cdFwic2hhcmVcIixcblx0XCJzaG9wcGluZy1iYWdcIixcblx0XCJzaG9wcGluZy1iYWctZmlsbGVkXCIsXG5cdFwic2hvcHBpbmctY2FydFwiLFxuXHRcInNob3BwaW5nLWNhcnQtZmlsbGVkXCIsXG5cdFwic2lkZWxpZ2h0c1wiLFxuXHRcInNub3dmbGFrZVwiLFxuXHRcInNvcnRcIixcblx0XCJzdGFja1wiLFxuXHRcInN0YXJcIixcblx0XCJzdGVlcmluZy13aGVlbFwiLFxuXHRcInN0b3B3YXRjaFwiLFxuXHRcInN1YnRyYWN0XCIsXG5cdFwic3VjY2Vzc1wiLFxuXHRcInN1Y2Nlc3MtZmlsbGVkXCIsXG5cdFwic3VuXCIsXG5cdFwic3dpdGNoXCIsXG5cdFwidGFibGV0XCIsXG5cdFwidGFjaG9tZXRlclwiLFxuXHRcInRpcmVcIixcblx0XCJ0cnVja1wiLFxuXHRcInVwbG9hZFwiLFxuXHRcInVzZXJcIixcblx0XCJ1c2VyLWZpbGxlZFwiLFxuXHRcInVzZXItZ3JvdXBcIixcblx0XCJ1c2VyLW1hbnVhbFwiLFxuXHRcInZpZGVvXCIsXG5cdFwidmlld1wiLFxuXHRcInZpZXctb2ZmXCIsXG5cdFwidm9sdW1lLW9mZlwiLFxuXHRcInZvbHVtZS11cFwiLFxuXHRcIndhcm5pbmdcIixcblx0XCJ3YXJuaW5nLWZpbGxlZFwiLFxuXHRcIndlaWdodFwiLFxuXHRcIndpZmlcIixcblx0XCJ3b3JrXCIsXG5cdFwid3JlbmNoXCIsXG5cdFwid3JlbmNoZXNcIixcblx0XCJ6b29tLWluXCIsXG5cdFwiem9vbS1vdXRcIlxuXTtcbmV4cG9ydCB0eXBlIEljb25OYW1lID0gdHlwZW9mIElDT05fTkFNRVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRk9STV9TVEFURVM6IHJlYWRvbmx5IFtcblx0XCJub25lXCIsXG5cdFwiZXJyb3JcIixcblx0XCJzdWNjZXNzXCJcbl07XG5leHBvcnQgdHlwZSBGb3JtU3RhdGUgPSB0eXBlb2YgRk9STV9TVEFURVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQlVUVE9OX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIixcblx0XCJhcmlhLWV4cGFuZGVkXCIsXG5cdFwiYXJpYS1wcmVzc2VkXCIsXG5cdFwiYXJpYS1oYXNwb3B1cFwiXG5dO1xuZXhwb3J0IHR5cGUgQnV0dG9uQXJpYUF0dHJpYnV0ZSA9IHR5cGVvZiBCVVRUT05fQVJJQV9BVFRSSUJVVEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IExJTktfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiLFxuXHRcImFyaWEtY3VycmVudFwiXG5dO1xuZXhwb3J0IHR5cGUgTGlua0FyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIExJTktfQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBicmVha3BvaW50czogcmVhZG9ubHkgW1xuXHRcImJhc2VcIixcblx0XCJ4c1wiLFxuXHRcInNcIixcblx0XCJtXCIsXG5cdFwibFwiLFxuXHRcInhsXCIsXG5cdFwieHhsXCJcbl07XG5leHBvcnQgdHlwZSBCcmVha3BvaW50ID0gKHR5cGVvZiBicmVha3BvaW50cylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEJyZWFrcG9pbnRWYWx1ZXM8VD4gPSB7XG5cdFtrZXkgaW4gQnJlYWtwb2ludF0/OiBUO1xufSAmIHtcblx0YmFzZTogVDtcbn07XG5leHBvcnQgdHlwZSBCcmVha3BvaW50Q3VzdG9taXphYmxlPFQ+ID0gVCB8IEJyZWFrcG9pbnRWYWx1ZXM8VD4gfCBzdHJpbmc7XG5kZWNsYXJlIGNvbnN0IFRIRU1FUzogcmVhZG9ubHkgW1xuXHRcImxpZ2h0XCIsXG5cdFwiZGFya1wiLFxuXHRcImF1dG9cIlxuXTtcbmV4cG9ydCB0eXBlIFRoZW1lID0gKHR5cGVvZiBUSEVNRVMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRJTEVfQVNQRUNUX1JBVElPUzogcmVhZG9ubHkgW1xuXHRcIjE6MVwiLFxuXHRcIjQ6M1wiLFxuXHRcIjM6NFwiLFxuXHRcIjE2OjlcIixcblx0XCI5OjE2XCJcbl07XG5leHBvcnQgdHlwZSBUaWxlQXNwZWN0UmF0aW8gPSAodHlwZW9mIFRJTEVfQVNQRUNUX1JBVElPUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVElMRV9TSVpFUzogcmVhZG9ubHkgW1xuXHRcImRlZmF1bHRcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBUaWxlU2l6ZSA9ICh0eXBlb2YgVElMRV9TSVpFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVElMRV9XRUlHSFRTOiByZWFkb25seSBbXG5cdFwicmVndWxhclwiLFxuXHRcInNlbWktYm9sZFwiXG5dO1xuZXhwb3J0IHR5cGUgVGlsZVdlaWdodCA9ICh0eXBlb2YgVElMRV9XRUlHSFRTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGlsZUJhY2tncm91bmQgPSAodHlwZW9mIFRIRU1FUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVElMRV9BTElHTlM6IHJlYWRvbmx5IFtcblx0XCJ0b3BcIixcblx0XCJib3R0b21cIlxuXTtcbmV4cG9ydCB0eXBlIFRpbGVBbGlnbiA9ICh0eXBlb2YgVElMRV9BTElHTlMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFNDUk9MTEVSX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcInJvbGVcIlxuXTtcbmV4cG9ydCB0eXBlIFNjcm9sbGVyQXJpYUF0dHJpYnV0ZSA9ICh0eXBlb2YgU0NST0xMRVJfQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUkFESUVOVF9DT0xPUl9TQ0hFTUVTOiByZWFkb25seSBbXG5cdFwiZGVmYXVsdFwiLFxuXHRcInN1cmZhY2VcIlxuXTtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgU2Nyb2xsZXJHcmFkaWVudENvbG9yU2NoZW1lID0gKHR5cGVvZiBHUkFESUVOVF9DT0xPUl9TQ0hFTUVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUkFESUVOVF9DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJiYWNrZ3JvdW5kLWJhc2VcIixcblx0XCJiYWNrZ3JvdW5kLXN1cmZhY2VcIlxuXTtcbmV4cG9ydCB0eXBlIFNjcm9sbGVyR3JhZGllbnRDb2xvciA9ICh0eXBlb2YgR1JBRElFTlRfQ09MT1JTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgU2Nyb2xsZXJTY3JvbGxUb1Bvc2l0aW9uID0ge1xuXHRzY3JvbGxQb3NpdGlvbjogbnVtYmVyO1xuXHRpc1Ntb290aD86IGJvb2xlYW47XG59IHwgc3RyaW5nO1xuZGVjbGFyZSBjb25zdCBTQ1JPTExfSU5ESUNBVE9SX1BPU0lUSU9OUzogcmVhZG9ubHkgW1xuXHRcInRvcFwiLFxuXHRcImNlbnRlclwiXG5dO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBTY3JvbGxlclNjcm9sbEluZGljYXRvclBvc2l0aW9uID0gKHR5cGVvZiBTQ1JPTExfSU5ESUNBVE9SX1BPU0lUSU9OUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFNjcm9sbGVyQWxpZ25TY3JvbGxJbmRpY2F0b3IgPSBTY3JvbGxlclNjcm9sbEluZGljYXRvclBvc2l0aW9uO1xuZGVjbGFyZSBjb25zdCBTRUxFQ1RfRFJPUERPV05fRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcImRvd25cIixcblx0XCJ1cFwiLFxuXHRcImF1dG9cIlxuXTtcbmV4cG9ydCB0eXBlIFNlbGVjdERyb3Bkb3duRGlyZWN0aW9uID0gKHR5cGVvZiBTRUxFQ1RfRFJPUERPV05fRElSRUNUSU9OUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVFlQT0dSQVBIWV9BTElHTlM6IHJlYWRvbmx5IFtcblx0XCJzdGFydFwiLFxuXHRcImNlbnRlclwiLFxuXHRcImVuZFwiLFxuXHRcImxlZnRcIixcblx0XCJyaWdodFwiXG5dO1xuZXhwb3J0IHR5cGUgVHlwb2dyYXBoeUFsaWduID0gKHR5cGVvZiBUWVBPR1JBUEhZX0FMSUdOUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQUxJR05fTEFCRUxTOiByZWFkb25seSBbXG5cdFwic3RhcnRcIixcblx0XCJlbmRcIixcblx0XCJsZWZ0XCIsXG5cdFwicmlnaHRcIlxuXTtcbmV4cG9ydCB0eXBlIEFsaWduTGFiZWwgPSAodHlwZW9mIEFMSUdOX0xBQkVMUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQlVUVE9OX1RZUEVTOiByZWFkb25seSBbXG5cdFwiYnV0dG9uXCIsXG5cdFwic3VibWl0XCIsXG5cdFwicmVzZXRcIlxuXTtcbmV4cG9ydCB0eXBlIEJ1dHRvblR5cGUgPSB0eXBlb2YgQlVUVE9OX1RZUEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEhFQURJTkdfVEFHUzogcmVhZG9ubHkgW1xuXHRcImgxXCIsXG5cdFwiaDJcIixcblx0XCJoM1wiLFxuXHRcImg0XCIsXG5cdFwiaDVcIixcblx0XCJoNlwiXG5dO1xuZXhwb3J0IHR5cGUgSGVhZGluZ1RhZyA9IHR5cGVvZiBIRUFESU5HX1RBR1NbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTElOS19CVVRUT05fVkFSSUFOVFM6IHJlYWRvbmx5IFtcblx0XCJwcmltYXJ5XCIsXG5cdFwic2Vjb25kYXJ5XCIsXG5cdFwidGVydGlhcnlcIlxuXTtcbmV4cG9ydCB0eXBlIExpbmtCdXR0b25WYXJpYW50ID0gdHlwZW9mIExJTktfQlVUVE9OX1ZBUklBTlRTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRFWFRfQ09MT1JTOiByZWFkb25seSBbXG5cdFwicHJpbWFyeVwiLFxuXHRcImNvbnRyYXN0LWxvd1wiLFxuXHRcImNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcImNvbnRyYXN0LWhpZ2hcIixcblx0XCJub3RpZmljYXRpb24tc3VjY2Vzc1wiLFxuXHRcIm5vdGlmaWNhdGlvbi13YXJuaW5nXCIsXG5cdFwibm90aWZpY2F0aW9uLWVycm9yXCIsXG5cdFwibm90aWZpY2F0aW9uLWluZm9cIixcblx0XCJpbmhlcml0XCIsXG5cdFwiYnJhbmRcIixcblx0XCJkZWZhdWx0XCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1sb3dcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtaGlnaFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1uZXV0cmFsXCJcbl07XG5leHBvcnQgdHlwZSBUZXh0Q29sb3IgPSAodHlwZW9mIFRFWFRfQ09MT1JTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBURVhUX1NJWkVTOiByZWFkb25seSBbXG5cdFwieHgtc21hbGxcIixcblx0XCJ4LXNtYWxsXCIsXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIixcblx0XCJsYXJnZVwiLFxuXHRcIngtbGFyZ2VcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBUZXh0U2l6ZSA9ICh0eXBlb2YgVEVYVF9TSVpFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgVEVYVF9XRUlHSFRTOiByZWFkb25seSBbXG5cdFwicmVndWxhclwiLFxuXHRcInNlbWktYm9sZFwiLFxuXHRcImJvbGRcIixcblx0XCJ0aGluXCIsXG5cdFwic2VtaWJvbGRcIlxuXTtcbmV4cG9ydCB0eXBlIFRleHRXZWlnaHQgPSAodHlwZW9mIFRFWFRfV0VJR0hUUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTElOS19UQVJHRVRTOiByZWFkb25seSBbXG5cdFwiX3NlbGZcIixcblx0XCJfYmxhbmtcIixcblx0XCJfcGFyZW50XCIsXG5cdFwiX3RvcFwiXG5dO1xuZXhwb3J0IHR5cGUgTGlua1RhcmdldCA9ICh0eXBlb2YgTElOS19UQVJHRVRTKVtudW1iZXJdIHwgc3RyaW5nO1xuZXhwb3J0IHR5cGUgTGlua0J1dHRvbkljb25OYW1lID0gSWNvbk5hbWUgfCBcIm5vbmVcIjtcbmV4cG9ydCB0eXBlIEJ1dHRvblZhcmlhbnQgPSBMaW5rQnV0dG9uVmFyaWFudDtcbmV4cG9ydCB0eXBlIExpbmtWYXJpYW50ID0gTGlua0J1dHRvblZhcmlhbnQ7XG4vLyBUT0RPOiBTaGFyZSB0eXBlIGFjcm9zcyByZXBvXG5leHBvcnQgdHlwZSBQb3JzY2hlRGVzaWduU3lzdGVtID0ge1xuXHRba2V5OiBgJHtudW1iZXJ9LiR7bnVtYmVyfS4ke251bWJlcn0ke2AtcmMuJHtudW1iZXJ9YCB8IFwiXCJ9YF06IHtcblx0XHRwcmVmaXhlczogc3RyaW5nW107XG5cdFx0aXNSZWFkeTogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblx0XHRyZWFkeVJlc29sdmU6ICgpID0+IHZvaWQ7XG5cdH07XG5cdGNkbjoge1xuXHRcdHVybDogc3RyaW5nO1xuXHRcdHByZWZpeGVzOiBzdHJpbmdbXTsgLy8gdG8gbm90IGJyZWFrIG9sZGVyIHZlcnNpb25zXG5cdH07XG59O1xuZXhwb3J0IHR5cGUgU2VsZWN0ZWRBcmlhQXR0cmlidXRlczxUIGV4dGVuZHMga2V5b2YgQXJpYUF0dHJpYnV0ZXM+ID0gUGljazxBcmlhQXR0cmlidXRlcywgVD4gfCBzdHJpbmc7XG5kZWNsYXJlIGNvbnN0IEFDQ09SRElPTl9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCJcbl07XG5leHBvcnQgdHlwZSBBY2NvcmRpb25TaXplID0gKHR5cGVvZiBBQ0NPUkRJT05fU0laRVMpW251bWJlcl07XG5leHBvcnQgdHlwZSBBY2NvcmRpb25VcGRhdGVFdmVudCA9IHtcblx0b3BlbjogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBBY2NvcmRpb25UYWcgPSBIZWFkaW5nVGFnO1xuZGVjbGFyZSBjb25zdCBCQU5ORVJfU1RBVEVTOiByZWFkb25seSBbXG5cdFwiaW5mb1wiLFxuXHRcIndhcm5pbmdcIixcblx0XCJlcnJvclwiLFxuXHRcIm5ldXRyYWxcIlxuXTtcbmV4cG9ydCB0eXBlIEJhbm5lclN0YXRlID0gdHlwZW9mIEJBTk5FUl9TVEFURVNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQkFOTkVSX1dJRFRIUzogcmVhZG9ubHkgW1xuXHRcImV4dGVuZGVkXCIsXG5cdFwiYmFzaWNcIixcblx0XCJmbHVpZFwiXG5dO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBCYW5uZXJXaWR0aCA9IHR5cGVvZiBCQU5ORVJfV0lEVEhTW251bWJlcl07XG5leHBvcnQgdHlwZSBCdXR0b25JY29uID0gTGlua0J1dHRvbkljb25OYW1lO1xuZGVjbGFyZSBjb25zdCBHUk9VUF9ESVJFQ1RJT05TOiByZWFkb25seSBbXG5cdFwicm93XCIsXG5cdFwiY29sdW1uXCJcbl07XG5leHBvcnQgdHlwZSBHcm91cERpcmVjdGlvbiA9ICh0eXBlb2YgR1JPVVBfRElSRUNUSU9OUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEJ1dHRvbkdyb3VwRGlyZWN0aW9uID0gR3JvdXBEaXJlY3Rpb247XG5leHBvcnQgdHlwZSBCdXR0b25QdXJlVHlwZSA9IEJ1dHRvblR5cGU7XG5leHBvcnQgdHlwZSBCdXR0b25QdXJlSWNvbiA9IExpbmtCdXR0b25JY29uTmFtZTtcbmV4cG9ydCB0eXBlIEJ1dHRvblB1cmVBcmlhQXR0cmlidXRlID0gQnV0dG9uQXJpYUF0dHJpYnV0ZTtcbmV4cG9ydCB0eXBlIEJ1dHRvblB1cmVBbGlnbkxhYmVsID0gQWxpZ25MYWJlbDtcbmV4cG9ydCB0eXBlIEJ1dHRvblB1cmVXZWlnaHQgPSBUZXh0V2VpZ2h0O1xuZXhwb3J0IHR5cGUgQnV0dG9uUHVyZVNpemUgPSBUZXh0U2l6ZTtcbmV4cG9ydCB0eXBlIEJ1dHRvblRpbGVBcmlhQXR0cmlidXRlID0gQnV0dG9uQXJpYUF0dHJpYnV0ZTtcbmV4cG9ydCB0eXBlIEJ1dHRvblRpbGVJY29uID0gTGlua0J1dHRvbkljb25OYW1lO1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZVR5cGUgPSBCdXR0b25UeXBlO1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZUFzcGVjdFJhdGlvID0gVGlsZUFzcGVjdFJhdGlvO1xuZXhwb3J0IHR5cGUgQnV0dG9uVGlsZVNpemUgPSBUaWxlU2l6ZTtcbmV4cG9ydCB0eXBlIEJ1dHRvblRpbGVCYWNrZ3JvdW5kID0gVGlsZUJhY2tncm91bmQ7XG5leHBvcnQgdHlwZSBCdXR0b25UaWxlV2VpZ2h0ID0gVGlsZVdlaWdodDtcbmV4cG9ydCB0eXBlIEJ1dHRvblRpbGVBbGlnbiA9IFRpbGVBbGlnbjtcbmRlY2xhcmUgY29uc3QgQ0FST1VTRUxfV0lEVEhTOiByZWFkb25seSBbXG5cdFwiYmFzaWNcIixcblx0XCJleHRlbmRlZFwiXG5dO1xuZXhwb3J0IHR5cGUgQ2Fyb3VzZWxXaWR0aCA9ICh0eXBlb2YgQ0FST1VTRUxfV0lEVEhTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBDQVJPVVNFTF9BTElHTl9IRUFERVJTOiByZWFkb25seSBbXG5cdFwic3RhcnRcIixcblx0XCJjZW50ZXJcIixcblx0XCJsZWZ0XCJcbl07XG5leHBvcnQgdHlwZSBDYXJvdXNlbEFsaWduSGVhZGVyID0gKHR5cGVvZiBDQVJPVVNFTF9BTElHTl9IRUFERVJTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgQ2Fyb3VzZWxJbnRlcm5hdGlvbmFsaXphdGlvbiA9IFBhcnRpYWw8UmVjb3JkPFwicHJldlwiIHwgXCJuZXh0XCIgfCBcImZpcnN0XCIgfCBcImxhc3RcIiB8IFwic2xpZGVMYWJlbFwiIHwgXCJzbGlkZVwiLCBzdHJpbmc+PiB8IHN0cmluZztcbmV4cG9ydCB0eXBlIENhcm91c2VsVXBkYXRlRXZlbnQgPSB7XG5cdGFjdGl2ZUluZGV4OiBudW1iZXI7XG5cdHByZXZpb3VzSW5kZXg6IG51bWJlcjtcbn07XG5leHBvcnQgdHlwZSBDaGVja2JveFdyYXBwZXJTdGF0ZSA9IEZvcm1TdGF0ZTtcbmRlY2xhcmUgY29uc3QgQ09OVEVOVF9XUkFQUEVSX0JBQ0tHUk9VTkRfQ09MT1JTOiByZWFkb25seSBbXG5cdFwidHJhbnNwYXJlbnRcIixcblx0XCJkZWZhdWx0XCJcbl07XG5leHBvcnQgdHlwZSBDb250ZW50V3JhcHBlckJhY2tncm91bmRDb2xvciA9IHR5cGVvZiBDT05URU5UX1dSQVBQRVJfQkFDS0dST1VORF9DT0xPUlNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgQ09OVEVOVF9XUkFQUEVSX1dJRFRIUzogcmVhZG9ubHkgW1xuXHRcIm5hcnJvd1wiLFxuXHRcImJhc2ljXCIsXG5cdFwiZXh0ZW5kZWRcIixcblx0XCJmbHVpZFwiLFxuXHRcImZ1bGxcIlxuXTtcbmV4cG9ydCB0eXBlIENvbnRlbnRXcmFwcGVyV2lkdGggPSB0eXBlb2YgQ09OVEVOVF9XUkFQUEVSX1dJRFRIU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgQ3Jlc3RUYXJnZXQgPSBMaW5rVGFyZ2V0O1xuZXhwb3J0IHR5cGUgQ3Jlc3RBcmlhQXR0cmlidXRlID0gTGlua0FyaWFBdHRyaWJ1dGU7XG5kZWNsYXJlIGNvbnN0IERJU1BMQVlfVEFHUzogcmVhZG9ubHkgW1xuXHRcImgxXCIsXG5cdFwiaDJcIixcblx0XCJoM1wiLFxuXHRcImg0XCIsXG5cdFwiaDVcIixcblx0XCJoNlwiXG5dO1xuZXhwb3J0IHR5cGUgRGlzcGxheVRhZyA9ICh0eXBlb2YgRElTUExBWV9UQUdTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBESVNQTEFZX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIixcblx0XCJsYXJnZVwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIERpc3BsYXlTaXplID0gKHR5cGVvZiBESVNQTEFZX1NJWkVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBESVNQTEFZX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBEaXNwbGF5Q29sb3IgPSAodHlwZW9mIERJU1BMQVlfQ09MT1JTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgRGlzcGxheUFsaWduID0gVHlwb2dyYXBoeUFsaWduO1xuZGVjbGFyZSBjb25zdCBESVZJREVSX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcImNvbnRyYXN0LWxvd1wiLFxuXHRcImNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcImNvbnRyYXN0LWhpZ2hcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LWhpZ2hcIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LW1lZGl1bVwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtbG93XCJcbl07XG5leHBvcnQgdHlwZSBEaXZpZGVyQ29sb3IgPSB0eXBlb2YgRElWSURFUl9DT0xPUlNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRElWSURFUl9ESVJFQ1RJT05TOiByZWFkb25seSBbXG5cdFwidmVydGljYWxcIixcblx0XCJob3Jpem9udGFsXCJcbl07XG5leHBvcnQgdHlwZSBEaXZpZGVyRGlyZWN0aW9uID0gdHlwZW9mIERJVklERVJfRElSRUNUSU9OU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgRGl2aWRlck9yaWVudGF0aW9uID0gRGl2aWRlckRpcmVjdGlvbjtcbmRlY2xhcmUgY29uc3QgRklFTERTRVRfTEFCRUxfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiXG5dO1xuZXhwb3J0IHR5cGUgRmllbGRzZXRMYWJlbFNpemUgPSAodHlwZW9mIEZJRUxEU0VUX0xBQkVMX1NJWkVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgRmllbGRzZXRTdGF0ZSA9IEZvcm1TdGF0ZTtcbmV4cG9ydCB0eXBlIEZpZWxkc2V0V3JhcHBlckxhYmVsU2l6ZSA9IEZpZWxkc2V0TGFiZWxTaXplO1xuZXhwb3J0IHR5cGUgRmllbGRzZXRXcmFwcGVyU3RhdGUgPSBGaWVsZHNldFN0YXRlO1xuZXhwb3J0IHR5cGUgRmxleElubGluZSA9IGJvb2xlYW47XG5kZWNsYXJlIGNvbnN0IEZMRVhfV1JBUFM6IHJlYWRvbmx5IFtcblx0XCJub3dyYXBcIixcblx0XCJ3cmFwXCIsXG5cdFwid3JhcC1yZXZlcnNlXCJcbl07XG5leHBvcnQgdHlwZSBGbGV4V3JhcCA9IHR5cGVvZiBGTEVYX1dSQVBTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcInJvd1wiLFxuXHRcInJvdy1yZXZlcnNlXCIsXG5cdFwiY29sdW1uXCIsXG5cdFwiY29sdW1uLXJldmVyc2VcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhEaXJlY3Rpb24gPSB0eXBlb2YgRkxFWF9ESVJFQ1RJT05TW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSlVTVElGWV9DT05URU5UUzogcmVhZG9ubHkgW1xuXHRcImZsZXgtc3RhcnRcIixcblx0XCJmbGV4LWVuZFwiLFxuXHRcImNlbnRlclwiLFxuXHRcInNwYWNlLWJldHdlZW5cIixcblx0XCJzcGFjZS1hcm91bmRcIixcblx0XCJzcGFjZS1ldmVubHlcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhKdXN0aWZ5Q29udGVudCA9IHR5cGVvZiBGTEVYX0pVU1RJRllfQ09OVEVOVFNbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxFWF9BTElHTl9JVEVNUzogcmVhZG9ubHkgW1xuXHRcInN0cmV0Y2hcIixcblx0XCJmbGV4LXN0YXJ0XCIsXG5cdFwiZmxleC1lbmRcIixcblx0XCJjZW50ZXJcIixcblx0XCJiYXNlbGluZVwiXG5dO1xuZXhwb3J0IHR5cGUgRmxleEFsaWduSXRlbXMgPSB0eXBlb2YgRkxFWF9BTElHTl9JVEVNU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0FMSUdOX0NPTlRFTlRTOiByZWFkb25seSBbXG5cdFwic3RyZXRjaFwiLFxuXHRcImZsZXgtc3RhcnRcIixcblx0XCJmbGV4LWVuZFwiLFxuXHRcImNlbnRlclwiLFxuXHRcInNwYWNlLWJldHdlZW5cIixcblx0XCJzcGFjZS1hcm91bmRcIixcblx0XCJzcGFjZS1ldmVubHlcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhBbGlnbkNvbnRlbnQgPSB0eXBlb2YgRkxFWF9BTElHTl9DT05URU5UU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0lURU1fV0lEVEhTOiByZWFkb25seSBbXG5cdFwiYXV0b1wiLFxuXHRcIm9uZS1xdWFydGVyXCIsXG5cdFwib25lLXRoaXJkXCIsXG5cdFwiaGFsZlwiLFxuXHRcInR3by10aGlyZHNcIixcblx0XCJ0aHJlZS1xdWFydGVyc1wiLFxuXHRcImZ1bGxcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtV2lkdGggPSB0eXBlb2YgRkxFWF9JVEVNX1dJRFRIU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0lURU1fT0ZGU0VUUzogcmVhZG9ubHkgW1xuXHRcIm5vbmVcIixcblx0XCJvbmUtcXVhcnRlclwiLFxuXHRcIm9uZS10aGlyZFwiLFxuXHRcImhhbGZcIixcblx0XCJ0d28tdGhpcmRzXCIsXG5cdFwidGhyZWUtcXVhcnRlcnNcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtT2Zmc2V0ID0gdHlwZW9mIEZMRVhfSVRFTV9PRkZTRVRTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSVRFTV9BTElHTl9TRUxGUzogcmVhZG9ubHkgW1xuXHRcImF1dG9cIixcblx0XCJmbGV4LXN0YXJ0XCIsXG5cdFwiZmxleC1lbmRcIixcblx0XCJjZW50ZXJcIixcblx0XCJiYXNlbGluZVwiLFxuXHRcInN0cmV0Y2hcIlxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtQWxpZ25TZWxmID0gdHlwZW9mIEZMRVhfSVRFTV9BTElHTl9TRUxGU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBGTEVYX0lURU1fR1JPV1M6IHJlYWRvbmx5IFtcblx0MCxcblx0MVxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtR3JvdyA9IHR5cGVvZiBGTEVYX0lURU1fR1JPV1NbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgRkxFWF9JVEVNX1NIUklOS1M6IHJlYWRvbmx5IFtcblx0MCxcblx0MVxuXTtcbmV4cG9ydCB0eXBlIEZsZXhJdGVtU2hyaW5rID0gdHlwZW9mIEZMRVhfSVRFTV9TSFJJTktTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMRVhfSVRFTV9GTEVYUzogcmVhZG9ubHkgW1xuXHRcImluaXRpYWxcIixcblx0XCJhdXRvXCIsXG5cdFwibm9uZVwiLFxuXHRcImVxdWFsXCJcbl07XG5leHBvcnQgdHlwZSBGbGV4SXRlbUZsZXggPSB0eXBlb2YgRkxFWF9JVEVNX0ZMRVhTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMWU9VVF9QT1NJVElPTlM6IHJlYWRvbmx5IFtcblx0XCJzdGFydFwiLFxuXHRcImVuZFwiLFxuXHRcImxlZnRcIixcblx0XCJyaWdodFwiXG5dO1xuZXhwb3J0IHR5cGUgRmx5b3V0UG9zaXRpb24gPSAodHlwZW9mIEZMWU9VVF9QT1NJVElPTlMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEZMWU9VVF9BUklBX0FUVFJJQlVURVM6IHJlYWRvbmx5IFtcblx0XCJhcmlhLWxhYmVsXCJcbl07XG5leHBvcnQgdHlwZSBGbHlvdXRBcmlhQXR0cmlidXRlID0gKHR5cGVvZiBGTFlPVVRfQVJJQV9BVFRSSUJVVEVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUklEX0RJUkVDVElPTlM6IHJlYWRvbmx5IFtcblx0XCJyb3dcIixcblx0XCJyb3ctcmV2ZXJzZVwiLFxuXHRcImNvbHVtblwiLFxuXHRcImNvbHVtbi1yZXZlcnNlXCJcbl07XG5leHBvcnQgdHlwZSBHcmlkRGlyZWN0aW9uID0gdHlwZW9mIEdSSURfRElSRUNUSU9OU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUklEX1dSQVBTOiByZWFkb25seSBbXG5cdFwibm93cmFwXCIsXG5cdFwid3JhcFwiXG5dO1xuZXhwb3J0IHR5cGUgR3JpZFdyYXAgPSB0eXBlb2YgR1JJRF9XUkFQU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUklEX0dVVFRFUlM6IHJlYWRvbmx5IFtcblx0MTYsXG5cdDI0LFxuXHQzNlxuXTtcbmV4cG9ydCB0eXBlIEdyaWRHdXR0ZXIgPSB0eXBlb2YgR1JJRF9HVVRURVJTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEdSSURfSVRFTV9TSVpFUzogcmVhZG9ubHkgW1xuXHQxLFxuXHQyLFxuXHQzLFxuXHQ0LFxuXHQ1LFxuXHQ2LFxuXHQ3LFxuXHQ4LFxuXHQ5LFxuXHQxMCxcblx0MTEsXG5cdDEyXG5dO1xuZXhwb3J0IHR5cGUgR3JpZEl0ZW1TaXplID0gdHlwZW9mIEdSSURfSVRFTV9TSVpFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBHUklEX0lURU1fT0ZGU0VUUzogcmVhZG9ubHkgW1xuXHQwLFxuXHQxLFxuXHQyLFxuXHQzLFxuXHQ0LFxuXHQ1LFxuXHQ2LFxuXHQ3LFxuXHQ4LFxuXHQ5LFxuXHQxMCxcblx0MTFcbl07XG5leHBvcnQgdHlwZSBHcmlkSXRlbU9mZnNldCA9IHR5cGVvZiBHUklEX0lURU1fT0ZGU0VUU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBIRUFESU5HX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJtZWRpdW1cIixcblx0XCJsYXJnZVwiLFxuXHRcIngtbGFyZ2VcIixcblx0XCJ4eC1sYXJnZVwiLFxuXHRcImluaGVyaXRcIlxuXTtcbmV4cG9ydCB0eXBlIEhlYWRpbmdTaXplID0gKHR5cGVvZiBIRUFESU5HX1NJWkVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBIRUFESU5HX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBIZWFkaW5nQ29sb3IgPSAodHlwZW9mIEhFQURJTkdfQ09MT1JTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgSGVhZGluZ0FsaWduID0gVHlwb2dyYXBoeUFsaWduO1xuZGVjbGFyZSBjb25zdCBIRUFETElORV9WQVJJQU5UUzogcmVhZG9ubHkgW1xuXHRcImxhcmdlLXRpdGxlXCIsXG5cdFwiaGVhZGxpbmUtMVwiLFxuXHRcImhlYWRsaW5lLTJcIixcblx0XCJoZWFkbGluZS0zXCIsXG5cdFwiaGVhZGxpbmUtNFwiLFxuXHRcImhlYWRsaW5lLTVcIlxuXTtcbmV4cG9ydCB0eXBlIEhlYWRsaW5lVmFyaWFudFR5cGUgPSAodHlwZW9mIEhFQURMSU5FX1ZBUklBTlRTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgSGVhZGxpbmVWYXJpYW50Q3VzdG9tID0gRXhjbHVkZTxCcmVha3BvaW50Q3VzdG9taXphYmxlPFRleHRTaXplPiwgVGV4dFNpemU+O1xuZXhwb3J0IHR5cGUgSGVhZGxpbmVWYXJpYW50ID0gSGVhZGxpbmVWYXJpYW50VHlwZSB8IEhlYWRsaW5lVmFyaWFudEN1c3RvbSB8IEV4dHJhY3Q8VGV4dFNpemUsIFwiaW5oZXJpdFwiPjtcbmRlY2xhcmUgY29uc3QgSEVBRExJTkVfVEFHUzogcmVhZG9ubHkgW1xuXHRcImgxXCIsXG5cdFwiaDJcIixcblx0XCJoM1wiLFxuXHRcImg0XCIsXG5cdFwiaDVcIixcblx0XCJoNlwiXG5dO1xuZXhwb3J0IHR5cGUgSGVhZGxpbmVUYWcgPSAodHlwZW9mIEhFQURMSU5FX1RBR1MpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IEhFQURMSU5FX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJkZWZhdWx0XCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgSGVhZGxpbmVDb2xvciA9ICh0eXBlb2YgSEVBRExJTkVfQ09MT1JTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgSGVhZGxpbmVBbGlnbiA9IFR5cG9ncmFwaHlBbGlnbjtcbmRlY2xhcmUgY29uc3QgSUNPTl9BUklBX0FUVFJJQlVURVM6IHJlYWRvbmx5IFtcblx0XCJhcmlhLWxhYmVsXCJcbl07XG5leHBvcnQgdHlwZSBJY29uQXJpYUF0dHJpYnV0ZSA9ICh0eXBlb2YgSUNPTl9BUklBX0FUVFJJQlVURVMpW251bWJlcl07XG5leHBvcnQgdHlwZSBJY29uU2l6ZSA9IFRleHRTaXplO1xuZGVjbGFyZSBjb25zdCBJQ09OX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJjb250cmFzdC1sb3dcIixcblx0XCJjb250cmFzdC1tZWRpdW1cIixcblx0XCJjb250cmFzdC1oaWdoXCIsXG5cdFwibm90aWZpY2F0aW9uLXN1Y2Nlc3NcIixcblx0XCJub3RpZmljYXRpb24td2FybmluZ1wiLFxuXHRcIm5vdGlmaWNhdGlvbi1lcnJvclwiLFxuXHRcIm5vdGlmaWNhdGlvbi1pbmZvXCIsXG5cdFwiaW5oZXJpdFwiLFxuXHRcImJyYW5kXCIsXG5cdFwiZGVmYXVsdFwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtbG93XCIsXG5cdFwibmV1dHJhbC1jb250cmFzdC1tZWRpdW1cIixcblx0XCJuZXV0cmFsLWNvbnRyYXN0LWhpZ2hcIixcblx0XCJub3RpZmljYXRpb24tbmV1dHJhbFwiLFxuXHRcInN0YXRlLWRpc2FibGVkXCJcbl07XG5leHBvcnQgdHlwZSBJY29uQ29sb3IgPSAodHlwZW9mIElDT05fQ09MT1JTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBJTkxJTkVfTk9USUZJQ0FUSU9OX1NUQVRFUzogcmVhZG9ubHkgW1xuXHRcInN1Y2Nlc3NcIixcblx0XCJpbmZvXCIsXG5cdFwid2FybmluZ1wiLFxuXHRcImVycm9yXCIsXG5cdFwibmV1dHJhbFwiXG5dO1xuZXhwb3J0IHR5cGUgSW5saW5lTm90aWZpY2F0aW9uU3RhdGUgPSB0eXBlb2YgSU5MSU5FX05PVElGSUNBVElPTl9TVEFURVNbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIElubGluZU5vdGlmaWNhdGlvbkFjdGlvbkljb24gPSBJY29uTmFtZTtcbmV4cG9ydCB0eXBlIExpbmtJY29uID0gTGlua0J1dHRvbkljb25OYW1lO1xuZXhwb3J0IHR5cGUgTGlua1B1cmVJY29uID0gTGlua0J1dHRvbkljb25OYW1lO1xuZXhwb3J0IHR5cGUgTGlua1B1cmVBcmlhQXR0cmlidXRlID0gTGlua0FyaWFBdHRyaWJ1dGU7XG5leHBvcnQgdHlwZSBMaW5rUHVyZUFsaWduTGFiZWwgPSBBbGlnbkxhYmVsO1xuZXhwb3J0IHR5cGUgTGlua1B1cmVXZWlnaHQgPSBUZXh0V2VpZ2h0O1xuZXhwb3J0IHR5cGUgTGlua1B1cmVTaXplID0gVGV4dFNpemU7XG5leHBvcnQgdHlwZSBMaW5rUHVyZVRhcmdldCA9IExpbmtUYXJnZXQ7XG5leHBvcnQgdHlwZSBMaW5rU29jaWFsSWNvbiA9IEV4dHJhY3Q8SWNvbk5hbWUsIFwibG9nby1mYWNlYm9va1wiIHwgXCJsb2dvLWdvb2dsZVwiIHwgXCJsb2dvLWluc3RhZ3JhbVwiIHwgXCJsb2dvLWxpbmtlZGluXCIgfCBcImxvZ28tcGludGVyZXN0XCIgfCBcImxvZ28tdHdpdHRlclwiIHwgXCJsb2dvLXdlY2hhdFwiIHwgXCJsb2dvLXdoYXRzYXBwXCIgfCBcImxvZ28teGluZ1wiIHwgXCJsb2dvLXlvdXR1YmVcIiB8IFwibG9nby1iYWlkdVwiIHwgXCJsb2dvLWRlbGljaW91c1wiIHwgXCJsb2dvLWRpZ2dcIiB8IFwibG9nby1mb3Vyc3F1YXJlXCIgfCBcImxvZ28tZ21haWxcIiB8IFwibG9nby1oYXRlbmFcIiB8IFwibG9nby1rYWl4aW5cIiB8IFwibG9nby1rYWthb3RhbGtcIiB8IFwibG9nby1uYXZlclwiIHwgXCJsb2dvLXFxLXNoYXJlXCIgfCBcImxvZ28tcXFcIiB8IFwibG9nby1yZWRkaXRcIiB8IFwibG9nby1za3lyb2NrXCIgfCBcImxvZ28tc29odVwiIHwgXCJsb2dvLXRlY2VudFwiIHwgXCJsb2dvLXRlbGVncmFtXCIgfCBcImxvZ28tdGlrdG9rXCIgfCBcImxvZ28tdHVtYmxyXCIgfCBcImxvZ28tdmliZXJcIiB8IFwibG9nby12a1wiIHwgXCJsb2dvLXdlaWJvXCIgfCBcImxvZ28teWFob29cIiB8IFwibG9nby15b3VrdVwiPjtcbmV4cG9ydCB0eXBlIExpbmtTb2NpYWxUYXJnZXQgPSBMaW5rVGFyZ2V0O1xuZXhwb3J0IHR5cGUgTGlua1RpbGVUYXJnZXQgPSBMaW5rVGFyZ2V0O1xuZXhwb3J0IHR5cGUgTGlua1RpbGVBcmlhQXR0cmlidXRlID0gTGlua0FyaWFBdHRyaWJ1dGU7XG5leHBvcnQgdHlwZSBMaW5rVGlsZUFzcGVjdFJhdGlvID0gVGlsZUFzcGVjdFJhdGlvO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVTaXplID0gVGlsZVNpemU7XG5leHBvcnQgdHlwZSBMaW5rVGlsZUJhY2tncm91bmQgPSBUaWxlQmFja2dyb3VuZDtcbmV4cG9ydCB0eXBlIExpbmtUaWxlQWxpZ24gPSBUaWxlQWxpZ247XG5kZWNsYXJlIGNvbnN0IExJTktfVElMRV9XRUlHSFRTOiByZWFkb25seSBbXG5cdFwicmVndWxhclwiLFxuXHRcInNlbWktYm9sZFwiLFxuXHRcInNlbWlib2xkXCJcbl07XG5leHBvcnQgdHlwZSBMaW5rVGlsZVdlaWdodCA9ICh0eXBlb2YgTElOS19USUxFX1dFSUdIVFMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IExJTktfVElMRV9NT0RFTF9TSUdOQVRVUkVfTU9ERUxTOiByZWFkb25seSBbXG5cdFwiNzE4XCIsXG5cdFwiOTExXCIsXG5cdFwiYm94c3RlclwiLFxuXHRcImNheWVubmVcIixcblx0XCJjYXltYW5cIixcblx0XCJtYWNhblwiLFxuXHRcInBhbmFtZXJhXCIsXG5cdFwidGF5Y2FuXCIsXG5cdFwidHVyYm8tc1wiLFxuXHRcInR1cmJvXCJcbl07XG5leHBvcnQgdHlwZSBMaW5rVGlsZU1vZGVsU2lnbmF0dXJlTW9kZWwgPSAodHlwZW9mIExJTktfVElMRV9NT0RFTF9TSUdOQVRVUkVfTU9ERUxTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBMSU5LX1RJTEVfTU9ERUxfU0lHTkFUVVJFX0hFQURJTkdfVEFHUzogcmVhZG9ubHkgW1xuXHRcImgyXCIsXG5cdFwiaDNcIixcblx0XCJoNFwiLFxuXHRcImg1XCIsXG5cdFwiaDZcIlxuXTtcbmV4cG9ydCB0eXBlIExpbmtUaWxlTW9kZWxTaWduYXR1cmVIZWFkaW5nVGFnID0gKHR5cGVvZiBMSU5LX1RJTEVfTU9ERUxfU0lHTkFUVVJFX0hFQURJTkdfVEFHUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIExpbmtUaWxlTW9kZWxTaWduYXR1cmVXZWlnaHQgPSBUaWxlV2VpZ2h0O1xuZXhwb3J0IHR5cGUgTGlua1RpbGVNb2RlbFNpZ25hdHVyZUFzcGVjdFJhdGlvID0gVGlsZUFzcGVjdFJhdGlvO1xuZXhwb3J0IHR5cGUgTGlua1RpbGVNb2RlbFNpZ25hdHVyZUxpbmtEaXJlY3Rpb24gPSBHcm91cERpcmVjdGlvbjtcbmRlY2xhcmUgY29uc3QgTU9ERUxfU0lHTkFUVVJFU19NQU5JRkVTVDoge1xuXHRcIjcxOFwiOiBzdHJpbmc7XG5cdFwiOTExXCI6IHN0cmluZztcblx0Ym94c3Rlcjogc3RyaW5nO1xuXHRjYXllbm5lOiBzdHJpbmc7XG5cdGNheW1hbjogc3RyaW5nO1xuXHRtYWNhbjogc3RyaW5nO1xuXHRwYW5hbWVyYTogc3RyaW5nO1xuXHR0YXljYW46IHN0cmluZztcblx0XCJ0dXJiby1zXCI6IHN0cmluZztcblx0dHVyYm86IHN0cmluZztcbn07XG5kZWNsYXJlIGNvbnN0IE1BUlFVRV9WQVJJQU5UUzogcmVhZG9ubHkgW1xuXHRcIjc1LXllYXJzXCIsXG5cdFwiZGVmYXVsdFwiXG5dO1xuZXhwb3J0IHR5cGUgTWFycXVlVmFyaWFudCA9ICh0eXBlb2YgTUFSUVVFX1ZBUklBTlRTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgTWFycXVlVGFyZ2V0ID0gTGlua1RhcmdldDtcbmV4cG9ydCB0eXBlIE1hcnF1ZUFyaWFBdHRyaWJ1dGUgPSBMaW5rQXJpYUF0dHJpYnV0ZTtcbmRlY2xhcmUgY29uc3QgTUFSUVVFX1NJWkVTOiByZWFkb25seSBbXG5cdFwicmVzcG9uc2l2ZVwiLFxuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCJcbl07XG5leHBvcnQgdHlwZSBNYXJxdWVTaXplID0gdHlwZW9mIE1BUlFVRV9TSVpFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBNT0RBTF9BUklBX0FUVFJJQlVURVM6IHJlYWRvbmx5IFtcblx0XCJhcmlhLWxhYmVsXCJcbl07XG5leHBvcnQgdHlwZSBNb2RhbEFyaWFBdHRyaWJ1dGUgPSAodHlwZW9mIE1PREFMX0FSSUFfQVRUUklCVVRFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgTU9ERUxfU0lHTkFUVVJFX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBNb2RlbFNpZ25hdHVyZVNpemUgPSAodHlwZW9mIE1PREVMX1NJR05BVFVSRV9TSVpFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIE1vZGVsU2lnbmF0dXJlTW9kZWwgPSBrZXlvZiB0eXBlb2YgTU9ERUxfU0lHTkFUVVJFU19NQU5JRkVTVDtcbmRlY2xhcmUgY29uc3QgTU9ERUxfU0lHTkFUVVJFX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcInByaW1hcnlcIixcblx0XCJjb250cmFzdC1sb3dcIixcblx0XCJjb250cmFzdC1tZWRpdW1cIixcblx0XCJjb250cmFzdC1oaWdoXCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgTW9kZWxTaWduYXR1cmVDb2xvciA9ICh0eXBlb2YgTU9ERUxfU0lHTkFUVVJFX0NPTE9SUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIE11bHRpU2VsZWN0U3RhdGUgPSBGb3JtU3RhdGU7XG5leHBvcnQgdHlwZSBNdWx0aVNlbGVjdERyb3Bkb3duRGlyZWN0aW9uID0gU2VsZWN0RHJvcGRvd25EaXJlY3Rpb247XG5leHBvcnQgdHlwZSBNdWx0aVNlbGVjdFVwZGF0ZUV2ZW50ID0ge1xuXHR2YWx1ZTogc3RyaW5nW107XG5cdG5hbWU6IHN0cmluZztcbn07XG5kZWNsYXJlIGNvbnN0IFBBR0lOQVRJT05fTlVNQkVSX09GX1BBR0VfTElOS1M6IHJlYWRvbmx5IFtcblx0NSxcblx0N1xuXTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25NYXhOdW1iZXJPZlBhZ2VMaW5rcyA9ICh0eXBlb2YgUEFHSU5BVElPTl9OVU1CRVJfT0ZfUEFHRV9MSU5LUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25VcGRhdGVFdmVudCA9IHtcblx0cGFnZTogbnVtYmVyO1xuXHRwcmV2aW91c1BhZ2U6IG51bWJlcjtcbn07XG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uSW50ZXJuYXRpb25hbGl6YXRpb24gPSBQYXJ0aWFsPFJlY29yZDxcInJvb3RcIiB8IFwicHJldlwiIHwgXCJuZXh0XCIgfCBcInBhZ2VcIiwgc3RyaW5nPj4gfCBzdHJpbmc7XG5kZWNsYXJlIGNvbnN0IFBJTl9DT0RFX1RZUEVTOiByZWFkb25seSBbXG5cdFwibnVtYmVyXCIsXG5cdFwicGFzc3dvcmRcIlxuXTtcbmV4cG9ydCB0eXBlIFBpbkNvZGVUeXBlID0gKHR5cGVvZiBQSU5fQ09ERV9UWVBFUylbbnVtYmVyXTtcbmRlY2xhcmUgY29uc3QgUElOX0NPREVfTEVOR1RIUzogcmVhZG9ubHkgW1xuXHQxLFxuXHQyLFxuXHQzLFxuXHQ0LFxuXHQ1LFxuXHQ2XG5dO1xuZXhwb3J0IHR5cGUgUGluQ29kZUxlbmd0aCA9ICh0eXBlb2YgUElOX0NPREVfTEVOR1RIUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFBpbkNvZGVVcGRhdGVFdmVudCA9IHtcblx0dmFsdWU6IHN0cmluZztcblx0aXNDb21wbGV0ZTogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBQaW5Db2RlU3RhdGUgPSBGb3JtU3RhdGU7XG5kZWNsYXJlIGNvbnN0IFBPUE9WRVJfRElSRUNUSU9OUzogcmVhZG9ubHkgW1xuXHRcInRvcFwiLFxuXHRcInJpZ2h0XCIsXG5cdFwiYm90dG9tXCIsXG5cdFwibGVmdFwiXG5dO1xuZXhwb3J0IHR5cGUgUG9wb3ZlckRpcmVjdGlvbiA9ICh0eXBlb2YgUE9QT1ZFUl9ESVJFQ1RJT05TKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBQT1BPVkVSX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIlxuXTtcbmV4cG9ydCB0eXBlIFBvcG92ZXJBcmlhQXR0cmlidXRlID0gKHR5cGVvZiBQT1BPVkVSX0FSSUFfQVRUUklCVVRFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFJhZGlvQnV0dG9uV3JhcHBlclN0YXRlID0gRm9ybVN0YXRlO1xuZGVjbGFyZSBjb25zdCBTRUdNRU5URURfQ09OVFJPTF9CQUNLR1JPVU5EX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcImJhY2tncm91bmQtc3VyZmFjZVwiLFxuXHRcImJhY2tncm91bmQtZGVmYXVsdFwiXG5dO1xuZXhwb3J0IHR5cGUgU2VnbWVudGVkQ29udHJvbEJhY2tncm91bmRDb2xvciA9ICh0eXBlb2YgU0VHTUVOVEVEX0NPTlRST0xfQkFDS0dST1VORF9DT0xPUlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBTZWdtZW50ZWRDb250cm9sVXBkYXRlRXZlbnQgPSB7XG5cdHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG59O1xuZGVjbGFyZSBjb25zdCBTRUdNRU5URURfQ09OVFJPTF9DT0xVTU5TOiAoc3RyaW5nIHwgbnVtYmVyKVtdO1xuZXhwb3J0IHR5cGUgU2VnbWVudGVkQ29udHJvbENvbHVtbnMgPSAodHlwZW9mIFNFR01FTlRFRF9DT05UUk9MX0NPTFVNTlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBTZWdtZW50ZWRDb250cm9sSXRlbUljb24gPSBMaW5rQnV0dG9uSWNvbk5hbWU7XG5kZWNsYXJlIGNvbnN0IERST1BET1dOX0RJUkVDVElPTlM6IHJlYWRvbmx5IFtcblx0XCJkb3duXCIsXG5cdFwidXBcIixcblx0XCJhdXRvXCJcbl07XG5leHBvcnQgdHlwZSBTZWxlY3RXcmFwcGVyRHJvcGRvd25EaXJlY3Rpb24gPSAodHlwZW9mIERST1BET1dOX0RJUkVDVElPTlMpW251bWJlcl07XG5leHBvcnQgdHlwZSBTZWxlY3RXcmFwcGVyU3RhdGUgPSBGb3JtU3RhdGU7XG5kZWNsYXJlIGNvbnN0IFNQSU5ORVJfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiLFxuXHRcImxhcmdlXCIsXG5cdFwiaW5oZXJpdFwiXG5dO1xuZXhwb3J0IHR5cGUgU3Bpbm5lclNpemUgPSB0eXBlb2YgU1BJTk5FUl9TSVpFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBTUElOTkVSX0FSSUFfQVRUUklCVVRFUzogcmVhZG9ubHkgW1xuXHRcImFyaWEtbGFiZWxcIlxuXTtcbmV4cG9ydCB0eXBlIFNwaW5uZXJBcmlhQXR0cmlidXRlID0gdHlwZW9mIFNQSU5ORVJfQVJJQV9BVFRSSUJVVEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFNURVBQRVJfSE9SSVpPTlRBTF9TSVpFUzogcmVhZG9ubHkgW1xuXHRcInNtYWxsXCIsXG5cdFwibWVkaXVtXCJcbl07XG5leHBvcnQgdHlwZSBTdGVwcGVySG9yaXpvbnRhbFNpemUgPSAodHlwZW9mIFNURVBQRVJfSE9SSVpPTlRBTF9TSVpFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFN0ZXBwZXJIb3Jpem9udGFsVXBkYXRlRXZlbnQgPSB7XG5cdGFjdGl2ZVN0ZXBJbmRleDogbnVtYmVyO1xufTtcbmRlY2xhcmUgY29uc3QgU1RFUFBFUl9JVEVNX1NUQVRFUzogcmVhZG9ubHkgW1xuXHRcImN1cnJlbnRcIixcblx0XCJjb21wbGV0ZVwiLFxuXHRcIndhcm5pbmdcIlxuXTtcbmV4cG9ydCB0eXBlIFN0ZXBwZXJIb3Jpem9udGFsSXRlbVN0YXRlID0gKHR5cGVvZiBTVEVQUEVSX0lURU1fU1RBVEVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgU3dpdGNoQWxpZ25MYWJlbCA9IEFsaWduTGFiZWw7XG5leHBvcnQgdHlwZSBTd2l0Y2hVcGRhdGVFdmVudCA9IHtcblx0Y2hlY2tlZDogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBEaXJlY3Rpb24gPSBcImFzY1wiIHwgXCJkZXNjXCI7XG5leHBvcnQgdHlwZSBUYWJsZUhlYWRDZWxsU29ydCA9IHtcblx0aWQ6IHN0cmluZztcblx0YWN0aXZlPzogYm9vbGVhbjtcblx0ZGlyZWN0aW9uPzogRGlyZWN0aW9uO1xufTtcbmV4cG9ydCB0eXBlIFRhYmxlVXBkYXRlRXZlbnQgPSBUYWJsZUhlYWRDZWxsU29ydDtcbmRlY2xhcmUgY29uc3QgVEFCU19CQVJfU0laRVM6IHJlYWRvbmx5IFtcblx0XCJzbWFsbFwiLFxuXHRcIm1lZGl1bVwiXG5dO1xuZXhwb3J0IHR5cGUgVGFic0JhclNpemUgPSAodHlwZW9mIFRBQlNfQkFSX1NJWkVTKVtudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBUQUJTX0JBUl9XRUlHSFRTOiByZWFkb25seSBbXG5cdFwicmVndWxhclwiLFxuXHRcInNlbWktYm9sZFwiLFxuXHRcInNlbWlib2xkXCJcbl07XG5leHBvcnQgdHlwZSBUYWJzQmFyV2VpZ2h0ID0gKHR5cGVvZiBUQUJTX0JBUl9XRUlHSFRTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGFic0JhclVwZGF0ZUV2ZW50ID0ge1xuXHRhY3RpdmVUYWJJbmRleDogbnVtYmVyO1xufTtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgVGFic0JhckdyYWRpZW50Q29sb3JTY2hlbWUgPSBTY3JvbGxlckdyYWRpZW50Q29sb3JTY2hlbWU7XG5leHBvcnQgdHlwZSBUYWJzQmFyR3JhZGllbnRDb2xvciA9IFNjcm9sbGVyR3JhZGllbnRDb2xvcjtcbmV4cG9ydCB0eXBlIFRhYnNTaXplID0gVGFic0JhclNpemU7XG5leHBvcnQgdHlwZSBUYWJzV2VpZ2h0ID0gVGFic0JhcldlaWdodDtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgVGFic0dyYWRpZW50Q29sb3JTY2hlbWUgPSBUYWJzQmFyR3JhZGllbnRDb2xvclNjaGVtZTtcbmV4cG9ydCB0eXBlIFRhYnNHcmFkaWVudENvbG9yID0gVGFic0JhckdyYWRpZW50Q29sb3I7XG5leHBvcnQgdHlwZSBUYWJzVXBkYXRlRXZlbnQgPSBUYWJzQmFyVXBkYXRlRXZlbnQ7XG5kZWNsYXJlIGNvbnN0IFRBR19ESVNNSVNTSUJMRV9DT0xPUlM6IHJlYWRvbmx5IFtcblx0XCJiYWNrZ3JvdW5kLWJhc2VcIixcblx0XCJiYWNrZ3JvdW5kLXN1cmZhY2VcIixcblx0XCJiYWNrZ3JvdW5kLWRlZmF1bHRcIlxuXTtcbmV4cG9ydCB0eXBlIFRhZ0Rpc21pc3NpYmxlQ29sb3IgPSB0eXBlb2YgVEFHX0RJU01JU1NJQkxFX0NPTE9SU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBUQUdfRElTTUlTU0lCTEVfQVJJQV9BVFRSSUJVVEVTOiByZWFkb25seSBbXG5cdFwiYXJpYS1sYWJlbFwiXG5dO1xuZXhwb3J0IHR5cGUgVGFnRGlzbWlzc2libGVBcmlhQXR0cmlidXRlID0gdHlwZW9mIFRBR19ESVNNSVNTSUJMRV9BUklBX0FUVFJJQlVURVNbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFRhZ0ljb24gPSBJY29uTmFtZTtcbmRlY2xhcmUgY29uc3QgVEFHX0NPTE9SUzogcmVhZG9ubHkgW1xuXHRcImJhY2tncm91bmQtYmFzZVwiLFxuXHRcImJhY2tncm91bmQtc3VyZmFjZVwiLFxuXHRcImJhY2tncm91bmQtZGVmYXVsdFwiLFxuXHRcInByaW1hcnlcIixcblx0XCJub3RpZmljYXRpb24taW5mby1zb2Z0XCIsXG5cdFwibm90aWZpY2F0aW9uLXdhcm5pbmctc29mdFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1zdWNjZXNzLXNvZnRcIixcblx0XCJub3RpZmljYXRpb24tZXJyb3Itc29mdFwiLFxuXHRcIm5ldXRyYWwtY29udHJhc3QtaGlnaFwiLFxuXHRcIm5vdGlmaWNhdGlvbi1uZXV0cmFsXCIsXG5cdFwibm90aWZpY2F0aW9uLXdhcm5pbmdcIixcblx0XCJub3RpZmljYXRpb24tc3VjY2Vzc1wiLFxuXHRcIm5vdGlmaWNhdGlvbi1lcnJvclwiXG5dO1xuZXhwb3J0IHR5cGUgVGFnQ29sb3IgPSAodHlwZW9mIFRBR19DT0xPUlMpW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IFRFWFRfVEFHUzogcmVhZG9ubHkgW1xuXHRcInBcIixcblx0XCJzcGFuXCIsXG5cdFwiZGl2XCIsXG5cdFwiYWRkcmVzc1wiLFxuXHRcImJsb2NrcXVvdGVcIixcblx0XCJmaWdjYXB0aW9uXCIsXG5cdFwiY2l0ZVwiLFxuXHRcInRpbWVcIixcblx0XCJsZWdlbmRcIlxuXTtcbmV4cG9ydCB0eXBlIFRleHRUYWcgPSAodHlwZW9mIFRFWFRfVEFHUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFRleHRBbGlnbiA9IFR5cG9ncmFwaHlBbGlnbjtcbmRlY2xhcmUgY29uc3QgVU5JVF9QT1NJVElPTlM6IHJlYWRvbmx5IFtcblx0XCJwcmVmaXhcIixcblx0XCJzdWZmaXhcIlxuXTtcbmV4cG9ydCB0eXBlIFRleHRGaWVsZFdyYXBwZXJVbml0UG9zaXRpb24gPSAodHlwZW9mIFVOSVRfUE9TSVRJT05TKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgVGV4dEZpZWxkV3JhcHBlckFjdGlvbkljb24gPSBFeHRyYWN0PEljb25OYW1lLCBcImxvY2F0ZVwiPjtcbmV4cG9ydCB0eXBlIFRleHRGaWVsZFdyYXBwZXJTdGF0ZSA9IEZvcm1TdGF0ZTtcbmRlY2xhcmUgY29uc3QgTElTVF9UWVBFUzogcmVhZG9ubHkgW1xuXHRcInVub3JkZXJlZFwiLFxuXHRcIm9yZGVyZWRcIlxuXTtcbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IHR5cGUgVGV4dExpc3RMaXN0VHlwZSA9IHR5cGVvZiBMSVNUX1RZUEVTW251bWJlcl07XG5kZWNsYXJlIGNvbnN0IE9SREVSX1RZUEVTOiByZWFkb25seSBbXG5cdFwibnVtYmVyZWRcIixcblx0XCJhbHBoYWJldGljYWxseVwiXG5dO1xuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBUZXh0TGlzdE9yZGVyVHlwZSA9IHR5cGVvZiBPUkRFUl9UWVBFU1tudW1iZXJdO1xuZGVjbGFyZSBjb25zdCBURVhUX0xJU1RfVFlQRVM6IHJlYWRvbmx5IFtcblx0XCJ1bm9yZGVyZWRcIixcblx0XCJudW1iZXJlZFwiLFxuXHRcImFscGhhYmV0aWNhbGx5XCJcbl07XG5leHBvcnQgdHlwZSBUZXh0TGlzdFR5cGUgPSB0eXBlb2YgVEVYVF9MSVNUX1RZUEVTW251bWJlcl07XG5leHBvcnQgdHlwZSBUZXh0YXJlYVdyYXBwZXJTdGF0ZSA9IEZvcm1TdGF0ZTtcbmRlY2xhcmUgY29uc3QgVE9BU1RfU1RBVEVTOiByZWFkb25seSBbXG5cdFwiaW5mb1wiLFxuXHRcInN1Y2Nlc3NcIixcblx0XCJuZXV0cmFsXCJcbl07XG5leHBvcnQgdHlwZSBUb2FzdFN0YXRlID0gdHlwZW9mIFRPQVNUX1NUQVRFU1tudW1iZXJdO1xuZXhwb3J0IHR5cGUgVG9hc3RNZXNzYWdlID0ge1xuXHR0ZXh0OiBzdHJpbmc7XG5cdHN0YXRlPzogVG9hc3RTdGF0ZTtcbn07XG5kZWNsYXJlIGNvbnN0IFdPUkRNQVJLX1NJWkVTOiByZWFkb25seSBbXG5cdFwic21hbGxcIixcblx0XCJpbmhlcml0XCJcbl07XG5leHBvcnQgdHlwZSBXb3JkbWFya1NpemUgPSAodHlwZW9mIFdPUkRNQVJLX1NJWkVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgV29yZG1hcmtUYXJnZXQgPSBMaW5rVGFyZ2V0O1xuZXhwb3J0IHR5cGUgV29yZG1hcmtBcmlhQXR0cmlidXRlID0gTGlua0FyaWFBdHRyaWJ1dGU7XG4iXX0=
@@ -1,6 +1,8 @@
1
- import { NgModule, Optional } from '@angular/core';
2
- import { DECLARATIONS } from './lib/components/barrel';
1
+ import { inject, NgModule, Optional } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
3
  import { load } from '@porsche-design-system/components-js';
4
+ import { DECLARATIONS } from './lib/components/barrel';
5
+ import { THEME_TOKEN } from './utils';
4
6
  import * as i0 from "@angular/core";
5
7
  import * as i1 from "./lib/components/accordion.wrapper";
6
8
  import * as i2 from "./lib/components/banner.wrapper";
@@ -69,12 +71,16 @@ import * as i64 from "./lib/components/wordmark.wrapper";
69
71
  export class DefaultConfig {
70
72
  constructor() {
71
73
  this.prefix = '';
74
+ // other component configurations should probably go into a separate `components`, `componentProps` or `componentDefaults`
75
+ // property similar to https://mui.com/material-ui/customization/theme-components/
72
76
  }
73
77
  }
74
78
  // TODO: unit tests are missing
75
79
  export class PorscheDesignSystemModule {
76
80
  constructor(configParam) {
77
- const configs = (configParam || [new DefaultConfig()]);
81
+ this.theme$ = inject(THEME_TOKEN);
82
+ const configs = configParam || [new DefaultConfig()];
83
+ this.theme$.next(configs[0].theme || 'light'); // first config sets the theme
78
84
  configs.forEach(load);
79
85
  }
80
86
  static load(config) {
@@ -92,14 +98,25 @@ export class PorscheDesignSystemModule {
92
98
  }
93
99
  PorscheDesignSystemModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PorscheDesignSystemModule, deps: [{ token: DefaultConfig, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
94
100
  PorscheDesignSystemModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PorscheDesignSystemModule, declarations: [i1.PAccordion, i2.PBanner, i3.PButton, i4.PButtonGroup, i5.PButtonPure, i6.PButtonTile, i7.PCarousel, i8.PCheckboxWrapper, i9.PContentWrapper, i10.PCrest, i11.PDisplay, i12.PDivider, i13.PFieldset, i14.PFieldsetWrapper, i15.PFlex, i16.PFlexItem, i17.PFlyout, i18.PGrid, i19.PGridItem, i20.PHeading, i21.PHeadline, i22.PIcon, i23.PInlineNotification, i24.PLink, i25.PLinkPure, i26.PLinkSocial, i27.PLinkTile, i28.PLinkTileModelSignature, i29.PMarque, i30.PModal, i31.PModelSignature, i32.PMultiSelect, i33.PMultiSelectOption, i34.PPagination, i35.PPinCode, i36.PPopover, i37.PRadioButtonWrapper, i38.PScroller, i39.PSegmentedControl, i40.PSegmentedControlItem, i41.PSelectWrapper, i42.PSpinner, i43.PStepperHorizontal, i44.PStepperHorizontalItem, i45.PSwitch, i46.PTable, i47.PTableBody, i48.PTableCell, i49.PTableHead, i50.PTableHeadCell, i51.PTableHeadRow, i52.PTableRow, i53.PTabs, i54.PTabsBar, i55.PTabsItem, i56.PTag, i57.PTagDismissible, i58.PText, i59.PTextFieldWrapper, i60.PTextList, i61.PTextListItem, i62.PTextareaWrapper, i63.PToast, i64.PWordmark], exports: [i1.PAccordion, i2.PBanner, i3.PButton, i4.PButtonGroup, i5.PButtonPure, i6.PButtonTile, i7.PCarousel, i8.PCheckboxWrapper, i9.PContentWrapper, i10.PCrest, i11.PDisplay, i12.PDivider, i13.PFieldset, i14.PFieldsetWrapper, i15.PFlex, i16.PFlexItem, i17.PFlyout, i18.PGrid, i19.PGridItem, i20.PHeading, i21.PHeadline, i22.PIcon, i23.PInlineNotification, i24.PLink, i25.PLinkPure, i26.PLinkSocial, i27.PLinkTile, i28.PLinkTileModelSignature, i29.PMarque, i30.PModal, i31.PModelSignature, i32.PMultiSelect, i33.PMultiSelectOption, i34.PPagination, i35.PPinCode, i36.PPopover, i37.PRadioButtonWrapper, i38.PScroller, i39.PSegmentedControl, i40.PSegmentedControlItem, i41.PSelectWrapper, i42.PSpinner, i43.PStepperHorizontal, i44.PStepperHorizontalItem, i45.PSwitch, i46.PTable, i47.PTableBody, i48.PTableCell, i49.PTableHead, i50.PTableHeadCell, i51.PTableHeadRow, i52.PTableRow, i53.PTabs, i54.PTabsBar, i55.PTabsItem, i56.PTag, i57.PTagDismissible, i58.PText, i59.PTextFieldWrapper, i60.PTextList, i61.PTextListItem, i62.PTextareaWrapper, i63.PToast, i64.PWordmark] });
95
- PorscheDesignSystemModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PorscheDesignSystemModule });
101
+ PorscheDesignSystemModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PorscheDesignSystemModule, providers: [
102
+ {
103
+ provide: THEME_TOKEN,
104
+ useValue: new BehaviorSubject('light'),
105
+ },
106
+ ] });
96
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PorscheDesignSystemModule, decorators: [{
97
108
  type: NgModule,
98
109
  args: [{
99
110
  declarations: DECLARATIONS,
100
111
  exports: DECLARATIONS,
112
+ providers: [
113
+ {
114
+ provide: THEME_TOKEN,
115
+ useValue: new BehaviorSubject('light'),
116
+ },
117
+ ],
101
118
  }]
102
119
  }], ctorParameters: function () { return [{ type: DefaultConfig, decorators: [{
103
120
  type: Optional
104
121
  }] }]; } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9yc2NoZS1kZXNpZ24tc3lzdGVtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItd3JhcHBlci9zcmMvcG9yc2NoZS1kZXNpZ24tc3lzdGVtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzVELE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ0UsV0FBTSxHQUFHLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FBQTtBQUVELCtCQUErQjtBQUsvQixNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQXdCLFdBQTBCO1FBQ2hELE1BQU0sT0FBTyxHQUFHLENBQUMsV0FBVyxJQUFLLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBYSxDQUFzQyxDQUFDO1FBQ3pHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBdUM7UUFDakQsT0FBTztZQUNMLFFBQVEsRUFBRSx5QkFBeUI7WUFDbkMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxhQUFhO29CQUN0QixLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsTUFBTTtpQkFDakI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzt1SEFqQlUseUJBQXlCO3dIQUF6Qix5QkFBeUI7d0hBQXpCLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQUpyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxZQUFZO29CQUMxQixPQUFPLEVBQUUsWUFBWTtpQkFDdEI7OzBCQUVjLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERFQ0xBUkFUSU9OUyB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmFycmVsJztcbmltcG9ydCB7IGxvYWQgfSBmcm9tICdAcG9yc2NoZS1kZXNpZ24tc3lzdGVtL2NvbXBvbmVudHMtanMnO1xuXG5leHBvcnQgdHlwZSBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlQ29uZmlnID0ge1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIGNkbj86ICdhdXRvJyB8ICdjbic7XG59O1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdENvbmZpZyBpbXBsZW1lbnRzIFBvcnNjaGVEZXNpZ25TeXN0ZW1Nb2R1bGVDb25maWcge1xuICBwcmVmaXggPSAnJztcbn1cblxuLy8gVE9ETzogdW5pdCB0ZXN0cyBhcmUgbWlzc2luZ1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBERUNMQVJBVElPTlMsXG4gIGV4cG9ydHM6IERFQ0xBUkFUSU9OUyxcbn0pXG5leHBvcnQgY2xhc3MgUG9yc2NoZURlc2lnblN5c3RlbU1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGNvbmZpZ1BhcmFtOiBEZWZhdWx0Q29uZmlnKSB7XG4gICAgY29uc3QgY29uZmlncyA9IChjb25maWdQYXJhbSB8fCAoW25ldyBEZWZhdWx0Q29uZmlnKCldIGFzIHVua25vd24pKSBhcyBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlQ29uZmlnW107XG4gICAgY29uZmlncy5mb3JFYWNoKGxvYWQpO1xuICB9XG5cbiAgc3RhdGljIGxvYWQoY29uZmlnOiBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBEZWZhdWx0Q29uZmlnLFxuICAgICAgICAgIG11bHRpOiB0cnVlLCAvLyB0byBzdXBwb3J0IG11bHRpcGxlIHByZWZpeGVzIGluIHNhbWUgbW9kdWxlXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9yc2NoZS1kZXNpZ24tc3lzdGVtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItd3JhcHBlci9zcmMvcG9yc2NoZS1kZXNpZ24tc3lzdGVtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUE0QixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRdEMsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFDRSxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBRVosMEhBQTBIO1FBQzFILGtGQUFrRjtJQUNwRixDQUFDO0NBQUE7QUFFRCwrQkFBK0I7QUFXL0IsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxZQUF3QixXQUEwQjtRQUYxQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBR25DLE1BQU0sT0FBTyxHQUFJLFdBQTBDLElBQUksQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtRQUM3RSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQXVDO1FBQ2pELE9BQU87WUFDTCxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7dUhBcEJVLHlCQUF5Qjt3SEFBekIseUJBQXlCO3dIQUF6Qix5QkFBeUIsYUFQekI7UUFDVDtZQUNFLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUM7U0FDdkM7S0FDRjs0RkFFVSx5QkFBeUI7a0JBVnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLFlBQVk7b0JBQzFCLE9BQU8sRUFBRSxZQUFZO29CQUNyQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUM7eUJBQ3ZDO3FCQUNGO2lCQUNGOzswQkFJYyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCB0eXBlIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBsb2FkIH0gZnJvbSAnQHBvcnNjaGUtZGVzaWduLXN5c3RlbS9jb21wb25lbnRzLWpzJztcbmltcG9ydCB7IERFQ0xBUkFUSU9OUyB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmFycmVsJztcbmltcG9ydCB0eXBlIHsgVGhlbWUgfSBmcm9tICcuL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBUSEVNRV9UT0tFTiB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlQ29uZmlnID0ge1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIGNkbj86ICdhdXRvJyB8ICdjbic7XG4gIHRoZW1lPzogVGhlbWU7XG59O1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdENvbmZpZyBpbXBsZW1lbnRzIFBvcnNjaGVEZXNpZ25TeXN0ZW1Nb2R1bGVDb25maWcge1xuICBwcmVmaXggPSAnJztcbiAgdGhlbWU6ICdsaWdodCc7IC8vIHNpbmNlIHRoZW1lIGV4aXN0cyBvbiBhbG1vc3QgZXZlcnkgY29tcG9uZW50LCBpdCBpcyBkZWZpbmVkIGhlcmUga2luZCBvZiBsaWtlIGEgZ2xvYmFsIHByb3BcbiAgLy8gb3RoZXIgY29tcG9uZW50IGNvbmZpZ3VyYXRpb25zIHNob3VsZCBwcm9iYWJseSBnbyBpbnRvIGEgc2VwYXJhdGUgYGNvbXBvbmVudHNgLCBgY29tcG9uZW50UHJvcHNgIG9yIGBjb21wb25lbnREZWZhdWx0c2BcbiAgLy8gcHJvcGVydHkgc2ltaWxhciB0byBodHRwczovL211aS5jb20vbWF0ZXJpYWwtdWkvY3VzdG9taXphdGlvbi90aGVtZS1jb21wb25lbnRzL1xufVxuXG4vLyBUT0RPOiB1bml0IHRlc3RzIGFyZSBtaXNzaW5nXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IERFQ0xBUkFUSU9OUyxcbiAgZXhwb3J0czogREVDTEFSQVRJT05TLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBUSEVNRV9UT0tFTixcbiAgICAgIHVzZVZhbHVlOiBuZXcgQmVoYXZpb3JTdWJqZWN0KCdsaWdodCcpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBvcnNjaGVEZXNpZ25TeXN0ZW1Nb2R1bGUge1xuICBwcml2YXRlIHRoZW1lJCA9IGluamVjdChUSEVNRV9UT0tFTik7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgY29uZmlnUGFyYW06IERlZmF1bHRDb25maWcpIHtcbiAgICBjb25zdCBjb25maWdzID0gKGNvbmZpZ1BhcmFtIGFzIHVua25vd24gYXMgRGVmYXVsdENvbmZpZ1tdKSB8fCBbbmV3IERlZmF1bHRDb25maWcoKV07XG4gICAgdGhpcy50aGVtZSQubmV4dChjb25maWdzWzBdLnRoZW1lIHx8ICdsaWdodCcpOyAvLyBmaXJzdCBjb25maWcgc2V0cyB0aGUgdGhlbWVcbiAgICBjb25maWdzLmZvckVhY2gobG9hZCk7XG4gIH1cblxuICBzdGF0aWMgbG9hZChjb25maWc6IFBvcnNjaGVEZXNpZ25TeXN0ZW1Nb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFBvcnNjaGVEZXNpZ25TeXN0ZW1Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFBvcnNjaGVEZXNpZ25TeXN0ZW1Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IERlZmF1bHRDb25maWcsXG4gICAgICAgICAgbXVsdGk6IHRydWUsIC8vIHRvIHN1cHBvcnQgbXVsdGlwbGUgcHJlZml4ZXMgaW4gc2FtZSBtb2R1bGVcbiAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -2,5 +2,6 @@ export { componentsReady } from '@porsche-design-system/components-js';
2
2
  export * from './lib/components/barrel';
3
3
  export * from './lib/types';
4
4
  export { PorscheDesignSystemModule } from './porsche-design-system.module';
5
+ export { THEME_TOKEN } from './utils';
5
6
  export { ToastManager } from './toast-manager';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItd3JhcHBlci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBjb21wb25lbnRzUmVhZHkgfSBmcm9tICdAcG9yc2NoZS1kZXNpZ24tc3lzdGVtL2NvbXBvbmVudHMtanMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iYXJyZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0IHsgUG9yc2NoZURlc2lnblN5c3RlbU1vZHVsZSB9IGZyb20gJy4vcG9yc2NoZS1kZXNpZ24tc3lzdGVtLm1vZHVsZSc7XG5leHBvcnQgdHlwZSB7IFBvcnNjaGVEZXNpZ25TeXN0ZW1Nb2R1bGVDb25maWcgfSBmcm9tICcuL3BvcnNjaGUtZGVzaWduLXN5c3RlbS5tb2R1bGUnO1xuZXhwb3J0IHsgVG9hc3RNYW5hZ2VyIH0gZnJvbSAnLi90b2FzdC1tYW5hZ2VyJztcbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItd3JhcHBlci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixPQUFPLEVBQUUseUJBQXlCLEVBQXdDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBjb21wb25lbnRzUmVhZHkgfSBmcm9tICdAcG9yc2NoZS1kZXNpZ24tc3lzdGVtL2NvbXBvbmVudHMtanMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iYXJyZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0IHsgUG9yc2NoZURlc2lnblN5c3RlbU1vZHVsZSwgdHlwZSBQb3JzY2hlRGVzaWduU3lzdGVtTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi9wb3JzY2hlLWRlc2lnbi1zeXN0ZW0ubW9kdWxlJztcbmV4cG9ydCB7IFRIRU1FX1RPS0VOIH0gZnJvbSAnLi91dGlscyc7XG5leHBvcnQgeyBUb2FzdE1hbmFnZXIgfSBmcm9tICcuL3RvYXN0LW1hbmFnZXInO1xuIl19
package/esm2020/utils.mjs CHANGED
@@ -1,41 +1,45 @@
1
- import { EventEmitter } from '@angular/core';
2
- const proxyInputs = (component, inputs) => {
3
- const callback = (item) => {
4
- Object.defineProperty(component.prototype, item, {
5
- get() {
6
- return this.el[item];
7
- },
8
- set(val) {
9
- this.z.runOutsideAngular(() => (this.el[item] = val));
10
- },
11
- });
12
- };
13
- inputs.forEach(callback);
14
- };
15
- // NOTE: only relevant if components use the @Method() decorator
16
- // currently our AngularWrapperGenerator doesn't support this
17
- // const proxyMethods = (Cmp: any, methods: string[]) => {
18
- // const Prototype = Cmp.prototype;
19
- // methods.forEach((methodName) => {
20
- // Prototype[methodName] = function () {
21
- // const args = arguments;
22
- // return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args));
23
- // };
24
- // });
25
- // };
26
- export const proxyOutputs = (instance, events) => {
27
- events.forEach((event) => (instance[event] = new EventEmitter()));
28
- };
29
- // tslint:disable-next-line: only-arrow-functions
30
- export function ProxyCmp({ inputs /*, methods*/ }) {
31
- return function (component) {
32
- if (inputs) {
33
- proxyInputs(component, inputs);
1
+ import { ChangeDetectionStrategy, Component, inject, InjectionToken, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export const THEME_TOKEN = new InjectionToken('pdsTheme');
4
+ export class BaseComponent {
5
+ constructor(cdr, elementRef) {
6
+ cdr.detach();
7
+ this.el = elementRef.nativeElement;
8
+ }
9
+ ngOnChanges(props) {
10
+ for (const prop in props) {
11
+ this.el[prop] = props[prop].currentValue;
34
12
  }
35
- // if (methods) {
36
- // proxyMethods(component, methods);
37
- // }
38
- return component;
39
- };
13
+ }
14
+ }
15
+ BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
16
+ BaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BaseComponent, selector: "ng-component", usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseComponent, decorators: [{
18
+ type: Component,
19
+ args: [{
20
+ template: '',
21
+ changeDetection: ChangeDetectionStrategy.OnPush,
22
+ }]
23
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; } });
24
+ export class BaseComponentWithTheme extends BaseComponent {
25
+ constructor() {
26
+ super(...arguments);
27
+ this.themeSubscription = inject(THEME_TOKEN).subscribe((theme) => {
28
+ this.el.theme = this.theme || theme;
29
+ });
30
+ }
31
+ ngOnDestroy() {
32
+ // need to manually unsubscribe or otherwise subscription is still active even after unmount
33
+ // https://rafaelneto.dev/en/blog/unsubscribing-behaviorsubject-observable-angular/
34
+ this.themeSubscription.unsubscribe();
35
+ }
40
36
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXdyYXBwZXIvc3JjL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0MsTUFBTSxXQUFXLEdBQUcsQ0FBQyxTQUFjLEVBQUUsTUFBZ0IsRUFBUSxFQUFFO0lBQzdELE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFRLEVBQUU7UUFDdEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRTtZQUMvQyxHQUFHO2dCQUNELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixDQUFDO1lBQ0QsR0FBRyxDQUFDLEdBQVE7Z0JBQ1YsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN4RCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFFRixnRUFBZ0U7QUFDaEUsNkRBQTZEO0FBQzdELDBEQUEwRDtBQUMxRCxxQ0FBcUM7QUFDckMsc0NBQXNDO0FBQ3RDLDRDQUE0QztBQUM1QyxnQ0FBZ0M7QUFDaEMseUZBQXlGO0FBQ3pGLFNBQVM7QUFDVCxRQUFRO0FBQ1IsS0FBSztBQUVMLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQWEsRUFBRSxNQUFnQixFQUFRLEVBQUU7SUFDcEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQyxDQUFDO0FBSUYsaURBQWlEO0FBQ2pELE1BQU0sVUFBVSxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFtQjtJQUNoRSxPQUFPLFVBQVUsU0FBYztRQUM3QixJQUFJLE1BQU0sRUFBRTtZQUNWLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDaEM7UUFDRCxpQkFBaUI7UUFDakIsc0NBQXNDO1FBQ3RDLElBQUk7UUFDSixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IHByb3h5SW5wdXRzID0gKGNvbXBvbmVudDogYW55LCBpbnB1dHM6IHN0cmluZ1tdKTogdm9pZCA9PiB7XG4gIGNvbnN0IGNhbGxiYWNrID0gKGl0ZW06IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb21wb25lbnQucHJvdG90eXBlLCBpdGVtLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsW2l0ZW1dO1xuICAgICAgfSxcbiAgICAgIHNldCh2YWw6IGFueSkge1xuICAgICAgICB0aGlzLnoucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gKHRoaXMuZWxbaXRlbV0gPSB2YWwpKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgaW5wdXRzLmZvckVhY2goY2FsbGJhY2spO1xufTtcblxuLy8gTk9URTogb25seSByZWxldmFudCBpZiBjb21wb25lbnRzIHVzZSB0aGUgQE1ldGhvZCgpIGRlY29yYXRvclxuLy8gY3VycmVudGx5IG91ciBBbmd1bGFyV3JhcHBlckdlbmVyYXRvciBkb2Vzbid0IHN1cHBvcnQgdGhpc1xuLy8gY29uc3QgcHJveHlNZXRob2RzID0gKENtcDogYW55LCBtZXRob2RzOiBzdHJpbmdbXSkgPT4ge1xuLy8gICBjb25zdCBQcm90b3R5cGUgPSBDbXAucHJvdG90eXBlO1xuLy8gICBtZXRob2RzLmZvckVhY2goKG1ldGhvZE5hbWUpID0+IHtcbi8vICAgICBQcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4vLyAgICAgICBjb25zdCBhcmdzID0gYXJndW1lbnRzO1xuLy8gICAgICAgcmV0dXJuIHRoaXMuei5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmVsW21ldGhvZE5hbWVdLmFwcGx5KHRoaXMuZWwsIGFyZ3MpKTtcbi8vICAgICB9O1xuLy8gICB9KTtcbi8vIH07XG5cbmV4cG9ydCBjb25zdCBwcm94eU91dHB1dHMgPSAoaW5zdGFuY2U6IGFueSwgZXZlbnRzOiBzdHJpbmdbXSk6IHZvaWQgPT4ge1xuICBldmVudHMuZm9yRWFjaCgoZXZlbnQpID0+IChpbnN0YW5jZVtldmVudF0gPSBuZXcgRXZlbnRFbWl0dGVyKCkpKTtcbn07XG5cbnR5cGUgUHJveHlDbXBPcHRpb25zID0geyBpbnB1dHM/OiBzdHJpbmdbXTsgbWV0aG9kcz86IHN0cmluZ1tdIH07XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogb25seS1hcnJvdy1mdW5jdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiBQcm94eUNtcCh7IGlucHV0cyAvKiwgbWV0aG9kcyovIH06IFByb3h5Q21wT3B0aW9ucykge1xuICByZXR1cm4gZnVuY3Rpb24gKGNvbXBvbmVudDogYW55KSB7XG4gICAgaWYgKGlucHV0cykge1xuICAgICAgcHJveHlJbnB1dHMoY29tcG9uZW50LCBpbnB1dHMpO1xuICAgIH1cbiAgICAvLyBpZiAobWV0aG9kcykge1xuICAgIC8vICAgcHJveHlNZXRob2RzKGNvbXBvbmVudCwgbWV0aG9kcyk7XG4gICAgLy8gfVxuICAgIHJldHVybiBjb21wb25lbnQ7XG4gIH07XG59XG4iXX0=
37
+ BaseComponentWithTheme.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseComponentWithTheme, deps: null, target: i0.ɵɵFactoryTarget.Component });
38
+ BaseComponentWithTheme.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BaseComponentWithTheme, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseComponentWithTheme, decorators: [{
40
+ type: Component,
41
+ args: [{
42
+ template: '',
43
+ }]
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXdyYXBwZXIvc3JjL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULE1BQU0sRUFDTixjQUFjLEdBR2YsTUFBTSxlQUFlLENBQUM7O0FBSXZCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsVUFBVSxDQUFDLENBQUM7QUFNbEYsTUFBTSxPQUFnQixhQUFhO0lBR2pDLFlBQVksR0FBc0IsRUFBRSxVQUFzQjtRQUN4RCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFzRjtRQUNoRyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDMUM7SUFDSCxDQUFDOzsyR0FabUIsYUFBYTsrRkFBYixhQUFhLHlFQUh2QixFQUFFOzRGQUdRLGFBQWE7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOztBQW1CRCxNQUFNLE9BQWdCLHNCQUF1QixTQUFRLGFBQWE7SUFIbEU7O1FBS1Usc0JBQWlCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0tBUUo7SUFMQyxXQUFXO1FBQ1QsNEZBQTRGO1FBQzVGLG1GQUFtRjtRQUNuRixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7b0hBWG1CLHNCQUFzQjt3R0FBdEIsc0JBQXNCLDJFQUZoQyxFQUFFOzRGQUVRLHNCQUFzQjtrQkFIM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIEluamVjdGlvblRva2VuLFxuICB0eXBlIE9uQ2hhbmdlcyxcbiAgdHlwZSBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IFRoZW1lIH0gZnJvbSAnLi9saWIvdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgVEhFTUVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QmVoYXZpb3JTdWJqZWN0PFRoZW1lPj4oJ3Bkc1RoZW1lJyk7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogJycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgY2RyLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhwcm9wczogUmVjb3JkPHN0cmluZywgeyBwcmV2aW91c1ZhbHVlOiBhbnk7IGN1cnJlbnRWYWx1ZTogYW55OyBmaXJzdENoYW5nZTogYm9vbGVhbiB9Pik6IHZvaWQge1xuICAgIGZvciAoY29uc3QgcHJvcCBpbiBwcm9wcykge1xuICAgICAgdGhpcy5lbFtwcm9wXSA9IHByb3BzW3Byb3BdLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudFdpdGhUaGVtZSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcm90ZWN0ZWQgZGVjbGFyZSBlbDogSFRNTEVsZW1lbnQgJiB7IHRoZW1lOiBUaGVtZSB9O1xuICBwcml2YXRlIHRoZW1lU3Vic2NyaXB0aW9uID0gaW5qZWN0KFRIRU1FX1RPS0VOKS5zdWJzY3JpYmUoKHRoZW1lKSA9PiB7XG4gICAgdGhpcy5lbC50aGVtZSA9IHRoaXMudGhlbWUgfHwgdGhlbWU7XG4gIH0pO1xuICB0aGVtZT86IFRoZW1lO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIG5lZWQgdG8gbWFudWFsbHkgdW5zdWJzY3JpYmUgb3Igb3RoZXJ3aXNlIHN1YnNjcmlwdGlvbiBpcyBzdGlsbCBhY3RpdmUgZXZlbiBhZnRlciB1bm1vdW50XG4gICAgLy8gaHR0cHM6Ly9yYWZhZWxuZXRvLmRldi9lbi9ibG9nL3Vuc3Vic2NyaWJpbmctYmVoYXZpb3JzdWJqZWN0LW9ic2VydmFibGUtYW5ndWxhci9cbiAgICB0aGlzLnRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==