simpo-component-library 3.6.575 → 3.6.577

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 (27) hide show
  1. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +3 -3
  2. package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.component.mjs +1 -2
  3. package/esm2022/lib/sections/video-grid-section/video-grid-section.component.mjs +3 -3
  4. package/esm2022/lib/sections/video-grid-section/video-grid-section.model.mjs +1 -1
  5. package/esm2022/lib/sections/video-showcase/video-showcase.component.mjs +3 -3
  6. package/esm2022/lib/services/events.service.mjs +2 -1
  7. package/esm2022/lib/styles/style.model.mjs +1 -1
  8. package/fesm2022/simpo-component-library.mjs +7 -7
  9. package/fesm2022/simpo-component-library.mjs.map +1 -1
  10. package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
  11. package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
  12. package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
  13. package/lib/elements/link-editor/link-editor.component.d.ts +1 -1
  14. package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
  15. package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
  16. package/lib/sections/contact-us/contact-us.component.d.ts +1 -1
  17. package/lib/sections/faq-section/faq-section.component.d.ts +1 -1
  18. package/lib/sections/image-section/image-section.component.d.ts +2 -2
  19. package/lib/sections/logo-showcase/logo-showcase.component.d.ts +2 -2
  20. package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
  21. package/lib/sections/pricing-section/pricing-section.component.d.ts +2 -2
  22. package/lib/sections/video-grid-section/video-grid-section.model.d.ts +1 -0
  23. package/lib/services/events.service.d.ts +1 -0
  24. package/lib/styles/style.model.d.ts +1 -0
  25. package/package.json +1 -1
  26. package/simpo-component-library-3.6.577.tgz +0 -0
  27. package/simpo-component-library-3.6.575.tgz +0 -0
@@ -196,7 +196,7 @@ export class VideoGridSectionComponent extends BaseSection {
196
196
  }
197
197
  }
198
198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VideoGridSectionComponent, deps: [{ token: i1.MessageService }, { token: i2.CartService }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
199
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VideoGridSectionComponent, isStandalone: true, selector: "simpo-video-grid-section", inputs: { data: "data", index: "index", edit: "edit", customClass: "customClass", delete: "delete", nextComponentColor: "nextComponentColor" }, host: { listeners: { "window: resize": "getScreenSize($event)" } }, providers: [MessageService], viewQueries: [{ propertyName: "videogrid", first: true, predicate: ["videogrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\" [simpoLayout]=\"style?.layout\">\r\n <div class=\"row w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\"\r\n [ngStyle]=\"style?.fullWidth ? {'padding': '0px'} : {}\"\r\n [ngClass]=\"{'justify-content-center' : screenWidth < 475}\">\r\n <!-- [ngClass]=\"{'w-100':style?.gridStyle === 'Style2'}\" -->\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\">\r\n <ng-container *ngIf=\"edit || (text.value && text.value.length > 0)\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <!-- <ng-container *ngIf=\"style?.gridStyle == 'Style1'\"> -->\r\n <button class=\"scroll-btn left p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollLeft()\"\r\n [disabled]=\"atStart\"><mat-icon>keyboard_arrow_left</mat-icon>\r\n </button>\r\n <div class=\"main-image-section d-flex position-relative\" [class.row]=\"style?.direction == 'ROW' \"\r\n [class.wrap-scroll]=\"style?.direction == 'ROW'\" [class.flex-wrap]=\"style?.direction == 'COLUMN'\"\r\n [id]=\"data?.id\" #videogrid [style.justifyContent]=\"getJustifyContent()\" (scroll)=\"onScroll()\"\r\n [ngClass]=\"{'flex-column' : screenWidth < 475}\">\r\n <div class=\"video-section p-3 w-auto d-flex flex-column gap-2 align-items-center\"\r\n *ngFor=\"let video of content?.listItem?.data\" [simpoColumnDirective]=\"style?.size\"\r\n [id]=\"data?.id\"\r\n [attr.style]=\"style?.removeGaps ? 'padding: 0px !important; margin: 0px !important;' : {}\">\r\n <ng-container *ngIf=\"content?.display?.showText\">\r\n <div class=\"w-fit position-relative d-flex align-items-center justify-content-center\">\r\n <ng-container *ngIf=\"style?.autoPlay && !style?.hoverPlay;else normalVideo\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\"\r\n class=\"h-100 cursor-pointer\" [muted]=\"style?.muteVideos\" autoplay\r\n (click)=\"openFullscreen(videoEl)\" loop></video>\r\n </ng-container>\r\n <ng-template #normalVideo>\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullscreen(videoEl)\"\r\n [ngClass]=\"{ 'cursor-pointer': style?.hoverPlay }\"></video>\r\n </ng-template>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/172648c1769671647159play-fill-svgrepo-com.svg\"\r\n class=\"position-absolute\" *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n style=\"width:20px\">\r\n </div>\r\n <simpo-text-editor [(value)]=\"video.video.description\"\r\n [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n <ng-container *ngIf=\"!content?.display?.showText\">\r\n <div class=\"video-wrapper position-relative\" [id]=\"data?.id\">\r\n <ng-container *ngIf=\"style?.autoPlay && !style?.hoverPlay;else normalVideo\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [simpoVideoDirective]=\"style?.image\"\r\n [controls]=\"style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullVideo(video.video)\"\r\n [ngClass]=\"{ 'cursor-pointer': style?.hoverPlay }\" autoplay loop></video>\r\n </ng-container>\r\n <ng-template #normalVideo>\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [simpoVideoDirective]=\"style?.image\"\r\n [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullVideo(video.video)\"\r\n [ngClass]=\"{ 'cursor-pointer': style?.hoverPlay }\"></video>\r\n </ng-template>\r\n <div class=\"position-absolute products-cards w-100 p-3 d-flex gap-3 overflow-x-auto cursor-pointer\"\r\n *ngIf=\"video?.video?.products?.length > 0\">\r\n <ng-container *ngFor=\"let product of video.video.products\">\r\n <div class=\"product-badge\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <img [src]=\"product?.itemImages[0].imgUrl\" alt=\"Ring\"\r\n class=\"product-img\" /></a>\r\n <div class=\"product-info\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <div class=\"product-details d-flex flex-column gap-1\">\r\n <div class=\"product-title\">\r\n {{product.name.length > 16 ? product.name.trim().slice(0,15)\r\n +\r\n '...' :\r\n product.name }}\r\n </div>\r\n <div class=\"product-price d-flex align-items-start\">\r\n \u20B9{{product?.price.sellingPrice}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\r\n style=\"width: 18px;\"\r\n (click)=\"toggleItemToFav($event, product, 'ADD')\"\r\n *ngIf=\"!product.whislist\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\r\n style=\"width: 18px;\" *ngIf=\"product.whislist\"\r\n (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\r\n style=\"width:19px\"\r\n (click)=\"addItemToCart($event, product, 'ADD')\"\r\n *ngIf=\"product.quantity <= 0\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\"\r\n (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n class=\"position-absolute d-flex align-items-center justify-content-center\"\r\n style=\"padding: 9px;top: 47%;left: 40%;background: lightgrey;border-radius: 50%;background: rgba(240, 240, 240, 0.6);backdrop-filter: blur(4px);-webkit-backdrop-filter: blur(4px);\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/935060c1770214072755play-svgrepo-com.svg\"\r\n class=\"\" style=\"width:25px;margin-left:1.5px\">\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <button class=\"scroll-btn right p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollRight()\"\r\n [disabled]=\"atEnd\"><mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n <!-- </ng-container> -->\r\n <!-- <ng-container *ngIf=\"style?.gridStyle == 'Style2'\">\r\n <div class=\"video-grid-section h-100\" [class.remove-gap]=\"style?.removeGaps\"\r\n [class.p-0]=\"style?.fullWidth\">\r\n <div class=\"video-section\" *ngFor=\"let video of content?.listItem?.data\" style=\"min-width:300px\"\r\n [ngClass]=\"{'position-relative d-flex align-items-center justify-content-center' : !video?.video?.isVideoPlaying && style?.hoverPlay}\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id+video.video.id\" [simpoObjectPosition]=\"video.video.position\"\r\n [src]=\"video.video.url\" loading=\"lazy\" class=\"h-100\" [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl,video.video)\"\r\n [muted]=\"style?.muteVideos\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl,video.video)\"\r\n (click)=\"openFullscreen(videoEl)\"\r\n [ngClass]=\"{'cursor-pointer' : style?.hoverPlay}\"></video>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/172648c1769671647159play-fill-svgrepo-com.svg\"\r\n class=\"position-absolute\" *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n style=\"width:20%;height:20%;max-width:40px\">\r\n </div>\r\n </div>\r\n </ng-container> -->\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></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</section>", styles: [".total-container{height:auto;position:relative}.main-image-section{margin-bottom:1.5rem}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.wrap-scroll{overflow:scroll;flex-wrap:nowrap}@media screen and (min-width : 1200px){.grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;grid-gap:5px}.video-grid-section{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,170px);column-gap:10px;row-gap:10px;max-height:340px;overflow-x:scroll;overflow-y:hidden;grid-auto-columns:1fr;width:100%}.grid img:first-child:last-child{grid-column:1 / span 2}.grid img:first-child:nth-last-child(2),.grid img:nth-child(2):last-child{grid-column:span 1;height:100%}.grid img:nth-child(3n+1):not(:last-child){grid-column:1;grid-row:span 2;height:100%}.grid img:nth-child(3n+2){grid-column:2}.grid img:nth-child(3n+3){grid-column:2;align-self:end}.grid img:nth-child(3n+4){grid-column:1 / span 2}}.remove-gap{grid-gap:0!important}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}.main-image-container{width:100%}@media screen and (max-width: 760px){.scroll-btn{display:none!important}}.right-column-container{display:flex;flex-direction:column;height:100%;padding:0}.image-half-height{height:50%!important;flex:1}.image-half-height:first-child{margin-bottom:2px}.scroll-btn{position:absolute;top:50%;z-index:10;font-size:18px;width:36px!important;height:36px!important;border-radius:50%;border:none}.w-fit{width:fit-content!important}.video-section{text-align:center}.video-section .video-wrapper{width:270px;aspect-ratio:9 / 16;margin:0 auto;position:relative}.video-section video{width:100%;height:100%;object-fit:cover}.scroll-btn.left{left:8px}.scroll-btn.right{right:8px}.product-badge{display:flex;align-items:center;gap:12px;padding:5px 10px;background:#fff9;border-radius:10px;width:90%;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease;min-width:230px}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}\n"], dependencies: [{ kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"], outputs: ["valueChange"] }, { kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i4.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { 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: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type:
199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VideoGridSectionComponent, isStandalone: true, selector: "simpo-video-grid-section", inputs: { data: "data", index: "index", edit: "edit", customClass: "customClass", delete: "delete", nextComponentColor: "nextComponentColor" }, host: { listeners: { "window: resize": "getScreenSize($event)" } }, providers: [MessageService], viewQueries: [{ propertyName: "videogrid", first: true, predicate: ["videogrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\" [simpoLayout]=\"style?.layout\">\r\n <div class=\"row w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\"\r\n [ngStyle]=\"style?.fullWidth ? {'padding': '0px'} : {}\"\r\n [ngClass]=\"{'justify-content-center' : screenWidth < 475}\">\r\n <!-- [ngClass]=\"{'w-100':style?.gridStyle === 'Style2'}\" -->\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\">\r\n <ng-container *ngIf=\"edit || (text.value && text.value.length > 0)\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <!-- <ng-container *ngIf=\"style?.gridStyle == 'Style1'\"> -->\r\n <button class=\"scroll-btn left p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollLeft()\"\r\n [disabled]=\"atStart\"><mat-icon>keyboard_arrow_left</mat-icon>\r\n </button>\r\n <div class=\"main-image-section d-flex position-relative\" [class.row]=\"style?.direction == 'ROW' \"\r\n [class.wrap-scroll]=\"style?.direction == 'ROW'\" [class.flex-wrap]=\"style?.direction == 'COLUMN'\"\r\n [id]=\"data?.id\" #videogrid [style.justifyContent]=\"getJustifyContent()\" (scroll)=\"onScroll()\"\r\n [ngClass]=\"{'flex-column' : screenWidth < 475}\">\r\n <div class=\"video-section p-3 w-auto d-flex flex-column gap-2 align-items-center\"\r\n *ngFor=\"let video of content?.listItem?.data\" [simpoColumnDirective]=\"style?.size\"\r\n [id]=\"data?.id\"\r\n [attr.style]=\"style?.removeGaps ? 'padding: 0px !important; margin: 0px !important;' : {}\">\r\n <ng-container *ngIf=\"content?.display?.showText\">\r\n <div class=\"w-fit position-relative d-flex align-items-center justify-content-center\">\r\n <ng-container *ngIf=\"style?.autoPlay && !style?.hoverPlay;else normalVideo\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\"\r\n class=\"h-100 cursor-pointer\" [muted]=\"style?.muteVideos\" autoplay\r\n (click)=\"openFullscreen(videoEl)\" loop></video>\r\n </ng-container>\r\n <ng-template #normalVideo>\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullscreen(videoEl)\"\r\n [ngClass]=\"{ 'cursor-pointer': style?.hoverPlay }\"></video>\r\n </ng-template>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/172648c1769671647159play-fill-svgrepo-com.svg\"\r\n class=\"position-absolute\" *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n style=\"width:20px\">\r\n </div>\r\n <simpo-text-editor [(value)]=\"video.video.description\"\r\n [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n <ng-container *ngIf=\"!content?.display?.showText\">\r\n <div class=\"video-wrapper position-relative\" [id]=\"data?.id\">\r\n <ng-container *ngIf=\"style?.autoPlay && !style?.hoverPlay;else normalVideo\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [simpoVideoDirective]=\"style?.image\"\r\n [controls]=\"style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullVideo(video.video)\" autoplay loop></video>\r\n </ng-container>\r\n <ng-template #normalVideo>\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [simpoVideoDirective]=\"style?.image\"\r\n [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullVideo(video.video)\"></video>\r\n </ng-template>\r\n <div class=\"position-absolute products-cards w-100 p-3 d-flex gap-3 overflow-x-auto cursor-pointer\"\r\n *ngIf=\"video?.video?.products?.length > 0 && content?.display?.showProducts\">\r\n <ng-container *ngFor=\"let product of video.video.products\">\r\n <div class=\"product-badge\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <img [src]=\"product?.itemImages[0].imgUrl\" alt=\"Ring\"\r\n class=\"product-img\" /></a>\r\n <div class=\"product-info\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <div class=\"product-details d-flex flex-column gap-1\">\r\n <div class=\"product-title\">\r\n {{product.name.length > 16 ? product.name.trim().slice(0,15)\r\n +\r\n '...' :\r\n product.name }}\r\n </div>\r\n <div class=\"product-price d-flex align-items-start\">\r\n \u20B9{{product?.price.sellingPrice}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\r\n style=\"width: 18px;\"\r\n (click)=\"toggleItemToFav($event, product, 'ADD')\"\r\n *ngIf=\"!product.whislist\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\r\n style=\"width: 18px;\" *ngIf=\"product.whislist\"\r\n (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\r\n style=\"width:19px\"\r\n (click)=\"addItemToCart($event, product, 'ADD')\"\r\n *ngIf=\"product.quantity <= 0\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\"\r\n (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n class=\"position-absolute d-flex align-items-center justify-content-center\"\r\n style=\"padding: 9px;top: 47%;left: 40%;background: lightgrey;border-radius: 50%;background: rgba(240, 240, 240, 0.6);backdrop-filter: blur(4px);-webkit-backdrop-filter: blur(4px);\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/935060c1770214072755play-svgrepo-com.svg\"\r\n class=\"\" style=\"width:25px;margin-left:1.5px\">\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <button class=\"scroll-btn right p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollRight()\"\r\n [disabled]=\"atEnd\"><mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n <!-- </ng-container> -->\r\n <!-- <ng-container *ngIf=\"style?.gridStyle == 'Style2'\">\r\n <div class=\"video-grid-section h-100\" [class.remove-gap]=\"style?.removeGaps\"\r\n [class.p-0]=\"style?.fullWidth\">\r\n <div class=\"video-section\" *ngFor=\"let video of content?.listItem?.data\" style=\"min-width:300px\"\r\n [ngClass]=\"{'position-relative d-flex align-items-center justify-content-center' : !video?.video?.isVideoPlaying && style?.hoverPlay}\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id+video.video.id\" [simpoObjectPosition]=\"video.video.position\"\r\n [src]=\"video.video.url\" loading=\"lazy\" class=\"h-100\" [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl,video.video)\"\r\n [muted]=\"style?.muteVideos\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl,video.video)\"\r\n (click)=\"openFullscreen(videoEl)\"\r\n [ngClass]=\"{'cursor-pointer' : style?.hoverPlay}\"></video>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/172648c1769671647159play-fill-svgrepo-com.svg\"\r\n class=\"position-absolute\" *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n style=\"width:20%;height:20%;max-width:40px\">\r\n </div>\r\n </div>\r\n </ng-container> -->\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></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</section>", styles: [".total-container{height:auto;position:relative}.main-image-section{margin-bottom:1.5rem}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.wrap-scroll{overflow:scroll;flex-wrap:nowrap}@media screen and (min-width : 1200px){.grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;grid-gap:5px}.video-grid-section{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,170px);column-gap:10px;row-gap:10px;max-height:340px;overflow-x:scroll;overflow-y:hidden;grid-auto-columns:1fr;width:100%}.grid img:first-child:last-child{grid-column:1 / span 2}.grid img:first-child:nth-last-child(2),.grid img:nth-child(2):last-child{grid-column:span 1;height:100%}.grid img:nth-child(3n+1):not(:last-child){grid-column:1;grid-row:span 2;height:100%}.grid img:nth-child(3n+2){grid-column:2}.grid img:nth-child(3n+3){grid-column:2;align-self:end}.grid img:nth-child(3n+4){grid-column:1 / span 2}}.remove-gap{grid-gap:0!important}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}.main-image-container{width:100%}@media screen and (max-width: 760px){.scroll-btn{display:none!important}}.right-column-container{display:flex;flex-direction:column;height:100%;padding:0}.image-half-height{height:50%!important;flex:1}.image-half-height:first-child{margin-bottom:2px}.scroll-btn{position:absolute;top:50%;z-index:10;font-size:18px;width:36px!important;height:36px!important;border-radius:50%;border:none}.w-fit{width:fit-content!important}.video-section{text-align:center}.video-section .video-wrapper{width:270px;aspect-ratio:9 / 16;margin:0 auto;position:relative}.video-section .video-wrapper video{cursor:pointer}.video-section video{width:100%;height:100%;object-fit:cover}.scroll-btn.left{left:8px}.scroll-btn.right{right:8px}.product-badge{display:flex;align-items:center;gap:12px;padding:5px 10px;background:#fff9;border-radius:10px;width:90%;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease;min-width:230px}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}\n"], dependencies: [{ kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"], outputs: ["valueChange"] }, { kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: i4.SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { 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: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type:
200
200
  //Directives
201
201
  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: ColumnDirectiveDirective, selector: "[simpoColumnDirective]", inputs: ["simpoColumnDirective"] }, { 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: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: ContentTitleDirective, selector: "[simpoContentTitleSpace]", inputs: ["simpoContentTitleSpace"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: VideoDirectiveDirective, selector: "[simpoVideoDirective]", inputs: ["simpoVideoDirective"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
202
202
  }
@@ -220,7 +220,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
220
220
  SpacingHorizontalDirective,
221
221
  VideoDirectiveDirective,
222
222
  MatIcon
223
- ], providers: [MessageService], template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\" [simpoLayout]=\"style?.layout\">\r\n <div class=\"row w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\"\r\n [ngStyle]=\"style?.fullWidth ? {'padding': '0px'} : {}\"\r\n [ngClass]=\"{'justify-content-center' : screenWidth < 475}\">\r\n <!-- [ngClass]=\"{'w-100':style?.gridStyle === 'Style2'}\" -->\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\">\r\n <ng-container *ngIf=\"edit || (text.value && text.value.length > 0)\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <!-- <ng-container *ngIf=\"style?.gridStyle == 'Style1'\"> -->\r\n <button class=\"scroll-btn left p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollLeft()\"\r\n [disabled]=\"atStart\"><mat-icon>keyboard_arrow_left</mat-icon>\r\n </button>\r\n <div class=\"main-image-section d-flex position-relative\" [class.row]=\"style?.direction == 'ROW' \"\r\n [class.wrap-scroll]=\"style?.direction == 'ROW'\" [class.flex-wrap]=\"style?.direction == 'COLUMN'\"\r\n [id]=\"data?.id\" #videogrid [style.justifyContent]=\"getJustifyContent()\" (scroll)=\"onScroll()\"\r\n [ngClass]=\"{'flex-column' : screenWidth < 475}\">\r\n <div class=\"video-section p-3 w-auto d-flex flex-column gap-2 align-items-center\"\r\n *ngFor=\"let video of content?.listItem?.data\" [simpoColumnDirective]=\"style?.size\"\r\n [id]=\"data?.id\"\r\n [attr.style]=\"style?.removeGaps ? 'padding: 0px !important; margin: 0px !important;' : {}\">\r\n <ng-container *ngIf=\"content?.display?.showText\">\r\n <div class=\"w-fit position-relative d-flex align-items-center justify-content-center\">\r\n <ng-container *ngIf=\"style?.autoPlay && !style?.hoverPlay;else normalVideo\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\"\r\n class=\"h-100 cursor-pointer\" [muted]=\"style?.muteVideos\" autoplay\r\n (click)=\"openFullscreen(videoEl)\" loop></video>\r\n </ng-container>\r\n <ng-template #normalVideo>\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullscreen(videoEl)\"\r\n [ngClass]=\"{ 'cursor-pointer': style?.hoverPlay }\"></video>\r\n </ng-template>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/172648c1769671647159play-fill-svgrepo-com.svg\"\r\n class=\"position-absolute\" *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n style=\"width:20px\">\r\n </div>\r\n <simpo-text-editor [(value)]=\"video.video.description\"\r\n [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n <ng-container *ngIf=\"!content?.display?.showText\">\r\n <div class=\"video-wrapper position-relative\" [id]=\"data?.id\">\r\n <ng-container *ngIf=\"style?.autoPlay && !style?.hoverPlay;else normalVideo\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [simpoVideoDirective]=\"style?.image\"\r\n [controls]=\"style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullVideo(video.video)\"\r\n [ngClass]=\"{ 'cursor-pointer': style?.hoverPlay }\" autoplay loop></video>\r\n </ng-container>\r\n <ng-template #normalVideo>\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [simpoVideoDirective]=\"style?.image\"\r\n [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullVideo(video.video)\"\r\n [ngClass]=\"{ 'cursor-pointer': style?.hoverPlay }\"></video>\r\n </ng-template>\r\n <div class=\"position-absolute products-cards w-100 p-3 d-flex gap-3 overflow-x-auto cursor-pointer\"\r\n *ngIf=\"video?.video?.products?.length > 0\">\r\n <ng-container *ngFor=\"let product of video.video.products\">\r\n <div class=\"product-badge\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <img [src]=\"product?.itemImages[0].imgUrl\" alt=\"Ring\"\r\n class=\"product-img\" /></a>\r\n <div class=\"product-info\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <div class=\"product-details d-flex flex-column gap-1\">\r\n <div class=\"product-title\">\r\n {{product.name.length > 16 ? product.name.trim().slice(0,15)\r\n +\r\n '...' :\r\n product.name }}\r\n </div>\r\n <div class=\"product-price d-flex align-items-start\">\r\n \u20B9{{product?.price.sellingPrice}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\r\n style=\"width: 18px;\"\r\n (click)=\"toggleItemToFav($event, product, 'ADD')\"\r\n *ngIf=\"!product.whislist\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\r\n style=\"width: 18px;\" *ngIf=\"product.whislist\"\r\n (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\r\n style=\"width:19px\"\r\n (click)=\"addItemToCart($event, product, 'ADD')\"\r\n *ngIf=\"product.quantity <= 0\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\"\r\n (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n class=\"position-absolute d-flex align-items-center justify-content-center\"\r\n style=\"padding: 9px;top: 47%;left: 40%;background: lightgrey;border-radius: 50%;background: rgba(240, 240, 240, 0.6);backdrop-filter: blur(4px);-webkit-backdrop-filter: blur(4px);\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/935060c1770214072755play-svgrepo-com.svg\"\r\n class=\"\" style=\"width:25px;margin-left:1.5px\">\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <button class=\"scroll-btn right p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollRight()\"\r\n [disabled]=\"atEnd\"><mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n <!-- </ng-container> -->\r\n <!-- <ng-container *ngIf=\"style?.gridStyle == 'Style2'\">\r\n <div class=\"video-grid-section h-100\" [class.remove-gap]=\"style?.removeGaps\"\r\n [class.p-0]=\"style?.fullWidth\">\r\n <div class=\"video-section\" *ngFor=\"let video of content?.listItem?.data\" style=\"min-width:300px\"\r\n [ngClass]=\"{'position-relative d-flex align-items-center justify-content-center' : !video?.video?.isVideoPlaying && style?.hoverPlay}\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id+video.video.id\" [simpoObjectPosition]=\"video.video.position\"\r\n [src]=\"video.video.url\" loading=\"lazy\" class=\"h-100\" [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl,video.video)\"\r\n [muted]=\"style?.muteVideos\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl,video.video)\"\r\n (click)=\"openFullscreen(videoEl)\"\r\n [ngClass]=\"{'cursor-pointer' : style?.hoverPlay}\"></video>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/172648c1769671647159play-fill-svgrepo-com.svg\"\r\n class=\"position-absolute\" *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n style=\"width:20%;height:20%;max-width:40px\">\r\n </div>\r\n </div>\r\n </ng-container> -->\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></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</section>", styles: [".total-container{height:auto;position:relative}.main-image-section{margin-bottom:1.5rem}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.wrap-scroll{overflow:scroll;flex-wrap:nowrap}@media screen and (min-width : 1200px){.grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;grid-gap:5px}.video-grid-section{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,170px);column-gap:10px;row-gap:10px;max-height:340px;overflow-x:scroll;overflow-y:hidden;grid-auto-columns:1fr;width:100%}.grid img:first-child:last-child{grid-column:1 / span 2}.grid img:first-child:nth-last-child(2),.grid img:nth-child(2):last-child{grid-column:span 1;height:100%}.grid img:nth-child(3n+1):not(:last-child){grid-column:1;grid-row:span 2;height:100%}.grid img:nth-child(3n+2){grid-column:2}.grid img:nth-child(3n+3){grid-column:2;align-self:end}.grid img:nth-child(3n+4){grid-column:1 / span 2}}.remove-gap{grid-gap:0!important}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}.main-image-container{width:100%}@media screen and (max-width: 760px){.scroll-btn{display:none!important}}.right-column-container{display:flex;flex-direction:column;height:100%;padding:0}.image-half-height{height:50%!important;flex:1}.image-half-height:first-child{margin-bottom:2px}.scroll-btn{position:absolute;top:50%;z-index:10;font-size:18px;width:36px!important;height:36px!important;border-radius:50%;border:none}.w-fit{width:fit-content!important}.video-section{text-align:center}.video-section .video-wrapper{width:270px;aspect-ratio:9 / 16;margin:0 auto;position:relative}.video-section video{width:100%;height:100%;object-fit:cover}.scroll-btn.left{left:8px}.scroll-btn.right{right:8px}.product-badge{display:flex;align-items:center;gap:12px;padding:5px 10px;background:#fff9;border-radius:10px;width:90%;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease;min-width:230px}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}\n"] }]
223
+ ], providers: [MessageService], template: "<section [id]=\"data?.id\" [simpoBackground]=\"style?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"style?.background\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"container-fluid\" [id]=\"data?.id\" [simpoBorder]=\"style?.border\" [simpoLayout]=\"style?.layout\">\r\n <div class=\"row w-100\" [id]=\"data?.id\" [simpoAnimation]=\"style?.animation\"\r\n [ngStyle]=\"style?.fullWidth ? {'padding': '0px'} : {}\"\r\n [ngClass]=\"{'justify-content-center' : screenWidth < 475}\">\r\n <!-- [ngClass]=\"{'w-100':style?.gridStyle === 'Style2'}\" -->\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <div class=\"heading-large content-side\" [simpoContentTitleSpace]=\"headingSpace\">\r\n <ng-container *ngIf=\"edit || (text.value && text.value.length > 0)\">\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <!-- <ng-container *ngIf=\"style?.gridStyle == 'Style1'\"> -->\r\n <button class=\"scroll-btn left p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollLeft()\"\r\n [disabled]=\"atStart\"><mat-icon>keyboard_arrow_left</mat-icon>\r\n </button>\r\n <div class=\"main-image-section d-flex position-relative\" [class.row]=\"style?.direction == 'ROW' \"\r\n [class.wrap-scroll]=\"style?.direction == 'ROW'\" [class.flex-wrap]=\"style?.direction == 'COLUMN'\"\r\n [id]=\"data?.id\" #videogrid [style.justifyContent]=\"getJustifyContent()\" (scroll)=\"onScroll()\"\r\n [ngClass]=\"{'flex-column' : screenWidth < 475}\">\r\n <div class=\"video-section p-3 w-auto d-flex flex-column gap-2 align-items-center\"\r\n *ngFor=\"let video of content?.listItem?.data\" [simpoColumnDirective]=\"style?.size\"\r\n [id]=\"data?.id\"\r\n [attr.style]=\"style?.removeGaps ? 'padding: 0px !important; margin: 0px !important;' : {}\">\r\n <ng-container *ngIf=\"content?.display?.showText\">\r\n <div class=\"w-fit position-relative d-flex align-items-center justify-content-center\">\r\n <ng-container *ngIf=\"style?.autoPlay && !style?.hoverPlay;else normalVideo\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\"\r\n class=\"h-100 cursor-pointer\" [muted]=\"style?.muteVideos\" autoplay\r\n (click)=\"openFullscreen(videoEl)\" loop></video>\r\n </ng-container>\r\n <ng-template #normalVideo>\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullscreen(videoEl)\"\r\n [ngClass]=\"{ 'cursor-pointer': style?.hoverPlay }\"></video>\r\n </ng-template>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/172648c1769671647159play-fill-svgrepo-com.svg\"\r\n class=\"position-absolute\" *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n style=\"width:20px\">\r\n </div>\r\n <simpo-text-editor [(value)]=\"video.video.description\"\r\n [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n <ng-container *ngIf=\"!content?.display?.showText\">\r\n <div class=\"video-wrapper position-relative\" [id]=\"data?.id\">\r\n <ng-container *ngIf=\"style?.autoPlay && !style?.hoverPlay;else normalVideo\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [simpoVideoDirective]=\"style?.image\"\r\n [controls]=\"style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullVideo(video.video)\" autoplay loop></video>\r\n </ng-container>\r\n <ng-template #normalVideo>\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id + video.video.id\" [src]=\"video.video.url\" class=\"h-100\"\r\n [muted]=\"style?.muteVideos\" [simpoVideoDirective]=\"style?.image\"\r\n [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl, video.video)\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl, video.video)\"\r\n (click)=\"openFullVideo(video.video)\"></video>\r\n </ng-template>\r\n <div class=\"position-absolute products-cards w-100 p-3 d-flex gap-3 overflow-x-auto cursor-pointer\"\r\n *ngIf=\"video?.video?.products?.length > 0 && content?.display?.showProducts\">\r\n <ng-container *ngFor=\"let product of video.video.products\">\r\n <div class=\"product-badge\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <img [src]=\"product?.itemImages[0].imgUrl\" alt=\"Ring\"\r\n class=\"product-img\" /></a>\r\n <div class=\"product-info\">\r\n <a [href]=\"product.redirectionUrl\" class=\"product-link\">\r\n <div class=\"product-details d-flex flex-column gap-1\">\r\n <div class=\"product-title\">\r\n {{product.name.length > 16 ? product.name.trim().slice(0,15)\r\n +\r\n '...' :\r\n product.name }}\r\n </div>\r\n <div class=\"product-price d-flex align-items-start\">\r\n \u20B9{{product?.price.sellingPrice}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-center justify-content-center gap-1\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/700072c1770270395432favourite-svgrepo-com.svg\"\r\n style=\"width: 18px;\"\r\n (click)=\"toggleItemToFav($event, product, 'ADD')\"\r\n *ngIf=\"!product.whislist\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/304116c1770274132910favourite-svgrepo-com_(1).svg\"\r\n style=\"width: 18px;\" *ngIf=\"product.whislist\"\r\n (click)=\"toggleItemToFav($event, product, 'REMOVE')\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/695144c1770270669546cart-shopping-svgrepo-com.svg\"\r\n style=\"width:19px\"\r\n (click)=\"addItemToCart($event, product, 'ADD')\"\r\n *ngIf=\"product.quantity <= 0\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795342c1770275383344shopping-cart-fill-svgrepo-com.svg\"\r\n style=\"width:19px\" *ngIf=\"product.quantity >= 1\"\r\n (click)=\"addItemToCart($event, product, 'SUBSTRACT')\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n class=\"position-absolute d-flex align-items-center justify-content-center\"\r\n style=\"padding: 9px;top: 47%;left: 40%;background: lightgrey;border-radius: 50%;background: rgba(240, 240, 240, 0.6);backdrop-filter: blur(4px);-webkit-backdrop-filter: blur(4px);\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/935060c1770214072755play-svgrepo-com.svg\"\r\n class=\"\" style=\"width:25px;margin-left:1.5px\">\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <button class=\"scroll-btn right p-0 d-flex align-items-center justify-content-center\"\r\n *ngIf=\"style?.direction === 'ROW' && isOverflowing\" (click)=\"scrollRight()\"\r\n [disabled]=\"atEnd\"><mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n <!-- </ng-container> -->\r\n <!-- <ng-container *ngIf=\"style?.gridStyle == 'Style2'\">\r\n <div class=\"video-grid-section h-100\" [class.remove-gap]=\"style?.removeGaps\"\r\n [class.p-0]=\"style?.fullWidth\">\r\n <div class=\"video-section\" *ngFor=\"let video of content?.listItem?.data\" style=\"min-width:300px\"\r\n [ngClass]=\"{'position-relative d-flex align-items-center justify-content-center' : !video?.video?.isVideoPlaying && style?.hoverPlay}\">\r\n <video loading=\"lazy\" [simpoCorner]=\"style?.corners\" [id]=\"data?.id\" #videoEl\r\n [class]=\"data?.id+video.video.id\" [simpoObjectPosition]=\"video.video.position\"\r\n [src]=\"video.video.url\" loading=\"lazy\" class=\"h-100\" [controls]=\"!style?.hoverPlay\"\r\n (mouseenter)=\"style?.hoverPlay && onVideoHover(videoEl,video.video)\"\r\n [muted]=\"style?.muteVideos\"\r\n (mouseleave)=\"style?.hoverPlay && onVideoLeave(videoEl,video.video)\"\r\n (click)=\"openFullscreen(videoEl)\"\r\n [ngClass]=\"{'cursor-pointer' : style?.hoverPlay}\"></video>\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/172648c1769671647159play-fill-svgrepo-com.svg\"\r\n class=\"position-absolute\" *ngIf=\"!video?.video?.isVideoPlaying && style?.hoverPlay\"\r\n style=\"width:20%;height:20%;max-width:40px\">\r\n </div>\r\n </div>\r\n </ng-container> -->\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></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</section>", styles: [".total-container{height:auto;position:relative}.main-image-section{margin-bottom:1.5rem}.mb-1{margin-bottom:1.5rem!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.wrap-scroll{overflow:scroll;flex-wrap:nowrap}@media screen and (min-width : 1200px){.grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;grid-gap:5px}.video-grid-section{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,170px);column-gap:10px;row-gap:10px;max-height:340px;overflow-x:scroll;overflow-y:hidden;grid-auto-columns:1fr;width:100%}.grid img:first-child:last-child{grid-column:1 / span 2}.grid img:first-child:nth-last-child(2),.grid img:nth-child(2):last-child{grid-column:span 1;height:100%}.grid img:nth-child(3n+1):not(:last-child){grid-column:1;grid-row:span 2;height:100%}.grid img:nth-child(3n+2){grid-column:2}.grid img:nth-child(3n+3){grid-column:2;align-self:end}.grid img:nth-child(3n+4){grid-column:1 / span 2}}.remove-gap{grid-gap:0!important}@media screen and (min-width: 760px){.cards{padding-bottom:24px}}.main-image-container{width:100%}@media screen and (max-width: 760px){.scroll-btn{display:none!important}}.right-column-container{display:flex;flex-direction:column;height:100%;padding:0}.image-half-height{height:50%!important;flex:1}.image-half-height:first-child{margin-bottom:2px}.scroll-btn{position:absolute;top:50%;z-index:10;font-size:18px;width:36px!important;height:36px!important;border-radius:50%;border:none}.w-fit{width:fit-content!important}.video-section{text-align:center}.video-section .video-wrapper{width:270px;aspect-ratio:9 / 16;margin:0 auto;position:relative}.video-section .video-wrapper video{cursor:pointer}.video-section video{width:100%;height:100%;object-fit:cover}.scroll-btn.left{left:8px}.scroll-btn.right{right:8px}.product-badge{display:flex;align-items:center;gap:12px;padding:5px 10px;background:#fff9;border-radius:10px;width:90%;box-shadow:0 6px 18px #00000026;transition:background .3s ease,box-shadow .3s ease;min-width:230px}.product-badge:hover{background:#f0f0f0e6;box-shadow:0 8px 22px #0003}.product-img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.product-info{display:flex;gap:4px}.product-title{font-size:12px;font-weight:500;color:#1a1a1a;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-link{text-decoration:none;color:inherit}.products-cards{bottom:0;overflow-x:scroll}.product-price{font-size:16px;font-weight:700;color:#000}\n"] }]
224
224
  }], ctorParameters: () => [{ type: i1.MessageService }, { type: i2.CartService }, { type: i3.MatDialog }], propDecorators: { videogrid: [{
225
225
  type: ViewChild,
226
226
  args: ['videogrid', { static: false }]
@@ -240,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
240
240
  type: HostListener,
241
241
  args: ["window: resize", ["$event"]]
242
242
  }] } });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tZ3JpZC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlkZW8tZ3JpZC1zZWN0aW9uL3ZpZGVvLWdyaWQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLWdyaWQtc2VjdGlvbi92aWRlby1ncmlkLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7QUE0QnBGLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxXQUFXO0lBQ3hELFlBQ21CLGNBQThCLEVBQzlCLFdBQXdCLEVBQ2pDLFNBQW9CO1FBRTVCLEtBQUssRUFBRSxDQUFDO1FBSlMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFhdEIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBbUIsRUFBRSxDQUFDO1FBa0J2QyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUFDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFBQyxVQUFLLEdBQUcsS0FBSyxDQUFDO0lBN0JyRCxDQUFDO0lBWUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFHRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBaUIsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxjQUF5QixDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFZLFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLFdBQVc7UUFDakIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELFVBQVU7UUFDUixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTztRQUMxRCxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxpQkFBaUI7UUFDZixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztRQUN6QyxJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxRQUFRLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVsQyxXQUFXO1FBQ1QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU87UUFDMUQsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzNELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUF1QixFQUFFLFlBQWtCO1FBQ3RELEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDOUIsWUFBWSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUF1QixFQUFFLFlBQWtCO1FBQ3RELEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLFlBQVksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBVTtRQUN0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM1RCxNQUFNLEVBQUUsT0FBTztZQUNmLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJO2dCQUNuQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUU7YUFDMUI7WUFDRCxVQUFVLEVBQUUsb0JBQW9CO1NBQ2pDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFDRCxjQUFjLENBQUMsS0FBdUI7UUFDcEMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQzFCLElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzVCLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzVCLENBQUM7aUJBQU0sSUFBSyxLQUFhLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztnQkFDbEQsU0FBUztnQkFDUixLQUFhLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUMzQyxDQUFDO2lCQUFNLElBQUssS0FBYSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzlDLE9BQU87Z0JBQ04sS0FBYSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdkMsQ0FBQztZQUVELHVDQUF1QztZQUN2QyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBQ0QsY0FBYyxDQUFDLE9BQWdCLEVBQUUsU0FBaUI7UUFDaEQsSUFBSSxlQUFlLEdBQXVCLElBQUksQ0FBQztRQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtZQUNyRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUztnQkFDakMsZUFBZSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxlQUFlLENBQUMsS0FBZ0MsRUFBRSxPQUFnQixFQUFFLElBQXNCO1FBQ3hGLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSw2QkFBNkIsRUFBRSxDQUFDLENBQUM7WUFDN0csSUFBSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxNQUFNLFdBQVcsR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN4RixJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNoQixXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFrQixFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDakYsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDO2FBQ0ksQ0FBQztZQUNKLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxpQ0FBaUMsRUFBRSxDQUFDLENBQUM7WUFDOUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckgsQ0FBQztRQUNELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBZ0I7UUFDL0IsT0FBTyxPQUFPLENBQUMsYUFBYSxFQUFFLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELGFBQWEsQ0FBQyxLQUFnQyxFQUFFLE9BQWdCLEVBQUUsSUFBeUI7UUFDekYsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsb0VBQW9FLEVBQUUsQ0FBQyxDQUFDO1lBQzdJLE9BQU87UUFDVCxDQUFDO1FBQ0QsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDakMsTUFBTSxXQUFXLEdBQXVCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4RixJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixXQUFXLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakUsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLElBQUksU0FBUyxHQUFZLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQWtCLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO29CQUNqQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsU0FBUztnQkFDWixJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdHLENBQUM7SUFDSCxDQUFDOytHQXpLVSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwyUkFKekIsQ0FBQyxjQUFjLENBQUMseUpDakQ3Qixxd2NBbUtVLG03RURwSU4sbUJBQW1CLDRJQUNuQixtQkFBbUIsb0pBQ25CLG9CQUFvQixtV0FDcEIsWUFBWTtnQkFDWixZQUFZO2dCQUNaLGtCQUFrQix5RkFDbEIsbUJBQW1CLDBHQUNuQixlQUFlLG1GQUNmLHdCQUF3QixxR0FDeEIsbUJBQW1CLG1GQUNuQixlQUFlLG1GQUNmLGNBQWMsZ0ZBQ2QsZ0JBQWdCLHFGQUNoQixxQkFBcUIseUdBQ3JCLDBCQUEwQiwyR0FDMUIsdUJBQXVCLG1HQUN2QixPQUFPOzs0RkFNRSx5QkFBeUI7a0JBMUJyQyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2QixPQUFPO3FCQUNSLGFBQ1UsQ0FBQyxjQUFjLENBQUM7cUlBWWdCLFNBQVM7c0JBQW5ELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDaEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQWFOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi9CYXNlU2VjdGlvbic7XHJcbmltcG9ydCB7IFZpZGVvR3JpZENvbnRlbnRNb2RhbCwgVmlkZW9HcmlkU2VjdGlvbk1vZGVsLCBWaWRlb0dyaWRTdHlsZXNNb2RlbCB9IGZyb20gJy4vdmlkZW8tZ3JpZC1zZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uLy4uL2Vjb21tZXJjZS9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNpbXBvRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JvcmRlci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LXRpdGxlLXNwYWNpbmcuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU1BBQ0lORyB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVmlkZW9EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvdmlkZW8tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgSXRlbVZhcmlhbnQsIFByb2R1Y3QgfSBmcm9tICdwcm9qZWN0cy9zaW1wby11aS9zcmMvcHVibGljLWFwaSc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlkZW9TaG93Y2FzZUNvbXBvbmVudCB9IGZyb20gJy4uL3ZpZGVvLXNob3djYXNlL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tdmlkZW8tZ3JpZC1zZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFRleHRFZGl0b3JDb21wb25lbnQsXHJcbiAgICBTaW1wb0VsZW1lbnRzTW9kdWxlLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAvL0RpcmVjdGl2ZXNcclxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBCb3JkZXJEaXJlY3RpdmUsXHJcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxyXG4gICAgQ29udGVudFRpdGxlRGlyZWN0aXZlLFxyXG4gICAgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUsXHJcbiAgICBWaWRlb0RpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIE1hdEljb25cclxuICBdLFxyXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlkZW8tZ3JpZC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdmlkZW8tZ3JpZC1zZWN0aW9uLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWRlb0dyaWRTZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2dcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3ZpZGVvZ3JpZCcsIHsgc3RhdGljOiBmYWxzZSB9KSB2aWRlb2dyaWQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBASW5wdXQoKSBkYXRhPzogVmlkZW9HcmlkU2VjdGlvbk1vZGVsO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudENvbG9yPzogQmFja2dyb3VuZE1vZGVsO1xyXG4gIGNvbnRlbnQ/OiBWaWRlb0dyaWRDb250ZW50TW9kYWw7XHJcbiAgc3R5bGU/OiBWaWRlb0dyaWRTdHlsZXNNb2RlbDtcclxuICBwcml2YXRlIFVTRVJfV0lTSExJU1Q6IE9yZGVyZWRJdGVtc1tdID0gW107XHJcbiAgcHJpdmF0ZSBVU0VSX0NBUlQ6IE9yZGVyZWRJdGVtc1tdID0gW107XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdldFNjcmVlblNpemUoKTtcclxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcclxuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWQgPSB0aGlzLmRlbGV0ZTtcclxuICB9XHJcbiAgc2NyZWVuV2lkdGg6IGFueTtcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OiByZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIGdldFNjcmVlblNpemUoKSB7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcclxuICB9XHJcbiAgZ2V0IGhlYWRpbmdTcGFjZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0eWxlPy5sYXlvdXQ/LmhlYWRpbmdTcGFjaW5nIGFzIFNQQUNJTkc7XHJcbiAgfVxyXG4gIGlzT3ZlcmZsb3dpbmcgPSBmYWxzZTsgYXRTdGFydCA9IHRydWU7IGF0RW5kID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBnZXQgc2Nyb2xsU3RlcCgpIHsgcmV0dXJuIE1hdGgucm91bmQoKHRoaXMudmlkZW9ncmlkPy5uYXRpdmVFbGVtZW50Py5jbGllbnRXaWR0aCB8fCAzMDApICogMC44KTsgfVxyXG4gIHByaXZhdGUgdXBkYXRlRWRnZXMoKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMudmlkZW9ncmlkPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKCFlbCkgcmV0dXJuO1xyXG4gICAgdGhpcy5hdFN0YXJ0ID0gZWwuc2Nyb2xsTGVmdCA8PSA1O1xyXG4gICAgdGhpcy5hdEVuZCA9IGVsLnNjcm9sbExlZnQgKyBlbC5jbGllbnRXaWR0aCA+PSBlbC5zY3JvbGxXaWR0aCAtIDU7XHJcbiAgfVxyXG4gIHNjcm9sbExlZnQoKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMudmlkZW9ncmlkPy5uYXRpdmVFbGVtZW50OyBpZiAoIWVsKSByZXR1cm47XHJcbiAgICBlbC5zY3JvbGxCeSh7IGxlZnQ6IC10aGlzLnNjcm9sbFN0ZXAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVFZGdlcygpLCAzMDApO1xyXG4gIH1cclxuICBnZXRKdXN0aWZ5Q29udGVudCgpIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy52aWRlb2dyaWQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoIWVsKSByZXR1cm4gJyc7XHJcbiAgICB0aGlzLmlzT3ZlcmZsb3dpbmcgPSBlbC5zY3JvbGxXaWR0aCA+IGVsLmNsaWVudFdpZHRoO1xyXG4gICAgaWYgKHRoaXMuaXNPdmVyZmxvd2luZykge1xyXG4gICAgICByZXR1cm4gJ2ZsZXgtc3RhcnQnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuICBvblNjcm9sbCgpIHsgdGhpcy51cGRhdGVFZGdlcygpOyB9XHJcblxyXG4gIHNjcm9sbFJpZ2h0KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLnZpZGVvZ3JpZD8ubmF0aXZlRWxlbWVudDsgaWYgKCFlbCkgcmV0dXJuO1xyXG4gICAgZWwuc2Nyb2xsQnkoeyBsZWZ0OiB0aGlzLnNjcm9sbFN0ZXAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVFZGdlcygpLCAzMDApO1xyXG4gIH1cclxuICBvblZpZGVvSG92ZXIodmlkZW86IEhUTUxWaWRlb0VsZW1lbnQsIHZpZGVvRWxlbWVudD86IGFueSkge1xyXG4gICAgdmlkZW8uY3VycmVudFRpbWUgPSAwO1xyXG4gICAgdmlkZW8ucGxheSgpLmNhdGNoKCgpID0+IHsgfSk7XHJcbiAgICB2aWRlb0VsZW1lbnQuaXNWaWRlb1BsYXlpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25WaWRlb0xlYXZlKHZpZGVvOiBIVE1MVmlkZW9FbGVtZW50LCB2aWRlb0VsZW1lbnQ/OiBhbnkpIHtcclxuICAgIHZpZGVvLnBhdXNlKCk7XHJcbiAgICB2aWRlby5jdXJyZW50VGltZSA9IDA7XHJcbiAgICB2aWRlb0VsZW1lbnQuaXNWaWRlb1BsYXlpbmcgPSBmYWxzZTtcclxuICB9XHJcbiAgb3BlbkZ1bGxWaWRlbyh2aWRlbzogYW55KSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLm1hdERpYWxvZy5vcGVuKFZpZGVvU2hvd2Nhc2VDb21wb25lbnQsIHtcclxuICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxyXG4gICAgICB3aWR0aDogJzEwMHZ3JyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHZpZGVvczogdGhpcy5jb250ZW50Py5saXN0SXRlbS5kYXRhLFxyXG4gICAgICAgIGluaXRpYXRlVmlkZW9JZDogdmlkZW8uaWRcclxuICAgICAgfSxcclxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy10cmFuc3BhcmVudCdcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgb3BlbkZ1bGxzY3JlZW4odmlkZW86IEhUTUxWaWRlb0VsZW1lbnQpIHtcclxuICAgIGlmICh0aGlzLnN0eWxlPy5ob3ZlclBsYXkpIHtcclxuICAgICAgaWYgKHZpZGVvLnJlcXVlc3RGdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgdmlkZW8ucmVxdWVzdEZ1bGxzY3JlZW4oKTtcclxuICAgICAgfSBlbHNlIGlmICgodmlkZW8gYXMgYW55KS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbikge1xyXG4gICAgICAgIC8vIFNhZmFyaVxyXG4gICAgICAgICh2aWRlbyBhcyBhbnkpLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoKHZpZGVvIGFzIGFueSkubXNSZXF1ZXN0RnVsbHNjcmVlbikge1xyXG4gICAgICAgIC8vIElFMTFcclxuICAgICAgICAodmlkZW8gYXMgYW55KS5tc1JlcXVlc3RGdWxsc2NyZWVuKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIE9wdGlvbmFsOiBwbGF5IHdoZW4gZnVsbHNjcmVlbiBvcGVuc1xyXG4gICAgICB2aWRlby5wbGF5KCkuY2F0Y2goKCkgPT4geyB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0SXRlbVZhcmllbnQocHJvZHVjdDogUHJvZHVjdCwgdmFyaWVudElkOiBzdHJpbmcpOiBJdGVtVmFyaWFudCB8IG51bGwge1xyXG4gICAgbGV0IHNlbGVjdGVkVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gbnVsbDtcclxuICAgIHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5mb3JFYWNoKCh2YXJpZW50OiBJdGVtVmFyaWFudCkgPT4ge1xyXG4gICAgICBpZiAodmFyaWVudC52YXJpYW50SWQgPT09IHZhcmllbnRJZClcclxuICAgICAgICBzZWxlY3RlZFZhcmllbnQgPSB2YXJpZW50O1xyXG4gICAgfSlcclxuICAgIHJldHVybiBzZWxlY3RlZFZhcmllbnQ7XHJcbiAgfVxyXG4gIHRvZ2dsZUl0ZW1Ub0ZhdihldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnUkVNT1ZFJykge1xyXG4gICAgaWYgKHR5cGUgPT0gJ0FERCcpIHtcclxuICAgICAgcHJvZHVjdC53aGlzbGlzdCA9IHRydWU7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ1dpc2hsaXN0JywgZGV0YWlsOiAnSXRlbSBhZGRlZCB0byB5b3VyIHdpc2hsaXN0JyB9KTtcclxuICAgICAgaWYgKHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBpdGVtVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gdGhpcy5nZXRJdGVtVmFyaWVudChwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCk7XHJcbiAgICAgICAgaWYgKGl0ZW1WYXJpZW50KSB7XHJcbiAgICAgICAgICBpdGVtVmFyaWVudC53aXNobGlzdCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0IGFzIFByb2R1Y3QsIGl0ZW1WYXJpZW50LnZhcmlhbnRJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvRmF2b3VyaXRlKHByb2R1Y3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcHJvZHVjdC53aGlzbGlzdCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6ICdXaXNobGlzdCcsIGRldGFpbDogJ0l0ZW0gcmVtb3ZlZCBmcm9tIHlvdXIgd2lzaGxpc3QnIH0pO1xyXG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLnJlbW92ZUl0ZW1Gcm9tRmF2b3VyaXRlKHByb2R1Y3QudmFyaWVudElkKTtcclxuICAgIH1cclxuICAgIGlmIChwcm9kdWN0LndoaXNsaXN0KSB7XHJcbiAgICAgIHRoaXMuVVNFUl9XSVNITElTVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLlVTRVJfV0lTSExJU1QgPSB0aGlzLlVTRVJfV0lTSExJU1Q/LmZpbHRlcigoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiBpdGVtLnZhcmllbnRJZCAhPSBwcm9kdWN0LnZhcmllbnRJZCkgPz8gW107XHJcbiAgICB9XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0OiBQcm9kdWN0KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gcHJvZHVjdC5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2sgPT0gMDtcclxuICB9XHJcbiAgYWRkSXRlbVRvQ2FydChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnU1VCU1RSQUNUJykge1xyXG4gICAgaWYgKHRoaXMuaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0KSkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnd2FybicsIHN1bW1hcnk6ICdDYXJ0JywgZGV0YWlsOiAnSXRlbSBpcyBub3QgYXZhaWxhYmxlIGFzIG9mIG5vdy4gV2Ugd2lsbCBub3RpZnkgeW91IG9uY2UgYXZhaWxhYmxlJyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcHJvZHVjdC5xdWFudGl0eSArPSAodHlwZSA9PSAnQUREJyA/IDEgOiAtMSk7XHJcbiAgICBpZiAocHJvZHVjdD8uaXRlbVZhcmlhbnQ/Lmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBpdGVtVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gdGhpcy5nZXRJdGVtVmFyaWVudChwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCk7XHJcbiAgICAgIGlmIChpdGVtVmFyaWVudCkge1xyXG4gICAgICAgIGl0ZW1WYXJpZW50LnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcclxuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCwgaXRlbVZhcmllbnQudmFyaWFudElkKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KHByb2R1Y3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb2R1Y3QucXVhbnRpdHkpIHtcclxuICAgICAgbGV0IGlzUHJlc2VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLlVTRVJfQ0FSVD8uZm9yRWFjaCgoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0udmFyaWVudElkID09IHByb2R1Y3QudmFyaWVudElkKSB7XHJcbiAgICAgICAgICBpdGVtLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcclxuICAgICAgICAgIGlzUHJlc2VudCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAoIWlzUHJlc2VudClcclxuICAgICAgICB0aGlzLlVTRVJfQ0FSVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLlVTRVJfQ0FSVCA9IHRoaXMuVVNFUl9DQVJUPy5maWx0ZXIoKGl0ZW06IE9yZGVyZWRJdGVtcykgPT4gaXRlbS52YXJpZW50SWQgIT0gcHJvZHVjdC52YXJpZW50SWQpID8/IFtdO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvbiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIlxyXG4gICAgY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gICAgPGRpdiAjbWFpbkNvbnRhaW5lciBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PdmVybGF5XT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGU/LmJvcmRlclwiIFtzaW1wb0xheW91dF09XCJzdHlsZT8ubGF5b3V0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgdy0xMDBcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGU/LmFuaW1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJzdHlsZT8uZnVsbFdpZHRoID8geydwYWRkaW5nJzogJzBweCd9IDoge31cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6IHNjcmVlbldpZHRoIDwgNDc1fVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBbbmdDbGFzc109XCJ7J3ctMTAwJzpzdHlsZT8uZ3JpZFN0eWxlID09PSAnU3R5bGUyJ31cIiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRleHQgb2YgZGF0YT8uY29udGVudD8uaW5wdXRUZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbGFyZ2UgY29udGVudC1zaWRlXCIgW3NpbXBvQ29udGVudFRpdGxlU3BhY2VdPVwiaGVhZGluZ1NwYWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0IHx8ICAodGV4dC52YWx1ZSAmJiB0ZXh0LnZhbHVlLmxlbmd0aCA+IDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGV4dC52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZ3JpZFN0eWxlID09ICdTdHlsZTEnXCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNjcm9sbC1idG4gbGVmdCBwLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN0eWxlPy5kaXJlY3Rpb24gPT09ICdST1cnICYmIGlzT3ZlcmZsb3dpbmdcIiAoY2xpY2spPVwic2Nyb2xsTGVmdCgpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYXRTdGFydFwiPjxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4taW1hZ2Utc2VjdGlvbiBkLWZsZXggcG9zaXRpb24tcmVsYXRpdmVcIiBbY2xhc3Mucm93XT1cInN0eWxlPy5kaXJlY3Rpb24gPT0gJ1JPVycgXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mud3JhcC1zY3JvbGxdPVwic3R5bGU/LmRpcmVjdGlvbiA9PSAnUk9XJ1wiIFtjbGFzcy5mbGV4LXdyYXBdPVwic3R5bGU/LmRpcmVjdGlvbiA9PSAnQ09MVU1OJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImRhdGE/LmlkXCIgI3ZpZGVvZ3JpZCBbc3R5bGUuanVzdGlmeUNvbnRlbnRdPVwiZ2V0SnVzdGlmeUNvbnRlbnQoKVwiIChzY3JvbGwpPVwib25TY3JvbGwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydmbGV4LWNvbHVtbicgOiBzY3JlZW5XaWR0aCA8IDQ3NX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlkZW8tc2VjdGlvbiBwLTMgdy1hdXRvIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmlkZW8gb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGFcIiBbc2ltcG9Db2x1bW5EaXJlY3RpdmVdPVwic3R5bGU/LnNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHlsZV09XCJzdHlsZT8ucmVtb3ZlR2FwcyA/ICdwYWRkaW5nOiAwcHggIWltcG9ydGFudDsgbWFyZ2luOiAwcHggIWltcG9ydGFudDsnIDoge31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dUZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1maXQgcG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5hdXRvUGxheSAmJiAhc3R5bGU/LmhvdmVyUGxheTtlbHNlIG5vcm1hbFZpZGVvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtpZF09XCJkYXRhPy5pZFwiICN2aWRlb0VsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZGF0YT8uaWQgKyB2aWRlby52aWRlby5pZFwiIFtzcmNdPVwidmlkZW8udmlkZW8udXJsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaC0xMDAgY3Vyc29yLXBvaW50ZXJcIiBbbXV0ZWRdPVwic3R5bGU/Lm11dGVWaWRlb3NcIiBhdXRvcGxheVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GdWxsc2NyZWVuKHZpZGVvRWwpXCIgbG9vcD48L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsVmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtpZF09XCJkYXRhPy5pZFwiICN2aWRlb0VsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZGF0YT8uaWQgKyB2aWRlby52aWRlby5pZFwiIFtzcmNdPVwidmlkZW8udmlkZW8udXJsXCIgY2xhc3M9XCJoLTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXV0ZWRdPVwic3R5bGU/Lm11dGVWaWRlb3NcIiBbY29udHJvbHNdPVwiIXN0eWxlPy5ob3ZlclBsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwic3R5bGU/LmhvdmVyUGxheSAmJiBvblZpZGVvSG92ZXIodmlkZW9FbCwgdmlkZW8udmlkZW8pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInN0eWxlPy5ob3ZlclBsYXkgJiYgb25WaWRlb0xlYXZlKHZpZGVvRWwsIHZpZGVvLnZpZGVvKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZ1bGxzY3JlZW4odmlkZW9FbClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY3Vyc29yLXBvaW50ZXInOiBzdHlsZT8uaG92ZXJQbGF5IH1cIj48L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzE3MjY0OGMxNzY5NjcxNjQ3MTU5cGxheS1maWxsLXN2Z3JlcG8tY29tLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGVcIiAqbmdJZj1cIiF2aWRlbz8udmlkZW8/LmlzVmlkZW9QbGF5aW5nICYmIHN0eWxlPy5ob3ZlclBsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjIwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInZpZGVvLnZpZGVvLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbnRlbnQ/LmRpc3BsYXk/LnNob3dUZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlkZW8td3JhcHBlciBwb3NpdGlvbi1yZWxhdGl2ZVwiIFtpZF09XCJkYXRhPy5pZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uYXV0b1BsYXkgJiYgIXN0eWxlPy5ob3ZlclBsYXk7ZWxzZSBub3JtYWxWaWRlb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gbG9hZGluZz1cImxhenlcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIiBbaWRdPVwiZGF0YT8uaWRcIiAjdmlkZW9FbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImRhdGE/LmlkICsgdmlkZW8udmlkZW8uaWRcIiBbc3JjXT1cInZpZGVvLnZpZGVvLnVybFwiIGNsYXNzPVwiaC0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW211dGVkXT1cInN0eWxlPy5tdXRlVmlkZW9zXCIgW3NpbXBvVmlkZW9EaXJlY3RpdmVdPVwic3R5bGU/LmltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250cm9sc109XCJzdHlsZT8uaG92ZXJQbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInN0eWxlPy5ob3ZlclBsYXkgJiYgb25WaWRlb0hvdmVyKHZpZGVvRWwsIHZpZGVvLnZpZGVvKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9MZWF2ZSh2aWRlb0VsLCB2aWRlby52aWRlbylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GdWxsVmlkZW8odmlkZW8udmlkZW8pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2N1cnNvci1wb2ludGVyJzogc3R5bGU/LmhvdmVyUGxheSB9XCIgYXV0b3BsYXkgbG9vcD48L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsVmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtpZF09XCJkYXRhPy5pZFwiICN2aWRlb0VsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZGF0YT8uaWQgKyB2aWRlby52aWRlby5pZFwiIFtzcmNdPVwidmlkZW8udmlkZW8udXJsXCIgY2xhc3M9XCJoLTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXV0ZWRdPVwic3R5bGU/Lm11dGVWaWRlb3NcIiBbc2ltcG9WaWRlb0RpcmVjdGl2ZV09XCJzdHlsZT8uaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRyb2xzXT1cIiFzdHlsZT8uaG92ZXJQbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInN0eWxlPy5ob3ZlclBsYXkgJiYgb25WaWRlb0hvdmVyKHZpZGVvRWwsIHZpZGVvLnZpZGVvKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9MZWF2ZSh2aWRlb0VsLCB2aWRlby52aWRlbylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GdWxsVmlkZW8odmlkZW8udmlkZW8pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2N1cnNvci1wb2ludGVyJzogc3R5bGU/LmhvdmVyUGxheSB9XCI+PC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBwcm9kdWN0cy1jYXJkcyB3LTEwMCBwLTMgZC1mbGV4IGdhcC0zIG92ZXJmbG93LXgtYXV0byBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidmlkZW8/LnZpZGVvPy5wcm9kdWN0cz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIHZpZGVvLnZpZGVvLnByb2R1Y3RzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1iYWRnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cInByb2R1Y3QucmVkaXJlY3Rpb25VcmxcIiBjbGFzcz1cInByb2R1Y3QtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwicHJvZHVjdD8uaXRlbUltYWdlc1swXS5pbWdVcmxcIiBhbHQ9XCJSaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdC1pbWdcIiAvPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cInByb2R1Y3QucmVkaXJlY3Rpb25VcmxcIiBjbGFzcz1cInByb2R1Y3QtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtZGV0YWlscyBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2R1Y3QubmFtZS5sZW5ndGggPiAxNiA/IHByb2R1Y3QubmFtZS50cmltKCkuc2xpY2UoMCwxNSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLi4uJyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXByaWNlIGQtZmxleCBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDigrl7e3Byb2R1Y3Q/LnByaWNlLnNlbGxpbmdQcmljZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzAwMDcyYzE3NzAyNzAzOTU0MzJmYXZvdXJpdGUtc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOHB4O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUl0ZW1Ub0ZhdigkZXZlbnQsIHByb2R1Y3QsICdBREQnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcHJvZHVjdC53aGlzbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzMwNDExNmMxNzcwMjc0MTMyOTEwZmF2b3VyaXRlLXN2Z3JlcG8tY29tXygxKS5zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE4cHg7XCIgKm5nSWY9XCJwcm9kdWN0LndoaXNsaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlSXRlbVRvRmF2KCRldmVudCwgcHJvZHVjdCwgJ1JFTU9WRScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjk1MTQ0YzE3NzAyNzA2Njk1NDZjYXJ0LXNob3BwaW5nLXN2Z3JlcG8tY29tLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxOXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdBREQnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5IDw9IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy83OTUzNDJjMTc3MDI3NTM4MzM0NHNob3BwaW5nLWNhcnQtZmlsbC1zdmdyZXBvLWNvbS5zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MTlweFwiICpuZ0lmPVwicHJvZHVjdC5xdWFudGl0eSA+PSAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdTVUJTVFJBQ1QnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXZpZGVvPy52aWRlbz8uaXNWaWRlb1BsYXlpbmcgJiYgc3R5bGU/LmhvdmVyUGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiA5cHg7dG9wOiA0NyU7bGVmdDogNDAlO2JhY2tncm91bmQ6IGxpZ2h0Z3JleTtib3JkZXItcmFkaXVzOiA1MCU7YmFja2dyb3VuZDogcmdiYSgyNDAsIDI0MCwgMjQwLCAwLjYpO2JhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy85MzUwNjBjMTc3MDIxNDA3Mjc1NXBsYXktc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiXCIgc3R5bGU9XCJ3aWR0aDoyNXB4O21hcmdpbi1sZWZ0OjEuNXB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzY3JvbGwtYnRuIHJpZ2h0IHAtMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3R5bGU/LmRpcmVjdGlvbiA9PT0gJ1JPVycgJiYgaXNPdmVyZmxvd2luZ1wiIChjbGljayk9XCJzY3JvbGxSaWdodCgpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYXRFbmRcIj48bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDwvbmctY29udGFpbmVyPiAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5ncmlkU3R5bGUgPT0gJ1N0eWxlMidcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlkZW8tZ3JpZC1zZWN0aW9uIGgtMTAwXCIgW2NsYXNzLnJlbW92ZS1nYXBdPVwic3R5bGU/LnJlbW92ZUdhcHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MucC0wXT1cInN0eWxlPy5mdWxsV2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZGVvLXNlY3Rpb25cIiAqbmdGb3I9XCJsZXQgdmlkZW8gb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGFcIiBzdHlsZT1cIm1pbi13aWR0aDozMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3Bvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAhdmlkZW8/LnZpZGVvPy5pc1ZpZGVvUGxheWluZyAmJiBzdHlsZT8uaG92ZXJQbGF5fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGxvYWRpbmc9XCJsYXp5XCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCIgI3ZpZGVvRWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZGF0YT8uaWQrdmlkZW8udmlkZW8uaWRcIiBbc2ltcG9PYmplY3RQb3NpdGlvbl09XCJ2aWRlby52aWRlby5wb3NpdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJ2aWRlby52aWRlby51cmxcIiBsb2FkaW5nPVwibGF6eVwiIGNsYXNzPVwiaC0xMDBcIiBbY29udHJvbHNdPVwiIXN0eWxlPy5ob3ZlclBsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInN0eWxlPy5ob3ZlclBsYXkgJiYgb25WaWRlb0hvdmVyKHZpZGVvRWwsdmlkZW8udmlkZW8pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXV0ZWRdPVwic3R5bGU/Lm11dGVWaWRlb3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInN0eWxlPy5ob3ZlclBsYXkgJiYgb25WaWRlb0xlYXZlKHZpZGVvRWwsdmlkZW8udmlkZW8pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZ1bGxzY3JlZW4odmlkZW9FbClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnY3Vyc29yLXBvaW50ZXInIDogc3R5bGU/LmhvdmVyUGxheX1cIj48L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzE3MjY0OGMxNzY5NjcxNjQ3MTU5cGxheS1maWxsLXN2Z3JlcG8tY29tLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZVwiICpuZ0lmPVwiIXZpZGVvPy52aWRlbz8uaXNWaWRlb1BsYXlpbmcgJiYgc3R5bGU/LmhvdmVyUGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoyMCU7aGVpZ2h0OjIwJTttYXgtd2lkdGg6NDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZGV2aWRlcj8uZGlzcGxheVwiPlxyXG4gICAgICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGU/LmRldmlkZXI/LmRldmlkZXJUeXBlXCJcclxuICAgICAgICAgICAgW2NvbG9yXT1cIm5leHRDb21wb25lbnRDb2xvcj8uY29sb3JcIj48L3NpbXBvLXN2Zy1kaXZpZGVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj4iXX0=
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tZ3JpZC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlkZW8tZ3JpZC1zZWN0aW9uL3ZpZGVvLWdyaWQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZGVvLWdyaWQtc2VjdGlvbi92aWRlby1ncmlkLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0Ms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QUFrQix5RkFDbEIsbUJBQW1CLDBHQUNuQixlQUFlLG1GQUNmLHdCQUF3QixxR0FDeEIsbUJBQW1CLG1GQUNuQixlQUFlLG1GQUNmLGNBQWMsZ0ZBQ2QsZ0JBQWdCLHFGQUNoQixxQkFBcUIseUdBQ3JCLDBCQUEwQiwyR0FDMUIsdUJBQXVCLG1HQUN2QixPQUFPOzs0RkFNRSx5QkFBeUI7a0JBMUJyQyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2QixPQUFPO3FCQUNSLGFBQ1UsQ0FBQyxjQUFjLENBQUM7cUlBWWdCLFNBQVM7c0JBQW5ELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDaEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQWFOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi9CYXNlU2VjdGlvbic7XHJcbmltcG9ydCB7IFZpZGVvR3JpZENvbnRlbnRNb2RhbCwgVmlkZW9HcmlkU2VjdGlvbk1vZGVsLCBWaWRlb0dyaWRTdHlsZXNNb2RlbCB9IGZyb20gJy4vdmlkZW8tZ3JpZC1zZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uLy4uL2Vjb21tZXJjZS9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNpbXBvRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JvcmRlci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LXRpdGxlLXNwYWNpbmcuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU1BBQ0lORyB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVmlkZW9EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvdmlkZW8tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgSXRlbVZhcmlhbnQsIFByb2R1Y3QgfSBmcm9tICdwcm9qZWN0cy9zaW1wby11aS9zcmMvcHVibGljLWFwaSc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlkZW9TaG93Y2FzZUNvbXBvbmVudCB9IGZyb20gJy4uL3ZpZGVvLXNob3djYXNlL3ZpZGVvLXNob3djYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tdmlkZW8tZ3JpZC1zZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFRleHRFZGl0b3JDb21wb25lbnQsXHJcbiAgICBTaW1wb0VsZW1lbnRzTW9kdWxlLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAvL0RpcmVjdGl2ZXNcclxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBCb3JkZXJEaXJlY3RpdmUsXHJcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxyXG4gICAgQ29udGVudFRpdGxlRGlyZWN0aXZlLFxyXG4gICAgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUsXHJcbiAgICBWaWRlb0RpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIE1hdEljb25cclxuICBdLFxyXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlkZW8tZ3JpZC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdmlkZW8tZ3JpZC1zZWN0aW9uLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWRlb0dyaWRTZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2dcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3ZpZGVvZ3JpZCcsIHsgc3RhdGljOiBmYWxzZSB9KSB2aWRlb2dyaWQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBASW5wdXQoKSBkYXRhPzogVmlkZW9HcmlkU2VjdGlvbk1vZGVsO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudENvbG9yPzogQmFja2dyb3VuZE1vZGVsO1xyXG4gIGNvbnRlbnQ/OiBWaWRlb0dyaWRDb250ZW50TW9kYWw7XHJcbiAgc3R5bGU/OiBWaWRlb0dyaWRTdHlsZXNNb2RlbDtcclxuICBwcml2YXRlIFVTRVJfV0lTSExJU1Q6IE9yZGVyZWRJdGVtc1tdID0gW107XHJcbiAgcHJpdmF0ZSBVU0VSX0NBUlQ6IE9yZGVyZWRJdGVtc1tdID0gW107XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdldFNjcmVlblNpemUoKTtcclxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcclxuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWQgPSB0aGlzLmRlbGV0ZTtcclxuICB9XHJcbiAgc2NyZWVuV2lkdGg6IGFueTtcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OiByZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIGdldFNjcmVlblNpemUoKSB7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcclxuICB9XHJcbiAgZ2V0IGhlYWRpbmdTcGFjZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0eWxlPy5sYXlvdXQ/LmhlYWRpbmdTcGFjaW5nIGFzIFNQQUNJTkc7XHJcbiAgfVxyXG4gIGlzT3ZlcmZsb3dpbmcgPSBmYWxzZTsgYXRTdGFydCA9IHRydWU7IGF0RW5kID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBnZXQgc2Nyb2xsU3RlcCgpIHsgcmV0dXJuIE1hdGgucm91bmQoKHRoaXMudmlkZW9ncmlkPy5uYXRpdmVFbGVtZW50Py5jbGllbnRXaWR0aCB8fCAzMDApICogMC44KTsgfVxyXG4gIHByaXZhdGUgdXBkYXRlRWRnZXMoKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMudmlkZW9ncmlkPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKCFlbCkgcmV0dXJuO1xyXG4gICAgdGhpcy5hdFN0YXJ0ID0gZWwuc2Nyb2xsTGVmdCA8PSA1O1xyXG4gICAgdGhpcy5hdEVuZCA9IGVsLnNjcm9sbExlZnQgKyBlbC5jbGllbnRXaWR0aCA+PSBlbC5zY3JvbGxXaWR0aCAtIDU7XHJcbiAgfVxyXG4gIHNjcm9sbExlZnQoKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMudmlkZW9ncmlkPy5uYXRpdmVFbGVtZW50OyBpZiAoIWVsKSByZXR1cm47XHJcbiAgICBlbC5zY3JvbGxCeSh7IGxlZnQ6IC10aGlzLnNjcm9sbFN0ZXAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVFZGdlcygpLCAzMDApO1xyXG4gIH1cclxuICBnZXRKdXN0aWZ5Q29udGVudCgpIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy52aWRlb2dyaWQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoIWVsKSByZXR1cm4gJyc7XHJcbiAgICB0aGlzLmlzT3ZlcmZsb3dpbmcgPSBlbC5zY3JvbGxXaWR0aCA+IGVsLmNsaWVudFdpZHRoO1xyXG4gICAgaWYgKHRoaXMuaXNPdmVyZmxvd2luZykge1xyXG4gICAgICByZXR1cm4gJ2ZsZXgtc3RhcnQnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuICBvblNjcm9sbCgpIHsgdGhpcy51cGRhdGVFZGdlcygpOyB9XHJcblxyXG4gIHNjcm9sbFJpZ2h0KCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLnZpZGVvZ3JpZD8ubmF0aXZlRWxlbWVudDsgaWYgKCFlbCkgcmV0dXJuO1xyXG4gICAgZWwuc2Nyb2xsQnkoeyBsZWZ0OiB0aGlzLnNjcm9sbFN0ZXAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVFZGdlcygpLCAzMDApO1xyXG4gIH1cclxuICBvblZpZGVvSG92ZXIodmlkZW86IEhUTUxWaWRlb0VsZW1lbnQsIHZpZGVvRWxlbWVudD86IGFueSkge1xyXG4gICAgdmlkZW8uY3VycmVudFRpbWUgPSAwO1xyXG4gICAgdmlkZW8ucGxheSgpLmNhdGNoKCgpID0+IHsgfSk7XHJcbiAgICB2aWRlb0VsZW1lbnQuaXNWaWRlb1BsYXlpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25WaWRlb0xlYXZlKHZpZGVvOiBIVE1MVmlkZW9FbGVtZW50LCB2aWRlb0VsZW1lbnQ/OiBhbnkpIHtcclxuICAgIHZpZGVvLnBhdXNlKCk7XHJcbiAgICB2aWRlby5jdXJyZW50VGltZSA9IDA7XHJcbiAgICB2aWRlb0VsZW1lbnQuaXNWaWRlb1BsYXlpbmcgPSBmYWxzZTtcclxuICB9XHJcbiAgb3BlbkZ1bGxWaWRlbyh2aWRlbzogYW55KSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLm1hdERpYWxvZy5vcGVuKFZpZGVvU2hvd2Nhc2VDb21wb25lbnQsIHtcclxuICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxyXG4gICAgICB3aWR0aDogJzEwMHZ3JyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHZpZGVvczogdGhpcy5jb250ZW50Py5saXN0SXRlbS5kYXRhLFxyXG4gICAgICAgIGluaXRpYXRlVmlkZW9JZDogdmlkZW8uaWRcclxuICAgICAgfSxcclxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy10cmFuc3BhcmVudCdcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgb3BlbkZ1bGxzY3JlZW4odmlkZW86IEhUTUxWaWRlb0VsZW1lbnQpIHtcclxuICAgIGlmICh0aGlzLnN0eWxlPy5ob3ZlclBsYXkpIHtcclxuICAgICAgaWYgKHZpZGVvLnJlcXVlc3RGdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgdmlkZW8ucmVxdWVzdEZ1bGxzY3JlZW4oKTtcclxuICAgICAgfSBlbHNlIGlmICgodmlkZW8gYXMgYW55KS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbikge1xyXG4gICAgICAgIC8vIFNhZmFyaVxyXG4gICAgICAgICh2aWRlbyBhcyBhbnkpLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoKHZpZGVvIGFzIGFueSkubXNSZXF1ZXN0RnVsbHNjcmVlbikge1xyXG4gICAgICAgIC8vIElFMTFcclxuICAgICAgICAodmlkZW8gYXMgYW55KS5tc1JlcXVlc3RGdWxsc2NyZWVuKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIE9wdGlvbmFsOiBwbGF5IHdoZW4gZnVsbHNjcmVlbiBvcGVuc1xyXG4gICAgICB2aWRlby5wbGF5KCkuY2F0Y2goKCkgPT4geyB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0SXRlbVZhcmllbnQocHJvZHVjdDogUHJvZHVjdCwgdmFyaWVudElkOiBzdHJpbmcpOiBJdGVtVmFyaWFudCB8IG51bGwge1xyXG4gICAgbGV0IHNlbGVjdGVkVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gbnVsbDtcclxuICAgIHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5mb3JFYWNoKCh2YXJpZW50OiBJdGVtVmFyaWFudCkgPT4ge1xyXG4gICAgICBpZiAodmFyaWVudC52YXJpYW50SWQgPT09IHZhcmllbnRJZClcclxuICAgICAgICBzZWxlY3RlZFZhcmllbnQgPSB2YXJpZW50O1xyXG4gICAgfSlcclxuICAgIHJldHVybiBzZWxlY3RlZFZhcmllbnQ7XHJcbiAgfVxyXG4gIHRvZ2dsZUl0ZW1Ub0ZhdihldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnUkVNT1ZFJykge1xyXG4gICAgaWYgKHR5cGUgPT0gJ0FERCcpIHtcclxuICAgICAgcHJvZHVjdC53aGlzbGlzdCA9IHRydWU7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ1dpc2hsaXN0JywgZGV0YWlsOiAnSXRlbSBhZGRlZCB0byB5b3VyIHdpc2hsaXN0JyB9KTtcclxuICAgICAgaWYgKHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBpdGVtVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gdGhpcy5nZXRJdGVtVmFyaWVudChwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCk7XHJcbiAgICAgICAgaWYgKGl0ZW1WYXJpZW50KSB7XHJcbiAgICAgICAgICBpdGVtVmFyaWVudC53aXNobGlzdCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0IGFzIFByb2R1Y3QsIGl0ZW1WYXJpZW50LnZhcmlhbnRJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvRmF2b3VyaXRlKHByb2R1Y3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcHJvZHVjdC53aGlzbGlzdCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6ICdXaXNobGlzdCcsIGRldGFpbDogJ0l0ZW0gcmVtb3ZlZCBmcm9tIHlvdXIgd2lzaGxpc3QnIH0pO1xyXG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLnJlbW92ZUl0ZW1Gcm9tRmF2b3VyaXRlKHByb2R1Y3QudmFyaWVudElkKTtcclxuICAgIH1cclxuICAgIGlmIChwcm9kdWN0LndoaXNsaXN0KSB7XHJcbiAgICAgIHRoaXMuVVNFUl9XSVNITElTVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLlVTRVJfV0lTSExJU1QgPSB0aGlzLlVTRVJfV0lTSExJU1Q/LmZpbHRlcigoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiBpdGVtLnZhcmllbnRJZCAhPSBwcm9kdWN0LnZhcmllbnRJZCkgPz8gW107XHJcbiAgICB9XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0OiBQcm9kdWN0KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gcHJvZHVjdC5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2sgPT0gMDtcclxuICB9XHJcbiAgYWRkSXRlbVRvQ2FydChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnU1VCU1RSQUNUJykge1xyXG4gICAgaWYgKHRoaXMuaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0KSkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnd2FybicsIHN1bW1hcnk6ICdDYXJ0JywgZGV0YWlsOiAnSXRlbSBpcyBub3QgYXZhaWxhYmxlIGFzIG9mIG5vdy4gV2Ugd2lsbCBub3RpZnkgeW91IG9uY2UgYXZhaWxhYmxlJyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcHJvZHVjdC5xdWFudGl0eSArPSAodHlwZSA9PSAnQUREJyA/IDEgOiAtMSk7XHJcbiAgICBpZiAocHJvZHVjdD8uaXRlbVZhcmlhbnQ/Lmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBpdGVtVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gdGhpcy5nZXRJdGVtVmFyaWVudChwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCk7XHJcbiAgICAgIGlmIChpdGVtVmFyaWVudCkge1xyXG4gICAgICAgIGl0ZW1WYXJpZW50LnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcclxuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCwgaXRlbVZhcmllbnQudmFyaWFudElkKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KHByb2R1Y3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb2R1Y3QucXVhbnRpdHkpIHtcclxuICAgICAgbGV0IGlzUHJlc2VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLlVTRVJfQ0FSVD8uZm9yRWFjaCgoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0udmFyaWVudElkID09IHByb2R1Y3QudmFyaWVudElkKSB7XHJcbiAgICAgICAgICBpdGVtLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcclxuICAgICAgICAgIGlzUHJlc2VudCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAoIWlzUHJlc2VudClcclxuICAgICAgICB0aGlzLlVTRVJfQ0FSVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLlVTRVJfQ0FSVCA9IHRoaXMuVVNFUl9DQVJUPy5maWx0ZXIoKGl0ZW06IE9yZGVyZWRJdGVtcykgPT4gaXRlbS52YXJpZW50SWQgIT0gcHJvZHVjdC52YXJpZW50SWQpID8/IFtdO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvbiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIlxyXG4gICAgY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gICAgPGRpdiAjbWFpbkNvbnRhaW5lciBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PdmVybGF5XT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGU/LmJvcmRlclwiIFtzaW1wb0xheW91dF09XCJzdHlsZT8ubGF5b3V0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgdy0xMDBcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGU/LmFuaW1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJzdHlsZT8uZnVsbFdpZHRoID8geydwYWRkaW5nJzogJzBweCd9IDoge31cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6IHNjcmVlbldpZHRoIDwgNDc1fVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBbbmdDbGFzc109XCJ7J3ctMTAwJzpzdHlsZT8uZ3JpZFN0eWxlID09PSAnU3R5bGUyJ31cIiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRleHQgb2YgZGF0YT8uY29udGVudD8uaW5wdXRUZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbGFyZ2UgY29udGVudC1zaWRlXCIgW3NpbXBvQ29udGVudFRpdGxlU3BhY2VdPVwiaGVhZGluZ1NwYWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0IHx8ICAodGV4dC52YWx1ZSAmJiB0ZXh0LnZhbHVlLmxlbmd0aCA+IDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGV4dC52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZ3JpZFN0eWxlID09ICdTdHlsZTEnXCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNjcm9sbC1idG4gbGVmdCBwLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN0eWxlPy5kaXJlY3Rpb24gPT09ICdST1cnICYmIGlzT3ZlcmZsb3dpbmdcIiAoY2xpY2spPVwic2Nyb2xsTGVmdCgpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYXRTdGFydFwiPjxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4taW1hZ2Utc2VjdGlvbiBkLWZsZXggcG9zaXRpb24tcmVsYXRpdmVcIiBbY2xhc3Mucm93XT1cInN0eWxlPy5kaXJlY3Rpb24gPT0gJ1JPVycgXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mud3JhcC1zY3JvbGxdPVwic3R5bGU/LmRpcmVjdGlvbiA9PSAnUk9XJ1wiIFtjbGFzcy5mbGV4LXdyYXBdPVwic3R5bGU/LmRpcmVjdGlvbiA9PSAnQ09MVU1OJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImRhdGE/LmlkXCIgI3ZpZGVvZ3JpZCBbc3R5bGUuanVzdGlmeUNvbnRlbnRdPVwiZ2V0SnVzdGlmeUNvbnRlbnQoKVwiIChzY3JvbGwpPVwib25TY3JvbGwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydmbGV4LWNvbHVtbicgOiBzY3JlZW5XaWR0aCA8IDQ3NX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlkZW8tc2VjdGlvbiBwLTMgdy1hdXRvIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmlkZW8gb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGFcIiBbc2ltcG9Db2x1bW5EaXJlY3RpdmVdPVwic3R5bGU/LnNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHlsZV09XCJzdHlsZT8ucmVtb3ZlR2FwcyA/ICdwYWRkaW5nOiAwcHggIWltcG9ydGFudDsgbWFyZ2luOiAwcHggIWltcG9ydGFudDsnIDoge31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dUZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1maXQgcG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5hdXRvUGxheSAmJiAhc3R5bGU/LmhvdmVyUGxheTtlbHNlIG5vcm1hbFZpZGVvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtpZF09XCJkYXRhPy5pZFwiICN2aWRlb0VsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZGF0YT8uaWQgKyB2aWRlby52aWRlby5pZFwiIFtzcmNdPVwidmlkZW8udmlkZW8udXJsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaC0xMDAgY3Vyc29yLXBvaW50ZXJcIiBbbXV0ZWRdPVwic3R5bGU/Lm11dGVWaWRlb3NcIiBhdXRvcGxheVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GdWxsc2NyZWVuKHZpZGVvRWwpXCIgbG9vcD48L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsVmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtpZF09XCJkYXRhPy5pZFwiICN2aWRlb0VsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZGF0YT8uaWQgKyB2aWRlby52aWRlby5pZFwiIFtzcmNdPVwidmlkZW8udmlkZW8udXJsXCIgY2xhc3M9XCJoLTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXV0ZWRdPVwic3R5bGU/Lm11dGVWaWRlb3NcIiBbY29udHJvbHNdPVwiIXN0eWxlPy5ob3ZlclBsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwic3R5bGU/LmhvdmVyUGxheSAmJiBvblZpZGVvSG92ZXIodmlkZW9FbCwgdmlkZW8udmlkZW8pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInN0eWxlPy5ob3ZlclBsYXkgJiYgb25WaWRlb0xlYXZlKHZpZGVvRWwsIHZpZGVvLnZpZGVvKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZ1bGxzY3JlZW4odmlkZW9FbClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY3Vyc29yLXBvaW50ZXInOiBzdHlsZT8uaG92ZXJQbGF5IH1cIj48L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzE3MjY0OGMxNzY5NjcxNjQ3MTU5cGxheS1maWxsLXN2Z3JlcG8tY29tLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGVcIiAqbmdJZj1cIiF2aWRlbz8udmlkZW8/LmlzVmlkZW9QbGF5aW5nICYmIHN0eWxlPy5ob3ZlclBsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjIwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInZpZGVvLnZpZGVvLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbnRlbnQ/LmRpc3BsYXk/LnNob3dUZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlkZW8td3JhcHBlciBwb3NpdGlvbi1yZWxhdGl2ZVwiIFtpZF09XCJkYXRhPy5pZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uYXV0b1BsYXkgJiYgIXN0eWxlPy5ob3ZlclBsYXk7ZWxzZSBub3JtYWxWaWRlb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gbG9hZGluZz1cImxhenlcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIiBbaWRdPVwiZGF0YT8uaWRcIiAjdmlkZW9FbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImRhdGE/LmlkICsgdmlkZW8udmlkZW8uaWRcIiBbc3JjXT1cInZpZGVvLnZpZGVvLnVybFwiIGNsYXNzPVwiaC0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW211dGVkXT1cInN0eWxlPy5tdXRlVmlkZW9zXCIgW3NpbXBvVmlkZW9EaXJlY3RpdmVdPVwic3R5bGU/LmltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250cm9sc109XCJzdHlsZT8uaG92ZXJQbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInN0eWxlPy5ob3ZlclBsYXkgJiYgb25WaWRlb0hvdmVyKHZpZGVvRWwsIHZpZGVvLnZpZGVvKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9MZWF2ZSh2aWRlb0VsLCB2aWRlby52aWRlbylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GdWxsVmlkZW8odmlkZW8udmlkZW8pXCIgYXV0b3BsYXkgbG9vcD48L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsVmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtpZF09XCJkYXRhPy5pZFwiICN2aWRlb0VsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZGF0YT8uaWQgKyB2aWRlby52aWRlby5pZFwiIFtzcmNdPVwidmlkZW8udmlkZW8udXJsXCIgY2xhc3M9XCJoLTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXV0ZWRdPVwic3R5bGU/Lm11dGVWaWRlb3NcIiBbc2ltcG9WaWRlb0RpcmVjdGl2ZV09XCJzdHlsZT8uaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRyb2xzXT1cIiFzdHlsZT8uaG92ZXJQbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInN0eWxlPy5ob3ZlclBsYXkgJiYgb25WaWRlb0hvdmVyKHZpZGVvRWwsIHZpZGVvLnZpZGVvKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9MZWF2ZSh2aWRlb0VsLCB2aWRlby52aWRlbylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GdWxsVmlkZW8odmlkZW8udmlkZW8pXCI+PC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBwcm9kdWN0cy1jYXJkcyB3LTEwMCBwLTMgZC1mbGV4IGdhcC0zIG92ZXJmbG93LXgtYXV0byBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidmlkZW8/LnZpZGVvPy5wcm9kdWN0cz8ubGVuZ3RoID4gMCAmJiBjb250ZW50Py5kaXNwbGF5Py5zaG93UHJvZHVjdHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiB2aWRlby52aWRlby5wcm9kdWN0c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtYmFkZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInByb2R1Y3Q/Lml0ZW1JbWFnZXNbMF0uaW1nVXJsXCIgYWx0PVwiUmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2R1Y3QtaW1nXCIgLz48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJwcm9kdWN0LnJlZGlyZWN0aW9uVXJsXCIgY2xhc3M9XCJwcm9kdWN0LWxpbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWRldGFpbHMgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3twcm9kdWN0Lm5hbWUubGVuZ3RoID4gMTYgPyBwcm9kdWN0Lm5hbWUudHJpbSgpLnNsaWNlKDAsMTUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uLicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0Lm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1wcmljZSBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oK5e3twcm9kdWN0Py5wcmljZS5zZWxsaW5nUHJpY2V9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzcwMDA3MmMxNzcwMjcwMzk1NDMyZmF2b3VyaXRlLXN2Z3JlcG8tY29tLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMThweDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVJdGVtVG9GYXYoJGV2ZW50LCBwcm9kdWN0LCAnQUREJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXByb2R1Y3Qud2hpc2xpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy8zMDQxMTZjMTc3MDI3NDEzMjkxMGZhdm91cml0ZS1zdmdyZXBvLWNvbV8oMSkuc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOHB4O1wiICpuZ0lmPVwicHJvZHVjdC53aGlzbGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUl0ZW1Ub0ZhdigkZXZlbnQsIHByb2R1Y3QsICdSRU1PVkUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzY5NTE0NGMxNzcwMjcwNjY5NTQ2Y2FydC1zaG9wcGluZy1zdmdyZXBvLWNvbS5zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MTlweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnQUREJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZHVjdC5xdWFudGl0eSA8PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzk1MzQyYzE3NzAyNzUzODMzNDRzaG9wcGluZy1jYXJ0LWZpbGwtc3ZncmVwby1jb20uc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjE5cHhcIiAqbmdJZj1cInByb2R1Y3QucXVhbnRpdHkgPj0gMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnU1VCU1RSQUNUJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF2aWRlbz8udmlkZW8/LmlzVmlkZW9QbGF5aW5nICYmIHN0eWxlPy5ob3ZlclBsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogOXB4O3RvcDogNDclO2xlZnQ6IDQwJTtiYWNrZ3JvdW5kOiBsaWdodGdyZXk7Ym9yZGVyLXJhZGl1czogNTAlO2JhY2tncm91bmQ6IHJnYmEoMjQwLCAyNDAsIDI0MCwgMC42KTtiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvOTM1MDYwYzE3NzAyMTQwNzI3NTVwbGF5LXN2Z3JlcG8tY29tLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIlwiIHN0eWxlPVwid2lkdGg6MjVweDttYXJnaW4tbGVmdDoxLjVweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2Nyb2xsLWJ0biByaWdodCBwLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN0eWxlPy5kaXJlY3Rpb24gPT09ICdST1cnICYmIGlzT3ZlcmZsb3dpbmdcIiAoY2xpY2spPVwic2Nyb2xsUmlnaHQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImF0RW5kXCI+PG1hdC1pY29uPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZ3JpZFN0eWxlID09ICdTdHlsZTInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZGVvLWdyaWQtc2VjdGlvbiBoLTEwMFwiIFtjbGFzcy5yZW1vdmUtZ2FwXT1cInN0eWxlPy5yZW1vdmVHYXBzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnAtMF09XCJzdHlsZT8uZnVsbFdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWRlby1zZWN0aW9uXCIgKm5nRm9yPVwibGV0IHZpZGVvIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhXCIgc3R5bGU9XCJtaW4td2lkdGg6MzAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydwb3NpdGlvbi1yZWxhdGl2ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXInIDogIXZpZGVvPy52aWRlbz8uaXNWaWRlb1BsYXlpbmcgJiYgc3R5bGU/LmhvdmVyUGxheX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBsb2FkaW5nPVwibGF6eVwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiIFtpZF09XCJkYXRhPy5pZFwiICN2aWRlb0VsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImRhdGE/LmlkK3ZpZGVvLnZpZGVvLmlkXCIgW3NpbXBvT2JqZWN0UG9zaXRpb25dPVwidmlkZW8udmlkZW8ucG9zaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwidmlkZW8udmlkZW8udXJsXCIgbG9hZGluZz1cImxhenlcIiBjbGFzcz1cImgtMTAwXCIgW2NvbnRyb2xzXT1cIiFzdHlsZT8uaG92ZXJQbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9Ib3Zlcih2aWRlb0VsLHZpZGVvLnZpZGVvKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW211dGVkXT1cInN0eWxlPy5tdXRlVmlkZW9zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJzdHlsZT8uaG92ZXJQbGF5ICYmIG9uVmlkZW9MZWF2ZSh2aWRlb0VsLHZpZGVvLnZpZGVvKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GdWxsc2NyZWVuKHZpZGVvRWwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2N1cnNvci1wb2ludGVyJyA6IHN0eWxlPy5ob3ZlclBsYXl9XCI+PC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy8xNzI2NDhjMTc2OTY3MTY0NzE1OXBsYXktZmlsbC1zdmdyZXBvLWNvbS5zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGVcIiAqbmdJZj1cIiF2aWRlbz8udmlkZW8/LmlzVmlkZW9QbGF5aW5nICYmIHN0eWxlPy5ob3ZlclBsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MjAlO2hlaWdodDoyMCU7bWF4LXdpZHRoOjQwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmRldmlkZXI/LmRpc3BsYXlcIj5cclxuICAgICAgICA8c2ltcG8tc3ZnLWRpdmlkZXIgW2RpdmlkZXJUeXBlXT1cInN0eWxlPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXHJcbiAgICAgICAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICAgIDwvZGl2PlxyXG48L3NlY3Rpb24+Il19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tZ3JpZC1zZWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy92aWRlby1ncmlkLXNlY3Rpb24vdmlkZW8tZ3JpZC1zZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JuZXJzIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL2luZGV4XCI7XHJcbmltcG9ydCB7IFZpZGVvU3R5bGUsIElucHV0VGV4dE1vZGVsLCBMaXN0SXRlbU1vZGFsLCBTdHlsZXNNb2RlbCwgVmlkZW8gfSBmcm9tIFwiLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsXCI7XHJcbmltcG9ydCB7IENBUkRfU0laRSwgR1JJRF9TVFlMRSB9IGZyb20gXCIuLy4uLy4uL3N0eWxlcy90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWaWRlb0dyaWRTZWN0aW9uTW9kZWwge1xyXG4gICAgaWQ6IHN0cmluZyxcclxuICAgIHNlY3Rpb25UeXBlOiBzdHJpbmcsXHJcbiAgICBzZWN0aW9uTmFtZTogc3RyaW5nLFxyXG4gICAgY29udGVudDogVmlkZW9HcmlkQ29udGVudE1vZGFsO1xyXG4gICAgc3R5bGVzOiBWaWRlb0dyaWRTdHlsZXNNb2RlbDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZpZGVvR3JpZFN0eWxlc01vZGVsIGV4dGVuZHMgU3R5bGVzTW9kZWwge1xyXG4gICAgY29ybmVyczogQ29ybmVycztcclxuICAgIGltYWdlOiBWaWRlb1N0eWxlO1xyXG4gICAgcmVtb3ZlR2FwczogYm9vbGVhbjtcclxuICAgIGZ1bGxXaWR0aDogYm9vbGVhbjtcclxuICAgIHNpemU6IENBUkRfU0laRTtcclxuICAgIGRpcmVjdGlvbjogXCJST1dcIiB8IFwiQ09MVU1OXCIsXHJcbiAgICB0ZXh0UG9zaXRpb246IHN0cmluZyxcclxuICAgIGhvdmVyUGxheTogYm9vbGVhbixcclxuICAgIG11dGVWaWRlb3M6IGJvb2xlYW4sXHJcbiAgICBhdXRvUGxheTogYm9vbGVhblxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlkZW9HcmlkQ29udGVudE1vZGFsIHtcclxuICAgIGlucHV0VGV4dDogW0lucHV0VGV4dE1vZGVsXSxcclxuICAgIGxpc3RJdGVtOiBMaXN0SXRlbU1vZGFsPFZpZGVvR3JpZEl0ZW1Nb2RlbD4sXHJcbiAgICBkaXNwbGF5OiB7XHJcbiAgICAgICAgc2hvd1RleHQ6IGJvb2xlYW5cclxuICAgIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZpZGVvR3JpZEl0ZW1Nb2RlbCB7XHJcbiAgICB2aWRlbzogVmlkZW9cclxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tZ3JpZC1zZWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy92aWRlby1ncmlkLXNlY3Rpb24vdmlkZW8tZ3JpZC1zZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JuZXJzIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL2luZGV4XCI7XHJcbmltcG9ydCB7IFZpZGVvU3R5bGUsIElucHV0VGV4dE1vZGVsLCBMaXN0SXRlbU1vZGFsLCBTdHlsZXNNb2RlbCwgVmlkZW8gfSBmcm9tIFwiLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsXCI7XHJcbmltcG9ydCB7IENBUkRfU0laRSwgR1JJRF9TVFlMRSB9IGZyb20gXCIuLy4uLy4uL3N0eWxlcy90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWaWRlb0dyaWRTZWN0aW9uTW9kZWwge1xyXG4gICAgaWQ6IHN0cmluZyxcclxuICAgIHNlY3Rpb25UeXBlOiBzdHJpbmcsXHJcbiAgICBzZWN0aW9uTmFtZTogc3RyaW5nLFxyXG4gICAgY29udGVudDogVmlkZW9HcmlkQ29udGVudE1vZGFsO1xyXG4gICAgc3R5bGVzOiBWaWRlb0dyaWRTdHlsZXNNb2RlbDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZpZGVvR3JpZFN0eWxlc01vZGVsIGV4dGVuZHMgU3R5bGVzTW9kZWwge1xyXG4gICAgY29ybmVyczogQ29ybmVycztcclxuICAgIGltYWdlOiBWaWRlb1N0eWxlO1xyXG4gICAgcmVtb3ZlR2FwczogYm9vbGVhbjtcclxuICAgIGZ1bGxXaWR0aDogYm9vbGVhbjtcclxuICAgIHNpemU6IENBUkRfU0laRTtcclxuICAgIGRpcmVjdGlvbjogXCJST1dcIiB8IFwiQ09MVU1OXCIsXHJcbiAgICB0ZXh0UG9zaXRpb246IHN0cmluZyxcclxuICAgIGhvdmVyUGxheTogYm9vbGVhbixcclxuICAgIG11dGVWaWRlb3M6IGJvb2xlYW4sXHJcbiAgICBhdXRvUGxheTogYm9vbGVhblxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlkZW9HcmlkQ29udGVudE1vZGFsIHtcclxuICAgIGlucHV0VGV4dDogW0lucHV0VGV4dE1vZGVsXSxcclxuICAgIGxpc3RJdGVtOiBMaXN0SXRlbU1vZGFsPFZpZGVvR3JpZEl0ZW1Nb2RlbD4sXHJcbiAgICBkaXNwbGF5OiB7XHJcbiAgICAgICAgc2hvd1Byb2R1Y3RzOiBib29sZWFuLFxyXG4gICAgICAgIHNob3dUZXh0OiBib29sZWFuXHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBWaWRlb0dyaWRJdGVtTW9kZWwge1xyXG4gICAgdmlkZW86IFZpZGVvXHJcbn0iXX0=