@colijnit/product 257.1.11 → 257.1.13

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.
@@ -1,6 +1,7 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild } from '@angular/core';
3
3
  import { ProductConnectorService } from '../../service/product-connector.service';
4
+ import { combineLatest } from 'rxjs';
4
5
  import { StockAndDelivery } from '../../model/stock-and-delivery';
5
6
  import { SelectorType } from '../../enum/selector-type.enum';
6
7
  import { animate, state, style, transition, trigger } from '@angular/animations';
@@ -35,9 +36,18 @@ export class ProductPageComponent {
35
36
  if (this.selections.nativeElement) {
36
37
  this.selections.nativeElement.forceRenderImage();
37
38
  }
38
- }), this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), this._ione.controllerInitialized.subscribe((initialized) => {
39
- this.settingsLoaded = initialized;
40
- }), this.appEventService.onAnswersAvailable.subscribe((answers) => {
39
+ }), this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), this._pageLoadedSubscription = combineLatest([
40
+ this._ione.controllerInitialized,
41
+ this._ione.articleLoaded
42
+ ]).subscribe(([initialized, articleLoaded]) => {
43
+ if (initialized && articleLoaded) {
44
+ this.settingsLoaded = initialized;
45
+ }
46
+ }),
47
+ // this._ione.controllerInitialized.subscribe((initialized: boolean) => {
48
+ // this.settingsLoaded = initialized;
49
+ // }),
50
+ this.appEventService.onAnswersAvailable.subscribe((answers) => {
41
51
  if (answers && this.configurable) {
42
52
  this.showAddToCart = false;
43
53
  }
@@ -113,6 +123,7 @@ export class ProductPageComponent {
113
123
  if (this._initializedSub) {
114
124
  this._initializedSub.unsubscribe();
115
125
  }
126
+ this._pageLoadedSubscription.unsubscribe();
116
127
  this.configurator = undefined;
117
128
  this.selections = undefined;
118
129
  this.fullscreenbutton = undefined;
@@ -145,6 +156,7 @@ export class ProductPageComponent {
145
156
  this.article = article;
146
157
  if (this.article) {
147
158
  this.configurable = this.article.goodType === 'B' && (this.article.isConfigurable || this.article.isConfigurable === undefined);
159
+ // this.configurable = this.article.goodType === 'B';
148
160
  if (this.configurable) {
149
161
  this.showAddToCart = false;
150
162
  this.currentView = SelectorType.TwoD;
@@ -161,6 +173,7 @@ export class ProductPageComponent {
161
173
  });
162
174
  this._changeDetector.detectChanges();
163
175
  }
176
+ this._ione.articleLoaded.next(true);
164
177
  });
165
178
  }
166
179
  }));
@@ -177,37 +190,37 @@ export class ProductPageComponent {
177
190
  ProductPageComponent.decorators = [
178
191
  { type: Component, args: [{
179
192
  selector: 'app-product-page',
180
- template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded && this.configurable\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n (onAnswersAvailable)=\"appEventService.onAnswersAvailable.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [createFrozenArticle]=\"createFrozenArticle\"\r\n [configuring]=\"configuring\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n (showRelatedPopup)=\"handlePopUpChange($event)\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n [label]=\"'RELATED_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"4\"\r\n [isSmallModus]=\"false\"\r\n [label]=\"'ALTERNATIVE_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showRelatedProductsPopup\">\r\n <co-product-dialog\r\n [mainArticle]=\"article\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n (closeRelatedPopup)=\"handlePopUpChange($event)\"\r\n >\r\n </co-product-dialog>\r\n\r\n<!-- <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"-->\r\n<!-- [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>-->\r\n </div>\r\n\r\n\r\n </div>\r\n</ng-container>\r\n",
193
+ template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded && this.configurable\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n (onAnswersAvailable)=\"appEventService.onAnswersAvailable.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [createFrozenArticle]=\"createFrozenArticle\"\r\n [configuring]=\"configuring\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n (showRelatedPopup)=\"handlePopUpChange($event)\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\" *ngIf=\"article\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n [label]=\"'RELATED_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"4\"\r\n [isSmallModus]=\"false\"\r\n [label]=\"'ALTERNATIVE_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showRelatedProductsPopup\">\r\n <co-product-dialog\r\n [mainArticle]=\"article\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n (closeRelatedPopup)=\"handlePopUpChange($event)\"\r\n >\r\n </co-product-dialog>\r\n\r\n<!-- <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"-->\r\n<!-- [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>-->\r\n </div>\r\n\r\n\r\n </div>\r\n</ng-container>\r\n",
181
194
  animations: [
182
195
  trigger('toggleFullScreen', [
183
196
  state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
184
197
  state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
185
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
198
+ transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))
186
199
  ]),
187
200
  trigger('toggleTopLeft', [
188
201
  state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
189
202
  state('halfscreen', style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
190
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
203
+ transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))
191
204
  ]),
192
205
  trigger('toggleTopRight', [
193
206
  state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
194
207
  state('halfscreen', style({ 'position': '*', 'top': '*', 'right': '*' })),
195
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
208
+ transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))
196
209
  ]),
197
210
  trigger('toggleFullScreenRight', [
198
211
  state('fullscreen', style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
199
212
  state('halfscreen', style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
200
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),
213
+ transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))
201
214
  ]),
202
215
  trigger('toggleVisibilityByState', [
203
216
  state('hide', style({ 'opacity': '0', 'display': 'none' })),
204
217
  state('show', style({ 'display': 'block', 'opacity': '1' })),
205
- transition('hide <=> show', animate('200ms 100ms ease-in-out')),
218
+ transition('hide <=> show', animate('200ms 100ms ease-in-out'))
206
219
  ]),
207
220
  trigger('toggleVisibility', [
208
221
  state('void', style({ 'opacity': '0' })),
209
222
  state('*', style({ 'opacity': '1' })),
210
- transition('void => *', animate('200ms ease-in-out')),
223
+ transition('void => *', animate('200ms ease-in-out'))
211
224
  ])
212
225
  ],
213
226
  styles: [".page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:1400px;padding:0 15px;margin:0 auto}.page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.page-wrapper-content:first-child{margin-top:0}.page-wrapper-content.no-top-margin{margin-top:0}.page-wrapper-left{display:flex;width:55%;flex-direction:column}.page-wrapper-right{display:flex;width:45%;flex-direction:column}.page-wrapper-full{display:flex;width:100%;flex-direction:column}.page-wrapper-66{display:flex;width:60%;flex-direction:column}.page-wrapper-33{display:flex;width:40%;flex-direction:column}.threed-selections{display:none}.threed-selections.show-selections{display:block}.threed-selections ::ng-deep .rp-lite-selector .rp-answers-slideout ::ng-deep co-slideout{width:480px;z-index:3}.threed-selections ::ng-deep .co-summary-line{cursor:pointer}.product-action-buttons{position:relative}.product-action-buttons.full-screen{z-index:10}.product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.product-page-block-image .threed-configurator{border:1px solid #efefef}.product-page-block-image .threed-configurator .layer .viewer canvas{height:100%;width:100%}.product-page-block-image .threed-configurator ::ng-deep .rp-element-toolbar{top:30px}.product-page-block-image app-image-carousel.show-animated,.product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.product-page-block-description{grid-column:7/12;grid-row:1/1}.product-page-block-additional{width:100%}.product-page-block-additional-description{width:100%}.product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.product-page-block-price.full{grid-column:1/5}.product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74B77F}.addtocart-reserved{grid-column:1/3;grid-row:3/3}.product-page-block-stock{grid-column:1/3;grid-row:4/4}.product-page-block-delivery{grid-column:3/5;grid-row:4/4}::ng-deep co-scroll-container{overflow:hidden;position:relative}::ng-deep co-scroll-container .content-wrapper{padding:0}::ng-deep co-scroll-container .scroll-layer{left:0;top:0}::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.product-page-block-variants{margin:20px 0 0}.product-page-block-variants ::ng-deep app-product-related>div{display:flex;grid-gap:15px;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep app-header h3{font-size:14px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container{width:320px;max-width:100%;padding:0 16px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller{width:26px;height:26px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll{left:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll{right:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.product-page-block-variants ::ng-deep co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.product-page-block-variants ::ng-deep co-tile.small:hover{border-color:#22313c}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper{padding:0}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-top{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image{height:40px!important;padding:5px;margin-bottom:10px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-bottom{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-extra-bottom{display:none}.product-page-block-alternatives ::ng-deep .article-wrapper{margin:0 20px 0 0}.product-page-block-alternatives ::ng-deep .article-wrapper:last-child{margin:0}.product-page-block-alternatives ::ng-deep co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;border-bottom-color:#f6f5f4;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.product-page-block-alternatives ::ng-deep co-tile:hover{box-shadow:none;border-color:#f6f5f4}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper .tile-bottom{margin:0}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto 10px;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;z-index:-1;transition:all .2s ease}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom{transition:all .2s ease;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button co-icon{width:32px;height:32px;margin:0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main{padding:0 10px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:bold;margin:0 0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:bold;color:#2b60a7}.product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.product-page-block-properties{grid-column:7/10;grid-row:3/3}.product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.product-page-block-documents{grid-column:2/6;grid-row:5/5}.product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.default-padding{padding-top:20px;padding-bottom:20px}.m-padding{padding-top:15px;padding-bottom:15px}.s-padding{padding-top:5px;padding-bottom:5px}.page-wrapper{max-width:650px}.page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.page-wrapper .page-wrapper-content .page-wrapper-left{width:100%}.page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){[class*=-padding]{padding-left:0!important;padding-right:0!important}.product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"]
@@ -233,4 +246,4 @@ ProductPageComponent.propDecorators = {
233
246
  showRelatedProductsPopup: [{ type: Input }],
234
247
  openStockEvent: [{ type: Output }]
235
248
  };
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0LXBhZ2UvcHJvZHVjdC1wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUFFLFlBQVksRUFDeEIsS0FBSyxFQUVHLE1BQU0sRUFDZCxTQUFTLEVBQ1QsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQTBDMUUsTUFBTSxPQUFPLG9CQUFvQjtJQTBHL0IsWUFBb0IsS0FBOEIsRUFDOUIsU0FBb0IsRUFDcEIsZUFBa0MsRUFDbkMsU0FBMkIsRUFDM0IsZUFBdUMsRUFDdkMsZUFBb0M7UUFMbkMsVUFBSyxHQUFMLEtBQUssQ0FBeUI7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Is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Z2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2R1Y3RDb25uZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9wcm9kdWN0LWNvbm5lY3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IEFydGljbGVGdWxsT2JqZWN0IH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mdWxsLW9iamVjdCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0b2NrQW5kRGVsaXZlcnkgfSBmcm9tICcuLi8uLi9tb2RlbC9zdG9jay1hbmQtZGVsaXZlcnknO1xuaW1wb3J0IHsgU2VsZWN0b3JUeXBlIH0gZnJvbSAnLi4vLi4vZW51bS9zZWxlY3Rvci10eXBlLmVudW0nO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBJY29uRW51bSB9IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcbmltcG9ydCB7IEljb25DYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9wcm9kdWN0LXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdEV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHJvZHVjdC1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IERlbGl2ZXJ5UHJvZ25vc2lzIH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktcHJvZ25vc2lzJztcbmltcG9ydCB7RXh0ZXJuYWxTb3VyY2V9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2V4dGVybmFsLXNvdXJjZS5ibyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCd0b2dnbGVGdWxsU2NyZWVuJywgW1xuICAgICAgc3RhdGUoJ2Z1bGxzY3JlZW4nLCBzdHlsZSh7J3Bvc2l0aW9uJzogJ2ZpeGVkJywgJ3RvcCc6ICcwJywgJ2xlZnQnOiAnMCcsICd3aWR0aCc6ICcxMDAlJywgJ2hlaWdodCc6ICcxMDAlJ30pKSxcbiAgICAgIHN0YXRlKCdoYWxmc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICcqJywgJ3RvcCc6ICcqJywgJ2xlZnQnOiAnKicsICd3aWR0aCc6ICcqJywgJ2hlaWdodCc6ICcqJ30pKSxcbiAgICAgIHRyYW5zaXRpb24oJ2hhbGZzY3JlZW4gPD0+IGZ1bGxzY3JlZW4nLCBhbmltYXRlKCcyMDBtcyBlYXNlLWluLW91dCcpKSxcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCd0b2dnbGVUb3BMZWZ0JywgW1xuICAgICAgc3RhdGUoJ2Z1bGxzY3JlZW4nLCBzdHlsZSh7J3Bvc2l0aW9uJzogJ2ZpeGVkJywgJ3RvcCc6ICcwJywgJ2xlZnQnOiAnMCd9KSksXG4gICAgICBzdGF0ZSgnaGFsZnNjcmVlbicsIHN0eWxlKHsncG9zaXRpb24nOiAnYWJzb2x1dGUnLCAndG9wJzogJyonLCAnbGVmdCc6ICcqJ30pKSxcbiAgICAgIHRyYW5zaXRpb24oJ2hhbGZzY3JlZW4gPD0+IGZ1bGxzY3JlZW4nLCBhbmltYXRlKCcyMDBtcyBlYXNlLWluLW91dCcpKSxcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCd0b2dnbGVUb3BSaWdodCcsIFtcbiAgICAgIHN0YXRlKCdmdWxsc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICdmaXhlZCcsICd0b3AnOiAnMCcsICdyaWdodCc6ICcwJ30pKSxcbiAgICAgIHN0YXRlKCdoYWxmc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICcqJywgJ3RvcCc6ICcqJywgJ3JpZ2h0JzogJyonfSkpLFxuICAgICAgdHJhbnNpdGlvbignaGFsZnNjcmVlbiA8PT4gZnVsbHNjcmVlbicsIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4tb3V0JykpLFxuICAgIF0pLFxuICAgIHRyaWdnZXIoJ3RvZ2dsZUZ1bGxTY3JlZW5SaWdodCcsIFtcbiAgICAgIHN0YXRlKCdmdWxsc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICdmaXhlZCcsICd3aWR0aCc6ICc0MDBweCcsICd0b3AnOiAnMCcsICdyaWdodCc6ICcwJ30pKSxcbiAgICAgIHN0YXRlKCdoYWxmc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICcqJywgJ3dpZHRoJzogJyonLCAndG9wJzogJyonLCAncmlnaHQnOiAnKid9KSksXG4gICAgICB0cmFuc2l0aW9uKCdoYWxmc2NyZWVuIDw9PiBmdWxsc2NyZWVuJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1pbi1vdXQnKSksXG4gICAgXSksXG4gICAgdHJpZ2dlcigndG9nZ2xlVmlzaWJpbGl0eUJ5U3RhdGUnLCBbXG4gICAgICBzdGF0ZSgnaGlkZScsIHN0eWxlKHsnb3BhY2l0eSc6ICcwJywgJ2Rpc3BsYXknOiAnbm9uZSd9KSksXG4gICAgICBzdGF0ZSgnc2hvdycsIHN0eWxlKHsnZGlzcGxheSc6ICdibG9jaycsICdvcGFjaXR5JzogJzEnfSkpLFxuICAgICAgdHJhbnNpdGlvbignaGlkZSA8PT4gc2hvdycsIGFuaW1hdGUoJzIwMG1zIDEwMG1zIGVhc2UtaW4tb3V0JykpLFxuICAgIF0pLFxuICAgIHRyaWdnZXIoJ3RvZ2dsZVZpc2liaWxpdHknLCBbXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHsnb3BhY2l0eSc6ICcwJ30pKSxcbiAgICAgIHN0YXRlKCcqJywgc3R5bGUoeydvcGFjaXR5JzogJzEnfSkpLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1pbi1vdXQnKSksXG4gICAgXSlcbiAgXSxcblxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0UGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IGljb246IHR5cGVvZiBJY29uRW51bSA9IEljb25FbnVtO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpZ3VyYXRvcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgY29uZmlndXJhdG9yOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdGlvbnMnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIHNlbGVjdGlvbnM6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnZnVsbHNjcmVlbmJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgZnVsbHNjcmVlbmJ1dHRvbjogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNrdSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5jb25maWd1cmluZykge1xuICAgICAgICB0aGlzLnNob3czRCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZ1bGxTY3JlZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb25maWd1cmluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9za3UgPSB2YWx1ZTtcbiAgICAgIHRoaXMuX2dldEFydGljbGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNrdSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9za3U7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNldHRpbmdzKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuX3NldHRpbmdzID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9zZXR0aW5ncyA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBleHRlcm5hbFNvdXJjZTogRXh0ZXJuYWxTb3VyY2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNyZWF0ZUZyb3plbkFydGljbGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc1JldHVybjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93UmVsYXRlZFByb2R1Y3RzUG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9wZW5TdG9ja0V2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIGdldCBzZXR0aW5ncygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9zZXR0aW5ncztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZnVsbFNjcmVlbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Z1bGxTY3JlZW4gPSB2YWx1ZTtcbiAgICB0aGlzLmZ1bGxzY3JlZW5BbmltYXRpb25FbmQgPSB0cnVlO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAvLyAgIHRoaXMuZnVsbHNjcmVlbkFuaW1hdGlvbkVuZCA9IHRydWU7XG4gICAgLy8gfSwgNDAwKVxuICB9XG5cbiAgcHVibGljIGdldCBmdWxsU2NyZWVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mdWxsU2NyZWVuO1xuICB9XG5cbiAgcHVibGljIGdldCBmdWxsU2NyZWVuSWNvbigpOiBJY29uRW51bSB7XG4gICAgcmV0dXJuIHRoaXMuZnVsbFNjcmVlbiA/IHRoaXMuaWNvbi5Ob3JtYWxTY3JlZW4gOiB0aGlzLmljb24uRnVsbFNjcmVlbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY3VycmVudFZpZXcodmFsdWU6IFNlbGVjdG9yVHlwZSkge1xuICAgIHRoaXMuX2N1cnJlbnRWaWV3ID0gdmFsdWU7XG4gICAgdGhpcy5zaG93MkQgPSB0aGlzLl9jdXJyZW50VmlldyA9PT0gU2VsZWN0b3JUeXBlLlR3b0Q7XG4gICAgdGhpcy5zaG93M0QgPSB0aGlzLl9jdXJyZW50VmlldyA9PT0gU2VsZWN0b3JUeXBlLlRocmVlRDtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRWaWV3KCk6IFNlbGVjdG9yVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRWaWV3O1xuICB9XG5cbiAgcHVibGljIGFydGljbGU6IEFydGljbGVGdWxsT2JqZWN0O1xuICBwdWJsaWMgc3RvY2tBbmREZWxpdmVyeTogU3RvY2tBbmREZWxpdmVyeTtcbiAgcHVibGljIGNvbmZpZ3VyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgdGhyZWVEOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzZWxlY3RvclR5cGU6IFNlbGVjdG9yVHlwZTtcbiAgcHVibGljIHNob3cyRDogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBzaG93M0Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGNvbmZpZ3VyaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93QWRkVG9DYXJ0OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBmdWxsc2NyZWVuQW5pbWF0aW9uRW5kOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzZXR0aW5nc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9za3U6IHN0cmluZztcbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWRTdWI6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfZnVsbFNjcmVlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9jdXJyZW50VmlldzogU2VsZWN0b3JUeXBlO1xuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9zZXR0aW5nczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2lvbmU6IFByb2R1Y3RDb25uZWN0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHB1YmxpYyBpY29uQ2FjaGU6IEljb25DYWNoZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHB1YmxpYyBzZXR0aW5nc1NlcnZpY2U6IFByb2R1Y3RTZXR0aW5nc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHB1YmxpYyBhcHBFdmVudFNlcnZpY2U6IFByb2R1Y3RFdmVudFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5fc3Vicy5wdXNoKFxuICAgICAgdGhpcy5hcHBFdmVudFNlcnZpY2Uub25Gb3JjZVJlbmRlckltYWdlLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25zLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbnMubmF0aXZlRWxlbWVudC5mb3JjZVJlbmRlckltYWdlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5nc0xvYWRlZC5zdWJzY3JpYmUobG9hZGVkID0+IHRoaXMuX2hhbmRsZVNldHRpbmdzTG9hZGVkKGxvYWRlZCkpLFxuICAgICAgICB0aGlzLl9pb25lLmNvbnRyb2xsZXJJbml0aWFsaXplZC5zdWJzY3JpYmUoKGluaXRpYWxpemVkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NMb2FkZWQgPSBpbml0aWFsaXplZDtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5hcHBFdmVudFNlcnZpY2Uub25BbnN3ZXJzQXZhaWxhYmxlLnN1YnNjcmliZSgoYW5zd2VycykgPT4ge1xuICAgICAgICBpZiAoYW5zd2VycyAmJiB0aGlzLmNvbmZpZ3VyYWJsZSkge1xuICAgICAgICAgIHRoaXMuc2hvd0FkZFRvQ2FydCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2hvd0FkZFRvQ2FydCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuX3NldHRpbmdzKSB7XG4gICAgICB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncyA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmNyZWF0ZVNldHRpbmdzRnJvbU9iamVjdCh0aGlzLl9zZXR0aW5ncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NldHRpbmdzID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3M7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWRTdWIpIHtcbiAgICAgIHRoaXMuX2luaXRpYWxpemVkU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuY29uZmlndXJhdG9yID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc2VsZWN0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmZ1bGxzY3JlZW5idXR0b24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0SW5zdGFuY2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmRldGFpbCkge1xuICAgICAgdGhpcy5faW9uZS5zZXRJbnN0YW5jZShldmVudC5kZXRhaWwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTdGFydENvbmZpZ3VyYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWd1cmluZyA9IHRydWU7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHNob3dGdWxsU2NyZWVuKCk6IHZvaWQge1xuICAgIHRoaXMuZnVsbFNjcmVlbiA9ICF0aGlzLmZ1bGxTY3JlZW47XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTZXR0aW5nc0xvYWRlZChsb2FkZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAobG9hZGVkKSB7XG4gICAgICB0aGlzLl9pb25lLmluaXRDb25uZWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0QXJ0aWNsZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWRTdWIpIHtcbiAgICAgIHRoaXMuX2luaXRpYWxpemVkU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuX2luaXRpYWxpemVkU3ViID0gdGhpcy5faW9uZS5jb250cm9sbGVySW5pdGlhbGl6ZWQuc3Vic2NyaWJlKGFzeW5jIChpbml0OiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoaW5pdCkge1xuICAgICAgICB0aGlzLl9pb25lLmdldEZ1bGxBcnRpY2xlKHRoaXMuX3NrdSkudGhlbigoYXJ0aWNsZTogQXJ0aWNsZUZ1bGxPYmplY3QpID0+IHtcbiAgICAgICAgICB0aGlzLmFydGljbGUgPSBhcnRpY2xlO1xuICAgICAgICAgIGlmICh0aGlzLmFydGljbGUpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhYmxlID0gdGhpcy5hcnRpY2xlLmdvb2RUeXBlID09PSAnQicgJiYgKHRoaXMuYXJ0aWNsZS5pc0NvbmZpZ3VyYWJsZSB8fCB0aGlzLmFydGljbGUuaXNDb25maWd1cmFibGUgPT09IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWd1cmFibGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5zaG93QWRkVG9DYXJ0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXcgPSBTZWxlY3RvclR5cGUuVHdvRDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0FkZFRvQ2FydCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRocmVlRCA9IHRoaXMuYXJ0aWNsZS5pczNEO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RvclR5cGUgPSB0aGlzLmFydGljbGUuc2VsZWN0b3JUeXBlQ3VzdG9tZXI7XG4gICAgICAgICAgICB0aGlzLl9pb25lLmdldERlbGl2ZXJ5UHJvZ25vc2lzKHRoaXMuYXJ0aWNsZS5nb29kSWQpLnRoZW4oKHN0b2NrSW5mbzogRGVsaXZlcnlQcm9nbm9zaXMpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc3RvY2tBbmREZWxpdmVyeTogRGVsaXZlcnlQcm9nbm9zaXMgPSBzdG9ja0luZm87XG4gICAgICAgICAgICAgIHRoaXMuc3RvY2tBbmREZWxpdmVyeSA9IG5ldyBTdG9ja0FuZERlbGl2ZXJ5KDAsIHN0b2NrQW5kRGVsaXZlcnkucmV0dXJuVmFsdWUgPyBzdG9ja0FuZERlbGl2ZXJ5LnJldHVyblZhbHVlIDogJyAnKTtcbiAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNob3dSZWxhdGVkUHJvZHVjdHNQb3B1cCA9IGZhbHNlO1xuICB9XG4gIHB1YmxpYyBvcGVuU3RvY2soKSB7XG4gICAgdGhpcy5vcGVuU3RvY2tFdmVudC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlUG9wVXBDaGFuZ2UoZXZlbnQ6IGJvb2xlYW4pe1xuICAgIHRoaXMuc2hvd1JlbGF0ZWRQcm9kdWN0c1BvcHVwID0gZXZlbnQ7XG4gIH1cbn1cbiJdfQ==
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0LXBhZ2UvcHJvZHVjdC1wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFaEYsT0FBTyxFQUFDLGFBQWEsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUEwQ3hFLE1BQU0sT0FBTyxvQkFBb0I7SUEyRy9CLFlBQW9CLEtBQThCLEVBQ3hDLFNBQW9CLEVBQ3BCLGVBQWtDLEVBQ25DLFNBQTJCLEVBQzNCLGVBQXVDLEVBQ3ZDLGVBQW9DO1FBTHpCLFVBQUssR0FBTCxLQUFLLENBQXlCO1FBQ3hDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsb0JBQWUsR0FBZixlQUFl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a0JYLGdCQUFnQjtZQUNoQixzQkFBc0I7WUFDdEIsbUJBQW1COzs7MkJBNkN4QixTQUFTLFNBQUMsY0FBYyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzt5QkFHNUMsU0FBUyxTQUFDLFlBQVksRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7K0JBRzFDLFNBQVMsU0FBQyxrQkFBa0IsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7a0JBR2hELEtBQUs7dUJBa0JMLEtBQUs7NkJBV0wsS0FBSztrQ0FHTCxLQUFLO3VCQUdMLEtBQUs7dUNBR0wsS0FBSzs2QkFHTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Byb2R1Y3RDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3Byb2R1Y3QtY29ubmVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtBcnRpY2xlRnVsbE9iamVjdH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mdWxsLW9iamVjdCc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N0b2NrQW5kRGVsaXZlcnl9IGZyb20gJy4uLy4uL21vZGVsL3N0b2NrLWFuZC1kZWxpdmVyeSc7XG5pbXBvcnQge1NlbGVjdG9yVHlwZX0gZnJvbSAnLi4vLi4vZW51bS9zZWxlY3Rvci10eXBlLmVudW0nO1xuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtJY29uRW51bX0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XG5pbXBvcnQge1Byb2R1Y3RTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHJvZHVjdC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7UHJvZHVjdEV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9wcm9kdWN0LWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtEZWxpdmVyeVByb2dub3Npc30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktcHJvZ25vc2lzJztcbmltcG9ydCB7RXh0ZXJuYWxTb3VyY2V9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2V4dGVybmFsLXNvdXJjZS5ibyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCd0b2dnbGVGdWxsU2NyZWVuJywgW1xuICAgICAgc3RhdGUoJ2Z1bGxzY3JlZW4nLCBzdHlsZSh7J3Bvc2l0aW9uJzogJ2ZpeGVkJywgJ3RvcCc6ICcwJywgJ2xlZnQnOiAnMCcsICd3aWR0aCc6ICcxMDAlJywgJ2hlaWdodCc6ICcxMDAlJ30pKSxcbiAgICAgIHN0YXRlKCdoYWxmc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICcqJywgJ3RvcCc6ICcqJywgJ2xlZnQnOiAnKicsICd3aWR0aCc6ICcqJywgJ2hlaWdodCc6ICcqJ30pKSxcbiAgICAgIHRyYW5zaXRpb24oJ2hhbGZzY3JlZW4gPD0+IGZ1bGxzY3JlZW4nLCBhbmltYXRlKCcyMDBtcyBlYXNlLWluLW91dCcpKVxuICAgIF0pLFxuICAgIHRyaWdnZXIoJ3RvZ2dsZVRvcExlZnQnLCBbXG4gICAgICBzdGF0ZSgnZnVsbHNjcmVlbicsIHN0eWxlKHsncG9zaXRpb24nOiAnZml4ZWQnLCAndG9wJzogJzAnLCAnbGVmdCc6ICcwJ30pKSxcbiAgICAgIHN0YXRlKCdoYWxmc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICdhYnNvbHV0ZScsICd0b3AnOiAnKicsICdsZWZ0JzogJyonfSkpLFxuICAgICAgdHJhbnNpdGlvbignaGFsZnNjcmVlbiA8PT4gZnVsbHNjcmVlbicsIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4tb3V0JykpXG4gICAgXSksXG4gICAgdHJpZ2dlcigndG9nZ2xlVG9wUmlnaHQnLCBbXG4gICAgICBzdGF0ZSgnZnVsbHNjcmVlbicsIHN0eWxlKHsncG9zaXRpb24nOiAnZml4ZWQnLCAndG9wJzogJzAnLCAncmlnaHQnOiAnMCd9KSksXG4gICAgICBzdGF0ZSgnaGFsZnNjcmVlbicsIHN0eWxlKHsncG9zaXRpb24nOiAnKicsICd0b3AnOiAnKicsICdyaWdodCc6ICcqJ30pKSxcbiAgICAgIHRyYW5zaXRpb24oJ2hhbGZzY3JlZW4gPD0+IGZ1bGxzY3JlZW4nLCBhbmltYXRlKCcyMDBtcyBlYXNlLWluLW91dCcpKVxuICAgIF0pLFxuICAgIHRyaWdnZXIoJ3RvZ2dsZUZ1bGxTY3JlZW5SaWdodCcsIFtcbiAgICAgIHN0YXRlKCdmdWxsc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICdmaXhlZCcsICd3aWR0aCc6ICc0MDBweCcsICd0b3AnOiAnMCcsICdyaWdodCc6ICcwJ30pKSxcbiAgICAgIHN0YXRlKCdoYWxmc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICcqJywgJ3dpZHRoJzogJyonLCAndG9wJzogJyonLCAncmlnaHQnOiAnKid9KSksXG4gICAgICB0cmFuc2l0aW9uKCdoYWxmc2NyZWVuIDw9PiBmdWxsc2NyZWVuJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1pbi1vdXQnKSlcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCd0b2dnbGVWaXNpYmlsaXR5QnlTdGF0ZScsIFtcbiAgICAgIHN0YXRlKCdoaWRlJywgc3R5bGUoeydvcGFjaXR5JzogJzAnLCAnZGlzcGxheSc6ICdub25lJ30pKSxcbiAgICAgIHN0YXRlKCdzaG93Jywgc3R5bGUoeydkaXNwbGF5JzogJ2Jsb2NrJywgJ29wYWNpdHknOiAnMSd9KSksXG4gICAgICB0cmFuc2l0aW9uKCdoaWRlIDw9PiBzaG93JywgYW5pbWF0ZSgnMjAwbXMgMTAwbXMgZWFzZS1pbi1vdXQnKSlcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCd0b2dnbGVWaXNpYmlsaXR5JywgW1xuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7J29wYWNpdHknOiAnMCd9KSksXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHsnb3BhY2l0eSc6ICcxJ30pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4tb3V0JykpXG4gICAgXSlcbiAgXVxuXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBwdWJsaWMgcmVhZG9ubHkgaWNvbjogdHlwZW9mIEljb25FbnVtID0gSWNvbkVudW07XG5cbiAgQFZpZXdDaGlsZCgnY29uZmlndXJhdG9yJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICBwdWJsaWMgY29uZmlndXJhdG9yOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdGlvbnMnLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gIHB1YmxpYyBzZWxlY3Rpb25zOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ2Z1bGxzY3JlZW5idXR0b24nLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gIHB1YmxpYyBmdWxsc2NyZWVuYnV0dG9uOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2t1KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZ3VyaW5nKSB7XG4gICAgICAgIHRoaXMuc2hvdzNEID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZnVsbFNjcmVlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbmZpZ3VyaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3NrdSA9IHZhbHVlO1xuICAgICAgdGhpcy5fZ2V0QXJ0aWNsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2t1KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NrdTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2V0dGluZ3ModmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3NldHRpbmdzID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGV4dGVybmFsU291cmNlOiBFeHRlcm5hbFNvdXJjZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY3JlYXRlRnJvemVuQXJ0aWNsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzUmV0dXJuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dSZWxhdGVkUHJvZHVjdHNQb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3BlblN0b2NrRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwdWJsaWMgZ2V0IHNldHRpbmdzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzO1xuICB9XG5cbiAgcHVibGljIHNldCBmdWxsU2NyZWVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZnVsbFNjcmVlbiA9IHZhbHVlO1xuICAgIHRoaXMuZnVsbHNjcmVlbkFuaW1hdGlvbkVuZCA9IHRydWU7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIC8vICAgdGhpcy5mdWxsc2NyZWVuQW5pbWF0aW9uRW5kID0gdHJ1ZTtcbiAgICAvLyB9LCA0MDApXG4gIH1cblxuICBwdWJsaWMgZ2V0IGZ1bGxTY3JlZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Z1bGxTY3JlZW47XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZ1bGxTY3JlZW5JY29uKCk6IEljb25FbnVtIHtcbiAgICByZXR1cm4gdGhpcy5mdWxsU2NyZWVuID8gdGhpcy5pY29uLk5vcm1hbFNjcmVlbiA6IHRoaXMuaWNvbi5GdWxsU2NyZWVuO1xuICB9XG5cbiAgcHVibGljIHNldCBjdXJyZW50Vmlldyh2YWx1ZTogU2VsZWN0b3JUeXBlKSB7XG4gICAgdGhpcy5fY3VycmVudFZpZXcgPSB2YWx1ZTtcbiAgICB0aGlzLnNob3cyRCA9IHRoaXMuX2N1cnJlbnRWaWV3ID09PSBTZWxlY3RvclR5cGUuVHdvRDtcbiAgICB0aGlzLnNob3czRCA9IHRoaXMuX2N1cnJlbnRWaWV3ID09PSBTZWxlY3RvclR5cGUuVGhyZWVEO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudFZpZXcoKTogU2VsZWN0b3JUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFZpZXc7XG4gIH1cblxuICBwdWJsaWMgYXJ0aWNsZTogQXJ0aWNsZUZ1bGxPYmplY3Q7XG4gIHB1YmxpYyBzdG9ja0FuZERlbGl2ZXJ5OiBTdG9ja0FuZERlbGl2ZXJ5O1xuICBwdWJsaWMgY29uZmlndXJhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyB0aHJlZUQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNlbGVjdG9yVHlwZTogU2VsZWN0b3JUeXBlO1xuICBwdWJsaWMgc2hvdzJEOiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIHNob3czRDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY29uZmlndXJpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNob3dBZGRUb0NhcnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGZ1bGxzY3JlZW5BbmltYXRpb25FbmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNldHRpbmdzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3NrdTogc3RyaW5nO1xuICBwcml2YXRlIF9pbml0aWFsaXplZFN1YjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9mdWxsU2NyZWVuOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2N1cnJlbnRWaWV3OiBTZWxlY3RvclR5cGU7XG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgX3NldHRpbmdzOiBhbnk7XG4gIHByaXZhdGUgX3BhZ2VMb2FkZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pb25lOiBQcm9kdWN0Q29ubmVjdG9yU2VydmljZSxcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgaWNvbkNhY2hlOiBJY29uQ2FjaGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzZXR0aW5nc1NlcnZpY2U6IFByb2R1Y3RTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHVibGljIGFwcEV2ZW50U2VydmljZTogUHJvZHVjdEV2ZW50U2VydmljZVxuICApIHtcbiAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICB0aGlzLmFwcEV2ZW50U2VydmljZS5vbkZvcmNlUmVuZGVySW1hZ2Uuc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbnMubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9ucy5uYXRpdmVFbGVtZW50LmZvcmNlUmVuZGVySW1hZ2UoKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5nc0xvYWRlZC5zdWJzY3JpYmUobG9hZGVkID0+IHRoaXMuX2hhbmRsZVNldHRpbmdzTG9hZGVkKGxvYWRlZCkpLFxuICAgICAgdGhpcy5fcGFnZUxvYWRlZFN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLl9pb25lLmNvbnRyb2xsZXJJbml0aWFsaXplZCxcbiAgICAgICAgdGhpcy5faW9uZS5hcnRpY2xlTG9hZGVkXG4gICAgICBdKS5zdWJzY3JpYmUoKFtpbml0aWFsaXplZCwgYXJ0aWNsZUxvYWRlZF0pID0+IHtcbiAgICAgICAgaWYgKGluaXRpYWxpemVkICYmIGFydGljbGVMb2FkZWQpIHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzTG9hZGVkID0gaW5pdGlhbGl6ZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuXG4gICAgICAvLyB0aGlzLl9pb25lLmNvbnRyb2xsZXJJbml0aWFsaXplZC5zdWJzY3JpYmUoKGluaXRpYWxpemVkOiBib29sZWFuKSA9PiB7XG4gICAgICAvLyAgIHRoaXMuc2V0dGluZ3NMb2FkZWQgPSBpbml0aWFsaXplZDtcbiAgICAgIC8vIH0pLFxuXG4gICAgICB0aGlzLmFwcEV2ZW50U2VydmljZS5vbkFuc3dlcnNBdmFpbGFibGUuc3Vic2NyaWJlKChhbnN3ZXJzKSA9PiB7XG4gICAgICAgIGlmIChhbnN3ZXJzICYmIHRoaXMuY29uZmlndXJhYmxlKSB7XG4gICAgICAgICAgdGhpcy5zaG93QWRkVG9DYXJ0ID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zaG93QWRkVG9DYXJ0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5fc2V0dGluZ3MpIHtcbiAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UuY3JlYXRlU2V0dGluZ3NGcm9tT2JqZWN0KHRoaXMuX3NldHRpbmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncztcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLl9pbml0aWFsaXplZFN1Yikge1xuICAgICAgdGhpcy5faW5pdGlhbGl6ZWRTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5fcGFnZUxvYWRlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY29uZmlndXJhdG9yID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc2VsZWN0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmZ1bGxzY3JlZW5idXR0b24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0SW5zdGFuY2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmRldGFpbCkge1xuICAgICAgdGhpcy5faW9uZS5zZXRJbnN0YW5jZShldmVudC5kZXRhaWwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTdGFydENvbmZpZ3VyYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWd1cmluZyA9IHRydWU7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHNob3dGdWxsU2NyZWVuKCk6IHZvaWQge1xuICAgIHRoaXMuZnVsbFNjcmVlbiA9ICF0aGlzLmZ1bGxTY3JlZW47XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTZXR0aW5nc0xvYWRlZChsb2FkZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAobG9hZGVkKSB7XG4gICAgICB0aGlzLl9pb25lLmluaXRDb25uZWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0QXJ0aWNsZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWRTdWIpIHtcbiAgICAgIHRoaXMuX2luaXRpYWxpemVkU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuX2luaXRpYWxpemVkU3ViID0gdGhpcy5faW9uZS5jb250cm9sbGVySW5pdGlhbGl6ZWQuc3Vic2NyaWJlKGFzeW5jIChpbml0OiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoaW5pdCkge1xuICAgICAgICB0aGlzLl9pb25lLmdldEZ1bGxBcnRpY2xlKHRoaXMuX3NrdSkudGhlbigoYXJ0aWNsZTogQXJ0aWNsZUZ1bGxPYmplY3QpID0+IHtcbiAgICAgICAgICB0aGlzLmFydGljbGUgPSBhcnRpY2xlO1xuICAgICAgICAgIGlmICh0aGlzLmFydGljbGUpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhYmxlID0gdGhpcy5hcnRpY2xlLmdvb2RUeXBlID09PSAnQicgJiYgKHRoaXMuYXJ0aWNsZS5pc0NvbmZpZ3VyYWJsZSB8fCB0aGlzLmFydGljbGUuaXNDb25maWd1cmFibGUgPT09IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAvLyB0aGlzLmNvbmZpZ3VyYWJsZSA9IHRoaXMuYXJ0aWNsZS5nb29kVHlwZSA9PT0gJ0InO1xuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhYmxlKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0FkZFRvQ2FydCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gU2VsZWN0b3JUeXBlLlR3b0Q7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnNob3dBZGRUb0NhcnQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50aHJlZUQgPSB0aGlzLmFydGljbGUuaXMzRDtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0b3JUeXBlID0gdGhpcy5hcnRpY2xlLnNlbGVjdG9yVHlwZUN1c3RvbWVyO1xuICAgICAgICAgICAgdGhpcy5faW9uZS5nZXREZWxpdmVyeVByb2dub3Npcyh0aGlzLmFydGljbGUuZ29vZElkKS50aGVuKChzdG9ja0luZm86IERlbGl2ZXJ5UHJvZ25vc2lzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHN0b2NrQW5kRGVsaXZlcnk6IERlbGl2ZXJ5UHJvZ25vc2lzID0gc3RvY2tJbmZvO1xuICAgICAgICAgICAgICB0aGlzLnN0b2NrQW5kRGVsaXZlcnkgPSBuZXcgU3RvY2tBbmREZWxpdmVyeSgwLCBzdG9ja0FuZERlbGl2ZXJ5LnJldHVyblZhbHVlID8gc3RvY2tBbmREZWxpdmVyeS5yZXR1cm5WYWx1ZSA6ICcgJyk7XG4gICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9pb25lLmFydGljbGVMb2FkZWQubmV4dCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zaG93UmVsYXRlZFByb2R1Y3RzUG9wdXAgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuU3RvY2soKSB7XG4gICAgdGhpcy5vcGVuU3RvY2tFdmVudC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlUG9wVXBDaGFuZ2UoZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dSZWxhdGVkUHJvZHVjdHNQb3B1cCA9IGV2ZW50O1xuICB9XG59XG4iXX0=
@@ -3,8 +3,8 @@ export class Version {
3
3
  constructor() {
4
4
  this.name = "@colijnit/product";
5
5
  this.description = "Product detail page project for iOne";
6
- this.symVer = "257.1.11";
7
- this.publishDate = "2-7-2025 11:03:13";
6
+ this.symVer = "257.1.13";
7
+ this.publishDate = "22-8-2025 16:12:09";
8
8
  }
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9wcm9kdWN0LXZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE1BQU0sT0FBTyxPQUFPO0lBQXBCO1FBQ1MsU0FBSSxHQUFHLG1CQUFtQixDQUFDO1FBQzNCLGdCQUFXLEdBQUcsc0NBQXNDLENBQUM7UUFDckQsV0FBTSxHQUFHLFVBQVUsQ0FBQztRQUNwQixnQkFBVyxHQUFHLG1CQUFtQixDQUFDO0lBQzNDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRoaXMgZmlsZSBpcyBkeW5hbWljYWxseSBjcmVhdGVkLCBkbyBub3QgY2hhbmdlIHRoaXNcbmV4cG9ydCBjbGFzcyBWZXJzaW9uIHtcbiAgcHVibGljIG5hbWUgPSBcIkBjb2xpam5pdC9wcm9kdWN0XCI7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IFwiUHJvZHVjdCBkZXRhaWwgcGFnZSBwcm9qZWN0IGZvciBpT25lXCI7XG4gIHB1YmxpYyBzeW1WZXIgPSBcIjI1Ny4xLjExXCI7XG4gIHB1YmxpYyBwdWJsaXNoRGF0ZSA9IFwiMi03LTIwMjUgMTE6MDM6MTNcIjtcbn0iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9wcm9kdWN0LXZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE1BQU0sT0FBTyxPQUFPO0lBQXBCO1FBQ1MsU0FBSSxHQUFHLG1CQUFtQixDQUFDO1FBQzNCLGdCQUFXLEdBQUcsc0NBQXNDLENBQUM7UUFDckQsV0FBTSxHQUFHLFVBQVUsQ0FBQztRQUNwQixnQkFBVyxHQUFHLG9CQUFvQixDQUFDO0lBQzVDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRoaXMgZmlsZSBpcyBkeW5hbWljYWxseSBjcmVhdGVkLCBkbyBub3QgY2hhbmdlIHRoaXNcbmV4cG9ydCBjbGFzcyBWZXJzaW9uIHtcbiAgcHVibGljIG5hbWUgPSBcIkBjb2xpam5pdC9wcm9kdWN0XCI7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IFwiUHJvZHVjdCBkZXRhaWwgcGFnZSBwcm9qZWN0IGZvciBpT25lXCI7XG4gIHB1YmxpYyBzeW1WZXIgPSBcIjI1Ny4xLjEzXCI7XG4gIHB1YmxpYyBwdWJsaXNoRGF0ZSA9IFwiMjItOC0yMDI1IDE2OjEyOjA5XCI7XG59Il19
@@ -10,6 +10,7 @@ export class ProductConnectorService {
10
10
  this._adapterService = _adapterService;
11
11
  this._settingsService = _settingsService;
12
12
  this.controllerInitialized = new BehaviorSubject(false);
13
+ this.articleLoaded = new BehaviorSubject(false);
13
14
  this._initializing = false;
14
15
  this._initialized = false;
15
16
  this.connectorOptions = new Options();
@@ -106,4 +107,4 @@ ProductConnectorService.ctorParameters = () => [
106
107
  { type: ProductConnectorAdapterService },
107
108
  { type: ProductSettingsService }
108
109
  ];
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25uZWN0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZS9wcm9kdWN0LWNvbm5lY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXBFLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBR25GLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBU2xFLGdIQUFnSDtBQUVoSCxNQUFNLE9BQU8sdUJBQXVCO0lBaUJsQyxZQUNVLGVBQStDLEVBQy9DLGdCQUF3QztRQUR4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0M7UUFDL0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQWIzQywwQkFBcUIsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFHckYsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIscUJBQWdCLEdBQVksSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVqQyxTQUFJLEdBQW1CLEVBQUUsQ0FBQztJQU0zQyxDQUFDO0lBbkJELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFtQkQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVZLGNBQWM7O1lBQ3pCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENB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QU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3ZKLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxNQUFjLEVBQUUsYUFBc0IsSUFBSTtRQUN2RSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFWSw0QkFBNEIsQ0FBQyxlQUF1QixFQUFFLEdBQVcsRUFBRSxRQUFnQjs7WUFDOUYsT0FBTyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRyxDQUFDO0tBQUE7SUFFTSxrQkFBa0IsQ0FBQyxVQUFtQjtRQUMzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDO0lBQ3RDLENBQUM7OztZQWxIRixVQUFVOzs7WUFiSCw4QkFBOEI7WUFHOUIsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtPcHRpb25zfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vcHRpb25zJztcclxuXHJcbmltcG9ydCB7UHJvZHVjdENvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tICcuL3Byb2R1Y3QtY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7QXJ0aWNsZUZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3QnO1xyXG5pbXBvcnQge1N1cGVyQXJ0aWNsZX0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3VwZXItYXJ0aWNsZSc7XHJcbmltcG9ydCB7UHJvZHVjdFNldHRpbmdzU2VydmljZX0gZnJvbSAnLi9wcm9kdWN0LXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1Byb2R1Y3RTZXR0aW5nc30gZnJvbSAnLi4vbW9kZWwvcHJvZHVjdFNldHRpbmdzJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JTdGF0aXN0aWNzRW52aXJvbm1lbnR9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2NvbmZpZ3VyYXRvci1zdGF0aXN0aWNzLWVudmlyb25tZW50JztcclxuaW1wb3J0IHtEZWxpdmVyeVByb2dub3Npc30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktcHJvZ25vc2lzJztcclxuaW1wb3J0IHtEb2N1bWVudENvbnRlbnR9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2RvY3VtZW50LWNvbnRlbnQnO1xyXG5pbXBvcnQge0RhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9kYXRhLXNlcnZpY2UtcmVzcG9uc2UtZGF0YSc7XHJcbmltcG9ydCB7QXJ0aWNsZUV4dGVuZGVkfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvJztcclxuaW1wb3J0IHtBcnRpY2xlTGlzdE9iamVjdEV4dGVuZGVkfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWxpc3Qtb2JqZWN0LWV4dGVuZGVkLmJvJztcclxuXHJcbi8vIEhvbGRzIGFsbCBpT05FIGJhY2tlbmQgcmVsYXRlZCBzdGF0ZSBhbmQgbWV0aG9kcyBmb3IgYSBydW5uaW5nIEhvbWVEZWNvcmF0b3IuIFRvIGJlIHVzZWQgYW55d2hlcmUgaW50ZXJuYWxseS5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdENvbm5lY3RvclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgZ2V0IHNob3VsZFNob3dMb2FkZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvdWxkU2hvd0xvYWRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb250cm9sbGVySW5pdGlhbGl6ZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBwcml2YXRlIF9zaG91bGRTaG93TG9hZGVyOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX2luaXRpYWxpemluZyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaW5zdGFuY2VJZDogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIGNvbm5lY3Rvck9wdGlvbnM6IE9wdGlvbnMgPSBuZXcgT3B0aW9ucygpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYWRhcHRlclNlcnZpY2U6IFByb2R1Y3RDb25uZWN0b3JBZGFwdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NldHRpbmdzU2VydmljZTogUHJvZHVjdFNldHRpbmdzU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXRDb25uZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuX2luaXRpYWxpemVkIHx8IHRoaXMuX2luaXRpYWxpemluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pbml0aWFsaXppbmcgPSB0cnVlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3Qgc2V0dGluZ3M6IFByb2R1Y3RTZXR0aW5ncyA9IHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncztcclxuICAgICAgaWYgKCFzZXR0aW5ncykge1xyXG4gICAgICAgIHRocm93IEVycm9yKCdTZXR0aW5ncyBhcmUgbm90IGRlZmluZWQhJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25uZWN0b3JPcHRpb25zID0gT2JqZWN0LmFzc2lnbihuZXcgT3B0aW9ucygpLCBzZXR0aW5ncyk7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLl9hZGFwdGVyU2VydmljZS5pbml0Q29ubmVjdG9yKHRoaXMuY29ubmVjdG9yT3B0aW9ucyk7XHJcbiAgICAgIHRoaXMuY29udHJvbGxlckluaXRpYWxpemVkLm5leHQodHJ1ZSk7XHJcbiAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5faW5pdGlhbGl6aW5nID0gZmFsc2U7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHRoaXMuX2luaXRpYWxpemluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFByb2R1Y3RCdW5kbGVTZXR0aW5ncyh1cmw6IHN0cmluZywgdXBJZDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5nZXRQcm9kdWN0QnVuZGxlU2V0dGluZ3ModXJsLCB1cElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRJbnN0YW5jZShpbnN0YW5jZUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luc3RhbmNlSWQgPSBpbnN0YW5jZUlkO1xyXG4gICAgdGhpcy5fYWRhcHRlclNlcnZpY2Uuc2V0SW5zdGFuY2UoaW5zdGFuY2VJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29udmVydEFydGljbGVGdWxsT2JqZWN0VG9BcnRpY2xlRXh0ZW5kZWQoYXJ0aWNsZTogQXJ0aWNsZUZ1bGxPYmplY3QpOiBBcnRpY2xlTGlzdE9iamVjdEV4dGVuZGVkIHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5jb252ZXJ0QXJ0aWNsZUZ1bGxPYmplY3RUb0FydGljbGVFeHRlbmRlZChhcnRpY2xlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRGdWxsQXJ0aWNsZShza3U6IHN0cmluZyk6IFByb21pc2U8QXJ0aWNsZUZ1bGxPYmplY3Q+IHtcclxuICAgIGNvbnN0IGdvb2RJZDogbnVtYmVyID0gYXdhaXQgdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0R29vZElkRnJvbUFydGljbGVOcihza3UpO1xyXG4gICAgaWYgKGdvb2RJZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0QXJ0aWNsZUZ1bGxPYmplY3QoZ29vZElkKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERvY3VtZW50Q29udGVudChkb2NJZDogbnVtYmVyLCB0aHVtYm5haWw6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxEb2N1bWVudENvbnRlbnQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5nZXREb2N1bWVudENvbnRlbnQoZG9jSWQsIHRodW1ibmFpbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RGVsaXZlcnlQcm9nbm9zaXMoZ29vZElkOiBudW1iZXIpOiBQcm9taXNlPERlbGl2ZXJ5UHJvZ25vc2lzPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0RGVsaXZlcnlQcm9nbm9zaXMoZ29vZElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTZWxlY3RvckRlbGl2ZXJ5RGF0ZSgpOiBQcm9taXNlPERlbGl2ZXJ5UHJvZ25vc2lzPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0U2VsZWN0b3JEZWxpdmVyeURhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBcnRTdG9ja1N0YXR1cyhnb29kSWQ6IG51bWJlcik6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0QXJ0U3RvY2tTdGF0dXMoZ29vZElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREZWxpdmVyeURhdGUyKGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxEZWxpdmVyeVByb2dub3Npcz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldERlbGl2ZXJ5RGF0ZTIoZ29vZElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdXBlckFydGljbGUoaWQ6IHN0cmluZyk6IFByb21pc2U8U3VwZXJBcnRpY2xlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0U3VwZXJBcnRpY2xlKGlkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRKc29uQXJ0aWNsZUZsYXRUcmVlKFxyXG4gICAgICBnb29kSWQ6IG51bWJlcixcclxuICAgICAgZ29vZFR5cGU6IHN0cmluZyxcclxuICAgICAgcXVhbnRpdHk6IG51bWJlcixcclxuICAgICAgZXh0ZXJuYWxTb3VyY2U6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgICAgc2hvd0xvYWRlcjogYm9vbGVhbiA9IHRydWUsXHJcbiAgICAgIGNvbmZpZ3VyYXRvclN0YXRpc3RpY3M/OiBDb25maWd1cmF0b3JTdGF0aXN0aWNzRW52aXJvbm1lbnQpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldEpzb25BcnRpY2xlRmxhdFRyZWUoZ29vZElkLCBnb29kVHlwZSwgcXVhbnRpdHksIGV4dGVybmFsU291cmNlLCBzaG93TG9hZGVyLCB0aGlzLl9pbnN0YW5jZUlkLCBjb25maWd1cmF0b3JTdGF0aXN0aWNzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRHZW5lcmF0ZWRBcnREaXJlY3RseShnb29kSWQ6IG51bWJlciwgc2hvd0xvYWRlcjogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldEdlbmVyYXRlZEFydERpcmVjdGx5KGdvb2RJZCwgc2hvd0xvYWRlcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgYWRkV2ViU2Vzc2lvblRyYW5zYWN0aW9uTGluZSh0cmFuc2FjdGlvblV1aWQ6IHN0cmluZywgc2t1OiBzdHJpbmcsIHF1YW50aXR5OiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmFkZFdlYlNlc3Npb25UcmFuc2FjdGlvbkxpbmUodHJhbnNhY3Rpb25VdWlkLCBza3UsIHF1YW50aXR5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNob3dMb2FkZXJDaGFuZ2Uoc2hvd0xvYWRlcjogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fc2hvdWxkU2hvd0xvYWRlciA9IHNob3dMb2FkZXI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25uZWN0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZS9wcm9kdWN0LWNvbm5lY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXBFLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBR25GLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBU2xFLGdIQUFnSDtBQUVoSCxNQUFNLE9BQU8sdUJBQXVCO0lBa0JsQyxZQUNVLGVBQStDLEVBQy9DLGdCQUF3QztRQUR4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0M7UUFDL0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQWQzQywwQkFBcUIsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDdEYsa0JBQWEsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFHN0Usa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIscUJBQWdCLEdBQVksSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVqQyxTQUFJLEdBQW1CLEVBQUUsQ0FBQztJQU0zQyxDQUFDO0lBcEJELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFvQkQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJ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MEQ7UUFDNUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3ZKLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxNQUFjLEVBQUUsYUFBc0IsSUFBSTtRQUN2RSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFWSw0QkFBNEIsQ0FBQyxlQUF1QixFQUFFLEdBQVcsRUFBRSxRQUFnQjs7WUFDOUYsT0FBTyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRyxDQUFDO0tBQUE7SUFFTSxrQkFBa0IsQ0FBQyxVQUFtQjtRQUMzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDO0lBQ3RDLENBQUM7OztZQW5IRixVQUFVOzs7WUFiSCw4QkFBOEI7WUFHOUIsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtPcHRpb25zfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vcHRpb25zJztcclxuXHJcbmltcG9ydCB7UHJvZHVjdENvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tICcuL3Byb2R1Y3QtY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7QXJ0aWNsZUZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3QnO1xyXG5pbXBvcnQge1N1cGVyQXJ0aWNsZX0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3VwZXItYXJ0aWNsZSc7XHJcbmltcG9ydCB7UHJvZHVjdFNldHRpbmdzU2VydmljZX0gZnJvbSAnLi9wcm9kdWN0LXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1Byb2R1Y3RTZXR0aW5nc30gZnJvbSAnLi4vbW9kZWwvcHJvZHVjdFNldHRpbmdzJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JTdGF0aXN0aWNzRW52aXJvbm1lbnR9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2NvbmZpZ3VyYXRvci1zdGF0aXN0aWNzLWVudmlyb25tZW50JztcclxuaW1wb3J0IHtEZWxpdmVyeVByb2dub3Npc30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktcHJvZ25vc2lzJztcclxuaW1wb3J0IHtEb2N1bWVudENvbnRlbnR9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2RvY3VtZW50LWNvbnRlbnQnO1xyXG5pbXBvcnQge0RhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9kYXRhLXNlcnZpY2UtcmVzcG9uc2UtZGF0YSc7XHJcbmltcG9ydCB7QXJ0aWNsZUV4dGVuZGVkfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvJztcclxuaW1wb3J0IHtBcnRpY2xlTGlzdE9iamVjdEV4dGVuZGVkfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWxpc3Qtb2JqZWN0LWV4dGVuZGVkLmJvJztcclxuXHJcbi8vIEhvbGRzIGFsbCBpT05FIGJhY2tlbmQgcmVsYXRlZCBzdGF0ZSBhbmQgbWV0aG9kcyBmb3IgYSBydW5uaW5nIEhvbWVEZWNvcmF0b3IuIFRvIGJlIHVzZWQgYW55d2hlcmUgaW50ZXJuYWxseS5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdENvbm5lY3RvclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgZ2V0IHNob3VsZFNob3dMb2FkZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvdWxkU2hvd0xvYWRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb250cm9sbGVySW5pdGlhbGl6ZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHB1YmxpYyBhcnRpY2xlTG9hZGVkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgcHJpdmF0ZSBfc2hvdWxkU2hvd0xvYWRlcjogYm9vbGVhbjtcclxuICBwcml2YXRlIF9pbml0aWFsaXppbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIF9pbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2luc3RhbmNlSWQ6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBjb25uZWN0b3JPcHRpb25zOiBPcHRpb25zID0gbmV3IE9wdGlvbnMoKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2FkYXB0ZXJTZXJ2aWNlOiBQcm9kdWN0Q29ubmVjdG9yQWRhcHRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFByb2R1Y3RTZXR0aW5nc1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbml0Q29ubmVjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLl9pbml0aWFsaXplZCB8fCB0aGlzLl9pbml0aWFsaXppbmcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faW5pdGlhbGl6aW5nID0gdHJ1ZTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHNldHRpbmdzOiBQcm9kdWN0U2V0dGluZ3MgPSB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3M7XHJcbiAgICAgIGlmICghc2V0dGluZ3MpIHtcclxuICAgICAgICB0aHJvdyBFcnJvcignU2V0dGluZ3MgYXJlIG5vdCBkZWZpbmVkIScpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29ubmVjdG9yT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24obmV3IE9wdGlvbnMoKSwgc2V0dGluZ3MpO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5fYWRhcHRlclNlcnZpY2UuaW5pdENvbm5lY3Rvcih0aGlzLmNvbm5lY3Rvck9wdGlvbnMpO1xyXG4gICAgICB0aGlzLmNvbnRyb2xsZXJJbml0aWFsaXplZC5uZXh0KHRydWUpO1xyXG4gICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuX2luaXRpYWxpemluZyA9IGZhbHNlO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICB0aGlzLl9pbml0aWFsaXppbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQcm9kdWN0QnVuZGxlU2V0dGluZ3ModXJsOiBzdHJpbmcsIHVwSWQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0UHJvZHVjdEJ1bmRsZVNldHRpbmdzKHVybCwgdXBJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0SW5zdGFuY2UoaW5zdGFuY2VJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbnN0YW5jZUlkID0gaW5zdGFuY2VJZDtcclxuICAgIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLnNldEluc3RhbmNlKGluc3RhbmNlSWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbnZlcnRBcnRpY2xlRnVsbE9iamVjdFRvQXJ0aWNsZUV4dGVuZGVkKGFydGljbGU6IEFydGljbGVGdWxsT2JqZWN0KTogQXJ0aWNsZUxpc3RPYmplY3RFeHRlbmRlZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuY29udmVydEFydGljbGVGdWxsT2JqZWN0VG9BcnRpY2xlRXh0ZW5kZWQoYXJ0aWNsZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0RnVsbEFydGljbGUoc2t1OiBzdHJpbmcpOiBQcm9taXNlPEFydGljbGVGdWxsT2JqZWN0PiB7XHJcbiAgICBjb25zdCBnb29kSWQ6IG51bWJlciA9IGF3YWl0IHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldEdvb2RJZEZyb21BcnRpY2xlTnIoc2t1KTtcclxuICAgIGlmIChnb29kSWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREb2N1bWVudENvbnRlbnQoZG9jSWQ6IG51bWJlciwgdGh1bWJuYWlsOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8RG9jdW1lbnRDb250ZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRhcHRlclNlcnZpY2UuZ2V0RG9jdW1lbnRDb250ZW50KGRvY0lkLCB0aHVtYm5haWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERlbGl2ZXJ5UHJvZ25vc2lzKGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxEZWxpdmVyeVByb2dub3Npcz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldERlbGl2ZXJ5UHJvZ25vc2lzKGdvb2RJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U2VsZWN0b3JEZWxpdmVyeURhdGUoKTogUHJvbWlzZTxEZWxpdmVyeVByb2dub3Npcz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldFNlbGVjdG9yRGVsaXZlcnlEYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QXJ0U3RvY2tTdGF0dXMoZ29vZElkOiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldEFydFN0b2NrU3RhdHVzKGdvb2RJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RGVsaXZlcnlEYXRlMihnb29kSWQ6IG51bWJlcik6IFByb21pc2U8RGVsaXZlcnlQcm9nbm9zaXM+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5nZXREZWxpdmVyeURhdGUyKGdvb2RJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3VwZXJBcnRpY2xlKGlkOiBzdHJpbmcpOiBQcm9taXNlPFN1cGVyQXJ0aWNsZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkYXB0ZXJTZXJ2aWNlLmdldFN1cGVyQXJ0aWNsZShpZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SnNvbkFydGljbGVGbGF0VHJlZShcclxuICAgICAgZ29vZElkOiBudW1iZXIsXHJcbiAgICAgIGdvb2RUeXBlOiBzdHJpbmcsXHJcbiAgICAgIHF1YW50aXR5OiBudW1iZXIsXHJcbiAgICAgIGV4dGVybmFsU291cmNlOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICAgIHNob3dMb2FkZXI6IGJvb2xlYW4gPSB0cnVlLFxyXG4gICAgICBjb25maWd1cmF0b3JTdGF0aXN0aWNzPzogQ29uZmlndXJhdG9yU3RhdGlzdGljc0Vudmlyb25tZW50KTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5nZXRKc29uQXJ0aWNsZUZsYXRUcmVlKGdvb2RJZCwgZ29vZFR5cGUsIHF1YW50aXR5LCBleHRlcm5hbFNvdXJjZSwgc2hvd0xvYWRlciwgdGhpcy5faW5zdGFuY2VJZCwgY29uZmlndXJhdG9yU3RhdGlzdGljcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0R2VuZXJhdGVkQXJ0RGlyZWN0bHkoZ29vZElkOiBudW1iZXIsIHNob3dMb2FkZXI6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLl9hZGFwdGVyU2VydmljZS5nZXRHZW5lcmF0ZWRBcnREaXJlY3RseShnb29kSWQsIHNob3dMb2FkZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGFkZFdlYlNlc3Npb25UcmFuc2FjdGlvbkxpbmUodHJhbnNhY3Rpb25VdWlkOiBzdHJpbmcsIHNrdTogc3RyaW5nLCBxdWFudGl0eTogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9hZGFwdGVyU2VydmljZS5hZGRXZWJTZXNzaW9uVHJhbnNhY3Rpb25MaW5lKHRyYW5zYWN0aW9uVXVpZCwgc2t1LCBxdWFudGl0eSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TaG93TG9hZGVyQ2hhbmdlKHNob3dMb2FkZXI6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX3Nob3VsZFNob3dMb2FkZXIgPSBzaG93TG9hZGVyO1xyXG4gIH1cclxufVxyXG4iXX0=