@fundamental-ngx/platform 0.47.0-rc.2 → 0.47.0-rc.21

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 (77) hide show
  1. package/esm2022/form/combobox/combobox/combobox.component.mjs +2 -2
  2. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +5 -6
  3. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +5 -6
  4. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +6 -7
  5. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +5 -6
  6. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +6 -6
  7. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +5 -6
  8. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +14 -15
  9. package/esm2022/form/form-group/form-field/form-field.component.mjs +6 -8
  10. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +6 -8
  11. package/esm2022/form/form-group/form-group.component.mjs +17 -19
  12. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +3 -3
  13. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +11 -13
  14. package/esm2022/form/multi-input/index.mjs +8 -0
  15. package/esm2022/form/multi-input/multi-input.component.mjs +5 -5
  16. package/esm2022/form/radio-group/radio/radio.component.mjs +10 -12
  17. package/esm2022/form/select/select/select.component.mjs +7 -8
  18. package/esm2022/form/step-input/number/number-step-input.component.mjs +7 -8
  19. package/esm2022/form/switch/switch/index.mjs +2 -0
  20. package/esm2022/form/switch/switch/switch.component.mjs +7 -8
  21. package/esm2022/form/time-picker/time-picker.component.mjs +9 -10
  22. package/esm2022/message-popover/message-popover.component.mjs +8 -10
  23. package/esm2022/search-field/search-field.component.mjs +3 -3
  24. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +6 -7
  25. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +5 -7
  26. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +8 -9
  27. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +10 -12
  28. package/esm2022/settings-generator/settings-generator.module.mjs +6 -10
  29. package/esm2022/shared/form/base.input.mjs +12 -10
  30. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +3 -3
  31. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +7 -4
  32. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +3 -3
  33. package/esm2022/table/components/table-row/table-row.component.mjs +3 -3
  34. package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +27 -0
  35. package/esm2022/table-helpers/pipes/index.mjs +2 -1
  36. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +2 -2
  37. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +14 -16
  38. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +8 -10
  39. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +9 -10
  40. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +4 -5
  41. package/fesm2022/fundamental-ngx-platform-form.mjs +456 -463
  42. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +9 -11
  44. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-platform-search-field.mjs +2 -2
  46. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +118 -124
  48. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-platform-shared.mjs +7 -5
  50. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +26 -1
  52. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-platform-table.mjs +12 -9
  54. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +1 -1
  56. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  57. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +175 -179
  58. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  59. package/form/form-generator/form-generator/form-generator.component.d.ts +4 -4
  60. package/form/form-group/form-group-header/form-group-header.component.d.ts +1 -1
  61. package/form/form-group/form-group.component.d.ts +3 -3
  62. package/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.d.ts +2 -2
  63. package/form/multi-input/index.d.ts +7 -0
  64. package/form/radio-group/radio/radio.component.d.ts +2 -2
  65. package/form/switch/switch/index.d.ts +1 -0
  66. package/form/time-picker/time-picker.component.d.ts +2 -2
  67. package/fundamental-ngx-platform-v0.47.0-rc.21.tgz +0 -0
  68. package/package.json +4 -4
  69. package/schematics/ng-add/index.js +1 -1
  70. package/settings-generator/settings-generator.module.d.ts +8 -9
  71. package/shared/form/base.input.d.ts +5 -5
  72. package/table/components/table-header-row/table-header-row.component.d.ts +3 -1
  73. package/table-helpers/pipes/column-sorting-direction.pipe.d.ts +12 -0
  74. package/table-helpers/pipes/index.d.ts +1 -0
  75. package/wizard-generator/components/wizard-body/wizard-body.component.d.ts +1 -1
  76. package/wizard-generator/components/wizard-generator/wizard-generator.component.d.ts +1 -1
  77. package/fundamental-ngx-platform-v0.47.0-rc.2.tgz +0 -0
@@ -1,14 +1,12 @@
1
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Host, Inject, Input, Optional, Output, Self, SkipSelf, TemplateRef, ViewChild } from '@angular/core';
2
- import { ControlContainer, NgControl, NgForm, FormsModule } from '@angular/forms';
3
- import { RadioButtonComponent as CoreRadioButtonComponent } from '@fundamental-ngx/core/radio';
4
- import { BaseInput, PlatformFormFieldControl, PlatformFormField } from '@fundamental-ngx/platform/shared';
5
- import { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';
2
+ import { ControlContainer, FormsModule, NgControl, NgForm } from '@angular/forms';
6
3
  import { NgIf, NgTemplateOutlet } from '@angular/common';
7
- import { RadioModule } from '@fundamental-ngx/core/radio';
4
+ import { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';
5
+ import { RadioButtonComponent as CoreRadioButtonComponent } from '@fundamental-ngx/core/radio';
6
+ import { BaseInput, PlatformFormField, PlatformFormFieldControl } from '@fundamental-ngx/platform/shared';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "@angular/forms";
10
- import * as i2 from "@fundamental-ngx/core/radio";
11
- import * as i3 from "@fundamental-ngx/platform/shared";
9
+ import * as i2 from "@fundamental-ngx/platform/shared";
12
10
  let uniqueId = 0;
13
11
  export class RadioButtonComponent extends BaseInput {
14
12
  /** value for Radio button */
@@ -82,11 +80,11 @@ export class RadioButtonComponent extends BaseInput {
82
80
  this._cd.markForCheck();
83
81
  }
84
82
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.ControlContainer, optional: true, skipSelf: true }, { token: i1.NgForm, optional: true, skipSelf: true }, { token: FD_FORM_FIELD, host: true, optional: true, skipSelf: true }, { token: FD_FORM_FIELD_CONTROL, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: RadioButtonComponent, isStandalone: true, selector: "fdp-radio-button", inputs: { title: "title", tabIndex: "tabIndex", value: "value", forceRender: "forceRender" }, outputs: { checked: "checked" }, viewQueries: [{ propertyName: "renderer", first: true, predicate: ["renderer"], descendants: true }, { propertyName: "coreRadioButton", first: true, predicate: CoreRadioButtonComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #renderer>\n <fd-radio-button\n [id]=\"id\"\n [name]=\"name\"\n [value]=\"value\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [tabIndex]=\"_isChecked ? 0 : tabIndex\"\n [title]=\"title\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [ngModel]=\"_currentValue\"\n (ngModelChange)=\"_valueChange($event, true)\"\n >\n <ng-content></ng-content>\n </fd-radio-button>\n</ng-template>\n\n<ng-container *ngIf=\"forceRender\">\n <ng-container *ngTemplateOutlet=\"renderer\"></ng-container>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: RadioModule }, { kind: "component", type: i2.RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: RadioButtonComponent, isStandalone: true, selector: "fdp-radio-button", inputs: { title: "title", tabIndex: "tabIndex", value: "value", forceRender: "forceRender" }, outputs: { checked: "checked" }, viewQueries: [{ propertyName: "renderer", first: true, predicate: ["renderer"], descendants: true }, { propertyName: "coreRadioButton", first: true, predicate: CoreRadioButtonComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #renderer>\n <fd-radio-button\n [id]=\"id\"\n [name]=\"name\"\n [value]=\"value\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [tabIndex]=\"_isChecked ? 0 : tabIndex\"\n [title]=\"title\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [ngModel]=\"_currentValue\"\n (ngModelChange)=\"_valueChange($event, true)\"\n >\n <ng-content></ng-content>\n </fd-radio-button>\n</ng-template>\n\n<ng-container *ngIf=\"forceRender\">\n <ng-container *ngTemplateOutlet=\"renderer\"></ng-container>\n</ng-container>\n", dependencies: [{ kind: "component", type: CoreRadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
86
84
  }
87
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: RadioButtonComponent, decorators: [{
88
86
  type: Component,
89
- args: [{ selector: 'fdp-radio-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RadioModule, FormsModule, NgIf, NgTemplateOutlet], template: "<ng-template #renderer>\n <fd-radio-button\n [id]=\"id\"\n [name]=\"name\"\n [value]=\"value\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [tabIndex]=\"_isChecked ? 0 : tabIndex\"\n [title]=\"title\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [ngModel]=\"_currentValue\"\n (ngModelChange)=\"_valueChange($event, true)\"\n >\n <ng-content></ng-content>\n </fd-radio-button>\n</ng-template>\n\n<ng-container *ngIf=\"forceRender\">\n <ng-container *ngTemplateOutlet=\"renderer\"></ng-container>\n</ng-container>\n" }]
87
+ args: [{ selector: 'fdp-radio-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CoreRadioButtonComponent, FormsModule, NgIf, NgTemplateOutlet], template: "<ng-template #renderer>\n <fd-radio-button\n [id]=\"id\"\n [name]=\"name\"\n [value]=\"value\"\n [state]=\"state\"\n [disabled]=\"disabled\"\n [tabIndex]=\"_isChecked ? 0 : tabIndex\"\n [title]=\"title\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [ngModel]=\"_currentValue\"\n (ngModelChange)=\"_valueChange($event, true)\"\n >\n <ng-content></ng-content>\n </fd-radio-button>\n</ng-template>\n\n<ng-container *ngIf=\"forceRender\">\n <ng-container *ngTemplateOutlet=\"renderer\"></ng-container>\n</ng-container>\n" }]
90
88
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
91
89
  type: Optional
92
90
  }, {
@@ -99,7 +97,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
99
97
  type: Optional
100
98
  }, {
101
99
  type: SkipSelf
102
- }] }, { type: i3.PlatformFormField, decorators: [{
100
+ }] }, { type: i2.PlatformFormField, decorators: [{
103
101
  type: Optional
104
102
  }, {
105
103
  type: SkipSelf
@@ -108,7 +106,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
108
106
  }, {
109
107
  type: Inject,
110
108
  args: [FD_FORM_FIELD]
111
- }] }, { type: i3.PlatformFormFieldControl, decorators: [{
109
+ }] }, { type: i2.PlatformFormFieldControl, decorators: [{
112
110
  type: Optional
113
111
  }, {
114
112
  type: SkipSelf
@@ -134,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
134
132
  type: ViewChild,
135
133
  args: [CoreRadioButtonComponent, { static: false }]
136
134
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vcmFkaW8tZ3JvdXAvcmFkaW8vcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vcmFkaW8tZ3JvdXAvcmFkaW8vcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbEYsT0FBTyxFQUFFLG9CQUFvQixJQUFJLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQUUxRCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFTakIsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFNBQVM7SUFXL0MsNkJBQTZCO0lBQzdCLElBQ0ksS0FBSyxDQUFDLFFBQWE7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksS0FBSztRQUNMLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUF3QkQsY0FBYztJQUNkLFlBQ0ksRUFBcUIsRUFDckIsVUFBc0IsRUFDRixTQUFvQixFQUNoQixnQkFBa0MsRUFDbEMsTUFBYyxFQUNpQixTQUE0QixFQUNwQixXQUFxQztRQUVwRyxLQUFLLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQS9DdkY7O1dBRUc7UUFFSCxhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFXZCwyREFBMkQ7UUFFM0QsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFTcEIsbUNBQW1DO1FBQ25DLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsMEJBQTBCO1FBRWpCLFlBQU8sR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWtCdEUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUN2QztRQUNELHNGQUFzRjtRQUN0RixJQUFJLENBQUMsRUFBRSxHQUFHLGdCQUFnQixRQUFRLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixRQUFRLEVBQUUsQ0FBQztRQUN6QyxRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsVUFBVSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsY0FBYztJQUNkLGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWM7SUFDZCxZQUFZLENBQUMsS0FBVSxFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQ3RDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDckI7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxTQUFTLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixJQUFJLFNBQVMsRUFBRTtZQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxLQUFLO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsTUFBTTtRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsK0NBQStDO0lBQy9DLFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0EvR1Esb0JBQW9CLHdQQWlEZSxhQUFhLHlEQUNiLHFCQUFxQjtrR0FsRHhELG9CQUFvQixtVkF1Q2xCLHdCQUF3Qix1RUMxRXZDLDRxQkFzQkEsMkNEV2MsV0FBVyx5UkFBRSxXQUFXLCtWQUFFLElBQUksNkZBQUUsZ0JBQWdCOzsyRkFFakQsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNJLGtCQUFrQixtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixDQUFDOzswQkFnRHRELFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQ3BCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BELFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCOzRDQS9DakUsS0FBSztzQkFESixLQUFLO2dCQU9OLFFBQVE7c0JBRFAsS0FBSztnQkFLRixLQUFLO3NCQURSLEtBQUs7Z0JBVU4sV0FBVztzQkFEVixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVO2dCQVdaLE9BQU87c0JBRGYsTUFBTTtnQkFLQyxlQUFlO3NCQUR0QixTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdCxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgU2tpcFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdDb250cm9sLCBOZ0Zvcm0sIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9jdXNhYmxlT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCBhcyBDb3JlUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcmFkaW8nO1xuaW1wb3J0IHsgQmFzZUlucHV0LCBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsIFBsYXRmb3JtRm9ybUZpZWxkIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgRkRfRk9STV9GSUVMRCwgRkRfRk9STV9GSUVMRF9DT05UUk9MIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSYWRpb01vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXJhZGlvLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtSYWRpb01vZHVsZSwgRm9ybXNNb2R1bGUsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgRm9jdXNhYmxlT3B0aW9uIHtcbiAgICAvKiogc2V0cyByYWRpbyBidXR0b24gdG9vbHRpcCAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEluY2x1ZGVzIHRoZSBSYWRpbyBpbiB0aGUgcGFnZSB0YWIgc2VxdWVuY2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0YWJJbmRleCA9IC0xO1xuXG4gICAgLyoqIHZhbHVlIGZvciBSYWRpbyBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKiogdXNlZCBmb3IgcmFkaW8gYnV0dG9uIGNyZWF0aW9uIGlmIGxpc3QgdmFsdWUgcHJlc2VudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9yY2VSZW5kZXIgPSBmYWxzZTtcblxuICAgIC8qKiByZWZlcmVuY2Ugb2YgdGVtcGxhdGUgKi9cbiAgICBAVmlld0NoaWxkKCdyZW5kZXJlcicpXG4gICAgcmVuZGVyZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jdXJyZW50VmFsdWU6IGFueTtcblxuICAgIC8qKiBAaGlkZGVuIFJhZGlvIGNoZWNrZWQgc3RhdHVzICovXG4gICAgX2lzQ2hlY2tlZCA9IGZhbHNlO1xuXG4gICAgLyoqIGNsaWNrIGV2ZW50IHRvIGVtaXQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjaGVja2VkOiBFdmVudEVtaXR0ZXI8UmFkaW9CdXR0b25Db21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIEFjY2VzcyByYWRpbyBidXR0b24gY2hpbGQgZWxlbWVudCBwYXNzZWQgYXMgY29udGVudCBvZiByYWRpbyBidXR0b24gZ3JvdXAgKi9cbiAgICBAVmlld0NoaWxkKENvcmVSYWRpb0J1dHRvbkNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSBjb3JlUmFkaW9CdXR0b246IENvcmVSYWRpb0J1dHRvbkNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkLCBlbGVtZW50UmVmLCBuZ0NvbnRyb2wsIGNvbnRyb2xDb250YWluZXIsIG5nRm9ybSwgZm9ybUZpZWxkLCBmb3JtQ29udHJvbCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgICAgICAvLyBAaGlkZGVuIGhhdmUgdG8gc2V0IGRlZmF1bHQgaW5pdGlhbCB2YWx1ZXMgYXMgYmFzZSBjbGFzcyBoYXMgY2hlY2sgYW5kIHRocm93cyBlcnJvclxuICAgICAgICB0aGlzLmlkID0gYGZkcC1yYWRpby1pZC0ke3VuaXF1ZUlkfWA7XG4gICAgICAgIHRoaXMubmFtZSA9IGBmZHAtcmFkaW8tbmFtZS0ke3VuaXF1ZUlkfWA7XG4gICAgICAgIHVuaXF1ZUlkKys7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQ29udHJvbHZhbHVlIGFjY2Vzc29yICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdmFsdWVDaGFuZ2UodmFsdWU6IGFueSwgZW1pdEV2ZW50ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGVtaXRFdmVudCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2lzQ2hlY2tlZCA9IHRoaXMuX2N1cnJlbnRWYWx1ZSA9PT0gc3VwZXIuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2lzQ2hlY2tlZCAmJiBlbWl0RXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZC5lbWl0KHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGFiSW5kZXggPSB0aGlzLl9pc0NoZWNrZWQgPyAwIDogLTE7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIG1ldGhvZCBmb3IgY2RrIEZvY3VzS2V5bWFuYWdlciAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvcmVSYWRpb0J1dHRvbj8uaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogbWV0aG9kIHRvIHNlbGVjdCByYWRpbyBidXR0b24gKi9cbiAgICBzZWxlY3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlKHN1cGVyLmdldFZhbHVlKCkpO1xuICAgIH1cblxuICAgIC8qKiBtZXRob2QgdG8gdW5jaGVjayByYWRpbyBidXR0b24gKi9cbiAgICB1bnNlbGVjdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICAvKiogU2V0dGluZyB0YWJJbmRleCBmb3IgcmFkaW8gYWNjZXNzaWJpbGl0eSAqL1xuICAgIHNldFRhYkluZGV4KGluZGV4OiAwIHwgLTEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3JlbmRlcmVyPlxuICAgIDxmZC1yYWRpby1idXR0b25cbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFt0YWJJbmRleF09XCJfaXNDaGVja2VkID8gMCA6IHRhYkluZGV4XCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIl9jdXJyZW50VmFsdWVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJfdmFsdWVDaGFuZ2UoJGV2ZW50LCB0cnVlKVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9mZC1yYWRpby1idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiZm9yY2VSZW5kZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyZXJcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vcmFkaW8tZ3JvdXAvcmFkaW8vcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vcmFkaW8tZ3JvdXAvcmFkaW8vcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEYsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsb0JBQW9CLElBQUksd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRixPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFFMUcsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBU2pCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxTQUFTO0lBVy9DLDZCQUE2QjtJQUM3QixJQUNJLEtBQUssQ0FBQyxRQUFhO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBQzNC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dUVDekV2Qyw0cUJBc0JBLDRDRFVjLHdCQUF3QixtT0FBRSxXQUFXLCtWQUFFLElBQUksNkZBQUUsZ0JBQWdCOzsyRkFFOUQsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNJLGtCQUFrQixtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLHdCQUF3QixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUM7OzBCQWdEbkUsUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhOzswQkFDcEQsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7NENBL0NqRSxLQUFLO3NCQURKLEtBQUs7Z0JBT04sUUFBUTtzQkFEUCxLQUFLO2dCQUtGLEtBQUs7c0JBRFIsS0FBSztnQkFVTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxTQUFTO3VCQUFDLFVBQVU7Z0JBV1osT0FBTztzQkFEZixNQUFNO2dCQUtDLGVBQWU7c0JBRHRCLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNhYmxlT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3Jtc01vZHVsZSwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRkRfRk9STV9GSUVMRCwgRkRfRk9STV9GSUVMRF9DT05UUk9MIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgYXMgQ29yZVJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3JhZGlvJztcbmltcG9ydCB7IEJhc2VJbnB1dCwgUGxhdGZvcm1Gb3JtRmllbGQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtcmFkaW8tYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvcmVSYWRpb0J1dHRvbkNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgRm9jdXNhYmxlT3B0aW9uIHtcbiAgICAvKiogc2V0cyByYWRpbyBidXR0b24gdG9vbHRpcCAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEluY2x1ZGVzIHRoZSBSYWRpbyBpbiB0aGUgcGFnZSB0YWIgc2VxdWVuY2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0YWJJbmRleCA9IC0xO1xuXG4gICAgLyoqIHZhbHVlIGZvciBSYWRpbyBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKiogdXNlZCBmb3IgcmFkaW8gYnV0dG9uIGNyZWF0aW9uIGlmIGxpc3QgdmFsdWUgcHJlc2VudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9yY2VSZW5kZXIgPSBmYWxzZTtcblxuICAgIC8qKiByZWZlcmVuY2Ugb2YgdGVtcGxhdGUgKi9cbiAgICBAVmlld0NoaWxkKCdyZW5kZXJlcicpXG4gICAgcmVuZGVyZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jdXJyZW50VmFsdWU6IGFueTtcblxuICAgIC8qKiBAaGlkZGVuIFJhZGlvIGNoZWNrZWQgc3RhdHVzICovXG4gICAgX2lzQ2hlY2tlZCA9IGZhbHNlO1xuXG4gICAgLyoqIGNsaWNrIGV2ZW50IHRvIGVtaXQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjaGVja2VkOiBFdmVudEVtaXR0ZXI8UmFkaW9CdXR0b25Db21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIEFjY2VzcyByYWRpbyBidXR0b24gY2hpbGQgZWxlbWVudCBwYXNzZWQgYXMgY29udGVudCBvZiByYWRpbyBidXR0b24gZ3JvdXAgKi9cbiAgICBAVmlld0NoaWxkKENvcmVSYWRpb0J1dHRvbkNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSBjb3JlUmFkaW9CdXR0b246IENvcmVSYWRpb0J1dHRvbkNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkLCBlbGVtZW50UmVmLCBuZ0NvbnRyb2wsIGNvbnRyb2xDb250YWluZXIsIG5nRm9ybSwgZm9ybUZpZWxkLCBmb3JtQ29udHJvbCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgICAgICAvLyBAaGlkZGVuIGhhdmUgdG8gc2V0IGRlZmF1bHQgaW5pdGlhbCB2YWx1ZXMgYXMgYmFzZSBjbGFzcyBoYXMgY2hlY2sgYW5kIHRocm93cyBlcnJvclxuICAgICAgICB0aGlzLmlkID0gYGZkcC1yYWRpby1pZC0ke3VuaXF1ZUlkfWA7XG4gICAgICAgIHRoaXMubmFtZSA9IGBmZHAtcmFkaW8tbmFtZS0ke3VuaXF1ZUlkfWA7XG4gICAgICAgIHVuaXF1ZUlkKys7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQ29udHJvbHZhbHVlIGFjY2Vzc29yICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdmFsdWVDaGFuZ2UodmFsdWU6IGFueSwgZW1pdEV2ZW50ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGVtaXRFdmVudCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2lzQ2hlY2tlZCA9IHRoaXMuX2N1cnJlbnRWYWx1ZSA9PT0gc3VwZXIuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2lzQ2hlY2tlZCAmJiBlbWl0RXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZC5lbWl0KHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGFiSW5kZXggPSB0aGlzLl9pc0NoZWNrZWQgPyAwIDogLTE7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIG1ldGhvZCBmb3IgY2RrIEZvY3VzS2V5bWFuYWdlciAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvcmVSYWRpb0J1dHRvbj8uaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogbWV0aG9kIHRvIHNlbGVjdCByYWRpbyBidXR0b24gKi9cbiAgICBzZWxlY3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlKHN1cGVyLmdldFZhbHVlKCkpO1xuICAgIH1cblxuICAgIC8qKiBtZXRob2QgdG8gdW5jaGVjayByYWRpbyBidXR0b24gKi9cbiAgICB1bnNlbGVjdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICAvKiogU2V0dGluZyB0YWJJbmRleCBmb3IgcmFkaW8gYWNjZXNzaWJpbGl0eSAqL1xuICAgIHNldFRhYkluZGV4KGluZGV4OiAwIHwgLTEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3JlbmRlcmVyPlxuICAgIDxmZC1yYWRpby1idXR0b25cbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFt0YWJJbmRleF09XCJfaXNDaGVja2VkID8gMCA6IHRhYkluZGV4XCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIl9jdXJyZW50VmFsdWVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJfdmFsdWVDaGFuZ2UoJGV2ZW50LCB0cnVlKVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9mZC1yYWRpby1idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiZm9yY2VSZW5kZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyZXJcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19