@ruc-lib/metaform 2.2.2 → 3.1.1

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.
package/README.md CHANGED
@@ -17,6 +17,17 @@ If users only need the metaform component, they can install it separately:
17
17
 
18
18
  `npm install @ruc-lib/metaform`
19
19
 
20
+
21
+ # Version Compatibility
22
+
23
+ Please ensure you install the correct version of `@ruc-lib/metaform` based on your Angular version.
24
+
25
+ | Angular Version | Compatible `@ruc-lib/metaform` Version |
26
+ |--------------------|--------------------------------------------|
27
+ | 15.x.x | `npm install @ruc-lib/metaform@^3.0.0` |
28
+ | 16.x.x | `npm install @ruc-lib/metaform@^3.0.0` |
29
+
30
+
20
31
  ## Usage
21
32
 
22
33
  To use the metaform component in your project, follow the integration guidelines provided in the documentation. Customize the metaform as per your requirements by adjusting the configuration options mentioned below.
@@ -126,6 +137,23 @@ export interface groupOptions{
126
137
  }
127
138
  ```
128
139
 
140
+ > ⚠️ **IMPORTANT: Custom Theme Usage in Angular Material**
141
+
142
+ When implementing **custom themes**, such as:
143
+
144
+ ```scss
145
+ .custom-theme-1 {
146
+ @include angular-material-theme($custom-theme);
147
+ }
148
+
149
+ // You must also include the typography mixin to ensure text styles are applied correctly as shown below:
150
+ .custom-theme-1 {
151
+ @include angular-material-theme($custom-theme);
152
+ @include mat.typography-level($theme-custom-typography-name, body-1);
153
+ }
154
+ ```
155
+
156
+
129
157
  ## Contribution
130
158
 
131
159
  Contributions are welcome! Feel free to open issues or pull requests for any enhancements or fixes.
@@ -83,10 +83,10 @@ export class RuclibMetaformComponent {
83
83
  }
84
84
  }
85
85
  RuclibMetaformComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibMetaformComponent, deps: [{ token: i1.RucMetaFormService }], target: i0.ɵɵFactoryTarget.Component });
86
- RuclibMetaformComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RuclibMetaformComponent, selector: "uxp-ruclib-metaform", inputs: { rucInputData: "rucInputData", childForm: "childForm", customTheme: "customTheme", isChild: "isChild", selectedParentId: "selectedParentId" }, outputs: { rucEvent: "rucEvent", childRucEvent: "childRucEvent" }, ngImport: i0, template: "<form novalidate>\r\n <ng-container *ngFor=\"let dynamicField of formData; let j = index;\" [ngSwitch]=\"dynamicField?.fieldType\">\r\n <div [ngStyle] = \"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\" [ngClass]=\"dynamicField.sameRow === true ? 'margin-5 column-in-same-row' : 'margin-5 column-in-new-row'\" \r\n *ngIf=\"dynamicField.formType != 'stepper'\">\r\n \r\n <ng-template [ngSwitchCase]=\"'input'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.hasDependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId)\">\r\n <ruc-meta-inputs [customTheme] = \"customTheme\" [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-inputs>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'radio'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-radio-group [customTheme] = \"customTheme\" [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-radio-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'checkbox'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-checkbox-group [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-checkbox-group>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'select'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-select [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-select>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'textarea'\">\r\n <ruc-text-area [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-text-area>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'rucMultiSelect'\">\r\n <uxp-ruclib-multi-select [rucInputData]=\"dynamicField?.rucMultiselectInput?.rucInputData\"\r\n [dataSource]=\"dynamicField?.rucMultiselectInput?.dataSource\" [customTheme]=\"customTheme\"\r\n (rucEvent)=\"passEvent($event)\"></uxp-ruclib-multi-select>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'rucMultiFileUpload'\">\r\n <uxp-ruclib-multi-file-upload\r\n [rucInputData]=\"dynamicField?.rucMultiFileUploadInput?.rucInputData\" [customTheme]=\"customTheme\"\r\n (rucEvent)=\"passEvent($event,dynamicField)\"></uxp-ruclib-multi-file-upload>\r\n </ng-template>\r\n <div *ngIf=\"dynamicField.hasDependentFields && dynamicField.value\">\r\n <uxp-ruclib-metaform #dynamicField.id [rucInputData]=\"formData\" [childForm] =\"dynamicField.dependentFields\"\r\n [isChild]=\"true\" [selectedParentId] = \"dynamicField.selectedParentId\" (rucEvent)=\"passEvent($event,dynamicField.id)\"></uxp-ruclib-metaform>\r\n </div>\r\n \r\n </div>\r\n <div *ngIf=\"dynamicField.formType == 'stepper'\">\r\n <mat-stepper linear #stepper>\r\n <div *ngFor=\"let stapperField of dynamicField.stepper; let s = index;\" [ngSwitch]=\"stapperField?.fieldType\">\r\n <mat-step [stepControl]=\"stapperField.stepControl\" *ngIf=\"stapperField.stepControl != 'done'\">\r\n <ng-template matStepLabel>{{stapperField.stepperlabel}}</ng-template>\r\n <ng-container *ngFor=\"let stepperFormData of stapperField.stepperFormData; let j = index;\" [ngSwitch]=\"stepperFormData?.fieldType\">\r\n <div [ngStyle] = \"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\" [ngClass]=\"dynamicField.sameRow === true ? 'margin-5 column-in-same-row' : 'margin-5 column-in-new-row'\" \r\n >\r\n <ng-template [ngSwitchCase]=\"'input'\">\r\n <div>\r\n <ruc-meta-inputs [customTheme] = \"customTheme\" [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-inputs>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'textarea'\">\r\n <ruc-text-area [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-text-area>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'radio'\">\r\n <div>\r\n <ruc-meta-radio-group [customTheme] = \"customTheme\" [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-radio-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'checkbox'\">\r\n <div >\r\n <ruc-meta-checkbox-group [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-checkbox-group>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'select'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-select [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-select>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <div>\r\n <button mat-button matStepperPrevious *ngIf=\"s > 0\">Back</button>\r\n <button mat-button matStepperNext *ngIf=\"s< dynamicField.stepper.length\">Next</button>\r\n </div>\r\n </mat-step>\r\n <mat-step *ngIf=\"stapperField.stepControl == 'done'\">\r\n <ng-template matStepLabel>{{stapperField.stepControl}}</ng-template>\r\n <p>{{stapperField.stepperlabel}}</p>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button (click)=\"stepper.reset()\">Reset</button>\r\n </div>\r\n </mat-step>\r\n </div>\r\n </mat-stepper>\r\n </div>\r\n </ng-container>\r\n <ng-container>\r\n <button mat-raised-button color=\"primary\" (click)=\"clearForm()\" *ngIf=\"!isChild\">Clear Form</button>\r\n </ng-container>\r\n \r\n</form>", styles: [".form-error{color:red}.column-in-same-row{float:left}.column-in-new-row{clear:left}.margin-5{margin:1%}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i5.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i5.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i5.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i5.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "component", type: i6.RuclibMultiSelectComponent, selector: "uxp-ruclib-multi-select", inputs: ["rucInputData", "customTheme", "dataSource"], outputs: ["rucEvent"] }, { kind: "component", type: i7.RuclibMultiFileUploadComponent, selector: "uxp-ruclib-multi-file-upload", inputs: ["rucInputData", "customTheme"], outputs: ["rucEvent"] }, { kind: "component", type: RuclibMetaformComponent, selector: "uxp-ruclib-metaform", inputs: ["rucInputData", "childForm", "customTheme", "isChild", "selectedParentId"], outputs: ["rucEvent", "childRucEvent"] }, { kind: "component", type: i8.RucMetaInputsComponent, selector: "ruc-meta-inputs", inputs: ["rucInputData", "selectedParentId", "customTheme"], outputs: ["transferUserInput"] }, { kind: "component", type: i9.RucMetaRadioGroupComponent, selector: "ruc-meta-radio-group", inputs: ["rucInputData", "customTheme"], outputs: ["transferUserInput"] }, { kind: "component", type: i10.RucMetaCheckboxGroupComponent, selector: "ruc-meta-checkbox-group", inputs: ["rucInputData"], outputs: ["transferUserInput"] }, { kind: "component", type: i11.RucMetaSelectComponent, selector: "ruc-meta-select", inputs: ["rucInputData"], outputs: ["transferUserInput"] }, { kind: "component", type: i12.RucTextAreaComponent, selector: "ruc-text-area", inputs: ["rucInputData", "customTheme"], outputs: ["transferUserInput"] }] });
86
+ RuclibMetaformComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RuclibMetaformComponent, selector: "uxp-ruclib-metaform", inputs: { rucInputData: "rucInputData", childForm: "childForm", customTheme: "customTheme", isChild: "isChild", selectedParentId: "selectedParentId" }, outputs: { rucEvent: "rucEvent", childRucEvent: "childRucEvent" }, ngImport: i0, template: "<form novalidate>\r\n\r\n <ng-container *ngFor=\"let dynamicField of formData; let j = index;\" [ngSwitch]=\"dynamicField?.fieldType\">\r\n <div [ngStyle] = \"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\" [ngClass]=\"dynamicField.sameRow === true ? 'margin-5 column-in-same-row main' : 'margin-5 column-in-new-row main'\" \r\n *ngIf=\"dynamicField.formType != 'stepper'\">\r\n \r\n <ng-template [ngSwitchCase]=\"'input'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.hasDependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId)\">\r\n <ruc-meta-inputs [customTheme] = \"customTheme\" [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-inputs>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'radio'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-radio-group [customTheme] = \"customTheme\" [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-radio-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'checkbox'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-checkbox-group [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-checkbox-group>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'select'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-select [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-select>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'textarea'\">\r\n <ruc-text-area [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-text-area>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'rucMultiSelect'\">\r\n <uxp-ruclib-multi-select [rucInputData]=\"dynamicField?.rucMultiselectInput?.rucInputData\"\r\n [dataSource]=\"dynamicField?.rucMultiselectInput?.dataSource\" [customTheme]=\"customTheme\"\r\n (rucEvent)=\"passEvent($event)\"></uxp-ruclib-multi-select>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'rucMultiFileUpload'\">\r\n <uxp-ruclib-multi-file-upload\r\n [rucInputData]=\"dynamicField?.rucMultiFileUploadInput?.rucInputData\" [customTheme]=\"customTheme\"\r\n (rucEvent)=\"passEvent($event,dynamicField)\"></uxp-ruclib-multi-file-upload>\r\n </ng-template>\r\n <div *ngIf=\"dynamicField.hasDependentFields && dynamicField.value\">\r\n <uxp-ruclib-metaform #dynamicField.id [rucInputData]=\"formData\" [childForm] =\"dynamicField.dependentFields\"\r\n [isChild]=\"true\" [selectedParentId] = \"dynamicField.selectedParentId\" (rucEvent)=\"passEvent($event,dynamicField.id)\"></uxp-ruclib-metaform>\r\n </div>\r\n \r\n </div>\r\n <div *ngIf=\"dynamicField.formType == 'stepper'\">\r\n <mat-stepper linear #stepper>\r\n <div *ngFor=\"let stapperField of dynamicField.stepper; let s = index;\" [ngSwitch]=\"stapperField?.fieldType\">\r\n <mat-step [stepControl]=\"stapperField.stepControl\" *ngIf=\"stapperField.stepControl != 'done'\">\r\n <ng-template matStepLabel>{{stapperField.stepperlabel}}</ng-template>\r\n <ng-container *ngFor=\"let stepperFormData of stapperField.stepperFormData; let j = index;\" [ngSwitch]=\"stepperFormData?.fieldType\">\r\n <div [ngStyle] = \"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\" [ngClass]=\"dynamicField.sameRow === true ? 'margin-5 column-in-same-row main' : 'margin-5 column-in-new-row main'\" \r\n >\r\n <ng-template [ngSwitchCase]=\"'input'\">\r\n <div>\r\n <ruc-meta-inputs [customTheme] = \"customTheme\" [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-inputs>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'textarea'\">\r\n <ruc-text-area [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-text-area>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'radio'\">\r\n <div>\r\n <ruc-meta-radio-group [customTheme] = \"customTheme\" [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-radio-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'checkbox'\">\r\n <div >\r\n <ruc-meta-checkbox-group [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-checkbox-group>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'select'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-select [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-select>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <div>\r\n <button mat-button matStepperPrevious *ngIf=\"s > 0\">Back</button>\r\n <button mat-button matStepperNext *ngIf=\"s< dynamicField.stepper.length\">Next</button>\r\n </div>\r\n </mat-step>\r\n <mat-step *ngIf=\"stapperField.stepControl == 'done'\">\r\n <ng-template matStepLabel>{{stapperField.stepControl}}</ng-template>\r\n <p>{{stapperField.stepperlabel}}</p>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button (click)=\"stepper.reset()\">Reset</button>\r\n </div>\r\n </mat-step>\r\n </div>\r\n </mat-stepper>\r\n </div>\r\n </ng-container>\r\n <ng-container>\r\n <button mat-raised-button color=\"primary\" (click)=\"clearForm()\" *ngIf=\"!isChild\">Clear Form</button>\r\n </ng-container>\r\n \r\n</form>", styles: [".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.main{font-size:16px;font-weight:400;line-height:24px;font-family:Roboto,sans-serif;letter-spacing:.03125em}.ruc-custom-theme{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-option{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal)}.ruc-custom-theme .mat-mdc-card-title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-headline6-font-size, 20px);line-height:var(--mdc-typography-headline6-line-height, 32px);font-weight:var(--mdc-typography-headline6-font-weight, 500);letter-spacing:var(--mdc-typography-headline6-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-transform:var(--mdc-typography-headline6-text-transform, none)}.ruc-custom-theme .mat-mdc-card-subtitle{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-mdc-tooltip{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-form-field-infix{min-height:56px}.ruc-custom-theme .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:28px}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -34.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:24px;padding-bottom:8px}.ruc-custom-theme .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mdc-text-field__input,.ruc-custom-theme .mdc-text-field__affix{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mdc-text-field--textarea .mdc-text-field__input{line-height:1.5rem}.ruc-custom-theme .mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field-subscript-wrapper,.ruc-custom-theme .mat-mdc-form-field-bottom-align:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field,.ruc-custom-theme .mat-mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(15px * var(--mat-mdc-form-field-floating-label-scale, .75))}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:15px}.ruc-custom-theme .mat-mdc-select-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-select{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-autocomplete-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-dialog-container{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: normal;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 15px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-chip{height:32px}.ruc-custom-theme .mat-mdc-standard-chip{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-slide-toggle{--mdc-switch-state-layer-size: 48px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio{padding:10px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__background:before{top:-10px;left:-10px;width:40px;height:40px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:0;right:0;left:0;width:40px;height:40px}.ruc-custom-theme .mat-mdc-slider{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 20px;--mdc-slider-label-label-text-line-height: 24px;--mdc-slider-label-label-text-tracking: normal;--mdc-slider-label-label-text-weight: 500}.ruc-custom-theme .mat-mdc-menu-content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-menu-content,.ruc-custom-theme .mat-mdc-menu-content .mat-mdc-menu-item .mdc-list-item__primary-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 15px;--mdc-list-list-item-label-text-tracking: normal;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: normal;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: normal;--mdc-list-list-item-trailing-supporting-text-weight: 400}.ruc-custom-theme .mdc-list-group__subheader{font-size:16px;font-weight:400;line-height:28px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-form-field-infix{min-height:40px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:20px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -26.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-floating-label{display:none}.ruc-custom-theme .mat-mdc-paginator-container{min-height:56px}.ruc-custom-theme .mat-mdc-paginator{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-select-value{font-size:12px}.ruc-custom-theme .mat-mdc-tab-header .mdc-tab{height:48px}.ruc-custom-theme .mdc-tab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox{padding:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);margin:calc((var(--mdc-checkbox-touch-target-size, 40px) - 40px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);left:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control{top:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);right:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);left:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);width:var(--mdc-checkbox-touch-target-size, 40px);height:var(--mdc-checkbox-touch-target-size, 40px)}@media all and (-ms-high-contrast: none){.ruc-custom-theme .mdc-checkbox .mdc-checkbox__focus-ring{display:none}}.ruc-custom-theme .mdc-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-raised-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-unelevated-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-outlined-button.mat-mdc-button-base{height:36px}.ruc-custom-theme .mdc-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base{width:48px;height:48px;padding:12px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:48px;max-width:48px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:4px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%,-50%)}.ruc-custom-theme .mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-snack-bar-container{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}.ruc-custom-theme .mat-mdc-table .mdc-data-table__row{height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__pagination{min-height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__header-row{height:56px}.ruc-custom-theme .mdc-data-table__content,.ruc-custom-theme .mdc-data-table__cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mdc-data-table__header-cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-badge{position:relative}.ruc-custom-theme .mat-badge.mat-badge{overflow:visible}.ruc-custom-theme .mat-badge-hidden .mat-badge-content{display:none}.ruc-custom-theme .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.ruc-custom-theme .ng-animate-disabled .mat-badge-content,.ruc-custom-theme .mat-badge-content._mat-animation-noopable{transition:none}.ruc-custom-theme .mat-badge-content.mat-badge-active{transform:none}.ruc-custom-theme .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.ruc-custom-theme .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.ruc-custom-theme .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.ruc-custom-theme .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.ruc-custom-theme .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.ruc-custom-theme .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.ruc-custom-theme .mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,sans-serif}.ruc-custom-theme .mat-badge-small .mat-badge-content{font-size:9px}.ruc-custom-theme .mat-badge-large .mat-badge-content{font-size:24px}.ruc-custom-theme .mat-bottom-sheet-container{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.ruc-custom-theme .mat-button-toggle{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{width:40px;height:40px;padding:8px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:0}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:40px;left:50%;width:40px;transform:translate(-50%,-50%)}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mat-mdc-button-touch-target{display:none}.ruc-custom-theme .mat-calendar{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-body{font-size:13px}.ruc-custom-theme .mat-calendar-body-label,.ruc-custom-theme .mat-calendar-period-button{font-size:20px;font-weight:500}.ruc-custom-theme .mat-calendar-table-header th{font-size:11px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-header{height:48px}.ruc-custom-theme .mat-expansion-panel-header.mat-expanded{height:64px}.ruc-custom-theme .mat-expansion-panel-header{font-family:Roboto,sans-serif;font-size:15px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-content{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-grid-tile-header,.ruc-custom-theme .mat-grid-tile-footer{font-size:14px}.ruc-custom-theme .mat-grid-tile-header .mat-line,.ruc-custom-theme .mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.ruc-custom-theme .mat-grid-tile-header .mat-line:nth-child(n+2),.ruc-custom-theme .mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}.ruc-custom-theme .mat-horizontal-stepper-header{height:72px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.ruc-custom-theme .mat-vertical-stepper-header{padding:24px}.ruc-custom-theme .mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before{top:36px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.ruc-custom-theme .mat-stepper-vertical,.ruc-custom-theme .mat-stepper-horizontal{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-step-label{font-size:14px;font-weight:400}.ruc-custom-theme .mat-step-sub-label-error{font-weight:400}.ruc-custom-theme .mat-step-label-error{font-size:20px}.ruc-custom-theme .mat-step-label-selected{font-size:20px;font-weight:500}.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:64px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:64px}@media (max-width: 599px){.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:56px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:56px}}.ruc-custom-theme .mat-toolbar,.ruc-custom-theme .mat-toolbar h1,.ruc-custom-theme .mat-toolbar h2,.ruc-custom-theme .mat-toolbar h3,.ruc-custom-theme .mat-toolbar h4,.ruc-custom-theme .mat-toolbar h5,.ruc-custom-theme .mat-toolbar h6{font-size:20px;font-weight:500;line-height:32px;font-family:Roboto,sans-serif;letter-spacing:normal;margin:0}.ruc-custom-theme .mat-tree-node{min-height:48px}.ruc-custom-theme .mat-tree{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-tree-node,.ruc-custom-theme .mat-nested-tree-node{font-weight:400;font-size:14px}.form-error{color:red}.column-in-same-row{float:left}.column-in-new-row{clear:left}.margin-5{margin:1%}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i5.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i5.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i5.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i5.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "component", type: i6.RuclibMultiSelectComponent, selector: "uxp-ruclib-multi-select", inputs: ["rucInputData", "customTheme", "dataSource"], outputs: ["rucEvent"] }, { kind: "component", type: i7.RuclibMultiFileUploadComponent, selector: "uxp-ruclib-multi-file-upload", inputs: ["rucInputData", "customTheme"], outputs: ["rucEvent"] }, { kind: "component", type: RuclibMetaformComponent, selector: "uxp-ruclib-metaform", inputs: ["rucInputData", "childForm", "customTheme", "isChild", "selectedParentId"], outputs: ["rucEvent", "childRucEvent"] }, { kind: "component", type: i8.RucMetaInputsComponent, selector: "ruc-meta-inputs", inputs: ["rucInputData", "selectedParentId", "customTheme"], outputs: ["transferUserInput"] }, { kind: "component", type: i9.RucMetaRadioGroupComponent, selector: "ruc-meta-radio-group", inputs: ["rucInputData", "customTheme"], outputs: ["transferUserInput"] }, { kind: "component", type: i10.RucMetaCheckboxGroupComponent, selector: "ruc-meta-checkbox-group", inputs: ["rucInputData"], outputs: ["transferUserInput"] }, { kind: "component", type: i11.RucMetaSelectComponent, selector: "ruc-meta-select", inputs: ["rucInputData"], outputs: ["transferUserInput"] }, { kind: "component", type: i12.RucTextAreaComponent, selector: "ruc-text-area", inputs: ["rucInputData", "customTheme"], outputs: ["transferUserInput"] }] });
87
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuclibMetaformComponent, decorators: [{
88
88
  type: Component,
89
- args: [{ selector: 'uxp-ruclib-metaform', template: "<form novalidate>\r\n <ng-container *ngFor=\"let dynamicField of formData; let j = index;\" [ngSwitch]=\"dynamicField?.fieldType\">\r\n <div [ngStyle] = \"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\" [ngClass]=\"dynamicField.sameRow === true ? 'margin-5 column-in-same-row' : 'margin-5 column-in-new-row'\" \r\n *ngIf=\"dynamicField.formType != 'stepper'\">\r\n \r\n <ng-template [ngSwitchCase]=\"'input'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.hasDependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId)\">\r\n <ruc-meta-inputs [customTheme] = \"customTheme\" [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-inputs>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'radio'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-radio-group [customTheme] = \"customTheme\" [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-radio-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'checkbox'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-checkbox-group [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-checkbox-group>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'select'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-select [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-select>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'textarea'\">\r\n <ruc-text-area [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-text-area>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'rucMultiSelect'\">\r\n <uxp-ruclib-multi-select [rucInputData]=\"dynamicField?.rucMultiselectInput?.rucInputData\"\r\n [dataSource]=\"dynamicField?.rucMultiselectInput?.dataSource\" [customTheme]=\"customTheme\"\r\n (rucEvent)=\"passEvent($event)\"></uxp-ruclib-multi-select>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'rucMultiFileUpload'\">\r\n <uxp-ruclib-multi-file-upload\r\n [rucInputData]=\"dynamicField?.rucMultiFileUploadInput?.rucInputData\" [customTheme]=\"customTheme\"\r\n (rucEvent)=\"passEvent($event,dynamicField)\"></uxp-ruclib-multi-file-upload>\r\n </ng-template>\r\n <div *ngIf=\"dynamicField.hasDependentFields && dynamicField.value\">\r\n <uxp-ruclib-metaform #dynamicField.id [rucInputData]=\"formData\" [childForm] =\"dynamicField.dependentFields\"\r\n [isChild]=\"true\" [selectedParentId] = \"dynamicField.selectedParentId\" (rucEvent)=\"passEvent($event,dynamicField.id)\"></uxp-ruclib-metaform>\r\n </div>\r\n \r\n </div>\r\n <div *ngIf=\"dynamicField.formType == 'stepper'\">\r\n <mat-stepper linear #stepper>\r\n <div *ngFor=\"let stapperField of dynamicField.stepper; let s = index;\" [ngSwitch]=\"stapperField?.fieldType\">\r\n <mat-step [stepControl]=\"stapperField.stepControl\" *ngIf=\"stapperField.stepControl != 'done'\">\r\n <ng-template matStepLabel>{{stapperField.stepperlabel}}</ng-template>\r\n <ng-container *ngFor=\"let stepperFormData of stapperField.stepperFormData; let j = index;\" [ngSwitch]=\"stepperFormData?.fieldType\">\r\n <div [ngStyle] = \"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\" [ngClass]=\"dynamicField.sameRow === true ? 'margin-5 column-in-same-row' : 'margin-5 column-in-new-row'\" \r\n >\r\n <ng-template [ngSwitchCase]=\"'input'\">\r\n <div>\r\n <ruc-meta-inputs [customTheme] = \"customTheme\" [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-inputs>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'textarea'\">\r\n <ruc-text-area [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-text-area>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'radio'\">\r\n <div>\r\n <ruc-meta-radio-group [customTheme] = \"customTheme\" [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-radio-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'checkbox'\">\r\n <div >\r\n <ruc-meta-checkbox-group [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-checkbox-group>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'select'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-select [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-select>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <div>\r\n <button mat-button matStepperPrevious *ngIf=\"s > 0\">Back</button>\r\n <button mat-button matStepperNext *ngIf=\"s< dynamicField.stepper.length\">Next</button>\r\n </div>\r\n </mat-step>\r\n <mat-step *ngIf=\"stapperField.stepControl == 'done'\">\r\n <ng-template matStepLabel>{{stapperField.stepControl}}</ng-template>\r\n <p>{{stapperField.stepperlabel}}</p>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button (click)=\"stepper.reset()\">Reset</button>\r\n </div>\r\n </mat-step>\r\n </div>\r\n </mat-stepper>\r\n </div>\r\n </ng-container>\r\n <ng-container>\r\n <button mat-raised-button color=\"primary\" (click)=\"clearForm()\" *ngIf=\"!isChild\">Clear Form</button>\r\n </ng-container>\r\n \r\n</form>", styles: [".form-error{color:red}.column-in-same-row{float:left}.column-in-new-row{clear:left}.margin-5{margin:1%}\n"] }]
89
+ args: [{ selector: 'uxp-ruclib-metaform', template: "<form novalidate>\r\n\r\n <ng-container *ngFor=\"let dynamicField of formData; let j = index;\" [ngSwitch]=\"dynamicField?.fieldType\">\r\n <div [ngStyle] = \"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\" [ngClass]=\"dynamicField.sameRow === true ? 'margin-5 column-in-same-row main' : 'margin-5 column-in-new-row main'\" \r\n *ngIf=\"dynamicField.formType != 'stepper'\">\r\n \r\n <ng-template [ngSwitchCase]=\"'input'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.hasDependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId)\">\r\n <ruc-meta-inputs [customTheme] = \"customTheme\" [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-inputs>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'radio'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-radio-group [customTheme] = \"customTheme\" [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-radio-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'checkbox'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-checkbox-group [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-checkbox-group>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'select'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-select [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-select>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'textarea'\">\r\n <ruc-text-area [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-text-area>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'rucMultiSelect'\">\r\n <uxp-ruclib-multi-select [rucInputData]=\"dynamicField?.rucMultiselectInput?.rucInputData\"\r\n [dataSource]=\"dynamicField?.rucMultiselectInput?.dataSource\" [customTheme]=\"customTheme\"\r\n (rucEvent)=\"passEvent($event)\"></uxp-ruclib-multi-select>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'rucMultiFileUpload'\">\r\n <uxp-ruclib-multi-file-upload\r\n [rucInputData]=\"dynamicField?.rucMultiFileUploadInput?.rucInputData\" [customTheme]=\"customTheme\"\r\n (rucEvent)=\"passEvent($event,dynamicField)\"></uxp-ruclib-multi-file-upload>\r\n </ng-template>\r\n <div *ngIf=\"dynamicField.hasDependentFields && dynamicField.value\">\r\n <uxp-ruclib-metaform #dynamicField.id [rucInputData]=\"formData\" [childForm] =\"dynamicField.dependentFields\"\r\n [isChild]=\"true\" [selectedParentId] = \"dynamicField.selectedParentId\" (rucEvent)=\"passEvent($event,dynamicField.id)\"></uxp-ruclib-metaform>\r\n </div>\r\n \r\n </div>\r\n <div *ngIf=\"dynamicField.formType == 'stepper'\">\r\n <mat-stepper linear #stepper>\r\n <div *ngFor=\"let stapperField of dynamicField.stepper; let s = index;\" [ngSwitch]=\"stapperField?.fieldType\">\r\n <mat-step [stepControl]=\"stapperField.stepControl\" *ngIf=\"stapperField.stepControl != 'done'\">\r\n <ng-template matStepLabel>{{stapperField.stepperlabel}}</ng-template>\r\n <ng-container *ngFor=\"let stepperFormData of stapperField.stepperFormData; let j = index;\" [ngSwitch]=\"stepperFormData?.fieldType\">\r\n <div [ngStyle] = \"{ 'width.%': dynamicField.sameRowColumnWidth - 2 }\" [ngClass]=\"dynamicField.sameRow === true ? 'margin-5 column-in-same-row main' : 'margin-5 column-in-new-row main'\" \r\n >\r\n <ng-template [ngSwitchCase]=\"'input'\">\r\n <div>\r\n <ruc-meta-inputs [customTheme] = \"customTheme\" [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-inputs>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'textarea'\">\r\n <ruc-text-area [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-text-area>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'radio'\">\r\n <div>\r\n <ruc-meta-radio-group [customTheme] = \"customTheme\" [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-radio-group>\r\n </div>\r\n </ng-template>\r\n <ng-template [ngSwitchCase]=\"'checkbox'\">\r\n <div >\r\n <ruc-meta-checkbox-group [rucInputData]=\"stepperFormData\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-checkbox-group>\r\n </div>\r\n </ng-template>\r\n <ng-template class=\"\" [ngSwitchCase]=\"'select'\">\r\n <div *ngIf=\"(!selectedParentId && !dynamicField.dependentFields) || (selectedParentId && selectedParentId == dynamicField.dependentFieldParentId) || (!selectedParentId && dynamicField.dependentFields && !isChild)\">\r\n <ruc-meta-select [rucInputData]=\"dynamicField\" (transferUserInput)=\"getMetaFormData($event)\"></ruc-meta-select>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n <div>\r\n <button mat-button matStepperPrevious *ngIf=\"s > 0\">Back</button>\r\n <button mat-button matStepperNext *ngIf=\"s< dynamicField.stepper.length\">Next</button>\r\n </div>\r\n </mat-step>\r\n <mat-step *ngIf=\"stapperField.stepControl == 'done'\">\r\n <ng-template matStepLabel>{{stapperField.stepControl}}</ng-template>\r\n <p>{{stapperField.stepperlabel}}</p>\r\n <div>\r\n <button mat-button matStepperPrevious>Back</button>\r\n <button mat-button (click)=\"stepper.reset()\">Reset</button>\r\n </div>\r\n </mat-step>\r\n </div>\r\n </mat-stepper>\r\n </div>\r\n </ng-container>\r\n <ng-container>\r\n <button mat-raised-button color=\"primary\" (click)=\"clearForm()\" *ngIf=\"!isChild\">Clear Form</button>\r\n </ng-container>\r\n \r\n</form>", styles: [".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.main{font-size:16px;font-weight:400;line-height:24px;font-family:Roboto,sans-serif;letter-spacing:.03125em}.ruc-custom-theme{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-option{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal)}.ruc-custom-theme .mat-mdc-card-title{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-headline6-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-headline6-font-size, 20px);line-height:var(--mdc-typography-headline6-line-height, 32px);font-weight:var(--mdc-typography-headline6-font-weight, 500);letter-spacing:var(--mdc-typography-headline6-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-decoration:var(--mdc-typography-headline6-text-decoration, inherit);text-transform:var(--mdc-typography-headline6-text-transform, none)}.ruc-custom-theme .mat-mdc-card-subtitle{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-mdc-tooltip{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-form-field-infix{min-height:56px}.ruc-custom-theme .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:28px}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -34.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:24px;padding-bottom:8px}.ruc-custom-theme .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:16px;padding-bottom:16px}.ruc-custom-theme .mdc-text-field__input,.ruc-custom-theme .mdc-text-field__affix{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mdc-text-field--textarea .mdc-text-field__input{line-height:1.5rem}.ruc-custom-theme .mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field-subscript-wrapper,.ruc-custom-theme .mat-mdc-form-field-bottom-align:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field,.ruc-custom-theme .mat-mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(15px * var(--mat-mdc-form-field-floating-label-scale, .75))}.ruc-custom-theme .mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:15px}.ruc-custom-theme .mat-mdc-select-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-select{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-autocomplete-panel{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-dialog-container{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: normal;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 15px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: normal}.ruc-custom-theme .mat-mdc-chip{height:32px}.ruc-custom-theme .mat-mdc-standard-chip{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-slide-toggle{--mdc-switch-state-layer-size: 48px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio{padding:10px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__background:before{top:-10px;left:-10px;width:40px;height:40px}.ruc-custom-theme .mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:0;right:0;left:0;width:40px;height:40px}.ruc-custom-theme .mat-mdc-slider{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 20px;--mdc-slider-label-label-text-line-height: 24px;--mdc-slider-label-label-text-tracking: normal;--mdc-slider-label-label-text-weight: 500}.ruc-custom-theme .mat-mdc-menu-content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle1-font-size, 16px);line-height:var(--mdc-typography-subtitle1-line-height, 28px);font-weight:var(--mdc-typography-subtitle1-font-weight, 400);letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle1-text-transform, none);line-height:24px}.ruc-custom-theme .mat-mdc-menu-content,.ruc-custom-theme .mat-mdc-menu-content .mat-mdc-menu-item .mdc-list-item__primary-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body1-font-size, 15px);line-height:var(--mdc-typography-body1-line-height, 24px);font-weight:var(--mdc-typography-body1-font-weight, 400);letter-spacing:var(--mdc-typography-body1-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-decoration:var(--mdc-typography-body1-text-decoration, inherit);text-transform:var(--mdc-typography-body1-text-transform, none)}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.ruc-custom-theme .mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.ruc-custom-theme .mat-mdc-list-base{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 15px;--mdc-list-list-item-label-text-tracking: normal;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: normal;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: normal;--mdc-list-list-item-trailing-supporting-text-weight: 400}.ruc-custom-theme .mdc-list-group__subheader{font-size:16px;font-weight:400;line-height:28px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-form-field-infix{min-height:40px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:20px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY( -26.75px) scale(var(--mat-mdc-form-field-floating-label-scale, .75));transform:var(--mat-mdc-form-field-label-transform)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-floating-label{display:none}.ruc-custom-theme .mat-mdc-paginator-container{min-height:56px}.ruc-custom-theme .mat-mdc-paginator{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-caption-font-size, 12px);line-height:var(--mdc-typography-caption-line-height, 20px);font-weight:var(--mdc-typography-caption-font-weight, 400);letter-spacing:var(--mdc-typography-caption-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-decoration:var(--mdc-typography-caption-text-decoration, inherit);text-transform:var(--mdc-typography-caption-text-transform, none)}.ruc-custom-theme .mat-mdc-paginator .mat-mdc-select-value{font-size:12px}.ruc-custom-theme .mat-mdc-tab-header .mdc-tab{height:48px}.ruc-custom-theme .mdc-tab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox{padding:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);margin:calc((var(--mdc-checkbox-touch-target-size, 40px) - 40px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);left:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2)}.ruc-custom-theme .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control{top:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);right:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);left:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);width:var(--mdc-checkbox-touch-target-size, 40px);height:var(--mdc-checkbox-touch-target-size, 40px)}@media all and (-ms-high-contrast: none){.ruc-custom-theme .mdc-checkbox .mdc-checkbox__focus-ring{display:none}}.ruc-custom-theme .mdc-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mat-mdc-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-raised-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-unelevated-button.mat-mdc-button-base,.ruc-custom-theme .mat-mdc-outlined-button.mat-mdc-button-base{height:36px}.ruc-custom-theme .mdc-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base{width:48px;height:48px;padding:12px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:48px;max-width:48px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:4px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%,-50%)}.ruc-custom-theme .mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-button-font-size, 20px);line-height:var(--mdc-typography-button-line-height, 60px);font-weight:var(--mdc-typography-button-font-weight, 500);letter-spacing:var(--mdc-typography-button-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-button-text-decoration, none);text-decoration:var(--mdc-typography-button-text-decoration, none);text-transform:var(--mdc-typography-button-text-transform, none)}.ruc-custom-theme .mat-mdc-snack-bar-container{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}.ruc-custom-theme .mat-mdc-table .mdc-data-table__row{height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__pagination{min-height:52px}.ruc-custom-theme .mat-mdc-table .mdc-data-table__header-row{height:56px}.ruc-custom-theme .mdc-data-table__content,.ruc-custom-theme .mdc-data-table__cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-body2-font-size, 14px);line-height:var(--mdc-typography-body2-line-height, 20px);font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:var(--mdc-typography-body2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:var(--mdc-typography-body2-text-transform, none)}.ruc-custom-theme .mdc-data-table__header-cell{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-subtitle2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:var(--mdc-typography-subtitle2-font-size, 20px);line-height:var(--mdc-typography-subtitle2-line-height, 24px);font-weight:var(--mdc-typography-subtitle2-font-weight, 500);letter-spacing:var(--mdc-typography-subtitle2-letter-spacing, normal);-webkit-text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-decoration:var(--mdc-typography-subtitle2-text-decoration, inherit);text-transform:var(--mdc-typography-subtitle2-text-transform, none)}.ruc-custom-theme .mat-badge{position:relative}.ruc-custom-theme .mat-badge.mat-badge{overflow:visible}.ruc-custom-theme .mat-badge-hidden .mat-badge-content{display:none}.ruc-custom-theme .mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.ruc-custom-theme .ng-animate-disabled .mat-badge-content,.ruc-custom-theme .mat-badge-content._mat-animation-noopable{transition:none}.ruc-custom-theme .mat-badge-content.mat-badge-active{transform:none}.ruc-custom-theme .mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.ruc-custom-theme .mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .ruc-custom-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.ruc-custom-theme .mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.ruc-custom-theme .mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .ruc-custom-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.ruc-custom-theme .mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.ruc-custom-theme .mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .ruc-custom-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.ruc-custom-theme .mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,sans-serif}.ruc-custom-theme .mat-badge-small .mat-badge-content{font-size:9px}.ruc-custom-theme .mat-badge-large .mat-badge-content{font-size:24px}.ruc-custom-theme .mat-bottom-sheet-container{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.ruc-custom-theme .mat-button-toggle{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{width:40px;height:40px;padding:8px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin:0}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mdc-icon-button__touch{position:absolute;top:50%;height:40px;left:50%;width:40px;transform:translate(-50%,-50%)}.ruc-custom-theme .mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base .mat-mdc-button-touch-target{display:none}.ruc-custom-theme .mat-calendar{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-calendar-body{font-size:13px}.ruc-custom-theme .mat-calendar-body-label,.ruc-custom-theme .mat-calendar-period-button{font-size:20px;font-weight:500}.ruc-custom-theme .mat-calendar-table-header th{font-size:11px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-header{height:48px}.ruc-custom-theme .mat-expansion-panel-header.mat-expanded{height:64px}.ruc-custom-theme .mat-expansion-panel-header{font-family:Roboto,sans-serif;font-size:15px;font-weight:400}.ruc-custom-theme .mat-expansion-panel-content{font-size:14px;font-weight:400;line-height:20px;font-family:Roboto,sans-serif;letter-spacing:normal}.ruc-custom-theme .mat-grid-tile-header,.ruc-custom-theme .mat-grid-tile-footer{font-size:14px}.ruc-custom-theme .mat-grid-tile-header .mat-line,.ruc-custom-theme .mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.ruc-custom-theme .mat-grid-tile-header .mat-line:nth-child(n+2),.ruc-custom-theme .mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}.ruc-custom-theme .mat-horizontal-stepper-header{height:72px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.ruc-custom-theme .mat-vertical-stepper-header{padding:24px}.ruc-custom-theme .mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.ruc-custom-theme .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before{top:36px}.ruc-custom-theme .mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.ruc-custom-theme .mat-stepper-vertical,.ruc-custom-theme .mat-stepper-horizontal{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-step-label{font-size:14px;font-weight:400}.ruc-custom-theme .mat-step-sub-label-error{font-weight:400}.ruc-custom-theme .mat-step-label-error{font-size:20px}.ruc-custom-theme .mat-step-label-selected{font-size:20px;font-weight:500}.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:64px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:64px}@media (max-width: 599px){.ruc-custom-theme .mat-toolbar-multiple-rows{min-height:56px}.ruc-custom-theme .mat-toolbar-row,.ruc-custom-theme .mat-toolbar-single-row{height:56px}}.ruc-custom-theme .mat-toolbar,.ruc-custom-theme .mat-toolbar h1,.ruc-custom-theme .mat-toolbar h2,.ruc-custom-theme .mat-toolbar h3,.ruc-custom-theme .mat-toolbar h4,.ruc-custom-theme .mat-toolbar h5,.ruc-custom-theme .mat-toolbar h6{font-size:20px;font-weight:500;line-height:32px;font-family:Roboto,sans-serif;letter-spacing:normal;margin:0}.ruc-custom-theme .mat-tree-node{min-height:48px}.ruc-custom-theme .mat-tree{font-family:Roboto,sans-serif}.ruc-custom-theme .mat-tree-node,.ruc-custom-theme .mat-nested-tree-node{font-weight:400;font-size:14px}.form-error{color:red}.column-in-same-row{float:left}.column-in-new-row{clear:left}.margin-5{margin:1%}\n"] }]
90
90
  }], ctorParameters: function () { return [{ type: i1.RucMetaFormService }]; }, propDecorators: { rucEvent: [{
91
91
  type: Output
92
92
  }], childRucEvent: [{
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
102
102
  }], selectedParentId: [{
103
103
  type: Input
104
104
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjbGliLW1ldGFmb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcnVjbGliLW1ldGFmb3JtL3J1Y2xpYi1tZXRhZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL3J1Y2xpYi1tZXRhZm9ybS9ydWNsaWItbWV0YWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFVLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7QUFPekUsTUFBTSxPQUFPLHVCQUF1QjtJQVlsQyxZQUFtQixPQUEyQjtRQUEzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQVhwQyxhQUFRLEdBQUksSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNwQyxrQkFBYSxHQUFJLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsaUJBQVksR0FBcUIsRUFBRSxDQUFBO0lBU00sQ0FBQztJQUVuRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxDQUFDLDhCQUE4QixHQUFHO1lBQ3BDLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixLQUFLLEVBQUUsYUFBYTtZQUNwQixTQUFTLEVBQUUsYUFBYTtZQUN4QixTQUFTLEVBQUUsYUFBYTtTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsU0FBYyxFQUFFLFdBQWlCO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7UUFDckcsSUFBRyxTQUFTLEVBQUUsU0FBUyxJQUFJLGFBQWEsRUFBQztZQUN2QyxXQUFXLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDaEg7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN4SixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1IsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTthQUNsRSxTQUFTLENBQ1AsQ0FBQyxRQUFRLEVBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDNUMsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQWdCLEVBQUMsRUFBRTtZQUNwQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2hDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QztJQUNILENBQUM7O3FIQWhGVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixzUkNUcEMsdWxQQWtHTywyOEVEekZNLHVCQUF1Qjs0RkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjt5R0FLckIsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFTixXQUFXO3NCQURWLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01ldGFGb3JtQ29uZmlnfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL21ldGFGb3Jtc0RlZmF1bHQnO1xyXG5pbXBvcnQgeyBSdWNNZXRhRm9ybVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcnVjLW1ldGEtZm9ybS5zZXJ2aWNlXCJcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndXhwLXJ1Y2xpYi1tZXRhZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3J1Y2xpYi1tZXRhZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcnVjbGliLW1ldGFmb3JtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJ1Y2xpYk1ldGFmb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveXtcclxuICBAT3V0cHV0KCkgcnVjRXZlbnQgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNoaWxkUnVjRXZlbnQgID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KCkgcnVjSW5wdXREYXRhOiBNZXRhRm9ybUNvbmZpZ1tdID0gW11cclxuICBASW5wdXQoKSBjaGlsZEZvcm0/OiBNZXRhRm9ybUNvbmZpZ1tdXHJcbiAgQElucHV0KClcclxuICBjdXN0b21UaGVtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc0NoaWxkPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZWxlY3RlZFBhcmVudElkOiBhbnk7XHJcbiAgaW5wdXRPYmplY3REYXRhTXVsdGlGaWxlVXBsb2FkPzphbnk7XHJcbiAgbWV0YUZvcm1TdWJzY3JpYmVJbnB1dHM6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuICBmb3JtRGF0YTogYW55XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2U6IFJ1Y01ldGFGb3JtU2VydmljZSkgeyB9XHJcbiAgXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNDaGlsZCkge1xyXG4gICAgICB0aGlzLnNlcnZpY2UuZ2V0Rm9ybUpzb24odGhpcy5ydWNJbnB1dERhdGEpO1xyXG4gICAgICB0aGlzLmdldEZvcm1Kc29uKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1EYXRhID0gdGhpcy5jaGlsZEZvcm07XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucHV0T2JqZWN0RGF0YU11bHRpRmlsZVVwbG9hZCA9IHtcclxuICAgICAgbXVsdGlmaWxlU2VsZWN0aW9uOiB0cnVlLFxyXG4gICAgICBkaXNwbGF5VGh1bWJuYWlsOiB0cnVlLFxyXG4gICAgICBsYWJlbDogJ0Nob29zZSBGaWxlJyxcclxuICAgICAgdXBsb2FkVXJsOiAnL2FwaS91cGxvYWQnLFxyXG4gICAgICBkZWxldGVVcmw6ICcvYXBpL2RlbGV0ZScsXHJcbiAgICB9O1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBUaGUgcHVycG9zZSBvZiB0aGlzIGZ1bmN0aW9uIHRvIHBhc3MgZGF0YSBmcm9tIGRlcGVuZGVudEZpZWxkcyB0byBwYXJlbnQgZmllbGRcclxuICAgKiBAcGFyYW0gZ2V0T2JqZWN0IFxyXG4gICAqIEBwYXJhbSBqIFxyXG4gICAqL1xyXG4gIHBhc3NFdmVudChnZXRPYmplY3Q6IGFueSwgZm9ybUVsZW1lbnQ/OiBhbnkpIHtcclxuICAgIGNvbnN0IGV2ZW50T3V0cHV0ID0gZ2V0T2JqZWN0Py5ldmVudE91dHB1dCA/IGdldE9iamVjdC5ldmVudE91dHB1dCA6IHRoaXMuc2VydmljZS5jdXJyZW50Rm9ybUVsZW1lbnQ7XHJcbiAgICBpZihnZXRPYmplY3Q/LmV2ZW50TmFtZSA9PSBcIm9uVXBsb2FkaW5nXCIpe1xyXG4gICAgICBmb3JtRWxlbWVudC52YWx1ZSA9IGdldE9iamVjdD8uZXZlbnRPdXRwdXQubmFtZSA/IGdldE9iamVjdD8uZXZlbnRPdXRwdXQubmFtZSA6IGdldE9iamVjdD8uZXZlbnRPdXRwdXRbMF0ubmFtZTtcclxuICAgIH1cclxuICAgIHRoaXMucnVjRXZlbnQuZW1pdCh7ICdldmVudE5hbWUnOiAnbWV0YUZvcm1EYXRhJywgJ2V2ZW50T3V0cHV0JzogZXZlbnRPdXRwdXQsICdmb3JtRGF0YSc6IHRoaXMuZm9ybURhdGEsICdydWNDb21wb25lbnRFdmVudCc6IGdldE9iamVjdD8uZXZlbnROYW1lIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbCBmdW5jdGlvbiB0byBsb2FkIGZvciBkYXRhXHJcbiAgICovXHJcbiAgZ2V0Rm9ybUpzb24oKSB7XHJcbiAgICAgdGhpcy5tZXRhRm9ybVN1YnNjcmliZUlucHV0cyA9IHRoaXMuc2VydmljZS5mb3JtRGF0YS5hc09ic2VydmFibGUoKVxyXG4gICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGZvcm1EYXRhKT0+e1xyXG4gICAgICAgICAgdGhpcy5mb3JtRGF0YSA9IGZvcm1EYXRhO1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLm1ldGFGb3JtRGF0YSA9IHRoaXMuZm9ybURhdGE7XHJcbiAgICAgICAgfSAgICBcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICBUaGlzIGZ1bmN0aW9uIGlzIHRvIGVtaXQgZm9ybSBkYXRhXHJcbiAgICogQHBhcmFtIGV2ZW50IFxyXG4gICAqL1xyXG4gIGdldE1ldGFGb3JtRGF0YShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnJ1Y0V2ZW50LmVtaXQoeyAnZXZlbnROYW1lJzogJ21ldGFGb3JtRGF0YScsICdldmVudE91dHB1dCc6IGV2ZW50LCAnZm9ybURhdGEnOiB0aGlzLmZvcm1EYXRhIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgZm9ybSBkYXRhXHJcbiAgICovXHJcbiAgY2xlYXJGb3JtKCl7XHJcbiAgICB0aGlzLmZvcm1EYXRhLm1hcCgoeDpNZXRhRm9ybUNvbmZpZyk9PntcclxuICAgICAgeC52YWx1ZSA9ICcnO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXN0cm95IHRoZSBzdWJzY3JpYmVyXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5tZXRhRm9ybVN1YnNjcmliZUlucHV0cykge1xyXG4gICAgICB0aGlzLm1ldGFGb3JtU3Vic2NyaWJlSW5wdXRzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIG5vdmFsaWRhdGU+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkeW5hbWljRmllbGQgb2YgZm9ybURhdGE7IGxldCBqID0gaW5kZXg7XCIgW25nU3dpdGNoXT1cImR5bmFtaWNGaWVsZD8uZmllbGRUeXBlXCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV0gPSBcInsgJ3dpZHRoLiUnOiBkeW5hbWljRmllbGQuc2FtZVJvd0NvbHVtbldpZHRoIC0gMiB9XCIgIFtuZ0NsYXNzXT1cImR5bmFtaWNGaWVsZC5zYW1lUm93ID09PSB0cnVlID8gJ21hcmdpbi01IGNvbHVtbi1pbi1zYW1lLXJvdycgOiAnbWFyZ2luLTUgY29sdW1uLWluLW5ldy1yb3cnXCIgXHJcbiAgICAgICAgKm5nSWY9XCJkeW5hbWljRmllbGQuZm9ybVR5cGUgIT0gJ3N0ZXBwZXInXCI+XHJcbiAgICAgICBcclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nU3dpdGNoQ2FzZV09XCInaW5wdXQnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoIXNlbGVjdGVkUGFyZW50SWQgJiYgIWR5bmFtaWNGaWVsZC5oYXNEZXBlbmRlbnRGaWVsZHMpIHx8IChzZWxlY3RlZFBhcmVudElkICYmIHNlbGVjdGVkUGFyZW50SWQgPT0gZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkUGFyZW50SWQpXCI+XHJcbiAgICAgICAgICAgICAgICA8cnVjLW1ldGEtaW5wdXRzIFtjdXN0b21UaGVtZV0gPSBcImN1c3RvbVRoZW1lXCIgW3J1Y0lucHV0RGF0YV09XCJkeW5hbWljRmllbGRcIiAodHJhbnNmZXJVc2VySW5wdXQpPVwiZ2V0TWV0YUZvcm1EYXRhKCRldmVudClcIj48L3J1Yy1tZXRhLWlucHV0cz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nU3dpdGNoQ2FzZV09XCIncmFkaW8nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoIXNlbGVjdGVkUGFyZW50SWQgJiYgIWR5bmFtaWNGaWVsZC5kZXBlbmRlbnRGaWVsZHMpIHx8IChzZWxlY3RlZFBhcmVudElkICYmIHNlbGVjdGVkUGFyZW50SWQgPT0gZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkUGFyZW50SWQpIHx8ICghc2VsZWN0ZWRQYXJlbnRJZCAmJiBkeW5hbWljRmllbGQuZGVwZW5kZW50RmllbGRzICYmICFpc0NoaWxkKVwiPlxyXG4gICAgICAgICAgICAgICAgPHJ1Yy1tZXRhLXJhZGlvLWdyb3VwIFtjdXN0b21UaGVtZV0gPSBcImN1c3RvbVRoZW1lXCIgW3J1Y0lucHV0RGF0YV09XCJkeW5hbWljRmllbGRcIiAodHJhbnNmZXJVc2VySW5wdXQpPVwiZ2V0TWV0YUZvcm1EYXRhKCRldmVudClcIj48L3J1Yy1tZXRhLXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIidjaGVja2JveCdcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIighc2VsZWN0ZWRQYXJlbnRJZCAmJiAhZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkcykgfHwgKHNlbGVjdGVkUGFyZW50SWQgJiYgc2VsZWN0ZWRQYXJlbnRJZCA9PSBkeW5hbWljRmllbGQuZGVwZW5kZW50RmllbGRQYXJlbnRJZCkgfHwgKCFzZWxlY3RlZFBhcmVudElkICYmIGR5bmFtaWNGaWVsZC5kZXBlbmRlbnRGaWVsZHMgJiYgIWlzQ2hpbGQpXCI+XHJcbiAgICAgICAgICAgICAgICA8cnVjLW1ldGEtY2hlY2tib3gtZ3JvdXAgW3J1Y0lucHV0RGF0YV09XCJkeW5hbWljRmllbGRcIiAodHJhbnNmZXJVc2VySW5wdXQpPVwiZ2V0TWV0YUZvcm1EYXRhKCRldmVudClcIj48L3J1Yy1tZXRhLWNoZWNrYm94LWdyb3VwPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBjbGFzcz1cIlwiIFtuZ1N3aXRjaENhc2VdPVwiJ3NlbGVjdCdcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIighc2VsZWN0ZWRQYXJlbnRJZCAmJiAhZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkcykgfHwgKHNlbGVjdGVkUGFyZW50SWQgJiYgc2VsZWN0ZWRQYXJlbnRJZCA9PSBkeW5hbWljRmllbGQuZGVwZW5kZW50RmllbGRQYXJlbnRJZCkgfHwgKCFzZWxlY3RlZFBhcmVudElkICYmIGR5bmFtaWNGaWVsZC5kZXBlbmRlbnRGaWVsZHMgJiYgIWlzQ2hpbGQpXCI+XHJcbiAgICAgICAgICAgICAgICA8cnVjLW1ldGEtc2VsZWN0IFtydWNJbnB1dERhdGFdPVwiZHluYW1pY0ZpZWxkXCIgKHRyYW5zZmVyVXNlcklucHV0KT1cImdldE1ldGFGb3JtRGF0YSgkZXZlbnQpXCI+PC9ydWMtbWV0YS1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGNsYXNzPVwiXCIgW25nU3dpdGNoQ2FzZV09XCIndGV4dGFyZWEnXCI+XHJcbiAgICAgICAgICAgIDxydWMtdGV4dC1hcmVhIFtydWNJbnB1dERhdGFdPVwiZHluYW1pY0ZpZWxkXCIgKHRyYW5zZmVyVXNlcklucHV0KT1cImdldE1ldGFGb3JtRGF0YSgkZXZlbnQpXCI+PC9ydWMtdGV4dC1hcmVhPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1N3aXRjaENhc2VdPVwiJ3J1Y011bHRpU2VsZWN0J1wiPlxyXG4gICAgICAgICAgICA8dXhwLXJ1Y2xpYi1tdWx0aS1zZWxlY3QgW3J1Y0lucHV0RGF0YV09XCJkeW5hbWljRmllbGQ/LnJ1Y011bHRpc2VsZWN0SW5wdXQ/LnJ1Y0lucHV0RGF0YVwiXHJcbiAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImR5bmFtaWNGaWVsZD8ucnVjTXVsdGlzZWxlY3RJbnB1dD8uZGF0YVNvdXJjZVwiIFtjdXN0b21UaGVtZV09XCJjdXN0b21UaGVtZVwiXHJcbiAgICAgICAgICAgICAgICAocnVjRXZlbnQpPVwicGFzc0V2ZW50KCRldmVudClcIj48L3V4cC1ydWNsaWItbXVsdGktc2VsZWN0PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1N3aXRjaENhc2VdPVwiJ3J1Y011bHRpRmlsZVVwbG9hZCdcIj5cclxuICAgICAgICAgICAgPHV4cC1ydWNsaWItbXVsdGktZmlsZS11cGxvYWRcclxuICAgICAgICAgICAgICAgIFtydWNJbnB1dERhdGFdPVwiZHluYW1pY0ZpZWxkPy5ydWNNdWx0aUZpbGVVcGxvYWRJbnB1dD8ucnVjSW5wdXREYXRhXCIgW2N1c3RvbVRoZW1lXT1cImN1c3RvbVRoZW1lXCJcclxuICAgICAgICAgICAgICAgIChydWNFdmVudCk9XCJwYXNzRXZlbnQoJGV2ZW50LGR5bmFtaWNGaWVsZClcIj48L3V4cC1ydWNsaWItbXVsdGktZmlsZS11cGxvYWQ+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZHluYW1pY0ZpZWxkLmhhc0RlcGVuZGVudEZpZWxkcyAmJiBkeW5hbWljRmllbGQudmFsdWVcIj5cclxuICAgICAgICAgICAgPHV4cC1ydWNsaWItbWV0YWZvcm0gI2R5bmFtaWNGaWVsZC5pZCBbcnVjSW5wdXREYXRhXT1cImZvcm1EYXRhXCIgW2NoaWxkRm9ybV0gPVwiZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpc0NoaWxkXT1cInRydWVcIiBbc2VsZWN0ZWRQYXJlbnRJZF0gPSBcImR5bmFtaWNGaWVsZC5zZWxlY3RlZFBhcmVudElkXCIgKHJ1Y0V2ZW50KT1cInBhc3NFdmVudCgkZXZlbnQsZHluYW1pY0ZpZWxkLmlkKVwiPjwvdXhwLXJ1Y2xpYi1tZXRhZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImR5bmFtaWNGaWVsZC5mb3JtVHlwZSA9PSAnc3RlcHBlcidcIj5cclxuICAgICAgICAgICAgPG1hdC1zdGVwcGVyIGxpbmVhciAjc3RlcHBlcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHN0YXBwZXJGaWVsZCBvZiBkeW5hbWljRmllbGQuc3RlcHBlcjsgbGV0IHMgPSBpbmRleDtcIiAgW25nU3dpdGNoXT1cInN0YXBwZXJGaWVsZD8uZmllbGRUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zdGVwIFtzdGVwQ29udHJvbF09XCJzdGFwcGVyRmllbGQuc3RlcENvbnRyb2xcIiAqbmdJZj1cInN0YXBwZXJGaWVsZC5zdGVwQ29udHJvbCAhPSAnZG9uZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD57e3N0YXBwZXJGaWVsZC5zdGVwcGVybGFiZWx9fTwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0ZXBwZXJGb3JtRGF0YSBvZiBzdGFwcGVyRmllbGQuc3RlcHBlckZvcm1EYXRhOyBsZXQgaiA9IGluZGV4O1wiIFtuZ1N3aXRjaF09XCJzdGVwcGVyRm9ybURhdGE/LmZpZWxkVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV0gPSBcInsgJ3dpZHRoLiUnOiBkeW5hbWljRmllbGQuc2FtZVJvd0NvbHVtbldpZHRoIC0gMiB9XCIgIFtuZ0NsYXNzXT1cImR5bmFtaWNGaWVsZC5zYW1lUm93ID09PSB0cnVlID8gJ21hcmdpbi01IGNvbHVtbi1pbi1zYW1lLXJvdycgOiAnbWFyZ2luLTUgY29sdW1uLWluLW5ldy1yb3cnXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nU3dpdGNoQ2FzZV09XCInaW5wdXQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJ1Yy1tZXRhLWlucHV0cyBbY3VzdG9tVGhlbWVdID0gXCJjdXN0b21UaGVtZVwiIFtydWNJbnB1dERhdGFdPVwic3RlcHBlckZvcm1EYXRhXCIgKHRyYW5zZmVyVXNlcklucHV0KT1cImdldE1ldGFGb3JtRGF0YSgkZXZlbnQpXCI+PC9ydWMtbWV0YS1pbnB1dHM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNsYXNzPVwiXCIgW25nU3dpdGNoQ2FzZV09XCIndGV4dGFyZWEnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJ1Yy10ZXh0LWFyZWEgW3J1Y0lucHV0RGF0YV09XCJzdGVwcGVyRm9ybURhdGFcIiAodHJhbnNmZXJVc2VySW5wdXQpPVwiZ2V0TWV0YUZvcm1EYXRhKCRldmVudClcIj48L3J1Yy10ZXh0LWFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1N3aXRjaENhc2VdPVwiJ3JhZGlvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxydWMtbWV0YS1yYWRpby1ncm91cCBbY3VzdG9tVGhlbWVdID0gXCJjdXN0b21UaGVtZVwiIFtydWNJbnB1dERhdGFdPVwic3RlcHBlckZvcm1EYXRhXCIgKHRyYW5zZmVyVXNlcklucHV0KT1cImdldE1ldGFGb3JtRGF0YSgkZXZlbnQpXCI+PC9ydWMtbWV0YS1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nU3dpdGNoQ2FzZV09XCInY2hlY2tib3gnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxydWMtbWV0YS1jaGVja2JveC1ncm91cCBbcnVjSW5wdXREYXRhXT1cInN0ZXBwZXJGb3JtRGF0YVwiICh0cmFuc2ZlclVzZXJJbnB1dCk9XCJnZXRNZXRhRm9ybURhdGEoJGV2ZW50KVwiPjwvcnVjLW1ldGEtY2hlY2tib3gtZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNsYXNzPVwiXCIgW25nU3dpdGNoQ2FzZV09XCInc2VsZWN0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoIXNlbGVjdGVkUGFyZW50SWQgJiYgIWR5bmFtaWNGaWVsZC5kZXBlbmRlbnRGaWVsZHMpIHx8IChzZWxlY3RlZFBhcmVudElkICYmIHNlbGVjdGVkUGFyZW50SWQgPT0gZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkUGFyZW50SWQpIHx8ICghc2VsZWN0ZWRQYXJlbnRJZCAmJiBkeW5hbWljRmllbGQuZGVwZW5kZW50RmllbGRzICYmICFpc0NoaWxkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cnVjLW1ldGEtc2VsZWN0IFtydWNJbnB1dERhdGFdPVwiZHluYW1pY0ZpZWxkXCIgKHRyYW5zZmVyVXNlcklucHV0KT1cImdldE1ldGFGb3JtRGF0YSgkZXZlbnQpXCI+PC9ydWMtbWV0YS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0U3RlcHBlclByZXZpb3VzICpuZ0lmPVwicyA+IDBcIj5CYWNrPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0U3RlcHBlck5leHQgKm5nSWY9XCJzPCBkeW5hbWljRmllbGQuc3RlcHBlci5sZW5ndGhcIj5OZXh0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc3RlcD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LXN0ZXAgKm5nSWY9XCJzdGFwcGVyRmllbGQuc3RlcENvbnRyb2wgPT0gJ2RvbmUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+e3tzdGFwcGVyRmllbGQuc3RlcENvbnRyb2x9fTwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7c3RhcHBlckZpZWxkLnN0ZXBwZXJsYWJlbH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXRTdGVwcGVyUHJldmlvdXM+QmFjazwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwic3RlcHBlci5yZXNldCgpXCI+UmVzZXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc3RlcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L21hdC1zdGVwcGVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNsZWFyRm9ybSgpXCIgKm5nSWY9XCIhaXNDaGlsZFwiPkNsZWFyIEZvcm08L2J1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgXHJcbjwvZm9ybT4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVjbGliLW1ldGFmb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcnVjbGliLW1ldGFmb3JtL3J1Y2xpYi1tZXRhZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL3J1Y2xpYi1tZXRhZm9ybS9ydWNsaWItbWV0YWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFVLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7QUFPekUsTUFBTSxPQUFPLHVCQUF1QjtJQVlsQyxZQUFtQixPQUEyQjtRQUEzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQVhwQyxhQUFRLEdBQUksSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNwQyxrQkFBYSxHQUFJLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsaUJBQVksR0FBcUIsRUFBRSxDQUFBO0lBU00sQ0FBQztJQUVuRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxDQUFDLDhCQUE4QixHQUFHO1lBQ3BDLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixLQUFLLEVBQUUsYUFBYTtZQUNwQixTQUFTLEVBQUUsYUFBYTtZQUN4QixTQUFTLEVBQUUsYUFBYTtTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsU0FBYyxFQUFFLFdBQWlCO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7UUFDckcsSUFBRyxTQUFTLEVBQUUsU0FBUyxJQUFJLGFBQWEsRUFBQztZQUN2QyxXQUFXLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDaEg7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN4SixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1IsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTthQUNsRSxTQUFTLENBQ1AsQ0FBQyxRQUFRLEVBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDNUMsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQWdCLEVBQUMsRUFBRTtZQUNwQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2hDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QztJQUNILENBQUM7O3FIQWhGVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixzUkNUcEMsK21QQW1HTyx1em1DRDFGTSx1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7eUdBS3JCLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRU4sV0FBVztzQkFEVixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNZXRhRm9ybUNvbmZpZ30gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9tZXRhRm9ybXNEZWZhdWx0JztcclxuaW1wb3J0IHsgUnVjTWV0YUZvcm1TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3J1Yy1tZXRhLWZvcm0uc2VydmljZVwiXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3V4cC1ydWNsaWItbWV0YWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ydWNsaWItbWV0YWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3J1Y2xpYi1tZXRhZm9ybS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSdWNsaWJNZXRhZm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3l7XHJcbiAgQE91dHB1dCgpIHJ1Y0V2ZW50ICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBjaGlsZFJ1Y0V2ZW50ICA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIHJ1Y0lucHV0RGF0YTogTWV0YUZvcm1Db25maWdbXSA9IFtdXHJcbiAgQElucHV0KCkgY2hpbGRGb3JtPzogTWV0YUZvcm1Db25maWdbXVxyXG4gIEBJbnB1dCgpXHJcbiAgY3VzdG9tVGhlbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNDaGlsZD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRQYXJlbnRJZDogYW55O1xyXG4gIGlucHV0T2JqZWN0RGF0YU11bHRpRmlsZVVwbG9hZD86YW55O1xyXG4gIG1ldGFGb3JtU3Vic2NyaWJlSW5wdXRzOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgZm9ybURhdGE6IGFueVxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlOiBSdWNNZXRhRm9ybVNlcnZpY2UpIHsgfVxyXG4gIFxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzQ2hpbGQpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmdldEZvcm1Kc29uKHRoaXMucnVjSW5wdXREYXRhKTtcclxuICAgICAgdGhpcy5nZXRGb3JtSnNvbigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtRGF0YSA9IHRoaXMuY2hpbGRGb3JtO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dE9iamVjdERhdGFNdWx0aUZpbGVVcGxvYWQgPSB7XHJcbiAgICAgIG11bHRpZmlsZVNlbGVjdGlvbjogdHJ1ZSxcclxuICAgICAgZGlzcGxheVRodW1ibmFpbDogdHJ1ZSxcclxuICAgICAgbGFiZWw6ICdDaG9vc2UgRmlsZScsXHJcbiAgICAgIHVwbG9hZFVybDogJy9hcGkvdXBsb2FkJyxcclxuICAgICAgZGVsZXRlVXJsOiAnL2FwaS9kZWxldGUnLFxyXG4gICAgfTtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogVGhlIHB1cnBvc2Ugb2YgdGhpcyBmdW5jdGlvbiB0byBwYXNzIGRhdGEgZnJvbSBkZXBlbmRlbnRGaWVsZHMgdG8gcGFyZW50IGZpZWxkXHJcbiAgICogQHBhcmFtIGdldE9iamVjdCBcclxuICAgKiBAcGFyYW0gaiBcclxuICAgKi9cclxuICBwYXNzRXZlbnQoZ2V0T2JqZWN0OiBhbnksIGZvcm1FbGVtZW50PzogYW55KSB7XHJcbiAgICBjb25zdCBldmVudE91dHB1dCA9IGdldE9iamVjdD8uZXZlbnRPdXRwdXQgPyBnZXRPYmplY3QuZXZlbnRPdXRwdXQgOiB0aGlzLnNlcnZpY2UuY3VycmVudEZvcm1FbGVtZW50O1xyXG4gICAgaWYoZ2V0T2JqZWN0Py5ldmVudE5hbWUgPT0gXCJvblVwbG9hZGluZ1wiKXtcclxuICAgICAgZm9ybUVsZW1lbnQudmFsdWUgPSBnZXRPYmplY3Q/LmV2ZW50T3V0cHV0Lm5hbWUgPyBnZXRPYmplY3Q/LmV2ZW50T3V0cHV0Lm5hbWUgOiBnZXRPYmplY3Q/LmV2ZW50T3V0cHV0WzBdLm5hbWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJ1Y0V2ZW50LmVtaXQoeyAnZXZlbnROYW1lJzogJ21ldGFGb3JtRGF0YScsICdldmVudE91dHB1dCc6IGV2ZW50T3V0cHV0LCAnZm9ybURhdGEnOiB0aGlzLmZvcm1EYXRhLCAncnVjQ29tcG9uZW50RXZlbnQnOiBnZXRPYmplY3Q/LmV2ZW50TmFtZSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWwgZnVuY3Rpb24gdG8gbG9hZCBmb3IgZGF0YVxyXG4gICAqL1xyXG4gIGdldEZvcm1Kc29uKCkge1xyXG4gICAgIHRoaXMubWV0YUZvcm1TdWJzY3JpYmVJbnB1dHMgPSB0aGlzLnNlcnZpY2UuZm9ybURhdGEuYXNPYnNlcnZhYmxlKClcclxuICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChmb3JtRGF0YSk9PntcclxuICAgICAgICAgIHRoaXMuZm9ybURhdGEgPSBmb3JtRGF0YTtcclxuICAgICAgICAgIHRoaXMuc2VydmljZS5tZXRhRm9ybURhdGEgPSB0aGlzLmZvcm1EYXRhO1xyXG4gICAgICAgIH0gICAgXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAgVGhpcyBmdW5jdGlvbiBpcyB0byBlbWl0IGZvcm0gZGF0YVxyXG4gICAqIEBwYXJhbSBldmVudCBcclxuICAgKi9cclxuICBnZXRNZXRhRm9ybURhdGEoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ydWNFdmVudC5lbWl0KHsgJ2V2ZW50TmFtZSc6ICdtZXRhRm9ybURhdGEnLCAnZXZlbnRPdXRwdXQnOiBldmVudCwgJ2Zvcm1EYXRhJzogdGhpcy5mb3JtRGF0YSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGZvcm0gZGF0YVxyXG4gICAqL1xyXG4gIGNsZWFyRm9ybSgpe1xyXG4gICAgdGhpcy5mb3JtRGF0YS5tYXAoKHg6TWV0YUZvcm1Db25maWcpPT57XHJcbiAgICAgIHgudmFsdWUgPSAnJztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVzdHJveSB0aGUgc3Vic2NyaWJlclxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMubWV0YUZvcm1TdWJzY3JpYmVJbnB1dHMpIHtcclxuICAgICAgdGhpcy5tZXRhRm9ybVN1YnNjcmliZUlucHV0cy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBub3ZhbGlkYXRlPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGR5bmFtaWNGaWVsZCBvZiBmb3JtRGF0YTsgbGV0IGogPSBpbmRleDtcIiBbbmdTd2l0Y2hdPVwiZHluYW1pY0ZpZWxkPy5maWVsZFR5cGVcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXSA9IFwieyAnd2lkdGguJSc6IGR5bmFtaWNGaWVsZC5zYW1lUm93Q29sdW1uV2lkdGggLSAyIH1cIiAgW25nQ2xhc3NdPVwiZHluYW1pY0ZpZWxkLnNhbWVSb3cgPT09IHRydWUgPyAnbWFyZ2luLTUgY29sdW1uLWluLXNhbWUtcm93IG1haW4nIDogJ21hcmdpbi01IGNvbHVtbi1pbi1uZXctcm93IG1haW4nXCIgXHJcbiAgICAgICAgKm5nSWY9XCJkeW5hbWljRmllbGQuZm9ybVR5cGUgIT0gJ3N0ZXBwZXInXCI+XHJcbiAgICAgICBcclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nU3dpdGNoQ2FzZV09XCInaW5wdXQnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoIXNlbGVjdGVkUGFyZW50SWQgJiYgIWR5bmFtaWNGaWVsZC5oYXNEZXBlbmRlbnRGaWVsZHMpIHx8IChzZWxlY3RlZFBhcmVudElkICYmIHNlbGVjdGVkUGFyZW50SWQgPT0gZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkUGFyZW50SWQpXCI+XHJcbiAgICAgICAgICAgICAgICA8cnVjLW1ldGEtaW5wdXRzIFtjdXN0b21UaGVtZV0gPSBcImN1c3RvbVRoZW1lXCIgW3J1Y0lucHV0RGF0YV09XCJkeW5hbWljRmllbGRcIiAodHJhbnNmZXJVc2VySW5wdXQpPVwiZ2V0TWV0YUZvcm1EYXRhKCRldmVudClcIj48L3J1Yy1tZXRhLWlucHV0cz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nU3dpdGNoQ2FzZV09XCIncmFkaW8nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoIXNlbGVjdGVkUGFyZW50SWQgJiYgIWR5bmFtaWNGaWVsZC5kZXBlbmRlbnRGaWVsZHMpIHx8IChzZWxlY3RlZFBhcmVudElkICYmIHNlbGVjdGVkUGFyZW50SWQgPT0gZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkUGFyZW50SWQpIHx8ICghc2VsZWN0ZWRQYXJlbnRJZCAmJiBkeW5hbWljRmllbGQuZGVwZW5kZW50RmllbGRzICYmICFpc0NoaWxkKVwiPlxyXG4gICAgICAgICAgICAgICAgPHJ1Yy1tZXRhLXJhZGlvLWdyb3VwIFtjdXN0b21UaGVtZV0gPSBcImN1c3RvbVRoZW1lXCIgW3J1Y0lucHV0RGF0YV09XCJkeW5hbWljRmllbGRcIiAodHJhbnNmZXJVc2VySW5wdXQpPVwiZ2V0TWV0YUZvcm1EYXRhKCRldmVudClcIj48L3J1Yy1tZXRhLXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIidjaGVja2JveCdcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIighc2VsZWN0ZWRQYXJlbnRJZCAmJiAhZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkcykgfHwgKHNlbGVjdGVkUGFyZW50SWQgJiYgc2VsZWN0ZWRQYXJlbnRJZCA9PSBkeW5hbWljRmllbGQuZGVwZW5kZW50RmllbGRQYXJlbnRJZCkgfHwgKCFzZWxlY3RlZFBhcmVudElkICYmIGR5bmFtaWNGaWVsZC5kZXBlbmRlbnRGaWVsZHMgJiYgIWlzQ2hpbGQpXCI+XHJcbiAgICAgICAgICAgICAgICA8cnVjLW1ldGEtY2hlY2tib3gtZ3JvdXAgW3J1Y0lucHV0RGF0YV09XCJkeW5hbWljRmllbGRcIiAodHJhbnNmZXJVc2VySW5wdXQpPVwiZ2V0TWV0YUZvcm1EYXRhKCRldmVudClcIj48L3J1Yy1tZXRhLWNoZWNrYm94LWdyb3VwPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBjbGFzcz1cIlwiIFtuZ1N3aXRjaENhc2VdPVwiJ3NlbGVjdCdcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIighc2VsZWN0ZWRQYXJlbnRJZCAmJiAhZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkcykgfHwgKHNlbGVjdGVkUGFyZW50SWQgJiYgc2VsZWN0ZWRQYXJlbnRJZCA9PSBkeW5hbWljRmllbGQuZGVwZW5kZW50RmllbGRQYXJlbnRJZCkgfHwgKCFzZWxlY3RlZFBhcmVudElkICYmIGR5bmFtaWNGaWVsZC5kZXBlbmRlbnRGaWVsZHMgJiYgIWlzQ2hpbGQpXCI+XHJcbiAgICAgICAgICAgICAgICA8cnVjLW1ldGEtc2VsZWN0IFtydWNJbnB1dERhdGFdPVwiZHluYW1pY0ZpZWxkXCIgKHRyYW5zZmVyVXNlcklucHV0KT1cImdldE1ldGFGb3JtRGF0YSgkZXZlbnQpXCI+PC9ydWMtbWV0YS1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGNsYXNzPVwiXCIgW25nU3dpdGNoQ2FzZV09XCIndGV4dGFyZWEnXCI+XHJcbiAgICAgICAgICAgIDxydWMtdGV4dC1hcmVhIFtydWNJbnB1dERhdGFdPVwiZHluYW1pY0ZpZWxkXCIgKHRyYW5zZmVyVXNlcklucHV0KT1cImdldE1ldGFGb3JtRGF0YSgkZXZlbnQpXCI+PC9ydWMtdGV4dC1hcmVhPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1N3aXRjaENhc2VdPVwiJ3J1Y011bHRpU2VsZWN0J1wiPlxyXG4gICAgICAgICAgICA8dXhwLXJ1Y2xpYi1tdWx0aS1zZWxlY3QgW3J1Y0lucHV0RGF0YV09XCJkeW5hbWljRmllbGQ/LnJ1Y011bHRpc2VsZWN0SW5wdXQ/LnJ1Y0lucHV0RGF0YVwiXHJcbiAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImR5bmFtaWNGaWVsZD8ucnVjTXVsdGlzZWxlY3RJbnB1dD8uZGF0YVNvdXJjZVwiIFtjdXN0b21UaGVtZV09XCJjdXN0b21UaGVtZVwiXHJcbiAgICAgICAgICAgICAgICAocnVjRXZlbnQpPVwicGFzc0V2ZW50KCRldmVudClcIj48L3V4cC1ydWNsaWItbXVsdGktc2VsZWN0PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1N3aXRjaENhc2VdPVwiJ3J1Y011bHRpRmlsZVVwbG9hZCdcIj5cclxuICAgICAgICAgICAgPHV4cC1ydWNsaWItbXVsdGktZmlsZS11cGxvYWRcclxuICAgICAgICAgICAgICAgIFtydWNJbnB1dERhdGFdPVwiZHluYW1pY0ZpZWxkPy5ydWNNdWx0aUZpbGVVcGxvYWRJbnB1dD8ucnVjSW5wdXREYXRhXCIgW2N1c3RvbVRoZW1lXT1cImN1c3RvbVRoZW1lXCJcclxuICAgICAgICAgICAgICAgIChydWNFdmVudCk9XCJwYXNzRXZlbnQoJGV2ZW50LGR5bmFtaWNGaWVsZClcIj48L3V4cC1ydWNsaWItbXVsdGktZmlsZS11cGxvYWQ+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZHluYW1pY0ZpZWxkLmhhc0RlcGVuZGVudEZpZWxkcyAmJiBkeW5hbWljRmllbGQudmFsdWVcIj5cclxuICAgICAgICAgICAgPHV4cC1ydWNsaWItbWV0YWZvcm0gI2R5bmFtaWNGaWVsZC5pZCBbcnVjSW5wdXREYXRhXT1cImZvcm1EYXRhXCIgW2NoaWxkRm9ybV0gPVwiZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpc0NoaWxkXT1cInRydWVcIiBbc2VsZWN0ZWRQYXJlbnRJZF0gPSBcImR5bmFtaWNGaWVsZC5zZWxlY3RlZFBhcmVudElkXCIgKHJ1Y0V2ZW50KT1cInBhc3NFdmVudCgkZXZlbnQsZHluYW1pY0ZpZWxkLmlkKVwiPjwvdXhwLXJ1Y2xpYi1tZXRhZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImR5bmFtaWNGaWVsZC5mb3JtVHlwZSA9PSAnc3RlcHBlcidcIj5cclxuICAgICAgICAgICAgPG1hdC1zdGVwcGVyIGxpbmVhciAjc3RlcHBlcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHN0YXBwZXJGaWVsZCBvZiBkeW5hbWljRmllbGQuc3RlcHBlcjsgbGV0IHMgPSBpbmRleDtcIiAgW25nU3dpdGNoXT1cInN0YXBwZXJGaWVsZD8uZmllbGRUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zdGVwIFtzdGVwQ29udHJvbF09XCJzdGFwcGVyRmllbGQuc3RlcENvbnRyb2xcIiAqbmdJZj1cInN0YXBwZXJGaWVsZC5zdGVwQ29udHJvbCAhPSAnZG9uZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD57e3N0YXBwZXJGaWVsZC5zdGVwcGVybGFiZWx9fTwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0ZXBwZXJGb3JtRGF0YSBvZiBzdGFwcGVyRmllbGQuc3RlcHBlckZvcm1EYXRhOyBsZXQgaiA9IGluZGV4O1wiIFtuZ1N3aXRjaF09XCJzdGVwcGVyRm9ybURhdGE/LmZpZWxkVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV0gPSBcInsgJ3dpZHRoLiUnOiBkeW5hbWljRmllbGQuc2FtZVJvd0NvbHVtbldpZHRoIC0gMiB9XCIgIFtuZ0NsYXNzXT1cImR5bmFtaWNGaWVsZC5zYW1lUm93ID09PSB0cnVlID8gJ21hcmdpbi01IGNvbHVtbi1pbi1zYW1lLXJvdyBtYWluJyA6ICdtYXJnaW4tNSBjb2x1bW4taW4tbmV3LXJvdyBtYWluJ1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1N3aXRjaENhc2VdPVwiJ2lucHV0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxydWMtbWV0YS1pbnB1dHMgW2N1c3RvbVRoZW1lXSA9IFwiY3VzdG9tVGhlbWVcIiBbcnVjSW5wdXREYXRhXT1cInN0ZXBwZXJGb3JtRGF0YVwiICh0cmFuc2ZlclVzZXJJbnB1dCk9XCJnZXRNZXRhRm9ybURhdGEoJGV2ZW50KVwiPjwvcnVjLW1ldGEtaW5wdXRzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjbGFzcz1cIlwiIFtuZ1N3aXRjaENhc2VdPVwiJ3RleHRhcmVhJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxydWMtdGV4dC1hcmVhIFtydWNJbnB1dERhdGFdPVwic3RlcHBlckZvcm1EYXRhXCIgKHRyYW5zZmVyVXNlcklucHV0KT1cImdldE1ldGFGb3JtRGF0YSgkZXZlbnQpXCI+PC9ydWMtdGV4dC1hcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIidyYWRpbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cnVjLW1ldGEtcmFkaW8tZ3JvdXAgW2N1c3RvbVRoZW1lXSA9IFwiY3VzdG9tVGhlbWVcIiBbcnVjSW5wdXREYXRhXT1cInN0ZXBwZXJGb3JtRGF0YVwiICh0cmFuc2ZlclVzZXJJbnB1dCk9XCJnZXRNZXRhRm9ybURhdGEoJGV2ZW50KVwiPjwvcnVjLW1ldGEtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1N3aXRjaENhc2VdPVwiJ2NoZWNrYm94J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cnVjLW1ldGEtY2hlY2tib3gtZ3JvdXAgW3J1Y0lucHV0RGF0YV09XCJzdGVwcGVyRm9ybURhdGFcIiAodHJhbnNmZXJVc2VySW5wdXQpPVwiZ2V0TWV0YUZvcm1EYXRhKCRldmVudClcIj48L3J1Yy1tZXRhLWNoZWNrYm94LWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjbGFzcz1cIlwiIFtuZ1N3aXRjaENhc2VdPVwiJ3NlbGVjdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKCFzZWxlY3RlZFBhcmVudElkICYmICFkeW5hbWljRmllbGQuZGVwZW5kZW50RmllbGRzKSB8fCAoc2VsZWN0ZWRQYXJlbnRJZCAmJiBzZWxlY3RlZFBhcmVudElkID09IGR5bmFtaWNGaWVsZC5kZXBlbmRlbnRGaWVsZFBhcmVudElkKSB8fCAoIXNlbGVjdGVkUGFyZW50SWQgJiYgZHluYW1pY0ZpZWxkLmRlcGVuZGVudEZpZWxkcyAmJiAhaXNDaGlsZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJ1Yy1tZXRhLXNlbGVjdCBbcnVjSW5wdXREYXRhXT1cImR5bmFtaWNGaWVsZFwiICh0cmFuc2ZlclVzZXJJbnB1dCk9XCJnZXRNZXRhRm9ybURhdGEoJGV2ZW50KVwiPjwvcnVjLW1ldGEtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdFN0ZXBwZXJQcmV2aW91cyAqbmdJZj1cInMgPiAwXCI+QmFjazwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdFN0ZXBwZXJOZXh0ICpuZ0lmPVwiczwgZHluYW1pY0ZpZWxkLnN0ZXBwZXIubGVuZ3RoXCI+TmV4dDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXN0ZXA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zdGVwICpuZ0lmPVwic3RhcHBlckZpZWxkLnN0ZXBDb250cm9sID09ICdkb25lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPnt7c3RhcHBlckZpZWxkLnN0ZXBDb250cm9sfX08L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cD57e3N0YXBwZXJGaWVsZC5zdGVwcGVybGFiZWx9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0U3RlcHBlclByZXZpb3VzPkJhY2s8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInN0ZXBwZXIucmVzZXQoKVwiPlJlc2V0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXN0ZXA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9tYXQtc3RlcHBlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjbGVhckZvcm0oKVwiICpuZ0lmPVwiIWlzQ2hpbGRcIj5DbGVhciBGb3JtPC9idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG48L2Zvcm0+Il19