aril 1.0.45 → 1.0.47

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.
@@ -14,6 +14,7 @@ import { PasswordComponent } from 'aril/ui/password';
14
14
  import { SelectBoxComponent } from 'aril/ui/selectBox';
15
15
  import { TextComponent } from 'aril/ui/text';
16
16
  import { TextAreaComponent } from 'aril/ui/textArea';
17
+ import { TreeSelectComponent } from 'aril/ui/treeSelect';
17
18
  import * as i0 from "@angular/core";
18
19
  import * as i1 from "@angular/forms";
19
20
  import * as i2 from "primeng/dynamicdialog";
@@ -21,7 +22,6 @@ import * as i3 from "primeng/api";
21
22
  import * as i4 from "../../profile.service";
22
23
  import * as i5 from "@ngneat/transloco";
23
24
  import * as i6 from "aril/ui/form";
24
- import * as i7 from "primeng/treeselect";
25
25
  export class EditProfileModalComponent {
26
26
  constructor(formBuilder, dialogRef, messageService, profileService, dialogConfig, translocoService) {
27
27
  this.formBuilder = formBuilder;
@@ -156,6 +156,7 @@ export class EditProfileModalComponent {
156
156
  }
157
157
  mapTreeData(treeData) {
158
158
  return treeData.map((item) => ({
159
+ key: item.startLevel,
159
160
  label: item.name,
160
161
  value: item.id,
161
162
  children: item.children ? this.mapTreeData(item.children) : []
@@ -176,7 +177,7 @@ export class EditProfileModalComponent {
176
177
  this.levelPairs = [];
177
178
  }
178
179
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EditProfileModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DynamicDialogRef }, { token: i3.MessageService }, { token: i4.ProfileService }, { token: i2.DynamicDialogConfig }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
179
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: EditProfileModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"profileForm\">\r\n\t\t<aril-field [label]=\"t('userStatus')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"enabled\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUser')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"systemUser\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUserApp')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-select-box\r\n\t\t\t\t[items]=\"clientList\"\r\n\t\t\t\tdisplayExpr=\"text\"\r\n\t\t\t\tvalueExpr=\"key\"\r\n\t\t\t\tformControlName=\"clientOfSystemUser\"\r\n\t\t\t\t[placeholder]=\"t('select')\">\r\n\t\t\t</aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('username')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"userName\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;'\"></aril-password>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('firstName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"firstName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('lastName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"lastName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('email')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"email\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('phone')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-mask mask=\"(999) 999 99 99\" [placeholder]=\"t('phoneExample')\" formControlName=\"phone\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('tcNumber')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-mask mask=\"99999999999\" formControlName=\"tckn\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<p-treeSelect\r\n\t\t\t\tclass=\"w-full md:w-20rem\"\r\n\t\t\t\tcontainerStyleClass=\"w-full\"\r\n\t\t\t\tformControlName=\"regions\"\r\n\t\t\t\t[options]=\"treeItems\"\r\n\t\t\t\tdisplay=\"chip\"\r\n\t\t\t\t[metaKeySelection]=\"false\"\r\n\t\t\t\t[propagateSelectionUp]=\"true\"\r\n\t\t\t\t[propagateSelectionDown]=\"true\"\r\n\t\t\t\tselectionMode=\"checkbox\"\r\n\t\t\t\t(onNodeSelect)=\"nodeSelect($event)\"\r\n\t\t\t\t(onNodeUnselect)=\"nodeUnselect($event)\"\r\n\t\t\t\t(onClear)=\"clear()\"\r\n\t\t\t\t[placeholder]=\"t('select')\"\r\n\t\t\t\t[showClear]=\"true\"></p-treeSelect>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('notes')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\r\n\t\t\t<aril-text-area [rows]=\"3\" [cols]=\"40\" formControlName=\"notes\"></aril-text-area>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('photoUrl')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"photoUrl\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\r\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\r\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ARiLFormModule }, { kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i6.FormSubmitButtonComponent, selector: "aril-form-submit:not([click])", inputs: ["formGroup"], outputs: ["validEvent", "inValidEvent"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TreeSelectModule }, { kind: "component", type: i7.TreeSelect, selector: "p-treeSelect", inputs: ["inputId", "scrollHeight", "disabled", "metaKeySelection", "variant", "display", "selectionMode", "tabindex", "ariaLabel", "ariaLabelledBy", "placeholder", "panelClass", "panelStyle", "panelStyleClass", "containerStyle", "containerStyleClass", "labelStyle", "labelStyleClass", "overlayOptions", "emptyMessage", "appendTo", "filter", "filterBy", "filterMode", "filterPlaceholder", "filterLocale", "filterInputAutoFocus", "propagateSelectionDown", "propagateSelectionUp", "showClear", "resetFilterOnHide", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "autofocus", "options", "showTransitionOptions", "hideTransitionOptions", "loading"], outputs: ["onNodeExpand", "onNodeCollapse", "onShow", "onHide", "onClear", "onFilter", "onFocus", "onBlur", "onNodeUnselect", "onNodeSelect"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "component", type: MaskComponent, selector: "aril-mask[ngModel], aril-mask[formControl], aril-mask[formControlName]", inputs: ["mask", "slotChar", "placeholder", "maxlength", "usageInGrid", "tabindex"] }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "component", type: TextAreaComponent, selector: "aril-text-area[ngModel], aril-text-area[formControl], aril-text-area[formControlName]", inputs: ["rows", "cols", "isAutoResize", "tabindex", "placeholder"] }, { kind: "component", type: CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "tabindex"] }, { kind: "component", type: PasswordComponent, selector: "aril-password[ngModel], aril-password[formControl], aril-password[formControlName]", inputs: ["feedback", "passwordCriterias", "placeholder", "tabindex"] }, { kind: "component", type: SelectBoxComponent, selector: "aril-select-box[formControl], aril-select-box[formControlName]", inputs: ["itemKey", "itemText", "groupName", "parentSelectionKey", "tabindex", "items", "grouped", "showClearButton", "placeholder", "searchExpr"], outputs: ["onSelectionChanged"] }] }); }
180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: EditProfileModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"profileForm\">\r\n\t\t<aril-field [label]=\"t('userStatus')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"enabled\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUser')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"systemUser\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUserApp')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-select-box formControlName=\"clientOfSystemUser\" [items]=\"clientList\" itemText=\"text\" itemKey=\"key\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('username')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"userName\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;'\"></aril-password>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('firstName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"firstName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('lastName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"lastName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('email')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"email\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('phone')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-mask mask=\"(999) 999 99 99\" [placeholder]=\"t('phoneExample')\" formControlName=\"phone\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('tcNumber')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-mask mask=\"99999999999\" formControlName=\"tckn\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-treeSelect\r\n\t\t\t\t[options]=\"treeItems\"\r\n\t\t\t\tformControlName=\"regions\"\r\n\t\t\t\t(nodeSelect)=\"nodeSelect($event)\"\r\n\t\t\t\t(nodeUnselect)=\"nodeUnselect($event)\"\r\n\t\t\t\t(cleared)=\"clear()\">\r\n\t\t\t</aril-treeSelect>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('notes')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\r\n\t\t\t<aril-text-area [rows]=\"3\" [cols]=\"40\" formControlName=\"notes\"></aril-text-area>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('photoUrl')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"photoUrl\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\r\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\r\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ARiLFormModule }, { kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i6.FormSubmitButtonComponent, selector: "aril-form-submit:not([click])", inputs: ["formGroup"], outputs: ["validEvent", "inValidEvent"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TreeSelectModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "component", type: MaskComponent, selector: "aril-mask[ngModel], aril-mask[formControl], aril-mask[formControlName]", inputs: ["mask", "slotChar", "placeholder", "maxlength", "usageInGrid", "tabindex"] }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "component", type: TextAreaComponent, selector: "aril-text-area[ngModel], aril-text-area[formControl], aril-text-area[formControlName]", inputs: ["rows", "cols", "isAutoResize", "tabindex", "placeholder"] }, { kind: "component", type: CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "tabindex"] }, { kind: "component", type: PasswordComponent, selector: "aril-password[ngModel], aril-password[formControl], aril-password[formControlName]", inputs: ["feedback", "passwordCriterias", "placeholder", "tabindex"] }, { kind: "component", type: SelectBoxComponent, selector: "aril-select-box[formControl], aril-select-box[formControlName]", inputs: ["itemKey", "itemText", "groupName", "parentSelectionKey", "tabindex", "items", "grouped", "showClearButton", "placeholder", "searchExpr"], outputs: ["onSelectionChanged"] }, { kind: "component", type: TreeSelectComponent, selector: "aril-treeSelect", inputs: ["options", "modelValue", "placeholder", "selectionMode", "display", "showClear", "filter", "filterPlaceholder", "propagateSelectionUp", "propagateSelectionDown", "metaKeySelection", "formControlName"], outputs: ["modelValueChange", "nodeSelect", "nodeUnselect", "cleared"] }] }); }
180
181
  }
181
182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EditProfileModalComponent, decorators: [{
182
183
  type: Component,
@@ -194,7 +195,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
194
195
  TextAreaComponent,
195
196
  CheckboxComponent,
196
197
  PasswordComponent,
197
- SelectBoxComponent
198
- ], template: "<div *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"profileForm\">\r\n\t\t<aril-field [label]=\"t('userStatus')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"enabled\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUser')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"systemUser\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUserApp')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-select-box\r\n\t\t\t\t[items]=\"clientList\"\r\n\t\t\t\tdisplayExpr=\"text\"\r\n\t\t\t\tvalueExpr=\"key\"\r\n\t\t\t\tformControlName=\"clientOfSystemUser\"\r\n\t\t\t\t[placeholder]=\"t('select')\">\r\n\t\t\t</aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('username')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"userName\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;'\"></aril-password>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('firstName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"firstName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('lastName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"lastName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('email')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"email\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('phone')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-mask mask=\"(999) 999 99 99\" [placeholder]=\"t('phoneExample')\" formControlName=\"phone\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('tcNumber')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-mask mask=\"99999999999\" formControlName=\"tckn\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<p-treeSelect\r\n\t\t\t\tclass=\"w-full md:w-20rem\"\r\n\t\t\t\tcontainerStyleClass=\"w-full\"\r\n\t\t\t\tformControlName=\"regions\"\r\n\t\t\t\t[options]=\"treeItems\"\r\n\t\t\t\tdisplay=\"chip\"\r\n\t\t\t\t[metaKeySelection]=\"false\"\r\n\t\t\t\t[propagateSelectionUp]=\"true\"\r\n\t\t\t\t[propagateSelectionDown]=\"true\"\r\n\t\t\t\tselectionMode=\"checkbox\"\r\n\t\t\t\t(onNodeSelect)=\"nodeSelect($event)\"\r\n\t\t\t\t(onNodeUnselect)=\"nodeUnselect($event)\"\r\n\t\t\t\t(onClear)=\"clear()\"\r\n\t\t\t\t[placeholder]=\"t('select')\"\r\n\t\t\t\t[showClear]=\"true\"></p-treeSelect>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('notes')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\r\n\t\t\t<aril-text-area [rows]=\"3\" [cols]=\"40\" formControlName=\"notes\"></aril-text-area>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('photoUrl')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"photoUrl\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\r\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\r\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n" }]
198
+ SelectBoxComponent,
199
+ TreeSelectComponent
200
+ ], template: "<div *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"profileForm\">\r\n\t\t<aril-field [label]=\"t('userStatus')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"enabled\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUser')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"systemUser\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUserApp')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-select-box formControlName=\"clientOfSystemUser\" [items]=\"clientList\" itemText=\"text\" itemKey=\"key\" [placeholder]=\"t('select')\"></aril-select-box>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('username')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"userName\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;'\"></aril-password>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('firstName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"firstName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('lastName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"lastName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('email')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"email\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('phone')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-mask mask=\"(999) 999 99 99\" [placeholder]=\"t('phoneExample')\" formControlName=\"phone\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('tcNumber')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-mask mask=\"99999999999\" formControlName=\"tckn\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-treeSelect\r\n\t\t\t\t[options]=\"treeItems\"\r\n\t\t\t\tformControlName=\"regions\"\r\n\t\t\t\t(nodeSelect)=\"nodeSelect($event)\"\r\n\t\t\t\t(nodeUnselect)=\"nodeUnselect($event)\"\r\n\t\t\t\t(cleared)=\"clear()\">\r\n\t\t\t</aril-treeSelect>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('notes')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\r\n\t\t\t<aril-text-area [rows]=\"3\" [cols]=\"40\" formControlName=\"notes\"></aril-text-area>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('photoUrl')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"photoUrl\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\r\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\r\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n" }]
199
201
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DynamicDialogRef }, { type: i3.MessageService }, { type: i4.ProfileService }, { type: i2.DynamicDialogConfig }, { type: i5.TranslocoService }] });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1wcm9maWxlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9wcm9maWxlU2lkZWJhci9tb2RhbHMvZWRpdC1wcm9maWxlLW1vZGFsL2VkaXQtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvcHJvZmlsZVNpZGViYXIvbW9kYWxzL2VkaXQtcHJvZmlsZS1tb2RhbC9lZGl0LXByb2ZpbGUtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQWUsV0FBVyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUluSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxF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VUFBVSxDQUFDLElBQUk7U0FDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWE7UUFDeEIsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDOUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDcEIsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNoSCxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDdEIsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNoSCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOzhHQXpNVyx5QkFBeUI7a0dBQXpCLHlCQUF5Qix3RUM3Q3RDLHVySUFvRkEsMkNEeERFLFlBQVksOEJBQ1osV0FBVyxrU0FDWCxjQUFjLGlTQUNkLGVBQWUsZ09BQ2YsZ0JBQWdCLDQ0QkFDaEIsbUJBQW1CLGdWQUNuQixhQUFhLG1MQUNiLGFBQWEsd01BQ2IsY0FBYyxpS0FDZCxlQUFlLGdNQUNmLGlCQUFpQix1TUFDakIsaUJBQWlCLDhKQUNqQixpQkFBaUIscU1BQ2pCLGtCQUFrQjs7MkZBSVAseUJBQXlCO2tCQXBCckMsU0FBUztpQ0FDRyxJQUFJLFdBQ1A7d0JBQ1IsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixrQkFBa0I7cUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBUcmVlU2VsZWN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90cmVlc2VsZWN0JztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9jaGVja2JveCc7XHJcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9maWVsZCc7XHJcbmltcG9ydCB7IEFSaUxGb3JtTW9kdWxlIH0gZnJvbSAnYXJpbC91aS9mb3JtJztcclxuaW1wb3J0IHsgTWFza0NvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvbWFzayc7XHJcbmltcG9ydCB7IFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9wYXNzd29yZCc7XHJcbmltcG9ydCB7IFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvc2VsZWN0Qm94JztcclxuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvdGV4dCc7XHJcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS90ZXh0QXJlYSc7XHJcblxyXG5pbXBvcnQgeyBDbGllbnRSZXNwb25zZURUTywgR2V0QWxsQ2xpZW50UmVxdWVzdERUTyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2UvaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgUHJvZmlsZVNlcnZpY2UsIFVwZGF0ZVVzZXJSZXF1ZXN0RFRPLCBVc2VyUmVzcG9uc2VEVE8gfSBmcm9tICcuLi8uLi9wcm9maWxlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbXHJcblx0XHRDb21tb25Nb2R1bGUsXHJcblx0XHRGb3Jtc01vZHVsZSxcclxuXHRcdEFSaUxGb3JtTW9kdWxlLFxyXG5cdFx0VHJhbnNsb2NvTW9kdWxlLFxyXG5cdFx0VHJlZVNlbGVjdE1vZHVsZSxcclxuXHRcdFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcblx0XHRUZXh0Q29tcG9uZW50LFxyXG5cdFx0TWFza0NvbXBvbmVudCxcclxuXHRcdEZpZWxkQ29tcG9uZW50LFxyXG5cdFx0QnV0dG9uQ29tcG9uZW50LFxyXG5cdFx0VGV4dEFyZWFDb21wb25lbnQsXHJcblx0XHRDaGVja2JveENvbXBvbmVudCxcclxuXHRcdFBhc3N3b3JkQ29tcG9uZW50LFxyXG5cdFx0U2VsZWN0Qm94Q29tcG9uZW50XHJcblx0XSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZWRpdC1wcm9maWxlLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdFByb2ZpbGVNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nUmVmOiBEeW5hbWljRGlhbG9nUmVmLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHByb2ZpbGVTZXJ2aWNlOiBQcm9maWxlU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nQ29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLnVzZXJQcm9maWxlID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YT8udXNlclByb2ZpbGU7XHJcblxyXG5cdFx0dGhpcy5pbml0aWFsaXplRWZmZWN0cygpO1xyXG5cdFx0dGhpcy5pbml0aWFsaXplRm9ybSgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpbml0aWFsaXplRWZmZWN0cygpIHtcclxuXHRcdHRoaXMuc3ViamVjdHMuZ2V0VHJlZS5uZXh0KDApO1xyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRVc2VyVHlwZS5uZXh0KHsgZmlyc3Q6IDAsIG1heDogMTAwIH0pO1xyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRDbGllbnRMaXN0Lm5leHQoeyBmaXJzdDogMCwgbWF4OiAxMDAgfSk7XHJcblxyXG5cdFx0aWYgKHRoaXMuZGlhbG9nQ29uZmlnPy5kYXRhPy5pdGVtPy5pZCkge1xyXG5cdFx0XHR0aGlzLnN1YmplY3RzLmdldFVzZXJEZXRhaWxzLm5leHQoeyBpZDogdGhpcy5kaWFsb2dDb25maWcuZGF0YS5pdGVtLmlkIH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qgc2VydmljZSA9IHRoaXMudXBkYXRlVXNlclNlcnZpY2UoKTtcclxuXHRcdFx0XHRpZiAoc2VydmljZT8ucmVzcG9uc2UpIHtcclxuXHRcdFx0XHRcdHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuXHRcdFx0XHRcdFx0c2V2ZXJpdHk6ICdzdWNjZXNzJyxcclxuXHRcdFx0XHRcdFx0c3VtbWFyeTogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncHJvZmlsZVNpZGViYXIudXBkYXRlU3VjY2VzcycpLFxyXG5cdFx0XHRcdFx0XHRkZXRhaWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ3Byb2ZpbGVTaWRlYmFyLnVwZGF0ZVN1Y2Nlc3NEZXRhaWwnKSxcclxuXHRcdFx0XHRcdFx0a2V5OiAndG9hc3Qtcm9vdCdcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0dGhpcy5kaWFsb2dSZWYuY2xvc2UoeyBzdGF0dXM6ICdzdWNjZXNzJywgZGF0YTogc2VydmljZS5yZXNwb25zZSB9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxyXG5cdFx0KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5nZXRDbGllbnRMaXN0U2VydmljZSgpPy5yZXNwb25zZSkge1xyXG5cdFx0XHRcdHRoaXMucHJlcGFyZUNsaWVudExpc3REcm9wZG93bih0aGlzLmdldENsaWVudExpc3RTZXJ2aWNlKCk/LnJlc3BvbnNlIGFzIENsaWVudFJlc3BvbnNlRFRPW10pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5nZXRVc2VyVHlwZVNlcnZpY2UoKT8ucmVzcG9uc2UpIHtcclxuXHRcdFx0XHR0aGlzLnVzZXJUeXBlRGF0YXMgPSB0aGlzLmdldFVzZXJUeXBlU2VydmljZSgpPy5yZXNwb25zZTtcclxuXHRcdFx0XHR0aGlzLnVzZXJUeXBlSXRlbXMgPSB0aGlzLnVzZXJUeXBlRGF0YXMubWFwKChpdGVtOiB7IG5hbWU6IHN0cmluZzsgaWQ6IHN0cmluZyB9KSA9PiAoe1xyXG5cdFx0XHRcdFx0dGV4dDogaXRlbS5uYW1lLFxyXG5cdFx0XHRcdFx0a2V5OiBpdGVtLmlkXHJcblx0XHRcdFx0fSkpO1xyXG5cdFx0XHRcdHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZ2V0VXNlckRldGFpbFNlcnZpY2UoKT8ucmVzcG9uc2UpIHtcclxuXHRcdFx0XHR0aGlzLnVwZGF0ZVVzZXJEYXRhID0gdGhpcy5nZXRVc2VyRGV0YWlsU2VydmljZSgpPy5yZXNwb25zZTtcclxuXHRcdFx0XHR0aGlzLmluaXRpYWxpemVGb3JtKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmdldEF1dGhvcml0eVRyZWVTZXJ2aWNlKCk/LnJlc3BvbnNlKSB7XHJcblx0XHRcdFx0dGhpcy50cmVlRGF0YSA9IHRoaXMuZ2V0QXV0aG9yaXR5VHJlZVNlcnZpY2UoKT8ucmVzcG9uc2U7XHJcblx0XHRcdFx0dGhpcy50cmVlSXRlbXMgPSB0aGlzLm1hcFRyZWVEYXRhKHRoaXMudHJlZURhdGEpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc3ViamVjdHMgPSB7XHJcblx0XHRnZXRUcmVlOiBuZXcgU3ViamVjdDxudW1iZXI+KCksXHJcblx0XHRnZXRVc2VyVHlwZTogbmV3IFN1YmplY3Q8YW55PigpLFxyXG5cdFx0Z2V0VXNlckRldGFpbHM6IG5ldyBTdWJqZWN0PHsgaWQ6IHN0cmluZyB9PigpLFxyXG5cdFx0dXBkYXRlVXNlcjogbmV3IFN1YmplY3Q8VXBkYXRlVXNlclJlcXVlc3REVE8+KCksXHJcblx0XHRnZXRDbGllbnRMaXN0OiBuZXcgU3ViamVjdDxHZXRBbGxDbGllbnRSZXF1ZXN0RFRPPigpXHJcblx0fTtcclxuXHJcblx0dHJlZURhdGE6IGFueTtcclxuXHR0cmVlSXRlbXM6IGFueTtcclxuXHRwYWdlRWRpdCA9IGZhbHNlO1xyXG5cdHVzZXJUeXBlSXRlbXM6IGFueTtcclxuXHR1c2VyVHlwZURhdGFzOiBhbnk7XHJcblx0dXBkYXRlVXNlckRhdGE6IGFueTtcclxuXHRjbGllbnRMaXN0OiB7IGtleTogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfVtdID0gW107XHJcblx0bGV2ZWxQYWlyczogQXJyYXk8eyBzdGFydExldmVsOiBzdHJpbmc7IGVuZExldmVsOiBzdHJpbmcgfT4gPSBbXTtcclxuXHJcblx0cHJvZmlsZUZvcm0hOiBGb3JtR3JvdXA7XHJcblx0dXNlclByb2ZpbGU6IFVzZXJSZXNwb25zZURUTztcclxuXHRzZWxlY3RlZFVzZXJUeXBlSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdGlmICghdGhpcy51c2VyUHJvZmlsZSkge1xyXG5cdFx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSgnZXJyb3InKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHVwZGF0ZVVzZXJTZXJ2aWNlID0gdG9TaWduYWwoXHJcblx0XHR0aGlzLnN1YmplY3RzLnVwZGF0ZVVzZXIucGlwZShzd2l0Y2hNYXAoKGRhdGEpID0+IHRoaXMucHJvZmlsZVNlcnZpY2UudXBkYXRlVXNlcihkYXRhKSkpXHJcblx0KTtcclxuXHJcblx0Z2V0Q2xpZW50TGlzdFNlcnZpY2UgPSB0b1NpZ25hbChcclxuXHRcdHRoaXMuc3ViamVjdHMuZ2V0Q2xpZW50TGlzdC5waXBlKHN3aXRjaE1hcCgoZGF0YSkgPT4gdGhpcy5wcm9maWxlU2VydmljZS5nZXRBbGxDbGllbnRzTGlzdChkYXRhKSkpXHJcblx0KTtcclxuXHJcblx0Z2V0VXNlckRldGFpbFNlcnZpY2UgPSB0b1NpZ25hbChcclxuXHRcdHRoaXMuc3ViamVjdHMuZ2V0VXNlckRldGFpbHMucGlwZShzd2l0Y2hNYXAoKGRhdGEpID0+IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0VXNlcihkYXRhKSkpXHJcblx0KTtcclxuXHJcblx0Z2V0VXNlclR5cGVTZXJ2aWNlID0gdG9TaWduYWwoXHJcblx0XHR0aGlzLnN1YmplY3RzLmdldFVzZXJUeXBlLnBpcGUoc3dpdGNoTWFwKChkYXRhKSA9PiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldEFsbFVzZXJUeXBlKGRhdGEpKSlcclxuXHQpO1xyXG5cclxuXHRnZXRBdXRob3JpdHlUcmVlU2VydmljZSA9IHRvU2lnbmFsKFxyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRUcmVlLnBpcGUoc3dpdGNoTWFwKChkYXRhKSA9PiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldEF1dGhvcml0eVRyZWUoZGF0YSkpKVxyXG5cdCk7XHJcblxyXG5cdHByaXZhdGUgaW5pdGlhbGl6ZUZvcm0oKTogdm9pZCB7XHJcblx0XHR0aGlzLnVwZGF0ZVVzZXJEYXRhID0gdGhpcy5nZXRVc2VyRGV0YWlsU2VydmljZSgpPy5yZXNwb25zZTtcclxuXHJcblx0XHRjb25zdCB1c2VyVHlwZXNGcm9tUmVzcG9uc2U6IHN0cmluZ1tdID0gdGhpcy51c2VyUHJvZmlsZT8udXNlclR5cGVzIHx8IFtdO1xyXG5cdFx0Y29uc3QgdXNlclR5cGVEYXRhcyA9IHRoaXMudXNlclR5cGVEYXRhcyB8fCBbXTtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkVXNlclR5cGVJZHMgPSB1c2VyVHlwZURhdGFzXHJcblx0XHRcdC5maWx0ZXIoKHR5cGU6IHsgbmFtZTogc3RyaW5nIH0pID0+IHVzZXJUeXBlc0Zyb21SZXNwb25zZS5pbmNsdWRlcyh0eXBlLm5hbWUpKVxyXG5cdFx0XHQubWFwKCh0eXBlOiB7IGlkOiBhbnkgfSkgPT4gdHlwZS5pZCk7XHJcblxyXG5cdFx0dGhpcy51c2VyVHlwZUl0ZW1zID0gdXNlclR5cGVEYXRhcy5tYXAoKHR5cGU6IHsgbmFtZTogYW55OyBpZDogYW55IH0pID0+ICh7XHJcblx0XHRcdGxhYmVsOiB0eXBlLm5hbWUsXHJcblx0XHRcdHZhbHVlOiB0eXBlLmlkXHJcblx0XHR9KSk7XHJcblxyXG5cdFx0dGhpcy5wcm9maWxlRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG5cdFx0XHRpZDogbmV3IEZvcm1Db250cm9sKHRoaXMudXNlclByb2ZpbGU/LmlkIHx8IG51bGwpLFxyXG5cdFx0XHRzeXN0ZW1Vc2VyOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy51c2VyUHJvZmlsZT8uc3lzdGVtVXNlciA/PyB0cnVlLCBkaXNhYmxlZDogZmFsc2UgfSksXHJcblx0XHRcdGNsaWVudE9mU3lzdGVtVXNlcjogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMudXNlclByb2ZpbGU/LmNsaWVudE9mU3lzdGVtVXNlciB8fCAnJywgZGlzYWJsZWQ6IGZhbHNlIH0pLFxyXG5cdFx0XHR1c2VyVHlwZUlkOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5zZWxlY3RlZFVzZXJUeXBlSWRzWzBdLCBkaXNhYmxlZDogZmFsc2UgfSksXHJcblx0XHRcdHJlZ2lvbnM6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnVzZXJQcm9maWxlPy5yZWdpb25zIHx8ICcnLCBkaXNhYmxlZDogZmFsc2UgfSksXHJcblx0XHRcdHVzZXJOYW1lOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy51c2VyUHJvZmlsZT8udXNlck5hbWUgfHwgJycsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcblx0XHRcdGZpcnN0TmFtZTogbmV3IEZvcm1Db250cm9sKHRoaXMudXNlclByb2ZpbGU/LmZpcnN0TmFtZSB8fCAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuXHRcdFx0bGFzdE5hbWU6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnVzZXJQcm9maWxlPy5sYXN0TmFtZSB8fCAnJyksXHJcblx0XHRcdGVtYWlsOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8uZW1haWwgfHwgJycsIFtWYWxpZGF0b3JzLmVtYWlsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcblx0XHRcdHBob25lOiBuZXcgRm9ybUNvbnRyb2woQXJyYXkuaXNBcnJheSh0aGlzLnVzZXJQcm9maWxlPy5waG9uZSkgPyB0aGlzLnVzZXJQcm9maWxlLnBob25lWzBdIHx8ICcnIDogdGhpcy51c2VyUHJvZmlsZT8ucGhvbmUgfHwgJycpLFxyXG5cdFx0XHR0Y2tuOiBuZXcgRm9ybUNvbnRyb2woQXJyYXkuaXNBcnJheSh0aGlzLnVzZXJQcm9maWxlPy50Y2tuKSA/IHRoaXMudXNlclByb2ZpbGUudGNrblswXSB8fCAnJyA6ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG5cdFx0XHRwaG90b1VybDogbmV3IEZvcm1Db250cm9sKHRoaXMudXNlclByb2ZpbGU/LnBob3RvVXJsIHx8ICcnKSxcclxuXHRcdFx0ZW5hYmxlZDogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMudXNlclByb2ZpbGU/LmVuYWJsZWQgPz8gdHJ1ZSwgZGlzYWJsZWQ6IGZhbHNlIH0pLFxyXG5cdFx0XHRlbWFpbFZlcmlmaWVkOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy51c2VyUHJvZmlsZT8uZW1haWxWZXJpZmllZCA/PyB0cnVlLCBkaXNhYmxlZDogZmFsc2UgfSksXHJcblx0XHRcdG5vdGVzOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8ubm90ZXMgfHwgJycpLFxyXG5cdFx0XHRwYXNzd29yZDogbmV3IEZvcm1Db250cm9sKG51bGwpXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHN1Ym1pdCgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHJhd1ZhbHVlID0gdGhpcy5wcm9maWxlRm9ybS5nZXRSYXdWYWx1ZSgpO1xyXG5cdFx0Y29uc3QgdXBkYXRlUmVxdWVzdDogVXBkYXRlVXNlclJlcXVlc3REVE8gPSB7XHJcblx0XHRcdC4uLnJhd1ZhbHVlLFxyXG5cdFx0XHRpZDogdGhpcy51c2VyUHJvZmlsZS5pZCxcclxuXHRcdFx0cGhvbmU6IEFycmF5LmlzQXJyYXkocmF3VmFsdWUucGhvbmUpID8gcmF3VmFsdWUucGhvbmUgOiBbcmF3VmFsdWUucGhvbmVdLFxyXG5cdFx0XHR0Y2tuOiBBcnJheS5pc0FycmF5KHJhd1ZhbHVlLnRja24pID8gcmF3VmFsdWUudGNrbiA6IFtyYXdWYWx1ZS50Y2tuXSxcclxuXHRcdFx0cmVnaW9uczogdGhpcy5sZXZlbFBhaXJzLFxyXG5cdFx0XHRwaG90b1VybDogQXJyYXkuaXNBcnJheShyYXdWYWx1ZS5waG90b1VybCkgPyByYXdWYWx1ZS5waG90b1VybCA6IFtyYXdWYWx1ZS5waG90b1VybF0sXHJcblx0XHRcdG5vdGVzOiBBcnJheS5pc0FycmF5KHJhd1ZhbHVlLm5vdGVzKSA/IHJhd1ZhbHVlLm5vdGVzIDogW3Jhd1ZhbHVlLm5vdGVzXVxyXG5cdFx0fTtcclxuXHJcblx0XHR0aGlzLnN1YmplY3RzLnVwZGF0ZVVzZXIubmV4dCh1cGRhdGVSZXF1ZXN0KTtcclxuXHR9XHJcblxyXG5cdGNhbmNlbCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKCdjYW5jZWwnKTtcclxuXHR9XHJcblxyXG5cdHByZXBhcmVDbGllbnRMaXN0RHJvcGRvd24oY2xpZW50TGlzdFBhcmFtOiBDbGllbnRSZXNwb25zZURUT1tdKSB7XHJcblx0XHR0aGlzLmNsaWVudExpc3QgPSBjbGllbnRMaXN0UGFyYW0ubWFwKChjbGllbnRJdGVtKSA9PiAoe1xyXG5cdFx0XHRrZXk6IGNsaWVudEl0ZW0uY2xpZW50UmVmZXJlbmNlS2V5LFxyXG5cdFx0XHR0ZXh0OiBjbGllbnRJdGVtLm5hbWVcclxuXHRcdH0pKTtcclxuXHR9XHJcblxyXG5cdG1hcFRyZWVEYXRhKHRyZWVEYXRhOiBhbnkpIHtcclxuXHRcdHJldHVybiB0cmVlRGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gKHtcclxuXHRcdFx0bGFiZWw6IGl0ZW0ubmFtZSxcclxuXHRcdFx0dmFsdWU6IGl0ZW0uaWQsXHJcblx0XHRcdGNoaWxkcmVuOiBpdGVtLmNoaWxkcmVuID8gdGhpcy5tYXBUcmVlRGF0YShpdGVtLmNoaWxkcmVuKSA6IFtdXHJcblx0XHR9KSk7XHJcblx0fVxyXG5cclxuXHRub2RlU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuXHRcdGNvbnN0IHsgc3RhcnRMZXZlbCwgZW5kTGV2ZWwgfSA9IGV2ZW50Lm5vZGUuZGF0YTtcclxuXHRcdGNvbnN0IGluZGV4ID0gdGhpcy5sZXZlbFBhaXJzLmZpbmRJbmRleCgocGFpcikgPT4gcGFpci5zdGFydExldmVsID09PSBzdGFydExldmVsICYmIHBhaXIuZW5kTGV2ZWwgPT09IGVuZExldmVsKTtcclxuXHRcdGluZGV4ID09PSAtMSA/IHRoaXMubGV2ZWxQYWlycy5wdXNoKHsgc3RhcnRMZXZlbCwgZW5kTGV2ZWwgfSkgOiB0aGlzLmxldmVsUGFpcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHR9XHJcblxyXG5cdG5vZGVVbnNlbGVjdChldmVudDogYW55KSB7XHJcblx0XHRjb25zdCB7IHN0YXJ0TGV2ZWwsIGVuZExldmVsIH0gPSBldmVudC5ub2RlLmRhdGE7XHJcblx0XHRjb25zdCBpbmRleCA9IHRoaXMubGV2ZWxQYWlycy5maW5kSW5kZXgoKHBhaXIpID0+IHBhaXIuc3RhcnRMZXZlbCA9PT0gc3RhcnRMZXZlbCAmJiBwYWlyLmVuZExldmVsID09PSBlbmRMZXZlbCk7XHJcblx0XHRpZiAoaW5kZXggIT09IC0xKSB0aGlzLmxldmVsUGFpcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHR9XHJcblxyXG5cdGNsZWFyKCkge1xyXG5cdFx0dGhpcy5sZXZlbFBhaXJzID0gW107XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiAncHJvZmlsZVNpZGViYXInXCI+XHJcblx0PGFyaWwtZm9ybSBbZm9ybUdyb3VwXT1cInByb2ZpbGVGb3JtXCI+XHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgndXNlclN0YXR1cycpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiJyAnXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5hYmxlZFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9hcmlsLWNoZWNrYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdzeXN0ZW1Vc2VyJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDEyLCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiJyAnXCIgZm9ybUNvbnRyb2xOYW1lPVwic3lzdGVtVXNlclwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9hcmlsLWNoZWNrYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd1c2VyVHlwZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLXNlbGVjdC1ib3ggZm9ybUNvbnRyb2xOYW1lPVwidXNlclR5cGVJZFwiIFtpdGVtc109XCJ1c2VyVHlwZUl0ZW1zXCIgaXRlbUtleT1cInZhbHVlXCIgaXRlbVRleHQ9XCJsYWJlbFwiIFtwbGFjZWhvbGRlcl09XCJ0KCdzZWxlY3QnKVwiPjwvYXJpbC1zZWxlY3QtYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdzeXN0ZW1Vc2VyQXBwJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDEyLCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1zZWxlY3QtYm94XHJcblx0XHRcdFx0W2l0ZW1zXT1cImNsaWVudExpc3RcIlxyXG5cdFx0XHRcdGRpc3BsYXlFeHByPVwidGV4dFwiXHJcblx0XHRcdFx0dmFsdWVFeHByPVwia2V5XCJcclxuXHRcdFx0XHRmb3JtQ29udHJvbE5hbWU9XCJjbGllbnRPZlN5c3RlbVVzZXJcIlxyXG5cdFx0XHRcdFtwbGFjZWhvbGRlcl09XCJ0KCdzZWxlY3QnKVwiPlxyXG5cdFx0XHQ8L2FyaWwtc2VsZWN0LWJveD5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgndXNlcm5hbWUnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIiBbbWFya0FzUmVxdWlyZWRdPVwidHJ1ZVwiPlxyXG5cdFx0XHQ8YXJpbC10ZXh0IGZvcm1Db250cm9sTmFtZT1cInVzZXJOYW1lXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L2FyaWwtdGV4dD5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgndXNlclBhc3N3b3JkJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCIgW21hcmtBc1JlcXVpcmVkXT1cInRydWVcIj5cclxuXHRcdFx0PGFyaWwtcGFzc3dvcmQgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIiBbcGxhY2Vob2xkZXJdPVwiJyYjODcyODsmIzg3Mjg7JiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OyYjODcyODsnXCI+PC9hcmlsLXBhc3N3b3JkPlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdmaXJzdE5hbWUnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIiBbbWFya0FzUmVxdWlyZWRdPVwidHJ1ZVwiPlxyXG5cdFx0XHQ8YXJpbC10ZXh0IGZvcm1Db250cm9sTmFtZT1cImZpcnN0TmFtZVwiPjwvYXJpbC10ZXh0PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdsYXN0TmFtZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC10ZXh0IGZvcm1Db250cm9sTmFtZT1cImxhc3ROYW1lXCI+PC9hcmlsLXRleHQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ2VtYWlsJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCIgW21hcmtBc1JlcXVpcmVkXT1cInRydWVcIj5cclxuXHRcdFx0PGFyaWwtdGV4dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiPjwvYXJpbC10ZXh0PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdwaG9uZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1tYXNrIG1hc2s9XCIoOTk5KSA5OTkgOTkgOTlcIiBbcGxhY2Vob2xkZXJdPVwidCgncGhvbmVFeGFtcGxlJylcIiBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZVwiPjwvYXJpbC1tYXNrPlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd0Y051bWJlcicpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLW1hc2sgbWFzaz1cIjk5OTk5OTk5OTk5XCIgZm9ybUNvbnRyb2xOYW1lPVwidGNrblwiPjwvYXJpbC1tYXNrPlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdyZXNwb25zaWJsZVJlZ2lvbnMnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIj5cclxuXHRcdFx0PHAtdHJlZVNlbGVjdFxyXG5cdFx0XHRcdGNsYXNzPVwidy1mdWxsIG1kOnctMjByZW1cIlxyXG5cdFx0XHRcdGNvbnRhaW5lclN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxyXG5cdFx0XHRcdGZvcm1Db250cm9sTmFtZT1cInJlZ2lvbnNcIlxyXG5cdFx0XHRcdFtvcHRpb25zXT1cInRyZWVJdGVtc1wiXHJcblx0XHRcdFx0ZGlzcGxheT1cImNoaXBcIlxyXG5cdFx0XHRcdFttZXRhS2V5U2VsZWN0aW9uXT1cImZhbHNlXCJcclxuXHRcdFx0XHRbcHJvcGFnYXRlU2VsZWN0aW9uVXBdPVwidHJ1ZVwiXHJcblx0XHRcdFx0W3Byb3BhZ2F0ZVNlbGVjdGlvbkRvd25dPVwidHJ1ZVwiXHJcblx0XHRcdFx0c2VsZWN0aW9uTW9kZT1cImNoZWNrYm94XCJcclxuXHRcdFx0XHQob25Ob2RlU2VsZWN0KT1cIm5vZGVTZWxlY3QoJGV2ZW50KVwiXHJcblx0XHRcdFx0KG9uTm9kZVVuc2VsZWN0KT1cIm5vZGVVbnNlbGVjdCgkZXZlbnQpXCJcclxuXHRcdFx0XHQob25DbGVhcik9XCJjbGVhcigpXCJcclxuXHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwidCgnc2VsZWN0JylcIlxyXG5cdFx0XHRcdFtzaG93Q2xlYXJdPVwidHJ1ZVwiPjwvcC10cmVlU2VsZWN0PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdub3RlcycpXCIgW2NvbHNdPVwieyB4bDogMTIsIGxnOiAxMiwgbWQ6IDEyLCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC10ZXh0LWFyZWEgW3Jvd3NdPVwiM1wiIFtjb2xzXT1cIjQwXCIgZm9ybUNvbnRyb2xOYW1lPVwibm90ZXNcIj48L2FyaWwtdGV4dC1hcmVhPlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdwaG90b1VybCcpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC10ZXh0IGZvcm1Db250cm9sTmFtZT1cInBob3RvVXJsXCI+PC9hcmlsLXRleHQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGRpdiBjbGFzcz1cImNvbC0xMiBmbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtMyBnYXAtMVwiPlxyXG5cdFx0XHQ8YXJpbC1idXR0b24gY29sb3I9XCJkYW5nZXJcIiBbbGFiZWxdPVwidCgnY2FuY2VsJylcIiBbb3V0bGluZWRdPVwidHJ1ZVwiIGljb249XCJUSU1FU1wiIChjbGlja0V2ZW50KT1cImNhbmNlbCgpXCI+PC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0PGFyaWwtZm9ybS1zdWJtaXQgW2xhYmVsXT1cInQoJ3NhdmUnKVwiIGNvbG9yPVwic3VjY2Vzc1wiIGljb249XCJDSEVDS1wiIFtmb3JtR3JvdXBdPVwicHJvZmlsZUZvcm1cIiAodmFsaWRFdmVudCk9XCJzdWJtaXQoKVwiPjwvYXJpbC1mb3JtLXN1Ym1pdD5cclxuXHRcdDwvZGl2PlxyXG5cdDwvYXJpbC1mb3JtPlxyXG48L2Rpdj5cclxuIl19
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1wcm9maWxlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9wcm9maWxlU2lkZWJhci9tb2RhbHMvZWRpdC1wcm9maWxlLW1vZGFsL2VkaXQtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvcHJvZmlsZVNpZGViYXIvbW9kYWxzL2VkaXQtcHJvZmlsZS1tb2RhbC9lZGl0LXByb2ZpbGUtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQWUsV0FBVyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUluSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxF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Q0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNoSCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOzhHQTFNVyx5QkFBeUI7a0dBQXpCLHlCQUF5Qix3RUMvQ3RDLGl5SEFzRUEsMkNEekNFLFlBQVksOEJBQ1osV0FBVyxrU0FDWCxjQUFjLGlTQUNkLGVBQWUsZ09BQ2YsZ0JBQWdCLDhCQUNoQixtQkFBbUIsZ1ZBQ25CLGFBQWEsbUxBQ2IsYUFBYSx3TUFDYixjQUFjLGlLQUNkLGVBQWUsZ01BQ2YsaUJBQWlCLHVNQUNqQixpQkFBaUIsOEpBQ2pCLGlCQUFpQixxTUFDakIsa0JBQWtCLGdTQUNsQixtQkFBbUI7OzJGQUlSLHlCQUF5QjtrQkFyQnJDLFNBQVM7aUNBQ0csSUFBSSxXQUNQO3dCQUNSLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixtQkFBbUI7cUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBUcmVlU2VsZWN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90cmVlc2VsZWN0JztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9jaGVja2JveCc7XHJcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9maWVsZCc7XHJcbmltcG9ydCB7IEFSaUxGb3JtTW9kdWxlIH0gZnJvbSAnYXJpbC91aS9mb3JtJztcclxuaW1wb3J0IHsgTWFza0NvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvbWFzayc7XHJcbmltcG9ydCB7IFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9wYXNzd29yZCc7XHJcbmltcG9ydCB7IFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvc2VsZWN0Qm94JztcclxuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvdGV4dCc7XHJcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS90ZXh0QXJlYSc7XHJcbmltcG9ydCB7IFRyZWVTZWxlY3RDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL3RyZWVTZWxlY3QnO1xyXG5cclxuaW1wb3J0IHsgQ2xpZW50UmVzcG9uc2VEVE8sIEdldEFsbENsaWVudFJlcXVlc3REVE8gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlLCBVcGRhdGVVc2VyUmVxdWVzdERUTywgVXNlclJlc3BvbnNlRFRPIH0gZnJvbSAnLi4vLi4vcHJvZmlsZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0Q29tbW9uTW9kdWxlLFxyXG5cdFx0Rm9ybXNNb2R1bGUsXHJcblx0XHRBUmlMRm9ybU1vZHVsZSxcclxuXHRcdFRyYW5zbG9jb01vZHVsZSxcclxuXHRcdFRyZWVTZWxlY3RNb2R1bGUsXHJcblx0XHRSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG5cdFx0VGV4dENvbXBvbmVudCxcclxuXHRcdE1hc2tDb21wb25lbnQsXHJcblx0XHRGaWVsZENvbXBvbmVudCxcclxuXHRcdEJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdFRleHRBcmVhQ29tcG9uZW50LFxyXG5cdFx0Q2hlY2tib3hDb21wb25lbnQsXHJcblx0XHRQYXNzd29yZENvbXBvbmVudCxcclxuXHRcdFNlbGVjdEJveENvbXBvbmVudCxcclxuXHRcdFRyZWVTZWxlY3RDb21wb25lbnRcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9lZGl0LXByb2ZpbGUtbW9kYWwuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0UHJvZmlsZU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2VcclxuXHQpIHtcclxuXHRcdHRoaXMudXNlclByb2ZpbGUgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhPy51c2VyUHJvZmlsZTtcclxuXHJcblx0XHR0aGlzLmluaXRpYWxpemVFZmZlY3RzKCk7XHJcblx0XHR0aGlzLmluaXRpYWxpemVGb3JtKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGluaXRpYWxpemVFZmZlY3RzKCkge1xyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRUcmVlLm5leHQoMCk7XHJcblx0XHR0aGlzLnN1YmplY3RzLmdldFVzZXJUeXBlLm5leHQoeyBmaXJzdDogMCwgbWF4OiAxMDAgfSk7XHJcblx0XHR0aGlzLnN1YmplY3RzLmdldENsaWVudExpc3QubmV4dCh7IGZpcnN0OiAwLCBtYXg6IDEwMCB9KTtcclxuXHJcblx0XHRpZiAodGhpcy5kaWFsb2dDb25maWc/LmRhdGE/Lml0ZW0/LmlkKSB7XHJcblx0XHRcdHRoaXMuc3ViamVjdHMuZ2V0VXNlckRldGFpbHMubmV4dCh7IGlkOiB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLml0ZW0uaWQgfSk7XHJcblx0XHR9XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0XHRjb25zdCBzZXJ2aWNlID0gdGhpcy51cGRhdGVVc2VyU2VydmljZSgpO1xyXG5cdFx0XHRcdGlmIChzZXJ2aWNlPy5yZXNwb25zZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0XHRzZXZlcml0eTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRzdW1tYXJ5OiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdwcm9maWxlU2lkZWJhci51cGRhdGVTdWNjZXNzJyksXHJcblx0XHRcdFx0XHRcdGRldGFpbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncHJvZmlsZVNpZGViYXIudXBkYXRlU3VjY2Vzc0RldGFpbCcpLFxyXG5cdFx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IHN0YXR1czogJ3N1Y2Nlc3MnLCBkYXRhOiBzZXJ2aWNlLnJlc3BvbnNlIH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XHJcblx0XHQpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmdldENsaWVudExpc3RTZXJ2aWNlKCk/LnJlc3BvbnNlKSB7XHJcblx0XHRcdFx0dGhpcy5wcmVwYXJlQ2xpZW50TGlzdERyb3Bkb3duKHRoaXMuZ2V0Q2xpZW50TGlzdFNlcnZpY2UoKT8ucmVzcG9uc2UgYXMgQ2xpZW50UmVzcG9uc2VEVE9bXSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmdldFVzZXJUeXBlU2VydmljZSgpPy5yZXNwb25zZSkge1xyXG5cdFx0XHRcdHRoaXMudXNlclR5cGVEYXRhcyA9IHRoaXMuZ2V0VXNlclR5cGVTZXJ2aWNlKCk/LnJlc3BvbnNlO1xyXG5cdFx0XHRcdHRoaXMudXNlclR5cGVJdGVtcyA9IHRoaXMudXNlclR5cGVEYXRhcy5tYXAoKGl0ZW06IHsgbmFtZTogc3RyaW5nOyBpZDogc3RyaW5nIH0pID0+ICh7XHJcblx0XHRcdFx0XHR0ZXh0OiBpdGVtLm5hbWUsXHJcblx0XHRcdFx0XHRrZXk6IGl0ZW0uaWRcclxuXHRcdFx0XHR9KSk7XHJcblx0XHRcdFx0dGhpcy5pbml0aWFsaXplRm9ybSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5nZXRVc2VyRGV0YWlsU2VydmljZSgpPy5yZXNwb25zZSkge1xyXG5cdFx0XHRcdHRoaXMudXBkYXRlVXNlckRhdGEgPSB0aGlzLmdldFVzZXJEZXRhaWxTZXJ2aWNlKCk/LnJlc3BvbnNlO1xyXG5cdFx0XHRcdHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZ2V0QXV0aG9yaXR5VHJlZVNlcnZpY2UoKT8ucmVzcG9uc2UpIHtcclxuXHRcdFx0XHR0aGlzLnRyZWVEYXRhID0gdGhpcy5nZXRBdXRob3JpdHlUcmVlU2VydmljZSgpPy5yZXNwb25zZTtcclxuXHRcdFx0XHR0aGlzLnRyZWVJdGVtcyA9IHRoaXMubWFwVHJlZURhdGEodGhpcy50cmVlRGF0YSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzdWJqZWN0cyA9IHtcclxuXHRcdGdldFRyZWU6IG5ldyBTdWJqZWN0PG51bWJlcj4oKSxcclxuXHRcdGdldFVzZXJUeXBlOiBuZXcgU3ViamVjdDxhbnk+KCksXHJcblx0XHRnZXRVc2VyRGV0YWlsczogbmV3IFN1YmplY3Q8eyBpZDogc3RyaW5nIH0+KCksXHJcblx0XHR1cGRhdGVVc2VyOiBuZXcgU3ViamVjdDxVcGRhdGVVc2VyUmVxdWVzdERUTz4oKSxcclxuXHRcdGdldENsaWVudExpc3Q6IG5ldyBTdWJqZWN0PEdldEFsbENsaWVudFJlcXVlc3REVE8+KClcclxuXHR9O1xyXG5cclxuXHR0cmVlRGF0YTogYW55O1xyXG5cdHRyZWVJdGVtczogYW55O1xyXG5cdHBhZ2VFZGl0ID0gZmFsc2U7XHJcblx0dXNlclR5cGVJdGVtczogYW55O1xyXG5cdHVzZXJUeXBlRGF0YXM6IGFueTtcclxuXHR1cGRhdGVVc2VyRGF0YTogYW55O1xyXG5cdGNsaWVudExpc3Q6IHsga2V5OiBzdHJpbmc7IHRleHQ6IHN0cmluZyB9W10gPSBbXTtcclxuXHRsZXZlbFBhaXJzOiBBcnJheTx7IHN0YXJ0TGV2ZWw6IHN0cmluZzsgZW5kTGV2ZWw6IHN0cmluZyB9PiA9IFtdO1xyXG5cclxuXHRwcm9maWxlRm9ybSE6IEZvcm1Hcm91cDtcclxuXHR1c2VyUHJvZmlsZTogVXNlclJlc3BvbnNlRFRPO1xyXG5cdHNlbGVjdGVkVXNlclR5cGVJZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0aWYgKCF0aGlzLnVzZXJQcm9maWxlKSB7XHJcblx0XHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKCdlcnJvcicpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dXBkYXRlVXNlclNlcnZpY2UgPSB0b1NpZ25hbChcclxuXHRcdHRoaXMuc3ViamVjdHMudXBkYXRlVXNlci5waXBlKHN3aXRjaE1hcCgoZGF0YSkgPT4gdGhpcy5wcm9maWxlU2VydmljZS51cGRhdGVVc2VyKGRhdGEpKSlcclxuXHQpO1xyXG5cclxuXHRnZXRDbGllbnRMaXN0U2VydmljZSA9IHRvU2lnbmFsKFxyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRDbGllbnRMaXN0LnBpcGUoc3dpdGNoTWFwKChkYXRhKSA9PiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldEFsbENsaWVudHNMaXN0KGRhdGEpKSlcclxuXHQpO1xyXG5cclxuXHRnZXRVc2VyRGV0YWlsU2VydmljZSA9IHRvU2lnbmFsKFxyXG5cdFx0dGhpcy5zdWJqZWN0cy5nZXRVc2VyRGV0YWlscy5waXBlKHN3aXRjaE1hcCgoZGF0YSkgPT4gdGhpcy5wcm9maWxlU2VydmljZS5nZXRVc2VyKGRhdGEpKSlcclxuXHQpO1xyXG5cclxuXHRnZXRVc2VyVHlwZVNlcnZpY2UgPSB0b1NpZ25hbChcclxuXHRcdHRoaXMuc3ViamVjdHMuZ2V0VXNlclR5cGUucGlwZShzd2l0Y2hNYXAoKGRhdGEpID0+IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0QWxsVXNlclR5cGUoZGF0YSkpKVxyXG5cdCk7XHJcblxyXG5cdGdldEF1dGhvcml0eVRyZWVTZXJ2aWNlID0gdG9TaWduYWwoXHJcblx0XHR0aGlzLnN1YmplY3RzLmdldFRyZWUucGlwZShzd2l0Y2hNYXAoKGRhdGEpID0+IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0QXV0aG9yaXR5VHJlZShkYXRhKSkpXHJcblx0KTtcclxuXHJcblx0cHJpdmF0ZSBpbml0aWFsaXplRm9ybSgpOiB2b2lkIHtcclxuXHRcdHRoaXMudXBkYXRlVXNlckRhdGEgPSB0aGlzLmdldFVzZXJEZXRhaWxTZXJ2aWNlKCk/LnJlc3BvbnNlO1xyXG5cclxuXHRcdGNvbnN0IHVzZXJUeXBlc0Zyb21SZXNwb25zZTogc3RyaW5nW10gPSB0aGlzLnVzZXJQcm9maWxlPy51c2VyVHlwZXMgfHwgW107XHJcblx0XHRjb25zdCB1c2VyVHlwZURhdGFzID0gdGhpcy51c2VyVHlwZURhdGFzIHx8IFtdO1xyXG5cclxuXHRcdHRoaXMuc2VsZWN0ZWRVc2VyVHlwZUlkcyA9IHVzZXJUeXBlRGF0YXNcclxuXHRcdFx0LmZpbHRlcigodHlwZTogeyBuYW1lOiBzdHJpbmcgfSkgPT4gdXNlclR5cGVzRnJvbVJlc3BvbnNlLmluY2x1ZGVzKHR5cGUubmFtZSkpXHJcblx0XHRcdC5tYXAoKHR5cGU6IHsgaWQ6IGFueSB9KSA9PiB0eXBlLmlkKTtcclxuXHJcblx0XHR0aGlzLnVzZXJUeXBlSXRlbXMgPSB1c2VyVHlwZURhdGFzLm1hcCgodHlwZTogeyBuYW1lOiBhbnk7IGlkOiBhbnkgfSkgPT4gKHtcclxuXHRcdFx0bGFiZWw6IHR5cGUubmFtZSxcclxuXHRcdFx0dmFsdWU6IHR5cGUuaWRcclxuXHRcdH0pKTtcclxuXHJcblx0XHR0aGlzLnByb2ZpbGVGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcblx0XHRcdGlkOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8uaWQgfHwgbnVsbCksXHJcblx0XHRcdHN5c3RlbVVzZXI6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnVzZXJQcm9maWxlPy5zeXN0ZW1Vc2VyID8/IHRydWUsIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0Y2xpZW50T2ZTeXN0ZW1Vc2VyOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy51c2VyUHJvZmlsZT8uY2xpZW50T2ZTeXN0ZW1Vc2VyIHx8ICcnLCBkaXNhYmxlZDogZmFsc2UgfSksXHJcblx0XHRcdHVzZXJUeXBlSWQ6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnNlbGVjdGVkVXNlclR5cGVJZHNbMF0sIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0cmVnaW9uczogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMudXNlclByb2ZpbGU/LnJlZ2lvbnMgfHwgJycsIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0dXNlck5hbWU6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnVzZXJQcm9maWxlPy51c2VyTmFtZSB8fCAnJywgZGlzYWJsZWQ6IHRydWUgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuXHRcdFx0Zmlyc3ROYW1lOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8uZmlyc3ROYW1lIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG5cdFx0XHRsYXN0TmFtZTogbmV3IEZvcm1Db250cm9sKHRoaXMudXNlclByb2ZpbGU/Lmxhc3ROYW1lIHx8ICcnKSxcclxuXHRcdFx0ZW1haWw6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnVzZXJQcm9maWxlPy5lbWFpbCB8fCAnJywgW1ZhbGlkYXRvcnMuZW1haWwsIFZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuXHRcdFx0cGhvbmU6IG5ldyBGb3JtQ29udHJvbChBcnJheS5pc0FycmF5KHRoaXMudXNlclByb2ZpbGU/LnBob25lKSA/IHRoaXMudXNlclByb2ZpbGUucGhvbmVbMF0gfHwgJycgOiB0aGlzLnVzZXJQcm9maWxlPy5waG9uZSB8fCAnJyksXHJcblx0XHRcdHRja246IG5ldyBGb3JtQ29udHJvbChBcnJheS5pc0FycmF5KHRoaXMudXNlclByb2ZpbGU/LnRja24pID8gdGhpcy51c2VyUHJvZmlsZS50Y2tuWzBdIHx8ICcnIDogJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcblx0XHRcdHBob3RvVXJsOiBuZXcgRm9ybUNvbnRyb2wodGhpcy51c2VyUHJvZmlsZT8ucGhvdG9VcmwgfHwgJycpLFxyXG5cdFx0XHRlbmFibGVkOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy51c2VyUHJvZmlsZT8uZW5hYmxlZCA/PyB0cnVlLCBkaXNhYmxlZDogZmFsc2UgfSksXHJcblx0XHRcdGVtYWlsVmVyaWZpZWQ6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnVzZXJQcm9maWxlPy5lbWFpbFZlcmlmaWVkID8/IHRydWUsIGRpc2FibGVkOiBmYWxzZSB9KSxcclxuXHRcdFx0bm90ZXM6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnVzZXJQcm9maWxlPy5ub3RlcyB8fCAnJyksXHJcblx0XHRcdHBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2wobnVsbClcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0c3VibWl0KCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgcmF3VmFsdWUgPSB0aGlzLnByb2ZpbGVGb3JtLmdldFJhd1ZhbHVlKCk7XHJcblx0XHRjb25zdCB1cGRhdGVSZXF1ZXN0OiBVcGRhdGVVc2VyUmVxdWVzdERUTyA9IHtcclxuXHRcdFx0Li4ucmF3VmFsdWUsXHJcblx0XHRcdGlkOiB0aGlzLnVzZXJQcm9maWxlLmlkLFxyXG5cdFx0XHRwaG9uZTogQXJyYXkuaXNBcnJheShyYXdWYWx1ZS5waG9uZSkgPyByYXdWYWx1ZS5waG9uZSA6IFtyYXdWYWx1ZS5waG9uZV0sXHJcblx0XHRcdHRja246IEFycmF5LmlzQXJyYXkocmF3VmFsdWUudGNrbikgPyByYXdWYWx1ZS50Y2tuIDogW3Jhd1ZhbHVlLnRja25dLFxyXG5cdFx0XHRyZWdpb25zOiB0aGlzLmxldmVsUGFpcnMsXHJcblx0XHRcdHBob3RvVXJsOiBBcnJheS5pc0FycmF5KHJhd1ZhbHVlLnBob3RvVXJsKSA/IHJhd1ZhbHVlLnBob3RvVXJsIDogW3Jhd1ZhbHVlLnBob3RvVXJsXSxcclxuXHRcdFx0bm90ZXM6IEFycmF5LmlzQXJyYXkocmF3VmFsdWUubm90ZXMpID8gcmF3VmFsdWUubm90ZXMgOiBbcmF3VmFsdWUubm90ZXNdXHJcblx0XHR9O1xyXG5cclxuXHRcdHRoaXMuc3ViamVjdHMudXBkYXRlVXNlci5uZXh0KHVwZGF0ZVJlcXVlc3QpO1xyXG5cdH1cclxuXHJcblx0Y2FuY2VsKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5kaWFsb2dSZWYuY2xvc2UoJ2NhbmNlbCcpO1xyXG5cdH1cclxuXHJcblx0cHJlcGFyZUNsaWVudExpc3REcm9wZG93bihjbGllbnRMaXN0UGFyYW06IENsaWVudFJlc3BvbnNlRFRPW10pIHtcclxuXHRcdHRoaXMuY2xpZW50TGlzdCA9IGNsaWVudExpc3RQYXJhbS5tYXAoKGNsaWVudEl0ZW0pID0+ICh7XHJcblx0XHRcdGtleTogY2xpZW50SXRlbS5jbGllbnRSZWZlcmVuY2VLZXksXHJcblx0XHRcdHRleHQ6IGNsaWVudEl0ZW0ubmFtZVxyXG5cdFx0fSkpO1xyXG5cdH1cclxuXHJcblx0bWFwVHJlZURhdGEodHJlZURhdGE6IGFueSkge1xyXG5cdFx0cmV0dXJuIHRyZWVEYXRhLm1hcCgoaXRlbTogYW55KSA9PiAoe1xyXG5cdFx0XHRrZXk6IGl0ZW0uc3RhcnRMZXZlbCxcclxuXHRcdFx0bGFiZWw6IGl0ZW0ubmFtZSxcclxuXHRcdFx0dmFsdWU6IGl0ZW0uaWQsXHJcblx0XHRcdGNoaWxkcmVuOiBpdGVtLmNoaWxkcmVuID8gdGhpcy5tYXBUcmVlRGF0YShpdGVtLmNoaWxkcmVuKSA6IFtdXHJcblx0XHR9KSk7XHJcblx0fVxyXG5cclxuXHRub2RlU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuXHRcdGNvbnN0IHsgc3RhcnRMZXZlbCwgZW5kTGV2ZWwgfSA9IGV2ZW50Lm5vZGUuZGF0YTtcclxuXHRcdGNvbnN0IGluZGV4ID0gdGhpcy5sZXZlbFBhaXJzLmZpbmRJbmRleCgocGFpcikgPT4gcGFpci5zdGFydExldmVsID09PSBzdGFydExldmVsICYmIHBhaXIuZW5kTGV2ZWwgPT09IGVuZExldmVsKTtcclxuXHRcdGluZGV4ID09PSAtMSA/IHRoaXMubGV2ZWxQYWlycy5wdXNoKHsgc3RhcnRMZXZlbCwgZW5kTGV2ZWwgfSkgOiB0aGlzLmxldmVsUGFpcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHR9XHJcblxyXG5cdG5vZGVVbnNlbGVjdChldmVudDogYW55KSB7XHJcblx0XHRjb25zdCB7IHN0YXJ0TGV2ZWwsIGVuZExldmVsIH0gPSBldmVudC5ub2RlLmRhdGE7XHJcblx0XHRjb25zdCBpbmRleCA9IHRoaXMubGV2ZWxQYWlycy5maW5kSW5kZXgoKHBhaXIpID0+IHBhaXIuc3RhcnRMZXZlbCA9PT0gc3RhcnRMZXZlbCAmJiBwYWlyLmVuZExldmVsID09PSBlbmRMZXZlbCk7XHJcblx0XHRpZiAoaW5kZXggIT09IC0xKSB0aGlzLmxldmVsUGFpcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHR9XHJcblxyXG5cdGNsZWFyKCkge1xyXG5cdFx0dGhpcy5sZXZlbFBhaXJzID0gW107XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiAncHJvZmlsZVNpZGViYXInXCI+XHJcblx0PGFyaWwtZm9ybSBbZm9ybUdyb3VwXT1cInByb2ZpbGVGb3JtXCI+XHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgndXNlclN0YXR1cycpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiJyAnXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5hYmxlZFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9hcmlsLWNoZWNrYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdzeXN0ZW1Vc2VyJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDEyLCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiJyAnXCIgZm9ybUNvbnRyb2xOYW1lPVwic3lzdGVtVXNlclwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9hcmlsLWNoZWNrYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd1c2VyVHlwZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLXNlbGVjdC1ib3ggZm9ybUNvbnRyb2xOYW1lPVwidXNlclR5cGVJZFwiIFtpdGVtc109XCJ1c2VyVHlwZUl0ZW1zXCIgaXRlbUtleT1cInZhbHVlXCIgaXRlbVRleHQ9XCJsYWJlbFwiIFtwbGFjZWhvbGRlcl09XCJ0KCdzZWxlY3QnKVwiPjwvYXJpbC1zZWxlY3QtYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCdzeXN0ZW1Vc2VyQXBwJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDEyLCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC1zZWxlY3QtYm94IGZvcm1Db250cm9sTmFtZT1cImNsaWVudE9mU3lzdGVtVXNlclwiIFtpdGVtc109XCJjbGllbnRMaXN0XCIgaXRlbVRleHQ9XCJ0ZXh0XCIgaXRlbUtleT1cImtleVwiIFtwbGFjZWhvbGRlcl09XCJ0KCdzZWxlY3QnKVwiPjwvYXJpbC1zZWxlY3QtYm94PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd1c2VybmFtZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLXRleHQgZm9ybUNvbnRyb2xOYW1lPVwidXNlck5hbWVcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvYXJpbC10ZXh0PlxyXG5cdFx0PC9hcmlsLWZpZWxkPlxyXG5cclxuXHRcdDxhcmlsLWZpZWxkIFtsYWJlbF09XCJ0KCd1c2VyUGFzc3dvcmQnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIiBbbWFya0FzUmVxdWlyZWRdPVwidHJ1ZVwiPlxyXG5cdFx0XHQ8YXJpbC1wYXNzd29yZCBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIFtwbGFjZWhvbGRlcl09XCInJiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OyYjODcyODsmIzg3Mjg7JiM4NzI4OydcIj48L2FyaWwtcGFzc3dvcmQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ2ZpcnN0TmFtZScpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiIFttYXJrQXNSZXF1aXJlZF09XCJ0cnVlXCI+XHJcblx0XHRcdDxhcmlsLXRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3ROYW1lXCI+PC9hcmlsLXRleHQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ2xhc3ROYW1lJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCI+XHJcblx0XHRcdDxhcmlsLXRleHQgZm9ybUNvbnRyb2xOYW1lPVwibGFzdE5hbWVcIj48L2FyaWwtdGV4dD5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwidCgnZW1haWwnKVwiIFtjb2xzXT1cInsgeGw6IDYsIGxnOiA2LCBtZDogNiwgc206IDEyIH1cIiBbbWFya0FzUmVxdWlyZWRdPVwidHJ1ZVwiPlxyXG5cdFx0XHQ8YXJpbC10ZXh0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCI+PC9hcmlsLXRleHQ+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ3Bob25lJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCI+XHJcblx0XHRcdDxhcmlsLW1hc2sgbWFzaz1cIig5OTkpIDk5OSA5OSA5OVwiIFtwbGFjZWhvbGRlcl09XCJ0KCdwaG9uZUV4YW1wbGUnKVwiIGZvcm1Db250cm9sTmFtZT1cInBob25lXCI+PC9hcmlsLW1hc2s+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ3RjTnVtYmVyJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCIgW21hcmtBc1JlcXVpcmVkXT1cInRydWVcIj5cclxuXHRcdFx0PGFyaWwtbWFzayBtYXNrPVwiOTk5OTk5OTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJ0Y2tuXCI+PC9hcmlsLW1hc2s+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ3Jlc3BvbnNpYmxlUmVnaW9ucycpXCIgW2NvbHNdPVwieyB4bDogNiwgbGc6IDYsIG1kOiA2LCBzbTogMTIgfVwiPlxyXG5cdFx0XHQ8YXJpbC10cmVlU2VsZWN0XHJcblx0XHRcdFx0W29wdGlvbnNdPVwidHJlZUl0ZW1zXCJcclxuXHRcdFx0XHRmb3JtQ29udHJvbE5hbWU9XCJyZWdpb25zXCJcclxuXHRcdFx0XHQobm9kZVNlbGVjdCk9XCJub2RlU2VsZWN0KCRldmVudClcIlxyXG5cdFx0XHRcdChub2RlVW5zZWxlY3QpPVwibm9kZVVuc2VsZWN0KCRldmVudClcIlxyXG5cdFx0XHRcdChjbGVhcmVkKT1cImNsZWFyKClcIj5cclxuXHRcdFx0PC9hcmlsLXRyZWVTZWxlY3Q+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ25vdGVzJylcIiBbY29sc109XCJ7IHhsOiAxMiwgbGc6IDEyLCBtZDogMTIsIHNtOiAxMiB9XCI+XHJcblx0XHRcdDxhcmlsLXRleHQtYXJlYSBbcm93c109XCIzXCIgW2NvbHNdPVwiNDBcIiBmb3JtQ29udHJvbE5hbWU9XCJub3Rlc1wiPjwvYXJpbC10ZXh0LWFyZWE+XHJcblx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0PGFyaWwtZmllbGQgW2xhYmVsXT1cInQoJ3Bob3RvVXJsJylcIiBbY29sc109XCJ7IHhsOiA2LCBsZzogNiwgbWQ6IDYsIHNtOiAxMiB9XCI+XHJcblx0XHRcdDxhcmlsLXRleHQgZm9ybUNvbnRyb2xOYW1lPVwicGhvdG9VcmxcIj48L2FyaWwtdGV4dD5cclxuXHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyIGZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0zIGdhcC0xXCI+XHJcblx0XHRcdDxhcmlsLWJ1dHRvbiBjb2xvcj1cImRhbmdlclwiIFtsYWJlbF09XCJ0KCdjYW5jZWwnKVwiIFtvdXRsaW5lZF09XCJ0cnVlXCIgaWNvbj1cIlRJTUVTXCIgKGNsaWNrRXZlbnQpPVwiY2FuY2VsKClcIj48L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHQ8YXJpbC1mb3JtLXN1Ym1pdCBbbGFiZWxdPVwidCgnc2F2ZScpXCIgY29sb3I9XCJzdWNjZXNzXCIgaWNvbj1cIkNIRUNLXCIgW2Zvcm1Hcm91cF09XCJwcm9maWxlRm9ybVwiICh2YWxpZEV2ZW50KT1cInN1Ym1pdCgpXCI+PC9hcmlsLWZvcm0tc3VibWl0PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9hcmlsLWZvcm0+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,15 +1,41 @@
1
- import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
- import { TagModule } from 'primeng/tag';
1
+ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Output, input } from '@angular/core';
3
+ import { TreeSelectModule } from 'primeng/treeselect';
3
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "primeng/treeselect";
6
+ import * as i2 from "@angular/forms";
4
7
  export class TreeSelectComponent {
5
8
  constructor() {
6
- this.dataSource = input();
9
+ this.options = input.required();
10
+ this.modelValue = input(null);
11
+ this.placeholder = input('Select');
12
+ this.selectionMode = input('checkbox');
13
+ this.display = input('chip');
14
+ this.showClear = input(true);
15
+ this.filter = input(false);
16
+ this.filterPlaceholder = input('Filter');
17
+ this.propagateSelectionUp = input(true);
18
+ this.propagateSelectionDown = input(true);
19
+ this.metaKeySelection = input(false);
20
+ this.formControlName = input(null);
21
+ this.modelValueChange = new EventEmitter();
22
+ this.nodeSelect = new EventEmitter();
23
+ this.nodeUnselect = new EventEmitter();
24
+ this.cleared = new EventEmitter();
7
25
  }
8
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TreeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: TreeSelectComponent, isStandalone: true, selector: "aril-treeSelect", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "", dependencies: [{ kind: "ngmodule", type: TagModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: TreeSelectComponent, isStandalone: true, selector: "aril-treeSelect", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, modelValue: { classPropertyName: "modelValue", publicName: "modelValue", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, propagateSelectionUp: { classPropertyName: "propagateSelectionUp", publicName: "propagateSelectionUp", isSignal: true, isRequired: false, transformFunction: null }, propagateSelectionDown: { classPropertyName: "propagateSelectionDown", publicName: "propagateSelectionDown", isSignal: true, isRequired: false, transformFunction: null }, metaKeySelection: { classPropertyName: "metaKeySelection", publicName: "metaKeySelection", isSignal: true, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { modelValueChange: "modelValueChange", nodeSelect: "nodeSelect", nodeUnselect: "nodeUnselect", cleared: "cleared" }, ngImport: i0, template: "<p-treeSelect\r\n class=\"w-full\"\r\n [options]=\"options()\"\r\n [placeholder]=\"placeholder()\"\r\n [showClear]=\"showClear()\"\r\n [display]=\"display()\"\r\n [selectionMode]=\"selectionMode()\"\r\n [propagateSelectionUp]=\"propagateSelectionUp()\"\r\n [propagateSelectionDown]=\"propagateSelectionDown()\"\r\n [metaKeySelection]=\"metaKeySelection()\"\r\n [filter]=\"filter()\"\r\n [filterPlaceholder]=\"filterPlaceholder()\"\r\n [ngModel]=\"modelValue()\"\r\n (ngModelChange)=\"modelValueChange.emit($event)\"\r\n (onNodeSelect)=\"nodeSelect.emit($event)\"\r\n (onNodeUnselect)=\"nodeUnselect.emit($event)\"\r\n (onClear)=\"cleared.emit()\"\r\n></p-treeSelect>\r\n", styles: [":host ::ng-deep .p-treenode-content.p-highlight{background:transparent!important}:host ::ng-deep .p-treenode-content.p-highlight .p-treenode-label{color:#000!important}\n"], dependencies: [{ kind: "ngmodule", type: TreeSelectModule }, { kind: "component", type: i1.TreeSelect, selector: "p-treeSelect", inputs: ["inputId", "scrollHeight", "disabled", "metaKeySelection", "variant", "display", "selectionMode", "tabindex", "ariaLabel", "ariaLabelledBy", "placeholder", "panelClass", "panelStyle", "panelStyleClass", "containerStyle", "containerStyleClass", "labelStyle", "labelStyleClass", "overlayOptions", "emptyMessage", "appendTo", "filter", "filterBy", "filterMode", "filterPlaceholder", "filterLocale", "filterInputAutoFocus", "propagateSelectionDown", "propagateSelectionUp", "showClear", "resetFilterOnHide", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "autofocus", "options", "showTransitionOptions", "hideTransitionOptions", "loading"], outputs: ["onNodeExpand", "onNodeCollapse", "onShow", "onHide", "onClear", "onFilter", "onFocus", "onBlur", "onNodeUnselect", "onNodeSelect"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
28
  }
11
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TreeSelectComponent, decorators: [{
12
30
  type: Component,
13
- args: [{ standalone: true, selector: 'aril-treeSelect', imports: [TagModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "" }]
14
- }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZVNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3RyZWVTZWxlY3Qvc3JjL3RyZWVTZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90cmVlU2VsZWN0L3NyYy90cmVlU2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBV3hDLE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFRQyxlQUFVLEdBQUcsS0FBSyxFQUFVLENBQUM7S0FDN0I7OEdBRlksbUJBQW1CO2tHQUFuQixtQkFBbUIsOE5DYmhDLEVBQUEsMkNEVVcsU0FBUzs7MkZBR1AsbUJBQW1CO2tCQVAvQixTQUFTO2lDQUNHLElBQUksWUFDTixpQkFBaUIsV0FFbEIsQ0FBQyxTQUFTLENBQUMsbUJBQ0gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBUYWdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhZyc7XHJcblxyXG50eXBlIFNldmVyaXR5ID0gJ3N1Y2Nlc3MnIHwgJ3NlY29uZGFyeScgfCAnaW5mbycgfCAnd2FybmluZycgfCAnZGFuZ2VyJyB8ICdjb250cmFzdCcgfCB1bmRlZmluZWQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC10cmVlU2VsZWN0JyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vdHJlZVNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcblx0aW1wb3J0czogW1RhZ01vZHVsZV0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVTZWxlY3RDb21wb25lbnQge1xyXG5cdGRhdGFTb3VyY2UgPSBpbnB1dDxzdHJpbmc+KCk7XHJcbn1cclxuIiwiIl19
31
+ args: [{ standalone: true, selector: 'aril-treeSelect', imports: [TreeSelectModule, ReactiveFormsModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-treeSelect\r\n class=\"w-full\"\r\n [options]=\"options()\"\r\n [placeholder]=\"placeholder()\"\r\n [showClear]=\"showClear()\"\r\n [display]=\"display()\"\r\n [selectionMode]=\"selectionMode()\"\r\n [propagateSelectionUp]=\"propagateSelectionUp()\"\r\n [propagateSelectionDown]=\"propagateSelectionDown()\"\r\n [metaKeySelection]=\"metaKeySelection()\"\r\n [filter]=\"filter()\"\r\n [filterPlaceholder]=\"filterPlaceholder()\"\r\n [ngModel]=\"modelValue()\"\r\n (ngModelChange)=\"modelValueChange.emit($event)\"\r\n (onNodeSelect)=\"nodeSelect.emit($event)\"\r\n (onNodeUnselect)=\"nodeUnselect.emit($event)\"\r\n (onClear)=\"cleared.emit()\"\r\n></p-treeSelect>\r\n", styles: [":host ::ng-deep .p-treenode-content.p-highlight{background:transparent!important}:host ::ng-deep .p-treenode-content.p-highlight .p-treenode-label{color:#000!important}\n"] }]
32
+ }], propDecorators: { modelValueChange: [{
33
+ type: Output
34
+ }], nodeSelect: [{
35
+ type: Output
36
+ }], nodeUnselect: [{
37
+ type: Output
38
+ }], cleared: [{
39
+ type: Output
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZVNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3RyZWVTZWxlY3Qvc3JjL3RyZWVTZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90cmVlU2VsZWN0L3NyYy90cmVlU2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBb0J0RCxNQUFNLE9BQU8sbUJBQW1CO0lBbEJoQztRQW1CRSxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYyxDQUFDO1FBQ3ZDLGVBQVUsR0FBRyxLQUFLLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxLQUFLLENBQVMsUUFBUSxDQUFDLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxLQUFLLENBQXFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RFLFlBQU8sR0FBRyxLQUFLLENBQW1CLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLGNBQVMsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMvQixzQkFBaUIsR0FBRyxLQUFLLENBQVMsUUFBUSxDQUFDLENBQUM7UUFDNUMseUJBQW9CLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzVDLDJCQUFzQixHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDekMsb0JBQWUsR0FBRyxLQUFLLENBQXlCLElBQUksQ0FBQyxDQUFDO1FBRTVDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBQzlDOzhHQWxCWSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw0NERDeEJoQyxnckJBa0JBLG1PRFJZLGdCQUFnQiw0NEJBQUUsbUJBQW1CLHNJQUFFLFdBQVc7OzJGQWNqRCxtQkFBbUI7a0JBbEIvQixTQUFTO2lDQUNJLElBQUksWUFDTixpQkFBaUIsV0FFbEIsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUMsbUJBQzVDLHVCQUF1QixDQUFDLE1BQU07OEJBMkJyQyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVHJlZVNlbGVjdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdHJlZXNlbGVjdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnYXJpbC10cmVlU2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZVNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgaW1wb3J0czogW1RyZWVTZWxlY3RNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuXHRzdHlsZXM6IFtcclxuXHRcdGBcclxuXHRcdFx0Omhvc3QgOjpuZy1kZWVwIC5wLXRyZWVub2RlLWNvbnRlbnQucC1oaWdobGlnaHQge1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdDpob3N0IDo6bmctZGVlcCAucC10cmVlbm9kZS1jb250ZW50LnAtaGlnaGxpZ2h0IC5wLXRyZWVub2RlLWxhYmVsIHtcclxuXHRcdFx0XHRjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xyXG5cdFx0XHR9XHJcblx0XHRgXHJcblx0XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZVNlbGVjdENvbXBvbmVudCB7XHJcbiAgb3B0aW9ucyA9IGlucHV0LnJlcXVpcmVkPFRyZWVOb2RlW10+KCk7XHJcbiAgbW9kZWxWYWx1ZSA9IGlucHV0PGFueT4obnVsbCk7XHJcbiAgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCdTZWxlY3QnKTtcclxuICBzZWxlY3Rpb25Nb2RlID0gaW5wdXQ8J3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgJ2NoZWNrYm94Jz4oJ2NoZWNrYm94Jyk7XHJcbiAgZGlzcGxheSA9IGlucHV0PCdjb21tYScgfCAnY2hpcCc+KCdjaGlwJyk7XHJcbiAgc2hvd0NsZWFyID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgZmlsdGVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGZpbHRlclBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignRmlsdGVyJyk7XHJcbiAgcHJvcGFnYXRlU2VsZWN0aW9uVXAgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBwcm9wYWdhdGVTZWxlY3Rpb25Eb3duID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgbWV0YUtleVNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBmb3JtQ29udHJvbE5hbWUgPSBpbnB1dDxzdHJpbmcgfCBudW1iZXIgfCBudWxsPihudWxsKTtcclxuXHJcbiAgQE91dHB1dCgpIG1vZGVsVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgbm9kZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBub2RlVW5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgY2xlYXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxufVxyXG4iLCI8cC10cmVlU2VsZWN0XHJcbiAgY2xhc3M9XCJ3LWZ1bGxcIlxyXG4gIFtvcHRpb25zXT1cIm9wdGlvbnMoKVwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxyXG4gIFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyKClcIlxyXG4gIFtkaXNwbGF5XT1cImRpc3BsYXkoKVwiXHJcbiAgW3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZSgpXCJcclxuICBbcHJvcGFnYXRlU2VsZWN0aW9uVXBdPVwicHJvcGFnYXRlU2VsZWN0aW9uVXAoKVwiXHJcbiAgW3Byb3BhZ2F0ZVNlbGVjdGlvbkRvd25dPVwicHJvcGFnYXRlU2VsZWN0aW9uRG93bigpXCJcclxuICBbbWV0YUtleVNlbGVjdGlvbl09XCJtZXRhS2V5U2VsZWN0aW9uKClcIlxyXG4gIFtmaWx0ZXJdPVwiZmlsdGVyKClcIlxyXG4gIFtmaWx0ZXJQbGFjZWhvbGRlcl09XCJmaWx0ZXJQbGFjZWhvbGRlcigpXCJcclxuICBbbmdNb2RlbF09XCJtb2RlbFZhbHVlKClcIlxyXG4gIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGVsVmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAob25Ob2RlU2VsZWN0KT1cIm5vZGVTZWxlY3QuZW1pdCgkZXZlbnQpXCJcclxuICAob25Ob2RlVW5zZWxlY3QpPVwibm9kZVVuc2VsZWN0LmVtaXQoJGV2ZW50KVwiXHJcbiAgKG9uQ2xlYXIpPVwiY2xlYXJlZC5lbWl0KClcIlxyXG4+PC9wLXRyZWVTZWxlY3Q+XHJcbiJdfQ==