simpo-component-library 3.2.85 → 3.2.86

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.
Files changed (21) hide show
  1. package/esm2022/lib/components/hover-elements/hover-elements.component.mjs +3 -3
  2. package/esm2022/lib/directive/background-directive.mjs +3 -2
  3. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +2 -2
  4. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +3 -3
  5. package/esm2022/lib/elements/add-section/add-section.component.mjs +3 -3
  6. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
  7. package/esm2022/lib/elements/image-editor/image-editor.component.mjs +3 -3
  8. package/esm2022/lib/elements/media-selector/media-selector.component.mjs +3 -3
  9. package/esm2022/lib/sections/banner-section/banner-section.component.mjs +4 -3
  10. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +7 -5
  11. package/esm2022/lib/sections/header-section/header-section.component.mjs +3 -3
  12. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +3 -3
  13. package/esm2022/lib/sections/new-services/new-services.component.mjs +3 -3
  14. package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +3 -3
  15. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
  16. package/fesm2022/simpo-component-library.mjs +33 -30
  17. package/fesm2022/simpo-component-library.mjs.map +1 -1
  18. package/package.json +1 -1
  19. package/simpo-component-library-3.2.86.tgz +0 -0
  20. package/src/lib/styles/global-styles.css +1 -1
  21. package/simpo-component-library-3.2.85.tgz +0 -0
@@ -187,11 +187,11 @@ export class MediaSelectorComponent {
187
187
  });
188
188
  }
189
189
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MediaSelectorComponent, deps: [{ token: i1.ImageUplaodService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i3.MatSnackBar }, { token: i4.ElementServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
190
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: MediaSelectorComponent, isStandalone: true, selector: "simpo-media-selector", viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "<section>\r\n <div class=\"header d-flex justify-content-between align-items-center\">\r\n <div class=\"heading\">Upload Image</div>\r\n <mat-icon (click)=\"_dialogRef.close()\" class=\"d-flex align-items-center justify-content-center f-18 cp\">close</mat-icon>\r\n </div>\r\n <div class=\"tabs d-flex align-items-center justify-content-between\">\r\n <div *ngFor=\"let tab of tabs\" [ngClass]=\"{'selectedTab': activeTab === tab}\" (click)=\"activeTab = tab\">{{tab}}</div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Unsplash'\">\r\n <ng-container *ngTemplateOutlet=\"unsplashImagesTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Upload'\">\r\n <ng-container *ngTemplateOutlet=\"uploadImageTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Library'\">\r\n <ng-container *ngTemplateOutlet=\"imageLibraryTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <div class=\"uploadButton d-flex\" *ngIf=\"this.selectedImage.size > 0\">\r\n <button (click)=\"uploadImage()\" [disabled]=\"buttonLoader\">\r\n <span *ngIf=\"buttonLoader\" ><i class=\"fas fa-circle-notch fa-spin\"></i>&nbsp;Loading</span>\r\n <span *ngIf=\"!buttonLoader\" >Upload Image</span></button>\r\n </div>\r\n</section>\r\n\r\n<ng-template #unsplashImagesTemplate>\r\n\r\n <div class=\"input-container d-flex align-items-center\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/314661c1741844234442Vector%20%281%29.png\"\r\n alt=\"search-bar-icon\">\r\n <input type=\"text\" placeholder=\"Search images\" [formControl]=\"searchControl\">\r\n </div>\r\n <cdk-virtual-scroll-viewport [itemSize]=\"imageSize\" [minBufferPx]=\"800\" [maxBufferPx]=\"1600\"\r\n class=\"scroll-container\">\r\n <div class=\"row image-container\">\r\n <div class=\"col-md-4 col-6\" *cdkVirtualFor=\"let image of unsplashImages\">\r\n <img [lazyLoad]=\"image.urls.thumb\" [errorImage]=\"'assets/error.jpg'\" (click)=\"selectUnsplashImage(image)\"\r\n [ngClass]=\"{'selectedImage': selectedImage.has(image.id)}\" alt=\"Image\" class=\"cp\" />\r\n </div>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n\r\n <p *ngIf=\"isLoading\">Loading more results...</p>\r\n\r\n</ng-template>\r\n\r\n<ng-template #uploadImageTemplate>\r\n <div>\r\n <div class=\"image-upload-container\">\r\n <div class=\"upload-img-container d-flex align-items-center justify-content-center\">\r\n <img lazy src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/187238c1742394129668upload-one.png\" alt=\"upload-image\" class=\"upload-img\">\r\n </div>\r\n <div class=\"text-container text-center\">\r\n <div class=\"top-text\">Choose a file or drag and drop it here</div>\r\n <div class=\"middle-text\">JPEG, PNG formats up to 50MB</div>\r\n <div class=\"upload-btn d-flex align-items-center justify-content-center\">\r\n <div class=\"uploads cp\" (click)=\"fileInput.click()\">\r\n Upload\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <input type=\"file\" style=\"display: none\" (change)=\"uploadImageFromSystem($event)\" [multiple]=\"multiple\"\r\n accept=\"image/png, image/jpeg, image/jpg, image/gif\" #fileInput />\r\n\r\n <div class=\"row image-container mt-3 h-30-overflow\">\r\n <ng-container *ngFor=\"let image of selectedImage | keyvalue\">\r\n <div class=\"col-md-4 systemImage\" *ngIf=\"image.value.file\">\r\n <img [src]=\"image.value.assets[0].url\" alt=\"Image\" />\r\n <mat-icon (click)=\"deleteSystemImage(image.key)\">delete</mat-icon>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #imageLibraryTemplate>\r\n <div class=\"row image-container mt-3 h-75-overflow\">\r\n <ng-container *ngIf=\"imageLibrary.length > 0; else emptyScreen\">\r\n <ng-container *ngFor=\"let image of imageLibrary\">\r\n <div class=\"col-md-4 col-6\">\r\n <img [src]=\"image.assets[0].url\" alt=\"Image\" (click)=\"selectFromImageLibrary(image)\" [ngClass]=\"{'selectedImage': selectedImage.has(image.uniqueId)}\"/>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #emptyScreen>\r\n <div class=\"empty-container d-flex justify-content-center align-items-center w-100 flex-column\">\r\n <div class=\"empty-img-container d-flex justify-content-center align-items-center\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/935737c1743411798188image%20%287%29.png\" alt=\"\">\r\n </div>\r\n <div class=\"empty-main-text\">\r\n Uh-oh!\r\n </div>\r\n <div class=\"sub-text-1\">\r\n No images here\r\n </div>\r\n <div class=\"sub-text-2\">\r\n I looked left, right\u2026 even turned around! Still nothing\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ng-template>\r\n", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}section{height:100%;position:relative}img{width:100%;height:200px}.scroll-container{height:calc(66vh + -0px);width:100%;overflow-y:scroll}.selectedImage{position:relative;border-radius:10px;overflow:hidden;border:3px solid hsl(227,52%,36%)}.uploadButton{position:absolute;bottom:0;padding:10px;background:#fff;width:100%;justify-content:end;box-shadow:0 0 4px #00000040}.uploadButton button{background:var(--primary-bg-color);color:#fff;font-weight:600;border:unset;font-size:15px!important;padding:8px;border-radius:8px;width:15%!important}.systemImage{position:relative}.systemImage mat-icon{display:none}.systemImage:hover mat-icon{display:inline;position:absolute;right:15px;top:5px;color:red;cursor:pointer}.f-18{font-size:18px}.header{padding:10px;box-shadow:0 0 4px #00000040}.header .heading{font-size:15px;font-weight:600;line-height:24px}.header mat-icon{color:#2d264b}.tabs{padding:20px 40px}.tabs div{width:22%;cursor:pointer;text-align:center;padding:8px}.selectedTab{background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-weight:500;color:#fff;box-shadow:0 0 4px #00000040;border-radius:10px;font-weight:600;position:relative}.selectedTab:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.input-container{padding:6px 10px;gap:10px;margin:0 40px 20px;box-shadow:0 0 4px #00000040;border-radius:13px}.input-container input{width:90%;border:unset;appearance:unset;outline:unset}.input-container img{width:20px;height:20px}.image-container{margin:0 40px 20px}.image-container div{margin-bottom:20px}.image-container div img{border-radius:13px}.image-upload-container{margin:0 40px;border-radius:17px;padding:15px;border:3px dashed rgba(44,44,44,.6)}.upload-img{width:12%;height:10%}.cp{cursor:pointer}.middle-text{font-size:15px;color:#686868}.top-text{background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-size:17px;font-weight:600}.uploads{width:20%;padding:8px;background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-size:17px;font-weight:600;position:relative;margin-top:15px}.uploads:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.h-30-overflow{height:calc(30vh + -0px);overflow-y:scroll}.h-75-overflow{height:calc(75vh + -0px);overflow-y:scroll}.empty-main-text{font-weight:900;font-size:42px;background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent}.sub-text-1{font-size:19px;font-weight:600;color:#101010e5}.sub-text-2{font-size:16px;font-weight:600;color:#101010e5}@media screen and (max-width : 475px){.tabs div{width:30%!important}.uploadButton button{width:35%!important}.uploads{width:30%!important}.sub-text-2{text-align:center!important}img{height:150px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: LazyLoadImageModule }, { kind: "directive", type: i7.LazyLoadImageDirective, selector: "[lazyLoad]", inputs: ["lazyLoad", "defaultImage", "errorImage", "scrollTarget", "customObservable", "offset", "useSrcset", "decode", "debug"], outputs: ["onStateChange"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i8.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i8.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
190
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: MediaSelectorComponent, isStandalone: true, selector: "simpo-media-selector", viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], ngImport: i0, template: "<section>\r\n <div class=\"header d-flex justify-content-between align-items-center\">\r\n <div class=\"heading\">Upload Image</div>\r\n <mat-icon (click)=\"_dialogRef.close()\" class=\"d-flex align-items-center justify-content-center f-18 cp\">close</mat-icon>\r\n </div>\r\n <div class=\"tabs d-flex align-items-center justify-content-between\">\r\n <div *ngFor=\"let tab of tabs\" [ngClass]=\"{'selectedTab': activeTab === tab}\" (click)=\"activeTab = tab\">{{tab}}</div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Unsplash'\">\r\n <ng-container *ngTemplateOutlet=\"unsplashImagesTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Upload'\">\r\n <ng-container *ngTemplateOutlet=\"uploadImageTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Library'\">\r\n <ng-container *ngTemplateOutlet=\"imageLibraryTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <div class=\"uploadButton d-flex\" *ngIf=\"this.selectedImage.size > 0\">\r\n <button (click)=\"uploadImage()\" [disabled]=\"buttonLoader\">\r\n <span *ngIf=\"buttonLoader\" ><i class=\"fas fa-circle-notch fa-spin\"></i>&nbsp;Loading</span>\r\n <span *ngIf=\"!buttonLoader\" >Upload Image</span></button>\r\n </div>\r\n</section>\r\n\r\n<ng-template #unsplashImagesTemplate>\r\n\r\n <div class=\"input-container d-flex align-items-center\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/314661c1741844234442Vector%20%281%29.png\"\r\n alt=\"search-bar-icon\">\r\n <input type=\"text\" placeholder=\"Search images\" [formControl]=\"searchControl\">\r\n </div>\r\n <cdk-virtual-scroll-viewport [itemSize]=\"imageSize\" [minBufferPx]=\"800\" [maxBufferPx]=\"1600\"\r\n class=\"scroll-container\">\r\n <div class=\"row image-container\">\r\n <div class=\"col-md-4 col-6\" *cdkVirtualFor=\"let image of unsplashImages\">\r\n <img [lazyLoad]=\"image.urls.thumb\" [errorImage]=\"'assets/error.jpg'\" (click)=\"selectUnsplashImage(image)\"\r\n [ngClass]=\"{'selectedImage': selectedImage.has(image.id)}\" alt=\"Image\" class=\"cp\" />\r\n </div>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n\r\n <p *ngIf=\"isLoading\">Loading more results...</p>\r\n\r\n</ng-template>\r\n\r\n<ng-template #uploadImageTemplate>\r\n <div>\r\n <div class=\"image-upload-container\">\r\n <div class=\"upload-img-container d-flex align-items-center justify-content-center\">\r\n <img lazy src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/547500c1744698830343upload-one%20%281%29.png\" alt=\"upload-image\" class=\"upload-img\">\r\n </div>\r\n <div class=\"text-container text-center\">\r\n <div class=\"top-text\">Choose a file or drag and drop it here</div>\r\n <div class=\"middle-text\">JPEG, PNG formats up to 50MB</div>\r\n <div class=\"upload-btn d-flex align-items-center justify-content-center\">\r\n <div class=\"uploads cp\" (click)=\"fileInput.click()\">\r\n Upload\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <input type=\"file\" style=\"display: none\" (change)=\"uploadImageFromSystem($event)\" [multiple]=\"multiple\"\r\n accept=\"image/png, image/jpeg, image/jpg, image/gif\" #fileInput />\r\n\r\n <div class=\"row image-container mt-3 h-30-overflow\">\r\n <ng-container *ngFor=\"let image of selectedImage | keyvalue\">\r\n <div class=\"col-md-4 systemImage\" *ngIf=\"image.value.file\">\r\n <img [src]=\"image.value.assets[0].url\" alt=\"Image\" />\r\n <mat-icon (click)=\"deleteSystemImage(image.key)\">delete</mat-icon>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #imageLibraryTemplate>\r\n <div class=\"row image-container mt-3 h-75-overflow\">\r\n <ng-container *ngIf=\"imageLibrary.length > 0; else emptyScreen\">\r\n <ng-container *ngFor=\"let image of imageLibrary\">\r\n <div class=\"col-md-4 col-6\">\r\n <img [src]=\"image.assets[0].url\" alt=\"Image\" (click)=\"selectFromImageLibrary(image)\" [ngClass]=\"{'selectedImage': selectedImage.has(image.uniqueId)}\"/>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #emptyScreen>\r\n <div class=\"empty-container d-flex justify-content-center align-items-center w-100 flex-column\">\r\n <div class=\"empty-img-container d-flex justify-content-center align-items-center\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/935737c1743411798188image%20%287%29.png\" alt=\"\">\r\n </div>\r\n <div class=\"empty-main-text\">\r\n Uh-oh!\r\n </div>\r\n <div class=\"sub-text-1\">\r\n No images here\r\n </div>\r\n <div class=\"sub-text-2\">\r\n I looked left, right\u2026 even turned around! Still nothing\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ng-template>\r\n", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}section{height:100%;position:relative}img{width:100%;height:200px}.scroll-container{height:calc(66vh + -0px);width:100%;overflow-y:scroll}.selectedImage{position:relative;border-radius:10px;overflow:hidden;border:3px solid hsl(227,52%,36%)}.uploadButton{position:absolute;bottom:0;padding:10px;background:#fff;width:100%;justify-content:end;box-shadow:0 0 4px #00000040}.uploadButton button{background:var(--primary-bg-color);color:#fff;font-weight:600;border:unset;font-size:15px!important;padding:8px;border-radius:8px;width:15%!important}.systemImage{position:relative}.systemImage mat-icon{display:none}.systemImage:hover mat-icon{display:inline;position:absolute;right:15px;top:5px;color:red;cursor:pointer}.f-18{font-size:18px}.header{padding:10px;box-shadow:0 0 4px #00000040}.header .heading{font-size:15px;font-weight:600;line-height:24px}.header mat-icon{color:#2d264b}.tabs{padding:20px 40px}.tabs div{width:22%;cursor:pointer;text-align:center;padding:8px}.selectedTab{background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-weight:500;color:#fff;box-shadow:0 0 4px #00000040;border-radius:10px;font-weight:600;position:relative}.selectedTab:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.input-container{padding:6px 10px;gap:10px;margin:0 40px 20px;box-shadow:0 0 4px #00000040;border-radius:13px}.input-container input{width:90%;border:unset;appearance:unset;outline:unset}.input-container img{width:20px;height:20px}.image-container{margin:0 40px 20px}.image-container div{margin-bottom:20px}.image-container div img{border-radius:13px}.image-upload-container{margin:0 40px;border-radius:17px;padding:15px;border:3px dashed rgba(44,44,44,.6)}.upload-img{width:12%;height:10%}.cp{cursor:pointer}.middle-text{font-size:15px;color:#686868}.top-text{background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-size:17px;font-weight:600}.uploads{width:20%;padding:8px;background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-size:17px;font-weight:600;position:relative;margin-top:15px}.uploads:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.h-30-overflow{height:calc(30vh + -0px);overflow-y:scroll}.h-75-overflow{height:calc(75vh + -0px);overflow-y:scroll}.empty-main-text{font-weight:900;font-size:42px;background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent}.sub-text-1{font-size:19px;font-weight:600;color:#101010e5}.sub-text-2{font-size:16px;font-weight:600;color:#101010e5}@media screen and (max-width : 475px){.tabs div{width:30%!important}.uploadButton button{width:35%!important}.uploads{width:30%!important}.sub-text-2{text-align:center!important}img{height:150px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: LazyLoadImageModule }, { kind: "directive", type: i7.LazyLoadImageDirective, selector: "[lazyLoad]", inputs: ["lazyLoad", "defaultImage", "errorImage", "scrollTarget", "customObservable", "offset", "useSrcset", "decode", "debug"], outputs: ["onStateChange"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i8.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i8.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
191
191
  }
192
192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: MediaSelectorComponent, decorators: [{
193
193
  type: Component,
194
- args: [{ selector: 'simpo-media-selector', standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule, CdkVirtualScrollViewport, LazyLoadImageModule, ScrollingModule, MatIconModule], template: "<section>\r\n <div class=\"header d-flex justify-content-between align-items-center\">\r\n <div class=\"heading\">Upload Image</div>\r\n <mat-icon (click)=\"_dialogRef.close()\" class=\"d-flex align-items-center justify-content-center f-18 cp\">close</mat-icon>\r\n </div>\r\n <div class=\"tabs d-flex align-items-center justify-content-between\">\r\n <div *ngFor=\"let tab of tabs\" [ngClass]=\"{'selectedTab': activeTab === tab}\" (click)=\"activeTab = tab\">{{tab}}</div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Unsplash'\">\r\n <ng-container *ngTemplateOutlet=\"unsplashImagesTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Upload'\">\r\n <ng-container *ngTemplateOutlet=\"uploadImageTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Library'\">\r\n <ng-container *ngTemplateOutlet=\"imageLibraryTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <div class=\"uploadButton d-flex\" *ngIf=\"this.selectedImage.size > 0\">\r\n <button (click)=\"uploadImage()\" [disabled]=\"buttonLoader\">\r\n <span *ngIf=\"buttonLoader\" ><i class=\"fas fa-circle-notch fa-spin\"></i>&nbsp;Loading</span>\r\n <span *ngIf=\"!buttonLoader\" >Upload Image</span></button>\r\n </div>\r\n</section>\r\n\r\n<ng-template #unsplashImagesTemplate>\r\n\r\n <div class=\"input-container d-flex align-items-center\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/314661c1741844234442Vector%20%281%29.png\"\r\n alt=\"search-bar-icon\">\r\n <input type=\"text\" placeholder=\"Search images\" [formControl]=\"searchControl\">\r\n </div>\r\n <cdk-virtual-scroll-viewport [itemSize]=\"imageSize\" [minBufferPx]=\"800\" [maxBufferPx]=\"1600\"\r\n class=\"scroll-container\">\r\n <div class=\"row image-container\">\r\n <div class=\"col-md-4 col-6\" *cdkVirtualFor=\"let image of unsplashImages\">\r\n <img [lazyLoad]=\"image.urls.thumb\" [errorImage]=\"'assets/error.jpg'\" (click)=\"selectUnsplashImage(image)\"\r\n [ngClass]=\"{'selectedImage': selectedImage.has(image.id)}\" alt=\"Image\" class=\"cp\" />\r\n </div>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n\r\n <p *ngIf=\"isLoading\">Loading more results...</p>\r\n\r\n</ng-template>\r\n\r\n<ng-template #uploadImageTemplate>\r\n <div>\r\n <div class=\"image-upload-container\">\r\n <div class=\"upload-img-container d-flex align-items-center justify-content-center\">\r\n <img lazy src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/187238c1742394129668upload-one.png\" alt=\"upload-image\" class=\"upload-img\">\r\n </div>\r\n <div class=\"text-container text-center\">\r\n <div class=\"top-text\">Choose a file or drag and drop it here</div>\r\n <div class=\"middle-text\">JPEG, PNG formats up to 50MB</div>\r\n <div class=\"upload-btn d-flex align-items-center justify-content-center\">\r\n <div class=\"uploads cp\" (click)=\"fileInput.click()\">\r\n Upload\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <input type=\"file\" style=\"display: none\" (change)=\"uploadImageFromSystem($event)\" [multiple]=\"multiple\"\r\n accept=\"image/png, image/jpeg, image/jpg, image/gif\" #fileInput />\r\n\r\n <div class=\"row image-container mt-3 h-30-overflow\">\r\n <ng-container *ngFor=\"let image of selectedImage | keyvalue\">\r\n <div class=\"col-md-4 systemImage\" *ngIf=\"image.value.file\">\r\n <img [src]=\"image.value.assets[0].url\" alt=\"Image\" />\r\n <mat-icon (click)=\"deleteSystemImage(image.key)\">delete</mat-icon>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #imageLibraryTemplate>\r\n <div class=\"row image-container mt-3 h-75-overflow\">\r\n <ng-container *ngIf=\"imageLibrary.length > 0; else emptyScreen\">\r\n <ng-container *ngFor=\"let image of imageLibrary\">\r\n <div class=\"col-md-4 col-6\">\r\n <img [src]=\"image.assets[0].url\" alt=\"Image\" (click)=\"selectFromImageLibrary(image)\" [ngClass]=\"{'selectedImage': selectedImage.has(image.uniqueId)}\"/>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #emptyScreen>\r\n <div class=\"empty-container d-flex justify-content-center align-items-center w-100 flex-column\">\r\n <div class=\"empty-img-container d-flex justify-content-center align-items-center\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/935737c1743411798188image%20%287%29.png\" alt=\"\">\r\n </div>\r\n <div class=\"empty-main-text\">\r\n Uh-oh!\r\n </div>\r\n <div class=\"sub-text-1\">\r\n No images here\r\n </div>\r\n <div class=\"sub-text-2\">\r\n I looked left, right\u2026 even turned around! Still nothing\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ng-template>\r\n", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}section{height:100%;position:relative}img{width:100%;height:200px}.scroll-container{height:calc(66vh + -0px);width:100%;overflow-y:scroll}.selectedImage{position:relative;border-radius:10px;overflow:hidden;border:3px solid hsl(227,52%,36%)}.uploadButton{position:absolute;bottom:0;padding:10px;background:#fff;width:100%;justify-content:end;box-shadow:0 0 4px #00000040}.uploadButton button{background:var(--primary-bg-color);color:#fff;font-weight:600;border:unset;font-size:15px!important;padding:8px;border-radius:8px;width:15%!important}.systemImage{position:relative}.systemImage mat-icon{display:none}.systemImage:hover mat-icon{display:inline;position:absolute;right:15px;top:5px;color:red;cursor:pointer}.f-18{font-size:18px}.header{padding:10px;box-shadow:0 0 4px #00000040}.header .heading{font-size:15px;font-weight:600;line-height:24px}.header mat-icon{color:#2d264b}.tabs{padding:20px 40px}.tabs div{width:22%;cursor:pointer;text-align:center;padding:8px}.selectedTab{background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-weight:500;color:#fff;box-shadow:0 0 4px #00000040;border-radius:10px;font-weight:600;position:relative}.selectedTab:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.input-container{padding:6px 10px;gap:10px;margin:0 40px 20px;box-shadow:0 0 4px #00000040;border-radius:13px}.input-container input{width:90%;border:unset;appearance:unset;outline:unset}.input-container img{width:20px;height:20px}.image-container{margin:0 40px 20px}.image-container div{margin-bottom:20px}.image-container div img{border-radius:13px}.image-upload-container{margin:0 40px;border-radius:17px;padding:15px;border:3px dashed rgba(44,44,44,.6)}.upload-img{width:12%;height:10%}.cp{cursor:pointer}.middle-text{font-size:15px;color:#686868}.top-text{background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-size:17px;font-weight:600}.uploads{width:20%;padding:8px;background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-size:17px;font-weight:600;position:relative;margin-top:15px}.uploads:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.h-30-overflow{height:calc(30vh + -0px);overflow-y:scroll}.h-75-overflow{height:calc(75vh + -0px);overflow-y:scroll}.empty-main-text{font-weight:900;font-size:42px;background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent}.sub-text-1{font-size:19px;font-weight:600;color:#101010e5}.sub-text-2{font-size:16px;font-weight:600;color:#101010e5}@media screen and (max-width : 475px){.tabs div{width:30%!important}.uploadButton button{width:35%!important}.uploads{width:30%!important}.sub-text-2{text-align:center!important}img{height:150px}}\n"] }]
194
+ args: [{ selector: 'simpo-media-selector', standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule, CdkVirtualScrollViewport, LazyLoadImageModule, ScrollingModule, MatIconModule], template: "<section>\r\n <div class=\"header d-flex justify-content-between align-items-center\">\r\n <div class=\"heading\">Upload Image</div>\r\n <mat-icon (click)=\"_dialogRef.close()\" class=\"d-flex align-items-center justify-content-center f-18 cp\">close</mat-icon>\r\n </div>\r\n <div class=\"tabs d-flex align-items-center justify-content-between\">\r\n <div *ngFor=\"let tab of tabs\" [ngClass]=\"{'selectedTab': activeTab === tab}\" (click)=\"activeTab = tab\">{{tab}}</div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Unsplash'\">\r\n <ng-container *ngTemplateOutlet=\"unsplashImagesTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Upload'\">\r\n <ng-container *ngTemplateOutlet=\"uploadImageTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"activeTab === 'Library'\">\r\n <ng-container *ngTemplateOutlet=\"imageLibraryTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <div class=\"uploadButton d-flex\" *ngIf=\"this.selectedImage.size > 0\">\r\n <button (click)=\"uploadImage()\" [disabled]=\"buttonLoader\">\r\n <span *ngIf=\"buttonLoader\" ><i class=\"fas fa-circle-notch fa-spin\"></i>&nbsp;Loading</span>\r\n <span *ngIf=\"!buttonLoader\" >Upload Image</span></button>\r\n </div>\r\n</section>\r\n\r\n<ng-template #unsplashImagesTemplate>\r\n\r\n <div class=\"input-container d-flex align-items-center\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/314661c1741844234442Vector%20%281%29.png\"\r\n alt=\"search-bar-icon\">\r\n <input type=\"text\" placeholder=\"Search images\" [formControl]=\"searchControl\">\r\n </div>\r\n <cdk-virtual-scroll-viewport [itemSize]=\"imageSize\" [minBufferPx]=\"800\" [maxBufferPx]=\"1600\"\r\n class=\"scroll-container\">\r\n <div class=\"row image-container\">\r\n <div class=\"col-md-4 col-6\" *cdkVirtualFor=\"let image of unsplashImages\">\r\n <img [lazyLoad]=\"image.urls.thumb\" [errorImage]=\"'assets/error.jpg'\" (click)=\"selectUnsplashImage(image)\"\r\n [ngClass]=\"{'selectedImage': selectedImage.has(image.id)}\" alt=\"Image\" class=\"cp\" />\r\n </div>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n\r\n <p *ngIf=\"isLoading\">Loading more results...</p>\r\n\r\n</ng-template>\r\n\r\n<ng-template #uploadImageTemplate>\r\n <div>\r\n <div class=\"image-upload-container\">\r\n <div class=\"upload-img-container d-flex align-items-center justify-content-center\">\r\n <img lazy src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/547500c1744698830343upload-one%20%281%29.png\" alt=\"upload-image\" class=\"upload-img\">\r\n </div>\r\n <div class=\"text-container text-center\">\r\n <div class=\"top-text\">Choose a file or drag and drop it here</div>\r\n <div class=\"middle-text\">JPEG, PNG formats up to 50MB</div>\r\n <div class=\"upload-btn d-flex align-items-center justify-content-center\">\r\n <div class=\"uploads cp\" (click)=\"fileInput.click()\">\r\n Upload\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <input type=\"file\" style=\"display: none\" (change)=\"uploadImageFromSystem($event)\" [multiple]=\"multiple\"\r\n accept=\"image/png, image/jpeg, image/jpg, image/gif\" #fileInput />\r\n\r\n <div class=\"row image-container mt-3 h-30-overflow\">\r\n <ng-container *ngFor=\"let image of selectedImage | keyvalue\">\r\n <div class=\"col-md-4 systemImage\" *ngIf=\"image.value.file\">\r\n <img [src]=\"image.value.assets[0].url\" alt=\"Image\" />\r\n <mat-icon (click)=\"deleteSystemImage(image.key)\">delete</mat-icon>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #imageLibraryTemplate>\r\n <div class=\"row image-container mt-3 h-75-overflow\">\r\n <ng-container *ngIf=\"imageLibrary.length > 0; else emptyScreen\">\r\n <ng-container *ngFor=\"let image of imageLibrary\">\r\n <div class=\"col-md-4 col-6\">\r\n <img [src]=\"image.assets[0].url\" alt=\"Image\" (click)=\"selectFromImageLibrary(image)\" [ngClass]=\"{'selectedImage': selectedImage.has(image.uniqueId)}\"/>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #emptyScreen>\r\n <div class=\"empty-container d-flex justify-content-center align-items-center w-100 flex-column\">\r\n <div class=\"empty-img-container d-flex justify-content-center align-items-center\">\r\n <img src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/935737c1743411798188image%20%287%29.png\" alt=\"\">\r\n </div>\r\n <div class=\"empty-main-text\">\r\n Uh-oh!\r\n </div>\r\n <div class=\"sub-text-1\">\r\n No images here\r\n </div>\r\n <div class=\"sub-text-2\">\r\n I looked left, right\u2026 even turned around! Still nothing\r\n </div>\r\n </div>\r\n </ng-template>\r\n</ng-template>\r\n", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}section{height:100%;position:relative}img{width:100%;height:200px}.scroll-container{height:calc(66vh + -0px);width:100%;overflow-y:scroll}.selectedImage{position:relative;border-radius:10px;overflow:hidden;border:3px solid hsl(227,52%,36%)}.uploadButton{position:absolute;bottom:0;padding:10px;background:#fff;width:100%;justify-content:end;box-shadow:0 0 4px #00000040}.uploadButton button{background:var(--primary-bg-color);color:#fff;font-weight:600;border:unset;font-size:15px!important;padding:8px;border-radius:8px;width:15%!important}.systemImage{position:relative}.systemImage mat-icon{display:none}.systemImage:hover mat-icon{display:inline;position:absolute;right:15px;top:5px;color:red;cursor:pointer}.f-18{font-size:18px}.header{padding:10px;box-shadow:0 0 4px #00000040}.header .heading{font-size:15px;font-weight:600;line-height:24px}.header mat-icon{color:#2d264b}.tabs{padding:20px 40px}.tabs div{width:22%;cursor:pointer;text-align:center;padding:8px}.selectedTab{background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-weight:500;color:#fff;box-shadow:0 0 4px #00000040;border-radius:10px;font-weight:600;position:relative}.selectedTab:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.input-container{padding:6px 10px;gap:10px;margin:0 40px 20px;box-shadow:0 0 4px #00000040;border-radius:13px}.input-container input{width:90%;border:unset;appearance:unset;outline:unset}.input-container img{width:20px;height:20px}.image-container{margin:0 40px 20px}.image-container div{margin-bottom:20px}.image-container div img{border-radius:13px}.image-upload-container{margin:0 40px;border-radius:17px;padding:15px;border:3px dashed rgba(44,44,44,.6)}.upload-img{width:12%;height:10%}.cp{cursor:pointer}.middle-text{font-size:15px;color:#686868}.top-text{background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-size:17px;font-weight:600}.uploads{width:20%;padding:8px;background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent;font-size:17px;font-weight:600;position:relative;margin-top:15px}.uploads:before{content:\"\";position:absolute;inset:0;padding:1px;border-radius:10px;background:var(--primary-bg-color);mask:linear-gradient(white 0 0) content-box,linear-gradient(white 0 0);mask-composite:xor;mask-composite:exclude}.h-30-overflow{height:calc(30vh + -0px);overflow-y:scroll}.h-75-overflow{height:calc(75vh + -0px);overflow-y:scroll}.empty-main-text{font-weight:900;font-size:42px;background:var(--primary-bg-color);background-clip:text;-webkit-text-fill-color:transparent}.sub-text-1{font-size:19px;font-weight:600;color:#101010e5}.sub-text-2{font-size:16px;font-weight:600;color:#101010e5}@media screen and (max-width : 475px){.tabs div{width:30%!important}.uploadButton button{width:35%!important}.uploads{width:30%!important}.sub-text-2{text-align:center!important}img{height:150px}}\n"] }]
195
195
  }], ctorParameters: () => [{ type: i1.ImageUplaodService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
196
196
  type: Inject,
197
197
  args: [MAT_DIALOG_DATA]
@@ -199,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
199
199
  type: ViewChild,
200
200
  args: [CdkVirtualScrollViewport]
201
201
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy9tZWRpYS1zZWxlY3Rvci9tZWRpYS1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL21lZGlhLXNlbGVjdG9yL21lZGlhLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFXdkQsTUFBTSxPQUFPLHNCQUFzQjtJQWVqQyxZQUFvQixrQkFBc0MsRUFDaEQsVUFBZ0QsRUFDdkIsVUFBZSxFQUN4QyxRQUFxQixFQUNyQixhQUFxQztRQUozQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hELGVBQVUsR0FBVixVQUFVLENBQXNDO1FBQ3ZCLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDeEMsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBd0I7UUFoQi9DLFNBQUksR0FBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkQsY0FBUyxHQUFXLFVBQVUsQ0FBQztRQUMvQixrQkFBYSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixtQkFBYyxHQUFVLEVBQUUsQ0FBQztRQUMzQixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUN6QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFxQixJQUFJLEdBQWdCLENBQUM7UUFDdkQsaUJBQVksR0FBVyxLQUFLLENBQUM7SUFPekIsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQztRQUNsRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDMUQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsNkRBQTZEO0lBQzdELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVk7YUFDNUIsSUFBSSxDQUNILFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSx3QkFBd0I7UUFDdkMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGdDQUFnQztRQUNuRCxvQkFBb0IsRUFBRSxFQUFFLGlDQUFpQztRQUN6RCxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsS0FBSyxJQUFJLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLG1CQUFtQjtRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRTthQUM1QixJQUFJLENBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLCtCQUErQjtRQUNsRCxvQkFBb0IsRUFBRSxDQUFDLGtDQUFrQztTQUMxRDthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXhELElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLDBDQUEwQztnQkFDNUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCx5QkFBeUI7SUFDekIsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLENBQUMsOEJBQThCO1FBRTFELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVkLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUNsRyxTQUFTLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLHNDQUFzQztRQUNoRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksR0FBYSxDQUFDO1FBRXpDLElBQUksV0FBVyxHQUFRO1lBQ3JCLFVBQVUsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUM5QyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDbEIsTUFBTSxFQUFFLENBQUM7b0JBQ1AsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRztvQkFDbkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUNsQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07aUJBQ3JCLENBQUM7WUFDRixNQUFNLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakIsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDN0IsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSTtnQkFDckIsZUFBZSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO2dCQUM1QyxZQUFZLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhO2dCQUN0QyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQjthQUNqRDtZQUNELEtBQUssRUFBRSxVQUFVO1NBQ2xCLENBQUE7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFVO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksR0FBYSxDQUFDO1FBRXpDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9CLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsYUFBYTtRQUV0RCxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7Z0JBQ2pGLFNBQVM7WUFDWCxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUVoQyxNQUFNLEtBQUssR0FBUTtnQkFDakIsVUFBVSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO2dCQUM5QyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUk7Z0JBQ3JDLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE1BQU0sRUFBRSxDQUFDO3dCQUNQLEtBQUssRUFBRSxDQUFDO3dCQUNSLE1BQU0sRUFBRSxDQUFDO3dCQUNULFFBQVEsRUFBRSxFQUFFO3dCQUNaLEdBQUcsRUFBRSxFQUFFO3FCQUNSLENBQUM7Z0JBQ0YsTUFBTSxFQUFFLElBQUk7Z0JBQ1osS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUN0QixjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ3pCLElBQUksRUFBRSxJQUFJO2FBQ1gsQ0FBQztZQUVGLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDaEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDL0MsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBZTtRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBVTtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQWEsQ0FBQztRQUV6QyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVztRQUNmLElBQUksQ0FBQyxZQUFZLEdBQUUsSUFBSSxDQUFDO1FBQ3hCLElBQUksT0FBTyxHQUFVLEVBQUUsQ0FBQztRQUV4QixLQUFJLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM3QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZixNQUFNLE9BQU8sR0FDWCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQzNDLEtBQUssQ0FBQyxJQUFJLEVBQ1YsZUFBZSxDQUNoQixDQUFDO2dCQUVKLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQztZQUNoQyxDQUFDO1lBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN4RSxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxHQUFFLEtBQUssQ0FBQztZQUMzQixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsWUFBWSxHQUFDLEtBQUssQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0F6TVUsc0JBQXNCLGdGQWlCdkIsZUFBZTtrR0FqQmQsc0JBQXNCLDBIQUN0Qix3QkFBd0IsZ0RDckJyQyxtOUpBNEdBLDBxR0Q1RlksWUFBWSwrakJBQUUsV0FBVyxzWkFBRSxtQkFBbUIsa05BQUUsd0JBQXdCLGdKQUFFLG1CQUFtQiw0UUFBRSxlQUFlLCtZQUFFLGFBQWE7OzJGQUk1SCxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQzs7MEJBcUJySSxNQUFNOzJCQUFDLGVBQWU7dUdBaEJZLFFBQVE7c0JBQTVDLFNBQVM7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEltYWdlVXBsYW9kU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltYWdlLXVwbG9hZC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMYXp5TG9hZEltYWdlTW9kdWxlIH0gZnJvbSAnbmctbGF6eWxvYWQtaW1hZ2UnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL2VkaXRvci1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1tZWRpYS1zZWxlY3RvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0LCBMYXp5TG9hZEltYWdlTW9kdWxlLCBTY3JvbGxpbmdNb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tZWRpYS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL21lZGlhLXNlbGVjdG9yLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZWRpYVNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZChDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQpIHZpZXdwb3J0ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG5cclxuICB0YWJzOiBzdHJpbmdbXSA9IFsnVW5zcGxhc2gnLCAnVXBsb2FkJywgJ0xpYnJhcnknXTtcclxuICBhY3RpdmVUYWI6IHN0cmluZyA9ICdVbnNwbGFzaCc7XHJcbiAgc2VhcmNoQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XHJcbiAgcGFnZU5vOiBudW1iZXIgPSAxO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHVuc3BsYXNoSW1hZ2VzOiBhbnlbXSA9IFtdO1xyXG4gIGltYWdlTGlicmFyeTogYW55W10gPSBbXTtcclxuICBpbWFnZVNpemUgPSA1MDtcclxuICBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkSW1hZ2U6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PjtcclxuICBidXR0b25Mb2FkZXI6IGJvb2xlYW49IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGltYWdlVXBsb2FkU2VydmljZTogSW1hZ2VVcGxhb2RTZXJ2aWNlLFxyXG4gICAgcHVibGljICBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TWVkaWFTZWxlY3RvckNvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkaWFsb2dEYXRhOiBhbnksXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgIHByaXZhdGUgZWRpdG9yU2VydmljZSA6IEVsZW1lbnRTZXJ2aWNlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5tdWx0aXBsZSA9IHRoaXMuZGlhbG9nRGF0YT8ubXVsdGlwbGUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuc2VhcmNoVW5zcGxhc2hJbWFnZXMoKTtcclxuICAgIHRoaXMuZ2V0SW1hZ2VMaWJyYXJ5KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNldHVwSW5maW5pdGVTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIGdldEltYWdlTGlicmFyeSgpIHtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5nZXRJbWFnZUxpYnJhcnkoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuaW1hZ2VMaWJyYXJ5ID0gcmVzPy5kYXRhPy5jb250ZW50IHx8IFtdO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIC8qKiDinIUgU2VhcmNoIEFQSSB3aXRoIGRlYm91bmNlIHRvIHJlZHVjZSB1bm5lY2Vzc2FyeSBjYWxscyAqL1xyXG4gIHNlYXJjaFVuc3BsYXNoSW1hZ2VzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBzdGFydFdpdGgoJycpLCAvLyBMb2FkIGltYWdlcyBpbml0aWFsbHlcclxuICAgICAgICBkZWJvdW5jZVRpbWUoNTAwKSwgLy8gV2FpdCA1MDBtcyBhZnRlciB0eXBpbmcgc3RvcHNcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCAvLyBPbmx5IGNhbGwgQVBJIGlmIHZhbHVlIGNoYW5nZXNcclxuICAgICAgICBzd2l0Y2hNYXAodmFsdWUgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wYWdlTm8gPSAxO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VVcGxvYWRTZXJ2aWNlLnNlYXJjaFBob3Rvc0luVW5zcGxhc2godmFsdWUgfHwgJ1RlY2hub2xvZ3knLCB0aGlzLnBhZ2VObyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnVuc3BsYXNoSW1hZ2VzID0gcmVzdWx0cy5yZXN1bHRzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiDinIUgSW5maW5pdGUgU2Nyb2xsICovXHJcbiAgc2V0dXBJbmZpbml0ZVNjcm9sbCgpIHtcclxuICAgIHRoaXMudmlld3BvcnQuZWxlbWVudFNjcm9sbGVkKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksIC8vIOKchSBXYWl0IDIwMG1zIGJlZm9yZSBjaGVja2luZ1xyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8g4pyFIE9ubHkgdHJpZ2dlciBpZiB2YWx1ZSBjaGFuZ2VzXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZW5kID0gdGhpcy52aWV3cG9ydC5tZWFzdXJlU2Nyb2xsT2Zmc2V0KCdib3R0b20nKTtcclxuXHJcbiAgICAgICAgaWYgKGVuZCA8IDMwMCAmJiAhdGhpcy5pc0xvYWRpbmcpIHsgLy8g4pyFIFRyaWdnZXIgb25seSB3aGVuIGNsb3NlIHRvIHRoZSBib3R0b21cclxuICAgICAgICAgIHRoaXMubG9hZE1vcmVJbWFnZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIOKchSBMb2FkIE1vcmUgSW1hZ2VzICovXHJcbiAgbG9hZE1vcmVJbWFnZXMoKSB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHJldHVybjsgLy8g4pyFIFByZXZlbnQgbXVsdGlwbGUgcmVxdWVzdHNcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2VObysrO1xyXG5cclxuICAgIHRoaXMuaW1hZ2VVcGxvYWRTZXJ2aWNlLnNlYXJjaFBob3Rvc0luVW5zcGxhc2godGhpcy5zZWFyY2hDb250cm9sLnZhbHVlIHx8ICdUZWNobm9sb2d5JywgdGhpcy5wYWdlTm8pXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMudW5zcGxhc2hJbWFnZXMgPSBbLi4udGhpcy51bnNwbGFzaEltYWdlcywgLi4ucmVzdWx0cy5yZXN1bHRzXTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTsgLy8g4pyFIEVuc3VyZSBpdCdzIHJlc2V0IGV2ZW4gb24gZmFpbHVyZVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFVuc3BsYXNoSW1hZ2UoaW1hZ2U6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKVxyXG4gICAgICB0aGlzLnNlbGVjdGVkSW1hZ2UgPSBuZXcgTWFwPGFueSwgYW55PjtcclxuXHJcbiAgICBsZXQgdXBsb2FkSW1hZ2U6IGFueSA9IHtcclxuICAgICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzSWQnKSxcclxuICAgICAgdW5pcXVlSWQ6IGltYWdlLmlkLFxyXG4gICAgICBhc3NldHM6IFt7XHJcbiAgICAgICAgdXJsOiBpbWFnZS51cmxzLnJhdyxcclxuICAgICAgICB3aWR0aDogaW1hZ2Uud2lkdGgsXHJcbiAgICAgICAgaGVpZ2h0OiBpbWFnZS5oZWlnaHRcclxuICAgICAgfV0sXHJcbiAgICAgIGF1dGhvcjoge1xyXG4gICAgICAgIGlkOiBpbWFnZS51c2VyLmlkLFxyXG4gICAgICAgIHVzZXJOYW1lOiBpbWFnZS51c2VyLnVzZXJuYW1lLFxyXG4gICAgICAgIG5hbWU6IGltYWdlLnVzZXIubmFtZSxcclxuICAgICAgICB0d2l0dGVyVXNlck5hbWU6IGltYWdlLnVzZXIudHdpdHRlcl91c2VybmFtZSxcclxuICAgICAgICBwb3J0Rm9saW9Vcmw6IGltYWdlLnVzZXIucG9ydGZvbGlvX3VybCxcclxuICAgICAgICBpbnN0YWdyYW1Vc2VyTmFtZTogaW1hZ2UudXNlci5pbnN0YWdyYW1fdXNlcm5hbWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIG1lZGlhOiBcIlVOU1BMQVNIXCIsXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbWFnZS5oYXMoaW1hZ2UuaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbWFnZS5kZWxldGUoaW1hZ2UuaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEltYWdlLnNldChpbWFnZS5pZCwgdXBsb2FkSW1hZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBsb2FkSW1hZ2VGcm9tU3lzdGVtKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSlcclxuICAgICAgdGhpcy5zZWxlY3RlZEltYWdlID0gbmV3IE1hcDxhbnksIGFueT47XHJcblxyXG4gICAgbGV0IGZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xyXG4gICAgY29uc3QgbWF4aW11bUZpbGVTaXplID0gNCAqIDEwMjQgKiAxMDI0OyAvLyBNYXggaXMgNG1iXHJcblxyXG4gICAgZm9yIChsZXQgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICBpZiAobWF4aW11bUZpbGVTaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdNYXhpbXVtIGZpbGUgc2l6ZSBsaW1pdCBpcyA0TUInLCAnY2xvc2UnLCB7IGR1cmF0aW9uOiAxNTAwIH0pXHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG4gICAgICBjb25zdCBpbWFnZTogYW55ID0ge1xyXG4gICAgICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0lkJyksXHJcbiAgICAgICAgdW5pcXVlSWQ6IGZpbGUubmFtZSArICdfJyArIGZpbGUuc2l6ZSxcclxuICAgICAgICBibHVySGFzaDogbnVsbCxcclxuICAgICAgICBhc3NldHM6IFt7XHJcbiAgICAgICAgICB3aWR0aDogMCxcclxuICAgICAgICAgIGhlaWdodDogMCxcclxuICAgICAgICAgIGJsdXJoYXNoOiAnJyxcclxuICAgICAgICAgIHVybDogJycsXHJcbiAgICAgICAgfV0sXHJcbiAgICAgICAgYXV0aG9yOiBudWxsLFxyXG4gICAgICAgIG1lZGlhOiAnREVWSUNFJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogZmlsZS5uYW1lLFxyXG4gICAgICAgIGFsdERlc2NyaXB0aW9uOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIGltYWdlLmFzc2V0c1swXS51cmwgPSByZXNwb25zZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICB9O1xyXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZEltYWdlLmhhcyhpbWFnZS51bmlxdWVJZCkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSW1hZ2Uuc2V0KGltYWdlLnVuaXF1ZUlkLCBpbWFnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGV0ZVN5c3RlbUltYWdlKGltYWdlSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlLmRlbGV0ZShpbWFnZUlkKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEZyb21JbWFnZUxpYnJhcnkoaW1hZ2U6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKVxyXG4gICAgICB0aGlzLnNlbGVjdGVkSW1hZ2UgPSBuZXcgTWFwPGFueSwgYW55PjtcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEltYWdlLmhhcyhpbWFnZS51bmlxdWVJZCkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEltYWdlLmRlbGV0ZShpbWFnZS51bmlxdWVJZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSW1hZ2Uuc2V0KGltYWdlLnVuaXF1ZUlkLCBpbWFnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGxvYWRJbWFnZSgpIHtcclxuICAgIHRoaXMuYnV0dG9uTG9hZGVyID10cnVlO1xyXG4gICAgbGV0IHJlcXVlc3Q6IGFueVtdID0gW107XHJcblxyXG4gICAgZm9yKGxldCBpbWFnZSBvZiB0aGlzLnNlbGVjdGVkSW1hZ2UudmFsdWVzKCkpIHtcclxuICAgICAgaWYgKGltYWdlLmZpbGUpIHtcclxuICAgICAgICBjb25zdCBmaWxlVXJsOiBhbnkgPVxyXG4gICAgICAgICAgYXdhaXQgdGhpcy5pbWFnZVVwbG9hZFNlcnZpY2UudXBsb2FkRmlsZUluQVdTKFxyXG4gICAgICAgICAgICBpbWFnZS5maWxlLFxyXG4gICAgICAgICAgICAnbGlicmFyeS1tZWRpYSdcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIGltYWdlLmFzc2V0c1swXS51cmwgPSBmaWxlVXJsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXF1ZXN0LnB1c2goaW1hZ2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNhdmVJbWFnZXNUb0J1c2luZXNzTGlicmFyeSh7ZGF0YTogcmVxdWVzdH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UocmVxdWVzdCk7XHJcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkZXI9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGVyPWZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvbj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+VXBsb2FkIEltYWdlPC9kaXY+XHJcbiAgICA8bWF0LWljb24gKGNsaWNrKT1cIl9kaWFsb2dSZWYuY2xvc2UoKVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGYtMTggY3BcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRhYnMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVGFiJzogYWN0aXZlVGFiID09PSB0YWJ9XCIgKGNsaWNrKT1cImFjdGl2ZVRhYiA9IHRhYlwiPnt7dGFifX08L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gJ1Vuc3BsYXNoJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVuc3BsYXNoSW1hZ2VzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gJ1VwbG9hZCdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGxvYWRJbWFnZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVUYWIgPT09ICdMaWJyYXJ5J1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltYWdlTGlicmFyeVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWRCdXR0b24gZC1mbGV4XCIgKm5nSWY9XCJ0aGlzLnNlbGVjdGVkSW1hZ2Uuc2l6ZSA+IDBcIj5cclxuICAgIDxidXR0b24gKGNsaWNrKT1cInVwbG9hZEltYWdlKClcIiBbZGlzYWJsZWRdPVwiYnV0dG9uTG9hZGVyXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiYnV0dG9uTG9hZGVyXCIgPjxpIGNsYXNzPVwiZmFzIGZhLWNpcmNsZS1ub3RjaCBmYS1zcGluXCI+PC9pPiZuYnNwO0xvYWRpbmc8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiIWJ1dHRvbkxvYWRlclwiID5VcGxvYWQgSW1hZ2U8L3NwYW4+PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdW5zcGxhc2hJbWFnZXNUZW1wbGF0ZT5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMzE0NjYxYzE3NDE4NDQyMzQ0NDJWZWN0b3IlMjAlMjgxJTI5LnBuZ1wiXHJcbiAgICBhbHQ9XCJzZWFyY2gtYmFyLWljb25cIj5cclxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGltYWdlc1wiIFtmb3JtQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCI+XHJcbiAgPC9kaXY+XHJcbiAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBbaXRlbVNpemVdPVwiaW1hZ2VTaXplXCIgW21pbkJ1ZmZlclB4XT1cIjgwMFwiIFttYXhCdWZmZXJQeF09XCIxNjAwXCJcclxuICAgIGNsYXNzPVwic2Nyb2xsLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBpbWFnZS1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGNvbC02XCIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgaW1hZ2Ugb2YgdW5zcGxhc2hJbWFnZXNcIj5cclxuICAgICAgICA8aW1nIFtsYXp5TG9hZF09XCJpbWFnZS51cmxzLnRodW1iXCIgW2Vycm9ySW1hZ2VdPVwiJ2Fzc2V0cy9lcnJvci5qcGcnXCIgKGNsaWNrKT1cInNlbGVjdFVuc3BsYXNoSW1hZ2UoaW1hZ2UpXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRJbWFnZSc6IHNlbGVjdGVkSW1hZ2UuaGFzKGltYWdlLmlkKX1cIiBhbHQ9XCJJbWFnZVwiIGNsYXNzPVwiY3BcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG5cclxuICA8cCAqbmdJZj1cImlzTG9hZGluZ1wiPkxvYWRpbmcgbW9yZSByZXN1bHRzLi4uPC9wPlxyXG5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdXBsb2FkSW1hZ2VUZW1wbGF0ZT5cclxuICA8ZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImltYWdlLXVwbG9hZC1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pbWctY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgIDxpbWcgbGF6eSBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzE4NzIzOGMxNzQyMzk0MTI5NjY4dXBsb2FkLW9uZS5wbmdcIiBhbHQ9XCJ1cGxvYWQtaW1hZ2VcIiBjbGFzcz1cInVwbG9hZC1pbWdcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNvbnRhaW5lciB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b3AtdGV4dFwiPkNob29zZSBhIGZpbGUgb3IgZHJhZyBhbmQgZHJvcCBpdCBoZXJlPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pZGRsZS10ZXh0XCI+SlBFRywgUE5HIGZvcm1hdHMgdXAgdG8gNTBNQjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtYnRuIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZHMgY3BcIiAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+XHJcbiAgICAgICAgICAgIFVwbG9hZFxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgKGNoYW5nZSk9XCJ1cGxvYWRJbWFnZUZyb21TeXN0ZW0oJGV2ZW50KVwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXHJcbiAgICAgIGFjY2VwdD1cImltYWdlL3BuZywgaW1hZ2UvanBlZywgaW1hZ2UvanBnLCBpbWFnZS9naWZcIiAjZmlsZUlucHV0IC8+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBpbWFnZS1jb250YWluZXIgbXQtMyBoLTMwLW92ZXJmbG93XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGltYWdlIG9mIHNlbGVjdGVkSW1hZ2UgfCBrZXl2YWx1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBzeXN0ZW1JbWFnZVwiICpuZ0lmPVwiaW1hZ2UudmFsdWUuZmlsZVwiPlxyXG4gICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlLnZhbHVlLmFzc2V0c1swXS51cmxcIiBhbHQ9XCJJbWFnZVwiIC8+XHJcbiAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cImRlbGV0ZVN5c3RlbUltYWdlKGltYWdlLmtleSlcIj5kZWxldGU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaW1hZ2VMaWJyYXJ5VGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBpbWFnZS1jb250YWluZXIgbXQtMyBoLTc1LW92ZXJmbG93XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW1hZ2VMaWJyYXJ5Lmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlTY3JlZW5cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgaW1hZ2VMaWJyYXJ5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGNvbC02XCI+XHJcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2UuYXNzZXRzWzBdLnVybFwiIGFsdD1cIkltYWdlXCIgKGNsaWNrKT1cInNlbGVjdEZyb21JbWFnZUxpYnJhcnkoaW1hZ2UpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZEltYWdlJzogc2VsZWN0ZWRJbWFnZS5oYXMoaW1hZ2UudW5pcXVlSWQpfVwiLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8bmctdGVtcGxhdGUgI2VtcHR5U2NyZWVuPlxyXG4gICAgPGRpdiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDAgZmxleC1jb2x1bW5cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LWltZy1jb250YWluZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzkzNTczN2MxNzQzNDExNzk4MTg4aW1hZ2UlMjAlMjg3JTI5LnBuZ1wiIGFsdD1cIlwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LW1haW4tdGV4dFwiPlxyXG4gICAgICAgIFVoLW9oIVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0LTFcIj5cclxuICAgICAgICBObyBpbWFnZXMgaGVyZVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0LTJcIj5cclxuICAgICAgICBJIGxvb2tlZCBsZWZ0LCByaWdodOKApiBldmVuIHR1cm5lZCBhcm91bmQhIFN0aWxsIG5vdGhpbmdcclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy9tZWRpYS1zZWxlY3Rvci9tZWRpYS1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL21lZGlhLXNlbGVjdG9yL21lZGlhLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFXdkQsTUFBTSxPQUFPLHNCQUFzQjtJQWVqQyxZQUFvQixrQkFBc0MsRUFDaEQsVUFBZ0QsRUFDdkIsVUFBZSxFQUN4QyxRQUFxQixFQUNyQixhQUFxQztRQUozQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hELGVBQVUsR0FBVixVQUFVLENBQXNDO1FBQ3ZCLGVBQVUsR0FB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ZUFBZTtrR0FqQmQsc0JBQXNCLDBIQUN0Qix3QkFBd0IsZ0RDckJyQyw2OUpBNEdBLDBxR0Q1RlksWUFBWSwrakJBQUUsV0FBVyxzWkFBRSxtQkFBbUIsa05BQUUsd0JBQXdCLGdKQUFFLG1CQUFtQiw0UUFBRSxlQUFlLCtZQUFFLGFBQWE7OzJGQUk1SCxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQzs7MEJBcUJySSxNQUFNOzJCQUFDLGVBQWU7dUdBaEJZLFFBQVE7c0JBQTVDLFNBQVM7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEltYWdlVXBsYW9kU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltYWdlLXVwbG9hZC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMYXp5TG9hZEltYWdlTW9kdWxlIH0gZnJvbSAnbmctbGF6eWxvYWQtaW1hZ2UnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL2VkaXRvci1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1tZWRpYS1zZWxlY3RvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0LCBMYXp5TG9hZEltYWdlTW9kdWxlLCBTY3JvbGxpbmdNb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tZWRpYS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL21lZGlhLXNlbGVjdG9yLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZWRpYVNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZChDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQpIHZpZXdwb3J0ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG5cclxuICB0YWJzOiBzdHJpbmdbXSA9IFsnVW5zcGxhc2gnLCAnVXBsb2FkJywgJ0xpYnJhcnknXTtcclxuICBhY3RpdmVUYWI6IHN0cmluZyA9ICdVbnNwbGFzaCc7XHJcbiAgc2VhcmNoQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XHJcbiAgcGFnZU5vOiBudW1iZXIgPSAxO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHVuc3BsYXNoSW1hZ2VzOiBhbnlbXSA9IFtdO1xyXG4gIGltYWdlTGlicmFyeTogYW55W10gPSBbXTtcclxuICBpbWFnZVNpemUgPSA1MDtcclxuICBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkSW1hZ2U6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PjtcclxuICBidXR0b25Mb2FkZXI6IGJvb2xlYW49IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGltYWdlVXBsb2FkU2VydmljZTogSW1hZ2VVcGxhb2RTZXJ2aWNlLFxyXG4gICAgcHVibGljICBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TWVkaWFTZWxlY3RvckNvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkaWFsb2dEYXRhOiBhbnksXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgIHByaXZhdGUgZWRpdG9yU2VydmljZSA6IEVsZW1lbnRTZXJ2aWNlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5tdWx0aXBsZSA9IHRoaXMuZGlhbG9nRGF0YT8ubXVsdGlwbGUgPz8gdHJ1ZTtcclxuICAgIHRoaXMuc2VhcmNoVW5zcGxhc2hJbWFnZXMoKTtcclxuICAgIHRoaXMuZ2V0SW1hZ2VMaWJyYXJ5KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNldHVwSW5maW5pdGVTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIGdldEltYWdlTGlicmFyeSgpIHtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5nZXRJbWFnZUxpYnJhcnkoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuaW1hZ2VMaWJyYXJ5ID0gcmVzPy5kYXRhPy5jb250ZW50IHx8IFtdO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIC8qKiDinIUgU2VhcmNoIEFQSSB3aXRoIGRlYm91bmNlIHRvIHJlZHVjZSB1bm5lY2Vzc2FyeSBjYWxscyAqL1xyXG4gIHNlYXJjaFVuc3BsYXNoSW1hZ2VzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBzdGFydFdpdGgoJycpLCAvLyBMb2FkIGltYWdlcyBpbml0aWFsbHlcclxuICAgICAgICBkZWJvdW5jZVRpbWUoNTAwKSwgLy8gV2FpdCA1MDBtcyBhZnRlciB0eXBpbmcgc3RvcHNcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCAvLyBPbmx5IGNhbGwgQVBJIGlmIHZhbHVlIGNoYW5nZXNcclxuICAgICAgICBzd2l0Y2hNYXAodmFsdWUgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wYWdlTm8gPSAxO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VVcGxvYWRTZXJ2aWNlLnNlYXJjaFBob3Rvc0luVW5zcGxhc2godmFsdWUgfHwgJ1RlY2hub2xvZ3knLCB0aGlzLnBhZ2VObyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnVuc3BsYXNoSW1hZ2VzID0gcmVzdWx0cy5yZXN1bHRzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiDinIUgSW5maW5pdGUgU2Nyb2xsICovXHJcbiAgc2V0dXBJbmZpbml0ZVNjcm9sbCgpIHtcclxuICAgIHRoaXMudmlld3BvcnQuZWxlbWVudFNjcm9sbGVkKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksIC8vIOKchSBXYWl0IDIwMG1zIGJlZm9yZSBjaGVja2luZ1xyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8g4pyFIE9ubHkgdHJpZ2dlciBpZiB2YWx1ZSBjaGFuZ2VzXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZW5kID0gdGhpcy52aWV3cG9ydC5tZWFzdXJlU2Nyb2xsT2Zmc2V0KCdib3R0b20nKTtcclxuXHJcbiAgICAgICAgaWYgKGVuZCA8IDMwMCAmJiAhdGhpcy5pc0xvYWRpbmcpIHsgLy8g4pyFIFRyaWdnZXIgb25seSB3aGVuIGNsb3NlIHRvIHRoZSBib3R0b21cclxuICAgICAgICAgIHRoaXMubG9hZE1vcmVJbWFnZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIOKchSBMb2FkIE1vcmUgSW1hZ2VzICovXHJcbiAgbG9hZE1vcmVJbWFnZXMoKSB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHJldHVybjsgLy8g4pyFIFByZXZlbnQgbXVsdGlwbGUgcmVxdWVzdHNcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2VObysrO1xyXG5cclxuICAgIHRoaXMuaW1hZ2VVcGxvYWRTZXJ2aWNlLnNlYXJjaFBob3Rvc0luVW5zcGxhc2godGhpcy5zZWFyY2hDb250cm9sLnZhbHVlIHx8ICdUZWNobm9sb2d5JywgdGhpcy5wYWdlTm8pXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMudW5zcGxhc2hJbWFnZXMgPSBbLi4udGhpcy51bnNwbGFzaEltYWdlcywgLi4ucmVzdWx0cy5yZXN1bHRzXTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTsgLy8g4pyFIEVuc3VyZSBpdCdzIHJlc2V0IGV2ZW4gb24gZmFpbHVyZVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFVuc3BsYXNoSW1hZ2UoaW1hZ2U6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKVxyXG4gICAgICB0aGlzLnNlbGVjdGVkSW1hZ2UgPSBuZXcgTWFwPGFueSwgYW55PjtcclxuXHJcbiAgICBsZXQgdXBsb2FkSW1hZ2U6IGFueSA9IHtcclxuICAgICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzSWQnKSxcclxuICAgICAgdW5pcXVlSWQ6IGltYWdlLmlkLFxyXG4gICAgICBhc3NldHM6IFt7XHJcbiAgICAgICAgdXJsOiBpbWFnZS51cmxzLnJhdyxcclxuICAgICAgICB3aWR0aDogaW1hZ2Uud2lkdGgsXHJcbiAgICAgICAgaGVpZ2h0OiBpbWFnZS5oZWlnaHRcclxuICAgICAgfV0sXHJcbiAgICAgIGF1dGhvcjoge1xyXG4gICAgICAgIGlkOiBpbWFnZS51c2VyLmlkLFxyXG4gICAgICAgIHVzZXJOYW1lOiBpbWFnZS51c2VyLnVzZXJuYW1lLFxyXG4gICAgICAgIG5hbWU6IGltYWdlLnVzZXIubmFtZSxcclxuICAgICAgICB0d2l0dGVyVXNlck5hbWU6IGltYWdlLnVzZXIudHdpdHRlcl91c2VybmFtZSxcclxuICAgICAgICBwb3J0Rm9saW9Vcmw6IGltYWdlLnVzZXIucG9ydGZvbGlvX3VybCxcclxuICAgICAgICBpbnN0YWdyYW1Vc2VyTmFtZTogaW1hZ2UudXNlci5pbnN0YWdyYW1fdXNlcm5hbWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIG1lZGlhOiBcIlVOU1BMQVNIXCIsXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbWFnZS5oYXMoaW1hZ2UuaWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbWFnZS5kZWxldGUoaW1hZ2UuaWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEltYWdlLnNldChpbWFnZS5pZCwgdXBsb2FkSW1hZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBsb2FkSW1hZ2VGcm9tU3lzdGVtKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSlcclxuICAgICAgdGhpcy5zZWxlY3RlZEltYWdlID0gbmV3IE1hcDxhbnksIGFueT47XHJcblxyXG4gICAgbGV0IGZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xyXG4gICAgY29uc3QgbWF4aW11bUZpbGVTaXplID0gNCAqIDEwMjQgKiAxMDI0OyAvLyBNYXggaXMgNG1iXHJcblxyXG4gICAgZm9yIChsZXQgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICBpZiAobWF4aW11bUZpbGVTaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdNYXhpbXVtIGZpbGUgc2l6ZSBsaW1pdCBpcyA0TUInLCAnY2xvc2UnLCB7IGR1cmF0aW9uOiAxNTAwIH0pXHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG4gICAgICBjb25zdCBpbWFnZTogYW55ID0ge1xyXG4gICAgICAgIGJ1c2luZXNzSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0lkJyksXHJcbiAgICAgICAgdW5pcXVlSWQ6IGZpbGUubmFtZSArICdfJyArIGZpbGUuc2l6ZSxcclxuICAgICAgICBibHVySGFzaDogbnVsbCxcclxuICAgICAgICBhc3NldHM6IFt7XHJcbiAgICAgICAgICB3aWR0aDogMCxcclxuICAgICAgICAgIGhlaWdodDogMCxcclxuICAgICAgICAgIGJsdXJoYXNoOiAnJyxcclxuICAgICAgICAgIHVybDogJycsXHJcbiAgICAgICAgfV0sXHJcbiAgICAgICAgYXV0aG9yOiBudWxsLFxyXG4gICAgICAgIG1lZGlhOiAnREVWSUNFJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjogZmlsZS5uYW1lLFxyXG4gICAgICAgIGFsdERlc2NyaXB0aW9uOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIGltYWdlLmFzc2V0c1swXS51cmwgPSByZXNwb25zZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICB9O1xyXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZEltYWdlLmhhcyhpbWFnZS51bmlxdWVJZCkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSW1hZ2Uuc2V0KGltYWdlLnVuaXF1ZUlkLCBpbWFnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGV0ZVN5c3RlbUltYWdlKGltYWdlSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEltYWdlLmRlbGV0ZShpbWFnZUlkKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEZyb21JbWFnZUxpYnJhcnkoaW1hZ2U6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKVxyXG4gICAgICB0aGlzLnNlbGVjdGVkSW1hZ2UgPSBuZXcgTWFwPGFueSwgYW55PjtcclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEltYWdlLmhhcyhpbWFnZS51bmlxdWVJZCkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEltYWdlLmRlbGV0ZShpbWFnZS51bmlxdWVJZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSW1hZ2Uuc2V0KGltYWdlLnVuaXF1ZUlkLCBpbWFnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGxvYWRJbWFnZSgpIHtcclxuICAgIHRoaXMuYnV0dG9uTG9hZGVyID10cnVlO1xyXG4gICAgbGV0IHJlcXVlc3Q6IGFueVtdID0gW107XHJcblxyXG4gICAgZm9yKGxldCBpbWFnZSBvZiB0aGlzLnNlbGVjdGVkSW1hZ2UudmFsdWVzKCkpIHtcclxuICAgICAgaWYgKGltYWdlLmZpbGUpIHtcclxuICAgICAgICBjb25zdCBmaWxlVXJsOiBhbnkgPVxyXG4gICAgICAgICAgYXdhaXQgdGhpcy5pbWFnZVVwbG9hZFNlcnZpY2UudXBsb2FkRmlsZUluQVdTKFxyXG4gICAgICAgICAgICBpbWFnZS5maWxlLFxyXG4gICAgICAgICAgICAnbGlicmFyeS1tZWRpYSdcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIGltYWdlLmFzc2V0c1swXS51cmwgPSBmaWxlVXJsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXF1ZXN0LnB1c2goaW1hZ2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNhdmVJbWFnZXNUb0J1c2luZXNzTGlicmFyeSh7ZGF0YTogcmVxdWVzdH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UocmVxdWVzdCk7XHJcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkZXI9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGVyPWZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvbj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+VXBsb2FkIEltYWdlPC9kaXY+XHJcbiAgICA8bWF0LWljb24gKGNsaWNrKT1cIl9kaWFsb2dSZWYuY2xvc2UoKVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGYtMTggY3BcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRhYnMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVGFiJzogYWN0aXZlVGFiID09PSB0YWJ9XCIgKGNsaWNrKT1cImFjdGl2ZVRhYiA9IHRhYlwiPnt7dGFifX08L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gJ1Vuc3BsYXNoJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVuc3BsYXNoSW1hZ2VzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYiA9PT0gJ1VwbG9hZCdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGxvYWRJbWFnZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVUYWIgPT09ICdMaWJyYXJ5J1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltYWdlTGlicmFyeVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWRCdXR0b24gZC1mbGV4XCIgKm5nSWY9XCJ0aGlzLnNlbGVjdGVkSW1hZ2Uuc2l6ZSA+IDBcIj5cclxuICAgIDxidXR0b24gKGNsaWNrKT1cInVwbG9hZEltYWdlKClcIiBbZGlzYWJsZWRdPVwiYnV0dG9uTG9hZGVyXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiYnV0dG9uTG9hZGVyXCIgPjxpIGNsYXNzPVwiZmFzIGZhLWNpcmNsZS1ub3RjaCBmYS1zcGluXCI+PC9pPiZuYnNwO0xvYWRpbmc8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiIWJ1dHRvbkxvYWRlclwiID5VcGxvYWQgSW1hZ2U8L3NwYW4+PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdW5zcGxhc2hJbWFnZXNUZW1wbGF0ZT5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMzE0NjYxYzE3NDE4NDQyMzQ0NDJWZWN0b3IlMjAlMjgxJTI5LnBuZ1wiXHJcbiAgICBhbHQ9XCJzZWFyY2gtYmFyLWljb25cIj5cclxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGltYWdlc1wiIFtmb3JtQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCI+XHJcbiAgPC9kaXY+XHJcbiAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBbaXRlbVNpemVdPVwiaW1hZ2VTaXplXCIgW21pbkJ1ZmZlclB4XT1cIjgwMFwiIFttYXhCdWZmZXJQeF09XCIxNjAwXCJcclxuICAgIGNsYXNzPVwic2Nyb2xsLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBpbWFnZS1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGNvbC02XCIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgaW1hZ2Ugb2YgdW5zcGxhc2hJbWFnZXNcIj5cclxuICAgICAgICA8aW1nIFtsYXp5TG9hZF09XCJpbWFnZS51cmxzLnRodW1iXCIgW2Vycm9ySW1hZ2VdPVwiJ2Fzc2V0cy9lcnJvci5qcGcnXCIgKGNsaWNrKT1cInNlbGVjdFVuc3BsYXNoSW1hZ2UoaW1hZ2UpXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRJbWFnZSc6IHNlbGVjdGVkSW1hZ2UuaGFzKGltYWdlLmlkKX1cIiBhbHQ9XCJJbWFnZVwiIGNsYXNzPVwiY3BcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG5cclxuICA8cCAqbmdJZj1cImlzTG9hZGluZ1wiPkxvYWRpbmcgbW9yZSByZXN1bHRzLi4uPC9wPlxyXG5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdXBsb2FkSW1hZ2VUZW1wbGF0ZT5cclxuICA8ZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImltYWdlLXVwbG9hZC1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pbWctY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgIDxpbWcgbGF6eSBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzU0NzUwMGMxNzQ0Njk4ODMwMzQzdXBsb2FkLW9uZSUyMCUyODElMjkucG5nXCIgYWx0PVwidXBsb2FkLWltYWdlXCIgY2xhc3M9XCJ1cGxvYWQtaW1nXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jb250YWluZXIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLXRleHRcIj5DaG9vc2UgYSBmaWxlIG9yIGRyYWcgYW5kIGRyb3AgaXQgaGVyZTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWRkbGUtdGV4dFwiPkpQRUcsIFBORyBmb3JtYXRzIHVwIHRvIDUwTUI8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWJ0biBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRzIGNwXCIgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPlxyXG4gICAgICAgICAgICBVcGxvYWRcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIChjaGFuZ2UpPVwidXBsb2FkSW1hZ2VGcm9tU3lzdGVtKCRldmVudClcIiBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxyXG4gICAgICBhY2NlcHQ9XCJpbWFnZS9wbmcsIGltYWdlL2pwZWcsIGltYWdlL2pwZywgaW1hZ2UvZ2lmXCIgI2ZpbGVJbnB1dCAvPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgaW1hZ2UtY29udGFpbmVyIG10LTMgaC0zMC1vdmVyZmxvd1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWFnZSBvZiBzZWxlY3RlZEltYWdlIHwga2V5dmFsdWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgc3lzdGVtSW1hZ2VcIiAqbmdJZj1cImltYWdlLnZhbHVlLmZpbGVcIj5cclxuICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZS52YWx1ZS5hc3NldHNbMF0udXJsXCIgYWx0PVwiSW1hZ2VcIiAvPlxyXG4gICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJkZWxldGVTeXN0ZW1JbWFnZShpbWFnZS5rZXkpXCI+ZGVsZXRlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2ltYWdlTGlicmFyeVRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgaW1hZ2UtY29udGFpbmVyIG10LTMgaC03NS1vdmVyZmxvd1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImltYWdlTGlicmFyeS5sZW5ndGggPiAwOyBlbHNlIGVtcHR5U2NyZWVuXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlTGlicmFyeVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBjb2wtNlwiPlxyXG4gICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlLmFzc2V0c1swXS51cmxcIiBhbHQ9XCJJbWFnZVwiIChjbGljayk9XCJzZWxlY3RGcm9tSW1hZ2VMaWJyYXJ5KGltYWdlKVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRJbWFnZSc6IHNlbGVjdGVkSW1hZ2UuaGFzKGltYWdlLnVuaXF1ZUlkKX1cIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLXRlbXBsYXRlICNlbXB0eVNjcmVlbj5cclxuICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1jb250YWluZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHctMTAwIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1pbWctY29udGFpbmVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy85MzU3MzdjMTc0MzQxMTc5ODE4OGltYWdlJTIwJTI4NyUyOS5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1tYWluLXRleHRcIj5cclxuICAgICAgICBVaC1vaCFcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dC0xXCI+XHJcbiAgICAgICAgTm8gaW1hZ2VzIGhlcmVcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dC0yXCI+XHJcbiAgICAgICAgSSBsb29rZWQgbGVmdCwgcmlnaHTigKYgZXZlbiB0dXJuZWQgYXJvdW5kISBTdGlsbCBub3RoaW5nXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -51,6 +51,7 @@ export class BannerSectionComponent extends BaseSection {
51
51
  this.styles = this.data?.styles;
52
52
  if (!this.styles || !this.content)
53
53
  return;
54
+ console.log("styles", this.styles?.background);
54
55
  this.getScreenSize();
55
56
  // this.styles.layout.bannerImageDisplay = this.content.image.showImage;
56
57
  }
@@ -82,7 +83,7 @@ export class BannerSectionComponent extends BaseSection {
82
83
  this.screenWidth = window.innerWidth;
83
84
  }
84
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: BannerSectionComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: BannerSectionComponent, isStandalone: true, selector: "simpo-banner-section", inputs: { data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, host: { listeners: { "window: resize": "getScreenSize($event)" } }, usesInheritance: true, ngImport: i0, template: "<div [id]=\"data?.id\"\r\n [ngClass]=\"{'mergeNavbar': canMergeNavbar && index == 1, 'justify-content-between d-flex': isBorderlessImage}\"\r\n class=\"total-container\" style=\"overflow-x: hidden;\" simpoHover [ngClass]=\"{'d-block': isBorderlessImage}\"\r\n (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\">\r\n <div [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" class=\"total-container row\" [ngClass]=\"{'row' : isBorderlessImage}\" [simpoCorner]=\"styles?.corners\">\r\n <ng-container *ngTemplateOutlet=\"ImageSection\"></ng-container>\r\n <div class=\"py-5\" [ngClass]=\"{'col-lg-6 col-xxl-6': content?.image?.showImage && isBorderlessImage, 'w-100 col-xxl-8': !isBorderlessImage || !content?.image?.showImage }\"\r\n [id]=\"data?.id\" [spacingHorizontal]=\"stylesLayout\" [simpoOverlay]=\"styles?.background\"\r\n [simpoBorder]=\"styles?.border\">\r\n <div class=\"row g-5 justify-content-start mlr-0\" [id]=\"data?.id\"\r\n [style.flexDirection]=\"styles?.revertImage ? 'column-reverse' : ''\" [simpoAnimation]=\"styles?.animation\"\r\n [simpoLayout]=\"styles?.layout\" [simpoPositionLayoutDirective]=\"styles?.positionLayout\"\r\n [ngClass]=\"{ 'align-items-stretch': styles?.positionLayout?.value === 'left' || styles?.positionLayout?.value === 'right', 'flex-lg-row': true }\">\r\n <div class=\"col-10 col-sm-8 col-lg-6\" *ngIf=\"content?.image?.showImage && !isBorderlessImage\"\r\n [simpoContainerAlignment]=\"stylesLayout\">\r\n <img loading=\"lazy\" [src]=\"content?.image?.url\" [simpoImageDirective]=\"styles?.image\" [id]=\"data?.id\"\r\n [simpoObjectPosition]=\"content?.image?.position\" [simpoCorner]=\"styles?.corners\"\r\n [appImageEditor]=\"edit || false\" [imageData]=\"content?.image\" [sectionId]=\"data?.id\"\r\n [class]=\"data?.id+(content?.image?.id || '')\" class=\"d-block w-100 insideImg\"\r\n [alt]=\"content?.image?.altText\" width=\"700\" height=\"500\" loading=\"lazy\" />\r\n </div>\r\n <div class=\"d-flex flex-column justify-content-start gap-15 content-side\"\r\n [ngClass]=\"{'col-lg-12': content?.image?.showImage && isBorderlessImage, 'col-lg-6':!isBorderlessImage || !content?.image?.showImage,'box p-3': content?.display?.showCard}\"\r\n [simpoContainerAlignment]=\"stylesLayout\" [id]=\"data?.id\" [simpoContentAlignment]=\"styles?.contentAlignment\" [simpoCorner]=\"styles?.corners\">\r\n <div *ngFor=\"let item of content?.inputText\">\r\n <!-- <div [innerHTML]=\"item.value | sanitizeHtml\" class=\"text-element\"\r\n [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"></div> -->\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n <div class=\"d-flex gap-3 card-container\" [ngClass]=\"{'gap-3': screenWidth > 475 , 'gap-1' : screenWidth <= 475}\">\r\n <div *ngFor=\"let item of content?.listItem?.data\" class=\"carder\">\r\n <div class=\"card_wrapper\">\r\n <div class=\"container_card visible\">\r\n <div class=\"card-section\">\r\n <div class=\"second-part-card\">\r\n </div>\r\n <div class=\"first-part-card d-flex align-items-center\"\r\n [ngClass]=\"item.inputText[0].label=== 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\">\r\n <img loading=\"lazy\" class=\"tick-img\" [src]=\"item?.icon?.url\" alt=\"something\" />\r\n <!-- <div [innerHTML]=\"item.inputText[0].value | sanitizeHtml\" class=\"ml-5\"></div> -->\r\n <simpo-text-editor [(value)]=\"item.inputText[0].value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"data?.action && data?.action?.display\" class=\"button-display\"\r\n [simpoContainerAlignment]=\"stylesLayout\">\r\n <div *ngFor=\"let button of data?.action?.buttons\">\r\n <app-button-element [buttonContent]=\"button.content\" [buttonStyle]=\"button.styles\" [buttonId]=\"button.id\" [edit]=\"edit\"\r\n [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\" [edit]=\"edit\" [backgroundInfo]=\"data?.styles?.background\"></app-button-element>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"\r\n [isMerged]=\"styles?.merge ?? false\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</div>\r\n<ng-template #ImageSection>\r\n <div class=\"col-10 col-sm-8 col-lg-6\"\r\n [ngStyle]=\"{'width': styles?.positionLayout?.value === 'right' ? 'fit-content' : ''}\"\r\n style=\"padding: 0px !important;\" *ngIf=\"content?.image?.showImage && isBorderlessImage;\"\r\n [simpoBorderless]=\"getPositionLayout\">\r\n <img loading=\"lazy\" [src]=\"content?.image?.url\" class=\"d-block img-fluid h-100 w-100\"\r\n [alt]=\"content?.image?.altText\" width=\"700\" height=\"500\" loading=\"lazy\"\r\n [appImageEditor]=\"edit || false\" [imageData]=\"content?.image\" [sectionId]=\"data?.id\"/>\r\n </div>\r\n</ng-template>\r\n", styles: [".btn-primary{border:none}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.button-display{display:flex;gap:10px}.gap-15{gap:15px}.box{background:#fff;border:8px solid rgb(232 232 232 / 80%);box-shadow:#63636333 0 2px 8px}@media only screen and (max-width: 475px){.col-10{width:100%;max-width:100%;flex-basis:100%;height:32vh;padding-right:13px;padding-left:13px}.total-container{flex-direction:column}.insideImg{height:100%!important}.card-container{flex-direction:column}}.text-element{inline-size:100%;overflow-wrap:break-word}.mergeNavbar{margin-top:-75px;padding-top:75px}.container_card .card-section{align-items:center;gap:20px;padding-top:5px;padding-bottom:5px;width:100%;border-radius:10px;opacity:0;transform:translateY(150px);transition:2s all ease}.card_wrapper{display:flex;flex-direction:column;gap:20px}.visible{visibility:visible!important}.visible .card-section{opacity:1;transform:translateY(0)}.first-part-card{min-width:fit-content}.first-part-card .body-large{font-size:1.1rem;font-weight:700}.second-part-card{width:2px;height:2px;border-radius:50%;display:flex;justify-content:center;align-items:center}.third-part-card .heading-large{font-size:1.1rem;font-weight:700}.third-part-card .body-large{font-size:12px;font-weight:400;line-height:15px}.tick-img{width:25px;height:25px;border-radius:50%}.third-part-card{display:flex;flex-direction:column;gap:10px}.image-card{width:50%!important}.svg{fill:#ffb6c1;transform:rotate(180deg)}.ml-5{margin-left:5px}.mlr-0{margin-left:0;margin-right:0}.d-block{display:block!important}\n"], dependencies: [{ kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i2.SimpoButtonComponent, selector: "app-button-element", inputs: ["buttonContent", "buttonStyle", "buttonId", "color", "sectionId", "edit", "backgroundInfo"] }, { kind: "component", type: i3.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "ngmodule", type: MatGridListModule }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"], outputs: ["valueChange"] }, { kind: "directive", type:
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: BannerSectionComponent, isStandalone: true, selector: "simpo-banner-section", inputs: { data: "data", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, host: { listeners: { "window: resize": "getScreenSize($event)" } }, usesInheritance: true, ngImport: i0, template: "<div [id]=\"data?.id\"\r\n [ngClass]=\"{'mergeNavbar': canMergeNavbar && index == 1, 'justify-content-between d-flex': isBorderlessImage}\"\r\n class=\"total-container\" style=\"overflow-x: hidden;\" simpoHover [ngClass]=\"{'d-block': isBorderlessImage}\"\r\n (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\">\r\n <div [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" class=\"total-container row\" [ngClass]=\"{'row' : isBorderlessImage}\" [simpoCorner]=\"styles?.corners\">\r\n <ng-container *ngTemplateOutlet=\"ImageSection\"></ng-container>\r\n <div class=\"py-5\" [ngClass]=\"{'col-lg-6 col-xxl-6': content?.image?.showImage && isBorderlessImage, 'w-100 col-xxl-8': !isBorderlessImage || !content?.image?.showImage }\"\r\n [id]=\"data?.id\" [spacingHorizontal]=\"stylesLayout\" [simpoOverlay]=\"styles?.background\"\r\n [simpoBorder]=\"styles?.border\">\r\n <div class=\"row g-5 justify-content-start mlr-0\" [id]=\"data?.id\"\r\n [style.flexDirection]=\"styles?.revertImage ? 'column-reverse' : ''\" [simpoAnimation]=\"styles?.animation\"\r\n [simpoLayout]=\"styles?.layout\" [simpoPositionLayoutDirective]=\"styles?.positionLayout\"\r\n [ngClass]=\"{ 'align-items-stretch': styles?.positionLayout?.value === 'left' || styles?.positionLayout?.value === 'right', 'flex-lg-row': true }\">\r\n <div class=\"col-10 col-sm-8 col-lg-6\" *ngIf=\"content?.image?.showImage && !isBorderlessImage\"\r\n [simpoContainerAlignment]=\"stylesLayout\">\r\n <img loading=\"lazy\" [src]=\"content?.image?.url\" [simpoImageDirective]=\"styles?.image\" [id]=\"data?.id\"\r\n [simpoObjectPosition]=\"content?.image?.position\" [simpoCorner]=\"styles?.corners\"\r\n [appImageEditor]=\"edit || false\" [imageData]=\"content?.image\" [sectionId]=\"data?.id\"\r\n [class]=\"data?.id+(content?.image?.id || '')\" class=\"d-block w-100 insideImg\"\r\n [alt]=\"content?.image?.altText\" width=\"700\" height=\"500\" loading=\"lazy\" />\r\n </div>\r\n <div class=\"d-flex flex-column justify-content-start gap-15 content-side\"\r\n [ngClass]=\"{'col-lg-12': content?.image?.showImage && isBorderlessImage, 'col-lg-6':!isBorderlessImage || !content?.image?.showImage,'box p-3': content?.display?.showCard}\"\r\n [simpoContainerAlignment]=\"stylesLayout\" [id]=\"data?.id\" [simpoContentAlignment]=\"styles?.contentAlignment\" [simpoCorner]=\"styles?.corners\">\r\n <div *ngFor=\"let item of content?.inputText\">\r\n <!-- <div [innerHTML]=\"item.value | sanitizeHtml\" class=\"text-element\"\r\n [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"></div> -->\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n <div class=\"d-flex gap-3 card-container\" [ngClass]=\"{'gap-3': screenWidth > 475 , 'gap-1' : screenWidth <= 475}\">\r\n <div *ngFor=\"let item of content?.listItem?.data\" class=\"carder\">\r\n <div class=\"card_wrapper\">\r\n <div class=\"container_card visible\">\r\n <div class=\"card-section\">\r\n <div class=\"second-part-card\">\r\n </div>\r\n <div class=\"first-part-card d-flex align-items-center\"\r\n [ngClass]=\"item.inputText[0].label=== 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\">\r\n <img loading=\"lazy\" class=\"tick-img\" [src]=\"item?.icon?.url\" alt=\"something\" />\r\n <!-- <div [innerHTML]=\"item.inputText[0].value | sanitizeHtml\" class=\"ml-5\"></div> -->\r\n <simpo-text-editor [(value)]=\"item.inputText[0].value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"data?.action && data?.action?.display\" class=\"button-display\"\r\n [simpoContainerAlignment]=\"stylesLayout\">\r\n <div *ngFor=\"let button of data?.action?.buttons\">\r\n <app-button-element [buttonContent]=\"button.content\" [buttonStyle]=\"button.styles\" [buttonId]=\"button.id\" [edit]=\"edit\"\r\n [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\" [edit]=\"edit\" [backgroundInfo]=\"data?.styles?.background\"></app-button-element>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"\r\n [isMerged]=\"styles?.merge ?? false\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</div>\r\n<ng-template #ImageSection>\r\n <div class=\"col-10 col-sm-8 col-lg-6\"\r\n [ngStyle]=\"{'width': styles?.positionLayout?.value === 'right' ? 'fit-content' : ''}\"\r\n style=\"padding: 0px !important;\" *ngIf=\"content?.image?.showImage && isBorderlessImage;\"\r\n [simpoBorderless]=\"getPositionLayout\">\r\n <img loading=\"lazy\" [src]=\"content?.image?.url\" class=\"d-block img-fluid h-100 w-100\"\r\n [alt]=\"content?.image?.altText\" width=\"700\" height=\"500\" loading=\"lazy\"\r\n [appImageEditor]=\"edit || false\" [imageData]=\"content?.image\" [sectionId]=\"data?.id\"/>\r\n </div>\r\n</ng-template>\r\n", styles: [".btn-primary{border:none}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.button-display{display:flex;gap:10px}.gap-15{gap:15px}.box{background:#fff;border:8px solid rgb(232 232 232 / 80%);box-shadow:#63636333 0 2px 8px}@media only screen and (max-width: 475px){.col-10{width:100%;max-width:100%;flex-basis:100%;height:32vh;padding-right:13px;padding-left:13px}.total-container{flex-direction:column}.insideImg{height:100%!important}.card-container{flex-direction:column}}.text-element{inline-size:100%;overflow-wrap:break-word}.container_card .card-section{align-items:center;gap:20px;padding-top:5px;padding-bottom:5px;width:100%;border-radius:10px;opacity:0;transform:translateY(150px);transition:2s all ease}.card_wrapper{display:flex;flex-direction:column;gap:20px}.visible{visibility:visible!important}.visible .card-section{opacity:1;transform:translateY(0)}.first-part-card{min-width:fit-content}.first-part-card .body-large{font-size:1.1rem;font-weight:700}.second-part-card{width:2px;height:2px;border-radius:50%;display:flex;justify-content:center;align-items:center}.third-part-card .heading-large{font-size:1.1rem;font-weight:700}.third-part-card .body-large{font-size:12px;font-weight:400;line-height:15px}.tick-img{width:25px;height:25px;border-radius:50%}.third-part-card{display:flex;flex-direction:column;gap:10px}.image-card{width:50%!important}.svg{fill:#ffb6c1;transform:rotate(180deg)}.ml-5{margin-left:5px}.mlr-0{margin-left:0;margin-right:0}.d-block{display:block!important}\n"], dependencies: [{ kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i2.SimpoButtonComponent, selector: "app-button-element", inputs: ["buttonContent", "buttonStyle", "buttonId", "color", "sectionId", "edit", "backgroundInfo"] }, { kind: "component", type: i3.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "ngmodule", type: MatGridListModule }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"], outputs: ["valueChange"] }, { kind: "directive", type:
86
87
  //directive
87
88
  SimpoBorderlessDirective, selector: "[simpoBorderless]", inputs: ["simpoBorderless"] }, { kind: "directive", type: SimpoContainerAligment, selector: "[simpoContainerAlignment]", inputs: ["simpoContainerAlignment"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: simpoConetenAlignmentDirective, selector: "[simpoContentAlignment]", inputs: ["simpoContentAlignment"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: PositionLayoutDirectiveDirective, selector: "[simpoPositionLayoutDirective]", inputs: ["simpoPositionLayoutDirective"] }, { kind: "directive", type: ObjectPositionDirective, selector: "[simpoObjectPosition]", inputs: ["simpoObjectPosition"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: SpacingAroundDirective, selector: "[spacingAround]", inputs: ["spacingAround"] }, { kind: "directive", type: ImageEditorDirective, selector: "img[appImageEditor]", inputs: ["appImageEditor", "imageData", "sectionId"] }] }); }
88
89
  }
@@ -122,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
122
123
  SpacingHorizontalDirective,
123
124
  SpacingAroundDirective,
124
125
  ImageEditorDirective
125
- ], template: "<div [id]=\"data?.id\"\r\n [ngClass]=\"{'mergeNavbar': canMergeNavbar && index == 1, 'justify-content-between d-flex': isBorderlessImage}\"\r\n class=\"total-container\" style=\"overflow-x: hidden;\" simpoHover [ngClass]=\"{'d-block': isBorderlessImage}\"\r\n (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\">\r\n <div [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" class=\"total-container row\" [ngClass]=\"{'row' : isBorderlessImage}\" [simpoCorner]=\"styles?.corners\">\r\n <ng-container *ngTemplateOutlet=\"ImageSection\"></ng-container>\r\n <div class=\"py-5\" [ngClass]=\"{'col-lg-6 col-xxl-6': content?.image?.showImage && isBorderlessImage, 'w-100 col-xxl-8': !isBorderlessImage || !content?.image?.showImage }\"\r\n [id]=\"data?.id\" [spacingHorizontal]=\"stylesLayout\" [simpoOverlay]=\"styles?.background\"\r\n [simpoBorder]=\"styles?.border\">\r\n <div class=\"row g-5 justify-content-start mlr-0\" [id]=\"data?.id\"\r\n [style.flexDirection]=\"styles?.revertImage ? 'column-reverse' : ''\" [simpoAnimation]=\"styles?.animation\"\r\n [simpoLayout]=\"styles?.layout\" [simpoPositionLayoutDirective]=\"styles?.positionLayout\"\r\n [ngClass]=\"{ 'align-items-stretch': styles?.positionLayout?.value === 'left' || styles?.positionLayout?.value === 'right', 'flex-lg-row': true }\">\r\n <div class=\"col-10 col-sm-8 col-lg-6\" *ngIf=\"content?.image?.showImage && !isBorderlessImage\"\r\n [simpoContainerAlignment]=\"stylesLayout\">\r\n <img loading=\"lazy\" [src]=\"content?.image?.url\" [simpoImageDirective]=\"styles?.image\" [id]=\"data?.id\"\r\n [simpoObjectPosition]=\"content?.image?.position\" [simpoCorner]=\"styles?.corners\"\r\n [appImageEditor]=\"edit || false\" [imageData]=\"content?.image\" [sectionId]=\"data?.id\"\r\n [class]=\"data?.id+(content?.image?.id || '')\" class=\"d-block w-100 insideImg\"\r\n [alt]=\"content?.image?.altText\" width=\"700\" height=\"500\" loading=\"lazy\" />\r\n </div>\r\n <div class=\"d-flex flex-column justify-content-start gap-15 content-side\"\r\n [ngClass]=\"{'col-lg-12': content?.image?.showImage && isBorderlessImage, 'col-lg-6':!isBorderlessImage || !content?.image?.showImage,'box p-3': content?.display?.showCard}\"\r\n [simpoContainerAlignment]=\"stylesLayout\" [id]=\"data?.id\" [simpoContentAlignment]=\"styles?.contentAlignment\" [simpoCorner]=\"styles?.corners\">\r\n <div *ngFor=\"let item of content?.inputText\">\r\n <!-- <div [innerHTML]=\"item.value | sanitizeHtml\" class=\"text-element\"\r\n [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"></div> -->\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n <div class=\"d-flex gap-3 card-container\" [ngClass]=\"{'gap-3': screenWidth > 475 , 'gap-1' : screenWidth <= 475}\">\r\n <div *ngFor=\"let item of content?.listItem?.data\" class=\"carder\">\r\n <div class=\"card_wrapper\">\r\n <div class=\"container_card visible\">\r\n <div class=\"card-section\">\r\n <div class=\"second-part-card\">\r\n </div>\r\n <div class=\"first-part-card d-flex align-items-center\"\r\n [ngClass]=\"item.inputText[0].label=== 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\">\r\n <img loading=\"lazy\" class=\"tick-img\" [src]=\"item?.icon?.url\" alt=\"something\" />\r\n <!-- <div [innerHTML]=\"item.inputText[0].value | sanitizeHtml\" class=\"ml-5\"></div> -->\r\n <simpo-text-editor [(value)]=\"item.inputText[0].value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"data?.action && data?.action?.display\" class=\"button-display\"\r\n [simpoContainerAlignment]=\"stylesLayout\">\r\n <div *ngFor=\"let button of data?.action?.buttons\">\r\n <app-button-element [buttonContent]=\"button.content\" [buttonStyle]=\"button.styles\" [buttonId]=\"button.id\" [edit]=\"edit\"\r\n [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\" [edit]=\"edit\" [backgroundInfo]=\"data?.styles?.background\"></app-button-element>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"\r\n [isMerged]=\"styles?.merge ?? false\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</div>\r\n<ng-template #ImageSection>\r\n <div class=\"col-10 col-sm-8 col-lg-6\"\r\n [ngStyle]=\"{'width': styles?.positionLayout?.value === 'right' ? 'fit-content' : ''}\"\r\n style=\"padding: 0px !important;\" *ngIf=\"content?.image?.showImage && isBorderlessImage;\"\r\n [simpoBorderless]=\"getPositionLayout\">\r\n <img loading=\"lazy\" [src]=\"content?.image?.url\" class=\"d-block img-fluid h-100 w-100\"\r\n [alt]=\"content?.image?.altText\" width=\"700\" height=\"500\" loading=\"lazy\"\r\n [appImageEditor]=\"edit || false\" [imageData]=\"content?.image\" [sectionId]=\"data?.id\"/>\r\n </div>\r\n</ng-template>\r\n", styles: [".btn-primary{border:none}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.button-display{display:flex;gap:10px}.gap-15{gap:15px}.box{background:#fff;border:8px solid rgb(232 232 232 / 80%);box-shadow:#63636333 0 2px 8px}@media only screen and (max-width: 475px){.col-10{width:100%;max-width:100%;flex-basis:100%;height:32vh;padding-right:13px;padding-left:13px}.total-container{flex-direction:column}.insideImg{height:100%!important}.card-container{flex-direction:column}}.text-element{inline-size:100%;overflow-wrap:break-word}.mergeNavbar{margin-top:-75px;padding-top:75px}.container_card .card-section{align-items:center;gap:20px;padding-top:5px;padding-bottom:5px;width:100%;border-radius:10px;opacity:0;transform:translateY(150px);transition:2s all ease}.card_wrapper{display:flex;flex-direction:column;gap:20px}.visible{visibility:visible!important}.visible .card-section{opacity:1;transform:translateY(0)}.first-part-card{min-width:fit-content}.first-part-card .body-large{font-size:1.1rem;font-weight:700}.second-part-card{width:2px;height:2px;border-radius:50%;display:flex;justify-content:center;align-items:center}.third-part-card .heading-large{font-size:1.1rem;font-weight:700}.third-part-card .body-large{font-size:12px;font-weight:400;line-height:15px}.tick-img{width:25px;height:25px;border-radius:50%}.third-part-card{display:flex;flex-direction:column;gap:10px}.image-card{width:50%!important}.svg{fill:#ffb6c1;transform:rotate(180deg)}.ml-5{margin-left:5px}.mlr-0{margin-left:0;margin-right:0}.d-block{display:block!important}\n"] }]
126
+ ], template: "<div [id]=\"data?.id\"\r\n [ngClass]=\"{'mergeNavbar': canMergeNavbar && index == 1, 'justify-content-between d-flex': isBorderlessImage}\"\r\n class=\"total-container\" style=\"overflow-x: hidden;\" simpoHover [ngClass]=\"{'d-block': isBorderlessImage}\"\r\n (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n <div [spacingAround]=\"stylesLayout\">\r\n <div [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" class=\"total-container row\" [ngClass]=\"{'row' : isBorderlessImage}\" [simpoCorner]=\"styles?.corners\">\r\n <ng-container *ngTemplateOutlet=\"ImageSection\"></ng-container>\r\n <div class=\"py-5\" [ngClass]=\"{'col-lg-6 col-xxl-6': content?.image?.showImage && isBorderlessImage, 'w-100 col-xxl-8': !isBorderlessImage || !content?.image?.showImage }\"\r\n [id]=\"data?.id\" [spacingHorizontal]=\"stylesLayout\" [simpoOverlay]=\"styles?.background\"\r\n [simpoBorder]=\"styles?.border\">\r\n <div class=\"row g-5 justify-content-start mlr-0\" [id]=\"data?.id\"\r\n [style.flexDirection]=\"styles?.revertImage ? 'column-reverse' : ''\" [simpoAnimation]=\"styles?.animation\"\r\n [simpoLayout]=\"styles?.layout\" [simpoPositionLayoutDirective]=\"styles?.positionLayout\"\r\n [ngClass]=\"{ 'align-items-stretch': styles?.positionLayout?.value === 'left' || styles?.positionLayout?.value === 'right', 'flex-lg-row': true }\">\r\n <div class=\"col-10 col-sm-8 col-lg-6\" *ngIf=\"content?.image?.showImage && !isBorderlessImage\"\r\n [simpoContainerAlignment]=\"stylesLayout\">\r\n <img loading=\"lazy\" [src]=\"content?.image?.url\" [simpoImageDirective]=\"styles?.image\" [id]=\"data?.id\"\r\n [simpoObjectPosition]=\"content?.image?.position\" [simpoCorner]=\"styles?.corners\"\r\n [appImageEditor]=\"edit || false\" [imageData]=\"content?.image\" [sectionId]=\"data?.id\"\r\n [class]=\"data?.id+(content?.image?.id || '')\" class=\"d-block w-100 insideImg\"\r\n [alt]=\"content?.image?.altText\" width=\"700\" height=\"500\" loading=\"lazy\" />\r\n </div>\r\n <div class=\"d-flex flex-column justify-content-start gap-15 content-side\"\r\n [ngClass]=\"{'col-lg-12': content?.image?.showImage && isBorderlessImage, 'col-lg-6':!isBorderlessImage || !content?.image?.showImage,'box p-3': content?.display?.showCard}\"\r\n [simpoContainerAlignment]=\"stylesLayout\" [id]=\"data?.id\" [simpoContentAlignment]=\"styles?.contentAlignment\" [simpoCorner]=\"styles?.corners\">\r\n <div *ngFor=\"let item of content?.inputText\">\r\n <!-- <div [innerHTML]=\"item.value | sanitizeHtml\" class=\"text-element\"\r\n [ngClass]=\"item.label === 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\"></div> -->\r\n <simpo-text-editor [(value)]=\"item.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n <div class=\"d-flex gap-3 card-container\" [ngClass]=\"{'gap-3': screenWidth > 475 , 'gap-1' : screenWidth <= 475}\">\r\n <div *ngFor=\"let item of content?.listItem?.data\" class=\"carder\">\r\n <div class=\"card_wrapper\">\r\n <div class=\"container_card visible\">\r\n <div class=\"card-section\">\r\n <div class=\"second-part-card\">\r\n </div>\r\n <div class=\"first-part-card d-flex align-items-center\"\r\n [ngClass]=\"item.inputText[0].label=== 'Heading' ? 'heading-large lh-2 mb-3' : 'body-large'\">\r\n <img loading=\"lazy\" class=\"tick-img\" [src]=\"item?.icon?.url\" alt=\"something\" />\r\n <!-- <div [innerHTML]=\"item.inputText[0].value | sanitizeHtml\" class=\"ml-5\"></div> -->\r\n <simpo-text-editor [(value)]=\"item.inputText[0].value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"data?.action && data?.action?.display\" class=\"button-display\"\r\n [simpoContainerAlignment]=\"stylesLayout\">\r\n <div *ngFor=\"let button of data?.action?.buttons\">\r\n <app-button-element [buttonContent]=\"button.content\" [buttonStyle]=\"button.styles\" [buttonId]=\"button.id\" [edit]=\"edit\"\r\n [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\" [edit]=\"edit\" [backgroundInfo]=\"data?.styles?.background\"></app-button-element>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"\r\n [isMerged]=\"styles?.merge ?? false\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</div>\r\n<ng-template #ImageSection>\r\n <div class=\"col-10 col-sm-8 col-lg-6\"\r\n [ngStyle]=\"{'width': styles?.positionLayout?.value === 'right' ? 'fit-content' : ''}\"\r\n style=\"padding: 0px !important;\" *ngIf=\"content?.image?.showImage && isBorderlessImage;\"\r\n [simpoBorderless]=\"getPositionLayout\">\r\n <img loading=\"lazy\" [src]=\"content?.image?.url\" class=\"d-block img-fluid h-100 w-100\"\r\n [alt]=\"content?.image?.altText\" width=\"700\" height=\"500\" loading=\"lazy\"\r\n [appImageEditor]=\"edit || false\" [imageData]=\"content?.image\" [sectionId]=\"data?.id\"/>\r\n </div>\r\n</ng-template>\r\n", styles: [".btn-primary{border:none}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.button-display{display:flex;gap:10px}.gap-15{gap:15px}.box{background:#fff;border:8px solid rgb(232 232 232 / 80%);box-shadow:#63636333 0 2px 8px}@media only screen and (max-width: 475px){.col-10{width:100%;max-width:100%;flex-basis:100%;height:32vh;padding-right:13px;padding-left:13px}.total-container{flex-direction:column}.insideImg{height:100%!important}.card-container{flex-direction:column}}.text-element{inline-size:100%;overflow-wrap:break-word}.container_card .card-section{align-items:center;gap:20px;padding-top:5px;padding-bottom:5px;width:100%;border-radius:10px;opacity:0;transform:translateY(150px);transition:2s all ease}.card_wrapper{display:flex;flex-direction:column;gap:20px}.visible{visibility:visible!important}.visible .card-section{opacity:1;transform:translateY(0)}.first-part-card{min-width:fit-content}.first-part-card .body-large{font-size:1.1rem;font-weight:700}.second-part-card{width:2px;height:2px;border-radius:50%;display:flex;justify-content:center;align-items:center}.third-part-card .heading-large{font-size:1.1rem;font-weight:700}.third-part-card .body-large{font-size:12px;font-weight:400;line-height:15px}.tick-img{width:25px;height:25px;border-radius:50%}.third-part-card{display:flex;flex-direction:column;gap:10px}.image-card{width:50%!important}.svg{fill:#ffb6c1;transform:rotate(180deg)}.ml-5{margin-left:5px}.mlr-0{margin-left:0;margin-right:0}.d-block{display:block!important}\n"] }]
126
127
  }], ctorParameters: () => [{ type: i1.EventsService }], propDecorators: { data: [{
127
128
  type: Input
128
129
  }], index: [{
@@ -139,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
139
140
  type: HostListener,
140
141
  args: ["window: resize", ["$event"]]
141
142
  }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9iYW5uZXItc2VjdGlvbi9iYW5uZXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2Jhbm5lci1zZWN0aW9uL2Jhbm5lci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFHakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0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QThCO3dCQUM5QixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsMEJBQTBCO3dCQUMxQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixnQ0FBZ0M7d0JBQ2hDLGdDQUFnQzt3QkFDaEMsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3FCQUNyQjtrRkFNUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBK0NOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFubmVyQ29udGVudE1vZGVsLCBCYW5uZXJTZWN0aW9uTW9kZWwgfSBmcm9tICcuL2Jhbm5lci1zZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBCYW5uZXJTdHlsZXNNb2RlbCwgTGF5T3V0TW9kZWwsIFBvc2l0aW9uTGF5b3V0TW9kYWwgfSBmcm9tICcuLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTaW1wb0VsZW1lbnRzTW9kdWxlIH0gZnJvbSAnLi8uLi8uLi9lbGVtZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IE1hdEdyaWRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZ3JpZC1saXN0JztcclxuaW1wb3J0IHsgU2ltcG9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9zaW1wby1idXR0b24vc2ltcG8tYnV0dG9uLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhbm5lckNvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFubmVyLWNvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJvcmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ib3JkZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbHVtbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGFpbmVyRml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRhaW5lci1maXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgc2ltcG9Db25ldGVuQWxpZ25tZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtYWxpZ25tZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvZm9vdGVyLWxheW91dC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvcG9zaXRpb24tbGF5b3V0LWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS90ZXh0LWJhY2tncm91bmQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JqZWN0UG9zaXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1wb3NpdGlvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBTaW1wb0NvbnRhaW5lckFsaWdtZW50IH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRhaW5lci1hbGlnbm1lbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUZXh0U2l6ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS90ZXh0LXNpemUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Cb3JkZXJsZXNzRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JvcmRlcmxlc3NJbWFnZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0hvdmVyQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZS9ob3ZlcmJvcmRlci5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgU2FuaXRpemVIdG1sUGlwZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nhbml0aXplSHRtbCc7XHJcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTcGFjaW5nQXJvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctYXJvdW5kLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEltYWdlRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWVkaXRvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1iYW5uZXItc2VjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBTaW1wb0VsZW1lbnRzTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcbiAgICBNYXRHcmlkTGlzdE1vZHVsZSxcclxuICAgIFNpbXBvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcclxuICAgIFNpbXBvSG92ZXJCb3JkZXJEaXJlY3RpdmUsXHJcblxyXG4gICAgLy9kaXJlY3RpdmVcclxuICAgIFNpbXBvQm9yZGVybGVzc0RpcmVjdGl2ZSxcclxuICAgIFNpbXBvQ29udGFpbmVyQWxpZ21lbnQsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSxcclxuICAgIEJvcmRlckRpcmVjdGl2ZSxcclxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbHVtbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbnRhaW5lckZpdERpcmVjdGl2ZSxcclxuICAgIHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBDb3JuZXJEaXJlY3RpdmUsXHJcbiAgICBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxyXG4gICAgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIE9iamVjdFBvc2l0aW9uRGlyZWN0aXZlLFxyXG4gICAgQ29sb3JEaXJlY3RpdmUsXHJcbiAgICBUZXh0U2l6ZURpcmVjdGl2ZSxcclxuICAgIFNhbml0aXplSHRtbFBpcGUsXHJcbiAgICBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSxcclxuICAgIFNwYWNpbmdBcm91bmREaXJlY3RpdmUsXHJcbiAgICBJbWFnZUVkaXRvckRpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhbm5lci1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYmFubmVyLXNlY3Rpb24uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhbm5lclNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE/OiBCYW5uZXJTZWN0aW9uTW9kZWw7XHJcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XHJcbiAgY29udGVudD86IEJhbm5lckNvbnRlbnRNb2RlbDtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcclxuXHJcbiAgc3R5bGVzPzogQmFubmVyU3R5bGVzTW9kZWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlbGV0ZVNlbGVjdGVkID0gdGhpcy5kZWxldGVcclxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICBpZiAoIXRoaXMuc3R5bGVzIHx8ICF0aGlzLmNvbnRlbnQpIHJldHVybjtcclxuICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpO1xyXG4gICAgLy8gdGhpcy5zdHlsZXMubGF5b3V0LmJhbm5lckltYWdlRGlzcGxheSA9IHRoaXMuY29udGVudC5pbWFnZS5zaG93SW1hZ2U7XHJcbiAgfVxyXG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlcz8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XHJcbiAgfVxyXG4gIGdldCBnZXRKdXN0aWZ5Q29udGVudCgpIHtcclxuICAgIHJldHVybiBcImp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XCI7XHJcbiAgfVxyXG4gIGdldCBjYW5NZXJnZU5hdmJhcigpIHtcclxuICAgIHJldHVybiB0aGlzLnN0eWxlcz8ubWVyZ2U7XHJcbiAgfVxyXG4gIGdldCBpc0JvcmRlcmxlc3NJbWFnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0eWxlcz8uYm9yZGVyTGVzc0ltYWdlO1xyXG4gIH1cclxuICBnZXQgZ2V0UG9zaXRpb25MYXlvdXQoKSB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlcz8ucG9zaXRpb25MYXlvdXQgfSBhcyBQb3NpdGlvbkxheW91dE1vZGFsO1xyXG4gIH1cclxuXHJcbiAgZWRpdFNlY3Rpb24oKSB7XHJcblxyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBhbnkpIHtcclxuXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgc2NyZWVuV2lkdGg6IGFueSA9IFwiXCJcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OiByZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIGdldFNjcmVlblNpemUoKSB7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IFtpZF09XCJkYXRhPy5pZFwiXHJcbiAgW25nQ2xhc3NdPVwieydtZXJnZU5hdmJhcic6IGNhbk1lcmdlTmF2YmFyICYmIGluZGV4ID09IDEsICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBkLWZsZXgnOiBpc0JvcmRlcmxlc3NJbWFnZX1cIlxyXG4gY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBzdHlsZT1cIm92ZXJmbG93LXg6IGhpZGRlbjtcIiBzaW1wb0hvdmVyIFtuZ0NsYXNzXT1cInsnZC1ibG9jayc6IGlzQm9yZGVybGVzc0ltYWdlfVwiXHJcbiAgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cclxuICA8ZGl2IFtzcGFjaW5nQXJvdW5kXT1cInN0eWxlc0xheW91dFwiPlxyXG4gICAgPGRpdiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiICBbaWRdPVwiZGF0YT8uaWRcIiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lciByb3dcIiBbbmdDbGFzc109XCJ7J3JvdycgOiBpc0JvcmRlcmxlc3NJbWFnZX1cIiAgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiSW1hZ2VTZWN0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJweS01XCIgW25nQ2xhc3NdPVwieydjb2wtbGctNiBjb2wteHhsLTYnOiBjb250ZW50Py5pbWFnZT8uc2hvd0ltYWdlICYmIGlzQm9yZGVybGVzc0ltYWdlLCAndy0xMDAgY29sLXh4bC04JzogIWlzQm9yZGVybGVzc0ltYWdlIHx8ICFjb250ZW50Py5pbWFnZT8uc2hvd0ltYWdlIH1cIlxyXG4gICAgICAgIFtpZF09XCJkYXRhPy5pZFwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIiBbc2ltcG9PdmVybGF5XT1cInN0eWxlcz8uYmFja2dyb3VuZFwiXHJcbiAgICAgICAgW3NpbXBvQm9yZGVyXT1cInN0eWxlcz8uYm9yZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTUganVzdGlmeS1jb250ZW50LXN0YXJ0IG1sci0wXCIgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgIFtzdHlsZS5mbGV4RGlyZWN0aW9uXT1cInN0eWxlcz8ucmV2ZXJ0SW1hZ2UgPyAnY29sdW1uLXJldmVyc2UnIDogJydcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGVzPy5hbmltYXRpb25cIlxyXG4gICAgICAgICAgW3NpbXBvTGF5b3V0XT1cInN0eWxlcz8ubGF5b3V0XCIgW3NpbXBvUG9zaXRpb25MYXlvdXREaXJlY3RpdmVdPVwic3R5bGVzPy5wb3NpdGlvbkxheW91dFwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhbGlnbi1pdGVtcy1zdHJldGNoJzogc3R5bGVzPy5wb3NpdGlvbkxheW91dD8udmFsdWUgPT09ICdsZWZ0JyB8fCBzdHlsZXM/LnBvc2l0aW9uTGF5b3V0Py52YWx1ZSA9PT0gJ3JpZ2h0JywgJ2ZsZXgtbGctcm93JzogdHJ1ZSB9XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEwIGNvbC1zbS04IGNvbC1sZy02XCIgKm5nSWY9XCJjb250ZW50Py5pbWFnZT8uc2hvd0ltYWdlICYmICFpc0JvcmRlcmxlc3NJbWFnZVwiXHJcbiAgICAgICAgICAgIFtzaW1wb0NvbnRhaW5lckFsaWdubWVudF09XCJzdHlsZXNMYXlvdXRcIj5cclxuICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8uaW1hZ2U/LnVybFwiIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlcz8uaW1hZ2VcIiBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgIFtzaW1wb09iamVjdFBvc2l0aW9uXT1cImNvbnRlbnQ/LmltYWdlPy5wb3NpdGlvblwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIlxyXG4gICAgICAgICAgICAgIFthcHBJbWFnZUVkaXRvcl09XCJlZGl0IHx8IGZhbHNlXCIgW2ltYWdlRGF0YV09XCJjb250ZW50Py5pbWFnZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzc109XCJkYXRhPy5pZCsoY29udGVudD8uaW1hZ2U/LmlkIHx8ICcnKVwiIGNsYXNzPVwiZC1ibG9jayB3LTEwMCBpbnNpZGVJbWdcIlxyXG4gICAgICAgICAgICAgIFthbHRdPVwiY29udGVudD8uaW1hZ2U/LmFsdFRleHRcIiB3aWR0aD1cIjcwMFwiIGhlaWdodD1cIjUwMFwiIGxvYWRpbmc9XCJsYXp5XCIgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgZ2FwLTE1IGNvbnRlbnQtc2lkZVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnY29sLWxnLTEyJzogIGNvbnRlbnQ/LmltYWdlPy5zaG93SW1hZ2UgJiYgaXNCb3JkZXJsZXNzSW1hZ2UsICdjb2wtbGctNic6IWlzQm9yZGVybGVzc0ltYWdlIHx8ICFjb250ZW50Py5pbWFnZT8uc2hvd0ltYWdlLCdib3ggcC0zJzogY29udGVudD8uZGlzcGxheT8uc2hvd0NhcmR9XCJcclxuICAgICAgICAgICAgW3NpbXBvQ29udGFpbmVyQWxpZ25tZW50XT1cInN0eWxlc0xheW91dFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0NvbnRlbnRBbGlnbm1lbnRdPVwic3R5bGVzPy5jb250ZW50QWxpZ25tZW50XCIgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb250ZW50Py5pbnB1dFRleHRcIj5cclxuICAgICAgICAgICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCJpdGVtLnZhbHVlIHwgc2FuaXRpemVIdG1sXCIgY2xhc3M9XCJ0ZXh0LWVsZW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5sYWJlbCA9PT0gJ0hlYWRpbmcnID8gJ2hlYWRpbmctbGFyZ2UgbGgtMiBtYi0zJyA6ICdib2R5LWxhcmdlJ1wiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJpdGVtLnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBjYXJkLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnZ2FwLTMnOiBzY3JlZW5XaWR0aCA+IDQ3NSAsICdnYXAtMScgOiBzY3JlZW5XaWR0aCA8PSA0NzV9XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YVwiIGNsYXNzPVwiY2FyZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZF93cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJfY2FyZCB2aXNpYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY29uZC1wYXJ0LWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpcnN0LXBhcnQtY2FyZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5pbnB1dFRleHRbMF0ubGFiZWw9PT0gJ0hlYWRpbmcnID8gJ2hlYWRpbmctbGFyZ2UgbGgtMiBtYi0zJyA6ICdib2R5LWxhcmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgY2xhc3M9XCJ0aWNrLWltZ1wiIFtzcmNdPVwiaXRlbT8uaWNvbj8udXJsXCIgYWx0PVwic29tZXRoaW5nXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IFtpbm5lckhUTUxdPVwiaXRlbS5pbnB1dFRleHRbMF0udmFsdWUgfCBzYW5pdGl6ZUh0bWxcIiBjbGFzcz1cIm1sLTVcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJpdGVtLmlucHV0VGV4dFswXS52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhPy5hY3Rpb24gJiYgZGF0YT8uYWN0aW9uPy5kaXNwbGF5XCIgY2xhc3M9XCJidXR0b24tZGlzcGxheVwiXHJcbiAgICAgICAgICAgICAgW3NpbXBvQ29udGFpbmVyQWxpZ25tZW50XT1cInN0eWxlc0xheW91dFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBkYXRhPy5hY3Rpb24/LmJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkNvbnRlbnRdPVwiYnV0dG9uLmNvbnRlbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uLnN0eWxlc1wiIFtidXR0b25JZF09XCJidXR0b24uaWRcIiBbZWRpdF09XCJlZGl0XCJcclxuICAgICAgICAgICAgICAgICAgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW2VkaXRdPVwiZWRpdFwiIFtiYWNrZ3JvdW5kSW5mb109XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmRcIj48L2FwcC1idXR0b24tZWxlbWVudD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGVzPy5kZXZpZGVyPy5kaXNwbGF5XCI+XHJcbiAgICA8c2ltcG8tc3ZnLWRpdmlkZXIgW2RpdmlkZXJUeXBlXT1cInN0eWxlcz8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIlxyXG4gICAgICBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIlxyXG4gICAgICBbaXNNZXJnZWRdPVwic3R5bGVzPy5tZXJnZSA/PyBmYWxzZVwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjSW1hZ2VTZWN0aW9uPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTAgY29sLXNtLTggY29sLWxnLTZcIlxyXG4gICAgW25nU3R5bGVdPVwieyd3aWR0aCc6IHN0eWxlcz8ucG9zaXRpb25MYXlvdXQ/LnZhbHVlID09PSAncmlnaHQnID8gJ2ZpdC1jb250ZW50JyA6ICcnfVwiXHJcbiAgICBzdHlsZT1cInBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1wiICpuZ0lmPVwiY29udGVudD8uaW1hZ2U/LnNob3dJbWFnZSAmJiBpc0JvcmRlcmxlc3NJbWFnZTtcIlxyXG4gICAgW3NpbXBvQm9yZGVybGVzc109XCJnZXRQb3NpdGlvbkxheW91dFwiPlxyXG4gICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8uaW1hZ2U/LnVybFwiIGNsYXNzPVwiZC1ibG9jayBpbWctZmx1aWQgaC0xMDAgdy0xMDBcIlxyXG4gICAgICBbYWx0XT1cImNvbnRlbnQ/LmltYWdlPy5hbHRUZXh0XCIgd2lkdGg9XCI3MDBcIiBoZWlnaHQ9XCI1MDBcIiBsb2FkaW5nPVwibGF6eVwiXHJcbiAgICAgIFthcHBJbWFnZUVkaXRvcl09XCJlZGl0IHx8IGZhbHNlXCIgW2ltYWdlRGF0YV09XCJjb250ZW50Py5pbWFnZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIi8+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9iYW5uZXItc2VjdGlvbi9iYW5uZXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2Jhbm5lci1zZWN0aW9uL2Jhbm5lci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFHakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0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LHlCQUF5Qjt3QkFDekIsZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQiw4QkFBOEI7d0JBQzlCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZiwwQkFBMEI7d0JBQzFCLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLGdDQUFnQzt3QkFDaEMsZ0NBQWdDO3dCQUNoQyx1QkFBdUI7d0JBQ3ZCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsc0JBQXNCO3dCQUN0QixvQkFBb0I7cUJBQ3JCO2tGQU1RLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFnRE4sYUFBYTtzQkFEWixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYW5uZXJDb250ZW50TW9kZWwsIEJhbm5lclNlY3Rpb25Nb2RlbCB9IGZyb20gJy4vYmFubmVyLXNlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIEJhbm5lclN0eWxlc01vZGVsLCBMYXlPdXRNb2RlbCwgUG9zaXRpb25MYXlvdXRNb2RhbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNpbXBvRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLy4uLy4uL2VsZW1lbnRzL2luZGV4JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xyXG5pbXBvcnQgeyBTaW1wb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3NpbXBvLWJ1dHRvbi9zaW1wby1idXR0b24uY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYW5uZXItY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JvcmRlci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250YWluZXJGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGFpbmVyLWZpci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1hbGlnbm1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9mb290ZXItbGF5b3V0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQb3NpdGlvbkxheW91dERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9wb3NpdGlvbi1sYXlvdXQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYmplY3RQb3NpdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL2ltYWdlLXBvc2l0aW9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi9CYXNlU2VjdGlvbic7XHJcbmltcG9ydCB7IFNpbXBvQ29udGFpbmVyQWxpZ21lbnQgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGFpbmVyLWFsaWdubWVudC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4vLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRleHRTaXplRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtc2l6ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0JvcmRlcmxlc3NEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYm9yZGVybGVzc0ltYWdlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvSG92ZXJCb3JkZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlL2hvdmVyYm9yZGVyLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBTYW5pdGl6ZUh0bWxQaXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FuaXRpemVIdG1sJztcclxuaW1wb3J0IHsgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1ob3Jpem9udGFsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNwYWNpbmdBcm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1hcm91bmQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW1hZ2VFZGl0b3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZWRpdG9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWJhbm5lci1zZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFNpbXBvRWxlbWVudHNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcclxuICAgIE1hdEdyaWRMaXN0TW9kdWxlLFxyXG4gICAgU2ltcG9CdXR0b25Db21wb25lbnQsXHJcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgU2ltcG9Ib3ZlckJvcmRlckRpcmVjdGl2ZSxcclxuXHJcbiAgICAvL2RpcmVjdGl2ZVxyXG4gICAgU2ltcG9Cb3JkZXJsZXNzRGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Db250YWluZXJBbGlnbWVudCxcclxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBCYW5uZXJDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgQm9yZGVyRGlyZWN0aXZlLFxyXG4gICAgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgQ29udGFpbmVyRml0RGlyZWN0aXZlLFxyXG4gICAgc2ltcG9Db25ldGVuQWxpZ25tZW50RGlyZWN0aXZlLFxyXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcclxuICAgIENvcm5lckRpcmVjdGl2ZSxcclxuICAgIFNpbXBvRm9vdGVyTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXHJcbiAgICBQb3NpdGlvbkxheW91dERpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgT2JqZWN0UG9zaXRpb25EaXJlY3RpdmUsXHJcbiAgICBDb2xvckRpcmVjdGl2ZSxcclxuICAgIFRleHRTaXplRGlyZWN0aXZlLFxyXG4gICAgU2FuaXRpemVIdG1sUGlwZSxcclxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxyXG4gICAgU3BhY2luZ0Fyb3VuZERpcmVjdGl2ZSxcclxuICAgIEltYWdlRWRpdG9yRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmFubmVyLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9iYW5uZXItc2VjdGlvbi5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFubmVyU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgZGF0YT86IEJhbm5lclNlY3Rpb25Nb2RlbDtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBjb250ZW50PzogQmFubmVyQ29udGVudE1vZGVsO1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudENvbG9yPzogQmFja2dyb3VuZE1vZGVsO1xyXG5cclxuICBzdHlsZXM/OiBCYW5uZXJTdHlsZXNNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWQgPSB0aGlzLmRlbGV0ZVxyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIGlmICghdGhpcy5zdHlsZXMgfHwgIXRoaXMuY29udGVudCkgcmV0dXJuO1xyXG4gICAgY29uc29sZS5sb2coXCJzdHlsZXNcIiwgdGhpcy5zdHlsZXM/LmJhY2tncm91bmQpO1xyXG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XHJcbiAgICAvLyB0aGlzLnN0eWxlcy5sYXlvdXQuYmFubmVySW1hZ2VEaXNwbGF5ID0gdGhpcy5jb250ZW50LmltYWdlLnNob3dJbWFnZTtcclxuICB9XHJcbiAgZ2V0IHN0eWxlc0xheW91dCgpIHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGVzPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcclxuICB9XHJcbiAgZ2V0IGdldEp1c3RpZnlDb250ZW50KCkge1xyXG4gICAgcmV0dXJuIFwianVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcIjtcclxuICB9XHJcbiAgZ2V0IGNhbk1lcmdlTmF2YmFyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGVzPy5tZXJnZTtcclxuICB9XHJcbiAgZ2V0IGlzQm9yZGVybGVzc0ltYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGVzPy5ib3JkZXJMZXNzSW1hZ2U7XHJcbiAgfVxyXG4gIGdldCBnZXRQb3NpdGlvbkxheW91dCgpIHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGVzPy5wb3NpdGlvbkxheW91dCB9IGFzIFBvc2l0aW9uTGF5b3V0TW9kYWw7XHJcbiAgfVxyXG5cclxuICBlZGl0U2VjdGlvbigpIHtcclxuXHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IGFueSkge1xyXG5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBzY3JlZW5XaWR0aDogYW55ID0gXCJcIlxyXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6IHJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgZ2V0U2NyZWVuU2l6ZSgpIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgW2lkXT1cImRhdGE/LmlkXCJcclxuICBbbmdDbGFzc109XCJ7J21lcmdlTmF2YmFyJzogY2FuTWVyZ2VOYXZiYXIgJiYgaW5kZXggPT0gMSwgJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuIGQtZmxleCc6IGlzQm9yZGVybGVzc0ltYWdlfVwiXHJcbiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIHN0eWxlPVwib3ZlcmZsb3cteDogaGlkZGVuO1wiIHNpbXBvSG92ZXIgW25nQ2xhc3NdPVwieydkLWJsb2NrJzogaXNCb3JkZXJsZXNzSW1hZ2V9XCJcclxuICAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gIDxkaXYgW3NwYWNpbmdBcm91bmRdPVwic3R5bGVzTGF5b3V0XCI+XHJcbiAgICA8ZGl2IFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgIFtpZF09XCJkYXRhPy5pZFwiIGNsYXNzPVwidG90YWwtY29udGFpbmVyIHJvd1wiIFtuZ0NsYXNzXT1cInsncm93JyA6IGlzQm9yZGVybGVzc0ltYWdlfVwiICBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJJbWFnZVNlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGRpdiBjbGFzcz1cInB5LTVcIiBbbmdDbGFzc109XCJ7J2NvbC1sZy02IGNvbC14eGwtNic6IGNvbnRlbnQ/LmltYWdlPy5zaG93SW1hZ2UgJiYgaXNCb3JkZXJsZXNzSW1hZ2UsICd3LTEwMCBjb2wteHhsLTgnOiAhaXNCb3JkZXJsZXNzSW1hZ2UgfHwgIWNvbnRlbnQ/LmltYWdlPy5zaG93SW1hZ2UgfVwiXHJcbiAgICAgICAgW2lkXT1cImRhdGE/LmlkXCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCJcclxuICAgICAgICBbc2ltcG9Cb3JkZXJdPVwic3R5bGVzPy5ib3JkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctNSBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgbWxyLTBcIiBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgW3N0eWxlLmZsZXhEaXJlY3Rpb25dPVwic3R5bGVzPy5yZXZlcnRJbWFnZSA/ICdjb2x1bW4tcmV2ZXJzZScgOiAnJ1wiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiXHJcbiAgICAgICAgICBbc2ltcG9MYXlvdXRdPVwic3R5bGVzPy5sYXlvdXRcIiBbc2ltcG9Qb3NpdGlvbkxheW91dERpcmVjdGl2ZV09XCJzdHlsZXM/LnBvc2l0aW9uTGF5b3V0XCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2FsaWduLWl0ZW1zLXN0cmV0Y2gnOiBzdHlsZXM/LnBvc2l0aW9uTGF5b3V0Py52YWx1ZSA9PT0gJ2xlZnQnIHx8IHN0eWxlcz8ucG9zaXRpb25MYXlvdXQ/LnZhbHVlID09PSAncmlnaHQnLCAnZmxleC1sZy1yb3cnOiB0cnVlIH1cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTAgY29sLXNtLTggY29sLWxnLTZcIiAqbmdJZj1cImNvbnRlbnQ/LmltYWdlPy5zaG93SW1hZ2UgJiYgIWlzQm9yZGVybGVzc0ltYWdlXCJcclxuICAgICAgICAgICAgW3NpbXBvQ29udGFpbmVyQWxpZ25tZW50XT1cInN0eWxlc0xheW91dFwiPlxyXG4gICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5pbWFnZT8udXJsXCIgW3NpbXBvSW1hZ2VEaXJlY3RpdmVdPVwic3R5bGVzPy5pbWFnZVwiIFtpZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgICAgICAgW3NpbXBvT2JqZWN0UG9zaXRpb25dPVwiY29udGVudD8uaW1hZ2U/LnBvc2l0aW9uXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiXHJcbiAgICAgICAgICAgICAgW2FwcEltYWdlRWRpdG9yXT1cImVkaXQgfHwgZmFsc2VcIiBbaW1hZ2VEYXRhXT1cImNvbnRlbnQ/LmltYWdlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImRhdGE/LmlkKyhjb250ZW50Py5pbWFnZT8uaWQgfHwgJycpXCIgY2xhc3M9XCJkLWJsb2NrIHctMTAwIGluc2lkZUltZ1wiXHJcbiAgICAgICAgICAgICAgW2FsdF09XCJjb250ZW50Py5pbWFnZT8uYWx0VGV4dFwiIHdpZHRoPVwiNzAwXCIgaGVpZ2h0PVwiNTAwXCIgbG9hZGluZz1cImxhenlcIiAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1zdGFydCBnYXAtMTUgY29udGVudC1zaWRlXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydjb2wtbGctMTInOiAgY29udGVudD8uaW1hZ2U/LnNob3dJbWFnZSAmJiBpc0JvcmRlcmxlc3NJbWFnZSwgJ2NvbC1sZy02JzohaXNCb3JkZXJsZXNzSW1hZ2UgfHwgIWNvbnRlbnQ/LmltYWdlPy5zaG93SW1hZ2UsJ2JveCBwLTMnOiBjb250ZW50Py5kaXNwbGF5Py5zaG93Q2FyZH1cIlxyXG4gICAgICAgICAgICBbc2ltcG9Db250YWluZXJBbGlnbm1lbnRdPVwic3R5bGVzTGF5b3V0XCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQ29udGVudEFsaWdubWVudF09XCJzdHlsZXM/LmNvbnRlbnRBbGlnbm1lbnRcIiAgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/LmlucHV0VGV4dFwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGRpdiBbaW5uZXJIVE1MXT1cIml0ZW0udmFsdWUgfCBzYW5pdGl6ZUh0bWxcIiBjbGFzcz1cInRleHQtZWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmxhYmVsID09PSAnSGVhZGluZycgPyAnaGVhZGluZy1sYXJnZSBsaC0yIG1iLTMnIDogJ2JvZHktbGFyZ2UnXCI+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cIml0ZW0udmFsdWVcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGNhcmQtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydnYXAtMyc6IHNjcmVlbldpZHRoID4gNDc1ICwgJ2dhcC0xJyA6IHNjcmVlbldpZHRoIDw9IDQ3NX1cIj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhXCIgY2xhc3M9XCJjYXJkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkX3dyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lcl9jYXJkIHZpc2libGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vjb25kLXBhcnQtY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlyc3QtcGFydC1jYXJkIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmlucHV0VGV4dFswXS5sYWJlbD09PSAnSGVhZGluZycgPyAnaGVhZGluZy1sYXJnZSBsaC0yIG1iLTMnIDogJ2JvZHktbGFyZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBjbGFzcz1cInRpY2staW1nXCIgW3NyY109XCJpdGVtPy5pY29uPy51cmxcIiBhbHQ9XCJzb21ldGhpbmdcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCJpdGVtLmlucHV0VGV4dFswXS52YWx1ZSB8IHNhbml0aXplSHRtbFwiIGNsYXNzPVwibWwtNVwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cIml0ZW0uaW5wdXRUZXh0WzBdLnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRhdGE/LmFjdGlvbiAmJiBkYXRhPy5hY3Rpb24/LmRpc3BsYXlcIiBjbGFzcz1cImJ1dHRvbi1kaXNwbGF5XCJcclxuICAgICAgICAgICAgICBbc2ltcG9Db250YWluZXJBbGlnbm1lbnRdPVwic3R5bGVzTGF5b3V0XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGRhdGE/LmFjdGlvbj8uYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiIFtidXR0b25TdHlsZV09XCJidXR0b24uc3R5bGVzXCIgW2J1dHRvbklkXT1cImJ1dHRvbi5pZFwiIFtlZGl0XT1cImVkaXRcIlxyXG4gICAgICAgICAgICAgICAgICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2NvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbZWRpdF09XCJlZGl0XCIgW2JhY2tncm91bmRJbmZvXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZFwiPjwvYXBwLWJ1dHRvbi1lbGVtZW50PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZXM/LmRldmlkZXI/LmRpc3BsYXlcIj5cclxuICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGVzPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXHJcbiAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiXHJcbiAgICAgIFtpc01lcmdlZF09XCJzdHlsZXM/Lm1lcmdlID8/IGZhbHNlXCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNJbWFnZVNlY3Rpb24+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMCBjb2wtc20tOCBjb2wtbGctNlwiXHJcbiAgICBbbmdTdHlsZV09XCJ7J3dpZHRoJzogc3R5bGVzPy5wb3NpdGlvbkxheW91dD8udmFsdWUgPT09ICdyaWdodCcgPyAnZml0LWNvbnRlbnQnIDogJyd9XCJcclxuICAgIHN0eWxlPVwicGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XCIgKm5nSWY9XCJjb250ZW50Py5pbWFnZT8uc2hvd0ltYWdlICYmIGlzQm9yZGVybGVzc0ltYWdlO1wiXHJcbiAgICBbc2ltcG9Cb3JkZXJsZXNzXT1cImdldFBvc2l0aW9uTGF5b3V0XCI+XHJcbiAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5pbWFnZT8udXJsXCIgY2xhc3M9XCJkLWJsb2NrIGltZy1mbHVpZCBoLTEwMCB3LTEwMFwiXHJcbiAgICAgIFthbHRdPVwiY29udGVudD8uaW1hZ2U/LmFsdFRleHRcIiB3aWR0aD1cIjcwMFwiIGhlaWdodD1cIjUwMFwiIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgW2FwcEltYWdlRWRpdG9yXT1cImVkaXQgfHwgZmFsc2VcIiBbaW1hZ2VEYXRhXT1cImNvbnRlbnQ/LmltYWdlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiLz5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19