master-control 0.3.91 → 0.3.92

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.
@@ -53,7 +53,7 @@ export class AmountTextboxComponent {
53
53
  if (rawValue === '' || /^\d*\.?\d*$/.test(rawValue)) {
54
54
  this.inputValue = rawValue;
55
55
  if (this.isCommaAdded && rawValue && !isNaN(parseFloat(rawValue))) {
56
- const formattedValue = this.addCommasToNumber(rawValue);
56
+ const formattedValue = this.sharedService.addComasToNumberValues(rawValue);
57
57
  const newCursorPosition = this.calculateNewCursorPosition(oldValue, formattedValue, cursorPosition);
58
58
  inputElement.value = formattedValue;
59
59
  setTimeout(() => {
@@ -64,7 +64,7 @@ export class AmountTextboxComponent {
64
64
  }
65
65
  else {
66
66
  const revertValue = this.isCommaAdded && this.inputValue ?
67
- this.addCommasToNumber(this.inputValue) : this.inputValue || '';
67
+ this.sharedService.addComasToNumberValues(this.inputValue) : this.inputValue || '';
68
68
  inputElement.value = revertValue;
69
69
  setTimeout(() => {
70
70
  const safeCursorPos = Math.min(cursorPosition, revertValue.length);
@@ -87,7 +87,7 @@ export class AmountTextboxComponent {
87
87
  const rawValue = newValue.replace(/,/g, '');
88
88
  if (rawValue === '' || /^\d*\.?\d*$/.test(rawValue)) {
89
89
  this.inputValue = rawValue;
90
- const formattedValue = this.isCommaAdded && rawValue ? this.addCommasToNumber(rawValue) : rawValue;
90
+ const formattedValue = this.isCommaAdded && rawValue ? this.sharedService.addComasToNumberValues(rawValue) : rawValue;
91
91
  inputElement.value = formattedValue;
92
92
  setTimeout(() => {
93
93
  const newCursorPos = Math.max(0, cursorPosition - 2);
@@ -105,7 +105,7 @@ export class AmountTextboxComponent {
105
105
  const rawValue = newValue.replace(/,/g, '');
106
106
  if (rawValue === '' || /^\d*\.?\d*$/.test(rawValue)) {
107
107
  this.inputValue = rawValue;
108
- const formattedValue = this.isCommaAdded && rawValue ? this.addCommasToNumber(rawValue) : rawValue;
108
+ const formattedValue = this.isCommaAdded && rawValue ? this.sharedService.addComasToNumberValues(rawValue) : rawValue;
109
109
  inputElement.value = formattedValue;
110
110
  setTimeout(() => {
111
111
  inputElement.setSelectionRange(cursorPosition, cursorPosition);
@@ -116,15 +116,20 @@ export class AmountTextboxComponent {
116
116
  }
117
117
  }
118
118
  }
119
- // Add commas to number for display
120
- addCommasToNumber(value) {
121
- if (!value || value === '')
122
- return '';
123
- const stringValue = value.toString();
124
- const parts = stringValue.split('.');
125
- parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
126
- return parts.join('.');
127
- }
119
+ // Add commas to number for Indian format
120
+ // addCommasToNumber(value: any | number): any {
121
+ // if (!value || value === '') return '';
122
+ // const stringValue = value.toString();
123
+ // const parts = stringValue.split('.');
124
+ // let integerPart = parts[0];
125
+ // if (integerPart.length > 3) {
126
+ // const lastThreeDigits = integerPart.slice(-3);
127
+ // const remainingDigits = integerPart.slice(0, -3);
128
+ // const formattedRemaining = remainingDigits.replace(/\B(?=(\d{2})+(?!\d))/g, ',');
129
+ // integerPart = formattedRemaining + ',' + lastThreeDigits;
130
+ // }
131
+ // return parts[1] ? integerPart + '.' + parts[1] : integerPart;
132
+ // }
128
133
  calculateNewCursorPosition(oldValue, newValue, oldCursorPosition) {
129
134
  if (oldCursorPosition === 0) {
130
135
  return 0;
@@ -161,7 +166,7 @@ export class AmountTextboxComponent {
161
166
  if (!this.inputValue)
162
167
  return '';
163
168
  if (this.isCommaAdded && !isNaN(parseFloat(this.inputValue))) {
164
- return this.addCommasToNumber(this.inputValue);
169
+ return this.sharedService.addComasToNumberValues(this.inputValue);
165
170
  }
166
171
  return this.inputValue;
167
172
  }
@@ -199,7 +204,7 @@ export class AmountTextboxComponent {
199
204
  useExisting: AmountTextboxComponent,
200
205
  multi: true
201
206
  }
202
- ], ngImport: i0, template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\r\n >{{ field().label\r\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\r\n >*</span\r\n ></label\r\n>\r\n <mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n<input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n />\r\n }\r\n\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage }}\r\n </mat-error>\r\n <span matPrefix class=\"rupee-symbol px-2\">\u20B9</span>\r\n <span matSuffix class=\"me-2 right-amount-text\">{{ getFormattedAmount() }}</span>\r\n </mat-form-field>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}*{font-family:mulish!important}.right-amount-text{font-weight:600;font-size:10px;color:#444;background:#f5f5f5;border-radius:2px;padding:5.5px 6px 4px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:.75rem!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}.rupee-symbol{color:#444;font-size:12px;font-weight:400}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
207
+ ], ngImport: i0, template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\r\n >{{ field().label\r\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\r\n >*</span\r\n ></label\r\n>\r\n <mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n<input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n />\r\n }\r\n\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage }}\r\n </mat-error>\r\n <span matPrefix class=\"rupee-symbol px-2\">\u20B9</span>\r\n <span matSuffix class=\"me-2 right-amount-text\" *ngIf=\"inputValue\">{{ getFormattedAmount() }}</span>\r\n </mat-form-field>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}*{font-family:mulish!important}.right-amount-text{font-weight:600;font-size:10px;color:#444;background:#f5f5f5;border-radius:2px;padding:5.5px 6px 4px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:.75rem!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}.rupee-symbol{color:#444;font-size:12px;font-weight:400}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
203
208
  }
204
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AmountTextboxComponent, decorators: [{
205
210
  type: Component,
@@ -214,8 +219,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
214
219
  useExisting: AmountTextboxComponent,
215
220
  multi: true
216
221
  }
217
- ], template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\r\n >{{ field().label\r\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\r\n >*</span\r\n ></label\r\n>\r\n <mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n<input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n />\r\n }\r\n\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage }}\r\n </mat-error>\r\n <span matPrefix class=\"rupee-symbol px-2\">\u20B9</span>\r\n <span matSuffix class=\"me-2 right-amount-text\">{{ getFormattedAmount() }}</span>\r\n </mat-form-field>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}*{font-family:mulish!important}.right-amount-text{font-weight:600;font-size:10px;color:#444;background:#f5f5f5;border-radius:2px;padding:5.5px 6px 4px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:.75rem!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}.rupee-symbol{color:#444;font-size:12px;font-weight:400}\n"] }]
222
+ ], template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\r\n >{{ field().label\r\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\r\n >*</span\r\n ></label\r\n>\r\n <mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n'--custom-border-color': field()?.controlStyle?.borderColor ,\r\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--custom-bg-color': field()?.controlStyle?.background ,\r\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n'--custom-font-size': field()?.controlStyle?.fontSize ,\r\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n'--custom-font-color': field()?.controlStyle?.color ,\r\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n}\">\r\n @if(reactiveFormControlobject()) {\r\n<input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n matInput\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n autocomplete=\"none\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (input)=\"onInputChange($event)\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n [value]=\"getDisplayValue()\"\r\n />\r\n }\r\n\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage }}\r\n </mat-error>\r\n <span matPrefix class=\"rupee-symbol px-2\">\u20B9</span>\r\n <span matSuffix class=\"me-2 right-amount-text\" *ngIf=\"inputValue\">{{ getFormattedAmount() }}</span>\r\n </mat-form-field>\r\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}*{font-family:mulish!important}.right-amount-text{font-weight:600;font-size:10px;color:#444;background:#f5f5f5;border-radius:2px;padding:5.5px 6px 4px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:.75rem!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}.rupee-symbol{color:#444;font-size:12px;font-weight:400}\n"] }]
218
223
  }], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { blur: [{
219
224
  type: Output
220
225
  }] } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1vdW50LXRleHRib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hbW91bnQtdGV4dGJveC9hbW91bnQtdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2Ftb3VudC10ZXh0Ym94L2Ftb3VudC10ZXh0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFzQjlGLE1BQU0sT0FBTyxzQkFBc0I7SUFDZDtJQUFuQixZQUFtQixhQUFvQztRQUFwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFBRSxDQUFDO0lBQzFELEtBQUssR0FBUyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDcEMsVUFBVSxHQUFRLElBQUksQ0FBQztJQUN2Qix5QkFBeUIsR0FBUyxLQUFLLEVBQU8sQ0FBQztJQUMvQyxTQUFTLEdBQVEsQ0FBQyxVQUFjLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN4QyxVQUFVLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzNCLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEtBQUss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QUFJLENBQUMsYUFBYSxDQUFDLDRDQUE0QyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3JILENBQUM7d0dBckxVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLG1aQVJ0QjtZQUNQO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxzQkFBc0I7Z0JBQ25DLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkN4Qkwsb3hHQTJFQSwwZ0hEaEVJLGtCQUFrQix3a0JBQ2xCLFlBQVksdU5BQ1osY0FBYywwV0FDZCxtQkFBbUI7OzRGQVlWLHNCQUFzQjtrQkFuQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCLGFBR1U7d0JBQ1A7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx3QkFBd0I7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3lGQWVPLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYW1vdW50LXRleHRib3gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYW1vdW50LXRleHRib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hbW91bnQtdGV4dGJveC5jb21wb25lbnQuY3NzJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBBbW91bnRUZXh0Ym94Q29tcG9uZW50LFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFtb3VudFRleHRib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNoYXJlZFNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSl7fVxyXG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG4gIGlucHV0VmFsdWU6IGFueSA9IG51bGw7XHJcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcclxuICBfb25DaGFuZ2U6IGFueSA9IChpbnB1dFZhbHVlOmFueSkgPT4ge307XHJcbiAgX3VuVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcbiAgZ2V0IGlzQ29tbWFBZGRlZCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8uaXNDb21tYUFsbG93ZWQgIT09IHVuZGVmaW5lZCA/IFxyXG4gICAgICB0aGlzLmZpZWxkKCk/LmNvbmZpZ0RhdGE/LmlzQ29tbWFBbGxvd2VkIDogdHJ1ZTtcclxuICB9XHJcblxyXG4gICAvLyBEZWNsYXJlIE91dHB1dCBldmVudCBlbWl0dGVyIGhlcmUgKGNsYXNzIGxldmVsKVxyXG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKG9iaiAhPT0gbnVsbCAmJiBvYmogIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCByYXdWYWx1ZSA9IG9iai50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWR7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH07XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWR7XHJcbiAgICB0aGlzLl91blRvdWNoZWQgPSBmbjtcclxuICB9O1xyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lke307XHJcblxyXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSBpbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICBjb25zdCBvbGRWYWx1ZSA9IGlucHV0RWxlbWVudC52YWx1ZTtcclxuICAgIGNvbnN0IHJhd1ZhbHVlID0gb2xkVmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICBpZiAocmF3VmFsdWUgPT09ICcnIHx8IC9eXFxkKlxcLj9cXGQqJC8udGVzdChyYXdWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gcmF3VmFsdWU7XHJcbiAgICAgIGlmICh0aGlzLmlzQ29tbWFBZGRlZCAmJiByYXdWYWx1ZSAmJiAhaXNOYU4ocGFyc2VGbG9hdChyYXdWYWx1ZSkpKSB7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmFkZENvbW1hc1RvTnVtYmVyKHJhd1ZhbHVlKTtcclxuICAgICAgICBjb25zdCBuZXdDdXJzb3JQb3NpdGlvbiA9IHRoaXMuY2FsY3VsYXRlTmV3Q3Vyc29yUG9zaXRpb24oXHJcbiAgICAgICAgICBvbGRWYWx1ZSwgXHJcbiAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZSwgXHJcbiAgICAgICAgICBjdXJzb3JQb3NpdGlvblxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBpbnB1dEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UobmV3Q3Vyc29yUG9zaXRpb24sIG5ld0N1cnNvclBvc2l0aW9uKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcmV2ZXJ0VmFsdWUgPSB0aGlzLmlzQ29tbWFBZGRlZCAmJiB0aGlzLmlucHV0VmFsdWUgPyBcclxuICAgICAgICB0aGlzLmFkZENvbW1hc1RvTnVtYmVyKHRoaXMuaW5wdXRWYWx1ZSkgOiB0aGlzLmlucHV0VmFsdWUgfHwgJyc7XHJcbiAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IHJldmVydFZhbHVlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBzYWZlQ3Vyc29yUG9zID0gTWF0aC5taW4oY3Vyc29yUG9zaXRpb24sIHJldmVydFZhbHVlLmxlbmd0aCk7XHJcbiAgICAgICAgaW5wdXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNhZmVDdXJzb3JQb3MsIHNhZmVDdXJzb3JQb3MpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXRCbHVyKGV2ZW50PzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl91blRvdWNoZWQoKTtcclxuICAgICB0aGlzLmJsdXIuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IGlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCAwO1xyXG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dEVsZW1lbnQudmFsdWU7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyAmJiBjdXJzb3JQb3NpdGlvbiA+IDApIHtcclxuICAgICAgaWYgKHZhbHVlW2N1cnNvclBvc2l0aW9uIC0gMV0gPT09ICcsJykge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgY3Vyc29yUG9zaXRpb24gLSAyKSArIHZhbHVlLnN1YnN0cmluZyhjdXJzb3JQb3NpdGlvbik7XHJcbiAgICAgICAgY29uc3QgcmF3VmFsdWUgPSBuZXdWYWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgICAgICBpZiAocmF3VmFsdWUgPT09ICcnIHx8IC9eXFxkKlxcLj9cXGQqJC8udGVzdChyYXdWYWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHJhd1ZhbHVlO1xyXG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmlzQ29tbWFBZGRlZCAmJiByYXdWYWx1ZSA/IHRoaXMuYWRkQ29tbWFzVG9OdW1iZXIocmF3VmFsdWUpIDogcmF3VmFsdWU7XHJcbiAgICAgICAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdDdXJzb3JQb3MgPSBNYXRoLm1heCgwLCBjdXJzb3JQb3NpdGlvbiAtIDIpO1xyXG4gICAgICAgICAgICBpbnB1dEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UobmV3Q3Vyc29yUG9zLCBuZXdDdXJzb3JQb3MpO1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJyAmJiBjdXJzb3JQb3NpdGlvbiA8IHZhbHVlLmxlbmd0aCkge1xyXG4gICAgICBpZiAodmFsdWVbY3Vyc29yUG9zaXRpb25dID09PSAnLCcpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGlmIChjdXJzb3JQb3NpdGlvbiArIDEgPCB2YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclBvc2l0aW9uKSArIHZhbHVlLnN1YnN0cmluZyhjdXJzb3JQb3NpdGlvbiArIDIpO1xyXG4gICAgICAgICAgY29uc3QgcmF3VmFsdWUgPSBuZXdWYWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgICAgICAgIGlmIChyYXdWYWx1ZSA9PT0gJycgfHwgL15cXGQqXFwuP1xcZCokLy50ZXN0KHJhd1ZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmlzQ29tbWFBZGRlZCAmJiByYXdWYWx1ZSA/IHRoaXMuYWRkQ29tbWFzVG9OdW1iZXIocmF3VmFsdWUpIDogcmF3VmFsdWU7XHJcbiAgICAgICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICBpbnB1dEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoY3Vyc29yUG9zaXRpb24sIGN1cnNvclBvc2l0aW9uKTtcclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBZGQgY29tbWFzIHRvIG51bWJlciBmb3IgZGlzcGxheVxyXG4gIGFkZENvbW1hc1RvTnVtYmVyKHZhbHVlOiBhbnkgfCBudW1iZXIpOiBhbnkge1xyXG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiAnJztcclxuICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcclxuICAgIGNvbnN0IHBhcnRzID0gc3RyaW5nVmFsdWUuc3BsaXQoJy4nKTtcclxuICAgIHBhcnRzWzBdID0gcGFydHNbMF0ucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgJywnKTtcclxuICAgIHJldHVybiBwYXJ0cy5qb2luKCcuJyk7XHJcbiAgfVxyXG4gIGNhbGN1bGF0ZU5ld0N1cnNvclBvc2l0aW9uKG9sZFZhbHVlOiBzdHJpbmcsIG5ld1ZhbHVlOiBzdHJpbmcsIG9sZEN1cnNvclBvc2l0aW9uOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgaWYgKG9sZEN1cnNvclBvc2l0aW9uID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gICAgaWYgKG9sZEN1cnNvclBvc2l0aW9uID49IG9sZFZhbHVlLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gbmV3VmFsdWUubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgbGV0IGRpZ2l0c0JlZm9yZUN1cnNvciA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9sZEN1cnNvclBvc2l0aW9uOyBpKyspIHtcclxuICAgICAgY29uc3QgY2hhciA9IG9sZFZhbHVlW2ldO1xyXG4gICAgICBpZiAoY2hhciAhPT0gJywnKSB7XHJcbiAgICAgICAgZGlnaXRzQmVmb3JlQ3Vyc29yKys7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBkaWdpdENvdW50ID0gMDtcclxuICAgIGxldCBuZXdQb3NpdGlvbiA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld1ZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGNoYXIgPSBuZXdWYWx1ZVtpXTtcclxuICAgICAgaWYgKGNoYXIgIT09ICcsJykge1xyXG4gICAgICAgIGRpZ2l0Q291bnQrKztcclxuICAgICAgICBpZiAoZGlnaXRDb3VudCA9PT0gZGlnaXRzQmVmb3JlQ3Vyc29yKSB7XHJcbiAgICAgICAgICBuZXdQb3NpdGlvbiA9IGkgKyAxO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChkaWdpdENvdW50IDwgZGlnaXRzQmVmb3JlQ3Vyc29yKSB7XHJcbiAgICAgICAgbmV3UG9zaXRpb24gPSBpICsgMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIE1hdGgubWluKG5ld1Bvc2l0aW9uLCBuZXdWYWx1ZS5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgLy8gR2V0IHRoZSBkaXNwbGF5IHZhbHVlIHdpdGggY29tbWFzIGlmIGVuYWJsZWRcclxuICBnZXREaXNwbGF5VmFsdWUoKTogYW55IHtcclxuICAgIGlmICghdGhpcy5pbnB1dFZhbHVlKSByZXR1cm4gJyc7XHJcbiAgICBpZiAodGhpcy5pc0NvbW1hQWRkZWQgJiYgIWlzTmFOKHBhcnNlRmxvYXQodGhpcy5pbnB1dFZhbHVlKSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYWRkQ29tbWFzVG9OdW1iZXIodGhpcy5pbnB1dFZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmlucHV0VmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyBGb3JtYXQgYW1vdW50IHRvIEluZGlhbiBjdXJyZW5jeSBmb3JtYXRcclxuICBmb3JtYXRJbmRpYW5DdXJyZW5jeShhbW91bnQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWFtb3VudCB8fCBhbW91bnQgPT09ICcnKSByZXR1cm4gJyc7XHJcblxyXG4gICAgY29uc3QgbnVtQW1vdW50ID0gdHlwZW9mIGFtb3VudCA9PT0gJ3N0cmluZycgPyBwYXJzZUZsb2F0KGFtb3VudC5yZXBsYWNlKC8sL2csICcnKSkgOiBhbW91bnQ7XHJcbiAgICBpZiAoaXNOYU4obnVtQW1vdW50KSB8fCBudW1BbW91bnQgPT09IDApIHJldHVybiAn4oK5JztcclxuICAgIGlmIChudW1BbW91bnQgPj0gMTAwMDAwMDApIHtcclxuICAgICAgY29uc3QgY3JvcmVzID0gKG51bUFtb3VudCAvIDEwMDAwMDAwKS50b0ZpeGVkKDIpO1xyXG4gICAgICByZXR1cm4gYOKCuSAke2Nyb3Jlc30gQ3JgO1xyXG4gICAgfSBlbHNlIGlmIChudW1BbW91bnQgPj0gMTAwMDAwKSB7XHJcbiAgICAgIGNvbnN0IGxha2hzID0gKG51bUFtb3VudCAvIDEwMDAwMCkudG9GaXhlZCgyKTtcclxuICAgICAgcmV0dXJuIGDigrkgJHtsYWtoc30gTGA7XHJcbiAgICB9IGVsc2UgaWYgKG51bUFtb3VudCA+PSAxMDAwKSB7XHJcbiAgICAgIGNvbnN0IHRob3VzYW5kcyA9IChudW1BbW91bnQgLyAxMDAwKS50b0ZpeGVkKDIpO1xyXG4gICAgICByZXR1cm4gYOKCuSAke3Rob3VzYW5kc30gS2A7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gYOKCuSAke251bUFtb3VudC50b0ZpeGVkKDIpfWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgZm9ybWF0dGVkIGRpc3BsYXkgdmFsdWVcclxuICBnZXRGb3JtYXR0ZWRBbW91bnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdEluZGlhbkN1cnJlbmN5KHRoaXMuc2hhcmVkU2VydmljZS5yZW1vdmVDb21hc0FuZEN1cnJlbmN5U3ltYm9sRnJvbU51bWJlclZhbHVlcyh0aGlzLmlucHV0VmFsdWUpKTtcclxuICB9XHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwiZmllbGQtbGFibGVcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCk/LmlzU2hvd0xhYmVsXCJcclxuICA+e3sgZmllbGQoKS5sYWJlbFxyXG4gIH19PHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LnZhbGlkYXRvcnMuaXNSZXF1aXJlZFwiXHJcbiAgICA+Kjwvc3BhblxyXG4gID48L2xhYmVsXHJcbj5cclxuICA8bWF0LWZvcm0tZmllbGRcclxuICBjbGFzcz1cInctMTAwXCJcclxuICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXHJcbiAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiXHJcbiAgW25nU3R5bGVdPVwie1xyXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlclJhZGl1cyAsXHJcbictLWN1c3RvbS1iZy1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYmFja2dyb3VuZCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JhY2tncm91bmQgLFxyXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlckNvbG9yICxcclxuJy0tY3VzdG9tLWJvcmRlci13aWR0aC1ob3Zlcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaG92ZXJCb3JkZXJXaWR0aCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWVycm9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5lcnJvckJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUgLFxyXG4nLS1jdXN0b20tZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRXZWlnaHQgLFxyXG4nLS1jdXN0b20tZm9udC1mYW1pbHknOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRGYW1pbHkgLFxyXG4nLS1jdXN0b20tZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxyXG4nLS1jdXN0b20tY2FyZXQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNhcmV0Q29sb3IgLFxyXG4nLS1jdXN0b20tZm9udC1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVDb2xvciAsXHJcbictLWN1c3RvbS1iZy1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVCYWNrZ3JvdW5kICxcclxufVwiPlxyXG4gQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xyXG48aW5wdXRcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxyXG4gICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgICAgYXV0b2NvbXBsZXRlPVwibm9uZVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZCgpPy5wbGFjZUhvbGRlclwiXHJcbiAgICAgIFttYXhMZW5ndGhdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ubWF4TGVuZ3RoXCJcclxuICAgICAgW21pbkxlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5taW5MZW5ndGhcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxyXG4gICAgICBbcGF0dGVybl09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICAgIFt2YWx1ZV09XCJnZXREaXNwbGF5VmFsdWUoKVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KClcIlxyXG4gICAgLz5cclxuIH1AZWxzZSB7XHJcbiAgPGlucHV0XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcclxuICAgICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm5vbmVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKT8ucGxhY2VIb2xkZXJcIlxyXG4gICAgICBbbWF4TGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1heExlbmd0aFwiXHJcbiAgICAgIFttaW5MZW5ndGhdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ubWluTGVuZ3RoXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcclxuICAgICAgW3BhdHRlcm5dPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVyblwiXHJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxyXG4gICAgICBbdmFsdWVdPVwiZ2V0RGlzcGxheVZhbHVlKClcIlxyXG4gICAgLz5cclxuIH1cclxuXHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8ucmVxdWlyZWRNZXNzYWdlIH19XHJcbiAgICA8L21hdC1lcnJvcj5cclxuICAgIDxzcGFuIG1hdFByZWZpeCBjbGFzcz1cInJ1cGVlLXN5bWJvbCBweC0yXCI+4oK5PC9zcGFuPlxyXG4gICAgPHNwYW4gbWF0U3VmZml4IGNsYXNzPVwibWUtMiByaWdodC1hbW91bnQtdGV4dFwiPnt7IGdldEZvcm1hdHRlZEFtb3VudCgpIH19PC9zcGFuPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiJdfQ==
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1vdW50LXRleHRib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hbW91bnQtdGV4dGJveC9hbW91bnQtdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2Ftb3VudC10ZXh0Ym94L2Ftb3VudC10ZXh0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFzQjlGLE1BQU0sT0FBTyxzQkFBc0I7SUFDZDtJQUFuQixZQUFtQixhQUFvQztRQUFwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFBRSxDQUFDO0lBQzFELEtBQUssR0FBUyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDcEMsVUFBVSxHQUFRLElBQUksQ0FBQztJQUN2Qix5QkFBeUIsR0FBUyxLQUFLLEVBQU8sQ0FBQztJQUMvQyxTQUFTLEdBQVEsQ0FBQyxVQUFjLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN4QyxVQUFVLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzNCLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEtBQUss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RUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxzQkFBc0I7Z0JBQ25DLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkN4QkwseXlHQTJFQSwwZ0hEaEVJLGtCQUFrQix3a0JBQ2xCLFlBQVksdU5BQ1osY0FBYywwV0FDZCxtQkFBbUI7OzRGQVlWLHNCQUFzQjtrQkFuQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCLGFBR1U7d0JBQ1A7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx3QkFBd0I7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3lGQWVPLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYW1vdW50LXRleHRib3gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYW1vdW50LXRleHRib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hbW91bnQtdGV4dGJveC5jb21wb25lbnQuY3NzJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBBbW91bnRUZXh0Ym94Q29tcG9uZW50LFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFtb3VudFRleHRib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNoYXJlZFNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSl7fVxyXG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG4gIGlucHV0VmFsdWU6IGFueSA9IG51bGw7XHJcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcclxuICBfb25DaGFuZ2U6IGFueSA9IChpbnB1dFZhbHVlOmFueSkgPT4ge307XHJcbiAgX3VuVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcbiAgZ2V0IGlzQ29tbWFBZGRlZCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8uaXNDb21tYUFsbG93ZWQgIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgIHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8uaXNDb21tYUFsbG93ZWQgOiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vIERlY2xhcmUgT3V0cHV0IGV2ZW50IGVtaXR0ZXIgaGVyZSAoY2xhc3MgbGV2ZWwpXHJcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICBpZiAob2JqICE9PSBudWxsICYmIG9iaiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IHJhd1ZhbHVlID0gb2JqLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHJhd1ZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHtcclxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XHJcbiAgfTtcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZHtcclxuICAgIHRoaXMuX3VuVG91Y2hlZCA9IGZuO1xyXG4gIH07XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWR7fTtcclxuXHJcbiAgb25JbnB1dENoYW5nZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IGlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuICAgIGNvbnN0IG9sZFZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xyXG4gICAgY29uc3QgcmF3VmFsdWUgPSBvbGRWYWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgIGlmIChyYXdWYWx1ZSA9PT0gJycgfHwgL15cXGQqXFwuP1xcZCokLy50ZXN0KHJhd1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcclxuICAgICAgaWYgKHRoaXMuaXNDb21tYUFkZGVkICYmIHJhd1ZhbHVlICYmICFpc05hTihwYXJzZUZsb2F0KHJhd1ZhbHVlKSkpIHtcclxuICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuc2hhcmVkU2VydmljZS5hZGRDb21hc1RvTnVtYmVyVmFsdWVzKHJhd1ZhbHVlKTtcclxuICAgICAgICBjb25zdCBuZXdDdXJzb3JQb3NpdGlvbiA9IHRoaXMuY2FsY3VsYXRlTmV3Q3Vyc29yUG9zaXRpb24oXHJcbiAgICAgICAgICBvbGRWYWx1ZSxcclxuICAgICAgICAgIGZvcm1hdHRlZFZhbHVlLFxyXG4gICAgICAgICAgY3Vyc29yUG9zaXRpb25cclxuICAgICAgICApO1xyXG4gICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgaW5wdXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKG5ld0N1cnNvclBvc2l0aW9uLCBuZXdDdXJzb3JQb3NpdGlvbik7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJldmVydFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgdGhpcy5pbnB1dFZhbHVlID9cclxuICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyh0aGlzLmlucHV0VmFsdWUpIDogdGhpcy5pbnB1dFZhbHVlIHx8ICcnO1xyXG4gICAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSByZXZlcnRWYWx1ZTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2FmZUN1cnNvclBvcyA9IE1hdGgubWluKGN1cnNvclBvc2l0aW9uLCByZXZlcnRWYWx1ZS5sZW5ndGgpO1xyXG4gICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzYWZlQ3Vyc29yUG9zLCBzYWZlQ3Vyc29yUG9zKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0Qmx1cihldmVudD86IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5Ub3VjaGVkKCk7XHJcbiAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSBpbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgMDtcclxuICAgIGNvbnN0IHZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgY3Vyc29yUG9zaXRpb24gPiAwKSB7XHJcbiAgICAgIGlmICh2YWx1ZVtjdXJzb3JQb3NpdGlvbiAtIDFdID09PSAnLCcpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclBvc2l0aW9uIC0gMikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yUG9zaXRpb24pO1xyXG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbmV3VmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgaWYgKHJhd1ZhbHVlID09PSAnJyB8fCAvXlxcZCpcXC4/XFxkKiQvLnRlc3QocmF3VmFsdWUpKSB7XHJcbiAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcclxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgcmF3VmFsdWUgPyB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyhyYXdWYWx1ZSkgOiByYXdWYWx1ZTtcclxuICAgICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0N1cnNvclBvcyA9IE1hdGgubWF4KDAsIGN1cnNvclBvc2l0aW9uIC0gMik7XHJcbiAgICAgICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShuZXdDdXJzb3JQb3MsIG5ld0N1cnNvclBvcyk7XHJcbiAgICAgICAgICB9LCAwKTtcclxuXHJcbiAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScgJiYgY3Vyc29yUG9zaXRpb24gPCB2YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgaWYgKHZhbHVlW2N1cnNvclBvc2l0aW9uXSA9PT0gJywnKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gKyAxIDwgdmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBjdXJzb3JQb3NpdGlvbikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yUG9zaXRpb24gKyAyKTtcclxuICAgICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbmV3VmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICBpZiAocmF3VmFsdWUgPT09ICcnIHx8IC9eXFxkKlxcLj9cXGQqJC8udGVzdChyYXdWYWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gcmF3VmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgcmF3VmFsdWUgPyB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyhyYXdWYWx1ZSkgOiByYXdWYWx1ZTtcclxuICAgICAgICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShjdXJzb3JQb3NpdGlvbiwgY3Vyc29yUG9zaXRpb24pO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFkZCBjb21tYXMgdG8gbnVtYmVyIGZvciBJbmRpYW4gZm9ybWF0XHJcbiAgLy8gYWRkQ29tbWFzVG9OdW1iZXIodmFsdWU6IGFueSB8IG51bWJlcik6IGFueSB7XHJcbiAgLy8gICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSAnJykgcmV0dXJuICcnO1xyXG4gIC8vICAgY29uc3Qgc3RyaW5nVmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xyXG4gIC8vICAgY29uc3QgcGFydHMgPSBzdHJpbmdWYWx1ZS5zcGxpdCgnLicpO1xyXG4gIC8vICAgbGV0IGludGVnZXJQYXJ0ID0gcGFydHNbMF07XHJcbiAgLy8gICBpZiAoaW50ZWdlclBhcnQubGVuZ3RoID4gMykge1xyXG4gIC8vICAgICBjb25zdCBsYXN0VGhyZWVEaWdpdHMgPSBpbnRlZ2VyUGFydC5zbGljZSgtMyk7XHJcbiAgLy8gICAgIGNvbnN0IHJlbWFpbmluZ0RpZ2l0cyA9IGludGVnZXJQYXJ0LnNsaWNlKDAsIC0zKTtcclxuICAvLyAgICAgY29uc3QgZm9ybWF0dGVkUmVtYWluaW5nID0gcmVtYWluaW5nRGlnaXRzLnJlcGxhY2UoL1xcQig/PShcXGR7Mn0pKyg/IVxcZCkpL2csICcsJyk7XHJcbiAgLy8gICAgIGludGVnZXJQYXJ0ID0gZm9ybWF0dGVkUmVtYWluaW5nICsgJywnICsgbGFzdFRocmVlRGlnaXRzO1xyXG4gIC8vICAgfVxyXG5cclxuICAvLyAgIHJldHVybiBwYXJ0c1sxXSA/IGludGVnZXJQYXJ0ICsgJy4nICsgcGFydHNbMV0gOiBpbnRlZ2VyUGFydDtcclxuICAvLyB9XHJcbiAgY2FsY3VsYXRlTmV3Q3Vyc29yUG9zaXRpb24ob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZywgb2xkQ3Vyc29yUG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBpZiAob2xkQ3Vyc29yUG9zaXRpb24gPT09IDApIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgICBpZiAob2xkQ3Vyc29yUG9zaXRpb24gPj0gb2xkVmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBuZXdWYWx1ZS5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBsZXQgZGlnaXRzQmVmb3JlQ3Vyc29yID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2xkQ3Vyc29yUG9zaXRpb247IGkrKykge1xyXG4gICAgICBjb25zdCBjaGFyID0gb2xkVmFsdWVbaV07XHJcbiAgICAgIGlmIChjaGFyICE9PSAnLCcpIHtcclxuICAgICAgICBkaWdpdHNCZWZvcmVDdXJzb3IrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IGRpZ2l0Q291bnQgPSAwO1xyXG4gICAgbGV0IG5ld1Bvc2l0aW9uID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmV3VmFsdWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgY2hhciA9IG5ld1ZhbHVlW2ldO1xyXG4gICAgICBpZiAoY2hhciAhPT0gJywnKSB7XHJcbiAgICAgICAgZGlnaXRDb3VudCsrO1xyXG4gICAgICAgIGlmIChkaWdpdENvdW50ID09PSBkaWdpdHNCZWZvcmVDdXJzb3IpIHtcclxuICAgICAgICAgIG5ld1Bvc2l0aW9uID0gaSArIDE7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRpZ2l0Q291bnQgPCBkaWdpdHNCZWZvcmVDdXJzb3IpIHtcclxuICAgICAgICBuZXdQb3NpdGlvbiA9IGkgKyAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gTWF0aC5taW4obmV3UG9zaXRpb24sIG5ld1ZhbHVlLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgdGhlIGRpc3BsYXkgdmFsdWUgd2l0aCBjb21tYXMgaWYgZW5hYmxlZFxyXG4gIGdldERpc3BsYXlWYWx1ZSgpOiBhbnkge1xyXG4gICAgaWYgKCF0aGlzLmlucHV0VmFsdWUpIHJldHVybiAnJztcclxuICAgIGlmICh0aGlzLmlzQ29tbWFBZGRlZCAmJiAhaXNOYU4ocGFyc2VGbG9hdCh0aGlzLmlucHV0VmFsdWUpKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaGFyZWRTZXJ2aWNlLmFkZENvbWFzVG9OdW1iZXJWYWx1ZXModGhpcy5pbnB1dFZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmlucHV0VmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyBGb3JtYXQgYW1vdW50IHRvIEluZGlhbiBjdXJyZW5jeSBmb3JtYXRcclxuICBmb3JtYXRJbmRpYW5DdXJyZW5jeShhbW91bnQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWFtb3VudCB8fCBhbW91bnQgPT09ICcnKSByZXR1cm4gJyc7XHJcblxyXG4gICAgY29uc3QgbnVtQW1vdW50ID0gdHlwZW9mIGFtb3VudCA9PT0gJ3N0cmluZycgPyBwYXJzZUZsb2F0KGFtb3VudC5yZXBsYWNlKC8sL2csICcnKSkgOiBhbW91bnQ7XHJcbiAgICBpZiAoaXNOYU4obnVtQW1vdW50KSB8fCBudW1BbW91bnQgPT09IDApIHJldHVybiAn4oK5JztcclxuICAgIGlmIChudW1BbW91bnQgPj0gMTAwMDAwMDApIHtcclxuICAgICAgY29uc3QgY3JvcmVzID0gKG51bUFtb3VudCAvIDEwMDAwMDAwKS50b0ZpeGVkKDIpO1xyXG4gICAgICByZXR1cm4gYOKCuSAke2Nyb3Jlc30gQ3JgO1xyXG4gICAgfSBlbHNlIGlmIChudW1BbW91bnQgPj0gMTAwMDAwKSB7XHJcbiAgICAgIGNvbnN0IGxha2hzID0gKG51bUFtb3VudCAvIDEwMDAwMCkudG9GaXhlZCgyKTtcclxuICAgICAgcmV0dXJuIGDigrkgJHtsYWtoc30gTGA7XHJcbiAgICB9IGVsc2UgaWYgKG51bUFtb3VudCA+PSAxMDAwKSB7XHJcbiAgICAgIGNvbnN0IHRob3VzYW5kcyA9IChudW1BbW91bnQgLyAxMDAwKS50b0ZpeGVkKDIpO1xyXG4gICAgICByZXR1cm4gYOKCuSAke3Rob3VzYW5kc30gS2A7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gYOKCuSAke251bUFtb3VudC50b0ZpeGVkKDIpfWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgZm9ybWF0dGVkIGRpc3BsYXkgdmFsdWVcclxuICBnZXRGb3JtYXR0ZWRBbW91bnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdEluZGlhbkN1cnJlbmN5KHRoaXMuc2hhcmVkU2VydmljZS5yZW1vdmVDb21hc0FuZEN1cnJlbmN5U3ltYm9sRnJvbU51bWJlclZhbHVlcyh0aGlzLmlucHV0VmFsdWUpKTtcclxuICB9XHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwiZmllbGQtbGFibGVcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCk/LmlzU2hvd0xhYmVsXCJcclxuICA+e3sgZmllbGQoKS5sYWJlbFxyXG4gIH19PHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LnZhbGlkYXRvcnMuaXNSZXF1aXJlZFwiXHJcbiAgICA+Kjwvc3BhblxyXG4gID48L2xhYmVsXHJcbj5cclxuICA8bWF0LWZvcm0tZmllbGRcclxuICBjbGFzcz1cInctMTAwXCJcclxuICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXHJcbiAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiXHJcbiAgW25nU3R5bGVdPVwie1xyXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlclJhZGl1cyAsXHJcbictLWN1c3RvbS1iZy1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYmFja2dyb3VuZCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JhY2tncm91bmQgLFxyXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlckNvbG9yICxcclxuJy0tY3VzdG9tLWJvcmRlci13aWR0aC1ob3Zlcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaG92ZXJCb3JkZXJXaWR0aCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWVycm9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5lcnJvckJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUgLFxyXG4nLS1jdXN0b20tZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRXZWlnaHQgLFxyXG4nLS1jdXN0b20tZm9udC1mYW1pbHknOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRGYW1pbHkgLFxyXG4nLS1jdXN0b20tZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxyXG4nLS1jdXN0b20tY2FyZXQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNhcmV0Q29sb3IgLFxyXG4nLS1jdXN0b20tZm9udC1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVDb2xvciAsXHJcbictLWN1c3RvbS1iZy1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVCYWNrZ3JvdW5kICxcclxufVwiPlxyXG4gQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xyXG48aW5wdXRcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxyXG4gICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgICAgYXV0b2NvbXBsZXRlPVwibm9uZVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZCgpPy5wbGFjZUhvbGRlclwiXHJcbiAgICAgIFttYXhMZW5ndGhdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ubWF4TGVuZ3RoXCJcclxuICAgICAgW21pbkxlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5taW5MZW5ndGhcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxyXG4gICAgICBbcGF0dGVybl09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICAgIFt2YWx1ZV09XCJnZXREaXNwbGF5VmFsdWUoKVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KClcIlxyXG4gICAgLz5cclxuIH1AZWxzZSB7XHJcbiAgPGlucHV0XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcclxuICAgICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm5vbmVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKT8ucGxhY2VIb2xkZXJcIlxyXG4gICAgICBbbWF4TGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1heExlbmd0aFwiXHJcbiAgICAgIFttaW5MZW5ndGhdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ubWluTGVuZ3RoXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcclxuICAgICAgW3BhdHRlcm5dPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVyblwiXHJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxyXG4gICAgICBbdmFsdWVdPVwiZ2V0RGlzcGxheVZhbHVlKClcIlxyXG4gICAgLz5cclxuIH1cclxuXHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8ucmVxdWlyZWRNZXNzYWdlIH19XHJcbiAgICA8L21hdC1lcnJvcj5cclxuICAgIDxzcGFuIG1hdFByZWZpeCBjbGFzcz1cInJ1cGVlLXN5bWJvbCBweC0yXCI+4oK5PC9zcGFuPlxyXG4gICAgPHNwYW4gbWF0U3VmZml4IGNsYXNzPVwibWUtMiByaWdodC1hbW91bnQtdGV4dFwiICpuZ0lmPVwiaW5wdXRWYWx1ZVwiPnt7IGdldEZvcm1hdHRlZEFtb3VudCgpIH19PC9zcGFuPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiJdfQ==
@@ -70,7 +70,7 @@ export class CheckboxComponent {
70
70
  useExisting: CheckboxComponent,
71
71
  multi: true
72
72
  }
73
- ], ngImport: i0, template: "@if(reactiveFormControlobject()) {\r\n<mat-checkbox *ngIf=\"field() && field()?.isVisible\" [name]=\"field()?.fieldName\" [id]=\"field()?.fieldName\"\r\n [disabled]=\"field()?.isDisable\" [required]=\"field()?.validators?.isRequired\" [checked]=\"inputValue\"\r\n [formControl]=\"reactiveFormControlobject()\" (change)=\"onCheckboxChange($event)\" [ngStyle]=\"{\r\n '--checkbox-border-radius': field()?.controlStyle?.borderRadius,\r\n '--checkbox-bg-color': field()?.controlStyle?.background,\r\n '--checkbox-border-color': field()?.controlStyle?.borderColor,\r\n '--checkbox-border-color-focus': field()?.controlStyle?.focusBorderColor,\r\n '--checkbox-bg-color-focus': field()?.controlStyle?.focusBackground,\r\n '--checkbox-font-size': field()?.controlStyle?.fontSize,\r\n '--checkbox-font-weight': field()?.controlStyle?.fontWeight,\r\n '--checkbox-font-color': field()?.controlStyle?.color,\r\n '--checkbox-font-family': field()?.controlStyle?.fontFamily,\r\n '--checkbox-border-width': field()?.controlStyle?.borderWidth,\r\n '--checkbox-border-color-hover': field()?.controlStyle?.hoverBorderColor,\r\n '--checkbox-border-color-error': field()?.controlStyle?.errorBorderColor,\r\n '--checkbox-font-color-disabled': field()?.controlStyle?.disableColor,\r\n '--checkbox-bg-color-disabled': field()?.controlStyle?.disableBackground\r\n }\">\r\n {{ field()?.label }}\r\n <span [innerHTML]=\"field()?.configData?.innerHTML\"></span>\r\n <span [appTooltipTemplate]=\"HtmlContent\" arrowPosition=\"left\" tooltipPosition=\"bottom\">\r\n <img [src]=\"field().imageUrl\" class=\"toggle-img mx-1\" />\r\n </span>\r\n <ng-template #HtmlContent>\r\n <span [innerHTML]=\"field().configData?.tooltipMessage\"></span>\r\n </ng-template>\r\n</mat-checkbox>\r\n}@else {\r\n<mat-checkbox *ngIf=\"field() && field()?.isVisible\" [name]=\"field()?.fieldName\" [id]=\"field()?.fieldName\"\r\n [disabled]=\"field()?.isDisable\" [required]=\"field()?.validators?.isRequired\" [checked]=\"inputValue\"\r\n (change)=\"onCheckboxChange($event)\" [ngStyle]=\"{\r\n '--checkbox-border-radius': field()?.controlStyle?.borderRadius,\r\n '--checkbox-bg-color': field()?.controlStyle?.background,\r\n '--checkbox-border-color': field()?.controlStyle?.borderColor,\r\n '--checkbox-border-color-focus': field()?.controlStyle?.focusBorderColor,\r\n '--checkbox-bg-color-focus': field()?.controlStyle?.focusBackground,\r\n '--checkbox-font-size': field()?.controlStyle?.fontSize,\r\n '--checkbox-font-weight': field()?.controlStyle?.fontWeight,\r\n '--checkbox-font-color': field()?.controlStyle?.color,\r\n '--checkbox-font-family': field()?.controlStyle?.fontFamily,\r\n '--checkbox-border-width': field()?.controlStyle?.borderWidth,\r\n '--checkbox-border-color-hover': field()?.controlStyle?.hoverBorderColor,\r\n '--checkbox-border-color-error': field()?.controlStyle?.errorBorderColor,\r\n '--checkbox-font-color-disabled': field()?.controlStyle?.disableColor,\r\n '--checkbox-bg-color-disabled': field()?.controlStyle?.disableBackground\r\n }\">\r\n {{ field()?.label }}\r\n <span [innerHTML]=\"field()?.configData?.innerHTML\"></span>\r\n</mat-checkbox>\r\n}\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{field()?.validators?.isRequiredMessage}}.\r\n</div>", styles: ["*{font-family:mulish!important}.error-message{color:red}.toggle-img{width:12px;margin-left:8px!important}@media screen and (max-width: 768px){.toggle-img{width:16px}}::ng-deep .mdc-checkbox__background{border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background{background-color:var(--checkbox-bg-color , #ffffff)!important;border-color:#0000}::ng-deep .mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--checkbox-bg-color , #ffffff)!important;border-color:#0000}::ng-deep .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{border-color:var(--checkbox-border-color-focus, #ffbb00)!important;background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--checkbox-border-color-focus, #ffbb00)!important;background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked:after{color:#fff!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked{background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox{border:1px solid #DADADA}::ng-deep .checkbox{padding:4px 8px 3px 0;background:#f5f5f5;border-radius:4px;margin-right:8px}::ng-deep .mat-mdc-checkbox label{font-size:var(--checkbox-font-size , 16px)!important;font-weight:var(--checkbox-font-weight , 700)!important;color:var(--checkbox-font-color , #444)!important;padding:0!important;margin-bottom:2px;font-family:Mulish!important;margin-top:8px}::ng-deep .mat-mdc-checkbox .mdc-checkbox__ripple{display:none}::ng-deep .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff!important}::ng-deep .mat-internal-form-field{align-items:flex-start!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: CustomizedTooltipDirective, selector: "[appTooltipTemplate]", inputs: ["appTooltipTemplate"] }] });
73
+ ], ngImport: i0, template: "@if(reactiveFormControlobject()) {\r\n<mat-checkbox *ngIf=\"field() && field()?.isVisible\" [name]=\"field()?.fieldName\" [id]=\"field()?.fieldName\"\r\n [disabled]=\"field()?.isDisable\" [required]=\"field()?.validators?.isRequired\" [checked]=\"inputValue\" (keydown.enter)=\"$event.preventDefault()\"\r\n [formControl]=\"reactiveFormControlobject()\" (change)=\"onCheckboxChange($event)\" [ngStyle]=\"{\r\n '--checkbox-border-radius': field()?.controlStyle?.borderRadius,\r\n '--checkbox-bg-color': field()?.controlStyle?.background,\r\n '--checkbox-border-color': field()?.controlStyle?.borderColor,\r\n '--checkbox-border-color-focus': field()?.controlStyle?.focusBorderColor,\r\n '--checkbox-bg-color-focus': field()?.controlStyle?.focusBackground,\r\n '--checkbox-font-size': field()?.controlStyle?.fontSize,\r\n '--checkbox-font-weight': field()?.controlStyle?.fontWeight,\r\n '--checkbox-font-color': field()?.controlStyle?.color,\r\n '--checkbox-font-family': field()?.controlStyle?.fontFamily,\r\n '--checkbox-border-width': field()?.controlStyle?.borderWidth,\r\n '--checkbox-border-color-hover': field()?.controlStyle?.hoverBorderColor,\r\n '--checkbox-border-color-error': field()?.controlStyle?.errorBorderColor,\r\n '--checkbox-font-color-disabled': field()?.controlStyle?.disableColor,\r\n '--checkbox-bg-color-disabled': field()?.controlStyle?.disableBackground\r\n }\">\r\n {{ field()?.label }}\r\n <span [innerHTML]=\"field()?.configData?.innerHTML\"></span>\r\n <span [appTooltipTemplate]=\"HtmlContent\" arrowPosition=\"left\" tooltipPosition=\"bottom\">\r\n <img [src]=\"field().imageUrl\" class=\"toggle-img mx-1\" />\r\n </span>\r\n <ng-template #HtmlContent>\r\n <span [innerHTML]=\"field().configData?.tooltipMessage\"></span>\r\n </ng-template>\r\n</mat-checkbox>\r\n}@else {\r\n<mat-checkbox *ngIf=\"field() && field()?.isVisible\" [name]=\"field()?.fieldName\" [id]=\"field()?.fieldName\"\r\n [disabled]=\"field()?.isDisable\" [required]=\"field()?.validators?.isRequired\" [checked]=\"inputValue\"\r\n (change)=\"onCheckboxChange($event)\" [ngStyle]=\"{\r\n '--checkbox-border-radius': field()?.controlStyle?.borderRadius,\r\n '--checkbox-bg-color': field()?.controlStyle?.background,\r\n '--checkbox-border-color': field()?.controlStyle?.borderColor,\r\n '--checkbox-border-color-focus': field()?.controlStyle?.focusBorderColor,\r\n '--checkbox-bg-color-focus': field()?.controlStyle?.focusBackground,\r\n '--checkbox-font-size': field()?.controlStyle?.fontSize,\r\n '--checkbox-font-weight': field()?.controlStyle?.fontWeight,\r\n '--checkbox-font-color': field()?.controlStyle?.color,\r\n '--checkbox-font-family': field()?.controlStyle?.fontFamily,\r\n '--checkbox-border-width': field()?.controlStyle?.borderWidth,\r\n '--checkbox-border-color-hover': field()?.controlStyle?.hoverBorderColor,\r\n '--checkbox-border-color-error': field()?.controlStyle?.errorBorderColor,\r\n '--checkbox-font-color-disabled': field()?.controlStyle?.disableColor,\r\n '--checkbox-bg-color-disabled': field()?.controlStyle?.disableBackground\r\n }\">\r\n {{ field()?.label }}\r\n <span [innerHTML]=\"field()?.configData?.innerHTML\"></span>\r\n</mat-checkbox>\r\n}\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{field()?.validators?.isRequiredMessage}}.\r\n</div>\r\n", styles: ["*{font-family:mulish!important}.error-message{color:red}.toggle-img{width:12px;margin-left:8px!important}@media screen and (max-width: 768px){.toggle-img{width:16px}}::ng-deep .mdc-checkbox__background{border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background{background-color:var(--checkbox-bg-color , #ffffff)!important;border-color:#0000}::ng-deep .mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--checkbox-bg-color , #ffffff)!important;border-color:#0000}::ng-deep .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{border-color:var(--checkbox-border-color-focus, #ffbb00)!important;background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--checkbox-border-color-focus, #ffbb00)!important;background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked:after{color:#fff!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked{background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox{border:1px solid #DADADA}::ng-deep .checkbox{padding:4px 8px 3px 0;background:#f5f5f5;border-radius:4px;margin-right:8px}::ng-deep .mat-mdc-checkbox label{font-size:var(--checkbox-font-size , 16px)!important;font-weight:var(--checkbox-font-weight , 700)!important;color:var(--checkbox-font-color , #444)!important;padding:0!important;margin-bottom:2px;font-family:Mulish!important;margin-top:8px}::ng-deep .mat-mdc-checkbox .mdc-checkbox__ripple{display:none}::ng-deep .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff!important}::ng-deep .mat-internal-form-field{align-items:flex-start!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: CustomizedTooltipDirective, selector: "[appTooltipTemplate]", inputs: ["appTooltipTemplate"] }] });
74
74
  }
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxComponent, decorators: [{
76
76
  type: Component,
@@ -80,8 +80,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
80
80
  useExisting: CheckboxComponent,
81
81
  multi: true
82
82
  }
83
- ], template: "@if(reactiveFormControlobject()) {\r\n<mat-checkbox *ngIf=\"field() && field()?.isVisible\" [name]=\"field()?.fieldName\" [id]=\"field()?.fieldName\"\r\n [disabled]=\"field()?.isDisable\" [required]=\"field()?.validators?.isRequired\" [checked]=\"inputValue\"\r\n [formControl]=\"reactiveFormControlobject()\" (change)=\"onCheckboxChange($event)\" [ngStyle]=\"{\r\n '--checkbox-border-radius': field()?.controlStyle?.borderRadius,\r\n '--checkbox-bg-color': field()?.controlStyle?.background,\r\n '--checkbox-border-color': field()?.controlStyle?.borderColor,\r\n '--checkbox-border-color-focus': field()?.controlStyle?.focusBorderColor,\r\n '--checkbox-bg-color-focus': field()?.controlStyle?.focusBackground,\r\n '--checkbox-font-size': field()?.controlStyle?.fontSize,\r\n '--checkbox-font-weight': field()?.controlStyle?.fontWeight,\r\n '--checkbox-font-color': field()?.controlStyle?.color,\r\n '--checkbox-font-family': field()?.controlStyle?.fontFamily,\r\n '--checkbox-border-width': field()?.controlStyle?.borderWidth,\r\n '--checkbox-border-color-hover': field()?.controlStyle?.hoverBorderColor,\r\n '--checkbox-border-color-error': field()?.controlStyle?.errorBorderColor,\r\n '--checkbox-font-color-disabled': field()?.controlStyle?.disableColor,\r\n '--checkbox-bg-color-disabled': field()?.controlStyle?.disableBackground\r\n }\">\r\n {{ field()?.label }}\r\n <span [innerHTML]=\"field()?.configData?.innerHTML\"></span>\r\n <span [appTooltipTemplate]=\"HtmlContent\" arrowPosition=\"left\" tooltipPosition=\"bottom\">\r\n <img [src]=\"field().imageUrl\" class=\"toggle-img mx-1\" />\r\n </span>\r\n <ng-template #HtmlContent>\r\n <span [innerHTML]=\"field().configData?.tooltipMessage\"></span>\r\n </ng-template>\r\n</mat-checkbox>\r\n}@else {\r\n<mat-checkbox *ngIf=\"field() && field()?.isVisible\" [name]=\"field()?.fieldName\" [id]=\"field()?.fieldName\"\r\n [disabled]=\"field()?.isDisable\" [required]=\"field()?.validators?.isRequired\" [checked]=\"inputValue\"\r\n (change)=\"onCheckboxChange($event)\" [ngStyle]=\"{\r\n '--checkbox-border-radius': field()?.controlStyle?.borderRadius,\r\n '--checkbox-bg-color': field()?.controlStyle?.background,\r\n '--checkbox-border-color': field()?.controlStyle?.borderColor,\r\n '--checkbox-border-color-focus': field()?.controlStyle?.focusBorderColor,\r\n '--checkbox-bg-color-focus': field()?.controlStyle?.focusBackground,\r\n '--checkbox-font-size': field()?.controlStyle?.fontSize,\r\n '--checkbox-font-weight': field()?.controlStyle?.fontWeight,\r\n '--checkbox-font-color': field()?.controlStyle?.color,\r\n '--checkbox-font-family': field()?.controlStyle?.fontFamily,\r\n '--checkbox-border-width': field()?.controlStyle?.borderWidth,\r\n '--checkbox-border-color-hover': field()?.controlStyle?.hoverBorderColor,\r\n '--checkbox-border-color-error': field()?.controlStyle?.errorBorderColor,\r\n '--checkbox-font-color-disabled': field()?.controlStyle?.disableColor,\r\n '--checkbox-bg-color-disabled': field()?.controlStyle?.disableBackground\r\n }\">\r\n {{ field()?.label }}\r\n <span [innerHTML]=\"field()?.configData?.innerHTML\"></span>\r\n</mat-checkbox>\r\n}\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{field()?.validators?.isRequiredMessage}}.\r\n</div>", styles: ["*{font-family:mulish!important}.error-message{color:red}.toggle-img{width:12px;margin-left:8px!important}@media screen and (max-width: 768px){.toggle-img{width:16px}}::ng-deep .mdc-checkbox__background{border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background{background-color:var(--checkbox-bg-color , #ffffff)!important;border-color:#0000}::ng-deep .mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--checkbox-bg-color , #ffffff)!important;border-color:#0000}::ng-deep .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{border-color:var(--checkbox-border-color-focus, #ffbb00)!important;background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--checkbox-border-color-focus, #ffbb00)!important;background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked:after{color:#fff!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked{background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox{border:1px solid #DADADA}::ng-deep .checkbox{padding:4px 8px 3px 0;background:#f5f5f5;border-radius:4px;margin-right:8px}::ng-deep .mat-mdc-checkbox label{font-size:var(--checkbox-font-size , 16px)!important;font-weight:var(--checkbox-font-weight , 700)!important;color:var(--checkbox-font-color , #444)!important;padding:0!important;margin-bottom:2px;font-family:Mulish!important;margin-top:8px}::ng-deep .mat-mdc-checkbox .mdc-checkbox__ripple{display:none}::ng-deep .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff!important}::ng-deep .mat-internal-form-field{align-items:flex-start!important}\n"] }]
83
+ ], template: "@if(reactiveFormControlobject()) {\r\n<mat-checkbox *ngIf=\"field() && field()?.isVisible\" [name]=\"field()?.fieldName\" [id]=\"field()?.fieldName\"\r\n [disabled]=\"field()?.isDisable\" [required]=\"field()?.validators?.isRequired\" [checked]=\"inputValue\" (keydown.enter)=\"$event.preventDefault()\"\r\n [formControl]=\"reactiveFormControlobject()\" (change)=\"onCheckboxChange($event)\" [ngStyle]=\"{\r\n '--checkbox-border-radius': field()?.controlStyle?.borderRadius,\r\n '--checkbox-bg-color': field()?.controlStyle?.background,\r\n '--checkbox-border-color': field()?.controlStyle?.borderColor,\r\n '--checkbox-border-color-focus': field()?.controlStyle?.focusBorderColor,\r\n '--checkbox-bg-color-focus': field()?.controlStyle?.focusBackground,\r\n '--checkbox-font-size': field()?.controlStyle?.fontSize,\r\n '--checkbox-font-weight': field()?.controlStyle?.fontWeight,\r\n '--checkbox-font-color': field()?.controlStyle?.color,\r\n '--checkbox-font-family': field()?.controlStyle?.fontFamily,\r\n '--checkbox-border-width': field()?.controlStyle?.borderWidth,\r\n '--checkbox-border-color-hover': field()?.controlStyle?.hoverBorderColor,\r\n '--checkbox-border-color-error': field()?.controlStyle?.errorBorderColor,\r\n '--checkbox-font-color-disabled': field()?.controlStyle?.disableColor,\r\n '--checkbox-bg-color-disabled': field()?.controlStyle?.disableBackground\r\n }\">\r\n {{ field()?.label }}\r\n <span [innerHTML]=\"field()?.configData?.innerHTML\"></span>\r\n <span [appTooltipTemplate]=\"HtmlContent\" arrowPosition=\"left\" tooltipPosition=\"bottom\">\r\n <img [src]=\"field().imageUrl\" class=\"toggle-img mx-1\" />\r\n </span>\r\n <ng-template #HtmlContent>\r\n <span [innerHTML]=\"field().configData?.tooltipMessage\"></span>\r\n </ng-template>\r\n</mat-checkbox>\r\n}@else {\r\n<mat-checkbox *ngIf=\"field() && field()?.isVisible\" [name]=\"field()?.fieldName\" [id]=\"field()?.fieldName\"\r\n [disabled]=\"field()?.isDisable\" [required]=\"field()?.validators?.isRequired\" [checked]=\"inputValue\"\r\n (change)=\"onCheckboxChange($event)\" [ngStyle]=\"{\r\n '--checkbox-border-radius': field()?.controlStyle?.borderRadius,\r\n '--checkbox-bg-color': field()?.controlStyle?.background,\r\n '--checkbox-border-color': field()?.controlStyle?.borderColor,\r\n '--checkbox-border-color-focus': field()?.controlStyle?.focusBorderColor,\r\n '--checkbox-bg-color-focus': field()?.controlStyle?.focusBackground,\r\n '--checkbox-font-size': field()?.controlStyle?.fontSize,\r\n '--checkbox-font-weight': field()?.controlStyle?.fontWeight,\r\n '--checkbox-font-color': field()?.controlStyle?.color,\r\n '--checkbox-font-family': field()?.controlStyle?.fontFamily,\r\n '--checkbox-border-width': field()?.controlStyle?.borderWidth,\r\n '--checkbox-border-color-hover': field()?.controlStyle?.hoverBorderColor,\r\n '--checkbox-border-color-error': field()?.controlStyle?.errorBorderColor,\r\n '--checkbox-font-color-disabled': field()?.controlStyle?.disableColor,\r\n '--checkbox-bg-color-disabled': field()?.controlStyle?.disableBackground\r\n }\">\r\n {{ field()?.label }}\r\n <span [innerHTML]=\"field()?.configData?.innerHTML\"></span>\r\n</mat-checkbox>\r\n}\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{field()?.validators?.isRequiredMessage}}.\r\n</div>\r\n", styles: ["*{font-family:mulish!important}.error-message{color:red}.toggle-img{width:12px;margin-left:8px!important}@media screen and (max-width: 768px){.toggle-img{width:16px}}::ng-deep .mdc-checkbox__background{border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background{background-color:var(--checkbox-bg-color , #ffffff)!important;border-color:#0000}::ng-deep .mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--checkbox-bg-color , #ffffff)!important;border-color:#0000}::ng-deep .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{border-color:var(--checkbox-border-color-focus, #ffbb00)!important;background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--checkbox-border-color-focus, #ffbb00)!important;background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked:after{color:#fff!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked{background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--checkbox-bg-color-focus, #ffbb00)!important;border-radius:var(--checkbox-border-radius, 4px)!important}::ng-deep .mat-pseudo-checkbox{border:1px solid #DADADA}::ng-deep .checkbox{padding:4px 8px 3px 0;background:#f5f5f5;border-radius:4px;margin-right:8px}::ng-deep .mat-mdc-checkbox label{font-size:var(--checkbox-font-size , 16px)!important;font-weight:var(--checkbox-font-weight , 700)!important;color:var(--checkbox-font-color , #444)!important;padding:0!important;margin-bottom:2px;font-family:Mulish!important;margin-top:8px}::ng-deep .mat-mdc-checkbox .mdc-checkbox__ripple{display:none}::ng-deep .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff!important}::ng-deep .mat-internal-form-field{align-items:flex-start!important}\n"] }]
84
84
  }], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { change: [{
85
85
  type: Output
86
86
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7O0FBaUJ4RixNQUFNLE9BQU8saUJBQWlCO0lBQ1Q7SUFBbkIsWUFBbUIsYUFBb0M7UUFBcEMsa0JBQWEsR0FBYixhQUFhLENBQXVCO0lBQUUsQ0FBQztJQUMxRCxLQUFLLEdBQVEsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBRW5DLFVBQVUsR0FBUSxLQUFLLENBQUM7SUFDeEIseUJBQXlCLEdBQVMsS0FBSyxFQUFPLENBQUM7SUFDckMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDM0MsU0FBUyxHQUFRLENBQUMsVUFBYyxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDeEMsVUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUzQixVQUFVLENBQUMsR0FBUTtRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFDLEdBQUcsQ0FBQztJQUN0QixD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QixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDcEJMLG0xR0FxRE0sNnpFRDFDTSxZQUFZLHVOQUFHLGlCQUFpQixvWUFBRSxtQkFBbUIsdWhCQUFFLDBCQUEwQjs7NEZBV2hGLGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFHLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixDQUFDLGFBRy9FO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsbUJBQW1COzRCQUM5QixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt5RkFRTyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21pemVkVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvY3VzdG9taXplZC50b29sdGlwLmRpcmVjdGl2ZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2hlY2tib3gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSAsIE1hdENoZWNrYm94TW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBDdXN0b21pemVkVG9vbHRpcERpcmVjdGl2ZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50LmNzcycsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBDaGVja2JveENvbXBvbmVudCxcclxuICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWFzdGVyU2VydmljZSA6IE1hc3RlckNvbnRyb2xTZXJ2aWNlKXt9XHJcbiAgZmllbGQ6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcclxuXHJcbiAgaW5wdXRWYWx1ZTogYW55ID0gZmFsc2U7XHJcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgX29uQ2hhbmdlOiBhbnkgPSAoaW5wdXRWYWx1ZTphbnkpID0+IHt9O1xyXG4gIF91blRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZHtcclxuICAgIHRoaXMuaW5wdXRWYWx1ZT1vYmo7XHJcbiAgfTtcclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9O1xyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5fdW5Ub3VjaGVkID0gZm47XHJcbiAgfTtcclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZHt9O1xyXG5cclxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkNoZWNrYm94Q2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZXZlbnQuY2hlY2tlZDtcclxuICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgICB0aGlzLl91blRvdWNoZWQoKTtcclxuICAgIC8vIHRoaXMuY2hhbmdlLmVtaXQoeyBldmVudCwgZmllbGQ6IHRoaXMuZmllbGQoKSB9KTtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5pbnB1dFZhbHVlKTtcclxuICAgIGNvbnN0IGNzcyA9IHRoaXMuZmllbGQoKT8uY29udHJvbFN0eWxlO1xyXG4gIGlmIChldmVudC5jaGVja2VkKSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1jaGVja2JveC1ib3JkZXItZm9jdXMnLCBjc3M/LmZvY3VzQm9yZGVyQ29sb3IgfHwgJyNmZmJiMDAnKTtcclxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3VzdG9tLWNoZWNrYm94LWJnLWNvbG9yLWZvY3VzJywgY3NzPy5mb2N1c0JhY2tncm91bmQgfHwgJyNmZmJiMDAnKTtcclxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3VzdG9tLWNoZWNrYm94LWJvcmRlci1yYWRpdXMtY2hlY2tib3gnLCBjc3M/LmJvcmRlclJhZGl1cyB8fCAnNHB4Jyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1mb250LXNpemUnLCBjc3M/LmZvbnRTaXplIHx8ICcxNnB4Jyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1mb250LXdlaWdodCcsIGNzcz8uZm9udFdlaWdodCB8fCAnNDAwJyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1mb250LWZhbWlseScsIGNzcz8uZm9udEZhbWlseSB8fCAnTXVsaXNoJyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1mb250LWNvbG9yJywgY3NzPy5jb2xvciB8fCAnIzQ0NCcpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1ib3JkZXItY29sb3ItZm9jdXMnLCBjc3M/LmZvY3VzQm9yZGVyQ29sb3IgfHwgJyNkZGQnKTtcclxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3VzdG9tLWJnLWNvbG9yLWZvY3VzJywgY3NzPy5mb2N1c0JhY2tncm91bmQgfHwgJyM5OTknKTtcclxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3VzdG9tLWJvcmRlci1yYWRpdXMtY2hlY2tib3gnLCBjc3M/LmJvcmRlclJhZGl1cyB8fCAnNHB4Jyk7XHJcbiAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dEJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blRvdWNoZWQoKTtcclxuICB9XHJcbn1cclxuIiwiQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xyXG48bWF0LWNoZWNrYm94ICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGVcIiBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIiBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCIgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIiBbY2hlY2tlZF09XCJpbnB1dFZhbHVlXCJcclxuICBbZm9ybUNvbnRyb2xdPVwicmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKCRldmVudClcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICctLWNoZWNrYm94LWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlclJhZGl1cyxcclxuICAgICAgJy0tY2hlY2tib3gtYmctY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJhY2tncm91bmQsXHJcbiAgICAgICctLWNoZWNrYm94LWJvcmRlci1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyQ29sb3IsXHJcbiAgICAgICctLWNoZWNrYm94LWJvcmRlci1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJDb2xvcixcclxuICAgICAgJy0tY2hlY2tib3gtYmctY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQmFja2dyb3VuZCxcclxuICAgICAgJy0tY2hlY2tib3gtZm9udC1zaXplJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250U2l6ZSxcclxuICAgICAgJy0tY2hlY2tib3gtZm9udC13ZWlnaHQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRXZWlnaHQsXHJcbiAgICAgICctLWNoZWNrYm94LWZvbnQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNvbG9yLFxyXG4gICAgICAnLS1jaGVja2JveC1mb250LWZhbWlseSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udEZhbWlseSxcclxuICAgICAgJy0tY2hlY2tib3gtYm9yZGVyLXdpZHRoJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJXaWR0aCxcclxuICAgICAgJy0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlckNvbG9yLFxyXG4gICAgICAnLS1jaGVja2JveC1ib3JkZXItY29sb3ItZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyQ29sb3IsXHJcbiAgICAgICctLWNoZWNrYm94LWZvbnQtY29sb3ItZGlzYWJsZWQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVDb2xvcixcclxuICAgICAgJy0tY2hlY2tib3gtYmctY29sb3ItZGlzYWJsZWQnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVCYWNrZ3JvdW5kXHJcbiAgICB9XCI+XHJcbiAge3sgZmllbGQoKT8ubGFiZWwgfX1cclxuICA8c3BhbiBbaW5uZXJIVE1MXT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/LmlubmVySFRNTFwiPjwvc3Bhbj5cclxuICA8c3BhbiBbYXBwVG9vbHRpcFRlbXBsYXRlXT1cIkh0bWxDb250ZW50XCIgYXJyb3dQb3NpdGlvbj1cImxlZnRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj5cclxuICAgIDxpbWcgW3NyY109XCJmaWVsZCgpLmltYWdlVXJsXCIgY2xhc3M9XCJ0b2dnbGUtaW1nIG14LTFcIiAvPlxyXG4gIDwvc3Bhbj5cclxuICA8bmctdGVtcGxhdGUgI0h0bWxDb250ZW50PlxyXG4gICAgPHNwYW4gW2lubmVySFRNTF09XCJmaWVsZCgpLmNvbmZpZ0RhdGE/LnRvb2x0aXBNZXNzYWdlXCI+PC9zcGFuPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbWF0LWNoZWNrYm94PlxyXG59QGVsc2Uge1xyXG48bWF0LWNoZWNrYm94ICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGVcIiBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIiBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCIgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIiBbY2hlY2tlZF09XCJpbnB1dFZhbHVlXCJcclxuICAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoJGV2ZW50KVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgJy0tY2hlY2tib3gtYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyUmFkaXVzLFxyXG4gICAgICAnLS1jaGVja2JveC1iZy1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYmFja2dyb3VuZCxcclxuICAgICAgJy0tY2hlY2tib3gtYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvcixcclxuICAgICAgJy0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlckNvbG9yLFxyXG4gICAgICAnLS1jaGVja2JveC1iZy1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCYWNrZ3JvdW5kLFxyXG4gICAgICAnLS1jaGVja2JveC1mb250LXNpemUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRTaXplLFxyXG4gICAgICAnLS1jaGVja2JveC1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCxcclxuICAgICAgJy0tY2hlY2tib3gtZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IsXHJcbiAgICAgICctLWNoZWNrYm94LWZvbnQtZmFtaWx5JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250RmFtaWx5LFxyXG4gICAgICAnLS1jaGVja2JveC1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoLFxyXG4gICAgICAnLS1jaGVja2JveC1ib3JkZXItY29sb3ItaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyQ29sb3IsXHJcbiAgICAgICctLWNoZWNrYm94LWJvcmRlci1jb2xvci1lcnJvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZXJyb3JCb3JkZXJDb2xvcixcclxuICAgICAgJy0tY2hlY2tib3gtZm9udC1jb2xvci1kaXNhYmxlZCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUNvbG9yLFxyXG4gICAgICAnLS1jaGVja2JveC1iZy1jb2xvci1kaXNhYmxlZCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUJhY2tncm91bmRcclxuICAgIH1cIj5cclxuICB7eyBmaWVsZCgpPy5sYWJlbCB9fVxyXG4gIDxzcGFuIFtpbm5lckhUTUxdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8uaW5uZXJIVE1MXCI+PC9zcGFuPlxyXG48L21hdC1jaGVja2JveD5cclxufVxyXG48ZGl2IGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmFsc2VcIj5cclxuICB7e2ZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRNZXNzYWdlfX0uXHJcbjwvZGl2PiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7O0FBaUJ4RixNQUFNLE9BQU8saUJBQWlCO0lBQ1Q7SUFBbkIsWUFBbUIsYUFBb0M7UUFBcEMsa0JBQWEsR0FBYixhQUFhLENBQXVCO0lBQUUsQ0FBQztJQUMxRCxLQUFLLEdBQVEsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBRW5DLFVBQVUsR0FBUSxLQUFLLENBQUM7SUFDeEIseUJBQXlCLEdBQVMsS0FBSyxFQUFPLENBQUM7SUFDckMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDM0MsU0FBUyxHQUFRLENBQUMsVUFBYyxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDeEMsVUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUUzQixVQUFVLENBQUMsR0FBUTtRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFDLEdBQUcsQ0FBQztJQUN0QixD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QixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDcEJMLG00R0FzREEsNnpFRDNDWSxZQUFZLHVOQUFHLGlCQUFpQixvWUFBRSxtQkFBbUIsdWhCQUFFLDBCQUEwQjs7NEZBV2hGLGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFHLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixDQUFDLGFBRy9FO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsbUJBQW1COzRCQUM5QixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt5RkFRTyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21pemVkVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvY3VzdG9taXplZC50b29sdGlwLmRpcmVjdGl2ZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2hlY2tib3gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSAsIE1hdENoZWNrYm94TW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBDdXN0b21pemVkVG9vbHRpcERpcmVjdGl2ZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50LmNzcycsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBDaGVja2JveENvbXBvbmVudCxcclxuICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWFzdGVyU2VydmljZSA6IE1hc3RlckNvbnRyb2xTZXJ2aWNlKXt9XHJcbiAgZmllbGQ6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcclxuXHJcbiAgaW5wdXRWYWx1ZTogYW55ID0gZmFsc2U7XHJcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgX29uQ2hhbmdlOiBhbnkgPSAoaW5wdXRWYWx1ZTphbnkpID0+IHt9O1xyXG4gIF91blRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZHtcclxuICAgIHRoaXMuaW5wdXRWYWx1ZT1vYmo7XHJcbiAgfTtcclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9O1xyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5fdW5Ub3VjaGVkID0gZm47XHJcbiAgfTtcclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZHt9O1xyXG5cclxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkNoZWNrYm94Q2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZXZlbnQuY2hlY2tlZDtcclxuICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgICB0aGlzLl91blRvdWNoZWQoKTtcclxuICAgIC8vIHRoaXMuY2hhbmdlLmVtaXQoeyBldmVudCwgZmllbGQ6IHRoaXMuZmllbGQoKSB9KTtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5pbnB1dFZhbHVlKTtcclxuICAgIGNvbnN0IGNzcyA9IHRoaXMuZmllbGQoKT8uY29udHJvbFN0eWxlO1xyXG4gIGlmIChldmVudC5jaGVja2VkKSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1jaGVja2JveC1ib3JkZXItZm9jdXMnLCBjc3M/LmZvY3VzQm9yZGVyQ29sb3IgfHwgJyNmZmJiMDAnKTtcclxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3VzdG9tLWNoZWNrYm94LWJnLWNvbG9yLWZvY3VzJywgY3NzPy5mb2N1c0JhY2tncm91bmQgfHwgJyNmZmJiMDAnKTtcclxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3VzdG9tLWNoZWNrYm94LWJvcmRlci1yYWRpdXMtY2hlY2tib3gnLCBjc3M/LmJvcmRlclJhZGl1cyB8fCAnNHB4Jyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1mb250LXNpemUnLCBjc3M/LmZvbnRTaXplIHx8ICcxNnB4Jyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1mb250LXdlaWdodCcsIGNzcz8uZm9udFdlaWdodCB8fCAnNDAwJyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1mb250LWZhbWlseScsIGNzcz8uZm9udEZhbWlseSB8fCAnTXVsaXNoJyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1mb250LWNvbG9yJywgY3NzPy5jb2xvciB8fCAnIzQ0NCcpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLWN1c3RvbS1ib3JkZXItY29sb3ItZm9jdXMnLCBjc3M/LmZvY3VzQm9yZGVyQ29sb3IgfHwgJyNkZGQnKTtcclxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3VzdG9tLWJnLWNvbG9yLWZvY3VzJywgY3NzPy5mb2N1c0JhY2tncm91bmQgfHwgJyM5OTknKTtcclxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3VzdG9tLWJvcmRlci1yYWRpdXMtY2hlY2tib3gnLCBjc3M/LmJvcmRlclJhZGl1cyB8fCAnNHB4Jyk7XHJcbiAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dEJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blRvdWNoZWQoKTtcclxuICB9XHJcbn1cclxuIiwiQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xyXG48bWF0LWNoZWNrYm94ICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGVcIiBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIiBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCIgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIiBbY2hlY2tlZF09XCJpbnB1dFZhbHVlXCIgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxyXG4gIFtmb3JtQ29udHJvbF09XCJyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KClcIiAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoJGV2ZW50KVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgJy0tY2hlY2tib3gtYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyUmFkaXVzLFxyXG4gICAgICAnLS1jaGVja2JveC1iZy1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYmFja2dyb3VuZCxcclxuICAgICAgJy0tY2hlY2tib3gtYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvcixcclxuICAgICAgJy0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlckNvbG9yLFxyXG4gICAgICAnLS1jaGVja2JveC1iZy1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCYWNrZ3JvdW5kLFxyXG4gICAgICAnLS1jaGVja2JveC1mb250LXNpemUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRTaXplLFxyXG4gICAgICAnLS1jaGVja2JveC1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCxcclxuICAgICAgJy0tY2hlY2tib3gtZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IsXHJcbiAgICAgICctLWNoZWNrYm94LWZvbnQtZmFtaWx5JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250RmFtaWx5LFxyXG4gICAgICAnLS1jaGVja2JveC1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoLFxyXG4gICAgICAnLS1jaGVja2JveC1ib3JkZXItY29sb3ItaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyQ29sb3IsXHJcbiAgICAgICctLWNoZWNrYm94LWJvcmRlci1jb2xvci1lcnJvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZXJyb3JCb3JkZXJDb2xvcixcclxuICAgICAgJy0tY2hlY2tib3gtZm9udC1jb2xvci1kaXNhYmxlZCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUNvbG9yLFxyXG4gICAgICAnLS1jaGVja2JveC1iZy1jb2xvci1kaXNhYmxlZCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUJhY2tncm91bmRcclxuICAgIH1cIj5cclxuICB7eyBmaWVsZCgpPy5sYWJlbCB9fVxyXG4gIDxzcGFuIFtpbm5lckhUTUxdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8uaW5uZXJIVE1MXCI+PC9zcGFuPlxyXG4gIDxzcGFuIFthcHBUb29sdGlwVGVtcGxhdGVdPVwiSHRtbENvbnRlbnRcIiBhcnJvd1Bvc2l0aW9uPVwibGVmdFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPlxyXG4gICAgPGltZyBbc3JjXT1cImZpZWxkKCkuaW1hZ2VVcmxcIiBjbGFzcz1cInRvZ2dsZS1pbWcgbXgtMVwiIC8+XHJcbiAgPC9zcGFuPlxyXG4gIDxuZy10ZW1wbGF0ZSAjSHRtbENvbnRlbnQ+XHJcbiAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImZpZWxkKCkuY29uZmlnRGF0YT8udG9vbHRpcE1lc3NhZ2VcIj48L3NwYW4+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9tYXQtY2hlY2tib3g+XHJcbn1AZWxzZSB7XHJcbjxtYXQtY2hlY2tib3ggKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIiBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiIFtjaGVja2VkXT1cImlucHV0VmFsdWVcIlxyXG4gIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZSgkZXZlbnQpXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAnLS1jaGVja2JveC1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJSYWRpdXMsXHJcbiAgICAgICctLWNoZWNrYm94LWJnLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5iYWNrZ3JvdW5kLFxyXG4gICAgICAnLS1jaGVja2JveC1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yLFxyXG4gICAgICAnLS1jaGVja2JveC1ib3JkZXItY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IsXHJcbiAgICAgICctLWNoZWNrYm94LWJnLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JhY2tncm91bmQsXHJcbiAgICAgICctLWNoZWNrYm94LWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUsXHJcbiAgICAgICctLWNoZWNrYm94LWZvbnQtd2VpZ2h0JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250V2VpZ2h0LFxyXG4gICAgICAnLS1jaGVja2JveC1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jb2xvcixcclxuICAgICAgJy0tY2hlY2tib3gtZm9udC1mYW1pbHknOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRGYW1pbHksXHJcbiAgICAgICctLWNoZWNrYm94LWJvcmRlci13aWR0aCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyV2lkdGgsXHJcbiAgICAgICctLWNoZWNrYm94LWJvcmRlci1jb2xvci1ob3Zlcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaG92ZXJCb3JkZXJDb2xvcixcclxuICAgICAgJy0tY2hlY2tib3gtYm9yZGVyLWNvbG9yLWVycm9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5lcnJvckJvcmRlckNvbG9yLFxyXG4gICAgICAnLS1jaGVja2JveC1mb250LWNvbG9yLWRpc2FibGVkJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5kaXNhYmxlQ29sb3IsXHJcbiAgICAgICctLWNoZWNrYm94LWJnLWNvbG9yLWRpc2FibGVkJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5kaXNhYmxlQmFja2dyb3VuZFxyXG4gICAgfVwiPlxyXG4gIHt7IGZpZWxkKCk/LmxhYmVsIH19XHJcbiAgPHNwYW4gW2lubmVySFRNTF09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5pbm5lckhUTUxcIj48L3NwYW4+XHJcbjwvbWF0LWNoZWNrYm94PlxyXG59XHJcbjxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gIHt7ZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZE1lc3NhZ2V9fS5cclxuPC9kaXY+XHJcbiJdfQ==