@updevs/components 1.0.0-alpha.21 → 1.0.0-alpha.23

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.
@@ -1,4 +1,4 @@
1
- import { Component, HostBinding, inject, input } from '@angular/core';
1
+ import { Component, HostBinding, inject, input, Output, EventEmitter } from '@angular/core';
2
2
  import { TextService } from '@updevs/sdk';
3
3
  import { BaseComponent } from '@updevs/sdk/layout';
4
4
  import { ColumnSizeHelper } from '@updevs/components';
@@ -16,18 +16,22 @@ export class DynamicFieldComponent extends BaseComponent {
16
16
  constructor() {
17
17
  super(...arguments);
18
18
  this.wrapperClasses = '';
19
+ this.submitForm = new EventEmitter();
19
20
  this.DynamicFieldType = DynamicFieldType;
20
21
  this.SelectDefaults = SelectDefaults;
21
22
  this.formGroup = input.required();
22
23
  this.field = input.required();
23
24
  this.layout = input.required();
24
25
  this.validationStatusDescriptions = [];
25
- this.errorsHelper = inject(ErrorsHelper);
26
26
  this.textService = inject(TextService);
27
+ this.errorsHelper = inject(ErrorsHelper);
27
28
  }
28
29
  get formControl() {
29
30
  return this.formGroup().controls[this.field().name];
30
31
  }
32
+ get inputField() {
33
+ return this.field();
34
+ }
31
35
  get checkboxField() {
32
36
  return this.field();
33
37
  }
@@ -95,17 +99,24 @@ export class DynamicFieldComponent extends BaseComponent {
95
99
  this.fileNameControl.setValue(event?.file.name);
96
100
  }
97
101
  }
102
+ onInputEnter() {
103
+ if (!!this.inputField.shouldSubmitOnEnter) {
104
+ this.submitForm.next();
105
+ }
106
+ }
98
107
  setupWrapperClasses() {
99
108
  this.wrapperClasses = ColumnSizeHelper.getSizeClasses(this.field().colSize);
100
109
  }
101
110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DynamicFieldComponent, selector: "upd-dynamic-field", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"field().inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\"></upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: i1.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "component", type: i2.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i3.RadioComponent, selector: "upd-radio", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline"], outputs: ["selected"] }, { kind: "component", type: i4.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "isCompact", "selected"], outputs: ["selectedItem"] }, { kind: "component", type: i4.SelectMultipleComponent, selector: "upd-select-multiple", outputs: ["selectedItems", "selectedIds"] }, { kind: "component", type: i5.TextareaComponent, selector: "upd-textarea", inputs: ["value", "customClasses", "wrapperClasses", "maxLength", "rows", "displayCharactersCount"], outputs: ["valueChange"] }, { kind: "component", type: i6.FileUploadComponent, selector: "upd-file-upload", inputs: ["fileName", "title", "allowFilesDrop", "isMultiple", "allowedExtensions", "minFileSize", "maxFileSize", "layout"], outputs: ["fileChanged"] }] }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DynamicFieldComponent, selector: "upd-dynamic-field", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { submitForm: "submitForm" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: i1.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i1.InputAppendDirective, selector: "ng-template[updInputAppend]" }, { kind: "directive", type: i1.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i2.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i3.RadioComponent, selector: "upd-radio", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline"], outputs: ["selected"] }, { kind: "component", type: i4.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "isCompact", "selected"], outputs: ["selectedItem"] }, { kind: "component", type: i4.SelectMultipleComponent, selector: "upd-select-multiple", outputs: ["selectedItems", "selectedIds"] }, { kind: "component", type: i5.TextareaComponent, selector: "upd-textarea", inputs: ["value", "customClasses", "wrapperClasses", "maxLength", "rows", "displayCharactersCount"], outputs: ["valueChange"] }, { kind: "component", type: i6.FileUploadComponent, selector: "upd-file-upload", inputs: ["fileName", "title", "allowFilesDrop", "isMultiple", "allowedExtensions", "minFileSize", "maxFileSize", "layout"], outputs: ["fileChanged"] }] }); }
103
112
  }
104
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicFieldComponent, decorators: [{
105
114
  type: Component,
106
- args: [{ selector: 'upd-dynamic-field', template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"field().inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\"></upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n" }]
115
+ args: [{ selector: 'upd-dynamic-field', template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n" }]
107
116
  }], propDecorators: { wrapperClasses: [{
108
117
  type: HostBinding,
109
118
  args: ['class']
119
+ }], submitForm: [{
120
+ type: Output
110
121
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvY29tcG9uZW50cy9keW5hbWljLWZpZWxkL2R5bmFtaWMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0vc3JjL2NvbXBvbmVudHMvZHluYW1pYy1maWVsZC9keW5hbWljLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUFFLE1BQU0sRUFBZSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxFQUFhLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFnRCxNQUFNLG9CQUFvQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxRQUFRLElBQUksY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFJckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7OztBQWV6RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQUx4RDs7UUFNMEIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFFMUMscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDcEMsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEMsY0FBUyxHQUEyQixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckQsVUFBSyxHQUFtQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekQsV0FBTSxHQUF3QyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFL0QsaUNBQTRCLEdBQWdCLEVBQUUsQ0FBQztRQXdDOUIsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0EyQ3REO0lBbkZHLElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFnQixDQUFDO0lBQ3ZFLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQXdCLENBQUM7SUFDOUMsQ0FBQztJQUNELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBNkIsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFxQixDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQTBCLENBQUM7SUFDaEQsQ0FBQztJQUNELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBc0IsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUE0QixDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQXdCLENBQUM7SUFDOUMsQ0FBQztJQUNELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBMEIsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSx3QkFBd0I7UUFDeEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsSUFBSSxxQkFBcUI7UUFDckIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELElBQUksZUFBZTtRQUNmLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CO1lBQzlDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQWdCO1lBQ3JGLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEIsQ0FBQztJQUtELFFBQVE7UUFDSixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEUsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO3FCQUM5RSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsNEJBQTRCLEdBQUcsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0UsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsU0FBcUI7UUFDekIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBVyxFQUFFLElBQTBCO1FBQ3hELE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQThCO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRS9GLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsZUFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEYsQ0FBQzs4R0E1RlEscUJBQXFCO2tHQUFyQixxQkFBcUIsMGdCQzFCbEMsMDRPQTJGQTs7MkZEakVhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxtQkFBbUI7OEJBS1AsY0FBYztzQkFBbkMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0U2lnbmFsLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRleHRNb2RlbCwgVGV4dFNlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBPcHRpb25hbFR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHVwZGV2cy9zZGsvbGF5b3V0JztcbmltcG9ydCB7IENvbHVtblNpemVIZWxwZXIsIEhvcml6b250YWxWZXJ0aWNhbFR5cGUsIFZhbGlkYXRpb25TdGF0dXNUeXBlIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzJztcbmltcG9ydCB7IERlZmF1bHRzIGFzIFNlbGVjdERlZmF1bHRzIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvc2VsZWN0JztcbmltcG9ydCB7IEZpbGVVcGxvYWRDaGFuZ2VkRXZlbnQgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9maWxlLXVwbG9hZCc7XG5cbmltcG9ydCB7IEZpbGVVcGxvYWRGaWVsZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGUtdXBsb2FkLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEVycm9yc0hlbHBlciB9IGZyb20gJy4uLy4uL3Rvb2xzL2Vycm9ycy1oZWxwZXInO1xuaW1wb3J0IHsgRHluYW1pY0ZpZWxkVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9lbnVtcy9keW5hbWljLWZpZWxkLnR5cGUnO1xuaW1wb3J0IHsgRHluYW1pY0ZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHluYW1pYy1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBDaGVja2JveEZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2hlY2tib3gtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgUmFkaW9GaWVsZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JhZGlvLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFNlbGVjdEZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0LWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdEZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2luZ2xlLXNlbGVjdC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBDaGVja2JveEdyb3VwRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1ncm91cC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBSYWRpb0dyb3VwRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9yYWRpby1ncm91cC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBUZXh0YXJlYUZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGV4dGFyZWEtZmllbGQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1keW5hbWljLWZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2R5bmFtaWMtZmllbGQuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGaWVsZENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSB3cmFwcGVyQ2xhc3NlcyA9ICcnO1xuXG4gICAgRHluYW1pY0ZpZWxkVHlwZSA9IER5bmFtaWNGaWVsZFR5cGU7XG4gICAgU2VsZWN0RGVmYXVsdHMgPSBTZWxlY3REZWZhdWx0cztcbiAgICBmb3JtR3JvdXA6IElucHV0U2lnbmFsPEZvcm1Hcm91cD4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIGZpZWxkOiBJbnB1dFNpZ25hbDxEeW5hbWljRmllbGRNb2RlbD4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIGxheW91dDogSW5wdXRTaWduYWw8SG9yaXpvbnRhbFZlcnRpY2FsVHlwZT4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIHZhbGlkYXRpb25TdGF0dXM/OiBWYWxpZGF0aW9uU3RhdHVzVHlwZTtcbiAgICB2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zOiBUZXh0TW9kZWxbXSA9IFtdO1xuICAgIGdldCBmb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cCgpLmNvbnRyb2xzW3RoaXMuZmllbGQoKS5uYW1lXSBhcyBGb3JtQ29udHJvbDtcbiAgICB9XG4gICAgZ2V0IGNoZWNrYm94RmllbGQoKTogQ2hlY2tib3hGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBDaGVja2JveEZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCBjaGVja2JveEdyb3VwRmllbGQoKTogQ2hlY2tib3hHcm91cEZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCgpIGFzIENoZWNrYm94R3JvdXBGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgcmFkaW9GaWVsZCgpOiBDaGVja2JveEZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCgpIGFzIFJhZGlvRmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IHJhZGlvR3JvdXBGaWVsZCgpOiBSYWRpb0dyb3VwRmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgUmFkaW9Hcm91cEZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCBzZWxlY3RGaWVsZCgpOiBTZWxlY3RGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBTZWxlY3RGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgc2luZ2xlU2VsZWN0RmllbGQoKTogU2luZ2xlU2VsZWN0RmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgU2luZ2xlU2VsZWN0RmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IHRleHRhcmVhRmllbGQoKTogVGV4dGFyZWFGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBUZXh0YXJlYUZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCBmaWxlVXBsb2FkRmllbGQoKTogRmlsZVVwbG9hZEZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCgpIGFzIEZpbGVVcGxvYWRGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgY2hlY2tib3hHcm91cE9wdGlvbnNLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY2hlY2tib3hHcm91cEZpZWxkLm9wdGlvbnMpO1xuICAgIH1cbiAgICBnZXQgcmFkaW9Hcm91cE9wdGlvbnNLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMucmFkaW9Hcm91cEZpZWxkLm9wdGlvbnMpO1xuICAgIH1cbiAgICBnZXQgZmlsZU5hbWVDb250cm9sKCk6IE9wdGlvbmFsVHlwZTxGb3JtQ29udHJvbD4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmZpbGVVcGxvYWRGaWVsZC5maWxlTmFtZUZvcm1Qcm9wZXJ0eVxuICAgICAgICAgICAgPyB0aGlzLmZvcm1Hcm91cCgpLmNvbnRyb2xzW3RoaXMuZmlsZVVwbG9hZEZpZWxkLmZpbGVOYW1lRm9ybVByb3BlcnR5XSBhcyBGb3JtQ29udHJvbFxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvcnNIZWxwZXIgPSBpbmplY3QoRXJyb3JzSGVscGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRTZXJ2aWNlID0gaW5qZWN0KFRleHRTZXJ2aWNlKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdGF0dXNTdWIgPSB0aGlzLmZvcm1Db250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhdHVzID09PSAnSU5WQUxJRCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnMgPSB0aGlzLmVycm9yc0hlbHBlci5nZXRNZXNzYWdlcyh0aGlzLmZvcm1Db250cm9sKVxuICAgICAgICAgICAgICAgICAgICAubWFwKHQgPT4gKHsgdGV4dDogdCwgaXNUcmFuc2xhdGVkOiB0cnVlIH0pKTtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdGF0dXMgPSAnaW52YWxpZCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXR1cyA9IHRoaXMuZmllbGQoKS5zaG93VmFsaWRTdGF0dXMgPyAndmFsaWQnIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNldHVwV3JhcHBlckNsYXNzZXMoKTtcbiAgICAgICAgdGhpcy5hZGRTdWJzY3JpcHRpb25zKHN0YXR1c1N1Yik7XG4gICAgfVxuXG4gICAgb25CbHVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5maWVsZCgpLnNob3VsZFZhbGlkYXRlT25CbHVyKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRleHQodGV4dE1vZGVsPzogVGV4dE1vZGVsKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dFNlcnZpY2UuZ2V0VGV4dCh0ZXh0TW9kZWwpO1xuICAgIH1cblxuICAgIGdldE9wdGlvbkRlc2NyaXB0aW9uKGtleTogc3RyaW5nLCB0eXBlOiAnY2hlY2tib3gnIHwgJ3JhZGlvJyk6IE9wdGlvbmFsVHlwZTxUZXh0TW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHR5cGUgPT09ICdjaGVja2JveCcgPyB0aGlzLmNoZWNrYm94R3JvdXBGaWVsZC5vcHRpb25zW2tleV0gOiB0aGlzLnJhZGlvR3JvdXBGaWVsZC5vcHRpb25zW2tleV07XG4gICAgfVxuXG4gICAgaGFuZGxlRmlsZVNlbGVjdGVkKGV2ZW50PzogRmlsZVVwbG9hZENoYW5nZWRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKCEhdGhpcy5maWxlVXBsb2FkRmllbGQuc2F2ZUFzRGF0YVVybCA/IGV2ZW50Py5kYXRhVXJsIDogZXZlbnQ/LmZpbGUpO1xuXG4gICAgICAgIGlmICghIXRoaXMuZmlsZVVwbG9hZEZpZWxkLmZpbGVOYW1lRm9ybVByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVOYW1lQ29udHJvbCEuc2V0VmFsdWUoZXZlbnQ/LmZpbGUubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwV3JhcHBlckNsYXNzZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud3JhcHBlckNsYXNzZXMgPSBDb2x1bW5TaXplSGVscGVyLmdldFNpemVDbGFzc2VzKHRoaXMuZmllbGQoKS5jb2xTaXplKTtcbiAgICB9XG59XG4iLCJAc3dpdGNoIChmaWVsZCgpLnR5cGUpIHtcbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5JbnB1dCkge1xuICAgICAgICA8dXBkLWlucHV0IFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCkucGxhY2Vob2xkZXJcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIlxuICAgICAgICAgICAgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCIgW3ZhbGlkYXRpb25TdGF0dXNdPVwidmFsaWRhdGlvblN0YXR1c1wiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW2xheW91dF09XCJsYXlvdXQoKVwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbdHlwZV09XCJmaWVsZCgpLmlucHV0VHlwZSB8fCAndGV4dCdcIiBbbGFiZWxDb2xTaXplXT1cImZpZWxkKCkubGFiZWxDb2xTaXplXCIgW3ZhbHVlXT1cImZvcm1Db250cm9sLnZhbHVlXCJcbiAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZSgkZXZlbnQpXCIgKGJsdXJyZWQpPVwib25CbHVyKClcIj48L3VwZC1pbnB1dD5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuQ2hlY2tib3gpIHtcbiAgICAgICAgPHVwZC1jaGVja2JveCBbbmFtZV09XCJmaWVsZCgpLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQoKS5sYWJlbFwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiIFtoaW50QXNUb29sdGlwXT1cImZpZWxkKCkuaGludEFzVG9vbHRpcCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCIgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiIFt2YWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiIFtpc0NoZWNrZWRdPVwiZm9ybUNvbnRyb2wudmFsdWVcIiBbaXNJbmxpbmVdPVwiY2hlY2tib3hGaWVsZC5pc0lubGluZSB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbaXNTd2l0Y2hdPVwiY2hlY2tib3hGaWVsZC5pc1N3aXRjaCB8fCBmYWxzZVwiIChjaGFuZ2VkKT1cImZvcm1Db250cm9sLnNldFZhbHVlKCRldmVudClcIj48L3VwZC1jaGVja2JveD5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuQ2hlY2tib3hHcm91cCkge1xuICAgICAgICBAaWYgKCEhZmllbGQoKS5sYWJlbCkge1xuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGdldFRleHQoZmllbGQoKS5sYWJlbCkgfX08L2xhYmVsPlxuICAgICAgICB9XG5cbiAgICAgICAgQGZvciAob3B0aW9uIG9mIGNoZWNrYm94R3JvdXBPcHRpb25zS2V5czsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgICAgICA8dXBkLWNoZWNrYm94IFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJnZXRPcHRpb25EZXNjcmlwdGlvbihvcHRpb24sICdjaGVja2JveCcpXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCJcbiAgICAgICAgICAgICAgICBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIiBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCJcbiAgICAgICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJmb3JtQ29udHJvbC52YWx1ZVwiIFtpc0lubGluZV09XCJjaGVja2JveEZpZWxkLmlzSW5saW5lIHx8IGZhbHNlXCIgW2lzU3dpdGNoXT1cImNoZWNrYm94RmllbGQuaXNTd2l0Y2ggfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cImZvcm1Db250cm9sLnNldFZhbHVlKG9wdGlvbilcIj48L3VwZC1jaGVja2JveD5cbiAgICAgICAgfVxuICAgIH1cbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5SYWRpbykge1xuICAgICAgICA8dXBkLXJhZGlvIFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCIgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIiBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW3ZhbHVlXT1cInRydWVcIlxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJmb3JtQ29udHJvbC52YWx1ZVwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiIFtpc0lubGluZV09XCJyYWRpb0ZpZWxkLmlzSW5saW5lIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIChzZWxlY3RlZCk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvdXBkLXJhZGlvPlxuICAgIH1cbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5SYWRpb0dyb3VwKSB7XG4gICAgICAgIEBpZiAoISFmaWVsZCgpLmxhYmVsKSB7XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3sgZ2V0VGV4dChmaWVsZCgpLmxhYmVsKSB9fTwvbGFiZWw+XG4gICAgICAgIH1cblxuICAgICAgICBAZm9yIChvcHRpb24gb2YgcmFkaW9Hcm91cE9wdGlvbnNLZXlzOyB0cmFjayBvcHRpb24pIHtcbiAgICAgICAgICAgIDx1cGQtcmFkaW8gW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImdldE9wdGlvbkRlc2NyaXB0aW9uKG9wdGlvbiwgJ3JhZGlvJylcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIlxuICAgICAgICAgICAgICAgIFtoaW50QXNUb29sdGlwXT1cImZpZWxkKCkuaGludEFzVG9vbHRpcCB8fCBmYWxzZVwiIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIlxuICAgICAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXT1cInZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImZvcm1Db250cm9sLnZhbHVlXCIgW2lzSW5saW5lXT1cImNoZWNrYm94RmllbGQuaXNJbmxpbmUgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZCk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZShvcHRpb24pXCI+PC91cGQtcmFkaW8+XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuU2VsZWN0KSB7XG4gICAgICAgIDx1cGQtc2VsZWN0IFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCIgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIiBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCJcbiAgICAgICAgICAgIFt1c2VTeXN0ZW1TdHlsZV09XCJzaW5nbGVTZWxlY3RGaWVsZC51c2VTeXN0ZW1TdHlsZSB8fCBmYWxzZVwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwic2VsZWN0RmllbGQuaXRlbXNcIiBbbGF5b3V0XT1cImxheW91dCgpXCIgW2xhYmVsQ29sU2l6ZV09XCJmaWVsZCgpLmxhYmVsQ29sU2l6ZVwiIFtzdG9yZV09XCJzZWxlY3RGaWVsZC5zdG9yZSFcIlxuICAgICAgICAgICAgW29ic2VydmFibGVdPVwic2VsZWN0RmllbGQub2JzZXJ2YWJsZVwiIFtpdGVtS2V5XT1cInNlbGVjdEZpZWxkLml0ZW1LZXlcIiBbaXRlbVZhbHVlXT1cInNlbGVjdEZpZWxkLml0ZW1WYWx1ZVwiXG4gICAgICAgICAgICBbZHJvcGRvd25NYXhIZWlnaHRdPVwic2VsZWN0RmllbGQuZHJvcGRvd25NYXhIZWlnaHQgfHwgU2VsZWN0RGVmYXVsdHMuZHJvcGRvd25NYXhIZWlnaHRcIlxuICAgICAgICAgICAgW3R5cGVhaGVhZERlYm91bmNlXT1cInNlbGVjdEZpZWxkLnR5cGVhaGVhZERlYm91bmNlIHx8IFNlbGVjdERlZmF1bHRzLnR5cGVhaGVhZERlYm91bmNlXCJcbiAgICAgICAgICAgIFtzaG91bGRBdXRvU2VhcmNoXT1cInNlbGVjdEZpZWxkLnNob3VsZEF1dG9TZWFyY2ggfHwgU2VsZWN0RGVmYXVsdHMuc2hvdWxkQXV0b1NlYXJjaFwiXG4gICAgICAgICAgICBbc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGlja109XCJzZWxlY3RGaWVsZC5zaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrIHx8IFNlbGVjdERlZmF1bHRzLnNob3VsZENsb3NlT25PdXRzaWRlQ2xpY2tcIlxuICAgICAgICAgICAgKHNlbGVjdGVkSXRlbSk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZSgkZXZlbnQ/LnZhbHVlKVwiPjwvdXBkLXNlbGVjdD5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuU2VsZWN0TXVsdGlwbGUpIHtcbiAgICAgICAgPHVwZC1zZWxlY3QtbXVsdGlwbGUgW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImZpZWxkKCkubGFiZWxcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIlxuICAgICAgICAgICAgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCIgW3ZhbGlkYXRpb25TdGF0dXNdPVwidmFsaWRhdGlvblN0YXR1c1wiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJzZWxlY3RGaWVsZC5pdGVtc1wiIFtsYXlvdXRdPVwibGF5b3V0KClcIiBbbGFiZWxDb2xTaXplXT1cImZpZWxkKCkubGFiZWxDb2xTaXplXCIgW3N0b3JlXT1cInNlbGVjdEZpZWxkLnN0b3JlIVwiXG4gICAgICAgICAgICBbb2JzZXJ2YWJsZV09XCJzZWxlY3RGaWVsZC5vYnNlcnZhYmxlXCIgW2l0ZW1LZXldPVwic2VsZWN0RmllbGQuaXRlbUtleVwiIFtpdGVtVmFsdWVdPVwic2VsZWN0RmllbGQuaXRlbVZhbHVlXCJcbiAgICAgICAgICAgIFtkcm9wZG93bk1heEhlaWdodF09XCJzZWxlY3RGaWVsZC5kcm9wZG93bk1heEhlaWdodCB8fCBTZWxlY3REZWZhdWx0cy5kcm9wZG93bk1heEhlaWdodFwiXG4gICAgICAgICAgICBbdHlwZWFoZWFkRGVib3VuY2VdPVwic2VsZWN0RmllbGQudHlwZWFoZWFkRGVib3VuY2UgfHwgU2VsZWN0RGVmYXVsdHMudHlwZWFoZWFkRGVib3VuY2VcIlxuICAgICAgICAgICAgW3Nob3VsZEF1dG9TZWFyY2hdPVwic2VsZWN0RmllbGQuc2hvdWxkQXV0b1NlYXJjaCB8fCBTZWxlY3REZWZhdWx0cy5zaG91bGRBdXRvU2VhcmNoXCJcbiAgICAgICAgICAgIFtzaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrXT1cInNlbGVjdEZpZWxkLnNob3VsZENsb3NlT25PdXRzaWRlQ2xpY2sgfHwgU2VsZWN0RGVmYXVsdHMuc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGlja1wiXG4gICAgICAgICAgICAoc2VsZWN0ZWRJZHMpPVwiZm9ybUNvbnRyb2wuc2V0VmFsdWUoJGV2ZW50KVwiPjwvdXBkLXNlbGVjdC1tdWx0aXBsZT5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuTGFiZWwpIHtcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGdldFRleHQoZmllbGQoKS5sYWJlbCkgfX08L2xhYmVsPlxuICAgIH1cbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5UZXh0QXJlYSkge1xuICAgICAgICA8dXBkLXRleHRhcmVhIFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCkucGxhY2Vob2xkZXJcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIlxuICAgICAgICAgICAgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCIgW3ZhbGlkYXRpb25TdGF0dXNdPVwidmFsaWRhdGlvblN0YXR1c1wiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtQ29udHJvbC52YWx1ZVwiIFtjdXN0b21DbGFzc2VzXT1cInRleHRhcmVhRmllbGQuY3VzdG9tQ2xhc3Nlc1wiIFt3cmFwcGVyQ2xhc3Nlc109XCJ0ZXh0YXJlYUZpZWxkLndyYXBwZXJDbGFzc2VzXCJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwidGV4dGFyZWFGaWVsZC5tYXhMZW5ndGhcIiBbcm93c109XCJ0ZXh0YXJlYUZpZWxkLnJvd3NcIlxuICAgICAgICAgICAgW2Rpc3BsYXlDaGFyYWN0ZXJzQ291bnRdPVwidGV4dGFyZWFGaWVsZC5kaXNwbGF5Q2hhcmFjdGVyc0NvdW50IHx8IGZhbHNlXCI+PC91cGQtdGV4dGFyZWE+XG4gICAgfVxuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLkZpbGVVcGxvYWQpIHtcbiAgICAgICAgPHVwZC1maWxlLXVwbG9hZCBbbmFtZV09XCJmaWVsZCgpLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQoKS5sYWJlbFwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIiBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCIgW2ZpbGVOYW1lXT1cImZpbGVOYW1lQ29udHJvbD8udmFsdWVcIlxuICAgICAgICAgICAgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiIFthbGxvd0ZpbGVzRHJvcF09XCJmaWxlVXBsb2FkRmllbGQuYWxsb3dGaWxlc0Ryb3AgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW3RpdGxlXT1cImZpbGVVcGxvYWRGaWVsZC50aXRsZVwiIFtsYWJlbENvbFNpemVdPVwiZmllbGQoKS5sYWJlbENvbFNpemVcIiBbbWluRmlsZVNpemVdPVwiZmlsZVVwbG9hZEZpZWxkLm1pbkZpbGVTaXplXCJcbiAgICAgICAgICAgIFtpc011bHRpcGxlXT1cImZpbGVVcGxvYWRGaWVsZC5pc011bHRpcGxlIHx8IGZhbHNlXCIgW2FsbG93ZWRFeHRlbnNpb25zXT1cImZpbGVVcGxvYWRGaWVsZC5hbGxvd2VkRXh0ZW5zaW9ucyB8fCAnKidcIlxuICAgICAgICAgICAgW21heEZpbGVTaXplXT1cImZpbGVVcGxvYWRGaWVsZC5tYXhGaWxlU2l6ZVwiIFtsYXlvdXRdPVwibGF5b3V0KClcIiAoZmlsZUNoYW5nZWQpPVwiaGFuZGxlRmlsZVNlbGVjdGVkKCRldmVudClcIj48L3VwZC1maWxlLXVwbG9hZD5cbiAgICB9XG59XG4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvY29tcG9uZW50cy9keW5hbWljLWZpZWxkL2R5bmFtaWMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0vc3JjL2NvbXBvbmVudHMvZHluYW1pYy1maWVsZC9keW5hbWljLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUFFLE1BQU0sRUFBZSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdELE1BQU0sb0JBQW9CLENBQUM7QUFDcEcsT0FBTyxFQUFFLFFBQVEsSUFBSSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUtyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7O0FBZXpFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBTHhEOztRQU0wQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUV2QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RCxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUNwQyxtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQUVoQyxjQUFTLEdBQTJCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRCxVQUFLLEdBQW1DLEtBQUssQ0FBQyxR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QkFBbUI7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7OEdBekdRLHFCQUFxQjtrR0FBckIscUJBQXFCLGlqQkMzQmxDLDAwUEF1R0E7OzJGRDVFYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksbUJBQW1COzhCQUtQLGNBQWM7c0JBQW5DLFdBQVc7dUJBQUMsT0FBTztnQkFFRCxVQUFVO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0U2lnbmFsLCBpbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUZXh0TW9kZWwsIFRleHRTZXJ2aWNlIH0gZnJvbSAnQHVwZGV2cy9zZGsnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBDb2x1bW5TaXplSGVscGVyLCBIb3Jpem9udGFsVmVydGljYWxUeXBlLCBWYWxpZGF0aW9uU3RhdHVzVHlwZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZWZhdWx0cyBhcyBTZWxlY3REZWZhdWx0cyB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdCc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvZmlsZS11cGxvYWQnO1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9maWxlLXVwbG9hZC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBJbnB1dEZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5wdXQtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRXJyb3JzSGVscGVyIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXJyb3JzLWhlbHBlcic7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudW1zL2R5bmFtaWMtZmllbGQudHlwZSc7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9keW5hbWljLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENoZWNrYm94RmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBSYWRpb0ZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmFkaW8tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgU2VsZWN0RmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3QtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgU2luZ2xlU2VsZWN0RmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zaW5nbGUtc2VsZWN0LWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENoZWNrYm94R3JvdXBGaWVsZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoZWNrYm94LWdyb3VwLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFJhZGlvR3JvdXBGaWVsZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JhZGlvLWdyb3VwLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFRleHRhcmVhRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy90ZXh0YXJlYS1maWVsZC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLWR5bmFtaWMtZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZHluYW1pYy1maWVsZC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHdyYXBwZXJDbGFzc2VzID0gJyc7XG5cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc3VibWl0Rm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIER5bmFtaWNGaWVsZFR5cGUgPSBEeW5hbWljRmllbGRUeXBlO1xuICAgIFNlbGVjdERlZmF1bHRzID0gU2VsZWN0RGVmYXVsdHM7XG5cbiAgICBmb3JtR3JvdXA6IElucHV0U2lnbmFsPEZvcm1Hcm91cD4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIGZpZWxkOiBJbnB1dFNpZ25hbDxEeW5hbWljRmllbGRNb2RlbD4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIGxheW91dDogSW5wdXRTaWduYWw8SG9yaXpvbnRhbFZlcnRpY2FsVHlwZT4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIHZhbGlkYXRpb25TdGF0dXM/OiBWYWxpZGF0aW9uU3RhdHVzVHlwZTtcbiAgICB2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zOiBUZXh0TW9kZWxbXSA9IFtdO1xuICAgIGdldCBmb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cCgpLmNvbnRyb2xzW3RoaXMuZmllbGQoKS5uYW1lXSBhcyBGb3JtQ29udHJvbDtcbiAgICB9XG4gICAgZ2V0IGlucHV0RmllbGQoKTogSW5wdXRGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBJbnB1dEZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCBjaGVja2JveEZpZWxkKCk6IENoZWNrYm94RmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgQ2hlY2tib3hGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgY2hlY2tib3hHcm91cEZpZWxkKCk6IENoZWNrYm94R3JvdXBGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBDaGVja2JveEdyb3VwRmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IHJhZGlvRmllbGQoKTogQ2hlY2tib3hGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBSYWRpb0ZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCByYWRpb0dyb3VwRmllbGQoKTogUmFkaW9Hcm91cEZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCgpIGFzIFJhZGlvR3JvdXBGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgc2VsZWN0RmllbGQoKTogU2VsZWN0RmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgU2VsZWN0RmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IHNpbmdsZVNlbGVjdEZpZWxkKCk6IFNpbmdsZVNlbGVjdEZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCgpIGFzIFNpbmdsZVNlbGVjdEZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCB0ZXh0YXJlYUZpZWxkKCk6IFRleHRhcmVhRmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgVGV4dGFyZWFGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgZmlsZVVwbG9hZEZpZWxkKCk6IEZpbGVVcGxvYWRGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBGaWxlVXBsb2FkRmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IGNoZWNrYm94R3JvdXBPcHRpb25zS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoZWNrYm94R3JvdXBGaWVsZC5vcHRpb25zKTtcbiAgICB9XG4gICAgZ2V0IHJhZGlvR3JvdXBPcHRpb25zS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnJhZGlvR3JvdXBGaWVsZC5vcHRpb25zKTtcbiAgICB9XG4gICAgZ2V0IGZpbGVOYW1lQ29udHJvbCgpOiBPcHRpb25hbFR5cGU8Rm9ybUNvbnRyb2w+IHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWxlVXBsb2FkRmllbGQuZmlsZU5hbWVGb3JtUHJvcGVydHlcbiAgICAgICAgICAgID8gdGhpcy5mb3JtR3JvdXAoKS5jb250cm9sc1t0aGlzLmZpbGVVcGxvYWRGaWVsZC5maWxlTmFtZUZvcm1Qcm9wZXJ0eV0gYXMgRm9ybUNvbnRyb2xcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IHRleHRTZXJ2aWNlID0gaW5qZWN0KFRleHRTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzSGVscGVyID0gaW5qZWN0KEVycm9yc0hlbHBlcik7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzU3ViID0gdGhpcy5mb3JtQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShzdGF0dXMgPT4ge1xuICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ0lOVkFMSUQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zID0gdGhpcy5lcnJvcnNIZWxwZXIuZ2V0TWVzc2FnZXModGhpcy5mb3JtQ29udHJvbClcbiAgICAgICAgICAgICAgICAgICAgLm1hcCh0ID0+ICh7IHRleHQ6IHQsIGlzVHJhbnNsYXRlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU3RhdHVzID0gJ2ludmFsaWQnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdGF0dXMgPSB0aGlzLmZpZWxkKCkuc2hvd1ZhbGlkU3RhdHVzID8gJ3ZhbGlkJyA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZXR1cFdyYXBwZXJDbGFzc2VzKCk7XG4gICAgICAgIHRoaXMuYWRkU3Vic2NyaXB0aW9ucyhzdGF0dXNTdWIpO1xuICAgIH1cblxuICAgIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQoKS5zaG91bGRWYWxpZGF0ZU9uQmx1cikge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUZXh0KHRleHRNb2RlbD86IFRleHRNb2RlbCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGV4dE1vZGVsKTtcbiAgICB9XG5cbiAgICBnZXRPcHRpb25EZXNjcmlwdGlvbihrZXk6IHN0cmluZywgdHlwZTogJ2NoZWNrYm94JyB8ICdyYWRpbycpOiBPcHRpb25hbFR5cGU8VGV4dE1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0eXBlID09PSAnY2hlY2tib3gnID8gdGhpcy5jaGVja2JveEdyb3VwRmllbGQub3B0aW9uc1trZXldIDogdGhpcy5yYWRpb0dyb3VwRmllbGQub3B0aW9uc1trZXldO1xuICAgIH1cblxuICAgIGhhbmRsZUZpbGVTZWxlY3RlZChldmVudD86IEZpbGVVcGxvYWRDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSghIXRoaXMuZmlsZVVwbG9hZEZpZWxkLnNhdmVBc0RhdGFVcmwgPyBldmVudD8uZGF0YVVybCA6IGV2ZW50Py5maWxlKTtcblxuICAgICAgICBpZiAoISF0aGlzLmZpbGVVcGxvYWRGaWVsZC5maWxlTmFtZUZvcm1Qcm9wZXJ0eSkge1xuICAgICAgICAgICAgdGhpcy5maWxlTmFtZUNvbnRyb2whLnNldFZhbHVlKGV2ZW50Py5maWxlLm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dEVudGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLmlucHV0RmllbGQuc2hvdWxkU3VibWl0T25FbnRlcikge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXRGb3JtLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBXcmFwcGVyQ2xhc3NlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53cmFwcGVyQ2xhc3NlcyA9IENvbHVtblNpemVIZWxwZXIuZ2V0U2l6ZUNsYXNzZXModGhpcy5maWVsZCgpLmNvbFNpemUpO1xuICAgIH1cbn1cbiIsIkBzd2l0Y2ggKGZpZWxkKCkudHlwZSkge1xuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLklucHV0KSB7XG4gICAgICAgIDx1cGQtaW5wdXQgW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImZpZWxkKCkubGFiZWxcIiBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKS5wbGFjZWhvbGRlclwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiXG4gICAgICAgICAgICBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIiBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXT1cInZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNcIiBbbGF5b3V0XT1cImxheW91dCgpXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImlucHV0RmllbGQuaW5wdXRUeXBlIHx8ICd0ZXh0J1wiIFtsYWJlbENvbFNpemVdPVwiZmllbGQoKS5sYWJlbENvbFNpemVcIiBbdmFsdWVdPVwiZm9ybUNvbnRyb2wudmFsdWVcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImZvcm1Db250cm9sLnNldFZhbHVlKCRldmVudClcIiAoYmx1cnJlZCk9XCJvbkJsdXIoKVwiIChrZXlVcEVudGVyKT1cIm9uSW5wdXRFbnRlcigpXCI+XG4gICAgICAgICAgICBAaWYgKCEhaW5wdXRGaWVsZC5wcmVmaXgpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdXBkSW5wdXRQcmVwZW5kPlxuICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0U2VydmljZS5nZXRUZXh0KGlucHV0RmllbGQucHJlZml4KSB9fVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoISFpbnB1dEZpZWxkLnN1ZmZpeCkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB1cGRJbnB1dEFwcGVuZD5cbiAgICAgICAgICAgICAgICAgICAge3sgdGV4dFNlcnZpY2UuZ2V0VGV4dChpbnB1dEZpZWxkLnN1ZmZpeCkgfX1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VwZC1pbnB1dD5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuQ2hlY2tib3gpIHtcbiAgICAgICAgPHVwZC1jaGVja2JveCBbbmFtZV09XCJmaWVsZCgpLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQoKS5sYWJlbFwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiIFtoaW50QXNUb29sdGlwXT1cImZpZWxkKCkuaGludEFzVG9vbHRpcCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCIgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiIFt2YWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiIFtpc0NoZWNrZWRdPVwiZm9ybUNvbnRyb2wudmFsdWVcIiBbaXNJbmxpbmVdPVwiY2hlY2tib3hGaWVsZC5pc0lubGluZSB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbaXNTd2l0Y2hdPVwiY2hlY2tib3hGaWVsZC5pc1N3aXRjaCB8fCBmYWxzZVwiIChjaGFuZ2VkKT1cImZvcm1Db250cm9sLnNldFZhbHVlKCRldmVudClcIj48L3VwZC1jaGVja2JveD5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuQ2hlY2tib3hHcm91cCkge1xuICAgICAgICBAaWYgKCEhZmllbGQoKS5sYWJlbCkge1xuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGdldFRleHQoZmllbGQoKS5sYWJlbCkgfX08L2xhYmVsPlxuICAgICAgICB9XG5cbiAgICAgICAgQGZvciAob3B0aW9uIG9mIGNoZWNrYm94R3JvdXBPcHRpb25zS2V5czsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgICAgICA8dXBkLWNoZWNrYm94IFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJnZXRPcHRpb25EZXNjcmlwdGlvbihvcHRpb24sICdjaGVja2JveCcpXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCJcbiAgICAgICAgICAgICAgICBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIiBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCJcbiAgICAgICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJmb3JtQ29udHJvbC52YWx1ZVwiIFtpc0lubGluZV09XCJjaGVja2JveEZpZWxkLmlzSW5saW5lIHx8IGZhbHNlXCIgW2lzU3dpdGNoXT1cImNoZWNrYm94RmllbGQuaXNTd2l0Y2ggfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cImZvcm1Db250cm9sLnNldFZhbHVlKG9wdGlvbilcIj48L3VwZC1jaGVja2JveD5cbiAgICAgICAgfVxuICAgIH1cbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5SYWRpbykge1xuICAgICAgICA8dXBkLXJhZGlvIFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCIgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIiBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW3ZhbHVlXT1cInRydWVcIlxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJmb3JtQ29udHJvbC52YWx1ZVwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiIFtpc0lubGluZV09XCJyYWRpb0ZpZWxkLmlzSW5saW5lIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIChzZWxlY3RlZCk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvdXBkLXJhZGlvPlxuICAgIH1cbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5SYWRpb0dyb3VwKSB7XG4gICAgICAgIEBpZiAoISFmaWVsZCgpLmxhYmVsKSB7XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3sgZ2V0VGV4dChmaWVsZCgpLmxhYmVsKSB9fTwvbGFiZWw+XG4gICAgICAgIH1cblxuICAgICAgICBAZm9yIChvcHRpb24gb2YgcmFkaW9Hcm91cE9wdGlvbnNLZXlzOyB0cmFjayBvcHRpb24pIHtcbiAgICAgICAgICAgIDx1cGQtcmFkaW8gW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImdldE9wdGlvbkRlc2NyaXB0aW9uKG9wdGlvbiwgJ3JhZGlvJylcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIlxuICAgICAgICAgICAgICAgIFtoaW50QXNUb29sdGlwXT1cImZpZWxkKCkuaGludEFzVG9vbHRpcCB8fCBmYWxzZVwiIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIlxuICAgICAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXT1cInZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImZvcm1Db250cm9sLnZhbHVlXCIgW2lzSW5saW5lXT1cImNoZWNrYm94RmllbGQuaXNJbmxpbmUgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZCk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZShvcHRpb24pXCI+PC91cGQtcmFkaW8+XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuU2VsZWN0KSB7XG4gICAgICAgIDx1cGQtc2VsZWN0IFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCIgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIiBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCJcbiAgICAgICAgICAgIFt1c2VTeXN0ZW1TdHlsZV09XCJzaW5nbGVTZWxlY3RGaWVsZC51c2VTeXN0ZW1TdHlsZSB8fCBmYWxzZVwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwic2VsZWN0RmllbGQuaXRlbXNcIiBbbGF5b3V0XT1cImxheW91dCgpXCIgW2xhYmVsQ29sU2l6ZV09XCJmaWVsZCgpLmxhYmVsQ29sU2l6ZVwiIFtzdG9yZV09XCJzZWxlY3RGaWVsZC5zdG9yZSFcIlxuICAgICAgICAgICAgW29ic2VydmFibGVdPVwic2VsZWN0RmllbGQub2JzZXJ2YWJsZVwiIFtpdGVtS2V5XT1cInNlbGVjdEZpZWxkLml0ZW1LZXlcIiBbaXRlbVZhbHVlXT1cInNlbGVjdEZpZWxkLml0ZW1WYWx1ZVwiXG4gICAgICAgICAgICBbZHJvcGRvd25NYXhIZWlnaHRdPVwic2VsZWN0RmllbGQuZHJvcGRvd25NYXhIZWlnaHQgfHwgU2VsZWN0RGVmYXVsdHMuZHJvcGRvd25NYXhIZWlnaHRcIlxuICAgICAgICAgICAgW3R5cGVhaGVhZERlYm91bmNlXT1cInNlbGVjdEZpZWxkLnR5cGVhaGVhZERlYm91bmNlIHx8IFNlbGVjdERlZmF1bHRzLnR5cGVhaGVhZERlYm91bmNlXCJcbiAgICAgICAgICAgIFtzaG91bGRBdXRvU2VhcmNoXT1cInNlbGVjdEZpZWxkLnNob3VsZEF1dG9TZWFyY2ggfHwgU2VsZWN0RGVmYXVsdHMuc2hvdWxkQXV0b1NlYXJjaFwiXG4gICAgICAgICAgICBbc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGlja109XCJzZWxlY3RGaWVsZC5zaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrIHx8IFNlbGVjdERlZmF1bHRzLnNob3VsZENsb3NlT25PdXRzaWRlQ2xpY2tcIlxuICAgICAgICAgICAgKHNlbGVjdGVkSXRlbSk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZSgkZXZlbnQ/LnZhbHVlKVwiPjwvdXBkLXNlbGVjdD5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuU2VsZWN0TXVsdGlwbGUpIHtcbiAgICAgICAgPHVwZC1zZWxlY3QtbXVsdGlwbGUgW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImZpZWxkKCkubGFiZWxcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIlxuICAgICAgICAgICAgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCIgW3ZhbGlkYXRpb25TdGF0dXNdPVwidmFsaWRhdGlvblN0YXR1c1wiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJzZWxlY3RGaWVsZC5pdGVtc1wiIFtsYXlvdXRdPVwibGF5b3V0KClcIiBbbGFiZWxDb2xTaXplXT1cImZpZWxkKCkubGFiZWxDb2xTaXplXCIgW3N0b3JlXT1cInNlbGVjdEZpZWxkLnN0b3JlIVwiXG4gICAgICAgICAgICBbb2JzZXJ2YWJsZV09XCJzZWxlY3RGaWVsZC5vYnNlcnZhYmxlXCIgW2l0ZW1LZXldPVwic2VsZWN0RmllbGQuaXRlbUtleVwiIFtpdGVtVmFsdWVdPVwic2VsZWN0RmllbGQuaXRlbVZhbHVlXCJcbiAgICAgICAgICAgIFtkcm9wZG93bk1heEhlaWdodF09XCJzZWxlY3RGaWVsZC5kcm9wZG93bk1heEhlaWdodCB8fCBTZWxlY3REZWZhdWx0cy5kcm9wZG93bk1heEhlaWdodFwiXG4gICAgICAgICAgICBbdHlwZWFoZWFkRGVib3VuY2VdPVwic2VsZWN0RmllbGQudHlwZWFoZWFkRGVib3VuY2UgfHwgU2VsZWN0RGVmYXVsdHMudHlwZWFoZWFkRGVib3VuY2VcIlxuICAgICAgICAgICAgW3Nob3VsZEF1dG9TZWFyY2hdPVwic2VsZWN0RmllbGQuc2hvdWxkQXV0b1NlYXJjaCB8fCBTZWxlY3REZWZhdWx0cy5zaG91bGRBdXRvU2VhcmNoXCJcbiAgICAgICAgICAgIFtzaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrXT1cInNlbGVjdEZpZWxkLnNob3VsZENsb3NlT25PdXRzaWRlQ2xpY2sgfHwgU2VsZWN0RGVmYXVsdHMuc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGlja1wiXG4gICAgICAgICAgICAoc2VsZWN0ZWRJZHMpPVwiZm9ybUNvbnRyb2wuc2V0VmFsdWUoJGV2ZW50KVwiPjwvdXBkLXNlbGVjdC1tdWx0aXBsZT5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuTGFiZWwpIHtcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGdldFRleHQoZmllbGQoKS5sYWJlbCkgfX08L2xhYmVsPlxuICAgIH1cbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5UZXh0QXJlYSkge1xuICAgICAgICA8dXBkLXRleHRhcmVhIFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCkucGxhY2Vob2xkZXJcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIlxuICAgICAgICAgICAgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCIgW3ZhbGlkYXRpb25TdGF0dXNdPVwidmFsaWRhdGlvblN0YXR1c1wiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtQ29udHJvbC52YWx1ZVwiIFtjdXN0b21DbGFzc2VzXT1cInRleHRhcmVhRmllbGQuY3VzdG9tQ2xhc3Nlc1wiIFt3cmFwcGVyQ2xhc3Nlc109XCJ0ZXh0YXJlYUZpZWxkLndyYXBwZXJDbGFzc2VzXCJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwidGV4dGFyZWFGaWVsZC5tYXhMZW5ndGhcIiBbcm93c109XCJ0ZXh0YXJlYUZpZWxkLnJvd3NcIlxuICAgICAgICAgICAgW2Rpc3BsYXlDaGFyYWN0ZXJzQ291bnRdPVwidGV4dGFyZWFGaWVsZC5kaXNwbGF5Q2hhcmFjdGVyc0NvdW50IHx8IGZhbHNlXCI+PC91cGQtdGV4dGFyZWE+XG4gICAgfVxuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLkZpbGVVcGxvYWQpIHtcbiAgICAgICAgPHVwZC1maWxlLXVwbG9hZCBbbmFtZV09XCJmaWVsZCgpLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQoKS5sYWJlbFwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIiBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCIgW2ZpbGVOYW1lXT1cImZpbGVOYW1lQ29udHJvbD8udmFsdWVcIlxuICAgICAgICAgICAgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiIFthbGxvd0ZpbGVzRHJvcF09XCJmaWxlVXBsb2FkRmllbGQuYWxsb3dGaWxlc0Ryb3AgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW3RpdGxlXT1cImZpbGVVcGxvYWRGaWVsZC50aXRsZVwiIFtsYWJlbENvbFNpemVdPVwiZmllbGQoKS5sYWJlbENvbFNpemVcIiBbbWluRmlsZVNpemVdPVwiZmlsZVVwbG9hZEZpZWxkLm1pbkZpbGVTaXplXCJcbiAgICAgICAgICAgIFtpc011bHRpcGxlXT1cImZpbGVVcGxvYWRGaWVsZC5pc011bHRpcGxlIHx8IGZhbHNlXCIgW2FsbG93ZWRFeHRlbnNpb25zXT1cImZpbGVVcGxvYWRGaWVsZC5hbGxvd2VkRXh0ZW5zaW9ucyB8fCAnKidcIlxuICAgICAgICAgICAgW21heEZpbGVTaXplXT1cImZpbGVVcGxvYWRGaWVsZC5tYXhGaWxlU2l6ZVwiIFtsYXlvdXRdPVwibGF5b3V0KClcIiAoZmlsZUNoYW5nZWQpPVwiaGFuZGxlRmlsZVNlbGVjdGVkKCRldmVudClcIj48L3VwZC1maWxlLXVwbG9hZD5cbiAgICB9XG59XG4iXX0=
@@ -107,11 +107,11 @@ export class FormComponent extends BaseComponent {
107
107
  });
108
108
  }
109
109
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FormComponent, selector: "upd-form", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasActionsSection: { classPropertyName: "hasActionsSection", publicName: "hasActionsSection", isSignal: true, isRequired: false, transformFunction: null }, isCard: { classPropertyName: "isCard", publicName: "isCard", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isSaving: { classPropertyName: "isSaving", publicName: "isSaving", isSignal: true, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { initialized: "initialized", dataLoaded: "dataLoaded", submitted: "submitted", formData: "formDataChange", formGroup: "formGroupChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\"></upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i4.DynamicFieldComponent, selector: "upd-dynamic-field", inputs: ["formGroup", "field", "layout"] }] }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FormComponent, selector: "upd-form", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasActionsSection: { classPropertyName: "hasActionsSection", publicName: "hasActionsSection", isSignal: true, isRequired: false, transformFunction: null }, isCard: { classPropertyName: "isCard", publicName: "isCard", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isSaving: { classPropertyName: "isSaving", publicName: "isSaving", isSignal: true, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { initialized: "initialized", dataLoaded: "dataLoaded", submitted: "submitted", formData: "formDataChange", formGroup: "formGroupChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @if (!!row.title) {\n <div class=\"card-title\">{{ textService.getText(row.title) }}</div>\n }\n\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i4.DynamicFieldComponent, selector: "upd-dynamic-field", inputs: ["formGroup", "field", "layout"], outputs: ["submitForm"] }] }); }
111
111
  }
112
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FormComponent, decorators: [{
113
113
  type: Component,
114
- args: [{ selector: 'upd-form', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\"></upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n" }]
114
+ args: [{ selector: 'upd-form', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @if (!!row.title) {\n <div class=\"card-title\">{{ textService.getText(row.title) }}</div>\n }\n\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n" }]
115
115
  }], ctorParameters: () => [], propDecorators: { initialized: [{
116
116
  type: Output
117
117
  }], dataLoaded: [{
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
119
119
  }], submitted: [{
120
120
  type: Output
121
121
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpGLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFTckUsTUFBTSxPQUFPLGFBQWlCLFNBQVEsYUFBYTtJQTRDL0MsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBSUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWxETyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUMsQ0FBQyxvQkFBb0I7UUFDeEQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFFckQ7O1dBRUc7UUFDSCxTQUFJLEdBQWdDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRDs7V0FFRztRQUNILFdBQU0sR0FBd0MsS0FBSyxDQUF5QixVQUFVLENBQUMsQ0FBQztRQUN4Rjs7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QUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBMUhRLGFBQWE7a0dBQWIsYUFBYSx1L0NDaEIxQiwwaUNBMEJBOzsyRkRWYSxhQUFhO2tCQUx6QixTQUFTOytCQUNJLFVBQVU7d0RBS0QsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxVQUFVO3NCQUE1QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBJbnB1dFNpZ25hbCwgbW9kZWwsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEhvcml6b250YWxWZXJ0aWNhbFR5cGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVGV4dE1vZGVsLCBUZXh0U2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAdXBkZXZzL3Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuXG5pbXBvcnQgeyBEeW5hbWljRmllbGRUeXBlIH0gZnJvbSAnLi9tb2RlbHMvZW51bXMvZHluYW1pYy1maWVsZC50eXBlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRGaWVsZE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS11cGxvYWQtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybVJvd01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZm9ybS1yb3cubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQ8VD4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgaW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGRhdGFMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7IC8vIFRPRE86IGltcGxlbWVudGFyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8qKlxuICAgICAqIFJvd3MgdG8gZ2VuZXJhdGUgdGhlIGZvcm0uXG4gICAgICovXG4gICAgcm93czogSW5wdXRTaWduYWw8Rm9ybVJvd01vZGVsW10+ID0gaW5wdXQucmVxdWlyZWQoKTtcbiAgICAvKipcbiAgICAgKiBGb3JtJ3MgbGF5b3V0LlxuICAgICAqL1xuICAgIGxheW91dDogSW5wdXRTaWduYWw8SG9yaXpvbnRhbFZlcnRpY2FsVHlwZT4gPSBpbnB1dDxIb3Jpem9udGFsVmVydGljYWxUeXBlPigndmVydGljYWwnKTtcbiAgICAvKipcbiAgICAgKiBUaXRsZSBvZiB0aGUgZm9ybS5cbiAgICAgKiBPcHRpb25hbC5cbiAgICAgKi9cbiAgICB0aXRsZTogSW5wdXRTaWduYWw8T3B0aW9uYWxUeXBlPFRleHRNb2RlbD4+ID0gaW5wdXQ8T3B0aW9uYWxUeXBlPFRleHRNb2RlbD4+KHVuZGVmaW5lZCk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYWN0aW9ucyBzZWN0aW9uIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIGhhc0FjdGlvbnNTZWN0aW9uID0gaW5wdXQodHJ1ZSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybSBpcyBjb250YWluZWQgaW4gYSBjYXJkLlxuICAgICAqIElmIHRydWUsIGl0J2xsIGRpc3BsYXkgYSBjYXJkIGFzIGEgZm9ybSB3cmFwcGVyLlxuICAgICAqL1xuICAgIGlzQ2FyZCA9IGlucHV0KGZhbHNlKTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtIGlzIGluIHJlYWQgb25seSBtb2RlLCB3aGljaCBtZWFucyBubyBmaWVsZHMgY2FuIGJlIGVkaXRlZC5cbiAgICAgKi9cbiAgICBpc0Rpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiAodmFsOiBib29sZWFuIHwgc3RyaW5nKSA9PiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyA/IHZhbCA9PT0gJycgOiB2YWwgfSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybSBpcyBsb2FkaW5nLlxuICAgICAqL1xuICAgIGlzTG9hZGluZyA9IGlucHV0KGZhbHNlKTsgLy8gVE9ETzogaW1wbGVtZW50YXJcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtIGlzIHNhdmluZy5cbiAgICAgKi9cbiAgICBpc1NhdmluZyA9IGlucHV0KGZhbHNlKTsgLy8gVE9ETzogaW1wbGVtZW50YXJcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGZvcm0gZGF0YS5cbiAgICAgKi9cbiAgICBmb3JtRGF0YSA9IG1vZGVsKHt9IGFzIFQpO1xuICAgIGZvcm1Hcm91cCA9IG1vZGVsKG5ldyBGb3JtR3JvdXAoe30pKTtcbiAgICBnZXQgdGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy50aXRsZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRTZXJ2aWNlID0gaW5qZWN0KFRleHRTZXJ2aWNlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJvd3MoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBGb3JtR3JvdXAoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0dXBGb3JtR3JvdXAoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZC5lbWl0KCk7XG5cbiAgICAgICAgY29uc3QgdmFsdWVDaGFuZ2VzU3ViID0gdGhpcy5mb3JtR3JvdXAoKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuZm9ybURhdGEuc2V0KHRoaXMuZm9ybUdyb3VwKCkuZ2V0UmF3VmFsdWUoKSBhcyBUKSk7XG5cbiAgICAgICAgdGhpcy5hZGRTdWJzY3JpcHRpb25zKHZhbHVlQ2hhbmdlc1N1Yik7XG4gICAgfVxuXG4gICAgc3VibWl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCgpLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAoKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAoKS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IChjb250cm9sIGFzIEZvcm1Db250cm9sKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCkpO1xuXG4gICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cCgpLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KHRoaXMuZm9ybUdyb3VwKCkudmFsdWUgYXMgVCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhbGxGaWVsZHMgPSB0aGlzLnJvd3MoKS5tYXAociA9PiByLmZpZWxkcykucmVkdWNlKChhY2MsIGZpZWxkcykgPT4gYWNjLmNvbmNhdChmaWVsZHMpLCBbXSk7XG5cbiAgICAgICAgYWxsRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IGZpZWxkLnZhbGlkYXRvcnMgfHwgW107XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5pc1JlcXVpcmVkICYmICF2YWxpZGF0b3JzLmluY2x1ZGVzKFZhbGlkYXRvcnMucmVxdWlyZWQpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUT0RPOiBoYW5kbGUgZXh0cmEgY2FzZXMsIHdoZW4gcmVhZHkuIERhdGVSYW5nZSwgRGF0ZVRpbWVSYW5nZSwgVGltZVJhbmdlLCBldGMuXG4gICAgICAgICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIER5bmFtaWNGaWVsZFR5cGUuRmlsZVVwbG9hZDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAoKS5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpZWxkLmluaXRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmllbGQuaXNEaXNhYmxlZCB8fCB0aGlzLmlzRGlzYWJsZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgeyB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWVGb3JtUHJvcCA9IChmaWVsZCBhcyBGaWxlVXBsb2FkRmllbGRNb2RlbCkuZmlsZU5hbWVGb3JtUHJvcGVydHk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEhZmlsZU5hbWVGb3JtUHJvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAoKS5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lRm9ybVByb3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpZWxkLmluaXRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZpZWxkLmlzRGlzYWJsZWQgfHwgdGhpcy5pc0Rpc2FibGVkKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7IHZhbGlkYXRvcnM6IHZhbGlkYXRvcnMgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cCgpLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmllbGQuaW5pdFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBmaWVsZC5pc0Rpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB7IHZhbGlkYXRvcnM6IHZhbGlkYXRvcnMgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHByZWZpeDogJ1VwRGV2cy5Gb3JtJ1wiPlxuICAgIDxkaXYgW2NsYXNzLmNhcmRdPVwiaXNDYXJkKClcIj5cbiAgICAgICAgQGlmICghIXRpdGxlVGV4dCkge1xuICAgICAgICAgICAgPGRpdiBbY2xhc3MuY2FyZC1oZWFkZXJdPVwiaXNDYXJkKClcIj5cbiAgICAgICAgICAgICAgICA8aDMgW2NsYXNzLmNhcmQtdGl0bGVdPVwiaXNDYXJkKClcIj57eyB0aXRsZVRleHQgfX08L2gzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBbY2xhc3MuY2FyZC1ib2R5XT1cImlzQ2FyZCgpXCI+XG4gICAgICAgICAgICBAZm9yIChyb3cgb2Ygcm93cygpOyB0cmFjayByb3c7IGxldCBpc0ZpcnN0ID0gJGZpcnN0KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIFtjbGFzcy5tdC00XT1cIiFpc0ZpcnN0XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIHJvdy5maWVsZHM7IHRyYWNrIGZpZWxkLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtZHluYW1pYy1maWVsZCBbbGF5b3V0XT1cImxheW91dCgpXCIgW2ZpZWxkXT1cImZpZWxkXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXAoKVwiPjwvdXBkLWR5bmFtaWMtZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChoYXNBY3Rpb25zU2VjdGlvbigpKSB7XG4gICAgICAgICAgICA8ZGl2IFtjbGFzcy5jYXJkLWZvb3Rlcl09XCJpc0NhcmQoKVwiIFtjbGFzcy5tdC00XT1cIiFpc0NhcmQoKVwiPlxuICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIGNvbG9yU3R5bGU9XCJwcmltYXJ5XCIgKGNsaWNrZWQpPVwic3VibWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgnU3VibWl0JykgfX1cbiAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpGLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFTckUsTUFBTSxPQUFPLGFBQWlCLFNBQVEsYUFBYTtJQTRDL0MsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBSUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWxETyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUMsQ0FBQyxvQkFBb0I7UUFDeEQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFFckQ7O1dBRUc7UUFDSCxTQUFJLEdBQWdDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRDs7V0FFRztRQUNILFdBQU0sR0FBd0MsS0FBSyxDQUF5QixVQUFVLENBQUMsQ0FBQztRQUN4Rjs7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QUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBMUhRLGFBQWE7a0dBQWIsYUFBYSx1L0NDaEIxQiw4dkNBK0JBOzsyRkRmYSxhQUFhO2tCQUx6QixTQUFTOytCQUNJLFVBQVU7d0RBS0QsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxVQUFVO3NCQUE1QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBJbnB1dFNpZ25hbCwgbW9kZWwsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEhvcml6b250YWxWZXJ0aWNhbFR5cGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVGV4dE1vZGVsLCBUZXh0U2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAdXBkZXZzL3Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuXG5pbXBvcnQgeyBEeW5hbWljRmllbGRUeXBlIH0gZnJvbSAnLi9tb2RlbHMvZW51bXMvZHluYW1pYy1maWVsZC50eXBlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRGaWVsZE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS11cGxvYWQtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybVJvd01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZm9ybS1yb3cubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQ8VD4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgaW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGRhdGFMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7IC8vIFRPRE86IGltcGxlbWVudGFyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8qKlxuICAgICAqIFJvd3MgdG8gZ2VuZXJhdGUgdGhlIGZvcm0uXG4gICAgICovXG4gICAgcm93czogSW5wdXRTaWduYWw8Rm9ybVJvd01vZGVsW10+ID0gaW5wdXQucmVxdWlyZWQoKTtcbiAgICAvKipcbiAgICAgKiBGb3JtJ3MgbGF5b3V0LlxuICAgICAqL1xuICAgIGxheW91dDogSW5wdXRTaWduYWw8SG9yaXpvbnRhbFZlcnRpY2FsVHlwZT4gPSBpbnB1dDxIb3Jpem9udGFsVmVydGljYWxUeXBlPigndmVydGljYWwnKTtcbiAgICAvKipcbiAgICAgKiBUaXRsZSBvZiB0aGUgZm9ybS5cbiAgICAgKiBPcHRpb25hbC5cbiAgICAgKi9cbiAgICB0aXRsZTogSW5wdXRTaWduYWw8T3B0aW9uYWxUeXBlPFRleHRNb2RlbD4+ID0gaW5wdXQ8T3B0aW9uYWxUeXBlPFRleHRNb2RlbD4+KHVuZGVmaW5lZCk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYWN0aW9ucyBzZWN0aW9uIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIGhhc0FjdGlvbnNTZWN0aW9uID0gaW5wdXQodHJ1ZSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybSBpcyBjb250YWluZWQgaW4gYSBjYXJkLlxuICAgICAqIElmIHRydWUsIGl0J2xsIGRpc3BsYXkgYSBjYXJkIGFzIGEgZm9ybSB3cmFwcGVyLlxuICAgICAqL1xuICAgIGlzQ2FyZCA9IGlucHV0KGZhbHNlKTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtIGlzIGluIHJlYWQgb25seSBtb2RlLCB3aGljaCBtZWFucyBubyBmaWVsZHMgY2FuIGJlIGVkaXRlZC5cbiAgICAgKi9cbiAgICBpc0Rpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiAodmFsOiBib29sZWFuIHwgc3RyaW5nKSA9PiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyA/IHZhbCA9PT0gJycgOiB2YWwgfSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybSBpcyBsb2FkaW5nLlxuICAgICAqL1xuICAgIGlzTG9hZGluZyA9IGlucHV0KGZhbHNlKTsgLy8gVE9ETzogaW1wbGVtZW50YXJcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtIGlzIHNhdmluZy5cbiAgICAgKi9cbiAgICBpc1NhdmluZyA9IGlucHV0KGZhbHNlKTsgLy8gVE9ETzogaW1wbGVtZW50YXJcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGZvcm0gZGF0YS5cbiAgICAgKi9cbiAgICBmb3JtRGF0YSA9IG1vZGVsKHt9IGFzIFQpO1xuICAgIGZvcm1Hcm91cCA9IG1vZGVsKG5ldyBGb3JtR3JvdXAoe30pKTtcbiAgICBnZXQgdGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy50aXRsZSgpKTtcbiAgICB9XG5cbiAgICByZWFkb25seSB0ZXh0U2VydmljZSA9IGluamVjdChUZXh0U2VydmljZSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yb3dzKCk7XG4gICAgICAgICAgICB0aGlzLnNldHVwRm9ybUdyb3VwKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldHVwRm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQuZW1pdCgpO1xuXG4gICAgICAgIGNvbnN0IHZhbHVlQ2hhbmdlc1N1YiA9IHRoaXMuZm9ybUdyb3VwKCkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmZvcm1EYXRhLnNldCh0aGlzLmZvcm1Hcm91cCgpLmdldFJhd1ZhbHVlKCkgYXMgVCkpO1xuXG4gICAgICAgIHRoaXMuYWRkU3Vic2NyaXB0aW9ucyh2YWx1ZUNoYW5nZXNTdWIpO1xuICAgIH1cblxuICAgIHN1Ym1pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAoKS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwKCkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICBPYmplY3QudmFsdWVzKHRoaXMuZm9ybUdyb3VwKCkuY29udHJvbHMpLmZvckVhY2goY29udHJvbCA9PiAoY29udHJvbCBhcyBGb3JtQ29udHJvbCkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpKTtcblxuICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAoKS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQuZW1pdCh0aGlzLmZvcm1Hcm91cCgpLnZhbHVlIGFzIFQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEZvcm1Hcm91cCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWxsRmllbGRzID0gdGhpcy5yb3dzKCkubWFwKHIgPT4gci5maWVsZHMpLnJlZHVjZSgoYWNjLCBmaWVsZHMpID0+IGFjYy5jb25jYXQoZmllbGRzKSwgW10pO1xuXG4gICAgICAgIGFsbEZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBmaWVsZC52YWxpZGF0b3JzIHx8IFtdO1xuXG4gICAgICAgICAgICBpZiAoZmllbGQuaXNSZXF1aXJlZCAmJiAhdmFsaWRhdG9ycy5pbmNsdWRlcyhWYWxpZGF0b3JzLnJlcXVpcmVkKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVE9ETzogaGFuZGxlIGV4dHJhIGNhc2VzLCB3aGVuIHJlYWR5LiBEYXRlUmFuZ2UsIERhdGVUaW1lUmFuZ2UsIFRpbWVSYW5nZSwgZXRjLlxuICAgICAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBEeW5hbWljRmllbGRUeXBlLkZpbGVVcGxvYWQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwKCkuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWVsZC5pbml0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZpZWxkLmlzRGlzYWJsZWQgfHwgdGhpcy5pc0Rpc2FibGVkKClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsgdmFsaWRhdG9yczogdmFsaWRhdG9ycyB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lRm9ybVByb3AgPSAoZmllbGQgYXMgRmlsZVVwbG9hZEZpZWxkTW9kZWwpLmZpbGVOYW1lRm9ybVByb3BlcnR5O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghIWZpbGVOYW1lRm9ybVByb3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwKCkuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZUZvcm1Qcm9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWVsZC5pbml0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBmaWVsZC5pc0Rpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgeyB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAoKS5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpZWxkLmluaXRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmllbGQuaXNEaXNhYmxlZCB8fCB0aGlzLmlzRGlzYWJsZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgeyB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0OyBwcmVmaXg6ICdVcERldnMuRm9ybSdcIj5cbiAgICA8ZGl2IFtjbGFzcy5jYXJkXT1cImlzQ2FyZCgpXCI+XG4gICAgICAgIEBpZiAoISF0aXRsZVRleHQpIHtcbiAgICAgICAgICAgIDxkaXYgW2NsYXNzLmNhcmQtaGVhZGVyXT1cImlzQ2FyZCgpXCI+XG4gICAgICAgICAgICAgICAgPGgzIFtjbGFzcy5jYXJkLXRpdGxlXT1cImlzQ2FyZCgpXCI+e3sgdGl0bGVUZXh0IH19PC9oMz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgW2NsYXNzLmNhcmQtYm9keV09XCJpc0NhcmQoKVwiPlxuICAgICAgICAgICAgQGZvciAocm93IG9mIHJvd3MoKTsgdHJhY2sgcm93OyBsZXQgaXNGaXJzdCA9ICRmaXJzdCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBbY2xhc3MubXQtNF09XCIhaXNGaXJzdFwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCEhcm93LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPnt7IHRleHRTZXJ2aWNlLmdldFRleHQocm93LnRpdGxlKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoZmllbGQgb2Ygcm93LmZpZWxkczsgdHJhY2sgZmllbGQubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1keW5hbWljLWZpZWxkIFtsYXlvdXRdPVwibGF5b3V0KClcIiBbZmllbGRdPVwiZmllbGRcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cCgpXCIgKHN1Ym1pdEZvcm0pPVwic3VibWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdXBkLWR5bmFtaWMtZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChoYXNBY3Rpb25zU2VjdGlvbigpKSB7XG4gICAgICAgICAgICA8ZGl2IFtjbGFzcy5jYXJkLWZvb3Rlcl09XCJpc0NhcmQoKVwiIFtjbGFzcy5tdC00XT1cIiFpc0NhcmQoKVwiPlxuICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIGNvbG9yU3R5bGU9XCJwcmltYXJ5XCIgKGNsaWNrZWQpPVwic3VibWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgnU3VibWl0JykgfX1cbiAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtL3NyYy9tb2RlbHMvZHluYW1pYy1maWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUZXh0TW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBSb3dDb2x1bW5TaXplIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzJztcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2lucHV0JztcbmltcG9ydCB7IFJlcXVpcmVkUGVybWlzc2lvbnNNb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL3NlY3VyaXR5JztcblxuaW1wb3J0IHsgRHluYW1pY0ZpZWxkVHlwZSB9IGZyb20gJy4vZW51bXMvZHluYW1pYy1maWVsZC50eXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRmllbGRNb2RlbCB7XG4gICAgdHlwZTogRHluYW1pY0ZpZWxkVHlwZTtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaXNSZXF1aXJlZD86IGJvb2xlYW47XG4gICAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gICAgc2hvdWxkVmFsaWRhdGVPbkJsdXI/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBmaWVsZCBpcyB2YWxpZCBpdCB3aWxsIGJlIG1hcmtlZCBhcyBzdWNoLCBpbnN0ZWFkIG9mIGp1c3QgbWFpbnRhaW5pbmcgdGhlIGRlZmF1bHQgc3RhdGUuXG4gICAgICovXG4gICAgc2hvd1ZhbGlkU3RhdHVzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHZhbHVlLlxuICAgICAqL1xuICAgIGluaXRWYWx1ZT86IGFueTtcbiAgICBwbGFjZWhvbGRlcj86IFRleHRNb2RlbDtcbiAgICBsYWJlbD86IFRleHRNb2RlbDtcbiAgICBoaW50PzogVGV4dE1vZGVsO1xuICAgIGhpbnRBc1Rvb2x0aXA/OiBib29sZWFuO1xuICAgIGlucHV0VHlwZT86IElucHV0VHlwZTtcbiAgICBjb2xTaXplPzogUm93Q29sdW1uU2l6ZTtcbiAgICBsYWJlbENvbFNpemU/OiBSb3dDb2x1bW5TaXplO1xuICAgIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdO1xuICAgIHJlcXVpcmVkUGVybWlzc2lvbnM/OiBSZXF1aXJlZFBlcm1pc3Npb25zTW9kZWw7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtL3NyYy9tb2RlbHMvZHluYW1pYy1maWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUZXh0TW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBSb3dDb2x1bW5TaXplIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzJztcbmltcG9ydCB7IFJlcXVpcmVkUGVybWlzc2lvbnNNb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL3NlY3VyaXR5JztcblxuaW1wb3J0IHsgRHluYW1pY0ZpZWxkVHlwZSB9IGZyb20gJy4vZW51bXMvZHluYW1pYy1maWVsZC50eXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRmllbGRNb2RlbCB7XG4gICAgdHlwZTogRHluYW1pY0ZpZWxkVHlwZTtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaXNSZXF1aXJlZD86IGJvb2xlYW47XG4gICAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gICAgc2hvdWxkVmFsaWRhdGVPbkJsdXI/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBmaWVsZCBpcyB2YWxpZCBpdCB3aWxsIGJlIG1hcmtlZCBhcyBzdWNoLCBpbnN0ZWFkIG9mIGp1c3QgbWFpbnRhaW5pbmcgdGhlIGRlZmF1bHQgc3RhdGUuXG4gICAgICovXG4gICAgc2hvd1ZhbGlkU3RhdHVzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHZhbHVlLlxuICAgICAqL1xuICAgIGluaXRWYWx1ZT86IGFueTtcbiAgICBwbGFjZWhvbGRlcj86IFRleHRNb2RlbDtcbiAgICBsYWJlbD86IFRleHRNb2RlbDtcbiAgICBoaW50PzogVGV4dE1vZGVsO1xuICAgIGhpbnRBc1Rvb2x0aXA/OiBib29sZWFuO1xuICAgIGNvbFNpemU/OiBSb3dDb2x1bW5TaXplO1xuICAgIGxhYmVsQ29sU2l6ZT86IFJvd0NvbHVtblNpemU7XG4gICAgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW107XG4gICAgcmVxdWlyZWRQZXJtaXNzaW9ucz86IFJlcXVpcmVkUGVybWlzc2lvbnNNb2RlbDtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yb3cubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvbW9kZWxzL2Zvcm0tcm93Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXF1aXJlZFBlcm1pc3Npb25zTW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkay9zZWN1cml0eSc7XG5cbmltcG9ydCB7IER5bmFtaWNGaWVsZE1vZGVsIH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtUm93TW9kZWwge1xuICAgIGZpZWxkczogRHluYW1pY0ZpZWxkTW9kZWxbXTtcbiAgICBpc0NvbXBhY3Q/OiBib29sZWFuO1xuICAgIGlzSGlkZGVuPzogYm9vbGVhbjtcbiAgICByZXF1aXJlZFBlcm1pc3Npb25zPzogUmVxdWlyZWRQZXJtaXNzaW9uc01vZGVsO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yb3cubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvbW9kZWxzL2Zvcm0tcm93Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0TW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBSZXF1aXJlZFBlcm1pc3Npb25zTW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkay9zZWN1cml0eSc7XG5cbmltcG9ydCB7IER5bmFtaWNGaWVsZE1vZGVsIH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtUm93TW9kZWwge1xuICAgIGZpZWxkczogRHluYW1pY0ZpZWxkTW9kZWxbXTtcbiAgICBpc0NvbXBhY3Q/OiBib29sZWFuO1xuICAgIGlzSGlkZGVuPzogYm9vbGVhbjtcbiAgICByZXF1aXJlZFBlcm1pc3Npb25zPzogUmVxdWlyZWRQZXJtaXNzaW9uc01vZGVsO1xuICAgIHRpdGxlPzogVGV4dE1vZGVsO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvbW9kZWxzL2lucHV0LWZpZWxkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9pbnB1dCc7XG5pbXBvcnQgeyBUZXh0TW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5cbmltcG9ydCB7IER5bmFtaWNGaWVsZE1vZGVsIH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dEZpZWxkTW9kZWwgZXh0ZW5kcyBEeW5hbWljRmllbGRNb2RlbCB7XG4gICAgaW5wdXRUeXBlPzogSW5wdXRUeXBlO1xuICAgIHNob3VsZFN1Ym1pdE9uRW50ZXI/OiBib29sZWFuO1xuICAgIHByZWZpeD86IFRleHRNb2RlbDtcbiAgICBzdWZmaXg/OiBUZXh0TW9kZWw7XG59XG4iXX0=
@@ -5,10 +5,11 @@ export * from './dynamic-field.model';
5
5
  export * from './file-upload-field.model';
6
6
  export * from './form-config';
7
7
  export * from './form-row.model';
8
+ export * from './input-field.model';
8
9
  export * from './radio-field.model';
9
10
  export * from './radio-field.model';
10
11
  export * from './radio-group-field.model';
11
12
  export * from './select-field.model';
12
13
  export * from './single-select-field.model';
13
14
  export * from './textarea-field.model';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtL3NyYy9tb2RlbHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZW51bXMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2NoZWNrYm94LWZpZWxkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tib3gtZ3JvdXAtZmllbGQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWZpZWxkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS11cGxvYWQtZmllbGQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tcm93Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8tZmllbGQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby1maWVsZC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3JhZGlvLWdyb3VwLWZpZWxkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWZpZWxkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc2luZ2xlLXNlbGVjdC1maWVsZC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3RleHRhcmVhLWZpZWxkLm1vZGVsJztcbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtL3NyYy9tb2RlbHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tib3gtZmllbGQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC1ncm91cC1maWVsZC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtZmllbGQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXVwbG9hZC1maWVsZC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1yb3cubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1maWVsZC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3JhZGlvLWZpZWxkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8tZmllbGQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby1ncm91cC1maWVsZC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1maWVsZC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NpbmdsZS1zZWxlY3QtZmllbGQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0YXJlYS1maWVsZC5tb2RlbCc7XG4iXX0=
@@ -50,7 +50,8 @@ export class LoginComponent {
50
50
  type: DynamicFieldType.Input,
51
51
  colSize: { default: 12 },
52
52
  label: { text: 'UpDevs.Login.Email', isTranslated: false },
53
- validators: [Validators.required, Validators.minLength(3)]
53
+ validators: [Validators.required, Validators.minLength(3)],
54
+ shouldSubmitOnEnter: true
54
55
  }
55
56
  ]
56
57
  },
@@ -62,7 +63,8 @@ export class LoginComponent {
62
63
  inputType: 'password',
63
64
  colSize: { default: 12 },
64
65
  label: { text: 'UpDevs.Login.Password', isTranslated: false },
65
- validators: [Validators.required, Validators.minLength(3)]
66
+ validators: [Validators.required, Validators.minLength(3)],
67
+ shouldSubmitOnEnter: true
66
68
  }
67
69
  ]
68
70
  },
@@ -105,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
105
107
  type: Component,
106
108
  args: [{ selector: 'upd-login', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Login'\">\n <upd-header [style]=\"'transparent'\"></upd-header>\n <div class=\"page page-center\">\n @switch (config.layout) {\n @case ('centered-box') {\n <div class=\"container container-tight py-4\">\n <ng-container [ngTemplateOutlet]=\"loginCardTpl\"></ng-container>\n </div>\n }\n @case ('box-with-picture') {\n <div class=\"container container-normal py-4\">\n <div class=\"row align-items-center g-4\">\n <div class=\"col-lg\">\n <div class=\"container-tight\">\n <ng-container [ngTemplateOutlet]=\"loginCardTpl\"></ng-container>\n </div>\n </div>\n <div class=\"col-lg d-none d-lg-block\">\n <img height=\"300\" class=\"d-block mx-auto upd-right-login-image\" />\n </div>\n </div>\n </div>\n }\n @case ('cover') {\n <div class=\"row g-0 flex-fill\">\n <div class=\"col-12 col-lg-6 col-xl-4 border-top-wide d-flex flex-column justify-content-center\"\n [ngClass]=\"border\">\n <div class=\"container container-tight my-5 px-lg-5\">\n <ng-container [ngTemplateOutlet]=\"headerTpl\"></ng-container>\n\n <h2 class=\"h3 text-center mb-3\">\n {{ t('Title') }}\n </h2>\n\n <ng-container [ngTemplateOutlet]=\"loginFormTpl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"socialLoginTpl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"noAccountTpl\"></ng-container>\n </div>\n </div>\n <div class=\"col-12 col-lg-6 col-xl-8 d-none d-lg-block\">\n <div class=\"bg-cover h-100 min-vh-100 upd-right-login-cover-image\"></div>\n </div>\n </div>\n }\n }\n </div>\n <upd-footer></upd-footer>\n\n <ng-template #loginCardTpl>\n <ng-container [ngTemplateOutlet]=\"headerTpl\"></ng-container>\n <upd-card [removeBorder]=\"true\">\n <div class=\"p-4\">\n <h2 class=\"h2 text-center mb-4\">\n {{ t('Title') }}\n </h2>\n <ng-container [ngTemplateOutlet]=\"loginFormTpl\"></ng-container>\n </div>\n <ng-container [ngTemplateOutlet]=\"socialLoginTpl\"></ng-container>\n </upd-card>\n <ng-container [ngTemplateOutlet]=\"noAccountTpl\"></ng-container>\n </ng-template>\n\n <ng-template #loginFormTpl>\n <upd-form [rows]=\"formRows\" [hasActionsSection]=\"false\" [(formGroup)]=\"formGroup\"></upd-form>\n <div class=\"form-footer\">\n <upd-button [colorStyle]=\"config.signInButtonColor\" (clicked)=\"login()\" [isLoading]=\"isSigningIn()\"\n customClasses=\"w-100\">\n {{ t('SignIn') }}\n </upd-button>\n @if (!!config.recoverPasswordRoute) {\n <div class=\"d-flex mt-2\">\n <upd-link class=\"ms-auto\" [customClasses]=\"linkClasses\" (clicked)=\"goToRecoverPasswordPage()\">\n {{ t('RecoverPassword') }}\n </upd-link>\n </div>\n }\n </div>\n </ng-template>\n\n <ng-template #socialLoginTpl>\n @if (config.socialLoginButtons.length > 0) {\n <div class=\"hr-text\">\n {{ t('Or') }}\n </div>\n <div class=\"card-body\">\n <div class=\"row\">\n @for (btn of config.socialLoginButtons; track btn) {\n <div class=\"col\">\n <upd-button [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n </ng-template>\n\n <ng-template #headerTpl>\n <div class=\"text-center mb-4\">\n <a href=\".\" class=\"navbar-brand navbar-brand-autodark\">\n <img height=\"36\" class=\"navbar-brand-image upd-brand-logo\" />\n </a>\n </div>\n </ng-template>\n\n <ng-template #noAccountTpl>\n @if (!!config.signUpRoute) {\n <div class=\"text-center text-muted mt-3\">\n {{ t('NoAccountYet') }}\n <upd-link [customClasses]=\"linkClasses\" (clicked)=\"goToSignUpPage()\">{{ t('SignUp') }}</upd-link>\n </div>\n }\n </ng-template>\n</ng-container>\n" }]
107
109
  }] });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFnZXMvYXV0aC1mbG93L2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhZ2VzL2F1dGgtZmxvdy9sb2dpbi9sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7OztBQU9yRixNQUFNLE9BQU8sY0FBYztJQUwzQjtRQU1JLGNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyQyxhQUFRLEdBQW1CLEVBQUUsQ0FBQztRQUM5QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQix3QkFBbUIsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNyRCxXQUFNLEdBQUcsSUFBSSxD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LEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBYSxDQUFDLFFBQVEsRUFBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBYSxDQUFDLFFBQVEsQ0FBQzthQUNyRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDakQsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0QsQ0FBQzs4R0EzRlEsY0FBYztrR0FBZCxjQUFjLDRPQ2YzQix1MUpBaUhBOzsyRkRsR2EsY0FBYztrQkFMMUIsU0FBUzsrQkFDSSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBtb2RlbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrL3NlY3VyaXR5JztcbmltcG9ydCB7IEZvcm1Sb3dNb2RlbCwgRHluYW1pY0ZpZWxkVHlwZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFVwZExheW91dENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91cGQtbGF5b3V0LWNvbmZpZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1cGQtbG9naW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBmb3JtR3JvdXAgPSBtb2RlbChuZXcgRm9ybUdyb3VwKHt9KSk7XG4gICAgZm9ybVJvd3M6IEZvcm1Sb3dNb2RlbFtdID0gW107XG4gICAgaXNTaWduaW5nSW4gPSBzaWduYWwoZmFsc2UpO1xuICAgIHJlYWRvbmx5IGxheW91dENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoVXBkTGF5b3V0Q29uZmlnU2VydmljZSk7XG4gICAgcmVhZG9ubHkgY29uZmlnID0gdGhpcy5sYXlvdXRDb25maWdTZXJ2aWNlLmNvbmZpZy5zZWN1cml0eUxheW91dENvbmZpZy5sb2dpblBhZ2U7XG5cbiAgICBnZXQgYm9yZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgYm9yZGVyLSR7dGhpcy5jb25maWcuYm9yZGVyQ29sb3J9YDtcbiAgICB9XG5cbiAgICBnZXQgbGlua0NsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gW2BsaW5rLSR7dGhpcy5jb25maWcubGlua3NDb2xvcn1gXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBib3hCZ0NvbG9yKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5iZ0NvbG9yIHx8ICghIXRoaXMuY29uZmlnLmJnU3R5bGUgPyBgYmctJHt0aGlzLmNvbmZpZy5iZ1N0eWxlfWAgOiAnJykgfHwgJ2JnLXdoaXRlJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGJvZHlDbGFzc2VzID0gWydib3JkZXItdG9wLXdpZGUnLCB0aGlzLmJvcmRlciwgJ2QtZmxleCcsICdmbGV4LWNvbHVtbiddO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KExheW91dFNlcnZpY2UpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5hZGRCb2R5Q2xhc3Nlcyh0aGlzLmJveEJnQ29sb3IpO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sYXlvdXQgIT09ICdjb3ZlcicpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5hZGRCb2R5Q2xhc3NlcyguLi50aGlzLmJvZHlDbGFzc2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybVJvd3MgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICd1c2VybmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBEeW5hbWljRmllbGRUeXBlLklucHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sU2l6ZTogeyBkZWZhdWx0OiAxMiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHsgdGV4dDogJ1VwRGV2cy5Mb2dpbi5FbWFpbCcsIGlzVHJhbnNsYXRlZDogZmFsc2UgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKV1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwYXNzd29yZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBEeW5hbWljRmllbGRUeXBlLklucHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlOiAncGFzc3dvcmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sU2l6ZTogeyBkZWZhdWx0OiAxMiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHsgdGV4dDogJ1VwRGV2cy5Mb2dpbi5QYXNzd29yZCcsIGlzVHJhbnNsYXRlZDogZmFsc2UgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKV1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdyZW1lbWJlck1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IER5bmFtaWNGaWVsZFR5cGUuQ2hlY2tib3gsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xTaXplOiB7IGRlZmF1bHQ6IDEyIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogeyB0ZXh0OiAnVXBEZXZzLkxvZ2luLlJlbWVtYmVyTWUnLCBpc1RyYW5zbGF0ZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0VmFsdWU6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5yZW1vdmVCb2R5Q2xhc3Nlcyh0aGlzLmJveEJnQ29sb3IpO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sYXlvdXQgIT09ICdjb3ZlcicpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5yZW1vdmVCb2R5Q2xhc3NlcyguLi50aGlzLmJvZHlDbGFzc2VzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvZ2luKCk6IHZvaWQge1xuICAgICAgICAvLyBUT0RPOiBoYW5kbGUgcmVtZW1iZXIgbWVcbiAgICAgICAgdGhpcy5pc1NpZ25pbmdJbi5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9naW4oKHRoaXMuZm9ybUdyb3VwKCkudmFsdWUgYXMgYW55KS51c2VybmFtZSwgKHRoaXMuZm9ybUdyb3VwKCkudmFsdWUgYXMgYW55KS5wYXNzd29yZClcbiAgICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaXNTaWduaW5nSW4uc2V0KGZhbHNlKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZ29Ub1JlY292ZXJQYXNzd29yZFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmNvbmZpZy5yZWNvdmVyUGFzc3dvcmRSb3V0ZV0pLnRoZW4oKTtcbiAgICB9XG5cbiAgICBnb1RvU2lnblVwUGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuY29uZmlnLnNpZ25VcFJvdXRlXSkudGhlbigpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0OyBwcmVmaXg6ICdVcERldnMuTG9naW4nXCI+XG4gICAgPHVwZC1oZWFkZXIgW3N0eWxlXT1cIid0cmFuc3BhcmVudCdcIj48L3VwZC1oZWFkZXI+XG4gICAgPGRpdiBjbGFzcz1cInBhZ2UgcGFnZS1jZW50ZXJcIj5cbiAgICAgICAgQHN3aXRjaCAoY29uZmlnLmxheW91dCkge1xuICAgICAgICAgICAgQGNhc2UgKCdjZW50ZXJlZC1ib3gnKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb250YWluZXItdGlnaHQgcHktNFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxvZ2luQ2FyZFRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKCdib3gtd2l0aC1waWN0dXJlJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLW5vcm1hbCBweS00XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyIGctNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItdGlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2dpbkNhcmRUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZyBkLW5vbmUgZC1sZy1ibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgaGVpZ2h0PVwiMzAwXCIgY2xhc3M9XCJkLWJsb2NrIG14LWF1dG8gdXBkLXJpZ2h0LWxvZ2luLWltYWdlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlICgnY292ZXInKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTAgZmxleC1maWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLWxnLTYgY29sLXhsLTQgYm9yZGVyLXRvcC13aWRlIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImJvcmRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb250YWluZXItdGlnaHQgbXktNSBweC1sZy01XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUcGxcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImgzIHRleHQtY2VudGVyIG1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdCgnVGl0bGUnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxvZ2luRm9ybVRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic29jaWFsTG9naW5UcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5vQWNjb3VudFRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1sZy02IGNvbC14bC04IGQtbm9uZSBkLWxnLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctY292ZXIgaC0xMDAgbWluLXZoLTEwMCB1cGQtcmlnaHQtbG9naW4tY292ZXItaW1hZ2VcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8dXBkLWZvb3Rlcj48L3VwZC1mb290ZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2xvZ2luQ2FyZFRwbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHVwZC1jYXJkIFtyZW1vdmVCb3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtNFwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImgyIHRleHQtY2VudGVyIG1iLTRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgnVGl0bGUnKSB9fVxuICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2dpbkZvcm1UcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzb2NpYWxMb2dpblRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VwZC1jYXJkPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5vQWNjb3VudFRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2xvZ2luRm9ybVRwbD5cbiAgICAgICAgPHVwZC1mb3JtIFtyb3dzXT1cImZvcm1Sb3dzXCIgW2hhc0FjdGlvbnNTZWN0aW9uXT1cImZhbHNlXCIgWyhmb3JtR3JvdXApXT1cImZvcm1Hcm91cFwiPjwvdXBkLWZvcm0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZvb3RlclwiPlxuICAgICAgICAgICAgPHVwZC1idXR0b24gW2NvbG9yU3R5bGVdPVwiY29uZmlnLnNpZ25JbkJ1dHRvbkNvbG9yXCIgKGNsaWNrZWQpPVwibG9naW4oKVwiIFtpc0xvYWRpbmddPVwiaXNTaWduaW5nSW4oKVwiXG4gICAgICAgICAgICAgICAgY3VzdG9tQ2xhc3Nlcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnU2lnbkluJykgfX1cbiAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgICAgIEBpZiAoISFjb25maWcucmVjb3ZlclBhc3N3b3JkUm91dGUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVwZC1saW5rIGNsYXNzPVwibXMtYXV0b1wiIFtjdXN0b21DbGFzc2VzXT1cImxpbmtDbGFzc2VzXCIgKGNsaWNrZWQpPVwiZ29Ub1JlY292ZXJQYXNzd29yZFBhZ2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdCgnUmVjb3ZlclBhc3N3b3JkJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC91cGQtbGluaz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjc29jaWFsTG9naW5UcGw+XG4gICAgICAgIEBpZiAoY29uZmlnLnNvY2lhbExvZ2luQnV0dG9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaHItdGV4dFwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ09yJykgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoYnRuIG9mIGNvbmZpZy5zb2NpYWxMb2dpbkJ1dHRvbnM7IHRyYWNrIGJ0bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIFttb2RlbF09XCJidG5cIj48L3VwZC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUcGw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtYi00XCI+XG4gICAgICAgICAgICA8YSBocmVmPVwiLlwiIGNsYXNzPVwibmF2YmFyLWJyYW5kIG5hdmJhci1icmFuZC1hdXRvZGFya1wiPlxuICAgICAgICAgICAgICAgIDxpbWcgaGVpZ2h0PVwiMzZcIiBjbGFzcz1cIm5hdmJhci1icmFuZC1pbWFnZSB1cGQtYnJhbmQtbG9nb1wiIC8+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI25vQWNjb3VudFRwbD5cbiAgICAgICAgQGlmICghIWNvbmZpZy5zaWduVXBSb3V0ZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHRleHQtbXV0ZWQgbXQtM1wiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ05vQWNjb3VudFlldCcpIH19XG4gICAgICAgICAgICAgICAgPHVwZC1saW5rIFtjdXN0b21DbGFzc2VzXT1cImxpbmtDbGFzc2VzXCIgKGNsaWNrZWQpPVwiZ29Ub1NpZ25VcFBhZ2UoKVwiPnt7IHQoJ1NpZ25VcCcpIH19PC91cGQtbGluaz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFnZXMvYXV0aC1mbG93L2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhZ2VzL2F1dGgtZmxvdy9sb2dpbi9sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQW1CLE1BQU0seUJBQXlCLENBQUM7QUFDMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7Ozs7QUFPckYsTUFBTSxPQUFPLGNBQWM7SUFMM0I7UUFNSSxjQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckMsYUFBUSxHQUFtQixFQUFFLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDckQsV0FBTSxHQUFHLElBQUks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QUFDO1FBRXRELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDRCwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQWEsQ0FBQyxRQUFRLEVBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQWEsQ0FBQyxRQUFRLENBQUM7YUFDckcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2pELFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwRSxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNELENBQUM7OEdBN0ZRLGNBQWM7a0dBQWQsY0FBYyw0T0NmM0IsdTFKQWlIQTs7MkZEbEdhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0ksV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgbW9kZWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkay9zZWN1cml0eSc7XG5pbXBvcnQgeyBGb3JtUm93TW9kZWwsIER5bmFtaWNGaWVsZFR5cGUsIElucHV0RmllbGRNb2RlbCB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFVwZExheW91dENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91cGQtbGF5b3V0LWNvbmZpZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1cGQtbG9naW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBmb3JtR3JvdXAgPSBtb2RlbChuZXcgRm9ybUdyb3VwKHt9KSk7XG4gICAgZm9ybVJvd3M6IEZvcm1Sb3dNb2RlbFtdID0gW107XG4gICAgaXNTaWduaW5nSW4gPSBzaWduYWwoZmFsc2UpO1xuICAgIHJlYWRvbmx5IGxheW91dENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoVXBkTGF5b3V0Q29uZmlnU2VydmljZSk7XG4gICAgcmVhZG9ubHkgY29uZmlnID0gdGhpcy5sYXlvdXRDb25maWdTZXJ2aWNlLmNvbmZpZy5zZWN1cml0eUxheW91dENvbmZpZy5sb2dpblBhZ2U7XG5cbiAgICBnZXQgYm9yZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgYm9yZGVyLSR7dGhpcy5jb25maWcuYm9yZGVyQ29sb3J9YDtcbiAgICB9XG5cbiAgICBnZXQgbGlua0NsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gW2BsaW5rLSR7dGhpcy5jb25maWcubGlua3NDb2xvcn1gXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBib3hCZ0NvbG9yKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5iZ0NvbG9yIHx8ICghIXRoaXMuY29uZmlnLmJnU3R5bGUgPyBgYmctJHt0aGlzLmNvbmZpZy5iZ1N0eWxlfWAgOiAnJykgfHwgJ2JnLXdoaXRlJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGJvZHlDbGFzc2VzID0gWydib3JkZXItdG9wLXdpZGUnLCB0aGlzLmJvcmRlciwgJ2QtZmxleCcsICdmbGV4LWNvbHVtbiddO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KExheW91dFNlcnZpY2UpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5hZGRCb2R5Q2xhc3Nlcyh0aGlzLmJveEJnQ29sb3IpO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sYXlvdXQgIT09ICdjb3ZlcicpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5hZGRCb2R5Q2xhc3NlcyguLi50aGlzLmJvZHlDbGFzc2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9ybVJvd3MgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICd1c2VybmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBEeW5hbWljRmllbGRUeXBlLklucHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sU2l6ZTogeyBkZWZhdWx0OiAxMiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHsgdGV4dDogJ1VwRGV2cy5Mb2dpbi5FbWFpbCcsIGlzVHJhbnNsYXRlZDogZmFsc2UgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRTdWJtaXRPbkVudGVyOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0gYXMgSW5wdXRGaWVsZE1vZGVsXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3Bhc3N3b3JkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IER5bmFtaWNGaWVsZFR5cGUuSW5wdXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGU6ICdwYXNzd29yZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xTaXplOiB7IGRlZmF1bHQ6IDEyIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogeyB0ZXh0OiAnVXBEZXZzLkxvZ2luLlBhc3N3b3JkJywgaXNUcmFuc2xhdGVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFN1Ym1pdE9uRW50ZXI6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSBhcyBJbnB1dEZpZWxkTW9kZWxcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncmVtZW1iZXJNZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBEeW5hbWljRmllbGRUeXBlLkNoZWNrYm94LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sU2l6ZTogeyBkZWZhdWx0OiAxMiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHsgdGV4dDogJ1VwRGV2cy5Mb2dpbi5SZW1lbWJlck1lJywgaXNUcmFuc2xhdGVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFZhbHVlOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UucmVtb3ZlQm9keUNsYXNzZXModGhpcy5ib3hCZ0NvbG9yKTtcblxuICAgICAgICBpZiAodGhpcy5jb25maWcubGF5b3V0ICE9PSAnY292ZXInKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UucmVtb3ZlQm9keUNsYXNzZXMoLi4udGhpcy5ib2R5Q2xhc3Nlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsb2dpbigpOiB2b2lkIHtcbiAgICAgICAgLy8gVE9ETzogaGFuZGxlIHJlbWVtYmVyIG1lXG4gICAgICAgIHRoaXMuaXNTaWduaW5nSW4uc2V0KHRydWUpO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKCh0aGlzLmZvcm1Hcm91cCgpLnZhbHVlIGFzIGFueSkudXNlcm5hbWUsICh0aGlzLmZvcm1Hcm91cCgpLnZhbHVlIGFzIGFueSkucGFzc3dvcmQpXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzU2lnbmluZ0luLnNldChmYWxzZSkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGdvVG9SZWNvdmVyUGFzc3dvcmRQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5jb25maWcucmVjb3ZlclBhc3N3b3JkUm91dGVdKS50aGVuKCk7XG4gICAgfVxuXG4gICAgZ29Ub1NpZ25VcFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmNvbmZpZy5zaWduVXBSb3V0ZV0pLnRoZW4oKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcHJlZml4OiAnVXBEZXZzLkxvZ2luJ1wiPlxuICAgIDx1cGQtaGVhZGVyIFtzdHlsZV09XCIndHJhbnNwYXJlbnQnXCI+PC91cGQtaGVhZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJwYWdlIHBhZ2UtY2VudGVyXCI+XG4gICAgICAgIEBzd2l0Y2ggKGNvbmZpZy5sYXlvdXQpIHtcbiAgICAgICAgICAgIEBjYXNlICgnY2VudGVyZWQtYm94Jykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLXRpZ2h0IHB5LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2dpbkNhcmRUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlICgnYm94LXdpdGgtcGljdHVyZScpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGNvbnRhaW5lci1ub3JtYWwgcHktNFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlciBnLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXRpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibG9naW5DYXJkVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGcgZC1ub25lIGQtbGctYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGhlaWdodD1cIjMwMFwiIGNsYXNzPVwiZC1ibG9jayBteC1hdXRvIHVwZC1yaWdodC1sb2dpbi1pbWFnZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ2NvdmVyJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0wIGZsZXgtZmlsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1sZy02IGNvbC14bC00IGJvcmRlci10b3Atd2lkZSBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJib3JkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLXRpZ2h0IG15LTUgcHgtbGctNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVHBsXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJoMyB0ZXh0LWNlbnRlciBtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHQoJ1RpdGxlJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2dpbkZvcm1UcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNvY2lhbExvZ2luVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJub0FjY291bnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbGctNiBjb2wteGwtOCBkLW5vbmUgZC1sZy1ibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLWNvdmVyIGgtMTAwIG1pbi12aC0xMDAgdXBkLXJpZ2h0LWxvZ2luLWNvdmVyLWltYWdlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPHVwZC1mb290ZXI+PC91cGQtZm9vdGVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNsb2dpbkNhcmRUcGw+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDx1cGQtY2FyZCBbcmVtb3ZlQm9yZGVyXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTRcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJoMiB0ZXh0LWNlbnRlciBtYi00XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ1RpdGxlJykgfX1cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibG9naW5Gb3JtVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic29jaWFsTG9naW5UcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91cGQtY2FyZD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJub0FjY291bnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNsb2dpbkZvcm1UcGw+XG4gICAgICAgIDx1cGQtZm9ybSBbcm93c109XCJmb3JtUm93c1wiIFtoYXNBY3Rpb25zU2VjdGlvbl09XCJmYWxzZVwiIFsoZm9ybUdyb3VwKV09XCJmb3JtR3JvdXBcIj48L3VwZC1mb3JtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1mb290ZXJcIj5cbiAgICAgICAgICAgIDx1cGQtYnV0dG9uIFtjb2xvclN0eWxlXT1cImNvbmZpZy5zaWduSW5CdXR0b25Db2xvclwiIChjbGlja2VkKT1cImxvZ2luKClcIiBbaXNMb2FkaW5nXT1cImlzU2lnbmluZ0luKClcIlxuICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzZXM9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ1NpZ25JbicpIH19XG4gICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICBAaWYgKCEhY29uZmlnLnJlY292ZXJQYXNzd29yZFJvdXRlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtbGluayBjbGFzcz1cIm1zLWF1dG9cIiBbY3VzdG9tQ2xhc3Nlc109XCJsaW5rQ2xhc3Nlc1wiIChjbGlja2VkKT1cImdvVG9SZWNvdmVyUGFzc3dvcmRQYWdlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHQoJ1JlY292ZXJQYXNzd29yZCcpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvdXBkLWxpbms+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI3NvY2lhbExvZ2luVHBsPlxuICAgICAgICBAaWYgKGNvbmZpZy5zb2NpYWxMb2dpbkJ1dHRvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhyLXRleHRcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdPcicpIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGJ0biBvZiBjb25maWcuc29jaWFsTG9naW5CdXR0b25zOyB0cmFjayBidG4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWJ1dHRvbiBbbW9kZWxdPVwiYnRuXCI+PC91cGQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVHBsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbWItNFwiPlxuICAgICAgICAgICAgPGEgaHJlZj1cIi5cIiBjbGFzcz1cIm5hdmJhci1icmFuZCBuYXZiYXItYnJhbmQtYXV0b2RhcmtcIj5cbiAgICAgICAgICAgICAgICA8aW1nIGhlaWdodD1cIjM2XCIgY2xhc3M9XCJuYXZiYXItYnJhbmQtaW1hZ2UgdXBkLWJyYW5kLWxvZ29cIiAvPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNub0FjY291bnRUcGw+XG4gICAgICAgIEBpZiAoISFjb25maWcuc2lnblVwUm91dGUpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciB0ZXh0LW11dGVkIG10LTNcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdOb0FjY291bnRZZXQnKSB9fVxuICAgICAgICAgICAgICAgIDx1cGQtbGluayBbY3VzdG9tQ2xhc3Nlc109XCJsaW5rQ2xhc3Nlc1wiIChjbGlja2VkKT1cImdvVG9TaWduVXBQYWdlKClcIj57eyB0KCdTaWduVXAnKSB9fTwvdXBkLWxpbms+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -3,10 +3,10 @@ export class ColumnSizeHelper {
3
3
  if (!colSize) {
4
4
  return `col-${defaultIfEmpty || 12}`;
5
5
  }
6
- return this.getClasses(`col-${colSize.default}`, `col-md-${colSize.medium || colSize.default}`, `col-sm-${(colSize.small || 12)}`);
6
+ return this.getClasses(`col-${colSize.default}`, `col-lg-${colSize.default}`, `col-md-${colSize.medium || colSize.default}`, `col-sm-${(colSize.small || 12)}`);
7
7
  }
8
8
  static getClasses(...classes) {
9
9
  return classes.join(' ').trim();
10
10
  }
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNpemUuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdG9vbHMvY29sdW1uLXNpemUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUF1QixFQUFFLGNBQXVCO1FBQ2xFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE9BQU8sT0FBTyxjQUFjLElBQUksRUFBRSxFQUFFLENBQUM7UUFDekMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQ3hCLFVBQVUsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQ3BDLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQWlCO1FBQ2xDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3dDb2x1bW5TaXplIH0gZnJvbSAnLi4vbW9kZWxzL3Jvdy1jb2x1bW4tc2l6ZSc7XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TaXplSGVscGVyIHtcbiAgICBzdGF0aWMgZ2V0U2l6ZUNsYXNzZXMoY29sU2l6ZT86IFJvd0NvbHVtblNpemUsIGRlZmF1bHRJZkVtcHR5PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFjb2xTaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gYGNvbC0ke2RlZmF1bHRJZkVtcHR5IHx8IDEyfWA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzc2VzKFxuICAgICAgICAgICAgYGNvbC0ke2NvbFNpemUuZGVmYXVsdH1gLFxuICAgICAgICAgICAgYGNvbC1tZC0ke2NvbFNpemUubWVkaXVtIHx8IGNvbFNpemUuZGVmYXVsdH1gLFxuICAgICAgICAgICAgYGNvbC1zbS0keyhjb2xTaXplLnNtYWxsIHx8IDEyKX1gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldENsYXNzZXMoLi4uY2xhc3Nlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbn1cbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNpemUuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdG9vbHMvY29sdW1uLXNpemUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUF1QixFQUFFLGNBQXVCO1FBQ2xFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE9BQU8sT0FBTyxjQUFjLElBQUksRUFBRSxFQUFFLENBQUM7UUFDekMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQ3hCLFVBQVUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUMzQixVQUFVLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxDQUNwQyxDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxPQUFpQjtRQUNsQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm93Q29sdW1uU2l6ZSB9IGZyb20gJy4uL21vZGVscy9yb3ctY29sdW1uLXNpemUnO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uU2l6ZUhlbHBlciB7XG4gICAgc3RhdGljIGdldFNpemVDbGFzc2VzKGNvbFNpemU/OiBSb3dDb2x1bW5TaXplLCBkZWZhdWx0SWZFbXB0eT86IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGlmICghY29sU2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGBjb2wtJHtkZWZhdWx0SWZFbXB0eSB8fCAxMn1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3NlcyhcbiAgICAgICAgICAgIGBjb2wtJHtjb2xTaXplLmRlZmF1bHR9YCxcbiAgICAgICAgICAgIGBjb2wtbGctJHtjb2xTaXplLmRlZmF1bHR9YCxcbiAgICAgICAgICAgIGBjb2wtbWQtJHtjb2xTaXplLm1lZGl1bSB8fCBjb2xTaXplLmRlZmF1bHR9YCxcbiAgICAgICAgICAgIGBjb2wtc20tJHsoY29sU2l6ZS5zbWFsbCB8fCAxMil9YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRDbGFzc2VzKC4uLmNsYXNzZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpLnRyaW0oKTtcbiAgICB9XG59XG4iXX0=