fx-form-builder-wrapper 2.0.101 → 2.0.103

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.
@@ -386,13 +386,13 @@ export class CustomizeDropdownComponent extends FxBaseComponent {
386
386
  this.updateFindings();
387
387
  }
388
388
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomizeDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.FxBuilderWrapperService }, { token: i3.ApiServiceRegistry }, { token: i4.FormBuilder }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
389
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomizeDropdownComponent, isStandalone: true, selector: "lib-customize-dropdown", viewQueries: [{ propertyName: "fxComponent", first: true, predicate: ["fxComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"container\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"relative\">\r\n <!-- Header -->\r\n <label for=\"findings\" class=\"input-label\">\r\n {{ setting('findingLabel') }}\r\n <span *ngIf=\"isRequired\" class=\"field-required\">*</span>\r\n </label>\r\n <div #dropdownWrapper class=\"relative\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full border border-gray-300 px-3 py-2 flex justify-between items-center bg-white text-gray-700 hover:border-blue-400\"\r\n (click)=\"toggleDropdown()\"\r\n >\r\n <span *ngIf=\"hasSelectedFindings; else placeholder\">\r\n {{ selectedFindingsLabel }}\r\n </span>\r\n <ng-template #placeholder>\r\n {{ setting('placeholderLabel') }}\r\n </ng-template>\r\n <svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"#FF7900\" fill-opacity=\"0.1\" />\r\n <path\r\n d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\"\r\n fill=\"#FAA762\" />\r\n </svg>\r\n <svg\r\n path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\">\r\n </svg>\r\n </button>\r\n\r\n <!-- Panel -->\r\n <div\r\n *ngIf=\"dropdownOpen\"\r\n class=\"absolute mt-1 w-full bg-white border border-gray-300 rounded-md shadow-lg max-h-64 overflow-y-auto z-10\"\r\n >\r\n <div\r\n *ngFor=\"let option of findingsOptions\"\r\n class=\"border-b border-gray-100 last:border-none p-2 hover:bg-gray-50 cursor-pointer\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- Checkbox + Label -->\r\n <div class=\"flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"w-4 h-4 text-blue-500 border-gray-300 rounded cursor-pointer\"\r\n [(ngModel)]=\"option.selected\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (click)=\"toggleOption(option, $event)\"\r\n />\r\n <label\r\n class=\"text-gray-800 font-medium cursor-pointer select-none\"\r\n (click)=\"toggleOption(option, $event)\"\r\n >\r\n {{ option.label }}\r\n </label>\r\n\r\n <span\r\n *ngIf=\"option.info\"\r\n class=\"ml-auto text-blue-500 text-sm cursor-pointer\"\r\n title=\"{{ option.info }}\"\r\n >\r\n \u24D8\r\n </span>\r\n </div>\r\n\r\n <!-- Radios -->\r\n <div\r\n class=\"flex items-center flex-wrap gap-4 ml-6 mt-2 text-sm\"\r\n *ngIf=\"option.selected && option.subOptions\"\r\n >\r\n <ng-container *ngFor=\"let s of option.subOptions\">\r\n <label\r\n class=\"flex items-center space-x-1 cursor-pointer\"\r\n (click)=\"selectSubOption(option, s)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"option.value\"\r\n [value]=\"s.value\"\r\n [(ngModel)]=\"option.subSelection\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n class=\"text-blue-600 cursor-pointer\"\r\n />\r\n <span>{{ s.label }}</span>\r\n </label>\r\n</ng-container>\r\n\r\n <!-- Validation Message -->\r\n <div\r\n *ngIf=\"option.selected && option.subOptions && !option.subSelection\"\r\n class=\"text-red-500 text-xs mt-1 w-full ml-1\"\r\n >\r\n Please select one option\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <small *ngIf=\"form.get('findings')?.touched && form.get('findings')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('errorFindingMessage') }}\r\n </small>\r\n </div>\r\n \r\n </form>\r\n </div>\r\n</fx-component>\r\n", styles: [".dropdown{position:relative;-webkit-user-select:none;user-select:none}.dropdown-header{border:1px solid #ccc;border-radius:4px;padding:6px 8px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.dropdown-panel{position:absolute;width:100%;background:#fff;border:1px solid #ddd;margin-top:4px;border-radius:4px;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 2px 8px #0000001a}.dropdown-item{padding:4px 8px;border-bottom:1px solid #f1f1f1}.dropdown-item:last-child{border-bottom:none}.item-header{display:flex;align-items:center;gap:6px}.label{cursor:pointer;flex-grow:1}.info{margin-left:auto;cursor:help;font-size:12px;color:#666}.sub-options{display:flex;align-items:center;flex-wrap:wrap;padding-left:22px;font-size:13px;margin-top:4px}.error{color:#e63946;font-size:11px;margin-left:22px;margin-top:2px}.arrow{font-size:10px;color:#555}.submit-btn{margin-top:1rem;padding:6px 12px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer}.field-required{color:red;font-size:1.1em}.container>form>button{height:33.6px;font-size:12px;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }] });
389
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomizeDropdownComponent, isStandalone: true, selector: "lib-customize-dropdown", viewQueries: [{ propertyName: "fxComponent", first: true, predicate: ["fxComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"container\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"relative\">\r\n <!-- Header -->\r\n <label for=\"findings\" class=\"input-label\">\r\n {{ setting('findingLabel') }}\r\n <span *ngIf=\"isRequired\" class=\"field-required\">*</span>\r\n </label>\r\n <div #dropdownWrapper class=\"relative\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full border border-gray-300 px-3 py-2 flex justify-between items-center bg-white text-gray-700 hover:border-blue-400\"\r\n (click)=\"toggleDropdown()\"\r\n >\r\n <span *ngIf=\"hasSelectedFindings; else placeholder\">\r\n {{ selectedFindingsLabel }}\r\n </span>\r\n <ng-template #placeholder>\r\n {{ setting('placeholderLabel') }}\r\n </ng-template>\r\n <svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"#FF7900\" fill-opacity=\"0.1\" />\r\n <path\r\n d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\"\r\n fill=\"#FAA762\" />\r\n </svg>\r\n </button>\r\n\r\n <!-- Panel -->\r\n <div\r\n *ngIf=\"dropdownOpen\"\r\n class=\"absolute mt-1 w-full bg-white border border-gray-300 rounded-md shadow-lg max-h-64 overflow-y-auto z-10\"\r\n >\r\n <div\r\n *ngFor=\"let option of findingsOptions\"\r\n class=\"border-b border-gray-100 last:border-none p-2 hover:bg-gray-50 cursor-pointer\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- Checkbox + Label -->\r\n <div class=\"flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"w-4 h-4 text-blue-500 border-gray-300 rounded cursor-pointer\"\r\n [(ngModel)]=\"option.selected\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (click)=\"toggleOption(option, $event)\"\r\n />\r\n <label\r\n class=\"text-gray-800 font-medium cursor-pointer select-none\"\r\n (click)=\"toggleOption(option, $event)\"\r\n >\r\n {{ option.label }}\r\n </label>\r\n\r\n <span\r\n *ngIf=\"option.info\"\r\n class=\"ml-auto text-blue-500 text-sm cursor-pointer\"\r\n title=\"{{ option.info }}\"\r\n >\r\n \u24D8\r\n </span>\r\n </div>\r\n\r\n <!-- Radios -->\r\n <div\r\n class=\"flex items-center flex-wrap gap-4 ml-6 mt-2 text-sm\"\r\n *ngIf=\"option.selected && option.subOptions\"\r\n >\r\n <ng-container *ngFor=\"let s of option.subOptions\">\r\n <label\r\n class=\"flex items-center space-x-1 cursor-pointer\"\r\n (click)=\"selectSubOption(option, s)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"option.value\"\r\n [value]=\"s.value\"\r\n [(ngModel)]=\"option.subSelection\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n class=\"text-blue-600 cursor-pointer\"\r\n />\r\n <span>{{ s.label }}</span>\r\n </label>\r\n</ng-container>\r\n\r\n <!-- Validation Message -->\r\n <div\r\n *ngIf=\"option.selected && option.subOptions && !option.subSelection\"\r\n class=\"text-red-500 text-xs mt-1 w-full ml-1\"\r\n >\r\n Please select one option\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <small *ngIf=\"form.get('findings')?.touched && form.get('findings')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('errorFindingMessage') }}\r\n </small>\r\n </div>\r\n \r\n </form>\r\n </div>\r\n</fx-component>\r\n", styles: [".dropdown{position:relative;-webkit-user-select:none;user-select:none}.dropdown-header{border:1px solid #ccc;border-radius:4px;padding:6px 8px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.dropdown-panel{position:absolute;width:100%;background:#fff;border:1px solid #ddd;margin-top:4px;border-radius:4px;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 2px 8px #0000001a}.dropdown-item{padding:4px 8px;border-bottom:1px solid #f1f1f1}.dropdown-item:last-child{border-bottom:none}.item-header{display:flex;align-items:center;gap:6px}.label{cursor:pointer;flex-grow:1}.info{margin-left:auto;cursor:help;font-size:12px;color:#666}.sub-options{display:flex;align-items:center;flex-wrap:wrap;padding-left:22px;font-size:13px;margin-top:4px}.error{color:#e63946;font-size:11px;margin-left:22px;margin-top:2px}.arrow{font-size:10px;color:#555}.submit-btn{margin-top:1rem;padding:6px 12px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer}.field-required{color:red;font-size:1.1em}.container>form>button{height:33.6px;font-size:12px;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }] });
390
390
  }
391
391
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomizeDropdownComponent, decorators: [{
392
392
  type: Component,
393
- args: [{ selector: 'lib-customize-dropdown', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"container\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"relative\">\r\n <!-- Header -->\r\n <label for=\"findings\" class=\"input-label\">\r\n {{ setting('findingLabel') }}\r\n <span *ngIf=\"isRequired\" class=\"field-required\">*</span>\r\n </label>\r\n <div #dropdownWrapper class=\"relative\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full border border-gray-300 px-3 py-2 flex justify-between items-center bg-white text-gray-700 hover:border-blue-400\"\r\n (click)=\"toggleDropdown()\"\r\n >\r\n <span *ngIf=\"hasSelectedFindings; else placeholder\">\r\n {{ selectedFindingsLabel }}\r\n </span>\r\n <ng-template #placeholder>\r\n {{ setting('placeholderLabel') }}\r\n </ng-template>\r\n <svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"#FF7900\" fill-opacity=\"0.1\" />\r\n <path\r\n d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\"\r\n fill=\"#FAA762\" />\r\n </svg>\r\n <svg\r\n path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\">\r\n </svg>\r\n </button>\r\n\r\n <!-- Panel -->\r\n <div\r\n *ngIf=\"dropdownOpen\"\r\n class=\"absolute mt-1 w-full bg-white border border-gray-300 rounded-md shadow-lg max-h-64 overflow-y-auto z-10\"\r\n >\r\n <div\r\n *ngFor=\"let option of findingsOptions\"\r\n class=\"border-b border-gray-100 last:border-none p-2 hover:bg-gray-50 cursor-pointer\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- Checkbox + Label -->\r\n <div class=\"flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"w-4 h-4 text-blue-500 border-gray-300 rounded cursor-pointer\"\r\n [(ngModel)]=\"option.selected\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (click)=\"toggleOption(option, $event)\"\r\n />\r\n <label\r\n class=\"text-gray-800 font-medium cursor-pointer select-none\"\r\n (click)=\"toggleOption(option, $event)\"\r\n >\r\n {{ option.label }}\r\n </label>\r\n\r\n <span\r\n *ngIf=\"option.info\"\r\n class=\"ml-auto text-blue-500 text-sm cursor-pointer\"\r\n title=\"{{ option.info }}\"\r\n >\r\n \u24D8\r\n </span>\r\n </div>\r\n\r\n <!-- Radios -->\r\n <div\r\n class=\"flex items-center flex-wrap gap-4 ml-6 mt-2 text-sm\"\r\n *ngIf=\"option.selected && option.subOptions\"\r\n >\r\n <ng-container *ngFor=\"let s of option.subOptions\">\r\n <label\r\n class=\"flex items-center space-x-1 cursor-pointer\"\r\n (click)=\"selectSubOption(option, s)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"option.value\"\r\n [value]=\"s.value\"\r\n [(ngModel)]=\"option.subSelection\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n class=\"text-blue-600 cursor-pointer\"\r\n />\r\n <span>{{ s.label }}</span>\r\n </label>\r\n</ng-container>\r\n\r\n <!-- Validation Message -->\r\n <div\r\n *ngIf=\"option.selected && option.subOptions && !option.subSelection\"\r\n class=\"text-red-500 text-xs mt-1 w-full ml-1\"\r\n >\r\n Please select one option\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <small *ngIf=\"form.get('findings')?.touched && form.get('findings')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('errorFindingMessage') }}\r\n </small>\r\n </div>\r\n \r\n </form>\r\n </div>\r\n</fx-component>\r\n", styles: [".dropdown{position:relative;-webkit-user-select:none;user-select:none}.dropdown-header{border:1px solid #ccc;border-radius:4px;padding:6px 8px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.dropdown-panel{position:absolute;width:100%;background:#fff;border:1px solid #ddd;margin-top:4px;border-radius:4px;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 2px 8px #0000001a}.dropdown-item{padding:4px 8px;border-bottom:1px solid #f1f1f1}.dropdown-item:last-child{border-bottom:none}.item-header{display:flex;align-items:center;gap:6px}.label{cursor:pointer;flex-grow:1}.info{margin-left:auto;cursor:help;font-size:12px;color:#666}.sub-options{display:flex;align-items:center;flex-wrap:wrap;padding-left:22px;font-size:13px;margin-top:4px}.error{color:#e63946;font-size:11px;margin-left:22px;margin-top:2px}.arrow{font-size:10px;color:#555}.submit-btn{margin-top:1rem;padding:6px 12px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer}.field-required{color:red;font-size:1.1em}.container>form>button{height:33.6px;font-size:12px;border-radius:4px}\n"] }]
393
+ args: [{ selector: 'lib-customize-dropdown', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"container\">\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"relative\">\r\n <!-- Header -->\r\n <label for=\"findings\" class=\"input-label\">\r\n {{ setting('findingLabel') }}\r\n <span *ngIf=\"isRequired\" class=\"field-required\">*</span>\r\n </label>\r\n <div #dropdownWrapper class=\"relative\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full border border-gray-300 px-3 py-2 flex justify-between items-center bg-white text-gray-700 hover:border-blue-400\"\r\n (click)=\"toggleDropdown()\"\r\n >\r\n <span *ngIf=\"hasSelectedFindings; else placeholder\">\r\n {{ selectedFindingsLabel }}\r\n </span>\r\n <ng-template #placeholder>\r\n {{ setting('placeholderLabel') }}\r\n </ng-template>\r\n <svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"#FF7900\" fill-opacity=\"0.1\" />\r\n <path\r\n d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\"\r\n fill=\"#FAA762\" />\r\n </svg>\r\n </button>\r\n\r\n <!-- Panel -->\r\n <div\r\n *ngIf=\"dropdownOpen\"\r\n class=\"absolute mt-1 w-full bg-white border border-gray-300 rounded-md shadow-lg max-h-64 overflow-y-auto z-10\"\r\n >\r\n <div\r\n *ngFor=\"let option of findingsOptions\"\r\n class=\"border-b border-gray-100 last:border-none p-2 hover:bg-gray-50 cursor-pointer\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- Checkbox + Label -->\r\n <div class=\"flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"w-4 h-4 text-blue-500 border-gray-300 rounded cursor-pointer\"\r\n [(ngModel)]=\"option.selected\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (click)=\"toggleOption(option, $event)\"\r\n />\r\n <label\r\n class=\"text-gray-800 font-medium cursor-pointer select-none\"\r\n (click)=\"toggleOption(option, $event)\"\r\n >\r\n {{ option.label }}\r\n </label>\r\n\r\n <span\r\n *ngIf=\"option.info\"\r\n class=\"ml-auto text-blue-500 text-sm cursor-pointer\"\r\n title=\"{{ option.info }}\"\r\n >\r\n \u24D8\r\n </span>\r\n </div>\r\n\r\n <!-- Radios -->\r\n <div\r\n class=\"flex items-center flex-wrap gap-4 ml-6 mt-2 text-sm\"\r\n *ngIf=\"option.selected && option.subOptions\"\r\n >\r\n <ng-container *ngFor=\"let s of option.subOptions\">\r\n <label\r\n class=\"flex items-center space-x-1 cursor-pointer\"\r\n (click)=\"selectSubOption(option, s)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"option.value\"\r\n [value]=\"s.value\"\r\n [(ngModel)]=\"option.subSelection\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n class=\"text-blue-600 cursor-pointer\"\r\n />\r\n <span>{{ s.label }}</span>\r\n </label>\r\n</ng-container>\r\n\r\n <!-- Validation Message -->\r\n <div\r\n *ngIf=\"option.selected && option.subOptions && !option.subSelection\"\r\n class=\"text-red-500 text-xs mt-1 w-full ml-1\"\r\n >\r\n Please select one option\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <small *ngIf=\"form.get('findings')?.touched && form.get('findings')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('errorFindingMessage') }}\r\n </small>\r\n </div>\r\n \r\n </form>\r\n </div>\r\n</fx-component>\r\n", styles: [".dropdown{position:relative;-webkit-user-select:none;user-select:none}.dropdown-header{border:1px solid #ccc;border-radius:4px;padding:6px 8px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.dropdown-panel{position:absolute;width:100%;background:#fff;border:1px solid #ddd;margin-top:4px;border-radius:4px;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 2px 8px #0000001a}.dropdown-item{padding:4px 8px;border-bottom:1px solid #f1f1f1}.dropdown-item:last-child{border-bottom:none}.item-header{display:flex;align-items:center;gap:6px}.label{cursor:pointer;flex-grow:1}.info{margin-left:auto;cursor:help;font-size:12px;color:#666}.sub-options{display:flex;align-items:center;flex-wrap:wrap;padding-left:22px;font-size:13px;margin-top:4px}.error{color:#e63946;font-size:11px;margin-left:22px;margin-top:2px}.arrow{font-size:10px;color:#555}.submit-btn{margin-top:1rem;padding:6px 12px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer}.field-required{color:red;font-size:1.1em}.container>form>button{height:33.6px;font-size:12px;border-radius:4px}\n"] }]
394
394
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.FxBuilderWrapperService }, { type: i3.ApiServiceRegistry }, { type: i4.FormBuilder }, { type: i0.ElementRef }], propDecorators: { fxComponent: [{
395
395
  type: ViewChild,
396
396
  args: ['fxComponent']
397
397
  }] } });
398
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXplLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z4LWJ1aWxkZXItd3JhcHBlci9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9taXplLWRyb3Bkb3duL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbWl6ZS1kcm9wZG93bi9jdXN0b21pemUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBb0MsU0FBUyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUEwQixXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEcsT0FBTyxFQUNMLGVBQWUsRUFDZixXQUFXLEVBQ1gsZUFBZSxFQUVmLGVBQWUsRUFFZixrQkFBa0IsRUFDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQThCMUMsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQWU7SUFvSG5EO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXhIRixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUMxQyxJQUFJLENBQWE7SUFDakIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDSSxXQUFXLENBQWU7SUFFcEQsZUFBZSxHQUEyQixFQUFFLENBQUM7SUFFN0MsWUFBWSxHQUFV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Q0FBdUM7Z0JBQ3ZDLDZEQUE2RDtZQUMvRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILDhDQUE4QztRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVcsRUFBRSxTQUFjO1FBQ3pDLDRDQUE0QztRQUM1QyxNQUFNLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdEMsaUVBQWlFO1FBQ2pFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQzt3R0F0YVksMEJBQTBCOzRGQUExQiwwQkFBMEIscU5DN0N2QywyekpBNkdBLHVxQ0RwRVksWUFBWSwrUEFBRSxtQkFBbUIsZ3JDQUFFLFdBQVcsdVBBQUUsV0FBVzs7NEZBSTFELDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7eU9BVTVDLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRnhCYXNlQ29tcG9uZW50LFxyXG4gIEZ4Q29tcG9uZW50LFxyXG4gIEZ4U2VsZWN0U2V0dGluZyxcclxuICBGeFNldHRpbmcsXHJcbiAgRnhTdHJpbmdTZXR0aW5nLFxyXG4gIEZ4VmFsaWRhdGlvbixcclxuICBGeFZhbGlkYXRvclNlcnZpY2VcclxufSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW50ZXJmYWNlIFN1Yk9wdGlvbiB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQ3VzdG9tRHJvcGRvd25PcHRpb24ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBpbmZvPzogc3RyaW5nO1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG4gIHN1Yk9wdGlvbnM/OiBTdWJPcHRpb25bXTtcclxuICBzdWJTZWxlY3Rpb24/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICB0b3VjaGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIEN1c3RvbURyb3Bkb3duQ29uZmlnIHtcclxuICBkaXNwbGF5TW9kZT86ICdjb21wYWN0JyB8ICdlbGxpcHNpcyc7XHJcbiAgcGxhY2Vob2xkZXJMYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3VzdG9taXplLWRyb3Bkb3duJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGeENvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9taXplLWRyb3Bkb3duLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9taXplRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgLCBBZnRlclZpZXdJbml0e1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgZm9ybU9iamVjdDogb2JqZWN0ID0ge307XHJcbiAgZHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgZm9ybVN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ2Z4Q29tcG9uZW50JykgZnhDb21wb25lbnQhOiBGeENvbXBvbmVudDtcclxuXHJcbiAgZmluZGluZ3NPcHRpb25zOiBDdXN0b21Ecm9wZG93bk9wdGlvbltdID0gW107XHJcblxyXG4gIHR5cGUxT3B0aW9uczogYW55W10gPSBbICAgIHtcclxuICAgICAgbGFiZWw6ICdQcm9jbGluYXRpb24nLFxyXG4gICAgICB2YWx1ZTogJ1Byb2NsaW5hdGlvbicsXHJcbiAgICAgIGluZm86ICdGb3J3YXJkIGluY2xpbmF0aW9uIG9mIHRlZXRoJyxcclxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6ICdDcm93ZGluZycsXHJcbiAgICAgIHZhbHVlOiAnQ3Jvd2RpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ1NwYWNpbmcnLFxyXG4gICAgICB2YWx1ZTogJ1NwYWNpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ1JldHJvY2xpbmF0aW9uJyxcclxuICAgICAgdmFsdWU6ICdSZXRyb2NsaW5hdGlvbicsXHJcbiAgICAgIGluZm86ICdCYWNrd2FyZCBpbmNsaW5hdGlvbiBvZiB0ZWV0aCcsXHJcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6ICdSb3RhdGlvbicsXHJcbiAgICAgIHZhbHVlOiAnUm90YXRpb24nLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfV07XHJcblxyXG4gIHR5cGUyT3B0aW9uczogYW55W10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICBsYWJlbDogJ05vcm1hbCcsXHJcbiAgICAgIHZhbHVlOiAnTm9ybWFsJyxcclxuICAgICAgaW5mbzogJycsXHJcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgc3ViT3B0aW9uczogW1xyXG4gICAgICAgIHsgbGFiZWw6ICdNaWxkJywgdmFsdWU6ICdtaWxkJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdNb2RlcmF0ZScsIHZhbHVlOiAnbW9kZXJhdGUnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ1NldmVyZScsIHZhbHVlOiAnc2V2ZXJlJyB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOiAnRGVlcCBCaXRlJyxcclxuICAgICAgdmFsdWU6ICdEZWVwIEJpdGUnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ09wZW4gQml0ZScsXHJcbiAgICAgIHZhbHVlOiAnT3BlbiBCaXRlJyxcclxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuICBpc1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICAvLyBvbkNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCkge1xyXG4gIC8vICAgaWYgKHRoaXMuZHJvcGRvd25PcGVuICYmICF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgLy8gICAgIHRoaXMuZHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgLy8gICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIGNvbmZpZzogQ3VzdG9tRHJvcGRvd25Db25maWcgPSB7XHJcbiAgICBkaXNwbGF5TW9kZTogJ2VsbGlwc2lzJyxcclxuICAgIHBsYWNlaG9sZGVyTGFiZWw6ICdTZWxlY3QgRmluZGluZydcclxuICB9O1xyXG5cclxuICBjdXN0b21pemVkRHJvcERvd25NYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgZnhCdWlsZGVyV3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmeEFwaVNlcnZpY2U6IEFwaVNlcnZpY2VSZWdpc3RyeSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjZHIpO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGZpbmRpbmdzOiBbW11dXHJcbiAgICB9KTtcclxuICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZWdpc3Rlcih0aGlzLmZvcm0pKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4vLyAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4vLyAgICAgICBjb25zdCBkYXRhID0gW1xyXG4vLyAgIHtcclxuLy8gICAgIGxhYmVsOiBcIlByb2NsaW5hdGlvblwiLFxyXG4vLyAgICAgdmFsdWU6IFwicHJvY2xpbmF0aW9uXCIsXHJcbi8vICAgICBzdWJTZWxlY3Rpb246IHtcclxuLy8gICAgICAgbGFiZWw6IFwiTWlsZFwiLFxyXG4vLyAgICAgICB2YWx1ZTogXCJtaWxkXCJcclxuLy8gICAgIH1cclxuLy8gICB9LFxyXG4vLyAgIHtcclxuLy8gICAgIGxhYmVsOiBcIk92ZXJiaXRlXCIsXHJcbi8vICAgICB2YWx1ZTogXCJvdmVyYml0ZVwiLFxyXG4vLyAgICAgc3ViU2VsZWN0aW9uOiB7XHJcbi8vICAgICAgIGxhYmVsOiBcIk1vZGVyYXRlXCIsXHJcbi8vICAgICAgIHZhbHVlOiBcIm1vZGVyYXRlXCJcclxuLy8gICAgIH1cclxuLy8gICB9XHJcbi8vIF07XHJcblxyXG4vLyB0aGlzLnBhdGNoRXhpc3RpbmdWYWx1ZXMoZGF0YSk7XHJcbi8vICAgICB9LDIwMDApO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3Qga2V5ID0gdGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5uYW1lO1xyXG5cclxuICAgICAgaWYgKGtleSAmJiB0aGlzLmN1c3RvbWl6ZWREcm9wRG93bk1hcC5oYXMoa2V5KSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmN1c3RvbWl6ZWREcm9wRG93bk1hcC5nZXQoa2V5KT8uZmluZGluZ3M7XHJcbiAgICAgICAgdGhpcy5wYXRjaEV4aXN0aW5nVmFsdWVzKGRhdGEpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSwgMTAwMCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBtYWluQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ2ZpbmRpbmdzJyk7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZXR0aW5nKCdpc0ZpbmRpbmdzUmVxdWlyZWQnKSA9PT0gJ3RydWUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIG1haW5Db250cm9sPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgICAgICAgIG1haW5Db250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgNTAwKVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5nKCdvcHRpb25UeXBlJykgPT09ICd0eXBlMScpIHtcclxuICAgICAgdGhpcy5maW5kaW5nc09wdGlvbnMgPSB0aGlzLnR5cGUxT3B0aW9ucztcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodGhpcy5zZXR0aW5nKCdvcHRpb25UeXBlJykgPT09ICd0eXBlMicpIHtcclxuICAgICAgdGhpcy5maW5kaW5nc09wdGlvbnMgPSB0aGlzLnR5cGUyT3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHZhbHVlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICAgICAgJ2ZpbmRpbmdzJyBpbiB2YWx1ZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9taXplZERyb3BEb3duTWFwLnNldChrZXksIHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgLy8gY29uc3Qgc2VydmljZVVybCA9IHRoaXMuZnhBcGlTZXJ2aWNlLmdldFNlcnZpY2VVcmwodGhpcy5zZXR0aW5nKCdzZXJ2aWNlTmFtZScpKTtcclxuICAgIC8vIHRoaXMuZ2V0T3B0aW9ucyhzZXJ2aWNlVXJsLCB0aGlzLnNldHRpbmcoJ2NsaW5pY2FsTm90ZXNVUkwnKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0T3B0aW9ucyhzZXJ2aWNlVXJsOiBzdHJpbmcsIHVybDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmaW5hbFVybCA9IHNlcnZpY2VVcmwgKyB1cmw7XHJcbiAgICB0aGlzLmh0dHAuZ2V0PGFueVtdPihmaW5hbFVybCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBGdXR1cmUgQVBJIGxvZ2ljIGhlcmVcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIG9wdGlvbnMnLCBlcnIpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXR0aW5ncygpOiBGeFNldHRpbmdbXSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHsga2V5OiAnZGlzcGxheU1vZGUnLCAkdGl0bGU6ICdEaXNwbGF5IE1vZGUnLCB2YWx1ZTogJ2VsbGlwc2lzJyB9LCBbeyBvcHRpb246ICdFbGxpcHNpcycsIHZhbHVlOiAnZWxsaXBzaXMnIH0sIHsgb3B0aW9uOiAnQ29tcGFjdCcsIHZhbHVlOiAnY29tcGFjdCcgfV0pLFxyXG4gICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHsga2V5OiAnb3B0aW9uVHlwZScsICR0aXRsZTogJ09wdGlvbiBUeXBlJywgdmFsdWU6ICd0eXBlMScgfSwgW3sgb3B0aW9uOiAnRmluZGluZyBUeXBlIE9wdGlvbnMnLCB2YWx1ZTogJ3R5cGUxJyB9LCB7IG9wdGlvbjogJ1ZldGljYWwgVHlwZSBPcHRpb25zJywgdmFsdWU6ICd0eXBlMicgfV0pLFxyXG4gICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAncGxhY2Vob2xkZXJMYWJlbCcsICR0aXRsZTogJ1BsYWNlaG9sZGVyJywgdmFsdWU6ICdTZWxlY3QgT3B0aW9ucycgfSksXHJcbiAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnZmluZGluZ0xhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJ0xhYmVsJyB9KSxcclxuICAgICAgIG5ldyBGeFNlbGVjdFNldHRpbmcoeyBrZXk6ICdpc0ZpbmRpbmdzUmVxdWlyZWQnLCAkdGl0bGU6ICdSZXF1aXJlZCcsIHZhbHVlOiAndHJ1ZScgfSwgW3sgb3B0aW9uOiAnWWVzJywgdmFsdWU6ICd0cnVlJyB9LCB7IG9wdGlvbjogJ05vJywgdmFsdWU6ICdmYWxzZScgfV0pLFxyXG4gICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdlcnJvckZpbmRpbmdNZXNzYWdlJywgJHRpdGxlOiAnRXJyb3IgTWVzc2FnZScsIHZhbHVlOiAnUGxlYXNlIGZpbGwgb3V0IHRoZSBmaWVsZCcgfSksXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25zKCk6IEZ4VmFsaWRhdGlvbltdIHtcclxuICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICB9XHJcblxyXG4gIC8qKiBEcm9wZG93biBCZWhhdmlvciAqKi9cclxuICB0b2dnbGVEcm9wZG93bigpIHtcclxuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gIXRoaXMuZHJvcGRvd25PcGVuO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlT3B0aW9uKG9wdGlvbjogQ3VzdG9tRHJvcGRvd25PcHRpb24sIGV2ZW50OiBFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgLy8gVG9nZ2xlIGNoZWNrYm94IHZhbHVlXHJcbiAgICBvcHRpb24uc2VsZWN0ZWQgPSAhb3B0aW9uLnNlbGVjdGVkO1xyXG5cclxuICAgIC8vIFJlc2V0IHJhZGlvcyB3aGVuIHVuY2hlY2tlZFxyXG4gICAgaWYgKCFvcHRpb24uc2VsZWN0ZWQpIHtcclxuICAgICAgb3B0aW9uLnN1YlNlbGVjdGlvbiA9IG51bGw7XHJcbiAgICAgIG9wdGlvbi50b3VjaGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgb3B0aW9uLnRvdWNoZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOKchSBGb3JjZSBVSSByZWZyZXNoIHNvIHJhZGlvcyBhcHBlYXIgaW5zdGFudGx5XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgLy8gVXBkYXRlIHJlYWN0aXZlIGZvcm1cclxuICAgIHRoaXMudXBkYXRlRmluZGluZ3MoKTtcclxuICB9XHJcblxyXG4gIC8qKiBGb3JtICYgTGFiZWwgSGVscGVycyAqKi9cclxuICBnZXQgaGFzU2VsZWN0ZWRGaW5kaW5ncygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZpbmRpbmdzT3B0aW9ucy5zb21lKGYgPT4gZi5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWRGaW5kaW5nc0xhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZmluZGluZ3NPcHRpb25zXHJcbiAgICAgIC5maWx0ZXIoZiA9PiB7XHJcbiAgICAgICAgaWYgKGYuc2VsZWN0ZWQpIHtcclxuICAgICAgICAgIC8vIElmIGZpbmRpbmcgaGFzIHN1Yi1vcHRpb25zIOKGkiBvbmx5IHNob3cgaWYgYSBzdWItb3B0aW9uIGlzIHNlbGVjdGVkXHJcbiAgICAgICAgICBpZiAoZi5zdWJPcHRpb25zPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhZi5zdWJTZWxlY3Rpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBJZiBubyBzdWItb3B0aW9ucyDihpIgYWx3YXlzIHNob3dcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5tYXAoZiA9PiBmLmxhYmVsKTtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID09PSAwKSByZXR1cm4gdGhpcy5zZXR0aW5nKCdwbGFjZWhvbGRlckxhYmVsJyk7XHJcblxyXG4gICAgLy8gRGlzcGxheSBtb2RlIGxvZ2ljIChDb21wYWN0IG9yIEVsbGlwc2lzKVxyXG4gICAgY29uc3QgbWF4Q291bnQgPSB0aGlzLnNldHRpbmcoJ2Rpc3BsYXlNb2RlJykgPT09ICdjb21wYWN0JyA/IDIgOiAzO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZygnZGlzcGxheU1vZGUnKSA9PT0gJ2NvbXBhY3QnKSB7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZC5sZW5ndGggPD0gbWF4Q291bnRcclxuICAgICAgICA/IHNlbGVjdGVkLmpvaW4oJywgJylcclxuICAgICAgICA6IGAke3NlbGVjdGVkLnNsaWNlKDAsIG1heENvdW50KS5qb2luKCcsICcpfSArJHtzZWxlY3RlZC5sZW5ndGggLSBtYXhDb3VudH0gbW9yZWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZygnZGlzcGxheU1vZGUnKSA9PT0gJ2VsbGlwc2lzJykge1xyXG4gICAgICByZXR1cm4gc2VsZWN0ZWQubGVuZ3RoID4gbWF4Q291bnRcclxuICAgICAgICA/IGAke3NlbGVjdGVkLnNsaWNlKDAsIG1heENvdW50KS5qb2luKCcsICcpfSwgLi4uYFxyXG4gICAgICAgIDogc2VsZWN0ZWQuam9pbignLCAnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0ZWQuam9pbignLCAnKTtcclxuICB9XHJcblxyXG4gIC8qKiBVcGRhdGUgRmluZGluZ3MgKyBWYWxpZGF0aW9uICoqL1xyXG4gIC8vIHVwZGF0ZUZpbmRpbmdzKCkge1xyXG4gIC8vICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmZpbmRpbmdzT3B0aW9uc1xyXG4gIC8vICAgICAuZmlsdGVyKGYgPT4ge1xyXG4gIC8vICAgICAgIGlmIChmLnNlbGVjdGVkKSB7XHJcbiAgLy8gICAgICAgICAvLyBPbmx5IGluY2x1ZGUgaW4gZmluYWwgZm9ybSBpZjpcclxuICAvLyAgICAgICAgIC8vICAtIG5vIHN1Yk9wdGlvbnMsIG9yXHJcbiAgLy8gICAgICAgICAvLyAgLSBzdWJPcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uXHJcbiAgLy8gICAgICAgICBpZiAoZi5zdWJPcHRpb25zPy5sZW5ndGgpIHtcclxuICAvLyAgICAgICAgICAgcmV0dXJuICEhZi5zdWJTZWxlY3Rpb247XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgICAubWFwKGYgPT4ge1xyXG4gIC8vICAgICAgIGNvbnN0IHN1YiA9IGYuc3ViT3B0aW9ucz8uZmluZChzID0+IHMudmFsdWUgPT09IGYuc3ViU2VsZWN0aW9uKSB8fCBudWxsO1xyXG4gIC8vICAgICAgIHJldHVybiB7XHJcbiAgLy8gICAgICAgICBsYWJlbDogZi5sYWJlbCxcclxuICAvLyAgICAgICAgIHZhbHVlOiBmLnZhbHVlLFxyXG4gIC8vICAgICAgICAgc3ViU2VsZWN0aW9uOiBzdWIgPyB7IGxhYmVsOiBzdWIubGFiZWwsIHZhbHVlOiBzdWIudmFsdWUgfSA6IG51bGxcclxuICAvLyAgICAgICB9O1xyXG4gIC8vICAgICB9KTtcclxuXHJcbiAgLy8gICAvLyBVcGRhdGUgcmVhY3RpdmUgZm9ybSB2YWx1ZVxyXG4gIC8vICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBmaW5kaW5nczogc2VsZWN0ZWQgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cclxuICAvLyAgIC8vIFZhbGlkYXRpb24gbG9naWMgcmVtYWlucyBzYW1lXHJcbiAgLy8gICBjb25zdCBpbnZhbGlkSXRlbXMgPSB0aGlzLmZpbmRpbmdzT3B0aW9ucy5maWx0ZXIoXHJcbiAgLy8gICAgIGYgPT4gZi5zZWxlY3RlZCAmJiBmLnN1Yk9wdGlvbnMgJiYgIWYuc3ViU2VsZWN0aW9uXHJcbiAgLy8gICApO1xyXG4gIC8vICAgdGhpcy5mb3JtLmdldCgnZmluZGluZ3MnKT8uc2V0RXJyb3JzKFxyXG4gIC8vICAgICBpbnZhbGlkSXRlbXMubGVuZ3RoID4gMCA/IHsgbWlzc2luZ1N1YlNlbGVjdGlvbjogdHJ1ZSB9IDogbnVsbFxyXG4gIC8vICAgKTtcclxuICAvLyB9XHJcblxyXG4gIHVwZGF0ZUZpbmRpbmdzKCkge1xyXG4gIC8vIEZpbHRlciBzZWxlY3RlZCBvcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uIChpZiBzdWJPcHRpb25zIGV4aXN0KVxyXG4gIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5maW5kaW5nc09wdGlvbnNcclxuICAgIC5maWx0ZXIoZiA9PiB7XHJcbiAgICAgIGlmIChmLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgLy8gT25seSBpbmNsdWRlIGluIGZpbmFsIGZvcm0gaWY6XHJcbiAgICAgICAgLy8gIC0gbm8gc3ViT3B0aW9ucywgb3JcclxuICAgICAgICAvLyAgLSBzdWJPcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uXHJcbiAgICAgICAgaWYgKGYuc3ViT3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gISFmLnN1YlNlbGVjdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSlcclxuICAgIC5tYXAoZiA9PiB7XHJcbiAgICAgIGNvbnN0IHN1YiA9IGYuc3ViT3B0aW9ucz8uZmluZChzID0+IHMudmFsdWUgPT09IGYuc3ViU2VsZWN0aW9uKSB8fCBudWxsO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxhYmVsOiBmLmxhYmVsLFxyXG4gICAgICAgIHZhbHVlOiBmLnZhbHVlLFxyXG4gICAgICAgIHN1YlNlbGVjdGlvbjogc3ViID8geyBsYWJlbDogc3ViLmxhYmVsLCB2YWx1ZTogc3ViLnZhbHVlIH0gOiBudWxsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgLy8gVXBkYXRlIHJlYWN0aXZlIGZvcm0gdmFsdWVcclxuICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGZpbmRpbmdzOiBzZWxlY3RlZCB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblxyXG4gIC8vIFZhbGlkYXRpb24gbG9naWM6XHJcbiAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzZWxlY3RlZCBvcHRpb25zIHdpdGggc3ViT3B0aW9ucyBidXQgd2l0aG91dCBzdWJTZWxlY3Rpb25cclxuICBjb25zdCBpbnZhbGlkSXRlbXMgPSB0aGlzLmZpbmRpbmdzT3B0aW9ucy5maWx0ZXIoXHJcbiAgICBmID0+IGYuc2VsZWN0ZWQgJiYgZi5zdWJPcHRpb25zICYmICFmLnN1YlNlbGVjdGlvblxyXG4gICk7XHJcblxyXG4gIC8vIElmIHRoZXJlIGFyZSBhbnkgaW52YWxpZCBpdGVtcywgbWFyayB0aGUgZm9ybSBhcyBpbnZhbGlkIHdpdGggYSBjdXN0b20gZXJyb3JcclxuICBpZiAoaW52YWxpZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2ZpbmRpbmdzJyk/LnNldEVycm9ycyh7IG1pc3NpbmdTdWJTZWxlY3Rpb246IHRydWUgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIENsZWFyIHRoZSBlcnJvciBpZiBldmVyeXRoaW5nIGlzIHZhbGlkXHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdmaW5kaW5ncycpPy5zZXRFcnJvcnMobnVsbCk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuZm9ybVN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCfimqDvuI8gUGxlYXNlIHNlbGVjdCBhIHN1Yi1vcHRpb24gZm9yIGFsbCBzZWxlY3RlZCBmaW5kaW5ncyB3aXRoIHN1Yi1vcHRpb25zLicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygn4pyFIEZvcm0gVmFsdWU6JywgdGhpcy5mb3JtLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vIHBhdGNoRXhpc3RpbmdWYWx1ZXMoZGF0YTogYW55W10pIHtcclxuICAvLyAgIHRoaXMuZmluZGluZ3NPcHRpb25zLmZvckVhY2gob3B0ID0+IHtcclxuICAvLyAgICAgY29uc3QgbWF0Y2ggPSBkYXRhLmZpbmQoeCA9PiB4LnZhbHVlID09PSBvcHQudmFsdWUpO1xyXG4gIC8vICAgICBvcHQuc2VsZWN0ZWQgPSAhIW1hdGNoO1xyXG4gIC8vICAgICBvcHQuc3ViU2VsZWN0aW9uID0gbWF0Y2g/LnNldmVyaXR5Py52YWx1ZSB8fCBudWxsO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICB0aGlzLnVwZGF0ZUZpbmRpbmdzKCk7XHJcbiAgLy8gfVxyXG5cclxucGF0Y2hFeGlzdGluZ1ZhbHVlcyhkYXRhOiBhbnlbXSkge1xyXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgZmluZGluZ3NPcHRpb25zIGFuZCBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIG9wdGlvbiBmb3IgZWFjaCBlbnRyeSBpbiBkYXRhXHJcbiAgdGhpcy5maW5kaW5nc09wdGlvbnMuZm9yRWFjaChvcHQgPT4ge1xyXG4gICAgY29uc3QgbWF0Y2ggPSBkYXRhLmZpbmQoeCA9PiB4LnZhbHVlID09PSBvcHQudmFsdWUpO1xyXG4gICAgXHJcbiAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgb3B0LnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgb3B0LnN1YlNlbGVjdGlvbiA9IG1hdGNoLnN1YlNlbGVjdGlvbiA/IG1hdGNoLnN1YlNlbGVjdGlvbi52YWx1ZSA6IG51bGw7XHJcblxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIk1hdGNoZWQgT3B0aW9uOlwiLCBvcHQpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIlN1YlNlbGVjdGlvbiBTZXQgVG86XCIsIHRoaXMuZmluZGluZ3NPcHRpb25zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICBvcHQuc3ViU2VsZWN0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy8gTWFudWFsbHkgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGlmIG5lZWRlZFxyXG4gIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICBcclxuICB0aGlzLnVwZGF0ZUZpbmRpbmdzKCk7XHJcbn1cclxuXHJcbnNlbGVjdFN1Yk9wdGlvbihvcHRpb246IGFueSwgc3ViT3B0aW9uOiBhbnkpIHtcclxuICAvLyBTZXQgdGhlIHN1YlNlbGVjdGlvbiB0byB0aGUgY2xpY2tlZCB2YWx1ZVxyXG4gIG9wdGlvbi5zdWJTZWxlY3Rpb24gPSBzdWJPcHRpb24udmFsdWU7XHJcbiAgLy8gTWFyayB0aGUgb3B0aW9uIGFzIHRvdWNoZWQsIHdoaWNoIHdpbGwgaGVscCBpbiBmb3JtIHZhbGlkYXRpb25cclxuICBvcHRpb24udG91Y2hlZCA9IHRydWU7XHJcbiAgLy8gVXBkYXRlIHRoZSBmb3JtIHN0YXRlXHJcbiAgdGhpcy51cGRhdGVGaW5kaW5ncygpO1xyXG59XHJcblxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgIDwhLS0gSGVhZGVyIC0tPlxyXG4gICAgICA8bGFiZWwgZm9yPVwiZmluZGluZ3NcIiBjbGFzcz1cImlucHV0LWxhYmVsXCI+XHJcbiAgICAgICAge3sgc2V0dGluZygnZmluZGluZ0xhYmVsJykgfX1cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImlzUmVxdWlyZWRcIiBjbGFzcz1cImZpZWxkLXJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgPGRpdiAjZHJvcGRvd25XcmFwcGVyIGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcHgtMyBweS0yIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBiZy13aGl0ZSB0ZXh0LWdyYXktNzAwIGhvdmVyOmJvcmRlci1ibHVlLTQwMFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJoYXNTZWxlY3RlZEZpbmRpbmdzOyBlbHNlIHBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgIHt7IHNlbGVjdGVkRmluZGluZ3NMYWJlbCB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlcj5cclxuICAgICAgICAgICAge3sgc2V0dGluZygncGxhY2Vob2xkZXJMYWJlbCcpIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI2IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB3aWR0aD1cIjI0Ljc2NlwiIGhlaWdodD1cIjI0XCIgcng9XCIzXCIgZmlsbD1cIiNGRjc5MDBcIiBmaWxsLW9wYWNpdHk9XCIwLjFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTIuODkxOCAxNi41MDE5QzEyLjcyNTUgMTYuNTAxOSAxMi41Njk1IDE2LjQ3MzYgMTIuNDIzOSAxNi40MTY5QzEyLjI3ODMgMTYuMzYwMiAxMi4xNDMxIDE2LjI2MjggMTIuMDE4MyAxNi4xMjQ4TDYuMjc4MDMgOS44MTYyQzYuMDQ5MjUgOS41NjQ3NyA1LjkyOTQ2IDkuMjUwMjUgNS45MTg2NCA4Ljg3MjY1QzUuOTA3ODMgOC40OTUwNSA2LjAyNzYyIDguMTY5NTYgNi4yNzgwMyA3Ljg5NjE5QzYuNTA2ODEgNy42NDQ3NiA2Ljc5Nzk5IDcuNTE5MDUgNy4xNTE1NSA3LjUxOTA1QzcuNTA1MTIgNy41MTkwNSA3Ljc5NjMgNy42NDQ3NiA4LjAyNTA4IDcuODk2MTlMMTIuODkxOCAxMy4yMTA1TDE3Ljc1ODYgNy44OTYxOUMxNy45ODc0IDcuNjQ0NzYgMTguMjczNiA3LjUxMzU2IDE4LjYxNzIgNy41MDI1OUMxOC45NjA3IDcuNDkxNjIgMTkuMjU2OSA3LjYyMjgyIDE5LjUwNTYgNy44OTYxOUMxOS43MzQ0IDguMTQ3NjIgMTkuODQ4OCA4LjQ2NzYyIDE5Ljg0ODggOC44NTYxOUMxOS44NDg4IDkuMjQ0NzcgMTkuNzM0NCA5LjU2NDc3IDE5LjUwNTYgOS44MTYyTDEzLjc2NTQgMTYuMTI0OEMxMy42NDA2IDE2LjI2MTkgMTMuNTA1NCAxNi4zNTkzIDEzLjM1OTggMTYuNDE2OUMxMy4yMTQyIDE2LjQ3NDUgMTMuMDU4MiAxNi41MDI4IDEyLjg5MTggMTYuNTAxOVpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjRkFBNzYyXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICBwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjJcIiBkPVwiTTE5IDlsLTcgNy03LTdcIj5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8IS0tIFBhbmVsIC0tPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiZHJvcGRvd25PcGVuXCJcclxuICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgbXQtMSB3LWZ1bGwgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLW1kIHNoYWRvdy1sZyBtYXgtaC02NCBvdmVyZmxvdy15LWF1dG8gei0xMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbmRpbmdzT3B0aW9uc1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIGxhc3Q6Ym9yZGVyLW5vbmUgcC0yIGhvdmVyOmJnLWdyYXktNTAgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPCEtLSBDaGVja2JveCArIExhYmVsIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctNCBoLTQgdGV4dC1ibHVlLTUwMCBib3JkZXItZ3JheS0zMDAgcm91bmRlZCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9wdGlvbi5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbihvcHRpb24sICRldmVudClcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheS04MDAgZm9udC1tZWRpdW0gY3Vyc29yLXBvaW50ZXIgc2VsZWN0LW5vbmVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbihvcHRpb24sICRldmVudClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi5pbmZvXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0byB0ZXh0LWJsdWUtNTAwIHRleHQtc20gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBvcHRpb24uaW5mbyB9fVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg4pOYXHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gUmFkaW9zIC0tPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgZ2FwLTQgbWwtNiBtdC0yIHRleHQtc21cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLnNlbGVjdGVkICYmIG9wdGlvbi5zdWJPcHRpb25zXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2Ygb3B0aW9uLnN1Yk9wdGlvbnNcIj5cclxuICA8bGFiZWxcclxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0xIGN1cnNvci1wb2ludGVyXCJcclxuICAgIChjbGljayk9XCJzZWxlY3RTdWJPcHRpb24ob3B0aW9uLCBzKVwiXHJcbiAgPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgIFtuYW1lXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICAgIFt2YWx1ZV09XCJzLnZhbHVlXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJvcHRpb24uc3ViU2VsZWN0aW9uXCJcclxuICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgY2xhc3M9XCJ0ZXh0LWJsdWUtNjAwIGN1cnNvci1wb2ludGVyXCJcclxuICAgIC8+XHJcbiAgICA8c3Bhbj57eyBzLmxhYmVsIH19PC9zcGFuPlxyXG4gIDwvbGFiZWw+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8IS0tIFZhbGlkYXRpb24gTWVzc2FnZSAtLT5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi5zZWxlY3RlZCAmJiBvcHRpb24uc3ViT3B0aW9ucyAmJiAhb3B0aW9uLnN1YlNlbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LXhzIG10LTEgdy1mdWxsIG1sLTFcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIFBsZWFzZSBzZWxlY3Qgb25lIG9wdGlvblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgIDxkaXY+XHJcbiAgICAgIDxzbWFsbCAqbmdJZj1cImZvcm0uZ2V0KCdmaW5kaW5ncycpPy50b3VjaGVkICYmIGZvcm0uZ2V0KCdmaW5kaW5ncycpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDBcIj5cclxuICAgICAge3sgc2V0dGluZygnZXJyb3JGaW5kaW5nTWVzc2FnZScpIH19XHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcbjwvZngtY29tcG9uZW50PlxyXG4iXX0=
398
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXplLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Z4LWJ1aWxkZXItd3JhcHBlci9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9taXplLWRyb3Bkb3duL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbWl6ZS1kcm9wZG93bi9jdXN0b21pemUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBb0MsU0FBUyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUEwQixXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEcsT0FBTyxFQUNMLGVBQWUsRUFDZixXQUFXLEVBQ1gsZUFBZSxFQUVmLGVBQWUsRUFFZixrQkFBa0IsRUFDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQThCMUMsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQWU7SUFvSG5EO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXhIRixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUMxQyxJQUFJLENBQWE7SUFDakIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDSSxXQUFXLENBQWU7SUFFcEQsZUFBZSxHQUEyQixFQUFFLENBQUM7SUFFN0MsWUFBWSxHQUFV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Q0FBdUM7Z0JBQ3ZDLDZEQUE2RDtZQUMvRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILDhDQUE4QztRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVcsRUFBRSxTQUFjO1FBQ3pDLDRDQUE0QztRQUM1QyxNQUFNLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdEMsaUVBQWlFO1FBQ2pFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQzt3R0F0YVksMEJBQTBCOzRGQUExQiwwQkFBMEIscU5DN0N2QyxxcUpBMEdBLHVxQ0RqRVksWUFBWSwrUEFBRSxtQkFBbUIsZ3JDQUFFLFdBQVcsdVBBQUUsV0FBVzs7NEZBSTFELDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7eU9BVTVDLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRnhCYXNlQ29tcG9uZW50LFxyXG4gIEZ4Q29tcG9uZW50LFxyXG4gIEZ4U2VsZWN0U2V0dGluZyxcclxuICBGeFNldHRpbmcsXHJcbiAgRnhTdHJpbmdTZXR0aW5nLFxyXG4gIEZ4VmFsaWRhdGlvbixcclxuICBGeFZhbGlkYXRvclNlcnZpY2VcclxufSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW50ZXJmYWNlIFN1Yk9wdGlvbiB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQ3VzdG9tRHJvcGRvd25PcHRpb24ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBpbmZvPzogc3RyaW5nO1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG4gIHN1Yk9wdGlvbnM/OiBTdWJPcHRpb25bXTtcclxuICBzdWJTZWxlY3Rpb24/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICB0b3VjaGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIEN1c3RvbURyb3Bkb3duQ29uZmlnIHtcclxuICBkaXNwbGF5TW9kZT86ICdjb21wYWN0JyB8ICdlbGxpcHNpcyc7XHJcbiAgcGxhY2Vob2xkZXJMYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3VzdG9taXplLWRyb3Bkb3duJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGeENvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9taXplLWRyb3Bkb3duLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9taXplRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgLCBBZnRlclZpZXdJbml0e1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgZm9ybU9iamVjdDogb2JqZWN0ID0ge307XHJcbiAgZHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgZm9ybVN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ2Z4Q29tcG9uZW50JykgZnhDb21wb25lbnQhOiBGeENvbXBvbmVudDtcclxuXHJcbiAgZmluZGluZ3NPcHRpb25zOiBDdXN0b21Ecm9wZG93bk9wdGlvbltdID0gW107XHJcblxyXG4gIHR5cGUxT3B0aW9uczogYW55W10gPSBbICAgIHtcclxuICAgICAgbGFiZWw6ICdQcm9jbGluYXRpb24nLFxyXG4gICAgICB2YWx1ZTogJ1Byb2NsaW5hdGlvbicsXHJcbiAgICAgIGluZm86ICdGb3J3YXJkIGluY2xpbmF0aW9uIG9mIHRlZXRoJyxcclxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6ICdDcm93ZGluZycsXHJcbiAgICAgIHZhbHVlOiAnQ3Jvd2RpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ1NwYWNpbmcnLFxyXG4gICAgICB2YWx1ZTogJ1NwYWNpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ1JldHJvY2xpbmF0aW9uJyxcclxuICAgICAgdmFsdWU6ICdSZXRyb2NsaW5hdGlvbicsXHJcbiAgICAgIGluZm86ICdCYWNrd2FyZCBpbmNsaW5hdGlvbiBvZiB0ZWV0aCcsXHJcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6ICdSb3RhdGlvbicsXHJcbiAgICAgIHZhbHVlOiAnUm90YXRpb24nLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfV07XHJcblxyXG4gIHR5cGUyT3B0aW9uczogYW55W10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICBsYWJlbDogJ05vcm1hbCcsXHJcbiAgICAgIHZhbHVlOiAnTm9ybWFsJyxcclxuICAgICAgaW5mbzogJycsXHJcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgc3ViT3B0aW9uczogW1xyXG4gICAgICAgIHsgbGFiZWw6ICdNaWxkJywgdmFsdWU6ICdtaWxkJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdNb2RlcmF0ZScsIHZhbHVlOiAnbW9kZXJhdGUnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ1NldmVyZScsIHZhbHVlOiAnc2V2ZXJlJyB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOiAnRGVlcCBCaXRlJyxcclxuICAgICAgdmFsdWU6ICdEZWVwIEJpdGUnLFxyXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgIHN1Yk9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTWlsZCcsIHZhbHVlOiAnbWlsZCcgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTW9kZXJhdGUnLCB2YWx1ZTogJ21vZGVyYXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdTZXZlcmUnLCB2YWx1ZTogJ3NldmVyZScgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ09wZW4gQml0ZScsXHJcbiAgICAgIHZhbHVlOiAnT3BlbiBCaXRlJyxcclxuICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICBzdWJPcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ01pbGQnLCB2YWx1ZTogJ21pbGQnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ01vZGVyYXRlJywgdmFsdWU6ICdtb2RlcmF0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnU2V2ZXJlJywgdmFsdWU6ICdzZXZlcmUnIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuICBpc1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICAvLyBvbkNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCkge1xyXG4gIC8vICAgaWYgKHRoaXMuZHJvcGRvd25PcGVuICYmICF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgLy8gICAgIHRoaXMuZHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgLy8gICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIGNvbmZpZzogQ3VzdG9tRHJvcGRvd25Db25maWcgPSB7XHJcbiAgICBkaXNwbGF5TW9kZTogJ2VsbGlwc2lzJyxcclxuICAgIHBsYWNlaG9sZGVyTGFiZWw6ICdTZWxlY3QgRmluZGluZydcclxuICB9O1xyXG5cclxuICBjdXN0b21pemVkRHJvcERvd25NYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgZnhCdWlsZGVyV3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmeEFwaVNlcnZpY2U6IEFwaVNlcnZpY2VSZWdpc3RyeSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjZHIpO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGZpbmRpbmdzOiBbW11dXHJcbiAgICB9KTtcclxuICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZWdpc3Rlcih0aGlzLmZvcm0pKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4vLyAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4vLyAgICAgICBjb25zdCBkYXRhID0gW1xyXG4vLyAgIHtcclxuLy8gICAgIGxhYmVsOiBcIlByb2NsaW5hdGlvblwiLFxyXG4vLyAgICAgdmFsdWU6IFwicHJvY2xpbmF0aW9uXCIsXHJcbi8vICAgICBzdWJTZWxlY3Rpb246IHtcclxuLy8gICAgICAgbGFiZWw6IFwiTWlsZFwiLFxyXG4vLyAgICAgICB2YWx1ZTogXCJtaWxkXCJcclxuLy8gICAgIH1cclxuLy8gICB9LFxyXG4vLyAgIHtcclxuLy8gICAgIGxhYmVsOiBcIk92ZXJiaXRlXCIsXHJcbi8vICAgICB2YWx1ZTogXCJvdmVyYml0ZVwiLFxyXG4vLyAgICAgc3ViU2VsZWN0aW9uOiB7XHJcbi8vICAgICAgIGxhYmVsOiBcIk1vZGVyYXRlXCIsXHJcbi8vICAgICAgIHZhbHVlOiBcIm1vZGVyYXRlXCJcclxuLy8gICAgIH1cclxuLy8gICB9XHJcbi8vIF07XHJcblxyXG4vLyB0aGlzLnBhdGNoRXhpc3RpbmdWYWx1ZXMoZGF0YSk7XHJcbi8vICAgICB9LDIwMDApO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3Qga2V5ID0gdGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5uYW1lO1xyXG5cclxuICAgICAgaWYgKGtleSAmJiB0aGlzLmN1c3RvbWl6ZWREcm9wRG93bk1hcC5oYXMoa2V5KSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmN1c3RvbWl6ZWREcm9wRG93bk1hcC5nZXQoa2V5KT8uZmluZGluZ3M7XHJcbiAgICAgICAgdGhpcy5wYXRjaEV4aXN0aW5nVmFsdWVzKGRhdGEpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSwgMTAwMCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBtYWluQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ2ZpbmRpbmdzJyk7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZXR0aW5nKCdpc0ZpbmRpbmdzUmVxdWlyZWQnKSA9PT0gJ3RydWUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIG1haW5Db250cm9sPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgICAgICAgIG1haW5Db250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgNTAwKVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5nKCdvcHRpb25UeXBlJykgPT09ICd0eXBlMScpIHtcclxuICAgICAgdGhpcy5maW5kaW5nc09wdGlvbnMgPSB0aGlzLnR5cGUxT3B0aW9ucztcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodGhpcy5zZXR0aW5nKCdvcHRpb25UeXBlJykgPT09ICd0eXBlMicpIHtcclxuICAgICAgdGhpcy5maW5kaW5nc09wdGlvbnMgPSB0aGlzLnR5cGUyT3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHZhbHVlICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICAgICAgJ2ZpbmRpbmdzJyBpbiB2YWx1ZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9taXplZERyb3BEb3duTWFwLnNldChrZXksIHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgLy8gY29uc3Qgc2VydmljZVVybCA9IHRoaXMuZnhBcGlTZXJ2aWNlLmdldFNlcnZpY2VVcmwodGhpcy5zZXR0aW5nKCdzZXJ2aWNlTmFtZScpKTtcclxuICAgIC8vIHRoaXMuZ2V0T3B0aW9ucyhzZXJ2aWNlVXJsLCB0aGlzLnNldHRpbmcoJ2NsaW5pY2FsTm90ZXNVUkwnKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0T3B0aW9ucyhzZXJ2aWNlVXJsOiBzdHJpbmcsIHVybDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmaW5hbFVybCA9IHNlcnZpY2VVcmwgKyB1cmw7XHJcbiAgICB0aGlzLmh0dHAuZ2V0PGFueVtdPihmaW5hbFVybCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBGdXR1cmUgQVBJIGxvZ2ljIGhlcmVcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIG9wdGlvbnMnLCBlcnIpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXR0aW5ncygpOiBGeFNldHRpbmdbXSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHsga2V5OiAnZGlzcGxheU1vZGUnLCAkdGl0bGU6ICdEaXNwbGF5IE1vZGUnLCB2YWx1ZTogJ2VsbGlwc2lzJyB9LCBbeyBvcHRpb246ICdFbGxpcHNpcycsIHZhbHVlOiAnZWxsaXBzaXMnIH0sIHsgb3B0aW9uOiAnQ29tcGFjdCcsIHZhbHVlOiAnY29tcGFjdCcgfV0pLFxyXG4gICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHsga2V5OiAnb3B0aW9uVHlwZScsICR0aXRsZTogJ09wdGlvbiBUeXBlJywgdmFsdWU6ICd0eXBlMScgfSwgW3sgb3B0aW9uOiAnRmluZGluZyBUeXBlIE9wdGlvbnMnLCB2YWx1ZTogJ3R5cGUxJyB9LCB7IG9wdGlvbjogJ1ZldGljYWwgVHlwZSBPcHRpb25zJywgdmFsdWU6ICd0eXBlMicgfV0pLFxyXG4gICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAncGxhY2Vob2xkZXJMYWJlbCcsICR0aXRsZTogJ1BsYWNlaG9sZGVyJywgdmFsdWU6ICdTZWxlY3QgT3B0aW9ucycgfSksXHJcbiAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnZmluZGluZ0xhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJ0xhYmVsJyB9KSxcclxuICAgICAgIG5ldyBGeFNlbGVjdFNldHRpbmcoeyBrZXk6ICdpc0ZpbmRpbmdzUmVxdWlyZWQnLCAkdGl0bGU6ICdSZXF1aXJlZCcsIHZhbHVlOiAndHJ1ZScgfSwgW3sgb3B0aW9uOiAnWWVzJywgdmFsdWU6ICd0cnVlJyB9LCB7IG9wdGlvbjogJ05vJywgdmFsdWU6ICdmYWxzZScgfV0pLFxyXG4gICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdlcnJvckZpbmRpbmdNZXNzYWdlJywgJHRpdGxlOiAnRXJyb3IgTWVzc2FnZScsIHZhbHVlOiAnUGxlYXNlIGZpbGwgb3V0IHRoZSBmaWVsZCcgfSksXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25zKCk6IEZ4VmFsaWRhdGlvbltdIHtcclxuICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICB9XHJcblxyXG4gIC8qKiBEcm9wZG93biBCZWhhdmlvciAqKi9cclxuICB0b2dnbGVEcm9wZG93bigpIHtcclxuICAgIHRoaXMuZHJvcGRvd25PcGVuID0gIXRoaXMuZHJvcGRvd25PcGVuO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlT3B0aW9uKG9wdGlvbjogQ3VzdG9tRHJvcGRvd25PcHRpb24sIGV2ZW50OiBFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgLy8gVG9nZ2xlIGNoZWNrYm94IHZhbHVlXHJcbiAgICBvcHRpb24uc2VsZWN0ZWQgPSAhb3B0aW9uLnNlbGVjdGVkO1xyXG5cclxuICAgIC8vIFJlc2V0IHJhZGlvcyB3aGVuIHVuY2hlY2tlZFxyXG4gICAgaWYgKCFvcHRpb24uc2VsZWN0ZWQpIHtcclxuICAgICAgb3B0aW9uLnN1YlNlbGVjdGlvbiA9IG51bGw7XHJcbiAgICAgIG9wdGlvbi50b3VjaGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgb3B0aW9uLnRvdWNoZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOKchSBGb3JjZSBVSSByZWZyZXNoIHNvIHJhZGlvcyBhcHBlYXIgaW5zdGFudGx5XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgLy8gVXBkYXRlIHJlYWN0aXZlIGZvcm1cclxuICAgIHRoaXMudXBkYXRlRmluZGluZ3MoKTtcclxuICB9XHJcblxyXG4gIC8qKiBGb3JtICYgTGFiZWwgSGVscGVycyAqKi9cclxuICBnZXQgaGFzU2VsZWN0ZWRGaW5kaW5ncygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZpbmRpbmdzT3B0aW9ucy5zb21lKGYgPT4gZi5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWRGaW5kaW5nc0xhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZmluZGluZ3NPcHRpb25zXHJcbiAgICAgIC5maWx0ZXIoZiA9PiB7XHJcbiAgICAgICAgaWYgKGYuc2VsZWN0ZWQpIHtcclxuICAgICAgICAgIC8vIElmIGZpbmRpbmcgaGFzIHN1Yi1vcHRpb25zIOKGkiBvbmx5IHNob3cgaWYgYSBzdWItb3B0aW9uIGlzIHNlbGVjdGVkXHJcbiAgICAgICAgICBpZiAoZi5zdWJPcHRpb25zPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhZi5zdWJTZWxlY3Rpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBJZiBubyBzdWItb3B0aW9ucyDihpIgYWx3YXlzIHNob3dcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5tYXAoZiA9PiBmLmxhYmVsKTtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID09PSAwKSByZXR1cm4gdGhpcy5zZXR0aW5nKCdwbGFjZWhvbGRlckxhYmVsJyk7XHJcblxyXG4gICAgLy8gRGlzcGxheSBtb2RlIGxvZ2ljIChDb21wYWN0IG9yIEVsbGlwc2lzKVxyXG4gICAgY29uc3QgbWF4Q291bnQgPSB0aGlzLnNldHRpbmcoJ2Rpc3BsYXlNb2RlJykgPT09ICdjb21wYWN0JyA/IDIgOiAzO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZygnZGlzcGxheU1vZGUnKSA9PT0gJ2NvbXBhY3QnKSB7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZC5sZW5ndGggPD0gbWF4Q291bnRcclxuICAgICAgICA/IHNlbGVjdGVkLmpvaW4oJywgJylcclxuICAgICAgICA6IGAke3NlbGVjdGVkLnNsaWNlKDAsIG1heENvdW50KS5qb2luKCcsICcpfSArJHtzZWxlY3RlZC5sZW5ndGggLSBtYXhDb3VudH0gbW9yZWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZygnZGlzcGxheU1vZGUnKSA9PT0gJ2VsbGlwc2lzJykge1xyXG4gICAgICByZXR1cm4gc2VsZWN0ZWQubGVuZ3RoID4gbWF4Q291bnRcclxuICAgICAgICA/IGAke3NlbGVjdGVkLnNsaWNlKDAsIG1heENvdW50KS5qb2luKCcsICcpfSwgLi4uYFxyXG4gICAgICAgIDogc2VsZWN0ZWQuam9pbignLCAnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0ZWQuam9pbignLCAnKTtcclxuICB9XHJcblxyXG4gIC8qKiBVcGRhdGUgRmluZGluZ3MgKyBWYWxpZGF0aW9uICoqL1xyXG4gIC8vIHVwZGF0ZUZpbmRpbmdzKCkge1xyXG4gIC8vICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmZpbmRpbmdzT3B0aW9uc1xyXG4gIC8vICAgICAuZmlsdGVyKGYgPT4ge1xyXG4gIC8vICAgICAgIGlmIChmLnNlbGVjdGVkKSB7XHJcbiAgLy8gICAgICAgICAvLyBPbmx5IGluY2x1ZGUgaW4gZmluYWwgZm9ybSBpZjpcclxuICAvLyAgICAgICAgIC8vICAtIG5vIHN1Yk9wdGlvbnMsIG9yXHJcbiAgLy8gICAgICAgICAvLyAgLSBzdWJPcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uXHJcbiAgLy8gICAgICAgICBpZiAoZi5zdWJPcHRpb25zPy5sZW5ndGgpIHtcclxuICAvLyAgICAgICAgICAgcmV0dXJuICEhZi5zdWJTZWxlY3Rpb247XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgICAubWFwKGYgPT4ge1xyXG4gIC8vICAgICAgIGNvbnN0IHN1YiA9IGYuc3ViT3B0aW9ucz8uZmluZChzID0+IHMudmFsdWUgPT09IGYuc3ViU2VsZWN0aW9uKSB8fCBudWxsO1xyXG4gIC8vICAgICAgIHJldHVybiB7XHJcbiAgLy8gICAgICAgICBsYWJlbDogZi5sYWJlbCxcclxuICAvLyAgICAgICAgIHZhbHVlOiBmLnZhbHVlLFxyXG4gIC8vICAgICAgICAgc3ViU2VsZWN0aW9uOiBzdWIgPyB7IGxhYmVsOiBzdWIubGFiZWwsIHZhbHVlOiBzdWIudmFsdWUgfSA6IG51bGxcclxuICAvLyAgICAgICB9O1xyXG4gIC8vICAgICB9KTtcclxuXHJcbiAgLy8gICAvLyBVcGRhdGUgcmVhY3RpdmUgZm9ybSB2YWx1ZVxyXG4gIC8vICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBmaW5kaW5nczogc2VsZWN0ZWQgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cclxuICAvLyAgIC8vIFZhbGlkYXRpb24gbG9naWMgcmVtYWlucyBzYW1lXHJcbiAgLy8gICBjb25zdCBpbnZhbGlkSXRlbXMgPSB0aGlzLmZpbmRpbmdzT3B0aW9ucy5maWx0ZXIoXHJcbiAgLy8gICAgIGYgPT4gZi5zZWxlY3RlZCAmJiBmLnN1Yk9wdGlvbnMgJiYgIWYuc3ViU2VsZWN0aW9uXHJcbiAgLy8gICApO1xyXG4gIC8vICAgdGhpcy5mb3JtLmdldCgnZmluZGluZ3MnKT8uc2V0RXJyb3JzKFxyXG4gIC8vICAgICBpbnZhbGlkSXRlbXMubGVuZ3RoID4gMCA/IHsgbWlzc2luZ1N1YlNlbGVjdGlvbjogdHJ1ZSB9IDogbnVsbFxyXG4gIC8vICAgKTtcclxuICAvLyB9XHJcblxyXG4gIHVwZGF0ZUZpbmRpbmdzKCkge1xyXG4gIC8vIEZpbHRlciBzZWxlY3RlZCBvcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uIChpZiBzdWJPcHRpb25zIGV4aXN0KVxyXG4gIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5maW5kaW5nc09wdGlvbnNcclxuICAgIC5maWx0ZXIoZiA9PiB7XHJcbiAgICAgIGlmIChmLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgLy8gT25seSBpbmNsdWRlIGluIGZpbmFsIGZvcm0gaWY6XHJcbiAgICAgICAgLy8gIC0gbm8gc3ViT3B0aW9ucywgb3JcclxuICAgICAgICAvLyAgLSBzdWJPcHRpb25zIHdpdGggdmFsaWQgc3ViU2VsZWN0aW9uXHJcbiAgICAgICAgaWYgKGYuc3ViT3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gISFmLnN1YlNlbGVjdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSlcclxuICAgIC5tYXAoZiA9PiB7XHJcbiAgICAgIGNvbnN0IHN1YiA9IGYuc3ViT3B0aW9ucz8uZmluZChzID0+IHMudmFsdWUgPT09IGYuc3ViU2VsZWN0aW9uKSB8fCBudWxsO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxhYmVsOiBmLmxhYmVsLFxyXG4gICAgICAgIHZhbHVlOiBmLnZhbHVlLFxyXG4gICAgICAgIHN1YlNlbGVjdGlvbjogc3ViID8geyBsYWJlbDogc3ViLmxhYmVsLCB2YWx1ZTogc3ViLnZhbHVlIH0gOiBudWxsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgLy8gVXBkYXRlIHJlYWN0aXZlIGZvcm0gdmFsdWVcclxuICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGZpbmRpbmdzOiBzZWxlY3RlZCB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblxyXG4gIC8vIFZhbGlkYXRpb24gbG9naWM6XHJcbiAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzZWxlY3RlZCBvcHRpb25zIHdpdGggc3ViT3B0aW9ucyBidXQgd2l0aG91dCBzdWJTZWxlY3Rpb25cclxuICBjb25zdCBpbnZhbGlkSXRlbXMgPSB0aGlzLmZpbmRpbmdzT3B0aW9ucy5maWx0ZXIoXHJcbiAgICBmID0+IGYuc2VsZWN0ZWQgJiYgZi5zdWJPcHRpb25zICYmICFmLnN1YlNlbGVjdGlvblxyXG4gICk7XHJcblxyXG4gIC8vIElmIHRoZXJlIGFyZSBhbnkgaW52YWxpZCBpdGVtcywgbWFyayB0aGUgZm9ybSBhcyBpbnZhbGlkIHdpdGggYSBjdXN0b20gZXJyb3JcclxuICBpZiAoaW52YWxpZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2ZpbmRpbmdzJyk/LnNldEVycm9ycyh7IG1pc3NpbmdTdWJTZWxlY3Rpb246IHRydWUgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIENsZWFyIHRoZSBlcnJvciBpZiBldmVyeXRoaW5nIGlzIHZhbGlkXHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdmaW5kaW5ncycpPy5zZXRFcnJvcnMobnVsbCk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuZm9ybVN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCfimqDvuI8gUGxlYXNlIHNlbGVjdCBhIHN1Yi1vcHRpb24gZm9yIGFsbCBzZWxlY3RlZCBmaW5kaW5ncyB3aXRoIHN1Yi1vcHRpb25zLicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygn4pyFIEZvcm0gVmFsdWU6JywgdGhpcy5mb3JtLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vIHBhdGNoRXhpc3RpbmdWYWx1ZXMoZGF0YTogYW55W10pIHtcclxuICAvLyAgIHRoaXMuZmluZGluZ3NPcHRpb25zLmZvckVhY2gob3B0ID0+IHtcclxuICAvLyAgICAgY29uc3QgbWF0Y2ggPSBkYXRhLmZpbmQoeCA9PiB4LnZhbHVlID09PSBvcHQudmFsdWUpO1xyXG4gIC8vICAgICBvcHQuc2VsZWN0ZWQgPSAhIW1hdGNoO1xyXG4gIC8vICAgICBvcHQuc3ViU2VsZWN0aW9uID0gbWF0Y2g/LnNldmVyaXR5Py52YWx1ZSB8fCBudWxsO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICB0aGlzLnVwZGF0ZUZpbmRpbmdzKCk7XHJcbiAgLy8gfVxyXG5cclxucGF0Y2hFeGlzdGluZ1ZhbHVlcyhkYXRhOiBhbnlbXSkge1xyXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgZmluZGluZ3NPcHRpb25zIGFuZCBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIG9wdGlvbiBmb3IgZWFjaCBlbnRyeSBpbiBkYXRhXHJcbiAgdGhpcy5maW5kaW5nc09wdGlvbnMuZm9yRWFjaChvcHQgPT4ge1xyXG4gICAgY29uc3QgbWF0Y2ggPSBkYXRhLmZpbmQoeCA9PiB4LnZhbHVlID09PSBvcHQudmFsdWUpO1xyXG4gICAgXHJcbiAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgb3B0LnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgb3B0LnN1YlNlbGVjdGlvbiA9IG1hdGNoLnN1YlNlbGVjdGlvbiA/IG1hdGNoLnN1YlNlbGVjdGlvbi52YWx1ZSA6IG51bGw7XHJcblxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIk1hdGNoZWQgT3B0aW9uOlwiLCBvcHQpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIlN1YlNlbGVjdGlvbiBTZXQgVG86XCIsIHRoaXMuZmluZGluZ3NPcHRpb25zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICBvcHQuc3ViU2VsZWN0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy8gTWFudWFsbHkgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGlmIG5lZWRlZFxyXG4gIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICBcclxuICB0aGlzLnVwZGF0ZUZpbmRpbmdzKCk7XHJcbn1cclxuXHJcbnNlbGVjdFN1Yk9wdGlvbihvcHRpb246IGFueSwgc3ViT3B0aW9uOiBhbnkpIHtcclxuICAvLyBTZXQgdGhlIHN1YlNlbGVjdGlvbiB0byB0aGUgY2xpY2tlZCB2YWx1ZVxyXG4gIG9wdGlvbi5zdWJTZWxlY3Rpb24gPSBzdWJPcHRpb24udmFsdWU7XHJcbiAgLy8gTWFyayB0aGUgb3B0aW9uIGFzIHRvdWNoZWQsIHdoaWNoIHdpbGwgaGVscCBpbiBmb3JtIHZhbGlkYXRpb25cclxuICBvcHRpb24udG91Y2hlZCA9IHRydWU7XHJcbiAgLy8gVXBkYXRlIHRoZSBmb3JtIHN0YXRlXHJcbiAgdGhpcy51cGRhdGVGaW5kaW5ncygpO1xyXG59XHJcblxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgIDwhLS0gSGVhZGVyIC0tPlxyXG4gICAgICA8bGFiZWwgZm9yPVwiZmluZGluZ3NcIiBjbGFzcz1cImlucHV0LWxhYmVsXCI+XHJcbiAgICAgICAge3sgc2V0dGluZygnZmluZGluZ0xhYmVsJykgfX1cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImlzUmVxdWlyZWRcIiBjbGFzcz1cImZpZWxkLXJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgPGRpdiAjZHJvcGRvd25XcmFwcGVyIGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcHgtMyBweS0yIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBiZy13aGl0ZSB0ZXh0LWdyYXktNzAwIGhvdmVyOmJvcmRlci1ibHVlLTQwMFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJoYXNTZWxlY3RlZEZpbmRpbmdzOyBlbHNlIHBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgIHt7IHNlbGVjdGVkRmluZGluZ3NMYWJlbCB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlcj5cclxuICAgICAgICAgICAge3sgc2V0dGluZygncGxhY2Vob2xkZXJMYWJlbCcpIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI2IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB3aWR0aD1cIjI0Ljc2NlwiIGhlaWdodD1cIjI0XCIgcng9XCIzXCIgZmlsbD1cIiNGRjc5MDBcIiBmaWxsLW9wYWNpdHk9XCIwLjFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTIuODkxOCAxNi41MDE5QzEyLjcyNTUgMTYuNTAxOSAxMi41Njk1IDE2LjQ3MzYgMTIuNDIzOSAxNi40MTY5QzEyLjI3ODMgMTYuMzYwMiAxMi4xNDMxIDE2LjI2MjggMTIuMDE4MyAxNi4xMjQ4TDYuMjc4MDMgOS44MTYyQzYuMDQ5MjUgOS41NjQ3NyA1LjkyOTQ2IDkuMjUwMjUgNS45MTg2NCA4Ljg3MjY1QzUuOTA3ODMgOC40OTUwNSA2LjAyNzYyIDguMTY5NTYgNi4yNzgwMyA3Ljg5NjE5QzYuNTA2ODEgNy42NDQ3NiA2Ljc5Nzk5IDcuNTE5MDUgNy4xNTE1NSA3LjUxOTA1QzcuNTA1MTIgNy41MTkwNSA3Ljc5NjMgNy42NDQ3NiA4LjAyNTA4IDcuODk2MTlMMTIuODkxOCAxMy4yMTA1TDE3Ljc1ODYgNy44OTYxOUMxNy45ODc0IDcuNjQ0NzYgMTguMjczNiA3LjUxMzU2IDE4LjYxNzIgNy41MDI1OUMxOC45NjA3IDcuNDkxNjIgMTkuMjU2OSA3LjYyMjgyIDE5LjUwNTYgNy44OTYxOUMxOS43MzQ0IDguMTQ3NjIgMTkuODQ4OCA4LjQ2NzYyIDE5Ljg0ODggOC44NTYxOUMxOS44NDg4IDkuMjQ0NzcgMTkuNzM0NCA5LjU2NDc3IDE5LjUwNTYgOS44MTYyTDEzLjc2NTQgMTYuMTI0OEMxMy42NDA2IDE2LjI2MTkgMTMuNTA1NCAxNi4zNTkzIDEzLjM1OTggMTYuNDE2OUMxMy4yMTQyIDE2LjQ3NDUgMTMuMDU4MiAxNi41MDI4IDEyLjg5MTggMTYuNTAxOVpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjRkFBNzYyXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8IS0tIFBhbmVsIC0tPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwiZHJvcGRvd25PcGVuXCJcclxuICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgbXQtMSB3LWZ1bGwgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLW1kIHNoYWRvdy1sZyBtYXgtaC02NCBvdmVyZmxvdy15LWF1dG8gei0xMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbmRpbmdzT3B0aW9uc1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIGxhc3Q6Ym9yZGVyLW5vbmUgcC0yIGhvdmVyOmJnLWdyYXktNTAgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPCEtLSBDaGVja2JveCArIExhYmVsIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctNCBoLTQgdGV4dC1ibHVlLTUwMCBib3JkZXItZ3JheS0zMDAgcm91bmRlZCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9wdGlvbi5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbihvcHRpb24sICRldmVudClcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JheS04MDAgZm9udC1tZWRpdW0gY3Vyc29yLXBvaW50ZXIgc2VsZWN0LW5vbmVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbihvcHRpb24sICRldmVudClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi5pbmZvXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0byB0ZXh0LWJsdWUtNTAwIHRleHQtc20gY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBvcHRpb24uaW5mbyB9fVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg4pOYXHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gUmFkaW9zIC0tPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgZ2FwLTQgbWwtNiBtdC0yIHRleHQtc21cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLnNlbGVjdGVkICYmIG9wdGlvbi5zdWJPcHRpb25zXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2Ygb3B0aW9uLnN1Yk9wdGlvbnNcIj5cclxuICA8bGFiZWxcclxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0xIGN1cnNvci1wb2ludGVyXCJcclxuICAgIChjbGljayk9XCJzZWxlY3RTdWJPcHRpb24ob3B0aW9uLCBzKVwiXHJcbiAgPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgIFtuYW1lXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICAgIFt2YWx1ZV09XCJzLnZhbHVlXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJvcHRpb24uc3ViU2VsZWN0aW9uXCJcclxuICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgY2xhc3M9XCJ0ZXh0LWJsdWUtNjAwIGN1cnNvci1wb2ludGVyXCJcclxuICAgIC8+XHJcbiAgICA8c3Bhbj57eyBzLmxhYmVsIH19PC9zcGFuPlxyXG4gIDwvbGFiZWw+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8IS0tIFZhbGlkYXRpb24gTWVzc2FnZSAtLT5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi5zZWxlY3RlZCAmJiBvcHRpb24uc3ViT3B0aW9ucyAmJiAhb3B0aW9uLnN1YlNlbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LXhzIG10LTEgdy1mdWxsIG1sLTFcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIFBsZWFzZSBzZWxlY3Qgb25lIG9wdGlvblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgIDxkaXY+XHJcbiAgICAgIDxzbWFsbCAqbmdJZj1cImZvcm0uZ2V0KCdmaW5kaW5ncycpPy50b3VjaGVkICYmIGZvcm0uZ2V0KCdmaW5kaW5ncycpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDBcIj5cclxuICAgICAge3sgc2V0dGluZygnZXJyb3JGaW5kaW5nTWVzc2FnZScpIH19XHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcbjwvZngtY29tcG9uZW50PlxyXG4iXX0=
@@ -15,6 +15,7 @@ import { MultiselectDropdownWithChildsComponent } from '../multiselect-dropdown-
15
15
  import { DropdownWithSearchComponent } from '../dropdown-with-search/dropdown-with-search.component';
16
16
  import { SummaryComponent } from '../summary/summary.component';
17
17
  import { CustomizeDropdownComponent } from '../customize-dropdown/customize-dropdown.component';
18
+ import { HeadingComponent } from '../heading/heading.component';
18
19
  import * as i0 from "@angular/core";
19
20
  import * as i1 from "../../fx-builder-wrapper.service";
20
21
  // import { CustomizeDropdownComponent } from '../multiselect-with-form-fields/customize-dropdown.component';
@@ -69,6 +70,7 @@ export class FxFormWrapperComponent {
69
70
  { name: 'Dropdown with Search', key: 'lib-dropdown-with-search', component: DropdownWithSearchComponent },
70
71
  { name: 'Multiselect with Form ', key: 'lib-customize-dropdown', component: CustomizeDropdownComponent },
71
72
  { name: 'Summary', key: 'lib-summary', component: SummaryComponent },
73
+ { name: 'Header', key: 'lib-heading', component: HeadingComponent },
72
74
  ];
73
75
  components.forEach(({ name, key, component }) => {
74
76
  if (!this.fxWrapperService.getComponent(key)) {
@@ -119,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
119
121
  }], fxFormSubmit: [{
120
122
  type: Output
121
123
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZngtZm9ybS1jb21wb25lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9meC1mb3JtLWNvbXBvbmVudC9meC1mb3JtLWNvbXBvbmVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFVLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBRWxILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUN4SSxPQUFPLEVBQUUsMkJB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Z0JBQWdCLEVBQUU7U0FFckUsQ0FBQztRQUVGLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN0RSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3JCLENBQUM7d0dBdEVVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLGlTQVZ2Qjs7Ozs7Ozs7R0FRVCwyREFUUyxZQUFZLCtCQUFFLGVBQWU7OzRGQVc1QixzQkFBc0I7a0JBZGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUM7b0JBQ3hDLFFBQVEsRUFBRTs7Ozs7Ozs7R0FRVDtpQkFDRjs0RkFFb0IsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQUNSLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGeEZvcm0sIEZ4Rm9ybUNvbXBvbmVudCB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBEaXNwYXRjaFRvQ2xpbmljQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY3VzdG9tLWNvbnRyb2xzL2Rpc3BhdGNoLXRvLWNsaW5pYy9kaXNwYXRjaC10by1jbGluaWMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IER5bmFtaWNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2dnbGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi90b2dnbGUtYnV0dG9uL3RvZ2dsZS1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi91cGxvYWRlci91cGxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuLi90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwbG9hZGVyQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi91cGxvYWRlci1jaGVja2JveC91cGxvYWRlci1jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25XaXRoT3RoZXJDb21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi13aXRoLW90aGVyL2Ryb3Bkb3duLXdpdGgtb3RoZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmFkaW9Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE11bHRpc2VsZWN0RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9tdWx0aXNlbGVjdC1kcm9wZG93bi9tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNdWx0aXNlbGVjdERyb3Bkb3duV2l0aENoaWxkc0NvbXBvbmVudCB9IGZyb20gJy4uL211bHRpc2VsZWN0LWRyb3Bkb3duLXdpdGgtY2hpbGRzL211bHRpc2VsZWN0LWRyb3Bkb3duLXdpdGgtY2hpbGRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyb3Bkb3duV2l0aFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL2Ryb3Bkb3duLXdpdGgtc2VhcmNoL2Ryb3Bkb3duLXdpdGgtc2VhcmNoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjY29yZGlhbkNvbXBvbmVudCB9IGZyb20gJy4uL2FjY29yZGlhbi9hY2NvcmRpYW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJy4uL3N1bW1hcnkvc3VtbWFyeS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdXN0b21pemVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2N1c3RvbWl6ZS1kcm9wZG93bi9jdXN0b21pemUtZHJvcGRvd24uY29tcG9uZW50JztcclxuLy8gaW1wb3J0IHsgQ3VzdG9taXplRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9tdWx0aXNlbGVjdC13aXRoLWZvcm0tZmllbGRzL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmeC1mb3JtLWNvbXBvbmVudCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGeEZvcm1Db21wb25lbnRdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZngtZm9ybSBcclxuICAgICAgW2Z4Rm9ybV09XCJmeEZvcm1cIiBcclxuICAgICAgW3ZhbHVlXT1cInZhcmlhYmxlc1wiIFxyXG4gICAgICAob25TdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiIFxyXG4gICAgICAjZm9ybVxyXG4gICAgPlxyXG4gICAgPC9meC1mb3JtPlxyXG4gIGAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGeEZvcm1XcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm0nKSBmb3JtITogRnhGb3JtQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGZ4Rm9ybSE6IEZ4Rm9ybTtcclxuICBASW5wdXQoKSB2YXJpYWJsZXM6IGFueTtcclxuICBAT3V0cHV0KCkgZnhGb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnhXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UpIHtcclxuICAgIHRoaXMucmVnaXN0ZXJDdXN0b21Db21wb25lbnRzKCk7XHJcbiAgIH1cclxuXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHsgXHJcbiAgICAvLyBpZigndmFyaWFibGVzJyBpbiBjaGFuZ2VzICYmICFjaGFuZ2VzWydmeEZvcm0nXSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UudmFyaWFibGVzJC5uZXh0KHRoaXMudmFyaWFibGVzKTtcclxuICAgIC8vIH1cclxuICAgIGlmICgndmFyaWFibGVzJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkLm5leHQodGhpcy52YXJpYWJsZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2Rpc3BhdGNoLXRvLWNsaW5pYycpKSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ0Rpc3BhdGNoIFRvIENsaW5pYycsICdkaXNwYXRjaC10by1jbGluaWMnLCBEaXNwYXRjaFRvQ2xpbmljQ29tcG9uZW50KTtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdkeW5hbWljLXRhYmxlJykpKSB7XHJcbiAgICAvLyAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnRHluYW1pYyBUYWJsZScsICdkeW5hbWljLXRhYmxlJywgRHluYW1pY1RhYmxlQ29tcG9uZW50KTtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCd0b2dnbGUtYnV0dG9uJykpKSB7XHJcbiAgICAvLyAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnVG9nZ2xlIEJ1dHRvbicsICd0b2dnbGUtYnV0dG9uJywgVG9nZ2xlQnV0dG9uQ29tcG9uZW50KTtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCd1cGxvYWRlcicpKSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1VwbG9hZGVyJywgJ3VwbG9hZGVyJywgVXBsb2FkZXJDb21wb25lbnQpO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ3RvZ2dsZScpKSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1RvZ2dsZScsICd0b2dnbGUnLCBUb2dnbGVDb21wb25lbnQpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgcmVnaXN0ZXJDdXN0b21Db21wb25lbnRzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29tcG9uZW50cyA9IFtcclxuICAgICAgeyBuYW1lOiAnRGlzcGF0Y2ggVG8gQ2xpbmljJywga2V5OiAnZGlzcGF0Y2gtdG8tY2xpbmljJywgY29tcG9uZW50OiBEaXNwYXRjaFRvQ2xpbmljQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ0R5bmFtaWMgVGFibGUnLCBrZXk6ICdkeW5hbWljLXRhYmxlJywgY29tcG9uZW50OiBEeW5hbWljVGFibGVDb21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnVG9nZ2xlIEJ1dHRvbicsIGtleTogJ3RvZ2dsZS1idXR0b24nLCBjb21wb25lbnQ6IFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdVcGxvYWRlcicsIGtleTogJ3VwbG9hZGVyJywgY29tcG9uZW50OiBVcGxvYWRlckNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdUb2dnbGUnLCBrZXk6ICd0b2dnbGUnLCBjb21wb25lbnQ6IFRvZ2dsZUNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdVcGxvYWRlciB3aXRoIENoZWNrYm94Jywga2V5OiAndXBsb2FkZXItY2hlY2tib3gnLCBjb21wb25lbnQ6IFVwbG9hZGVyQ2hlY2tib3hDb21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnRGF0ZSBQaWNrZXInLCBrZXk6ICdsaWItZGF0ZS1waWNrZXInLCBjb21wb25lbnQ6IERhdGVQaWNrZXJDb21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnU21hcnRsaXN0IHdpdGggT3RoZXInLCBrZXk6ICdkcm9wZG93bi13aXRoLW90aGVyJywgY29tcG9uZW50OiBEcm9wZG93bldpdGhPdGhlckNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdSYWRpbyBHcm91cCB3aXRoIE90aGVyJywga2V5OiAncmFkaW8tZ3JvdXAtY3VzdG9tJywgY29tcG9uZW50OiBSYWRpb0dyb3VwQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ011bHRpc2VsZWN0IERyb3Bkb3duJywga2V5OiAnbGliLW11bHRpc2VsZWN0LWRyb3Bkb3duJywgY29tcG9uZW50OiBNdWx0aXNlbGVjdERyb3Bkb3duQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ011bHRpc2VsZWN0IERyb3Bkb3duIHdpdGggQ2hpbGRzJywga2V5OiAnbGliLW11bHRpc2VsZWN0LWRyb3Bkb3duLXdpdGgtY2hpbGRzJywgY29tcG9uZW50OiBNdWx0aXNlbGVjdERyb3Bkb3duV2l0aENoaWxkc0NvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdEcm9wZG93biB3aXRoIFNlYXJjaCcsIGtleTogJ2xpYi1kcm9wZG93bi13aXRoLXNlYXJjaCcsIGNvbXBvbmVudDogRHJvcGRvd25XaXRoU2VhcmNoQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ011bHRpc2VsZWN0IHdpdGggRm9ybSAnLCBrZXk6ICdsaWItY3VzdG9taXplLWRyb3Bkb3duJywgY29tcG9uZW50OiBDdXN0b21pemVEcm9wZG93bkNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdTdW1tYXJ5Jywga2V5OiAnbGliLXN1bW1hcnknLCBjb21wb25lbnQ6IFN1bW1hcnlDb21wb25lbnQgfSxcclxuICAgICAgXHJcbiAgICBdO1xyXG4gICAgXHJcbiAgICBjb21wb25lbnRzLmZvckVhY2goKHsgbmFtZSwga2V5LCBjb21wb25lbnQgfSkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoa2V5KSkge1xyXG4gICAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudChuYW1lLCBrZXksIGNvbXBvbmVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU3VibWl0KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZnhGb3JtU3VibWl0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN1Ym1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybS5zdWJtaXQoKTtcclxuICB9XHJcbn1cclxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZngtZm9ybS1jb21wb25lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9meC1mb3JtLWNvbXBvbmVudC9meC1mb3JtLWNvbXBvbmVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFVLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBRWxILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUN4SSxPQUFPLEVBQUUsMkJB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Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRnhGb3JtLCBGeEZvcm1Db21wb25lbnQgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgRGlzcGF0Y2hUb0NsaW5pY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS1jb250cm9scy9kaXNwYXRjaC10by1jbGluaWMvZGlzcGF0Y2gtdG8tY2xpbmljLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEeW5hbWljVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9nZ2xlLWJ1dHRvbi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vdXBsb2FkZXIvdXBsb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVcGxvYWRlckNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdXBsb2FkZXItY2hlY2tib3gvdXBsb2FkZXItY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyb3Bkb3duV2l0aE90aGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24td2l0aC1vdGhlci9kcm9wZG93bi13aXRoLW90aGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9yYWRpby1ncm91cC9yYWRpby1ncm91cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNdWx0aXNlbGVjdERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGlzZWxlY3QtZHJvcGRvd24vbXVsdGlzZWxlY3QtZHJvcGRvd24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXVsdGlzZWxlY3REcm9wZG93bldpdGhDaGlsZHNDb21wb25lbnQgfSBmcm9tICcuLi9tdWx0aXNlbGVjdC1kcm9wZG93bi13aXRoLWNoaWxkcy9tdWx0aXNlbGVjdC1kcm9wZG93bi13aXRoLWNoaWxkcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcm9wZG93bldpdGhTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi13aXRoLXNlYXJjaC9kcm9wZG93bi13aXRoLXNlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY2NvcmRpYW5Db21wb25lbnQgfSBmcm9tICcuLi9hY2NvcmRpYW4vYWNjb3JkaWFuLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1bW1hcnlDb21wb25lbnQgfSBmcm9tICcuLi9zdW1tYXJ5L3N1bW1hcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9taXplRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9jdXN0b21pemUtZHJvcGRvd24vY3VzdG9taXplLWRyb3Bkb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEhlYWRpbmdDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkaW5nL2hlYWRpbmcuY29tcG9uZW50JztcclxuLy8gaW1wb3J0IHsgQ3VzdG9taXplRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9tdWx0aXNlbGVjdC13aXRoLWZvcm0tZmllbGRzL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmeC1mb3JtLWNvbXBvbmVudCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGeEZvcm1Db21wb25lbnRdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZngtZm9ybSBcclxuICAgICAgW2Z4Rm9ybV09XCJmeEZvcm1cIiBcclxuICAgICAgW3ZhbHVlXT1cInZhcmlhYmxlc1wiIFxyXG4gICAgICAob25TdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiIFxyXG4gICAgICAjZm9ybVxyXG4gICAgPlxyXG4gICAgPC9meC1mb3JtPlxyXG4gIGAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGeEZvcm1XcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm0nKSBmb3JtITogRnhGb3JtQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGZ4Rm9ybSE6IEZ4Rm9ybTtcclxuICBASW5wdXQoKSB2YXJpYWJsZXM6IGFueTtcclxuICBAT3V0cHV0KCkgZnhGb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnhXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UpIHtcclxuICAgIHRoaXMucmVnaXN0ZXJDdXN0b21Db21wb25lbnRzKCk7XHJcbiAgIH1cclxuXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHsgXHJcbiAgICAvLyBpZigndmFyaWFibGVzJyBpbiBjaGFuZ2VzICYmICFjaGFuZ2VzWydmeEZvcm0nXSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UudmFyaWFibGVzJC5uZXh0KHRoaXMudmFyaWFibGVzKTtcclxuICAgIC8vIH1cclxuICAgIGlmICgndmFyaWFibGVzJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkLm5leHQodGhpcy52YXJpYWJsZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2Rpc3BhdGNoLXRvLWNsaW5pYycpKSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ0Rpc3BhdGNoIFRvIENsaW5pYycsICdkaXNwYXRjaC10by1jbGluaWMnLCBEaXNwYXRjaFRvQ2xpbmljQ29tcG9uZW50KTtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdkeW5hbWljLXRhYmxlJykpKSB7XHJcbiAgICAvLyAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnRHluYW1pYyBUYWJsZScsICdkeW5hbWljLXRhYmxlJywgRHluYW1pY1RhYmxlQ29tcG9uZW50KTtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCd0b2dnbGUtYnV0dG9uJykpKSB7XHJcbiAgICAvLyAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnVG9nZ2xlIEJ1dHRvbicsICd0b2dnbGUtYnV0dG9uJywgVG9nZ2xlQnV0dG9uQ29tcG9uZW50KTtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCd1cGxvYWRlcicpKSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1VwbG9hZGVyJywgJ3VwbG9hZGVyJywgVXBsb2FkZXJDb21wb25lbnQpO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ3RvZ2dsZScpKSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1RvZ2dsZScsICd0b2dnbGUnLCBUb2dnbGVDb21wb25lbnQpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgcmVnaXN0ZXJDdXN0b21Db21wb25lbnRzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29tcG9uZW50cyA9IFtcclxuICAgICAgeyBuYW1lOiAnRGlzcGF0Y2ggVG8gQ2xpbmljJywga2V5OiAnZGlzcGF0Y2gtdG8tY2xpbmljJywgY29tcG9uZW50OiBEaXNwYXRjaFRvQ2xpbmljQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ0R5bmFtaWMgVGFibGUnLCBrZXk6ICdkeW5hbWljLXRhYmxlJywgY29tcG9uZW50OiBEeW5hbWljVGFibGVDb21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnVG9nZ2xlIEJ1dHRvbicsIGtleTogJ3RvZ2dsZS1idXR0b24nLCBjb21wb25lbnQ6IFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdVcGxvYWRlcicsIGtleTogJ3VwbG9hZGVyJywgY29tcG9uZW50OiBVcGxvYWRlckNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdUb2dnbGUnLCBrZXk6ICd0b2dnbGUnLCBjb21wb25lbnQ6IFRvZ2dsZUNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdVcGxvYWRlciB3aXRoIENoZWNrYm94Jywga2V5OiAndXBsb2FkZXItY2hlY2tib3gnLCBjb21wb25lbnQ6IFVwbG9hZGVyQ2hlY2tib3hDb21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnRGF0ZSBQaWNrZXInLCBrZXk6ICdsaWItZGF0ZS1waWNrZXInLCBjb21wb25lbnQ6IERhdGVQaWNrZXJDb21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnU21hcnRsaXN0IHdpdGggT3RoZXInLCBrZXk6ICdkcm9wZG93bi13aXRoLW90aGVyJywgY29tcG9uZW50OiBEcm9wZG93bldpdGhPdGhlckNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdSYWRpbyBHcm91cCB3aXRoIE90aGVyJywga2V5OiAncmFkaW8tZ3JvdXAtY3VzdG9tJywgY29tcG9uZW50OiBSYWRpb0dyb3VwQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ011bHRpc2VsZWN0IERyb3Bkb3duJywga2V5OiAnbGliLW11bHRpc2VsZWN0LWRyb3Bkb3duJywgY29tcG9uZW50OiBNdWx0aXNlbGVjdERyb3Bkb3duQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ011bHRpc2VsZWN0IERyb3Bkb3duIHdpdGggQ2hpbGRzJywga2V5OiAnbGliLW11bHRpc2VsZWN0LWRyb3Bkb3duLXdpdGgtY2hpbGRzJywgY29tcG9uZW50OiBNdWx0aXNlbGVjdERyb3Bkb3duV2l0aENoaWxkc0NvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdEcm9wZG93biB3aXRoIFNlYXJjaCcsIGtleTogJ2xpYi1kcm9wZG93bi13aXRoLXNlYXJjaCcsIGNvbXBvbmVudDogRHJvcGRvd25XaXRoU2VhcmNoQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ011bHRpc2VsZWN0IHdpdGggRm9ybSAnLCBrZXk6ICdsaWItY3VzdG9taXplLWRyb3Bkb3duJywgY29tcG9uZW50OiBDdXN0b21pemVEcm9wZG93bkNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdTdW1tYXJ5Jywga2V5OiAnbGliLXN1bW1hcnknLCBjb21wb25lbnQ6IFN1bW1hcnlDb21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnSGVhZGVyJywga2V5OiAnbGliLWhlYWRpbmcnLCBjb21wb25lbnQ6IEhlYWRpbmdDb21wb25lbnQgfSxcclxuICAgICAgXHJcbiAgICBdO1xyXG4gICAgXHJcbiAgICBjb21wb25lbnRzLmZvckVhY2goKHsgbmFtZSwga2V5LCBjb21wb25lbnQgfSkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoa2V5KSkge1xyXG4gICAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudChuYW1lLCBrZXksIGNvbXBvbmVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU3VibWl0KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZnhGb3JtU3VibWl0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN1Ym1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybS5zdWJtaXQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,45 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component } from '@angular/core';
3
+ import { FxBaseComponent, FxComponent, FxStringSetting } from '@instantsys-labs/fx';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ import * as i2 from "../../fx-builder-wrapper.service";
7
+ import * as i3 from "@angular/common";
8
+ export class HeadingComponent extends FxBaseComponent {
9
+ cdr;
10
+ http;
11
+ fxBuilderWrapperService;
12
+ selectedLevel = 1;
13
+ headingText = '';
14
+ sectionOpened = true;
15
+ constructor(cdr, http, fxBuilderWrapperService) {
16
+ super(cdr);
17
+ this.cdr = cdr;
18
+ this.http = http;
19
+ this.fxBuilderWrapperService = fxBuilderWrapperService;
20
+ this.onInit.subscribe(() => {
21
+ // this._register(this.datePickerForm);
22
+ });
23
+ }
24
+ ngOnInit() {
25
+ this.selectedLevel = this.setting('hType') || 1;
26
+ this.headingText = this.setting('hLabel') || 'Header';
27
+ }
28
+ settings() {
29
+ return [
30
+ new FxStringSetting({ key: 'hLabel', $title: 'Label', value: 'Header' }),
31
+ // new FxSelectSetting({ key: 'hType', $title: 'Heading Type', value: 1 }, [{ option: 'H1', value: 1 }, { option: 'H2', value: 2 }, { option: 'H3', value: 3 }, { option: 'H4', value: 4 }, { option: 'H5', value: 5 }, { option: 'H6', value: 6 }]),
32
+ new FxStringSetting({ key: 'hClass', $title: 'Custom Class Name', value: '' }),
33
+ ];
34
+ }
35
+ validations() {
36
+ return [];
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeadingComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.FxBuilderWrapperService }], target: i0.ɵɵFactoryTarget.Component });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeadingComponent, isStandalone: true, selector: "lib-heading", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div [ngClass]=\"setting('hClass')\">\r\n {{headingText}}\r\n </div>\r\n</fx-component> ", styles: [""], dependencies: [{ kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeadingComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'lib-heading', standalone: true, imports: [FxComponent, CommonModule], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div [ngClass]=\"setting('hClass')\">\r\n {{headingText}}\r\n </div>\r\n</fx-component> " }]
44
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.FxBuilderWrapperService }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2hlYWRpbmcvaGVhZGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2hlYWRpbmcvaGVhZGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFxQixTQUFTLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUE4QixlQUFlLEVBQW9DLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBV2xKLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBSTlCO0lBQStCO0lBQXlCO0lBSDdFLGFBQWEsR0FBVyxDQUFDLENBQUM7SUFDMUIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUMzQixhQUFhLEdBQVksSUFBSSxDQUFDO0lBQzNCLFlBQW9CLEdBQXNCLEVBQVMsSUFBZ0IsRUFBUyx1QkFBZ0Q7UUFDekgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRE8sUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUV6SCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekIsdUNBQXVDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVELFFBQVE7UUFFTixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUM7SUFFeEQsQ0FBQztJQUdRLFFBQVE7UUFDYixPQUFPO1lBQ0wsSUFBSSxlQUFlLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3hFLHFQQUFxUDtZQUN0UCxJQUFJLGVBQWUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUM5RSxDQUFDO0lBQ0osQ0FBQztJQUVTLFdBQVc7UUFDbkIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO3dHQTlCTSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw4RkNmN0IsNEpBSW1CLDBERE9QLFdBQVcsNEVBQUMsWUFBWTs7NEZBSXZCLGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZ4QmFzZUNvbXBvbmVudCwgRnhDb21wb25lbnQsIEZ4U2VsZWN0U2V0dGluZywgRnhTZXR0aW5nLCBGeFN0cmluZ1NldHRpbmcsIEZ4VmFsaWRhdGlvbiwgRnhWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9meCc7XHJcbmltcG9ydCB7IENhbGVuZGFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCB7IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaGVhZGluZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRnhDb21wb25lbnQsQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGluZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2hlYWRpbmcuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRpbmdDb21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHNlbGVjdGVkTGV2ZWw6IG51bWJlciA9IDE7XHJcbiAgaGVhZGluZ1RleHQ6IHN0cmluZyA9ICcnO1xyXG5zZWN0aW9uT3BlbmVkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxwcml2YXRlIGZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlOiBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSkge1xyXG4gICAgICBzdXBlcihjZHIpXHJcbiAgICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5fcmVnaXN0ZXIodGhpcy5kYXRlUGlja2VyRm9ybSk7XHJcbiAgICAgIH0pO1xyXG4gICAgIFxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZExldmVsID0gdGhpcy5zZXR0aW5nKCdoVHlwZScpIHx8IDE7XHJcbiAgICAgIHRoaXMuaGVhZGluZ1RleHQgPSB0aGlzLnNldHRpbmcoJ2hMYWJlbCcpIHx8ICdIZWFkZXInO1xyXG4gICAgICBcclxuICAgIH1cclxuXHJcblxyXG4gICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnaExhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJ0hlYWRlcicgfSksXHJcbiAgICAgICAgICAvLyBuZXcgRnhTZWxlY3RTZXR0aW5nKHsga2V5OiAnaFR5cGUnLCAkdGl0bGU6ICdIZWFkaW5nIFR5cGUnLCB2YWx1ZTogMSB9LCBbeyBvcHRpb246ICdIMScsIHZhbHVlOiAxIH0sIHsgb3B0aW9uOiAnSDInLCB2YWx1ZTogMiB9LCB7IG9wdGlvbjogJ0gzJywgdmFsdWU6IDMgfSwgeyBvcHRpb246ICdINCcsIHZhbHVlOiA0IH0sIHsgb3B0aW9uOiAnSDUnLCB2YWx1ZTogNSB9LCB7IG9wdGlvbjogJ0g2JywgdmFsdWU6IDYgfV0pLFxyXG4gICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnaENsYXNzJywgJHRpdGxlOiAnQ3VzdG9tIENsYXNzIE5hbWUnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9ucygpOiBGeFZhbGlkYXRpb25bXSB7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9XHJcblxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInNldHRpbmcoJ2hDbGFzcycpXCI+XHJcbiAgICAgIHt7aGVhZGluZ1RleHR9fVxyXG4gICAgPC9kaXY+XHJcbjwvZngtY29tcG9uZW50PiAgICAiXX0=
@@ -15,6 +15,7 @@ import { MultiselectDropdownWithChildsComponent } from './components/multiselect
15
15
  import { DropdownWithSearchComponent } from './components/dropdown-with-search/dropdown-with-search.component';
16
16
  import { SummaryComponent } from './components/summary/summary.component';
17
17
  import { CustomizeDropdownComponent } from './components/customize-dropdown/customize-dropdown.component';
18
+ import { HeadingComponent } from './components/heading/heading.component';
18
19
  import * as i0 from "@angular/core";
19
20
  import * as i1 from "./fx-builder-wrapper.service";
20
21
  // import { CustomizeDropdownComponent } from './components/multiselect-with-form-fields/customize-dropdown.component';
@@ -79,6 +80,9 @@ export class FxBuilderWrapperComponent {
79
80
  if (!Boolean(this.fxWrapperService.getComponent('lib-summary'))) {
80
81
  this.fxWrapperService.registerCustomComponent('Summary', 'lib-summary', SummaryComponent);
81
82
  }
83
+ if (!Boolean(this.fxWrapperService.getComponent('lib-heading'))) {
84
+ this.fxWrapperService.registerCustomComponent('Header', 'lib-heading', HeadingComponent);
85
+ }
82
86
  }
83
87
  ;
84
88
  getParsedForm() {
@@ -116,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
116
120
  type: Input,
117
121
  args: [{ alias: 'fx-form', required: true }]
118
122
  }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZngtYnVpbGRlci13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z4LWJ1aWxkZXItd3JhcHBlci9zcmMvbGliL2Z4LWJ1aWxkZXItd3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUEwQixrQkFBa0IsRUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRTlHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUNsSixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0Us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L0gsQ0FBQztRQUNELHlFQUF5RTtRQUN6RSxxR0FBcUc7UUFDckcsSUFBSTtRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RixDQUFDO0lBQ0gsQ0FBQztJQUFBLENBQUM7SUFHSyxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFTSxvQkFBb0I7UUFDekIsT0FBTyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDakMsQ0FBQzt3R0F0RVUseUJBQXlCOzRGQUF6Qix5QkFBeUIsK09BWDFCOzs7Ozs7OztHQVFULHlFQVRTLFlBQVksK0JBQUUsa0JBQWtCOzs0RkFZL0IseUJBQXlCO2tCQWZyQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsWUFDakM7Ozs7Ozs7O0dBUVQ7NEZBSThCLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ2dCLE1BQU07c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRnhCdWlsZGVyQ29uZmlndXJhdGlvbiwgRnhDb21wb25lbnRCdWlsZGVyLCBGeEZvcm0sIEZ4TW9kZSwgRnhTY29wZSwgRnhVdGlscyB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBEaXNwYXRjaFRvQ2xpbmljQ29tcG9uZW50IH0gZnJvbSAnLi9jdXN0b20tY29udHJvbHMvZGlzcGF0Y2gtdG8tY2xpbmljL2Rpc3BhdGNoLXRvLWNsaW5pYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4vZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEeW5hbWljVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b2dnbGUtYnV0dG9uL3RvZ2dsZS1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXBsb2FkZXIvdXBsb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXBsb2FkZXJDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91cGxvYWRlci1jaGVja2JveC91cGxvYWRlci1jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyb3Bkb3duV2l0aE90aGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSYWRpb0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE11bHRpc2VsZWN0RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbXVsdGlzZWxlY3QtZHJvcGRvd24vbXVsdGlzZWxlY3QtZHJvcGRvd24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXVsdGlzZWxlY3REcm9wZG93bldpdGhDaGlsZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbXVsdGlzZWxlY3QtZHJvcGRvd24td2l0aC1jaGlsZHMvbXVsdGlzZWxlY3QtZHJvcGRvd24td2l0aC1jaGlsZHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25XaXRoU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtc2VhcmNoL2Ryb3Bkb3duLXdpdGgtc2VhcmNoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjY29yZGlhbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY2NvcmRpYW4vYWNjb3JkaWFuLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1bW1hcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3VtbWFyeS9zdW1tYXJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1c3RvbWl6ZURyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2N1c3RvbWl6ZS1kcm9wZG93bi9jdXN0b21pemUtZHJvcGRvd24uY29tcG9uZW50JztcclxuLy8gaW1wb3J0IHsgQ3VzdG9taXplRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbXVsdGlzZWxlY3Qtd2l0aC1mb3JtLWZpZWxkcy9jdXN0b21pemUtZHJvcGRvd24uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZngtYnVpbGRlci13cmFwcGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZ4Q29tcG9uZW50QnVpbGRlcl0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxmeC1jb21wb25lbnQtYnVpbGRlciBcclxuICAgICAgICAjY29tcG9uZW50QnVpbGRlciBcclxuICAgICAgICBbZngtZm9ybV09XCJmeEZvcm1cIiBcclxuICAgICAgICBbY29uZmlndXJhdGlvbl09XCJmeENvbmZpZ3VyYXRpb25cIiBcclxuICAgICAgICBbc2NvcGVdPVwiRnhTY29wZS5CVUlMREVSXCJcclxuICAgICAgICA+XHJcbiAgICA8L2Z4LWNvbXBvbmVudC1idWlsZGVyPlxyXG4gIGAsXHJcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tYnVpbGRlci5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnhCdWlsZGVyV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnY29tcG9uZW50QnVpbGRlcicpIGNvbXBvbmVudEJ1aWxkZXIhOiBGeENvbXBvbmVudEJ1aWxkZXI7XHJcbiAgQElucHV0KHsgYWxpYXM6ICdmeC1mb3JtJywgcmVxdWlyZWQ6IHRydWUgfSkgZnhGb3JtOiBGeEZvcm0gPSBGeFV0aWxzLmNyZWF0ZU5ld0Zvcm0oKTtcclxuICBwdWJsaWMgZnhNb2RlOiBGeE1vZGUgPSBGeE1vZGUuRURJVDtcclxuICBwdWJsaWMgZnhDb25maWd1cmF0aW9uOiBGeEJ1aWxkZXJDb25maWd1cmF0aW9uID0ge1xyXG4gICAgc2V0dGluZ3M6IHRydWUsXHJcbiAgICBsb2dpY3M6IHRydWUsXHJcbiAgICBjdXN0b21Db250cm9sczogdHJ1ZSxcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZWFkb25seSBGeFNjb3BlID0gRnhTY29wZTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRnhNb2RlID0gRnhNb2RlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZ4V3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlKSB7IH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2Rpc3BhdGNoLXRvLWNsaW5pYycpKSkge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ0Rpc3BhdGNoIFRvIENsaW5pYycsICdkaXNwYXRjaC10by1jbGluaWMnLCBEaXNwYXRjaFRvQ2xpbmljQ29tcG9uZW50KTtcclxuICAgIH1cclxuICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdkeW5hbWljLXRhYmxlJykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnRHluYW1pYyBUYWJsZScsICdkeW5hbWljLXRhYmxlJywgRHluYW1pY1RhYmxlQ29tcG9uZW50KTtcclxuICAgIH1cclxuICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCd0b2dnbGUtYnV0dG9uJykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnVG9nZ2xlIEJ1dHRvbicsICd0b2dnbGUtYnV0dG9uJywgVG9nZ2xlQnV0dG9uQ29tcG9uZW50KTtcclxuICAgIH1cclxuICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCd1cGxvYWRlcicpKSkge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1VwbG9hZGVyJywgJ3VwbG9hZGVyJywgVXBsb2FkZXJDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ3VwbG9hZGVyLWNoZWNrYm94JykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnVXBsb2FkZXIgd2l0aCBDaGVja2JveCcsICd1cGxvYWRlci1jaGVja2JveCcsIFVwbG9hZGVyQ2hlY2tib3hDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ3RvZ2dsZScpKSkge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1RvZ2dsZScsICd0b2dnbGUnLCBUb2dnbGVDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2xpYi1kYXRlLXBpY2tlcicpKSkge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ0RhdGUgUGlja2VyJywgJ2xpYi1kYXRlLXBpY2tlcicsIERhdGVQaWNrZXJDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdkcm9wZG93bi13aXRoLW90aGVyJykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnU21hcnRsaXN0IHdpdGggT3RoZXInLCAnZHJvcGRvd24td2l0aC1vdGhlcicsIERyb3Bkb3duV2l0aE90aGVyQ29tcG9uZW50KTtcclxuICAgIH1cclxuICAgICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdyYWRpby1ncm91cC1jdXN0b20nKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdSYWRpbyBHcm91cCB3aXRoIE90aGVyJywgJ3JhZGlvLWdyb3VwLWN1c3RvbScsIFJhZGlvR3JvdXBDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdsaWItbXVsdGlzZWxlY3QtZHJvcGRvd24nKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdNdWx0aXNlbGVjdCBEcm9wZG93bicsICdsaWItbXVsdGlzZWxlY3QtZHJvcGRvd24nLCBNdWx0aXNlbGVjdERyb3Bkb3duQ29tcG9uZW50KTtcclxuICAgIH1cclxuICAgICBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgnbGliLW11bHRpc2VsZWN0LWRyb3Bkb3duLXdpdGgtY2hpbGRzJykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnTXVsdGlzZWxlY3QgRHJvcGRvd24gd2l0aCBDaGlsZHMnLCAnbGliLW11bHRpc2VsZWN0LWRyb3Bkb3duLXdpdGgtY2hpbGRzJywgTXVsdGlzZWxlY3REcm9wZG93bldpdGhDaGlsZHNDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdsaWItZHJvcGRvd24td2l0aC1zZWFyY2gnKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdEcm9wZG93biB3aXRoIFNlYXJjaCcsICdsaWItZHJvcGRvd24td2l0aC1zZWFyY2gnLCBEcm9wZG93bldpdGhTZWFyY2hDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdsaWItY3VzdG9taXplLWRyb3Bkb3duJykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnTXVsdGlzZWxlY3Qgd2l0aCBGb3JtJywgJ2xpYi1jdXN0b21pemUtZHJvcGRvd24nLCBDdXN0b21pemVEcm9wZG93bkNvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICAvLyAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdsaWItYWNjb3JkaWFuJykpKSB7XHJcbiAgICAvLyAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnQWNjb3JkaWFuJywgJ2xpYi1hY2NvcmRpYW4nLCBBY2NvcmRpYW5Db21wb25lbnQpO1xyXG4gICAgLy8gfVxyXG4gICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdsaWItc3VtbWFyeScpKSkge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1N1bW1hcnknLCAnbGliLXN1bW1hcnknLCBTdW1tYXJ5Q29tcG9uZW50KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuIFxyXG4gIHB1YmxpYyBnZXRQYXJzZWRGb3JtKCk6IEZ4Rm9ybSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRCdWlsZGVyLmdldFBhcnNlZEZvcm0oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJbml0aWFsaXplZEZ4Rm9ybSgpOiBGeEZvcm0ge1xyXG4gICAgcmV0dXJuIEZ4VXRpbHMuY3JlYXRlTmV3Rm9ybSgpOyBcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZngtYnVpbGRlci13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Z4LWJ1aWxkZXItd3JhcHBlci9zcmMvbGliL2Z4LWJ1aWxkZXItd3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUEwQixrQkFBa0IsRUFBVSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRTlHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUNsSixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0Us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ZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJDb25maWd1cmF0aW9uLCBGeENvbXBvbmVudEJ1aWxkZXIsIEZ4Rm9ybSwgRnhNb2RlLCBGeFNjb3BlLCBGeFV0aWxzIH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9meCc7XHJcbmltcG9ydCB7IERpc3BhdGNoVG9DbGluaWNDb21wb25lbnQgfSBmcm9tICcuL2N1c3RvbS1jb250cm9scy9kaXNwYXRjaC10by1jbGluaWMvZGlzcGF0Y2gtdG8tY2xpbmljLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IER5bmFtaWNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91cGxvYWRlci91cGxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVcGxvYWRlckNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VwbG9hZGVyLWNoZWNrYm94L3VwbG9hZGVyLWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25XaXRoT3RoZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24td2l0aC1vdGhlci9kcm9wZG93bi13aXRoLW90aGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmFkaW8tZ3JvdXAvcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXVsdGlzZWxlY3REcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tdWx0aXNlbGVjdC1kcm9wZG93bi9tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNdWx0aXNlbGVjdERyb3Bkb3duV2l0aENoaWxkc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tdWx0aXNlbGVjdC1kcm9wZG93bi13aXRoLWNoaWxkcy9tdWx0aXNlbGVjdC1kcm9wZG93bi13aXRoLWNoaWxkcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcm9wZG93bldpdGhTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24td2l0aC1zZWFyY2gvZHJvcGRvd24td2l0aC1zZWFyY2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWNjb3JkaWFuQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FjY29yZGlhbi9hY2NvcmRpYW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zdW1tYXJ5L3N1bW1hcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9taXplRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9taXplLWRyb3Bkb3duL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIZWFkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRpbmcvaGVhZGluZy5jb21wb25lbnQnO1xyXG4vLyBpbXBvcnQgeyBDdXN0b21pemVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tdWx0aXNlbGVjdC13aXRoLWZvcm0tZmllbGRzL2N1c3RvbWl6ZS1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmeC1idWlsZGVyLXdyYXBwZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRnhDb21wb25lbnRCdWlsZGVyXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGZ4LWNvbXBvbmVudC1idWlsZGVyIFxyXG4gICAgICAgICNjb21wb25lbnRCdWlsZGVyIFxyXG4gICAgICAgIFtmeC1mb3JtXT1cImZ4Rm9ybVwiIFxyXG4gICAgICAgIFtjb25maWd1cmF0aW9uXT1cImZ4Q29uZmlndXJhdGlvblwiIFxyXG4gICAgICAgIFtzY29wZV09XCJGeFNjb3BlLkJVSUxERVJcIlxyXG4gICAgICAgID5cclxuICAgIDwvZngtY29tcG9uZW50LWJ1aWxkZXI+XHJcbiAgYCxcclxuICBzdHlsZVVybDogJy4vZm9ybS1idWlsZGVyLmNzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGeEJ1aWxkZXJXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdjb21wb25lbnRCdWlsZGVyJykgY29tcG9uZW50QnVpbGRlciE6IEZ4Q29tcG9uZW50QnVpbGRlcjtcclxuICBASW5wdXQoeyBhbGlhczogJ2Z4LWZvcm0nLCByZXF1aXJlZDogdHJ1ZSB9KSBmeEZvcm06IEZ4Rm9ybSA9IEZ4VXRpbHMuY3JlYXRlTmV3Rm9ybSgpO1xyXG4gIHB1YmxpYyBmeE1vZGU6IEZ4TW9kZSA9IEZ4TW9kZS5FRElUO1xyXG4gIHB1YmxpYyBmeENvbmZpZ3VyYXRpb246IEZ4QnVpbGRlckNvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICBzZXR0aW5nczogdHJ1ZSxcclxuICAgIGxvZ2ljczogdHJ1ZSxcclxuICAgIGN1c3RvbUNvbnRyb2xzOiB0cnVlLFxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEZ4U2NvcGUgPSBGeFNjb3BlO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBGeE1vZGUgPSBGeE1vZGU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnhXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UpIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgnZGlzcGF0Y2gtdG8tY2xpbmljJykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnRGlzcGF0Y2ggVG8gQ2xpbmljJywgJ2Rpc3BhdGNoLXRvLWNsaW5pYycsIERpc3BhdGNoVG9DbGluaWNDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2R5bmFtaWMtdGFibGUnKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdEeW5hbWljIFRhYmxlJywgJ2R5bmFtaWMtdGFibGUnLCBEeW5hbWljVGFibGVDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ3RvZ2dsZS1idXR0b24nKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdUb2dnbGUgQnV0dG9uJywgJ3RvZ2dsZS1idXR0b24nLCBUb2dnbGVCdXR0b25Db21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ3VwbG9hZGVyJykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnVXBsb2FkZXInLCAndXBsb2FkZXInLCBVcGxvYWRlckNvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgndXBsb2FkZXItY2hlY2tib3gnKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdVcGxvYWRlciB3aXRoIENoZWNrYm94JywgJ3VwbG9hZGVyLWNoZWNrYm94JywgVXBsb2FkZXJDaGVja2JveENvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgndG9nZ2xlJykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnVG9nZ2xlJywgJ3RvZ2dsZScsIFRvZ2dsZUNvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgnbGliLWRhdGUtcGlja2VyJykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnRGF0ZSBQaWNrZXInLCAnbGliLWRhdGUtcGlja2VyJywgRGF0ZVBpY2tlckNvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICAgICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2Ryb3Bkb3duLXdpdGgtb3RoZXInKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdTbWFydGxpc3Qgd2l0aCBPdGhlcicsICdkcm9wZG93bi13aXRoLW90aGVyJywgRHJvcGRvd25XaXRoT3RoZXJDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ3JhZGlvLWdyb3VwLWN1c3RvbScpKSkge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1JhZGlvIEdyb3VwIHdpdGggT3RoZXInLCAncmFkaW8tZ3JvdXAtY3VzdG9tJywgUmFkaW9Hcm91cENvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2xpYi1tdWx0aXNlbGVjdC1kcm9wZG93bicpKSkge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ011bHRpc2VsZWN0IERyb3Bkb3duJywgJ2xpYi1tdWx0aXNlbGVjdC1kcm9wZG93bicsIE11bHRpc2VsZWN0RHJvcGRvd25Db21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdsaWItbXVsdGlzZWxlY3QtZHJvcGRvd24td2l0aC1jaGlsZHMnKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdNdWx0aXNlbGVjdCBEcm9wZG93biB3aXRoIENoaWxkcycsICdsaWItbXVsdGlzZWxlY3QtZHJvcGRvd24td2l0aC1jaGlsZHMnLCBNdWx0aXNlbGVjdERyb3Bkb3duV2l0aENoaWxkc0NvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2xpYi1kcm9wZG93bi13aXRoLXNlYXJjaCcpKSkge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ0Ryb3Bkb3duIHdpdGggU2VhcmNoJywgJ2xpYi1kcm9wZG93bi13aXRoLXNlYXJjaCcsIERyb3Bkb3duV2l0aFNlYXJjaENvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2xpYi1jdXN0b21pemUtZHJvcGRvd24nKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdNdWx0aXNlbGVjdCB3aXRoIEZvcm0nLCAnbGliLWN1c3RvbWl6ZS1kcm9wZG93bicsIEN1c3RvbWl6ZURyb3Bkb3duQ29tcG9uZW50KTtcclxuICAgIH1cclxuICAgIC8vICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2xpYi1hY2NvcmRpYW4nKSkpIHtcclxuICAgIC8vICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdBY2NvcmRpYW4nLCAnbGliLWFjY29yZGlhbicsIEFjY29yZGlhbkNvbXBvbmVudCk7XHJcbiAgICAvLyB9XHJcbiAgICAgaWYgKCFCb29sZWFuKHRoaXMuZnhXcmFwcGVyU2VydmljZS5nZXRDb21wb25lbnQoJ2xpYi1zdW1tYXJ5JykpKSB7XHJcbiAgICAgIHRoaXMuZnhXcmFwcGVyU2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudCgnU3VtbWFyeScsICdsaWItc3VtbWFyeScsIFN1bW1hcnlDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gICAgICAgICBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgnbGliLWhlYWRpbmcnKSkpIHtcclxuICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdIZWFkZXInLCAnbGliLWhlYWRpbmcnLCBIZWFkaW5nQ29tcG9uZW50KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuIFxyXG4gIHB1YmxpYyBnZXRQYXJzZWRGb3JtKCk6IEZ4Rm9ybSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRCdWlsZGVyLmdldFBhcnNlZEZvcm0oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJbml0aWFsaXplZEZ4Rm9ybSgpOiBGeEZvcm0ge1xyXG4gICAgcmV0dXJuIEZ4VXRpbHMuY3JlYXRlTmV3Rm9ybSgpOyBcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=