ng-miam 9.2.2 → 9.2.4
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.
- package/bundles/ng-miam.umd.js +20 -60
- package/bundles/ng-miam.umd.js.map +1 -1
- package/bundles/ng-miam.umd.min.js +1 -1
- package/bundles/ng-miam.umd.min.js.map +1 -1
- package/esm2015/lib/_models/basket.js +2 -9
- package/esm2015/lib/_services/baskets.service.js +2 -22
- package/esm2015/lib/_services/context.service.js +3 -4
- package/esm2015/lib/_services/items.service.js +2 -2
- package/esm2015/lib/_services/recipes.service.js +3 -3
- package/esm2015/lib/_types/builded/mealz-interface.js +1 -1
- package/esm2015/lib/_types/builded/mealz-internal-interface.js +1 -1
- package/esm2015/lib/_web-components/meals-planner/meals-planner.component.js +2 -3
- package/esm2015/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.js +4 -3
- package/esm2015/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-catalog/catalog-list/catalog-list.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-pricing/recipe-pricing.component.js +6 -12
- package/esm2015/lib/environments/version.js +2 -2
- package/fesm2015/ng-miam.js +20 -54
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_models/basket.d.ts +0 -3
- package/lib/_models/basket.d.ts.map +1 -1
- package/lib/_services/baskets.service.d.ts +0 -2
- package/lib/_services/baskets.service.d.ts.map +1 -1
- package/lib/_services/context.service.d.ts.map +1 -1
- package/lib/_services/recipes.service.d.ts +1 -1
- package/lib/_services/recipes.service.d.ts.map +1 -1
- package/lib/_types/builded/mealz-interface.d.ts +0 -6
- package/lib/_types/builded/mealz-interface.d.ts.map +1 -1
- package/lib/_types/builded/mealz-internal-interface.d.ts +1 -1
- package/lib/_types/builded/mealz-internal-interface.d.ts.map +1 -1
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts +0 -1
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-pricing/recipe-pricing.component.d.ts +0 -1
- package/lib/_web-components/recipe-pricing/recipe-pricing.component.d.ts.map +1 -1
- package/lib/environments/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -326,7 +326,6 @@ export class MealsPlannerComponent extends EventTracerComponent {
|
|
|
326
326
|
initRecipesPricing() {
|
|
327
327
|
return combineLatest([this.posService.waitForPos, this.basketsService.basket$]).pipe(skipWhile(result => !result[1])).subscribe(result => {
|
|
328
328
|
this.pos = result[0];
|
|
329
|
-
this.pricebookKey = result[1].pricebookKey;
|
|
330
329
|
});
|
|
331
330
|
}
|
|
332
331
|
fetchRecipesPricing() {
|
|
@@ -337,7 +336,7 @@ export class MealsPlannerComponent extends EventTracerComponent {
|
|
|
337
336
|
this.budgettedRecipesPrices = {};
|
|
338
337
|
this.budgettedRecipes.forEach(recipe => {
|
|
339
338
|
if (recipe) {
|
|
340
|
-
requests.push(this.recipesService.getPricing(recipe.id, this.pos.id, this.
|
|
339
|
+
requests.push(this.recipesService.getPricing(recipe.id, this.pos.id, this.form.value.guestsCount).pipe(skipWhile(result => !(result === null || result === void 0 ? void 0 : result.price)), tap(pricing => this.budgettedRecipesPrices[recipe.id] = pricing.price)));
|
|
341
340
|
}
|
|
342
341
|
});
|
|
343
342
|
return requests.length > 0 ? forkJoin(requests) : of([]);
|
|
@@ -451,4 +450,4 @@ MealsPlannerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MealsPlannerCompone
|
|
|
451
450
|
type: ViewChild,
|
|
452
451
|
args: ['miamMealsPlannerTopAnchor']
|
|
453
452
|
}] }); })();
|
|
454
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhbHMtcGxhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL21lYWxzLXBsYW5uZXIvbWVhbHMtcGxhbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL21lYWxzLXBsYW5uZXIvbWVhbHMtcGxhbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUlWLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRzFGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLDBCQUEwQixFQUMxQixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUs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M0UsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBa0I7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOzswRkF4V1UscUJBQXFCOzBEQUFyQixxQkFBcUI7Ozs7Ozs7Ozs7aUJDcENmLFVBQUEsNEVBQVc7Ozs7OztpQkFJWCxVQUFBLG1GQUFtQjs7Ozs7O2lCQUtuQixVQUFBLHVGQUFzQjs7UUF2QnpDLDRCQUF3RTtRQUN4RSx3RUFvRU07O1FBcEUyQixlQUF5QjtRQUF6Qiw4Q0FBeUI7O3VGRGlEN0MscUJBQXFCO2NBUmpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxXQUFXLEVBQUUsZ0NBQWdDO2dCQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztnQkFDN0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO2lXQUd5QyxTQUFTO2tCQUFoRCxTQUFTO21CQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBza2lwV2hpbGUsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9hYnN0cmFjdHMvZXZlbnQtdHJhY2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNrZXRFbnRyeSwgQmFza2V0UHJldmlld0xpbmUsIFBvaW50T2ZTYWxlLCBSZWNpcGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IFJlY2lwZVByaWNpbmcgfSBmcm9tICcuLi8uLi9fbW9kZWxzL3JlY2lwZS1wcmljaW5nJztcbmltcG9ydCB7XG4gIEFuYWx5dGljc1NlcnZpY2UsXG4gIEJhc2tldHNTZXJ2aWNlLFxuICBCYXNrZXRzU3luY2hyb25pemVyU2VydmljZSxcbiAgQ29udGV4dFNlcnZpY2UsXG4gIFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gIFJlY2lwZURldGFpbHNTZXJ2aWNlLFxuICBSZWNpcGVzU2VydmljZSxcbiAgU3VwcGxpZXJzU2VydmljZVxufSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uLy4uL190eXBlcy9pY29uLmVudW0nO1xuaW1wb3J0IHsgRXZlbnRUcmFjZSB9IGZyb20gJy4uLy4uL190eXBlcy9ldmVudC10cmFjZSc7XG5pbXBvcnQgeyBBZGRSZWNpcGVGcm9tUGxhbm5lckFjdGlvbiB9IGZyb20gJy4uLy4uL19tb2RlbHMvYmFza2V0LWFjdGlvbnMvYWRkLXJlY2lwZS1mcm9tLXBsYW5uZXItYWN0aW9uJztcbmltcG9ydCB7IGRlZXBDbG9uZVdpdGhDbGFzcyB9IGZyb20gJy4uLy4uL191dGlscy9tZXRob2RzL2RlZXBDbG9uZSc7XG5cbmNvbnN0IHJlY2lwZUluY2x1ZGVzID0gWydyZWNpcGUtcHJvdmlkZXInLCAnc3BvbnNvcnMnLCAndGFncyddO1xuY29uc3QgcmVjaXBlU3BhcnNlRmllbGRzID0ge1xuICByZWNpcGVzOiBbJ3RpdGxlJywgJ251bWJlci1vZi1ndWVzdHMnLCAnbWVkaWEtdXJsJywgJ3ZpZGVvLWlkJywgJ2ZpbGlncmFuZS1sb2dvLXVybCcsICdkaWZmaWN1bHR5JywgJ3ByZXBhcmF0aW9uLXRpbWUnLCAnY29va2luZy10aW1lJyxcbiAgICAncmVzdGluZy10aW1lJywgLi4ucmVjaXBlSW5jbHVkZXNdLFxuICBzcG9uc29yczogWydsb2dvLXVybCddLFxuICB0YWdzOiBbJ3RhZy10eXBlLWlkJ10sXG4gICdyZWNpcGUtcHJvdmlkZXInOiBbJ25hbWUnXVxufTtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLW1lYWxzLXBsYW5uZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVhbHMtcGxhbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lYWxzLXBsYW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBNZWFsc1BsYW5uZXJDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdtaWFtTWVhbHNQbGFubmVyVG9wQW5jaG9yJykgdG9wQW5jaG9yOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBidWRnZXR0ZWRSZWNpcGVzOiBSZWNpcGVbXSA9IFtdO1xuICBidWRnZXR0ZWRSZWNpcGVzUHJpY2VzOiB7XG4gICAgW3JlY2lwZUlkOiBzdHJpbmddOiBudW1iZXI7XG4gIH0gPSB7fTtcbiAgYWRkZWRSZWNpcGVzSWRzOiBzdHJpbmdbXSA9IFtdO1xuICBpY29uID0gSWNvbjtcbiAgZm9ybTogRm9ybUdyb3VwO1xuICBjYXRhbG9nTW9kZSA9IGZhbHNlO1xuICByZWNpcGVUb0NoYW5nZUluZGV4OiBudW1iZXI7XG4gIGJhc2tldENvbmZpcm1lZCA9IGZhbHNlO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGluZ3JlZGllbnRzUmVncm91cGVkID0gZmFsc2U7XG4gIHRpbWVPblN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgZmVhdHVyZUlzQXV0aG9yaXplZCA9IGZhbHNlO1xuICBwcmV2aW91c0Jhc2tldEVudHJpZXM6IEJhc2tldEVudHJ5W10gPSBbXTtcblxuICAvLyBQcm9ncmVzcyBiYXJcbiAgdXNlZEJ1ZGdldCA9IDA7XG4gIG1heEJ1ZGdldCA9IDA7XG5cbiAgcHJpdmF0ZSBwb3M6IFBvaW50T2ZTYWxlO1xuICBwcml2YXRlIHByaWNlYm9va0tleTogc3RyaW5nO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWNpcGVzU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRzU2VydmljZTogQmFza2V0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb3NTZXJ2aWNlOiBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlRGV0YWlsc1NlcnZpY2U6IFJlY2lwZURldGFpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3VwcGxpZXJzU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2tldFN5bmNocm9TZXJ2aWNlOiBCYXNrZXRzU3luY2hyb25pemVyU2VydmljZVxuICApIHtcbiAgICBzdXBlcihhbmFseXRpY3NTZXJ2aWNlKTtcbiAgfVxuXG4gIGdldCByZW1haW5pbmdCdWRnZXQoKTogbnVtYmVyIHtcbiAgICBjb25zdCByZWNpcGVUb0NoYW5nZUlkID0gdGhpcy5idWRnZXR0ZWRSZWNpcGVzW3RoaXMucmVjaXBlVG9DaGFuZ2VJbmRleF0/LmlkO1xuICAgIGxldCByZW1haW5pbmdCdWRnZXQgPSB0aGlzLm1heEJ1ZGdldCAtIHRoaXMudXNlZEJ1ZGdldDtcbiAgICBpZiAocmVjaXBlVG9DaGFuZ2VJZCkge1xuICAgICAgcmVtYWluaW5nQnVkZ2V0ICs9IHRoaXMuYnVkZ2V0dGVkUmVjaXBlc1ByaWNlc1tyZWNpcGVUb0NoYW5nZUlkXTtcbiAgICB9XG4gICAgaWYgKHJlbWFpbmluZ0J1ZGdldCA+IDApIHtcbiAgICAgIHJldHVybiByZW1haW5pbmdCdWRnZXQ7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgZ2V0IHJlbWFpbmluZ1JlY2lwZXNOdW1iZXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5idWRnZXR0ZWRSZWNpcGVzLnJlZHVjZSgoYWNjLCByZWNpcGUsIGkpID0+XG4gICAgICAgIC8vIERvbid0IGNvdW50IG51bGwgcmVjaXBlcyBhbmQgY3VycmVudGx5IHJlcGxhY2luZyByZWNpcGVcbiAgICAgICAgcmVjaXBlICYmIGkgIT09IHRoaXMucmVjaXBlVG9DaGFuZ2VJbmRleCA/IGFjYyA6IGFjYyArIDFcbiAgICAgICwgMCk7XG4gIH1cblxuICBnZXQgZXhjbHVkZWRSZWNpcGVzSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5idWRnZXR0ZWRSZWNpcGVzLmZpbHRlcihyZWNpcGUgPT4gcmVjaXBlKS5tYXAocmVjaXBlID0+IHJlY2lwZS5pZCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuaXNNZWFselBhZ2UgPSB0cnVlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5lbmFibGVNZWFsc1BsYW5uZXIkLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShlbmFibGVkID0+ICFlbmFibGVkKSxcbiAgICAgICAgdGFrZSgxKVxuICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5mZWF0dXJlSXNBdXRob3JpemVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICB0aGlzLnBhZ2V2aWV3KCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuaW5pdFJlY2lwZXNQcmljaW5nKCkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaW5pdEZvcm0oKTogdm9pZCB7XG4gICAgY29uc3Qgc3RvcmVkRm9ybTogeyBidWRnZXQ6IG51bWJlcjsgZ3Vlc3RzQ291bnQ6IG51bWJlcjsgcmVjaXBlc0NvdW50OiBudW1iZXIgfSA9XG4gICAgICBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ21pYW0tbWVhbHMtcGxhbm5lci1mb3JtJykpIGFzIHsgYnVkZ2V0OiBudW1iZXI7IGd1ZXN0c0NvdW50OiBudW1iZXI7IHJlY2lwZXNDb3VudDogbnVtYmVyIH07XG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnbWlhbS1tZWFscy1wbGFubmVyLWZvcm0nKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGJ1ZGdldDogbmV3IEZvcm1Db250cm9sKHN0b3JlZEZvcm0/LmJ1ZGdldCB8fCB1bmRlZmluZWQsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigxKV0pLFxuICAgICAgZ3Vlc3RzQ291bnQ6IG5ldyBGb3JtQ29udHJvbChzdG9yZWRGb3JtPy5ndWVzdHNDb3VudCB8fCAwLCBWYWxpZGF0b3JzLm1pbigxKSksXG4gICAgICByZWNpcGVzQ291bnQ6IG5ldyBGb3JtQ29udHJvbChzdG9yZWRGb3JtPy5yZWNpcGVzQ291bnQgfHwgKHRoaXMuY29udGV4dFNlcnZpY2UuYW50aUluZmxhdGlvbiA/IDAgOiA0KSwgVmFsaWRhdG9ycy5taW4oMSkpXG4gICAgfSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZmV0Y2hSZWNpcGVzKGlucHV0czogeyBidWRnZXQ6IG51bWJlcjsgZ3Vlc3RzQ291bnQ6IG51bWJlcjsgcmVjaXBlc0NvdW50OiBudW1iZXIgfSk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5wbGFuKFxuICAgICAgICBpbnB1dHMuYnVkZ2V0LCBpbnB1dHMuZ3Vlc3RzQ291bnQsIGlucHV0cy5yZWNpcGVzQ291bnQsIHJlY2lwZUluY2x1ZGVzLCByZWNpcGVTcGFyc2VGaWVsZHMsIGZhbHNlXG4gICAgICApLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyZWNpcGVzID0+IHtcbiAgICAgICAgICB0aGlzLmJ1ZGdldHRlZFJlY2lwZXMgPSBbXTsgLy8gUmVmcmVzaCB0aGUgcmVzdWx0IHZpZXdcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5idWRnZXR0ZWRSZWNpcGVzID0gcmVjaXBlcy5tYXAociA9PiB7XG4gICAgICAgICAgICByLm1vZGlmaWVkR3Vlc3RzID0gaW5wdXRzLmd1ZXN0c0NvdW50O1xuICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoUmVjaXBlc1ByaWNpbmcoKTtcbiAgICAgICAgfSlcbiAgICAgICkuc3Vic2NyaWJlKHByaWNpbmdzID0+IHtcbiAgICAgICAgdGhpcy51c2VkQnVkZ2V0ID0gcHJpY2luZ3MucmVkdWNlKChhY2MsIHByaWNpbmcpID0+IGFjYyArIHByaWNpbmcucHJpY2UsIDApO1xuICAgICAgICB0aGlzLnVzZWRCdWRnZXQgPSBNYXRoLnJvdW5kKHRoaXMudXNlZEJ1ZGdldCAqIDEwMCkgLyAxMDA7XG4gICAgICAgIHRoaXMubWF4QnVkZ2V0ID0gKHRoaXMuZm9ybS52YWx1ZSBhcyB7IGJ1ZGdldDogbnVtYmVyIH0pLmJ1ZGdldDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuaXNNZWFselBhZ2UgPSBmYWxzZTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uID0gZmFsc2U7XG4gIH1cblxuICBjdXJyZW50UGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnbWVhbHMtcGxhbm5lcic7XG4gIH1cblxuICBhZGRSZWNpcGVzKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnRMb2FkaW5nKCk7XG4gICAgY29uc3QgcmVjaXBlc1RvQWRkID0gdGhpcy5nZXRWYWxpZFJlY2lwZXMoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS53YWl0Rm9yQmFza2V0RW50cmllcy5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAoKGVudHJpZXM6IEJhc2tldEVudHJ5W10pID0+IHtcbiAgICAgICAgICB0aGlzLnByZXZpb3VzQmFza2V0RW50cmllcyA9IGRlZXBDbG9uZVdpdGhDbGFzcyhlbnRyaWVzKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hZGRSZWNpcGVzVG9CYXNrZXQocmVjaXBlc1RvQWRkKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVzV2lsbEJlQWRkZWQoKS5waXBlKFxuICAgICAgICAgICAgc2tpcFdoaWxlKHdpbGxCZUFkZGVkID0+IHdpbGxCZUFkZGVkKSxcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5oYW5kbGVCYXNrZXRQcmV2aWV3KHJlY2lwZXNUb0FkZCkpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMudXBkYXRlUmV0YWlsZXJCYXNrZXQoKSlcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3BMb2FkaW5nKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0TG9hZGluZygpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuc2Nyb2xsVG9Ub3AoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3BMb2FkaW5nKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsaWRSZWNpcGVzKCk6IFJlY2lwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5idWRnZXR0ZWRSZWNpcGVzLmZpbHRlcihyID0+IHI/LmlkKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUmVjaXBlc1RvQmFza2V0KHJlY2lwZXNUb0FkZDogUmVjaXBlW10pOiB2b2lkIHtcbiAgICBjb25zdCByZWNpcGVJZHMgPSByZWNpcGVzVG9BZGQubWFwKHIgPT4gci5pZCk7XG4gICAgY29uc3QgbW9kaWZpZWRHdWVzdHMgPSByZWNpcGVzVG9BZGRbMF0/Lm1vZGlmaWVkR3Vlc3RzO1xuICAgIHRoaXMuYmFza2V0c1NlcnZpY2UuYWRkUmVjaXBlc1RvQmFza2V0KHJlY2lwZUlkcywgbW9kaWZpZWRHdWVzdHMsIHRoaXMuZXZlbnRUcmFjZSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUJhc2tldFByZXZpZXcocmVjaXBlc1RvQWRkOiBSZWNpcGVbXSkge1xuICAgIHRoaXMuYWRkZWRSZWNpcGVzSWRzID0gcmVjaXBlc1RvQWRkLm1hcChyID0+IHIuaWQpO1xuICAgIHJldHVybiB0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldFByZXZpZXckLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgdGFwKGJhc2tldFByZXZpZXdMaW5lcyA9PiB7XG4gICAgICAgIGlmIChiYXNrZXRQcmV2aWV3TGluZXMgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmluZ3JlZGllbnRzUmVncm91cGVkID0gdGhpcy5oYXNNdXR1YWxpemVkRW50cnkoYmFza2V0UHJldmlld0xpbmVzKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgaGFuZGxlQWN0aW9uRXJyb3JzKGFjdGlvbjogQWRkUmVjaXBlRnJvbVBsYW5uZXJBY3Rpb24pIHtcbiAgICBhY3Rpb24ub25UaW1lb3V0LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlbW92ZVByb2R1Y3QoYWN0aW9uLmJhc2tldEVudHJ5LCBuZXcgRXZlbnRUcmFjZSgpKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJOZXdBbmRVcGRhdGVkRW50cmllcyhlbnRyaWVzOiBCYXNrZXRFbnRyeVtdKSB7XG4gICAgY29uc3QgbmV3RW50cmllcyA9IGVudHJpZXMuZmlsdGVyKGVudHJ5ID0+XG4gICAgICAhdGhpcy5wcmV2aW91c0Jhc2tldEVudHJpZXMuZmluZChwcmV2RW50cnkgPT4gcHJldkVudHJ5LmlkID09PSBlbnRyeS5pZCkpO1xuICAgIGNvbnN0IHVwZGF0ZWRFbnRyaWVzID0gZW50cmllcy5maWx0ZXIoXG4gICAgICBlbnRyeSA9PiB0aGlzLnByZXZpb3VzQmFza2V0RW50cmllcy5maW5kKFxuICAgICAgICBwcmV2RW50cnkgPT4gcHJldkVudHJ5LmlkID09PSBlbnRyeS5pZCAmJiBwcmV2RW50cnkucXVhbnRpdHkgIT09IGVudHJ5LnF1YW50aXR5XG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gWy4uLm5ld0VudHJpZXMsIC4uLnVwZGF0ZWRFbnRyaWVzXTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUmV0YWlsZXJCYXNrZXQoKTogdm9pZCB7XG4gICAgdGhpcy5iYXNrZXRzU2VydmljZS5hY3RpdmVCYXNrZXRFbnRyaWVzKCkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBzd2l0Y2hNYXAoKGVudHJpZXM6IEJhc2tldEVudHJ5W10pID0+IHtcbiAgICAgICAgY29uc3QgYWRkUmVjaXBlRnJvbVBsYW5uZXJBY3Rpb25zID0gdGhpcy5maWx0ZXJOZXdBbmRVcGRhdGVkRW50cmllcyhlbnRyaWVzKS5tYXAoKGJhc2tldEVudHJ5OiBCYXNrZXRFbnRyeSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFkZFJlY2lwZUZyb21QbGFubmVyQWN0aW9uID0gbmV3IEFkZFJlY2lwZUZyb21QbGFubmVyQWN0aW9uKFxuICAgICAgICAgICAgYmFza2V0RW50cnksXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICB0aGlzLnN1cHBsaWVyc1NlcnZpY2VcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuaGFuZGxlQWN0aW9uRXJyb3JzKGFkZFJlY2lwZUZyb21QbGFubmVyQWN0aW9uKTtcbiAgICAgICAgICByZXR1cm4gYWRkUmVjaXBlRnJvbVBsYW5uZXJBY3Rpb247XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmJhc2tldFN5bmNocm9TZXJ2aWNlLmFkZFRvQWN0aW9uTGlzdChhZGRSZWNpcGVGcm9tUGxhbm5lckFjdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiBlbnRyaWVzO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNNdXR1YWxpemVkRW50cnkoYmFza2V0UHJldmlld0xpbmVzOiBCYXNrZXRQcmV2aWV3TGluZVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGJhc2tldFByZXZpZXdMaW5lcy5zb21lKGxpbmUgPT4ge1xuICAgICAgaWYgKGxpbmUuaXNSZWNpcGUpIHtcbiAgICAgICAgcmV0dXJuIGxpbmUuZW50cmllcy5mb3VuZC5zb21lKChlbnRyeTogQmFza2V0RW50cnkpID0+IHRoaXMuaXNFbnRyeU11dHVhbGl6ZWQoZW50cnkpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbnRyeU11dHVhbGl6ZWQoZW50cnk6IEJhc2tldEVudHJ5KTogYm9vbGVhbiB7XG4gICAgaWYgKGVudHJ5LnN0YXR1cyAhPT0gJ2FjdGl2ZScpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGVudHJ5LnJlY2lwZXNJZHMubGVuZ3RoID4gMTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFJlY2lwZXNQcmljaW5nKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMucG9zU2VydmljZS53YWl0Rm9yUG9zLCB0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldCRdKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHJlc3VsdCA9PiAhcmVzdWx0WzFdKVxuICAgICkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICB0aGlzLnBvcyA9IHJlc3VsdFswXTtcbiAgICAgIHRoaXMucHJpY2Vib29rS2V5ID0gcmVzdWx0WzFdLnByaWNlYm9va0tleTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hSZWNpcGVzUHJpY2luZygpOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmdbXT4ge1xuICAgIGlmICh0aGlzLmJ1ZGdldHRlZFJlY2lwZXMubGVuZ3RoID09PSAwIHx8ICF0aGlzLnBvcyB8fCAhKHRoaXMuZm9ybS52YWx1ZSBhcyB7IGd1ZXN0c0NvdW50OiBudW1iZXIgfSkuZ3Vlc3RzQ291bnQpIHtcbiAgICAgIHJldHVybiBvZihbXSBhcyBSZWNpcGVQcmljaW5nW10pO1xuICAgIH1cbiAgICBjb25zdCByZXF1ZXN0czogT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPltdID0gW107XG4gICAgdGhpcy5idWRnZXR0ZWRSZWNpcGVzUHJpY2VzID0ge307XG4gICAgdGhpcy5idWRnZXR0ZWRSZWNpcGVzLmZvckVhY2gocmVjaXBlID0+IHtcbiAgICAgIGlmIChyZWNpcGUpIHtcbiAgICAgICAgcmVxdWVzdHMucHVzaChcbiAgICAgICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldFByaWNpbmcoXG4gICAgICAgICAgICByZWNpcGUuaWQsXG4gICAgICAgICAgICB0aGlzLnBvcy5pZCxcbiAgICAgICAgICAgIHRoaXMucHJpY2Vib29rS2V5LFxuICAgICAgICAgICAgKHRoaXMuZm9ybS52YWx1ZSBhcyB7IGd1ZXN0c0NvdW50OiBudW1iZXIgfSkuZ3Vlc3RzQ291bnRcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+ICFyZXN1bHQ/LnByaWNlKSxcbiAgICAgICAgICAgIHRhcChwcmljaW5nID0+IHRoaXMuYnVkZ2V0dGVkUmVjaXBlc1ByaWNlc1tyZWNpcGUuaWRdID0gcHJpY2luZy5wcmljZSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlcXVlc3RzLmxlbmd0aCA+IDAgPyBmb3JrSm9pbihyZXF1ZXN0cykgOiBvZihbXSBhcyBSZWNpcGVQcmljaW5nW10pO1xuICB9XG5cbiAgdXBkYXRlQnVkZ2V0VmFsdWVzKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZmV0Y2hCdWRnZXRWYWx1ZXMoKS5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoQnVkZ2V0VmFsdWVzKCk6IE9ic2VydmFibGU8UmVjaXBlUHJpY2luZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hSZWNpcGVzUHJpY2luZygpLnBpcGUodGFwKHByaWNpbmdzID0+IHtcbiAgICAgIHRoaXMudXNlZEJ1ZGdldCA9IHByaWNpbmdzLmxlbmd0aCA+IDAgPyBwcmljaW5ncy5yZWR1Y2UoKGFjYywgcHJpY2luZykgPT4gYWNjICsgcHJpY2luZy5wcmljZSwgMCkgOiAwO1xuICAgICAgdGhpcy51c2VkQnVkZ2V0ID0gTWF0aC5yb3VuZCh0aGlzLnVzZWRCdWRnZXQgKiAxMDApIC8gMTAwO1xuICAgICAgdGhpcy5tYXhCdWRnZXQgPSAodGhpcy5mb3JtLnZhbHVlIGFzIHsgYnVkZ2V0OiBudW1iZXIgfSkuYnVkZ2V0O1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pKTtcbiAgfVxuXG4gIG9wZW5DYXRhbG9nKHJlY2lwZVRvQ2hhbmdlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucmVjaXBlVG9DaGFuZ2VJbmRleCA9IHJlY2lwZVRvQ2hhbmdlSW5kZXg7XG4gICAgdGhpcy5jYXRhbG9nTW9kZSA9IHRydWU7XG4gICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGNsb3NlQ2F0YWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZVRvQ2hhbmdlSW5kZXggPSBudWxsO1xuICAgIHRoaXMuY2F0YWxvZ01vZGUgPSBmYWxzZTtcbiAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZWRpdFJlY2lwZShyZWNpcGU6IFJlY2lwZSk6IHZvaWQge1xuICAgIHRoaXMuYnVkZ2V0dGVkUmVjaXBlc1t0aGlzLnJlY2lwZVRvQ2hhbmdlSW5kZXhdID0gcmVjaXBlO1xuICAgIHRoaXMudXBkYXRlQnVkZ2V0VmFsdWVzKCk7XG4gICAgdGhpcy5jbG9zZUNhdGFsb2coKTtcbiAgfVxuXG4gIG9wZW5CYXNrZXRDb25maXJtYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVUb0NoYW5nZUluZGV4ID0gbnVsbDtcbiAgICB0aGlzLmJhc2tldENvbmZpcm1lZCA9IHRydWU7XG4gICAgdGhpcy5zZW5kQ29uZmlybWF0aW9uRXZlbnQoKTtcbiAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0b2RvIG5vdCBzdXJlIGl0IGlzIGNhbGxlZCBjb3JyZWN0bHlcbiAgICogQHRvZG8gaW1wbGVtZW50IG90aGVyIHBsYW5uZXIgZXZlbnRzXG4gICAqL1xuICBzZW5kQ29uZmlybWF0aW9uRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdwbGFubmVyLmNvbmZpcm0nLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICBidWRnZXRfdXNlcjogdGhpcy51c2VkQnVkZ2V0LnRvU3RyaW5nKCksXG4gICAgICAgIGJ1ZGdldF9wbGFubmVyOiAodGhpcy5mb3JtLmdldCgnYnVkZ2V0JykudmFsdWUgYXMgbnVtYmVyKS50b1N0cmluZygpLFxuICAgICAgICByZWNpcGVfY291bnQ6ICh0aGlzLmZvcm0uZ2V0KCdyZWNpcGVzQ291bnQnKS52YWx1ZSBhcyBudW1iZXIpLnRvU3RyaW5nKCksXG4gICAgICAgIGd1ZXN0czogKHRoaXMuZm9ybS5nZXQoJ2d1ZXN0c0NvdW50JykudmFsdWUgYXMgbnVtYmVyKS50b1N0cmluZygpLFxuICAgICAgICB1c2VzX2NvdW50OiB0aGlzLnVwZGF0ZVVzZXNDb3VudCgpLnRvU3RyaW5nKCksXG4gICAgICAgIHRpbWVfcGFzc2VkOiAoKERhdGUubm93KCkgLSB0aGlzLnRpbWVPblN0YXJ0KSAvIDEwMDApLnRvU3RyaW5nKClcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgdXBkYXRlVXNlc0NvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3Qgb2xkQ291bnQgPSBwYXJzZUludChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWlhbS1tZWFscy1wbGFubmVyLXVzZXMtY291bnQnKSwgMTApO1xuICAgIGNvbnN0IG5ld0NvdW50ID0gTnVtYmVyLmlzTmFOKG9sZENvdW50KSA/IDEgOiBvbGRDb3VudCArIDE7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21pYW0tbWVhbHMtcGxhbm5lci11c2VzLWNvdW50JywgbmV3Q291bnQudG9TdHJpbmcoKSk7XG4gICAgcmV0dXJuIG5ld0NvdW50O1xuICB9XG5cbiAgc2Nyb2xsVG9Ub3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudG9wQW5jaG9yKSB7XG4gICAgICB0aGlzLnRvcEFuY2hvci5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVXNlZEJ1ZGdldCh1c2VkQnVkZ2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVzZWRCdWRnZXQgPSB1c2VkQnVkZ2V0O1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGRpdiAjbWlhbU1lYWxzUGxhbm5lclRvcEFuY2hvciBjbGFzcz1cIm1pYW0tbWVhbHMtcGxhbm5lci1hbmNob3JcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtaWFtLW1lYWxzLXBsYW5uZXJcIiAqbmdJZj1cImZlYXR1cmVJc0F1dGhvcml6ZWRcIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tbWVhbHMtcGxhbm5lcl9faGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tbWVhbHMtcGxhbm5lcl9faGVhZGVyX19icmVhZGNydW1iXCIgW25nQ2xhc3NdPVwieyAnaGlkZGVuJzogYnVkZ2V0dGVkUmVjaXBlcy5sZW5ndGggPT09IDAgfVwiPlxuICAgICAgPGEgaHJlZj1cIi9cIj5cbiAgICAgICAgPG5nLW1pYW0taWNvblxuICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkhvbWVcIlxuICAgICAgICAgIHdpZHRoPVwiMThcIlxuICAgICAgICAgIGhlaWdodD1cIjE4XCJcbiAgICAgICAgICBwcmltYXJ5Q29sb3I9XCIjMEYxOTFGXCJcbiAgICAgICAgPjwvbmctbWlhbS1pY29uPlxuICAgICAgPC9hPlxuICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5DaGV2cm9uRG93blwiIGNsYXNzPVwiY2hldnJvbi1yaWdodFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgPGEgW2hyZWZdPVwiY29udGV4dFNlcnZpY2UuY2F0YWxvZ1VybFwiIGNsYXNzPVwiaW5hY3RpdmVcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5JZMOpZXMgcmVwYXM8L3NwYW4+XG4gICAgICA8L2E+XG4gICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09XCJpY29uLkNoZXZyb25Eb3duXCIgY2xhc3M9XCJjaGV2cm9uLXJpZ2h0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PC9uZy1taWFtLWljb24+XG4gICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJhY3RpdmVcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5QbGFuaWZpZXIgbWVzIHJlcGFzPC9zcGFuPlxuICAgICAgPC9hPlxuICAgICAgPG5nLW1pYW0taWNvbiAqbmdJZj1cImNhdGFsb2dNb2RlICYmICFiYXNrZXRDb25maXJtZWRcIiBbaWNvbk5hbWVdPVwiaWNvbi5DaGV2cm9uRG93blwiIGNsYXNzPVwiY2hldnJvbi1yaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgPGEgKm5nSWY9XCJjYXRhbG9nTW9kZSAmJiAhYmFza2V0Q29uZmlybWVkXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwic3ViQ2F0ZWdvcnlcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5Bam91dGVyIHVuZSBpZMOpZSByZXBhczwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLW1lYWxzLXBsYW5uZXJfX2NvbnRlbnRcIiAqbmdJZj1cImZvcm1cIj5cbiAgICA8bmctbWlhbS1tZWFscy1wbGFubmVyLWZvcm1cbiAgICAgICpuZ0lmPVwiYWRkZWRSZWNpcGVzSWRzLmxlbmd0aCA9PT0gMCAmJiAhY2F0YWxvZ01vZGUgJiYgIWJhc2tldENvbmZpcm1lZFwiXG4gICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICBbcmVkdWNlZF09XCJidWRnZXR0ZWRSZWNpcGVzLmxlbmd0aCA+IDBcIiBbZm9ybV09XCJmb3JtXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgICAoc3VibWl0dGVkKT1cImZldGNoUmVjaXBlcygkZXZlbnQpXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3JlZHVjZWQnOiBidWRnZXR0ZWRSZWNpcGVzLmxlbmd0aCA+IDAgfVwiPjwvbmctbWlhbS1tZWFscy1wbGFubmVyLWZvcm0+XG4gICAgPG5nLW1pYW0tbWVhbHMtcGxhbm5lci1yZXN1bHRcbiAgICAgICpuZ0lmPVwiYnVkZ2V0dGVkUmVjaXBlcy5sZW5ndGggPiAwICYmIGFkZGVkUmVjaXBlc0lkcy5sZW5ndGggPT09IDAgJiYgIWNhdGFsb2dNb2RlICYmICFiYXNrZXRDb25maXJtZWRcIlxuICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgW3JlY2lwZXNdPVwiYnVkZ2V0dGVkUmVjaXBlc1wiIFt1c2VkQnVkZ2V0XT1cInVzZWRCdWRnZXRcIiBbbWF4QnVkZ2V0XT1cIm1heEJ1ZGdldFwiIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgICAgKHJlY2lwZVJlbW92YWwpPVwidXBkYXRlQnVkZ2V0VmFsdWVzKClcIlxuICAgICAgKGNvbmZpcm1lZCk9XCJhZGRSZWNpcGVzKClcIiAob3BlbkNhdGFsb2cpPVwib3BlbkNhdGFsb2coJGV2ZW50KVwiPjwvbmctbWlhbS1tZWFscy1wbGFubmVyLXJlc3VsdD5cbiAgICA8bmctbWlhbS1tZWFscy1wbGFubmVyLWJhc2tldC1wcmV2aWV3XG4gICAgICAqbmdJZj1cImFkZGVkUmVjaXBlc0lkcy5sZW5ndGggPiAwICYmICFjYXRhbG9nTW9kZSAmJiAhYmFza2V0Q29uZmlybWVkXCJcbiAgICAgIFtyZWNpcGVzSWRzXT1cImFkZGVkUmVjaXBlc0lkc1wiXG4gICAgICBbdXNlZEJ1ZGdldF09XCJ1c2VkQnVkZ2V0XCJcbiAgICAgIFttYXhCdWRnZXRdPVwibWF4QnVkZ2V0XCJcbiAgICAgIFtndWVzdHNdPVwiZm9ybS52YWx1ZS5ndWVzdHNDb3VudFwiXG4gICAgICBbaW5ncmVkaWVudHNSZWdyb3VwZWRdPVwiaW5ncmVkaWVudHNSZWdyb3VwZWRcIlxuICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgW25nQ2xhc3NdPVwieyAncmVkdWNlZCc6IGFkZGVkUmVjaXBlc0lkcy5sZW5ndGggPT09IDAgJiYgIWNhdGFsb2dNb2RlICYmICFiYXNrZXRDb25maXJtZWR9XCJcbiAgICAgIChjbG9zZWQpPVwib3BlbkJhc2tldENvbmZpcm1hdGlvbigpXCJcbiAgICAgICh1c2VkQnVkZ2V0Q2hhbmdlZCk9XCJ1cGRhdGVVc2VkQnVkZ2V0KCRldmVudClcIj5cbiAgICA8L25nLW1pYW0tbWVhbHMtcGxhbm5lci1iYXNrZXQtcHJldmlldz5cbiAgICA8bmctbWlhbS1tZWFscy1wbGFubmVyLWNhdGFsb2dcbiAgICAgICpuZ0lmPVwiY2F0YWxvZ01vZGUgJiYgIWJhc2tldENvbmZpcm1lZFwiXG4gICAgICBbbW9kaWZpZWRHdWVzdHNdPVwiZm9ybS52YWx1ZS5ndWVzdHNDb3VudFwiXG4gICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICBbcmVtYWluaW5nQnVkZ2V0XT1cInJlbWFpbmluZ0J1ZGdldFwiXG4gICAgICBbcmVtYWluaW5nUmVjaXBlc051bWJlcl09XCJyZW1haW5pbmdSZWNpcGVzTnVtYmVyXCJcbiAgICAgIFtleGNsdWRlZFJlY2lwZXNJZHNdPVwiZXhjbHVkZWRSZWNpcGVzSWRzXCJcbiAgICAgIChlZGl0UmVjaXBlKT1cImVkaXRSZWNpcGUoJGV2ZW50KVwiXG4gICAgICAoY2FuY2VsZWQpPVwiY2xvc2VDYXRhbG9nKClcIj5cbiAgICA8L25nLW1pYW0tbWVhbHMtcGxhbm5lci1jYXRhbG9nPlxuICAgIDxuZy1taWFtLW1lYWxzLXBsYW5uZXItYmFza2V0LWNvbmZpcm1hdGlvblxuICAgICAgKm5nSWY9XCJiYXNrZXRDb25maXJtZWRcIlxuICAgICAgW3JlY2lwZXNJZHNdPVwiYWRkZWRSZWNpcGVzSWRzXCJcbiAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCJcbiAgICAgIFtidWRnZXRdPVwidXNlZEJ1ZGdldFwiPlxuICAgIDwvbmctbWlhbS1tZWFscy1wbGFubmVyLWJhc2tldC1jb25maXJtYXRpb24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
453
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhbHMtcGxhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL21lYWxzLXBsYW5uZXIvbWVhbHMtcGxhbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL21lYWxzLXBsYW5uZXIvbWVhbHMtcGxhbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUlWLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRzFGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLDBCQUEwQixFQUMxQixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUs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QUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFrQjtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzBGQXJXVSxxQkFBcUI7MERBQXJCLHFCQUFxQjs7Ozs7Ozs7OztpQkNwQ2YsVUFBQSw0RUFBVzs7Ozs7O2lCQUlYLFVBQUEsbUZBQW1COzs7Ozs7aUJBS25CLFVBQUEsdUZBQXNCOztRQXZCekMsNEJBQXdFO1FBQ3hFLHdFQW9FTTs7UUFwRTJCLGVBQXlCO1FBQXpCLDhDQUF5Qjs7dUZEaUQ3QyxxQkFBcUI7Y0FSakMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLFdBQVcsRUFBRSxnQ0FBZ0M7Z0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2dCQUM3QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7aVdBR3lDLFNBQVM7a0JBQWhELFNBQVM7bUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdmVudFRyYWNlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Fic3RyYWN0cy9ldmVudC10cmFjZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2tldEVudHJ5LCBCYXNrZXRQcmV2aWV3TGluZSwgUG9pbnRPZlNhbGUsIFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVjaXBlUHJpY2luZyB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlLXByaWNpbmcnO1xuaW1wb3J0IHtcbiAgQW5hbHl0aWNzU2VydmljZSxcbiAgQmFza2V0c1NlcnZpY2UsXG4gIEJhc2tldHNTeW5jaHJvbml6ZXJTZXJ2aWNlLFxuICBDb250ZXh0U2VydmljZSxcbiAgUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgUmVjaXBlRGV0YWlsc1NlcnZpY2UsXG4gIFJlY2lwZXNTZXJ2aWNlLFxuICBTdXBwbGllcnNTZXJ2aWNlXG59IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBFdmVudFRyYWNlIH0gZnJvbSAnLi4vLi4vX3R5cGVzL2V2ZW50LXRyYWNlJztcbmltcG9ydCB7IEFkZFJlY2lwZUZyb21QbGFubmVyQWN0aW9uIH0gZnJvbSAnLi4vLi4vX21vZGVscy9iYXNrZXQtYWN0aW9ucy9hZGQtcmVjaXBlLWZyb20tcGxhbm5lci1hY3Rpb24nO1xuaW1wb3J0IHsgZGVlcENsb25lV2l0aENsYXNzIH0gZnJvbSAnLi4vLi4vX3V0aWxzL21ldGhvZHMvZGVlcENsb25lJztcblxuY29uc3QgcmVjaXBlSW5jbHVkZXMgPSBbJ3JlY2lwZS1wcm92aWRlcicsICdzcG9uc29ycycsICd0YWdzJ107XG5jb25zdCByZWNpcGVTcGFyc2VGaWVsZHMgPSB7XG4gIHJlY2lwZXM6IFsndGl0bGUnLCAnbnVtYmVyLW9mLWd1ZXN0cycsICdtZWRpYS11cmwnLCAndmlkZW8taWQnLCAnZmlsaWdyYW5lLWxvZ28tdXJsJywgJ2RpZmZpY3VsdHknLCAncHJlcGFyYXRpb24tdGltZScsICdjb29raW5nLXRpbWUnLFxuICAgICdyZXN0aW5nLXRpbWUnLCAuLi5yZWNpcGVJbmNsdWRlc10sXG4gIHNwb25zb3JzOiBbJ2xvZ28tdXJsJ10sXG4gIHRhZ3M6IFsndGFnLXR5cGUtaWQnXSxcbiAgJ3JlY2lwZS1wcm92aWRlcic6IFsnbmFtZSddXG59O1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tbWVhbHMtcGxhbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZWFscy1wbGFubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVhbHMtcGxhbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIE1lYWxzUGxhbm5lckNvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoJ21pYW1NZWFsc1BsYW5uZXJUb3BBbmNob3InKSB0b3BBbmNob3I6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGJ1ZGdldHRlZFJlY2lwZXM6IFJlY2lwZVtdID0gW107XG4gIGJ1ZGdldHRlZFJlY2lwZXNQcmljZXM6IHtcbiAgICBbcmVjaXBlSWQ6IHN0cmluZ106IG51bWJlcjtcbiAgfSA9IHt9O1xuICBhZGRlZFJlY2lwZXNJZHM6IHN0cmluZ1tdID0gW107XG4gIGljb24gPSBJY29uO1xuICBmb3JtOiBGb3JtR3JvdXA7XG4gIGNhdGFsb2dNb2RlID0gZmFsc2U7XG4gIHJlY2lwZVRvQ2hhbmdlSW5kZXg6IG51bWJlcjtcbiAgYmFza2V0Q29uZmlybWVkID0gZmFsc2U7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgaW5ncmVkaWVudHNSZWdyb3VwZWQgPSBmYWxzZTtcbiAgdGltZU9uU3RhcnQgPSBEYXRlLm5vdygpO1xuICBmZWF0dXJlSXNBdXRob3JpemVkID0gZmFsc2U7XG4gIHByZXZpb3VzQmFza2V0RW50cmllczogQmFza2V0RW50cnlbXSA9IFtdO1xuXG4gIC8vIFByb2dyZXNzIGJhclxuICB1c2VkQnVkZ2V0ID0gMDtcbiAgbWF4QnVkZ2V0ID0gMDtcblxuICBwcml2YXRlIHBvczogUG9pbnRPZlNhbGU7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2tldHNTZXJ2aWNlOiBCYXNrZXRzU2VydmljZSxcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVEZXRhaWxzU2VydmljZTogUmVjaXBlRGV0YWlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdXBwbGllcnNTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFza2V0U3luY2hyb1NlcnZpY2U6IEJhc2tldHNTeW5jaHJvbml6ZXJTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGFuYWx5dGljc1NlcnZpY2UpO1xuICB9XG5cbiAgZ2V0IHJlbWFpbmluZ0J1ZGdldCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHJlY2lwZVRvQ2hhbmdlSWQgPSB0aGlzLmJ1ZGdldHRlZFJlY2lwZXNbdGhpcy5yZWNpcGVUb0NoYW5nZUluZGV4XT8uaWQ7XG4gICAgbGV0IHJlbWFpbmluZ0J1ZGdldCA9IHRoaXMubWF4QnVkZ2V0IC0gdGhpcy51c2VkQnVkZ2V0O1xuICAgIGlmIChyZWNpcGVUb0NoYW5nZUlkKSB7XG4gICAgICByZW1haW5pbmdCdWRnZXQgKz0gdGhpcy5idWRnZXR0ZWRSZWNpcGVzUHJpY2VzW3JlY2lwZVRvQ2hhbmdlSWRdO1xuICAgIH1cbiAgICBpZiAocmVtYWluaW5nQnVkZ2V0ID4gMCkge1xuICAgICAgcmV0dXJuIHJlbWFpbmluZ0J1ZGdldDtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBnZXQgcmVtYWluaW5nUmVjaXBlc051bWJlcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmJ1ZGdldHRlZFJlY2lwZXMucmVkdWNlKChhY2MsIHJlY2lwZSwgaSkgPT5cbiAgICAgICAgLy8gRG9uJ3QgY291bnQgbnVsbCByZWNpcGVzIGFuZCBjdXJyZW50bHkgcmVwbGFjaW5nIHJlY2lwZVxuICAgICAgICByZWNpcGUgJiYgaSAhPT0gdGhpcy5yZWNpcGVUb0NoYW5nZUluZGV4ID8gYWNjIDogYWNjICsgMVxuICAgICAgLCAwKTtcbiAgfVxuXG4gIGdldCBleGNsdWRlZFJlY2lwZXNJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmJ1ZGdldHRlZFJlY2lwZXMuZmlsdGVyKHJlY2lwZSA9PiByZWNpcGUpLm1hcChyZWNpcGUgPT4gcmVjaXBlLmlkKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5pc01lYWx6UGFnZSA9IHRydWU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmVuYWJsZU1lYWxzUGxhbm5lciQucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKGVuYWJsZWQgPT4gIWVuYWJsZWQpLFxuICAgICAgICB0YWtlKDEpXG4gICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLmZlYXR1cmVJc0F1dGhvcml6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLm9ubHlTaG93UHJlcGFyYXRpb24gPSB0cnVlO1xuICAgICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgICAgIHRoaXMucGFnZXZpZXcoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5pbml0UmVjaXBlc1ByaWNpbmcoKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBpbml0Rm9ybSgpOiB2b2lkIHtcbiAgICBjb25zdCBzdG9yZWRGb3JtOiB7IGJ1ZGdldDogbnVtYmVyOyBndWVzdHNDb3VudDogbnVtYmVyOyByZWNpcGVzQ291bnQ6IG51bWJlciB9ID1cbiAgICAgIEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnbWlhbS1tZWFscy1wbGFubmVyLWZvcm0nKSkgYXMgeyBidWRnZXQ6IG51bWJlcjsgZ3Vlc3RzQ291bnQ6IG51bWJlcjsgcmVjaXBlc0NvdW50OiBudW1iZXIgfTtcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdtaWFtLW1lYWxzLXBsYW5uZXItZm9ybScpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgYnVkZ2V0OiBuZXcgRm9ybUNvbnRyb2woc3RvcmVkRm9ybT8uYnVkZ2V0IHx8IHVuZGVmaW5lZCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDEpXSksXG4gICAgICBndWVzdHNDb3VudDogbmV3IEZvcm1Db250cm9sKHN0b3JlZEZvcm0/Lmd1ZXN0c0NvdW50IHx8IDAsIFZhbGlkYXRvcnMubWluKDEpKSxcbiAgICAgIHJlY2lwZXNDb3VudDogbmV3IEZvcm1Db250cm9sKHN0b3JlZEZvcm0/LnJlY2lwZXNDb3VudCB8fCAodGhpcy5jb250ZXh0U2VydmljZS5hbnRpSW5mbGF0aW9uID8gMCA6IDQpLCBWYWxpZGF0b3JzLm1pbigxKSlcbiAgICB9KTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBmZXRjaFJlY2lwZXMoaW5wdXRzOiB7IGJ1ZGdldDogbnVtYmVyOyBndWVzdHNDb3VudDogbnVtYmVyOyByZWNpcGVzQ291bnQ6IG51bWJlciB9KTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLnBsYW4oXG4gICAgICAgIGlucHV0cy5idWRnZXQsIGlucHV0cy5ndWVzdHNDb3VudCwgaW5wdXRzLnJlY2lwZXNDb3VudCwgcmVjaXBlSW5jbHVkZXMsIHJlY2lwZVNwYXJzZUZpZWxkcywgZmFsc2VcbiAgICAgICkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHJlY2lwZXMgPT4ge1xuICAgICAgICAgIHRoaXMuYnVkZ2V0dGVkUmVjaXBlcyA9IFtdOyAvLyBSZWZyZXNoIHRoZSByZXN1bHQgdmlld1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB0aGlzLmJ1ZGdldHRlZFJlY2lwZXMgPSByZWNpcGVzLm1hcChyID0+IHtcbiAgICAgICAgICAgIHIubW9kaWZpZWRHdWVzdHMgPSBpbnB1dHMuZ3Vlc3RzQ291bnQ7XG4gICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hSZWNpcGVzUHJpY2luZygpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUocHJpY2luZ3MgPT4ge1xuICAgICAgICB0aGlzLnVzZWRCdWRnZXQgPSBwcmljaW5ncy5yZWR1Y2UoKGFjYywgcHJpY2luZykgPT4gYWNjICsgcHJpY2luZy5wcmljZSwgMCk7XG4gICAgICAgIHRoaXMudXNlZEJ1ZGdldCA9IE1hdGgucm91bmQodGhpcy51c2VkQnVkZ2V0ICogMTAwKSAvIDEwMDtcbiAgICAgICAgdGhpcy5tYXhCdWRnZXQgPSAodGhpcy5mb3JtLnZhbHVlIGFzIHsgYnVkZ2V0OiBudW1iZXIgfSkuYnVkZ2V0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Ub3AoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5pc01lYWx6UGFnZSA9IGZhbHNlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLm9ubHlTaG93UHJlcGFyYXRpb24gPSBmYWxzZTtcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdtZWFscy1wbGFubmVyJztcbiAgfVxuXG4gIGFkZFJlY2lwZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydExvYWRpbmcoKTtcbiAgICBjb25zdCByZWNpcGVzVG9BZGQgPSB0aGlzLmdldFZhbGlkUmVjaXBlcygpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLndhaXRGb3JCYXNrZXRFbnRyaWVzLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcCgoZW50cmllczogQmFza2V0RW50cnlbXSkgPT4ge1xuICAgICAgICAgIHRoaXMucHJldmlvdXNCYXNrZXRFbnRyaWVzID0gZGVlcENsb25lV2l0aENsYXNzKGVudHJpZXMpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmFkZFJlY2lwZXNUb0Jhc2tldChyZWNpcGVzVG9BZGQpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlY2lwZXNXaWxsQmVBZGRlZCgpLnBpcGUoXG4gICAgICAgICAgICBza2lwV2hpbGUod2lsbEJlQWRkZWQgPT4gd2lsbEJlQWRkZWQpLFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmhhbmRsZUJhc2tldFByZXZpZXcocmVjaXBlc1RvQWRkKSksXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy51cGRhdGVSZXRhaWxlckJhc2tldCgpKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcExvYWRpbmcoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRMb2FkaW5nKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcExvYWRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWxpZFJlY2lwZXMoKTogUmVjaXBlW10ge1xuICAgIHJldHVybiB0aGlzLmJ1ZGdldHRlZFJlY2lwZXMuZmlsdGVyKHIgPT4gcj8uaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRSZWNpcGVzVG9CYXNrZXQocmVjaXBlc1RvQWRkOiBSZWNpcGVbXSk6IHZvaWQge1xuICAgIGNvbnN0IHJlY2lwZUlkcyA9IHJlY2lwZXNUb0FkZC5tYXAociA9PiByLmlkKTtcbiAgICBjb25zdCBtb2RpZmllZEd1ZXN0cyA9IHJlY2lwZXNUb0FkZFswXT8ubW9kaWZpZWRHdWVzdHM7XG4gICAgdGhpcy5iYXNrZXRzU2VydmljZS5hZGRSZWNpcGVzVG9CYXNrZXQocmVjaXBlSWRzLCBtb2RpZmllZEd1ZXN0cywgdGhpcy5ldmVudFRyYWNlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQmFza2V0UHJldmlldyhyZWNpcGVzVG9BZGQ6IFJlY2lwZVtdKSB7XG4gICAgdGhpcy5hZGRlZFJlY2lwZXNJZHMgPSByZWNpcGVzVG9BZGQubWFwKHIgPT4gci5pZCk7XG4gICAgcmV0dXJuIHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0UHJldmlldyQucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICB0YXAoYmFza2V0UHJldmlld0xpbmVzID0+IHtcbiAgICAgICAgaWYgKGJhc2tldFByZXZpZXdMaW5lcyAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuaW5ncmVkaWVudHNSZWdyb3VwZWQgPSB0aGlzLmhhc011dHVhbGl6ZWRFbnRyeShiYXNrZXRQcmV2aWV3TGluZXMpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBoYW5kbGVBY3Rpb25FcnJvcnMoYWN0aW9uOiBBZGRSZWNpcGVGcm9tUGxhbm5lckFjdGlvbikge1xuICAgIGFjdGlvbi5vblRpbWVvdXQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVtb3ZlUHJvZHVjdChhY3Rpb24uYmFza2V0RW50cnksIG5ldyBFdmVudFRyYWNlKCkpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlck5ld0FuZFVwZGF0ZWRFbnRyaWVzKGVudHJpZXM6IEJhc2tldEVudHJ5W10pIHtcbiAgICBjb25zdCBuZXdFbnRyaWVzID0gZW50cmllcy5maWx0ZXIoZW50cnkgPT5cbiAgICAgICF0aGlzLnByZXZpb3VzQmFza2V0RW50cmllcy5maW5kKHByZXZFbnRyeSA9PiBwcmV2RW50cnkuaWQgPT09IGVudHJ5LmlkKSk7XG4gICAgY29uc3QgdXBkYXRlZEVudHJpZXMgPSBlbnRyaWVzLmZpbHRlcihcbiAgICAgIGVudHJ5ID0+IHRoaXMucHJldmlvdXNCYXNrZXRFbnRyaWVzLmZpbmQoXG4gICAgICAgIHByZXZFbnRyeSA9PiBwcmV2RW50cnkuaWQgPT09IGVudHJ5LmlkICYmIHByZXZFbnRyeS5xdWFudGl0eSAhPT0gZW50cnkucXVhbnRpdHlcbiAgICAgIClcbiAgICApO1xuICAgIHJldHVybiBbLi4ubmV3RW50cmllcywgLi4udXBkYXRlZEVudHJpZXNdO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSZXRhaWxlckJhc2tldCgpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLmFjdGl2ZUJhc2tldEVudHJpZXMoKS5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHN3aXRjaE1hcCgoZW50cmllczogQmFza2V0RW50cnlbXSkgPT4ge1xuICAgICAgICBjb25zdCBhZGRSZWNpcGVGcm9tUGxhbm5lckFjdGlvbnMgPSB0aGlzLmZpbHRlck5ld0FuZFVwZGF0ZWRFbnRyaWVzKGVudHJpZXMpLm1hcCgoYmFza2V0RW50cnk6IEJhc2tldEVudHJ5KSA9PiB7XG4gICAgICAgICAgY29uc3QgYWRkUmVjaXBlRnJvbVBsYW5uZXJBY3Rpb24gPSBuZXcgQWRkUmVjaXBlRnJvbVBsYW5uZXJBY3Rpb24oXG4gICAgICAgICAgICBiYXNrZXRFbnRyeSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZSxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRoaXMuc3VwcGxpZXJzU2VydmljZVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5oYW5kbGVBY3Rpb25FcnJvcnMoYWRkUmVjaXBlRnJvbVBsYW5uZXJBY3Rpb24pO1xuICAgICAgICAgIHJldHVybiBhZGRSZWNpcGVGcm9tUGxhbm5lckFjdGlvbjtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYmFza2V0U3luY2hyb1NlcnZpY2UuYWRkVG9BY3Rpb25MaXN0KGFkZFJlY2lwZUZyb21QbGFubmVyQWN0aW9ucyk7XG5cbiAgICAgICAgcmV0dXJuIGVudHJpZXM7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGhhc011dHVhbGl6ZWRFbnRyeShiYXNrZXRQcmV2aWV3TGluZXM6IEJhc2tldFByZXZpZXdMaW5lW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gYmFza2V0UHJldmlld0xpbmVzLnNvbWUobGluZSA9PiB7XG4gICAgICBpZiAobGluZS5pc1JlY2lwZSkge1xuICAgICAgICByZXR1cm4gbGluZS5lbnRyaWVzLmZvdW5kLnNvbWUoKGVudHJ5OiBCYXNrZXRFbnRyeSkgPT4gdGhpcy5pc0VudHJ5TXV0dWFsaXplZChlbnRyeSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0VudHJ5TXV0dWFsaXplZChlbnRyeTogQmFza2V0RW50cnkpOiBib29sZWFuIHtcbiAgICBpZiAoZW50cnkuc3RhdHVzICE9PSAnYWN0aXZlJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZW50cnkucmVjaXBlc0lkcy5sZW5ndGggPiAxO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UmVjaXBlc1ByaWNpbmcoKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5wb3NTZXJ2aWNlLndhaXRGb3JQb3MsIHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0JF0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzdWx0ID0+ICFyZXN1bHRbMV0pXG4gICAgKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIHRoaXMucG9zID0gcmVzdWx0WzBdO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFJlY2lwZXNQcmljaW5nKCk6IE9ic2VydmFibGU8UmVjaXBlUHJpY2luZ1tdPiB7XG4gICAgaWYgKHRoaXMuYnVkZ2V0dGVkUmVjaXBlcy5sZW5ndGggPT09IDAgfHwgIXRoaXMucG9zIHx8ICEodGhpcy5mb3JtLnZhbHVlIGFzIHsgZ3Vlc3RzQ291bnQ6IG51bWJlciB9KS5ndWVzdHNDb3VudCkge1xuICAgICAgcmV0dXJuIG9mKFtdIGFzIFJlY2lwZVByaWNpbmdbXSk7XG4gICAgfVxuICAgIGNvbnN0IHJlcXVlc3RzOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+W10gPSBbXTtcbiAgICB0aGlzLmJ1ZGdldHRlZFJlY2lwZXNQcmljZXMgPSB7fTtcbiAgICB0aGlzLmJ1ZGdldHRlZFJlY2lwZXMuZm9yRWFjaChyZWNpcGUgPT4ge1xuICAgICAgaWYgKHJlY2lwZSkge1xuICAgICAgICByZXF1ZXN0cy5wdXNoKFxuICAgICAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2UuZ2V0UHJpY2luZyhcbiAgICAgICAgICAgIHJlY2lwZS5pZCxcbiAgICAgICAgICAgIHRoaXMucG9zLmlkLFxuICAgICAgICAgICAgKHRoaXMuZm9ybS52YWx1ZSBhcyB7IGd1ZXN0c0NvdW50OiBudW1iZXIgfSkuZ3Vlc3RzQ291bnRcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+ICFyZXN1bHQ/LnByaWNlKSxcbiAgICAgICAgICAgIHRhcChwcmljaW5nID0+IHRoaXMuYnVkZ2V0dGVkUmVjaXBlc1ByaWNlc1tyZWNpcGUuaWRdID0gcHJpY2luZy5wcmljZSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlcXVlc3RzLmxlbmd0aCA+IDAgPyBmb3JrSm9pbihyZXF1ZXN0cykgOiBvZihbXSBhcyBSZWNpcGVQcmljaW5nW10pO1xuICB9XG5cbiAgdXBkYXRlQnVkZ2V0VmFsdWVzKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZmV0Y2hCdWRnZXRWYWx1ZXMoKS5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoQnVkZ2V0VmFsdWVzKCk6IE9ic2VydmFibGU8UmVjaXBlUHJpY2luZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hSZWNpcGVzUHJpY2luZygpLnBpcGUodGFwKHByaWNpbmdzID0+IHtcbiAgICAgIHRoaXMudXNlZEJ1ZGdldCA9IHByaWNpbmdzLmxlbmd0aCA+IDAgPyBwcmljaW5ncy5yZWR1Y2UoKGFjYywgcHJpY2luZykgPT4gYWNjICsgcHJpY2luZy5wcmljZSwgMCkgOiAwO1xuICAgICAgdGhpcy51c2VkQnVkZ2V0ID0gTWF0aC5yb3VuZCh0aGlzLnVzZWRCdWRnZXQgKiAxMDApIC8gMTAwO1xuICAgICAgdGhpcy5tYXhCdWRnZXQgPSAodGhpcy5mb3JtLnZhbHVlIGFzIHsgYnVkZ2V0OiBudW1iZXIgfSkuYnVkZ2V0O1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pKTtcbiAgfVxuXG4gIG9wZW5DYXRhbG9nKHJlY2lwZVRvQ2hhbmdlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucmVjaXBlVG9DaGFuZ2VJbmRleCA9IHJlY2lwZVRvQ2hhbmdlSW5kZXg7XG4gICAgdGhpcy5jYXRhbG9nTW9kZSA9IHRydWU7XG4gICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGNsb3NlQ2F0YWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZVRvQ2hhbmdlSW5kZXggPSBudWxsO1xuICAgIHRoaXMuY2F0YWxvZ01vZGUgPSBmYWxzZTtcbiAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZWRpdFJlY2lwZShyZWNpcGU6IFJlY2lwZSk6IHZvaWQge1xuICAgIHRoaXMuYnVkZ2V0dGVkUmVjaXBlc1t0aGlzLnJlY2lwZVRvQ2hhbmdlSW5kZXhdID0gcmVjaXBlO1xuICAgIHRoaXMudXBkYXRlQnVkZ2V0VmFsdWVzKCk7XG4gICAgdGhpcy5jbG9zZUNhdGFsb2coKTtcbiAgfVxuXG4gIG9wZW5CYXNrZXRDb25maXJtYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVUb0NoYW5nZUluZGV4ID0gbnVsbDtcbiAgICB0aGlzLmJhc2tldENvbmZpcm1lZCA9IHRydWU7XG4gICAgdGhpcy5zZW5kQ29uZmlybWF0aW9uRXZlbnQoKTtcbiAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0b2RvIG5vdCBzdXJlIGl0IGlzIGNhbGxlZCBjb3JyZWN0bHlcbiAgICogQHRvZG8gaW1wbGVtZW50IG90aGVyIHBsYW5uZXIgZXZlbnRzXG4gICAqL1xuICBzZW5kQ29uZmlybWF0aW9uRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdwbGFubmVyLmNvbmZpcm0nLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICBidWRnZXRfdXNlcjogdGhpcy51c2VkQnVkZ2V0LnRvU3RyaW5nKCksXG4gICAgICAgIGJ1ZGdldF9wbGFubmVyOiAodGhpcy5mb3JtLmdldCgnYnVkZ2V0JykudmFsdWUgYXMgbnVtYmVyKS50b1N0cmluZygpLFxuICAgICAgICByZWNpcGVfY291bnQ6ICh0aGlzLmZvcm0uZ2V0KCdyZWNpcGVzQ291bnQnKS52YWx1ZSBhcyBudW1iZXIpLnRvU3RyaW5nKCksXG4gICAgICAgIGd1ZXN0czogKHRoaXMuZm9ybS5nZXQoJ2d1ZXN0c0NvdW50JykudmFsdWUgYXMgbnVtYmVyKS50b1N0cmluZygpLFxuICAgICAgICB1c2VzX2NvdW50OiB0aGlzLnVwZGF0ZVVzZXNDb3VudCgpLnRvU3RyaW5nKCksXG4gICAgICAgIHRpbWVfcGFzc2VkOiAoKERhdGUubm93KCkgLSB0aGlzLnRpbWVPblN0YXJ0KSAvIDEwMDApLnRvU3RyaW5nKClcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgdXBkYXRlVXNlc0NvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3Qgb2xkQ291bnQgPSBwYXJzZUludChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWlhbS1tZWFscy1wbGFubmVyLXVzZXMtY291bnQnKSwgMTApO1xuICAgIGNvbnN0IG5ld0NvdW50ID0gTnVtYmVyLmlzTmFOKG9sZENvdW50KSA/IDEgOiBvbGRDb3VudCArIDE7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21pYW0tbWVhbHMtcGxhbm5lci11c2VzLWNvdW50JywgbmV3Q291bnQudG9TdHJpbmcoKSk7XG4gICAgcmV0dXJuIG5ld0NvdW50O1xuICB9XG5cbiAgc2Nyb2xsVG9Ub3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudG9wQW5jaG9yKSB7XG4gICAgICB0aGlzLnRvcEFuY2hvci5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVXNlZEJ1ZGdldCh1c2VkQnVkZ2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVzZWRCdWRnZXQgPSB1c2VkQnVkZ2V0O1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGRpdiAjbWlhbU1lYWxzUGxhbm5lclRvcEFuY2hvciBjbGFzcz1cIm1pYW0tbWVhbHMtcGxhbm5lci1hbmNob3JcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtaWFtLW1lYWxzLXBsYW5uZXJcIiAqbmdJZj1cImZlYXR1cmVJc0F1dGhvcml6ZWRcIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tbWVhbHMtcGxhbm5lcl9faGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tbWVhbHMtcGxhbm5lcl9faGVhZGVyX19icmVhZGNydW1iXCIgW25nQ2xhc3NdPVwieyAnaGlkZGVuJzogYnVkZ2V0dGVkUmVjaXBlcy5sZW5ndGggPT09IDAgfVwiPlxuICAgICAgPGEgaHJlZj1cIi9cIj5cbiAgICAgICAgPG5nLW1pYW0taWNvblxuICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkhvbWVcIlxuICAgICAgICAgIHdpZHRoPVwiMThcIlxuICAgICAgICAgIGhlaWdodD1cIjE4XCJcbiAgICAgICAgICBwcmltYXJ5Q29sb3I9XCIjMEYxOTFGXCJcbiAgICAgICAgPjwvbmctbWlhbS1pY29uPlxuICAgICAgPC9hPlxuICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5DaGV2cm9uRG93blwiIGNsYXNzPVwiY2hldnJvbi1yaWdodFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgPGEgW2hyZWZdPVwiY29udGV4dFNlcnZpY2UuY2F0YWxvZ1VybFwiIGNsYXNzPVwiaW5hY3RpdmVcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5JZMOpZXMgcmVwYXM8L3NwYW4+XG4gICAgICA8L2E+XG4gICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09XCJpY29uLkNoZXZyb25Eb3duXCIgY2xhc3M9XCJjaGV2cm9uLXJpZ2h0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PC9uZy1taWFtLWljb24+XG4gICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJhY3RpdmVcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5QbGFuaWZpZXIgbWVzIHJlcGFzPC9zcGFuPlxuICAgICAgPC9hPlxuICAgICAgPG5nLW1pYW0taWNvbiAqbmdJZj1cImNhdGFsb2dNb2RlICYmICFiYXNrZXRDb25maXJtZWRcIiBbaWNvbk5hbWVdPVwiaWNvbi5DaGV2cm9uRG93blwiIGNsYXNzPVwiY2hldnJvbi1yaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgPGEgKm5nSWY9XCJjYXRhbG9nTW9kZSAmJiAhYmFza2V0Q29uZmlybWVkXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwic3ViQ2F0ZWdvcnlcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5Bam91dGVyIHVuZSBpZMOpZSByZXBhczwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLW1lYWxzLXBsYW5uZXJfX2NvbnRlbnRcIiAqbmdJZj1cImZvcm1cIj5cbiAgICA8bmctbWlhbS1tZWFscy1wbGFubmVyLWZvcm1cbiAgICAgICpuZ0lmPVwiYWRkZWRSZWNpcGVzSWRzLmxlbmd0aCA9PT0gMCAmJiAhY2F0YWxvZ01vZGUgJiYgIWJhc2tldENvbmZpcm1lZFwiXG4gICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICBbcmVkdWNlZF09XCJidWRnZXR0ZWRSZWNpcGVzLmxlbmd0aCA+IDBcIiBbZm9ybV09XCJmb3JtXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgICAoc3VibWl0dGVkKT1cImZldGNoUmVjaXBlcygkZXZlbnQpXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3JlZHVjZWQnOiBidWRnZXR0ZWRSZWNpcGVzLmxlbmd0aCA+IDAgfVwiPjwvbmctbWlhbS1tZWFscy1wbGFubmVyLWZvcm0+XG4gICAgPG5nLW1pYW0tbWVhbHMtcGxhbm5lci1yZXN1bHRcbiAgICAgICpuZ0lmPVwiYnVkZ2V0dGVkUmVjaXBlcy5sZW5ndGggPiAwICYmIGFkZGVkUmVjaXBlc0lkcy5sZW5ndGggPT09IDAgJiYgIWNhdGFsb2dNb2RlICYmICFiYXNrZXRDb25maXJtZWRcIlxuICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgW3JlY2lwZXNdPVwiYnVkZ2V0dGVkUmVjaXBlc1wiIFt1c2VkQnVkZ2V0XT1cInVzZWRCdWRnZXRcIiBbbWF4QnVkZ2V0XT1cIm1heEJ1ZGdldFwiIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgICAgKHJlY2lwZVJlbW92YWwpPVwidXBkYXRlQnVkZ2V0VmFsdWVzKClcIlxuICAgICAgKGNvbmZpcm1lZCk9XCJhZGRSZWNpcGVzKClcIiAob3BlbkNhdGFsb2cpPVwib3BlbkNhdGFsb2coJGV2ZW50KVwiPjwvbmctbWlhbS1tZWFscy1wbGFubmVyLXJlc3VsdD5cbiAgICA8bmctbWlhbS1tZWFscy1wbGFubmVyLWJhc2tldC1wcmV2aWV3XG4gICAgICAqbmdJZj1cImFkZGVkUmVjaXBlc0lkcy5sZW5ndGggPiAwICYmICFjYXRhbG9nTW9kZSAmJiAhYmFza2V0Q29uZmlybWVkXCJcbiAgICAgIFtyZWNpcGVzSWRzXT1cImFkZGVkUmVjaXBlc0lkc1wiXG4gICAgICBbdXNlZEJ1ZGdldF09XCJ1c2VkQnVkZ2V0XCJcbiAgICAgIFttYXhCdWRnZXRdPVwibWF4QnVkZ2V0XCJcbiAgICAgIFtndWVzdHNdPVwiZm9ybS52YWx1ZS5ndWVzdHNDb3VudFwiXG4gICAgICBbaW5ncmVkaWVudHNSZWdyb3VwZWRdPVwiaW5ncmVkaWVudHNSZWdyb3VwZWRcIlxuICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgW25nQ2xhc3NdPVwieyAncmVkdWNlZCc6IGFkZGVkUmVjaXBlc0lkcy5sZW5ndGggPT09IDAgJiYgIWNhdGFsb2dNb2RlICYmICFiYXNrZXRDb25maXJtZWR9XCJcbiAgICAgIChjbG9zZWQpPVwib3BlbkJhc2tldENvbmZpcm1hdGlvbigpXCJcbiAgICAgICh1c2VkQnVkZ2V0Q2hhbmdlZCk9XCJ1cGRhdGVVc2VkQnVkZ2V0KCRldmVudClcIj5cbiAgICA8L25nLW1pYW0tbWVhbHMtcGxhbm5lci1iYXNrZXQtcHJldmlldz5cbiAgICA8bmctbWlhbS1tZWFscy1wbGFubmVyLWNhdGFsb2dcbiAgICAgICpuZ0lmPVwiY2F0YWxvZ01vZGUgJiYgIWJhc2tldENvbmZpcm1lZFwiXG4gICAgICBbbW9kaWZpZWRHdWVzdHNdPVwiZm9ybS52YWx1ZS5ndWVzdHNDb3VudFwiXG4gICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICBbcmVtYWluaW5nQnVkZ2V0XT1cInJlbWFpbmluZ0J1ZGdldFwiXG4gICAgICBbcmVtYWluaW5nUmVjaXBlc051bWJlcl09XCJyZW1haW5pbmdSZWNpcGVzTnVtYmVyXCJcbiAgICAgIFtleGNsdWRlZFJlY2lwZXNJZHNdPVwiZXhjbHVkZWRSZWNpcGVzSWRzXCJcbiAgICAgIChlZGl0UmVjaXBlKT1cImVkaXRSZWNpcGUoJGV2ZW50KVwiXG4gICAgICAoY2FuY2VsZWQpPVwiY2xvc2VDYXRhbG9nKClcIj5cbiAgICA8L25nLW1pYW0tbWVhbHMtcGxhbm5lci1jYXRhbG9nPlxuICAgIDxuZy1taWFtLW1lYWxzLXBsYW5uZXItYmFza2V0LWNvbmZpcm1hdGlvblxuICAgICAgKm5nSWY9XCJiYXNrZXRDb25maXJtZWRcIlxuICAgICAgW3JlY2lwZXNJZHNdPVwiYWRkZWRSZWNpcGVzSWRzXCJcbiAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCJcbiAgICAgIFtidWRnZXRdPVwidXNlZEJ1ZGdldFwiPlxuICAgIDwvbmctbWlhbS1tZWFscy1wbGFubmVyLWJhc2tldC1jb25maXJtYXRpb24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -267,7 +267,8 @@ function RecipeCardComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
267
267
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
268
268
|
i0.ɵɵproperty("threshold", 0)("debounceTime", 0);
|
|
269
269
|
i0.ɵɵadvance(3);
|
|
270
|
-
i0.ɵɵproperty("src", ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl)
|
|
270
|
+
i0.ɵɵproperty("src", ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl);
|
|
271
|
+
i0.ɵɵattribute("aria-hidden", true);
|
|
271
272
|
i0.ɵɵadvance(4);
|
|
272
273
|
i0.ɵɵproperty("ngIf", !(ctx_r0.displayBadge && ctx_r0.recipe.sponsorLogoUrl));
|
|
273
274
|
i0.ɵɵadvance(1);
|
|
@@ -572,7 +573,7 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
|
|
|
572
573
|
}
|
|
573
574
|
else {
|
|
574
575
|
i18n_6 = $localize `:␟f51693cf087a834d433fa3835d7b64905fdc57ee␟9008711340501624723:Découvrez nos recettes`;
|
|
575
|
-
} return [["ngMiamInViewport", "", 1, "miam-recipe-card", 3, "condition", "ngClass", "inViewport"], ["class", "miam-recipe-card__container", "ngMiamInViewport", "", 3, "threshold", "debounceTime", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-recipe-card__container", 3, "threshold", "debounceTime", "inViewport"], [1, "miam-recipe-card__top", 3, "click"], [1, "miam-recipe-card__picture"], ["loading", "lazy", 3, "src", "alt", "error"], ["aria-hidden", "true", 1, "miam-recipe-card__gradient"], [1, "miam-recipe-card__content"], [1, "miam-recipe-card__top-container"], ["class", "miam-recipe-card__like", 4, "ngIf"], ["class", "miam-recipe-card_sponso_and_promo_badge", 4, "ngIf"], ["class", "miam-recipe-card__badge-container", 3, "ngClass", 4, "ngIf"], [1, "miam-recipe-card__picture__bottom"], [1, "miam-recipe-card__title", "miam-ds-text", "weight-xxl", "size-m"], [1, "miam-recipe-card__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom", 3, "click"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], [1, "miam-recipe-card__actions"], [1, "miam-recipe-card__infos"], ["class", "miam-recipe-card__difficulty-and-time", 4, "ngIf"], [1, "miam-recipe-card__price-and-promotion"], ["class", "miam-recipe-card__bottom-promotion", 4, "ngIf"], ["class", "miam-recipe-card__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked", 4, "ngIf"], ["class", "miam-recipe-card__actions__replace", 4, "ngIf"], ["class", "miam-ds-button ghost", 3, "click", 4, "ngIf"], [1, "miam-recipe-card__like"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card_sponso_and_promo_badge"], [4, "ngIf"], ["class", "miam-recipe-card__sponsor-container", 4, "ngIf"], [1, "miam-recipe-card__sponsor-container"], [1, "miam-recipe-card__sponsor-picture", 3, "src", "alt"], [1, "miam-recipe-card__badge-container", 3, "ngClass"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "
|
|
576
|
+
} return [["ngMiamInViewport", "", 1, "miam-recipe-card", 3, "condition", "ngClass", "inViewport"], ["class", "miam-recipe-card__container", "ngMiamInViewport", "", 3, "threshold", "debounceTime", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-recipe-card__container", 3, "threshold", "debounceTime", "inViewport"], [1, "miam-recipe-card__top", 3, "click"], [1, "miam-recipe-card__picture"], ["loading", "lazy", 3, "src", "alt", "error"], ["aria-hidden", "true", 1, "miam-recipe-card__gradient"], [1, "miam-recipe-card__content"], [1, "miam-recipe-card__top-container"], ["class", "miam-recipe-card__like", 4, "ngIf"], ["class", "miam-recipe-card_sponso_and_promo_badge", 4, "ngIf"], ["class", "miam-recipe-card__badge-container", 3, "ngClass", 4, "ngIf"], [1, "miam-recipe-card__picture__bottom"], [1, "miam-recipe-card__title", "miam-ds-text", "weight-xxl", "size-m"], [1, "miam-recipe-card__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom", 3, "click"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], [1, "miam-recipe-card__actions"], [1, "miam-recipe-card__infos"], ["class", "miam-recipe-card__difficulty-and-time", 4, "ngIf"], [1, "miam-recipe-card__price-and-promotion"], ["class", "miam-recipe-card__bottom-promotion", 4, "ngIf"], ["class", "miam-recipe-card__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked", 4, "ngIf"], ["class", "miam-recipe-card__actions__replace", 4, "ngIf"], ["class", "miam-ds-button ghost", 3, "click", 4, "ngIf"], [1, "miam-recipe-card__like"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card_sponso_and_promo_badge"], [4, "ngIf"], ["class", "miam-recipe-card__sponsor-container", 4, "ngIf"], [1, "miam-recipe-card__sponsor-container"], [1, "miam-recipe-card__sponsor-picture", 3, "src", "alt"], [1, "miam-recipe-card__badge-container", 3, "ngClass"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "Id\u00E9e repas", 4, "ngIf"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "Id\u00E9e boisson", 4, "ngIf"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "Id\u00E9e repas", 1, "miam-recipe-card__badge"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "Id\u00E9e boisson", 1, "miam-recipe-card__badge"], [1, "miam-recipe-card__ingredients__pictures"], [1, "miam-recipe-card__ingredients__picture"], ["aria-hidden", "true", 3, "src", "alt", "error"], ["class", "miam-recipe-card__ingredients__more", 4, "ngIf"], [1, "miam-recipe-card__ingredients__more"], [1, "miam-recipe-card__difficulty-and-time"], ["class", "miam-recipe-card__difficulty", 4, "ngIf"], ["class", "miam-recipe-card__time", 4, "ngIf"], [1, "miam-recipe-card__difficulty"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/ChefHat.svg", "alt", "", "aria-hidden", "true"], [1, "miam-ds-text", "size-s", "weight-m"], [1, "miam-recipe-card__time"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Clock.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom-promotion"], [1, "miam-recipe-card__price"], [1, "miam-ds-text", "weight-xxl", 3, "recipeId", "serves", "inViewport", "priceSet"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked"], [1, "miam-recipe-card__actions__replace"], [1, "miam-ds-button", "ghost", 3, "click"], i18n_0, ["aria-label", "Supprimer la recette", 1, "miam-ds-button", "ghost", "square", 3, "click"], ["primaryColor", "var(--m-color-primary)", 3, "iconName"], i18n_2, [1, "miam-recipe-card__redirect", 3, "href"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/Suggestion_Redirect_Background.png", "alt", "D\u00E9couvrez nos recettes"], [1, "miam-recipe-card__redirect__footer"], [1, "miam-recipe-card__redirect__title", "miam-ds-text", "size-l", "weight-xxl"], i18n_4, [1, "miam-recipe-card__redirect__button", "miam-ds-button", "primary"], i18n_6]; }, template: function RecipeCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
576
577
|
i0.ɵɵelementStart(0, "div", 0);
|
|
577
578
|
i0.ɵɵlistener("inViewport", function RecipeCardComponent_Template_div_inViewport_0_listener() { return ctx.sendShowEvent(); });
|
|
578
579
|
i0.ɵɵtemplate(1, RecipeCardComponent_div_1_Template, 32, 20, "div", 1);
|
|
@@ -633,4 +634,4 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
|
|
|
633
634
|
}], hide: [{
|
|
634
635
|
type: Output
|
|
635
636
|
}] }); })();
|
|
636
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0YsT0FBTyxFQUFFLE1BQU0sRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7OztJQ09uQywwQ0FLc0I7OztJQUZwQix1Q0FBaUIsbUNBQUE7OztJQUp2QiwrQkFBcUY7SUFDakYsaUhBS3NCOztJQUMxQixpQkFBTTs7O0lBTEMsZUFBNEQ7SUFBNUQsdUdBQTREOzs7SUFRakUsaURBQXdHOzs7SUFF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QU07WUFDRyxTQUFTO2tCQUFsQixNQUFNO1lBQ0csc0JBQXNCO2tCQUEvQixNQUFNO1lBQ0csaUJBQWlCO2tCQUExQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLElBQUk7a0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc2tpcFdoaWxlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fY29tcG9uZW50cy9hYnN0cmFjdHMvZXZlbnQtdHJhY2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGUsIFNpbXBsaWZpZWRJbmdyZWRpZW50IH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBCYXNrZXRzU2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFJlY2lwZXNTZXJ2aWNlLCBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBSZWNpcGVQcmljaW5nIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9yZWNpcGUtcHJpY2luZyc7XG5cbmNvbnN0IHJlY2lwZUluY2x1ZGVzID0gWydyZWNpcGUtcHJvdmlkZXInLCAnc3BvbnNvcnMnLCAndGFncyddO1xuY29uc3QgcmVjaXBlU3BhcnNlRmllbGRzID0ge1xuICByZWNpcGVzOiBbJ3RpdGxlJywgJ251bWJlci1vZi1ndWVzdHMnLCAnbWVkaWEtdXJsJywgJ3ZpZGVvLWlkJywgJ2ZpbGlncmFuZS1sb2dvLXVybCcsICdkaWZmaWN1bHR5JywgJ3ByZXBhcmF0aW9uLXRpbWUnLCAnY29va2luZy10aW1lJyxcbiAgICAncmVzdGluZy10aW1lJywgLi4ucmVjaXBlSW5jbHVkZXNdLFxuICBzcG9uc29yczogWydsb2dvLXVybCddLFxuICB0YWdzOiBbJ3RhZy10eXBlLWlkJ10sXG4gICdyZWNpcGUtcHJvdmlkZXInOiBbJ25hbWUnXVxufTtcblxuLyoqXG4gKiBUaGlzIGlzIGFuIGFuZ3VsYXIgY29tcG9uZW50IGRlc2lnbiB0byBiZSBhIHdlYiBjb21wb25lbnRcbiAqIHRoYXQncyB3aHkgd2UgdXNlIG9uUHVzaFN0cmF0ZWdpZSB3aXRoIHRoZSBjaGFuZ2VEZXRldGVjdG9yUmVmXG4gKiB0byBhdm9pZCBjb21tb24gaXNzdWVcbiAqIGd1aWRlIC0+IGh0dHBzOi8vbmV0YmFzYWwuY29tL2EtY29tcHJlaGVuc2l2ZS1ndWlkZS10by1hbmd1bGFyLW9ucHVzaC1jaGFuZ2UtZGV0ZWN0aW9uLXN0cmF0ZWd5LTViYWM0OTMwNzRhNFxuICogYW5kIGFsc293IHdlIHVzZSBTaGFkb3dEb20gdG8gcHJvdGVjdCBzdHlsZSBvZiBvdXIgY29tcG9uZW50XG4gKiBhbmQgYWxzb3cgc3R5bGUgb2YgdGhlIHBhcmVudCBhcGxpY2F0aW9uIHRoYXQgd2lsbCB1c2UgaXRcbiAqIGRvYyAtPiBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVmlld0VuY2Fwc3VsYXRpb25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2FyZENvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJlY2lwZUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBASW5wdXQoKSByYW5kb21Nb2RlRW5hYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBwcm9kdWN0SWRzOiB7IGlkOiBzdHJpbmc7IGhhc0hpZ2hXZWlnaHQ/OiBib29sZWFuIH1bXTtcbiAgQElucHV0KCkgcHJldmlld0FsbG93ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlJbmZvcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlHdWVzdHMgPSB0cnVlO1xuICBASW5wdXQoKSBhZGRSZWNpcGVNb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcGxhY2VNb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc3BsYXlWYXJpYW50ID0gMTtcbiAgQElucHV0KCkgc2VydmVzPzogbnVtYmVyOyAvLyBvdmVycmlkZSB0aGUgZGVmYXVsdCBudW1iZXIgb2Ygc2VydmluZ3Mgb2YgdGhlIHJlY2lwZVxuICBAT3V0cHV0KCkgcmVtb3ZlZEZyb21GYXZvcml0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaXNwbGF5ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSByZW1vdmVGcm9tTWVhbHNQbGFubmVyID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsPigpO1xuICBAT3V0cHV0KCkgYWRkVG9NZWFsc1BsYW5uZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwZT4oKTtcbiAgQE91dHB1dCgpIG9wZW5DYXRhbG9nID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsPigpO1xuICBAT3V0cHV0KCkgaGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBpY29uID0gSWNvbjtcbiAgYWN0aW9uc09wZW5lZCA9IGZhbHNlO1xuICBpc2xvYWRlZCA9IGZhbHNlO1xuICBpbkJhc2tldCA9IGZhbHNlO1xuICBpblZpZXdwb3J0ID0gZmFsc2U7XG4gIGlzRHJpbmsgPSBmYWxzZTtcbiAgaXNJblByb21vdGlvbiA9IGZhbHNlO1xuXG4gIGRpc3BsYXlMaWtlc0JvdHRvbSA9IGZhbHNlO1xuICBkaXNwbGF5QmFkZ2UgPSBmYWxzZTtcblxuICBwcml2YXRlIGJhc2tldFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHByaW1hcnlCdXR0b25DbGlja2VkJCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyByZWNpcGVTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwdWJsaWMgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHVibGljIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJlY2lwZVNlcnZpY2UuZGlzcGxheWVkUmVjaXBlQ2hhbmdlZCQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSkpO1xuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5VmFyaWFudCgpO1xuICAgIGlmICh0aGlzLnJlY2lwZSkge1xuICAgICAgdGhpcy5hZnRlclJlY2lwZUxvYWQodGhpcy5yZWNpcGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWNpcGVJZCkge1xuICAgICAgdGhpcy5sb2FkUmVjaXBlRnJvbUlkKCk7XG4gICAgfSBlbHNlIGlmIChzaW1wbGVDaGFuZ2VzLnByb2R1Y3RJZHMgJiYgIXRoaXMucmFuZG9tTW9kZUVuYWJsZSkge1xuICAgICAgdGhpcy5sb2FkUmVjaXBlRnJvbUNvbnRleHQoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXQkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJlY2lwZVNlcnZpY2UucmVsb2FkUmVjaXBlcyQuc3Vic2NyaWJlKHNob3VsZFJlbG9hZCA9PiB7XG4gICAgICBpZiAoc2hvdWxkUmVsb2FkKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBDSEVDSyBESVNQTEFZIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gLy9cblxuICB1cGRhdGVEaXNwbGF5VmFyaWFudCgpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGlzcGxheVZhcmlhbnQpIHtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgdGhpcy5kaXNwbGF5QmFkZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpc3BsYXlMaWtlc0JvdHRvbSA9IGZhbHNlO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAzOlxuICAgICAgICB0aGlzLmRpc3BsYXlCYWRnZSA9IHRydWU7XG4gICAgICAgIHRoaXMuZGlzcGxheUxpa2VzQm90dG9tID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZGlzcGxheUJhZGdlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzcGxheUxpa2VzQm90dG9tID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gRElTUExBWSBSRUNJUEUgREVUQUlMUyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgb3BlblJlY2lwZSgpOiB2b2lkIHtcbiAgICAvLyBjb25zdCB2aWRlb0V2ZW50ID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlLnZpZGVvSWQ7XG4gICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmRpc3BsYXlPYmplY3QoXG4gICAgICB0aGlzLnJlY2lwZSxcbiAgICAgIHtcbiAgICAgICAgcHJldmlld0FsbG93ZWQ6IHRoaXMucHJldmlld0FsbG93ZWQsXG4gICAgICAgIGd1ZXN0czogdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMsXG4gICAgICAgIGRpc3BsYXlHdWVzdHM6IHRoaXMuZGlzcGxheUd1ZXN0cyxcbiAgICAgICAgaGVscEJ1dHRvbkFsbG93ZWQ6IHRoaXMuaGVscEJ1dHRvbkFsbG93ZWRcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuZGlzcGxheWVkLmVtaXQoKTtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ3JlY2lwZS5kaXNwbGF5JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZS5pZCxcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMub3JpZ2luVHJhY2UucHJvcHMuY2F0ZWdvcnlfaWRcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBESVNQTEFZIFJFQ0lQRSBERVRBSUxTIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gLy9cblxuICBpbmdyZWRpZW50UGljdHVyZShpbmdyZWRpZW50OiBTaW1wbGlmaWVkSW5ncmVkaWVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGluZ3JlZGllbnQucGljdHVyZSB8fCB0aGlzLmNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgZm9yIGFjY2Vzc2liaWxpdHlcbiAgZ2V0SW5ncmVkaWVudHNBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucmVjaXBlPy5tb2RpZmllZEluZ3JlZGllbnRzIHx8IHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGZpcnN0VHdvID0gdGhpcy5yZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5zbGljZSgwLCAyKS5tYXAoaSA9PiBpLm5hbWUpLmpvaW4oJywgJyk7XG5cbiAgICBpZiAodGhpcy5yZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5sZW5ndGggPD0gMikge1xuICAgICAgcmV0dXJuICdJbmdyw6lkaWVudHMgcHJpbmNpcGF1eDogJyArIGZpcnN0VHdvO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvdGhlcnNDb3VudCA9IHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIC0gMjtcbiAgICAgIHJldHVybiAnSW5ncsOpZGllbnRzIHByaW5jaXBhdXg6ICcgKyBmaXJzdFR3byArICcgZXQgJyArIG90aGVyc0NvdW50ICsgJyBhdXRyZXMnO1xuICAgIH1cbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gU0hPVyBFVkVOVCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgc2VuZFNob3dFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ3JlY2lwZS5zaG93JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZS5pZCxcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMub3JpZ2luVHJhY2UucHJvcHMuY2F0ZWdvcnlfaWRcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY2FyZEluVmlld3BvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5pblZpZXdwb3J0ID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB1cGRhdGVJc0luUHJvbW90aW9uKGZldGNoZWRQcmljZTogUmVjaXBlUHJpY2luZykge1xuICAgIHRoaXMuaXNJblByb21vdGlvbiA9IGZldGNoZWRQcmljZVsnZGlzY291bnRlZC1pbmdyZWRpZW50cy1jb3VudCddID4gMDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEZFVENIIFRIRSBSRUNJUEUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAvL1xuXG4gIC8qKlxuICAgKiBGZXRjaCBhIHJlY2lwZSBmcm9tIGl0cyBpZC5cbiAgICogSGlkZSB0aGUgY2FyZCBpZiBub25lIGlzIHJldHVybmVkIChjb3VsZCBiZSBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0cyBvciBpdCBpcyBub3Qgc2hhcmVkIHdpdGggdGhlIHN1cHBsaWVyKVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkUmVjaXBlRnJvbUlkKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmdldCh0aGlzLnJlY2lwZUlkLCB7IGluY2x1ZGU6IHJlY2lwZUluY2x1ZGVzLCBmaWVsZHM6IHJlY2lwZVNwYXJzZUZpZWxkcyB9KS5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaGlkZS5lbWl0KCk7XG4gICAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBSZWNpcGUpID0+IHtcbiAgICAgICAgdGhpcy5hZnRlclJlY2lwZUxvYWQocmVzdWx0KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzdWdnZXN0aW9uIGJhc2VkIG9uIGNvbnRleHQgKGVpdGhlciBwcm9kdWN0SWRzIG9yIHJhbmRvbU1vZGUpLiBIaWRlIHRoZSBjYXJkIGlmIG5vbmUgaXMgcmV0dXJuZWRcbiAgICovXG4gIHByaXZhdGUgbG9hZFJlY2lwZUZyb21Db250ZXh0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5mZXRjaFN1Z2dlc3Rpb25PclJhbmRvbSgpLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShyZXN1bHRzID0+ICFyZXN1bHRzKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaGlkZS5lbWl0KCk7XG4gICAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgocmVzdWx0czogUmVjaXBlW10pID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmFmdGVyUmVjaXBlTG9hZChyZXN1bHRzWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmlzbG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZnRlclJlY2lwZUxvYWQocmVzdWx0OiBSZWNpcGUpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZSA9IHJlc3VsdDtcbiAgICB0aGlzLnVwZGF0ZUd1ZXN0c0lmTmVjZXNzYXJ5KCk7XG4gICAgdGhpcy5jaGVja1JlY2lwZUluQmFza2V0KCk7XG4gICAgdGhpcy5jaGVja0lzRHJpbmsoKTtcbiAgICB0aGlzLmlzbG9hZGVkID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoU3VnZ2VzdGlvbk9yUmFuZG9tKCk6IE9ic2VydmFibGU8UmVjaXBlW10+IHtcbiAgICBpZiAodGhpcy5yYW5kb21Nb2RlRW5hYmxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWNpcGVTZXJ2aWNlLmdldFJhbmRvbShyZWNpcGVJbmNsdWRlcywgcmVjaXBlU3BhcnNlRmllbGRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucmVjaXBlU2VydmljZS5nZXRTdWdnZXN0aW9uKHRoaXMucHJvZHVjdElkcywgcmVjaXBlSW5jbHVkZXMsIHJlY2lwZVNwYXJzZUZpZWxkcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBndWVzdHMgZnJvbSB0aGUgdmFsdWUgaW4gdGhlIGJhc2tldCBpZiB0aGUgcmVjaXBlIGlzIGluIHRoZSBiYXNrZXRcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlR3Vlc3RzSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVJc0luQmFza2V0KHRoaXMucmVjaXBlLmlkKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShpc0luTGlzdCA9PiB7XG4gICAgICBpZiAoaXNJbkxpc3QgJiYgIXRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzKSB7XG4gICAgICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gdGhpcy5zZXJ2ZXMgfHwgdGhpcy5iYXNrZXRzU2VydmljZS5ndWVzdHNGb3JSZWNpcGUodGhpcy5yZWNpcGUuaWQpIHx8ICt0aGlzLnJlY2lwZS5ndWVzdHM7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cykge1xuICAgICAgICB0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cyA9IHRoaXMuc2VydmVzIHx8ICt0aGlzLnJlY2lwZS5ndWVzdHM7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1JlY2lwZUluQmFza2V0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5iYXNrZXRTdWJzY3JpcHRpb24gJiYgdGhpcy5yZWNpcGUpIHtcbiAgICAgIHRoaXMuYmFza2V0U3Vic2NyaXB0aW9uID0gdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVJc0luQmFza2V0KHRoaXMucmVjaXBlLmlkKS5zdWJzY3JpYmUoaW5CYXNrZXQgPT4ge1xuICAgICAgICB0aGlzLmluQmFza2V0ID0gaW5CYXNrZXQ7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5iYXNrZXRTdWJzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tJc0RyaW5rKCk6IHZvaWQge1xuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLnJlY2lwZT8ucmVsYXRpb25zaGlwcy50YWdzPy5kYXRhIHx8IFtdO1xuICAgIHRoaXMuaXNEcmluayA9IHRhZ3Muc29tZSh0YWcgPT4gWydtZWFsX3R5cGVfYm9pc3NvbicsICdtZWFsX3R5cGVfY29ja3RhaWwnXS5pbmNsdWRlcyh0YWcuaWQpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRcIiBuZ01pYW1JblZpZXdwb3J0IFtjb25kaXRpb25dPVwiISFyZWNpcGVcIiAoaW5WaWV3cG9ydCk9XCJzZW5kU2hvd0V2ZW50KClcIlxuICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAndmFyaWFudC0xJzogKGRpc3BsYXlWYXJpYW50ICE9PSAyICYmIGRpc3BsYXlWYXJpYW50ICE9PSAzKSxcbiAgICAgICd2YXJpYW50LTInOiAoZGlzcGxheVZhcmlhbnQgPT09IDIpLFxuICAgICAgJ3ZhcmlhbnQtMyc6IChkaXNwbGF5VmFyaWFudCA9PT0gMyksXG4gICAgICAnaW4tYmFza2V0JzogaW5CYXNrZXQsXG4gICAgICAncmVkaXJlY3QtY2FyZCc6IGlzbG9hZGVkICYmICFyZWNpcGVcbiAgICAgIH1cIj5cbiAgPCEtLSBNQUlOIENPTlRBSU5FUiAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvbnRhaW5lclwiICpuZ0lmPVwicmVjaXBlXCJcbiAgICAgICBuZ01pYW1JblZpZXdwb3J0IFt0aHJlc2hvbGRdPVwiMFwiIFtkZWJvdW5jZVRpbWVdPVwiMFwiIChpblZpZXdwb3J0KT1cImNhcmRJblZpZXdwb3J0KClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fdG9wXCIgKGNsaWNrKT1cIm9wZW5SZWNpcGUoKVwiPlxuICAgICAgPCEtLSBQSUNUVVJFIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtzcmNdPVwicmVjaXBlPy5hdHRyaWJ1dGVzWydtZWRpYS11cmwnXVwiXG4gICAgICAgICAgKGVycm9yKT1cIiRldmVudC50YXJnZXRbJ3NyYyddID0gY29udGV4dFNlcnZpY2UuZGVmYXVsdFJlY2lwZVBpY3R1cmVcIlxuICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICBbYWx0XT1cIidQaG90byBkZSBsYSByZWNldHRlICcgKyByZWNpcGU/LmF0dHJpYnV0ZXMudGl0bGVcIlxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gR1JBRElFTlQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZ3JhZGllbnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190b3AtY29udGFpbmVyXCI+XG4gICAgICAgICAgPCEtLSBMSUtFIEJVVFRPTiAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fbGlrZVwiICpuZ0lmPVwiIShkaXNwbGF5QmFkZ2UgJiYgcmVjaXBlLnNwb25zb3JMb2dvVXJsKVwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1saWtlLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRpc3BsYXlMaWtlc0JvdHRvbSAmJiAodXNlclNlcnZpY2UuaXNMb2dnZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX2ljb25cIlxuICAgICAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGUnXG4gICAgICAgICAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIj5cbiAgICAgICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIoIWRpc3BsYXlCYWRnZSAmJiBpc0luUHJvbW90aW9uKSB8fCByZWNpcGUuc3BvbnNvckxvZ29VcmxcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX3Nwb25zb19hbmRfcHJvbW9fYmFkZ2VcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcm9tb3Rpb24tYmFkZ2UgKm5nSWY9XCIhZGlzcGxheUJhZGdlICYmIGlzSW5Qcm9tb3Rpb25cIj48L25nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZT5cbiAgICAgICAgICAgIDwhLS0gU1BPTlNPUiAtLT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuc3BvbnNvckxvZ29VcmxcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3Nwb25zb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19zcG9uc29yLXBpY3R1cmVcIiBbc3JjXT1cInJlY2lwZS5zcG9uc29yTG9nb1VybFwiIFthbHRdPVwiJ0xvZ28gZHUgc3BvbnNvciAnICsgcmVjaXBlLnNwb25zb3JOYW1lXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIE1FQUwgLyBEUklOSyBJREVBIEJBREdFIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5QmFkZ2VcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JhZGdlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImlzRHJpbmsgPyAnZHJpbmsnIDogJ2Zvb2QnXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlICpuZ0lmPVwiaXNJblByb21vdGlvblwiPjwvbmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFpc0RyaW5rXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19iYWRnZVwiXG4gICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaW1hZ2VzL3JlY2lwZV9jYXJkLWJhZGdlLnN2Z1wiXG4gICAgICAgICAgICAgICAgIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImlzRHJpbmtcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JhZGdlXCJcbiAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy85LjAvcmVjaXBlLWNhcmQtYmFkZ2UtZHJpbmtzLnN2Z1wiXG4gICAgICAgICAgICAgICAgIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX2JvdHRvbVwiPlxuICAgICAgICAgIDwhLS0gVElUTEUgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3RpdGxlIG1pYW0tZHMtdGV4dCB3ZWlnaHQteHhsIHNpemUtbVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgcmVjaXBlLmF0dHJpYnV0ZXNbJ3RpdGxlJ10gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSBDT1VOVEVSIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb3VudGVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInUG91ciAnICsgKHJlY2lwZS5tb2RpZmllZEd1ZXN0cyB8fCByZWNpcGUuZ3Vlc3RzKSArICcgcGVyc29ubmVzJ1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLWRzLXRleHQgd2VpZ2h0LXh4bCBzaXplLW1cIj57eyByZWNpcGUubW9kaWZpZWRHdWVzdHMgfHwgcmVjaXBlLmd1ZXN0cyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9yZWNpcGUtY291bnRlci5zdmdcIiBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIENBUkQgRk9PVEVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19ib3R0b21cIiAoY2xpY2spPVwib3BlblJlY2lwZSgpXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY29udGV4dFNlcnZpY2UuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgcmVjaXBlPy5tb2RpZmllZEluZ3JlZGllbnRzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZXNcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEluZ3JlZGllbnRzQXJpYUxhYmVsKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5ncmVkaWVudHNfX3BpY3R1cmVcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbc3JjXT1cImluZ3JlZGllbnRQaWN0dXJlKHJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzWzBdKVwiXG4gICAgICAgICAgICBbYWx0XT1cIicnXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZVwiXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlXCI+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgW3NyY109XCJpbmdyZWRpZW50UGljdHVyZShyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50c1sxXSlcIlxuICAgICAgICAgICAgW2FsdF09XCInJ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAoZXJyb3IpPVwiJGV2ZW50LnRhcmdldFsnc3JjJ10gPSBjb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmVcIlxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fbW9yZVwiICpuZ0lmPVwicmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoID4gMlwiPlxuICAgICAgICAgICsge3sgcmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIC0gMiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNcIj5cbiAgICAgICAgPCEtLSBJTkZPUyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9zXCI+XG4gICAgICAgICAgPCEtLSBUSU1FIEFORCBESUZGSUNVTFRZIC0tPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUluZm9zICYmIChyZWNpcGUuZGlmZmljdWx0eSB8fCByZWNpcGUudG90YWxUaW1lKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2RpZmZpY3VsdHktYW5kLXRpbWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuZGlmZmljdWx0eVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZGlmZmljdWx0eVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0RpZmZpY3VsdMOpOiAnICsgcmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzW3JlY2lwZS5kaWZmaWN1bHR5IC0gMV0ubGFiZWxcIj5cbiAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0NoZWZIYXQuc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWRzLXRleHQgc2l6ZS1zIHdlaWdodC1tXCI+e3sgcmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzW3JlY2lwZS5kaWZmaWN1bHR5IC0gMV0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUudG90YWxUaW1lXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190aW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInVGVtcHMgZGUgcHLDqXBhcmF0aW9uOiAnICsgcmVjaXBlLnRvdGFsVGltZVwiPlxuICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQ2xvY2suc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtcyB3ZWlnaHQtbVwiPnt7IHJlY2lwZS50b3RhbFRpbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcHJpY2UtYW5kLXByb21vdGlvblwiPlxuICAgICAgICAgICAgPG5nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZSAqbmdJZj1cImlzSW5Qcm9tb3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JvdHRvbS1wcm9tb3Rpb25cIj48L25nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZT5cbiAgICAgICAgICAgIDwhLS0gUFJJQ0UgLS0+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVjaXBlICYmIGRpc3BsYXlQcmljaW5nXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19wcmljZVwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgICAgICAgIGNsYXNzPVwibWlhbS1kcy10ZXh0IHdlaWdodC14eGxcIlxuICAgICAgICAgICAgICAgIFtyZWNpcGVJZF09XCJyZWNpcGUuaWRcIlxuICAgICAgICAgICAgICAgIFtzZXJ2ZXNdPVwicmVjaXBlLm1vZGlmaWVkR3Vlc3RzIHx8ICtyZWNpcGUuZ3Vlc3RzXCJcbiAgICAgICAgICAgICAgICBbaW5WaWV3cG9ydF09XCJpblZpZXdwb3J0XCJcbiAgICAgICAgICAgICAgICAocHJpY2VTZXQpPVwidXBkYXRlSXNJblByb21vdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ1RBIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY3RhXCI+XG4gICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUxpa2VzQm90dG9tICYmICh1c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luYylcIlxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGUnXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtY2FyZC1jdGFcbiAgICAgICAgICAgICpuZ0lmPVwicHJldmlld0FsbG93ZWQgJiYgIWFkZFJlY2lwZU1vZGUgJiYgIXJlcGxhY2VNb2RlXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPVwicmVjaXBlXCJcbiAgICAgICAgICAgIFtwcmV2aWV3QWxsb3dlZF09XCJwcmV2aWV3QWxsb3dlZFwiXG4gICAgICAgICAgICBbZGlzcGxheUd1ZXN0c109XCJkaXNwbGF5R3Vlc3RzXCJcbiAgICAgICAgICAgIFtoZWxwQnV0dG9uQWxsb3dlZF09XCJoZWxwQnV0dG9uQWxsb3dlZFwiXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgICAgICAoZGlzcGxheWVkKT1cImRpc3BsYXllZC5lbWl0KClcIlxuICAgICAgICAgICAgKGNsaWNrZWQpPVwicHJpbWFyeUJ1dHRvbkNsaWNrZWQkLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1yZWNpcGUtY2FyZC1jdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIE9QVElPTk5BTCBDVEFTIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicmVwbGFjZU1vZGVcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX3JlcGxhY2VcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1kcy1idXR0b24gZ2hvc3RcIiAoY2xpY2spPVwib3BlbkNhdGFsb2cuZW1pdCgpXCI+XG4gICAgICAgICAgICA8c3BhbiBpMThuPkNoYW5nZXI8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIGdob3N0IHNxdWFyZVwiIChjbGljayk9XCJyZW1vdmVGcm9tTWVhbHNQbGFubmVyLmVtaXQoKVwiIGFyaWEtbGFiZWw9XCJTdXBwcmltZXIgbGEgcmVjZXR0ZVwiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5UcmFzaFwiIHByaW1hcnlDb2xvcj1cInZhcigtLW0tY29sb3ItcHJpbWFyeSlcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJhZGRSZWNpcGVNb2RlXCIgY2xhc3M9XCJtaWFtLWRzLWJ1dHRvbiBnaG9zdFwiIChjbGljayk9XCJhZGRUb01lYWxzUGxhbm5lci5lbWl0KHJlY2lwZSlcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPkFqb3V0ZXI8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIEdFTkVSSUMgQ0FSRCAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvbnRhaW5lclwiICpuZ0lmPVwiaXNsb2FkZWQgJiYgIXJlY2lwZVwiXG4gICAgICAgbmdNaWFtSW5WaWV3cG9ydCBbdGhyZXNob2xkXT1cIjBcIiBbZGVib3VuY2VUaW1lXT1cIjBcIiAoaW5WaWV3cG9ydCk9XCJjYXJkSW5WaWV3cG9ydCgpXCI+XG4gICAgPGEgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdFwiIFtocmVmXT1cImNvbnRleHRTZXJ2aWNlLmNhdGFsb2dVcmxcIj5cbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pbWFnZXMvU3VnZ2VzdGlvbl9SZWRpcmVjdF9CYWNrZ3JvdW5kLnBuZ1wiIGFsdD1cIkTDqWNvdXZyZXogbm9zIHJlY2V0dGVzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmVkaXJlY3RfX2Zvb3RlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmVkaXJlY3RfX3RpdGxlIG1pYW0tZHMtdGV4dCBzaXplLWwgd2VpZ2h0LXh4bFwiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+QmVzb2luIGQnaW5zcGlyYXRpb24gPzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdF9fYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPkTDqWNvdXZyZXogbm9zIHJlY2V0dGVzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
637
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0YsT0FBTyxFQUFFLE1BQU0sRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7OztJQ1FuQywwQ0FLc0I7OztJQUZwQix1Q0FBaUIsbUNBQUE7OztJQUp2QiwrQkFBcUY7SUFDakYsaUhBS3NCOztJQUMxQixpQkFBTTs7O0lBTEMsZUFBNEQ7SUFBNUQsdUdBQTREOzs7SUFRakUsaURBQXdHOzs7SUFF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QUE1QixNQUFNO1lBQ0csU0FBUztrQkFBbEIsTUFBTTtZQUNHLHNCQUFzQjtrQkFBL0IsTUFBTTtZQUNHLGlCQUFpQjtrQkFBMUIsTUFBTTtZQUNHLFdBQVc7a0JBQXBCLE1BQU07WUFDRyxJQUFJO2tCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHNraXBXaGlsZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjaXBlLCBTaW1wbGlmaWVkSW5ncmVkaWVudCB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgQmFza2V0c1NlcnZpY2UsIENvbnRleHRTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9pY29uLmVudW0nO1xuaW1wb3J0IHsgUmVjaXBlUHJpY2luZyB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMvcmVjaXBlLXByaWNpbmcnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ3Nwb25zb3JzJywgJ3RhZ3MnXTtcbmNvbnN0IHJlY2lwZVNwYXJzZUZpZWxkcyA9IHtcbiAgcmVjaXBlczogWyd0aXRsZScsICdudW1iZXItb2YtZ3Vlc3RzJywgJ21lZGlhLXVybCcsICd2aWRlby1pZCcsICdmaWxpZ3JhbmUtbG9nby11cmwnLCAnZGlmZmljdWx0eScsICdwcmVwYXJhdGlvbi10aW1lJywgJ2Nvb2tpbmctdGltZScsXG4gICAgJ3Jlc3RpbmctdGltZScsIC4uLnJlY2lwZUluY2x1ZGVzXSxcbiAgc3BvbnNvcnM6IFsnbG9nby11cmwnXSxcbiAgdGFnczogWyd0YWctdHlwZS1pZCddLFxuICAncmVjaXBlLXByb3ZpZGVyJzogWyduYW1lJ11cbn07XG5cbi8qKlxuICogVGhpcyBpcyBhbiBhbmd1bGFyIGNvbXBvbmVudCBkZXNpZ24gdG8gYmUgYSB3ZWIgY29tcG9uZW50XG4gKiB0aGF0J3Mgd2h5IHdlIHVzZSBvblB1c2hTdHJhdGVnaWUgd2l0aCB0aGUgY2hhbmdlRGV0ZXRlY3RvclJlZlxuICogdG8gYXZvaWQgY29tbW9uIGlzc3VlXG4gKiBndWlkZSAtPiBodHRwczovL25ldGJhc2FsLmNvbS9hLWNvbXByZWhlbnNpdmUtZ3VpZGUtdG8tYW5ndWxhci1vbnB1c2gtY2hhbmdlLWRldGVjdGlvbi1zdHJhdGVneS01YmFjNDkzMDc0YTRcbiAqIGFuZCBhbHNvdyB3ZSB1c2UgU2hhZG93RG9tIHRvIHByb3RlY3Qgc3R5bGUgb2Ygb3VyIGNvbXBvbmVudFxuICogYW5kIGFsc293IHN0eWxlIG9mIHRoZSBwYXJlbnQgYXBsaWNhdGlvbiB0aGF0IHdpbGwgdXNlIGl0XG4gKiBkb2MgLT4gaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb3JlL1ZpZXdFbmNhcHN1bGF0aW9uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tcmVjaXBlLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBlLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGUtY2FyZC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIFJlY2lwZUNhcmRDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSByZWNpcGU6IFJlY2lwZTtcbiAgQElucHV0KCkgcmFuZG9tTW9kZUVuYWJsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgcHJvZHVjdElkczogeyBpZDogc3RyaW5nOyBoYXNIaWdoV2VpZ2h0PzogYm9vbGVhbiB9W107XG4gIEBJbnB1dCgpIHByZXZpZXdBbGxvd2VkID0gdHJ1ZTtcbiAgQElucHV0KCkgaGVscEJ1dHRvbkFsbG93ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNwbGF5SW5mb3MgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheVByaWNpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNwbGF5R3Vlc3RzID0gdHJ1ZTtcbiAgQElucHV0KCkgYWRkUmVjaXBlTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSByZXBsYWNlTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5VmFyaWFudCA9IDE7XG4gIEBJbnB1dCgpIHNlcnZlcz86IG51bWJlcjsgLy8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIHNlcnZpbmdzIG9mIHRoZSByZWNpcGVcbiAgQE91dHB1dCgpIHJlbW92ZWRGcm9tRmF2b3JpdGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGlzcGxheWVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVtb3ZlRnJvbU1lYWxzUGxhbm5lciA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcbiAgQE91dHB1dCgpIGFkZFRvTWVhbHNQbGFubmVyID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNpcGU+KCk7XG4gIEBPdXRwdXQoKSBvcGVuQ2F0YWxvZyA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcbiAgQE91dHB1dCgpIGhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgaWNvbiA9IEljb247XG4gIGFjdGlvbnNPcGVuZWQgPSBmYWxzZTtcbiAgaXNsb2FkZWQgPSBmYWxzZTtcbiAgaW5CYXNrZXQgPSBmYWxzZTtcbiAgaW5WaWV3cG9ydCA9IGZhbHNlO1xuICBpc0RyaW5rID0gZmFsc2U7XG4gIGlzSW5Qcm9tb3Rpb24gPSBmYWxzZTtcblxuICBkaXNwbGF5TGlrZXNCb3R0b20gPSBmYWxzZTtcbiAgZGlzcGxheUJhZGdlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBiYXNrZXRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdO1xuICBwcmltYXJ5QnV0dG9uQ2xpY2tlZCQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgcmVjaXBlU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHVibGljIGJhc2tldHNTZXJ2aWNlOiBCYXNrZXRzU2VydmljZSxcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICkge1xuICAgIHN1cGVyKGFuYWx5dGljc1NlcnZpY2UpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5yZWNpcGVTZXJ2aWNlLmRpc3BsYXllZFJlY2lwZUNoYW5nZWQkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpKTtcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhcmlhbnQoKTtcbiAgICBpZiAodGhpcy5yZWNpcGUpIHtcbiAgICAgIHRoaXMuYWZ0ZXJSZWNpcGVMb2FkKHRoaXMucmVjaXBlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVjaXBlSWQpIHtcbiAgICAgIHRoaXMubG9hZFJlY2lwZUZyb21JZCgpO1xuICAgIH0gZWxzZSBpZiAoc2ltcGxlQ2hhbmdlcy5wcm9kdWN0SWRzICYmICF0aGlzLnJhbmRvbU1vZGVFbmFibGUpIHtcbiAgICAgIHRoaXMubG9hZFJlY2lwZUZyb21Db250ZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0JC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5yZWNpcGVTZXJ2aWNlLnJlbG9hZFJlY2lwZXMkLnN1YnNjcmliZShzaG91bGRSZWxvYWQgPT4ge1xuICAgICAgaWYgKHNob3VsZFJlbG9hZCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gQ0hFQ0sgRElTUExBWSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgdXBkYXRlRGlzcGxheVZhcmlhbnQoKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLmRpc3BsYXlWYXJpYW50KSB7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMuZGlzcGxheUJhZGdlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5TGlrZXNCb3R0b20gPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgMzpcbiAgICAgICAgdGhpcy5kaXNwbGF5QmFkZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpc3BsYXlMaWtlc0JvdHRvbSA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmRpc3BsYXlCYWRnZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc3BsYXlMaWtlc0JvdHRvbSA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIERJU1BMQVkgUkVDSVBFIERFVEFJTFMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAvL1xuXG4gIG9wZW5SZWNpcGUoKTogdm9pZCB7XG4gICAgLy8gY29uc3QgdmlkZW9FdmVudCA9IHRoaXMuY29udGV4dFNlcnZpY2UudmlkZW9SZWNpcGVzRW5hYmxlZCAmJiB0aGlzLnJlY2lwZS52aWRlb0lkO1xuICAgIHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5T2JqZWN0KFxuICAgICAgdGhpcy5yZWNpcGUsXG4gICAgICB7XG4gICAgICAgIHByZXZpZXdBbGxvd2VkOiB0aGlzLnByZXZpZXdBbGxvd2VkLFxuICAgICAgICBndWVzdHM6IHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzLFxuICAgICAgICBkaXNwbGF5R3Vlc3RzOiB0aGlzLmRpc3BsYXlHdWVzdHMsXG4gICAgICAgIGhlbHBCdXR0b25BbGxvd2VkOiB0aGlzLmhlbHBCdXR0b25BbGxvd2VkXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmRpc3BsYXllZC5lbWl0KCk7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuZGlzcGxheScsXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB7XG4gICAgICAgIHJlY2lwZV9pZDogdGhpcy5yZWNpcGUuaWQsXG4gICAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLm9yaWdpblRyYWNlLnByb3BzLmNhdGVnb3J5X2lkXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gRElTUExBWSBSRUNJUEUgREVUQUlMUyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgaW5ncmVkaWVudFBpY3R1cmUoaW5ncmVkaWVudDogU2ltcGxpZmllZEluZ3JlZGllbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBpbmdyZWRpZW50LnBpY3R1cmUgfHwgdGhpcy5jb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmU7XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kIGZvciBhY2Nlc3NpYmlsaXR5XG4gIGdldEluZ3JlZGllbnRzQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50cyB8fCB0aGlzLnJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBmaXJzdFR3byA9IHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMuc2xpY2UoMCwgMikubWFwKGkgPT4gaS5uYW1lKS5qb2luKCcsICcpO1xuXG4gICAgaWYgKHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIDw9IDIpIHtcbiAgICAgIHJldHVybiAnSW5ncsOpZGllbnRzIHByaW5jaXBhdXg6ICcgKyBmaXJzdFR3bztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3RoZXJzQ291bnQgPSB0aGlzLnJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzLmxlbmd0aCAtIDI7XG4gICAgICByZXR1cm4gJ0luZ3LDqWRpZW50cyBwcmluY2lwYXV4OiAnICsgZmlyc3RUd28gKyAnIGV0ICcgKyBvdGhlcnNDb3VudCArICcgYXV0cmVzJztcbiAgICB9XG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIFNIT1cgRVZFTlQgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAvL1xuXG4gIHNlbmRTaG93RXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuc2hvdycsXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB7XG4gICAgICAgIHJlY2lwZV9pZDogdGhpcy5yZWNpcGUuaWQsXG4gICAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLm9yaWdpblRyYWNlLnByb3BzLmNhdGVnb3J5X2lkXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGNhcmRJblZpZXdwb3J0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5WaWV3cG9ydCA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdXBkYXRlSXNJblByb21vdGlvbihmZXRjaGVkUHJpY2U6IFJlY2lwZVByaWNpbmcpIHtcbiAgICB0aGlzLmlzSW5Qcm9tb3Rpb24gPSBmZXRjaGVkUHJpY2VbJ2Rpc2NvdW50ZWQtaW5ncmVkaWVudHMtY291bnQnXSA+IDA7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBGRVRDSCBUSEUgUkVDSVBFIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gLy9cblxuICAvKipcbiAgICogRmV0Y2ggYSByZWNpcGUgZnJvbSBpdHMgaWQuXG4gICAqIEhpZGUgdGhlIGNhcmQgaWYgbm9uZSBpcyByZXR1cm5lZCAoY291bGQgYmUgYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdHMgb3IgaXQgaXMgbm90IHNoYXJlZCB3aXRoIHRoZSBzdXBwbGllcilcbiAgICovXG4gIHByaXZhdGUgbG9hZFJlY2lwZUZyb21JZCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMucmVjaXBlU2VydmljZS5nZXQodGhpcy5yZWNpcGVJZCwgeyBpbmNsdWRlOiByZWNpcGVJbmNsdWRlcywgZmllbGRzOiByZWNpcGVTcGFyc2VGaWVsZHMgfSkucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHJlc3VsdCA9PiByZXN1bHQuaXNfbG9hZGluZyksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKHJlc3VsdDogUmVjaXBlKSA9PiB7XG4gICAgICAgIHRoaXMuYWZ0ZXJSZWNpcGVMb2FkKHJlc3VsdCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc3VnZ2VzdGlvbiBiYXNlZCBvbiBjb250ZXh0IChlaXRoZXIgcHJvZHVjdElkcyBvciByYW5kb21Nb2RlKS4gSGlkZSB0aGUgY2FyZCBpZiBub25lIGlzIHJldHVybmVkXG4gICAqL1xuICBwcml2YXRlIGxvYWRSZWNpcGVGcm9tQ29udGV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZmV0Y2hTdWdnZXN0aW9uT3JSYW5kb20oKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0cyA9PiAhcmVzdWx0cyksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKHJlc3VsdHM6IFJlY2lwZVtdKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5hZnRlclJlY2lwZUxvYWQocmVzdWx0c1swXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc2xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5oaWRlLmVtaXQoKTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWZ0ZXJSZWNpcGVMb2FkKHJlc3VsdDogUmVjaXBlKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGUgPSByZXN1bHQ7XG4gICAgdGhpcy51cGRhdGVHdWVzdHNJZk5lY2Vzc2FyeSgpO1xuICAgIHRoaXMuY2hlY2tSZWNpcGVJbkJhc2tldCgpO1xuICAgIHRoaXMuY2hlY2tJc0RyaW5rKCk7XG4gICAgdGhpcy5pc2xvYWRlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFN1Z2dlc3Rpb25PclJhbmRvbSgpOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgaWYgKHRoaXMucmFuZG9tTW9kZUVuYWJsZSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVjaXBlU2VydmljZS5nZXRSYW5kb20ocmVjaXBlSW5jbHVkZXMsIHJlY2lwZVNwYXJzZUZpZWxkcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnJlY2lwZVNlcnZpY2UuZ2V0U3VnZ2VzdGlvbih0aGlzLnByb2R1Y3RJZHMsIHJlY2lwZUluY2x1ZGVzLCByZWNpcGVTcGFyc2VGaWVsZHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZ3Vlc3RzIGZyb20gdGhlIHZhbHVlIGluIHRoZSBiYXNrZXQgaWYgdGhlIHJlY2lwZSBpcyBpbiB0aGUgYmFza2V0XG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUd1ZXN0c0lmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlSXNJbkJhc2tldCh0aGlzLnJlY2lwZS5pZCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoaXNJbkxpc3QgPT4ge1xuICAgICAgaWYgKGlzSW5MaXN0ICYmICF0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cykge1xuICAgICAgICB0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cyA9IHRoaXMuc2VydmVzIHx8IHRoaXMuYmFza2V0c1NlcnZpY2UuZ3Vlc3RzRm9yUmVjaXBlKHRoaXMucmVjaXBlLmlkKSB8fCArdGhpcy5yZWNpcGUuZ3Vlc3RzO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMpIHtcbiAgICAgICAgdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSB0aGlzLnNlcnZlcyB8fCArdGhpcy5yZWNpcGUuZ3Vlc3RzO1xuICAgICAgfVxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tSZWNpcGVJbkJhc2tldCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYmFza2V0U3Vic2NyaXB0aW9uICYmIHRoaXMucmVjaXBlKSB7XG4gICAgICB0aGlzLmJhc2tldFN1YnNjcmlwdGlvbiA9IHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlSXNJbkJhc2tldCh0aGlzLnJlY2lwZS5pZCkuc3Vic2NyaWJlKGluQmFza2V0ID0+IHtcbiAgICAgICAgdGhpcy5pbkJhc2tldCA9IGluQmFza2V0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYmFza2V0U3Vic2NyaXB0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSXNEcmluaygpOiB2b2lkIHtcbiAgICBjb25zdCB0YWdzID0gdGhpcy5yZWNpcGU/LnJlbGF0aW9uc2hpcHMudGFncz8uZGF0YSB8fCBbXTtcbiAgICB0aGlzLmlzRHJpbmsgPSB0YWdzLnNvbWUodGFnID0+IFsnbWVhbF90eXBlX2JvaXNzb24nLCAnbWVhbF90eXBlX2NvY2t0YWlsJ10uaW5jbHVkZXModGFnLmlkKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkXCIgbmdNaWFtSW5WaWV3cG9ydCBbY29uZGl0aW9uXT1cIiEhcmVjaXBlXCIgKGluVmlld3BvcnQpPVwic2VuZFNob3dFdmVudCgpXCJcbiAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3ZhcmlhbnQtMSc6IChkaXNwbGF5VmFyaWFudCAhPT0gMiAmJiBkaXNwbGF5VmFyaWFudCAhPT0gMyksXG4gICAgICAndmFyaWFudC0yJzogKGRpc3BsYXlWYXJpYW50ID09PSAyKSxcbiAgICAgICd2YXJpYW50LTMnOiAoZGlzcGxheVZhcmlhbnQgPT09IDMpLFxuICAgICAgJ2luLWJhc2tldCc6IGluQmFza2V0LFxuICAgICAgJ3JlZGlyZWN0LWNhcmQnOiBpc2xvYWRlZCAmJiAhcmVjaXBlXG4gICAgICB9XCI+XG4gIDwhLS0gTUFJTiBDT05UQUlORVIgLS0+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250YWluZXJcIiAqbmdJZj1cInJlY2lwZVwiXG4gICAgICAgbmdNaWFtSW5WaWV3cG9ydCBbdGhyZXNob2xkXT1cIjBcIiBbZGVib3VuY2VUaW1lXT1cIjBcIiAoaW5WaWV3cG9ydCk9XCJjYXJkSW5WaWV3cG9ydCgpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3RvcFwiIChjbGljayk9XCJvcGVuUmVjaXBlKClcIj5cbiAgICAgIDwhLS0gUElDVFVSRSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBbc3JjXT1cInJlY2lwZT8uYXR0cmlidXRlc1snbWVkaWEtdXJsJ11cIlxuICAgICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRSZWNpcGVQaWN0dXJlXCJcbiAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgW2FsdF09XCJcIlxuICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gR1JBRElFTlQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZ3JhZGllbnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190b3AtY29udGFpbmVyXCI+XG4gICAgICAgICAgPCEtLSBMSUtFIEJVVFRPTiAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fbGlrZVwiICpuZ0lmPVwiIShkaXNwbGF5QmFkZ2UgJiYgcmVjaXBlLnNwb25zb3JMb2dvVXJsKVwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1saWtlLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRpc3BsYXlMaWtlc0JvdHRvbSAmJiAodXNlclNlcnZpY2UuaXNMb2dnZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX2ljb25cIlxuICAgICAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGUnXG4gICAgICAgICAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIj5cbiAgICAgICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIoIWRpc3BsYXlCYWRnZSAmJiBpc0luUHJvbW90aW9uKSB8fCByZWNpcGUuc3BvbnNvckxvZ29VcmxcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX3Nwb25zb19hbmRfcHJvbW9fYmFkZ2VcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcm9tb3Rpb24tYmFkZ2UgKm5nSWY9XCIhZGlzcGxheUJhZGdlICYmIGlzSW5Qcm9tb3Rpb25cIj48L25nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZT5cbiAgICAgICAgICAgIDwhLS0gU1BPTlNPUiAtLT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuc3BvbnNvckxvZ29VcmxcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3Nwb25zb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19zcG9uc29yLXBpY3R1cmVcIiBbc3JjXT1cInJlY2lwZS5zcG9uc29yTG9nb1VybFwiIFthbHRdPVwiJ0xvZ28gZHUgc3BvbnNvciAnICsgcmVjaXBlLnNwb25zb3JOYW1lXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIE1FQUwgLyBEUklOSyBJREVBIEJBREdFIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5QmFkZ2VcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JhZGdlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImlzRHJpbmsgPyAnZHJpbmsnIDogJ2Zvb2QnXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlICpuZ0lmPVwiaXNJblByb21vdGlvblwiPjwvbmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFpc0RyaW5rXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19iYWRnZVwiXG4gICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaW1hZ2VzL3JlY2lwZV9jYXJkLWJhZGdlLnN2Z1wiXG4gICAgICAgICAgICAgICAgIGFsdD1cIklkw6llIHJlcGFzXCI+XG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiaXNEcmlua1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYmFkZ2VcIlxuICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zLzkuMC9yZWNpcGUtY2FyZC1iYWRnZS1kcmlua3Muc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiSWTDqWUgYm9pc3NvblwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX2JvdHRvbVwiPlxuICAgICAgICAgIDwhLS0gVElUTEUgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3RpdGxlIG1pYW0tZHMtdGV4dCB3ZWlnaHQteHhsIHNpemUtbVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgcmVjaXBlLmF0dHJpYnV0ZXNbJ3RpdGxlJ10gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSBDT1VOVEVSIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb3VudGVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInUG91ciAnICsgKHJlY2lwZS5tb2RpZmllZEd1ZXN0cyB8fCByZWNpcGUuZ3Vlc3RzKSArICcgcGVyc29ubmVzJ1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLWRzLXRleHQgd2VpZ2h0LXh4bCBzaXplLW1cIj57eyByZWNpcGUubW9kaWZpZWRHdWVzdHMgfHwgcmVjaXBlLmd1ZXN0cyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9yZWNpcGUtY291bnRlci5zdmdcIiBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIENBUkQgRk9PVEVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19ib3R0b21cIiAoY2xpY2spPVwib3BlblJlY2lwZSgpXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY29udGV4dFNlcnZpY2UuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgcmVjaXBlPy5tb2RpZmllZEluZ3JlZGllbnRzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZXNcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEluZ3JlZGllbnRzQXJpYUxhYmVsKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5ncmVkaWVudHNfX3BpY3R1cmVcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbc3JjXT1cImluZ3JlZGllbnRQaWN0dXJlKHJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzWzBdKVwiXG4gICAgICAgICAgICBbYWx0XT1cIicnXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZVwiXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlXCI+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgW3NyY109XCJpbmdyZWRpZW50UGljdHVyZShyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50c1sxXSlcIlxuICAgICAgICAgICAgW2FsdF09XCInJ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAoZXJyb3IpPVwiJGV2ZW50LnRhcmdldFsnc3JjJ10gPSBjb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmVcIlxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fbW9yZVwiICpuZ0lmPVwicmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoID4gMlwiPlxuICAgICAgICAgICsge3sgcmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIC0gMiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNcIj5cbiAgICAgICAgPCEtLSBJTkZPUyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9zXCI+XG4gICAgICAgICAgPCEtLSBUSU1FIEFORCBESUZGSUNVTFRZIC0tPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUluZm9zICYmIChyZWNpcGUuZGlmZmljdWx0eSB8fCByZWNpcGUudG90YWxUaW1lKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2RpZmZpY3VsdHktYW5kLXRpbWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuZGlmZmljdWx0eVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZGlmZmljdWx0eVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0RpZmZpY3VsdMOpOiAnICsgcmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzW3JlY2lwZS5kaWZmaWN1bHR5IC0gMV0ubGFiZWxcIj5cbiAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0NoZWZIYXQuc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWRzLXRleHQgc2l6ZS1zIHdlaWdodC1tXCI+e3sgcmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzW3JlY2lwZS5kaWZmaWN1bHR5IC0gMV0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUudG90YWxUaW1lXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190aW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInVGVtcHMgZGUgcHLDqXBhcmF0aW9uOiAnICsgcmVjaXBlLnRvdGFsVGltZVwiPlxuICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQ2xvY2suc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtcyB3ZWlnaHQtbVwiPnt7IHJlY2lwZS50b3RhbFRpbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcHJpY2UtYW5kLXByb21vdGlvblwiPlxuICAgICAgICAgICAgPG5nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZSAqbmdJZj1cImlzSW5Qcm9tb3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JvdHRvbS1wcm9tb3Rpb25cIj48L25nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZT5cbiAgICAgICAgICAgIDwhLS0gUFJJQ0UgLS0+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVjaXBlICYmIGRpc3BsYXlQcmljaW5nXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19wcmljZVwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgICAgICAgIGNsYXNzPVwibWlhbS1kcy10ZXh0IHdlaWdodC14eGxcIlxuICAgICAgICAgICAgICAgIFtyZWNpcGVJZF09XCJyZWNpcGUuaWRcIlxuICAgICAgICAgICAgICAgIFtzZXJ2ZXNdPVwicmVjaXBlLm1vZGlmaWVkR3Vlc3RzIHx8ICtyZWNpcGUuZ3Vlc3RzXCJcbiAgICAgICAgICAgICAgICBbaW5WaWV3cG9ydF09XCJpblZpZXdwb3J0XCJcbiAgICAgICAgICAgICAgICAocHJpY2VTZXQpPVwidXBkYXRlSXNJblByb21vdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ1RBIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY3RhXCI+XG4gICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUxpa2VzQm90dG9tICYmICh1c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luYylcIlxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGUnXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtY2FyZC1jdGFcbiAgICAgICAgICAgICpuZ0lmPVwicHJldmlld0FsbG93ZWQgJiYgIWFkZFJlY2lwZU1vZGUgJiYgIXJlcGxhY2VNb2RlXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPVwicmVjaXBlXCJcbiAgICAgICAgICAgIFtwcmV2aWV3QWxsb3dlZF09XCJwcmV2aWV3QWxsb3dlZFwiXG4gICAgICAgICAgICBbZGlzcGxheUd1ZXN0c109XCJkaXNwbGF5R3Vlc3RzXCJcbiAgICAgICAgICAgIFtoZWxwQnV0dG9uQWxsb3dlZF09XCJoZWxwQnV0dG9uQWxsb3dlZFwiXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgICAgICAoZGlzcGxheWVkKT1cImRpc3BsYXllZC5lbWl0KClcIlxuICAgICAgICAgICAgKGNsaWNrZWQpPVwicHJpbWFyeUJ1dHRvbkNsaWNrZWQkLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1yZWNpcGUtY2FyZC1jdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIE9QVElPTk5BTCBDVEFTIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicmVwbGFjZU1vZGVcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX3JlcGxhY2VcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1kcy1idXR0b24gZ2hvc3RcIiAoY2xpY2spPVwib3BlbkNhdGFsb2cuZW1pdCgpXCI+XG4gICAgICAgICAgICA8c3BhbiBpMThuPkNoYW5nZXI8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIGdob3N0IHNxdWFyZVwiIChjbGljayk9XCJyZW1vdmVGcm9tTWVhbHNQbGFubmVyLmVtaXQoKVwiIGFyaWEtbGFiZWw9XCJTdXBwcmltZXIgbGEgcmVjZXR0ZVwiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5UcmFzaFwiIHByaW1hcnlDb2xvcj1cInZhcigtLW0tY29sb3ItcHJpbWFyeSlcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJhZGRSZWNpcGVNb2RlXCIgY2xhc3M9XCJtaWFtLWRzLWJ1dHRvbiBnaG9zdFwiIChjbGljayk9XCJhZGRUb01lYWxzUGxhbm5lci5lbWl0KHJlY2lwZSlcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPkFqb3V0ZXI8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIEdFTkVSSUMgQ0FSRCAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvbnRhaW5lclwiICpuZ0lmPVwiaXNsb2FkZWQgJiYgIXJlY2lwZVwiXG4gICAgICAgbmdNaWFtSW5WaWV3cG9ydCBbdGhyZXNob2xkXT1cIjBcIiBbZGVib3VuY2VUaW1lXT1cIjBcIiAoaW5WaWV3cG9ydCk9XCJjYXJkSW5WaWV3cG9ydCgpXCI+XG4gICAgPGEgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdFwiIFtocmVmXT1cImNvbnRleHRTZXJ2aWNlLmNhdGFsb2dVcmxcIj5cbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pbWFnZXMvU3VnZ2VzdGlvbl9SZWRpcmVjdF9CYWNrZ3JvdW5kLnBuZ1wiIGFsdD1cIkTDqWNvdXZyZXogbm9zIHJlY2V0dGVzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmVkaXJlY3RfX2Zvb3RlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmVkaXJlY3RfX3RpdGxlIG1pYW0tZHMtdGV4dCBzaXplLWwgd2VpZ2h0LXh4bFwiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+QmVzb2luIGQnaW5zcGlyYXRpb24gPzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdF9fYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPkTDqWNvdXZyZXogbm9zIHJlY2V0dGVzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
package/esm2015/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.js
CHANGED
|
@@ -209,7 +209,7 @@ CatalogCategoryComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogCategoryC
|
|
|
209
209
|
}
|
|
210
210
|
else {
|
|
211
211
|
i18n_4 = $localize `:␟8f2c8f66fed7cbda7649b4ba2320375ff7526dbb␟5011068305185462335: Chargement des résultats... `;
|
|
212
|
-
} return [["class", "miam-catalog-category", "ngMiamInViewport", "", 3, "condition", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-catalog-category", 3, "condition", "inViewport"], [1, "miam-catalog-category__header"], ["role", "heading", "aria-level", "2", 1, "miam-catalog-category__title", 3, "click"], [1, "miam-catalog-category__header__bottom"], [1, "miam-catalog-category__subtitle", "miam-ds-text", "size-s", "weight-l"], [1, "miam-catalog-category__link", "miam-ds-text", "size-s", "weight-xl", 3, "click"], i18n_2, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "", "aria-hidden", "true"], [1, "miam-catalog-category__content"], ["categoryContent", ""], [1, "miam-catalog-category__cards"], ["categoryCards", ""], ["class", "miam-catalog-category__loader", 4, "ngIf"], [3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-category__loader"], i18n_4, [3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace"], [3, "article"]]; }, template: function CatalogCategoryComponent_Template(rf, ctx) { if (rf & 1) {
|
|
212
|
+
} return [["class", "miam-catalog-category", "ngMiamInViewport", "", 3, "condition", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-catalog-category", 3, "condition", "inViewport"], [1, "miam-catalog-category__header"], ["role", "heading", "aria-level", "2", 1, "miam-catalog-category__title", 3, "click"], [1, "miam-catalog-category__header__bottom"], [1, "miam-catalog-category__subtitle", "miam-ds-text", "size-s", "weight-l"], [1, "miam-catalog-category__link", "miam-ds-text", "size-s", "weight-xl", 3, "click"], i18n_2, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "", "aria-hidden", "true"], [1, "miam-catalog-category__content"], ["categoryContent", ""], ["role", "list", 1, "miam-catalog-category__cards"], ["categoryCards", ""], ["class", "miam-catalog-category__loader", 4, "ngIf"], ["role", "listitem", 3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-category__loader"], i18n_4, ["role", "listitem", 3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace"], [3, "article"]]; }, template: function CatalogCategoryComponent_Template(rf, ctx) { if (rf & 1) {
|
|
213
213
|
i0.ɵɵtemplate(0, CatalogCategoryComponent_div_0_Template, 19, 10, "div", 0);
|
|
214
214
|
} if (rf & 2) {
|
|
215
215
|
i0.ɵɵproperty("ngIf", !ctx.hide);
|
|
@@ -255,4 +255,4 @@ CatalogCategoryComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogCategoryC
|
|
|
255
255
|
type: ViewChildren,
|
|
256
256
|
args: [RecipeCardComponent]
|
|
257
257
|
}] }); })();
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctY2F0ZWdvcnkvY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctY2F0ZWdvcnkvY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUM3RixNQUFNLEVBQUUsU0FBUyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RHLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7SUNLbkQsK0JB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RUFBRSxNQUFjO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Z0dBMUlVLHdCQUF3Qjs2REFBeEIsd0JBQXdCOzs7dUJBZXJCLG1CQUFtQjs7Ozs7Ozs7Ozs7aUJDbkNoQixVQUFBLDBFQUFTOzs7Ozs7aUJBVWxCLFVBQUEsOEZBQ0Y7O1FBcEJSLDJFQWlDTTs7UUFqQzhCLGdDQUFXOzt1RkQ2QmxDLHdCQUF3QjtjQVBwQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsV0FBVyxFQUFFLG1DQUFtQztnQkFDaEQsU0FBUyxFQUFFLENBQUMsbUNBQW1DLENBQUM7Z0JBQ2hELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDsyTEFFVSxPQUFPO2tCQUFmLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUNJLFdBQVc7a0JBQXBCLE1BQU07WUFDRyxPQUFPO2tCQUFoQixNQUFNO1lBQ0csUUFBUTtrQkFBakIsTUFBTTtZQUV1QixlQUFlO2tCQUE1QyxTQUFTO21CQUFDLGlCQUFpQjtZQUNBLGFBQWE7a0JBQXhDLFNBQVM7bUJBQUMsZUFBZTtZQUNTLFdBQVc7a0JBQTdDLFlBQVk7bUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LFxuICBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGF1c2libGVQcm9wcyB9IGZyb20gJ21lYWx6LXNoYXJlZC1hbmFseXRpY3MnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uIH0gZnJvbSAnbWlhbS1qc29uYXBpJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJ0aWNsZSwgUmVjaXBlIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBBcnRpY2xlc1NlcnZpY2UsIENvbnRleHRTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IFJlY2lwZUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZWNpcGUtY2FyZHMnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ3Nwb25zb3JzJywgJ3RhZ3MnXTtcbmNvbnN0IHJlY2lwZVNwYXJzZUZpZWxkcyA9IHtcbiAgcmVjaXBlczogWyd0aXRsZScsICdudW1iZXItb2YtZ3Vlc3RzJywgJ21lZGlhLXVybCcsICd2aWRlby1pZCcsICdmaWxpZ3JhbmUtbG9nby11cmwnLCAnZGlmZmljdWx0eScsICdwcmVwYXJhdGlvbi10aW1lJywgJ2Nvb2tpbmctdGltZScsXG4gICAgJ3Jlc3RpbmctdGltZScsIC4uLnJlY2lwZUluY2x1ZGVzXSxcbiAgc3BvbnNvcnM6IFsnbG9nby11cmwnXSxcbiAgdGFnczogWyd0YWctdHlwZS1pZCddLFxuICAncmVjaXBlLXByb3ZpZGVyJzogWyduYW1lJ11cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tY2F0YWxvZy1jYXRlZ29yeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXRhbG9nLWNhdGVnb3J5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZmlsdGVyczogUmVjaXBlRmlsdGVycztcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgbWF4UmVjaXBlTnVtYmVyID0gMjA7XG4gIEBJbnB1dCgpIG1vZGlmaWVkR3Vlc3RzOiBudW1iZXI7XG4gIEBJbnB1dCgpIGRpc3BsYXlJbmZvcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlSZWNpcGVWYXJpYW50ID0gMTtcbiAgQE91dHB1dCgpIGRpc3BsYXlMaXN0OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIGxvYWRpbmc6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4odHJ1ZSk7XG4gIEBPdXRwdXQoKSBpc0hpZGRlbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG5cbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlDb250ZW50JykgY2F0ZWdvcnlDb250ZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlDYXJkcycpIGNhdGVnb3J5Q2FyZHM6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkcmVuKFJlY2lwZUNhcmRDb21wb25lbnQpIHJlY2lwZUNhcmRzITogUXVlcnlMaXN0PFJlY2lwZUNhcmRDb21wb25lbnQ+O1xuXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdO1xuICByZWNpcGVzOiBSZWNpcGVbXSA9IFtdO1xuICBhcnRpY2xlczogQXJ0aWNsZVtdID0gW107XG4gIGhpZGUgPSBmYWxzZTtcbiAgaWNvbiA9IEljb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGFydGljbGVzU2VydmljZTogQXJ0aWNsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dDogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKGFuYWx5dGljc1NlcnZpY2UpO1xuICAgIHRoaXMuZGlzcGxheUxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgdGhpcy5yZWNpcGVzID0gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHByb3BzKCk6IFBsYXVzaWJsZVByb3BzIHtcbiAgICBjb25zdCBwcm9wczogUGxhdXNpYmxlUHJvcHMgPSB7fTtcbiAgICBpZiAodGhpcy5maWx0ZXJzPy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wYWNrYWdlcykge1xuICAgICAgcHJvcHMuY2F0ZWdvcnlfaWQgPSB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMuZmlsdGVycy5wYWNrYWdlcztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmZpbHRlcnMgfHwgY2hhbmdlcy5tYXhSZWNpcGVOdW1iZXIgfHwgY2hhbmdlcy5tb2RpZmllZEd1ZXN0cykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIGZvcmtKb2luKFt0aGlzLmxvYWRSZWNpcGVzKCksIHRoaXMubG9hZEFydGljbGVzKCldKS5waXBlKFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSA9IHRoaXMucmVjaXBlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5hcnRpY2xlcy5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5oaWRlKSB7IHRoaXMuaXNIaWRkZW4uZW1pdCh0cnVlKTsgfVxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2VuZFNob3dFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ2NhdGVnb3J5LnNob3cnLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICBjYXRlZ29yeV9pZDogdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLmZpbHRlcnMucGFja2FnZXNcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBUT0RPOiBzaG91bGQgaXQgYmUgcmFuZG9taXplZCAocmVxdWVzdCB0byBBUEkgc2VlbXMgYnJva2VuIC8gcmV0dXJucyBzYW1lIHJlc3VsdCBtdWx0aXBlIHRpbWVzIGR1ZSB0byBPVVRFUiBKT0lOUylcbiAgbG9hZFJlY2lwZXMoKTogT2JzZXJ2YWJsZTxSZWNpcGVbXT4ge1xuICAgIGlmICghdGhpcy5maWx0ZXJzKSB7XG4gICAgICByZXR1cm4gKG9mKFtdKSBhcyBPYnNlcnZhYmxlPFJlY2lwZVtdPik7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRleHQuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgIXJlY2lwZUluY2x1ZGVzLmluY2x1ZGVzKCdpbmdyZWRpZW50cycpKSB7XG4gICAgICByZWNpcGVJbmNsdWRlcy5wdXNoKCdpbmdyZWRpZW50cycpO1xuICAgICAgcmVjaXBlU3BhcnNlRmllbGRzLnJlY2lwZXMucHVzaCgnaW5ncmVkaWVudHMnKTtcbiAgICAgIHJlY2lwZVNwYXJzZUZpZWxkc1snaW5ncmVkaWVudHMnXSA9IFsnbmFtZScsICdxdWFudGl0eScsICd1bml0JywgJ2FjdGl2ZScsICdmb3JjZWQtZWFucycsICdwaWN0dXJlLXVybCcsICdwb3NpdGlvbiddO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5hZGRNYW5kYXRvcnlDb21wbGV0aW9uVG9GaWx0ZXIodGhpcy5maWx0ZXJzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKHJlcXVlc3RGaWx0ZXJzID0+IHtcbiAgICAgICAgY29uc3QgcGFnZVNpemUgPSB0aGlzLm1heFJlY2lwZU51bWJlciA+IDAgPyAoIHRoaXMubWF4UmVjaXBlTnVtYmVyIDwgMzAgPyB0aGlzLm1heFJlY2lwZU51bWJlciA6IDMwKSA6IDA7XG4gICAgICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmZpbHRlcihcbiAgICAgICAgICByZXF1ZXN0RmlsdGVycyxcbiAgICAgICAgICB7IG51bWJlcjogMSwgc2l6ZTogcGFnZVNpemUgfSxcbiAgICAgICAgICByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMsXG4gICAgICAgICAgdGhpcy5tb2RpZmllZEd1ZXN0cyxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAncG9zaXRpb24nXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgocmVzdWx0OiBSZWNpcGVbXSkgPT4gdGhpcy5yZWNpcGVzID0gcmVzdWx0KVxuICAgICk7XG4gIH1cblxuICBsb2FkQXJ0aWNsZXMoKTogT2JzZXJ2YWJsZTxBcnRpY2xlW10+IHtcbiAgICAvLyBUT0RPOiBhbGwgY29udGVudHMgKHJlY2lwZXMsIGFydGljbGVzLi4uKSBzaG91bGQgYmUgcmVsYXRlZCB0byBwYWNrYWdlcywgdG8gd2hpY2ggZmlsdGVycyBjb3VsZCBiZSBhdHRhY2hlZFxuICAgIGlmICghdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzLnBhY2thZ2VzIHx8ICF0aGlzLmNvbnRleHQuYXJ0aWNsZXNJbkNhdGFsb2dFbmFibGVkKSB7XG4gICAgICByZXR1cm4gKG9mKFtdKSBhcyBPYnNlcnZhYmxlPEFydGljbGVbXT4pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFydGljbGVzU2VydmljZS5hbGwoe1xuICAgICAgcmVtb3RlZmlsdGVyOiB7cGFja2FnZXM6IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzfSxcbiAgICAgIHNvcnQ6IFsnLWRhdGUnXVxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDogRG9jdW1lbnRDb2xsZWN0aW9uPEFydGljbGU+KSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWNsZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZXM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkaXNwbGF5TGlzdE1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdjYXRlZ29yeS5kaXNwbGF5JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmRpc3BsYXlMaXN0LmVtaXQoe1xuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMuZmlsdGVycyxcbiAgICAgIHN1YnRpdGxlOiB0aGlzLnN1YnRpdGxlXG4gICAgfSk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgcmVjaXBlOiBSZWNpcGUpOiBhbnkge1xuICAgIHJldHVybiByZWNpcGUuaWQ7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWNhdGVnb3J5XCIgKm5nSWY9XCIhaGlkZVwiIG5nTWlhbUluVmlld3BvcnQgW2NvbmRpdGlvbl09XCJyZWNpcGVzLmxlbmd0aCA+IDBcIiAoaW5WaWV3cG9ydCk9XCJzZW5kU2hvd0V2ZW50KClcIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9faGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9fdGl0bGVcIiAoY2xpY2spPVwiZGlzcGxheUxpc3RNb2RlKClcIiByb2xlPVwiaGVhZGluZ1wiIGFyaWEtbGV2ZWw9XCIyXCI+e3t0aXRsZX19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9faGVhZGVyX19ib3R0b21cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX3N1YnRpdGxlIG1pYW0tZHMtdGV4dCBzaXplLXMgd2VpZ2h0LWxcIj57e3N1YnRpdGxlfX08L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX2xpbmsgbWlhbS1kcy10ZXh0IHNpemUtcyB3ZWlnaHQteGxcIlxuICAgICAgICAoY2xpY2spPVwiZGlzcGxheUxpc3RNb2RlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidWb2lyIHRvdXRlcyBsZXMgcmVjZXR0ZXMgZGUgJyArIHRpdGxlXCI+XG4gICAgICAgIDxzcGFuIGkxOG4+Vm9pciB0b3V0PC9zcGFuPlxuICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvYXJyb3ctcmlnaHQuc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgI2NhdGVnb3J5Q29udGVudCBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9fY29udGVudFwiPlxuICAgIDxkaXYgI2NhdGVnb3J5Q2FyZHMgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX2NhcmRzXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZyB8IGFzeW5jXCIgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX2xvYWRlclwiPlxuICAgICAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICAgICAgPGRpdiBpMThuPlxuICAgICAgICAgIENoYXJnZW1lbnQgZGVzIHLDqXN1bHRhdHMuLi5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1taWFtLXJlY2lwZS1jYXJkXG4gICAgICAgICpuZ0Zvcj1cImxldCByZWNpcGUgb2YgcmVjaXBlczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgW3JlY2lwZV09J3JlY2lwZSdcbiAgICAgICAgW2Rpc3BsYXlJbmZvc109XCJkaXNwbGF5SW5mb3NcIlxuICAgICAgICBbZGlzcGxheVByaWNpbmddPVwiZGlzcGxheVByaWNpbmdcIlxuICAgICAgICBbZGlzcGxheVZhcmlhbnRdPVwiZGlzcGxheVJlY2lwZVZhcmlhbnRcIlxuICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiPlxuICAgICAgPC9uZy1taWFtLXJlY2lwZS1jYXJkPlxuICAgICAgPG5nLW1pYW0tY2F0YWxvZy1hcnRpY2xlLWNhcmQgKm5nRm9yPVwibGV0IGFydGljbGUgb2YgYXJ0aWNsZXNcIiBbYXJ0aWNsZV09XCJhcnRpY2xlXCI+PC9uZy1taWFtLWNhdGFsb2ctYXJ0aWNsZS1jYXJkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctY2F0ZWdvcnkvY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctY2F0ZWdvcnkvY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUM3RixNQUFNLEVBQUUsU0FBUyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RHLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7SUNLbkQsK0JB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RUFBRSxNQUFjO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Z0dBMUlVLHdCQUF3Qjs2REFBeEIsd0JBQXdCOzs7dUJBZXJCLG1CQUFtQjs7Ozs7Ozs7Ozs7aUJDbkNoQixVQUFBLDBFQUFTOzs7Ozs7aUJBVWxCLFVBQUEsOEZBQ0Y7O1FBcEJSLDJFQWtDTTs7UUFsQzhCLGdDQUFXOzt1RkQ2QmxDLHdCQUF3QjtjQVBwQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsV0FBVyxFQUFFLG1DQUFtQztnQkFDaEQsU0FBUyxFQUFFLENBQUMsbUNBQW1DLENBQUM7Z0JBQ2hELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDsyTEFFVSxPQUFPO2tCQUFmLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUNJLFdBQVc7a0JBQXBCLE1BQU07WUFDRyxPQUFPO2tCQUFoQixNQUFNO1lBQ0csUUFBUTtrQkFBakIsTUFBTTtZQUV1QixlQUFlO2tCQUE1QyxTQUFTO21CQUFDLGlCQUFpQjtZQUNBLGFBQWE7a0JBQXhDLFNBQVM7bUJBQUMsZUFBZTtZQUNTLFdBQVc7a0JBQTdDLFlBQVk7bUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LFxuICBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGF1c2libGVQcm9wcyB9IGZyb20gJ21lYWx6LXNoYXJlZC1hbmFseXRpY3MnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uIH0gZnJvbSAnbWlhbS1qc29uYXBpJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJ0aWNsZSwgUmVjaXBlIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBBcnRpY2xlc1NlcnZpY2UsIENvbnRleHRTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IFJlY2lwZUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZWNpcGUtY2FyZHMnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ3Nwb25zb3JzJywgJ3RhZ3MnXTtcbmNvbnN0IHJlY2lwZVNwYXJzZUZpZWxkcyA9IHtcbiAgcmVjaXBlczogWyd0aXRsZScsICdudW1iZXItb2YtZ3Vlc3RzJywgJ21lZGlhLXVybCcsICd2aWRlby1pZCcsICdmaWxpZ3JhbmUtbG9nby11cmwnLCAnZGlmZmljdWx0eScsICdwcmVwYXJhdGlvbi10aW1lJywgJ2Nvb2tpbmctdGltZScsXG4gICAgJ3Jlc3RpbmctdGltZScsIC4uLnJlY2lwZUluY2x1ZGVzXSxcbiAgc3BvbnNvcnM6IFsnbG9nby11cmwnXSxcbiAgdGFnczogWyd0YWctdHlwZS1pZCddLFxuICAncmVjaXBlLXByb3ZpZGVyJzogWyduYW1lJ11cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tY2F0YWxvZy1jYXRlZ29yeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXRhbG9nLWNhdGVnb3J5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZmlsdGVyczogUmVjaXBlRmlsdGVycztcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgbWF4UmVjaXBlTnVtYmVyID0gMjA7XG4gIEBJbnB1dCgpIG1vZGlmaWVkR3Vlc3RzOiBudW1iZXI7XG4gIEBJbnB1dCgpIGRpc3BsYXlJbmZvcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlSZWNpcGVWYXJpYW50ID0gMTtcbiAgQE91dHB1dCgpIGRpc3BsYXlMaXN0OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIGxvYWRpbmc6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4odHJ1ZSk7XG4gIEBPdXRwdXQoKSBpc0hpZGRlbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG5cbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlDb250ZW50JykgY2F0ZWdvcnlDb250ZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlDYXJkcycpIGNhdGVnb3J5Q2FyZHM6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkcmVuKFJlY2lwZUNhcmRDb21wb25lbnQpIHJlY2lwZUNhcmRzITogUXVlcnlMaXN0PFJlY2lwZUNhcmRDb21wb25lbnQ+O1xuXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdO1xuICByZWNpcGVzOiBSZWNpcGVbXSA9IFtdO1xuICBhcnRpY2xlczogQXJ0aWNsZVtdID0gW107XG4gIGhpZGUgPSBmYWxzZTtcbiAgaWNvbiA9IEljb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGFydGljbGVzU2VydmljZTogQXJ0aWNsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dDogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKGFuYWx5dGljc1NlcnZpY2UpO1xuICAgIHRoaXMuZGlzcGxheUxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgdGhpcy5yZWNpcGVzID0gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHByb3BzKCk6IFBsYXVzaWJsZVByb3BzIHtcbiAgICBjb25zdCBwcm9wczogUGxhdXNpYmxlUHJvcHMgPSB7fTtcbiAgICBpZiAodGhpcy5maWx0ZXJzPy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wYWNrYWdlcykge1xuICAgICAgcHJvcHMuY2F0ZWdvcnlfaWQgPSB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMuZmlsdGVycy5wYWNrYWdlcztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmZpbHRlcnMgfHwgY2hhbmdlcy5tYXhSZWNpcGVOdW1iZXIgfHwgY2hhbmdlcy5tb2RpZmllZEd1ZXN0cykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIGZvcmtKb2luKFt0aGlzLmxvYWRSZWNpcGVzKCksIHRoaXMubG9hZEFydGljbGVzKCldKS5waXBlKFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSA9IHRoaXMucmVjaXBlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5hcnRpY2xlcy5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5oaWRlKSB7IHRoaXMuaXNIaWRkZW4uZW1pdCh0cnVlKTsgfVxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2VuZFNob3dFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ2NhdGVnb3J5LnNob3cnLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICBjYXRlZ29yeV9pZDogdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLmZpbHRlcnMucGFja2FnZXNcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBUT0RPOiBzaG91bGQgaXQgYmUgcmFuZG9taXplZCAocmVxdWVzdCB0byBBUEkgc2VlbXMgYnJva2VuIC8gcmV0dXJucyBzYW1lIHJlc3VsdCBtdWx0aXBlIHRpbWVzIGR1ZSB0byBPVVRFUiBKT0lOUylcbiAgbG9hZFJlY2lwZXMoKTogT2JzZXJ2YWJsZTxSZWNpcGVbXT4ge1xuICAgIGlmICghdGhpcy5maWx0ZXJzKSB7XG4gICAgICByZXR1cm4gKG9mKFtdKSBhcyBPYnNlcnZhYmxlPFJlY2lwZVtdPik7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRleHQuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgIXJlY2lwZUluY2x1ZGVzLmluY2x1ZGVzKCdpbmdyZWRpZW50cycpKSB7XG4gICAgICByZWNpcGVJbmNsdWRlcy5wdXNoKCdpbmdyZWRpZW50cycpO1xuICAgICAgcmVjaXBlU3BhcnNlRmllbGRzLnJlY2lwZXMucHVzaCgnaW5ncmVkaWVudHMnKTtcbiAgICAgIHJlY2lwZVNwYXJzZUZpZWxkc1snaW5ncmVkaWVudHMnXSA9IFsnbmFtZScsICdxdWFudGl0eScsICd1bml0JywgJ2FjdGl2ZScsICdmb3JjZWQtZWFucycsICdwaWN0dXJlLXVybCcsICdwb3NpdGlvbiddO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5hZGRNYW5kYXRvcnlDb21wbGV0aW9uVG9GaWx0ZXIodGhpcy5maWx0ZXJzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKHJlcXVlc3RGaWx0ZXJzID0+IHtcbiAgICAgICAgY29uc3QgcGFnZVNpemUgPSB0aGlzLm1heFJlY2lwZU51bWJlciA+IDAgPyAoIHRoaXMubWF4UmVjaXBlTnVtYmVyIDwgMzAgPyB0aGlzLm1heFJlY2lwZU51bWJlciA6IDMwKSA6IDA7XG4gICAgICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmZpbHRlcihcbiAgICAgICAgICByZXF1ZXN0RmlsdGVycyxcbiAgICAgICAgICB7IG51bWJlcjogMSwgc2l6ZTogcGFnZVNpemUgfSxcbiAgICAgICAgICByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMsXG4gICAgICAgICAgdGhpcy5tb2RpZmllZEd1ZXN0cyxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAncG9zaXRpb24nXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgocmVzdWx0OiBSZWNpcGVbXSkgPT4gdGhpcy5yZWNpcGVzID0gcmVzdWx0KVxuICAgICk7XG4gIH1cblxuICBsb2FkQXJ0aWNsZXMoKTogT2JzZXJ2YWJsZTxBcnRpY2xlW10+IHtcbiAgICAvLyBUT0RPOiBhbGwgY29udGVudHMgKHJlY2lwZXMsIGFydGljbGVzLi4uKSBzaG91bGQgYmUgcmVsYXRlZCB0byBwYWNrYWdlcywgdG8gd2hpY2ggZmlsdGVycyBjb3VsZCBiZSBhdHRhY2hlZFxuICAgIGlmICghdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzLnBhY2thZ2VzIHx8ICF0aGlzLmNvbnRleHQuYXJ0aWNsZXNJbkNhdGFsb2dFbmFibGVkKSB7XG4gICAgICByZXR1cm4gKG9mKFtdKSBhcyBPYnNlcnZhYmxlPEFydGljbGVbXT4pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFydGljbGVzU2VydmljZS5hbGwoe1xuICAgICAgcmVtb3RlZmlsdGVyOiB7cGFja2FnZXM6IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzfSxcbiAgICAgIHNvcnQ6IFsnLWRhdGUnXVxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDogRG9jdW1lbnRDb2xsZWN0aW9uPEFydGljbGU+KSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWNsZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZXM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkaXNwbGF5TGlzdE1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdjYXRlZ29yeS5kaXNwbGF5JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmRpc3BsYXlMaXN0LmVtaXQoe1xuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMuZmlsdGVycyxcbiAgICAgIHN1YnRpdGxlOiB0aGlzLnN1YnRpdGxlXG4gICAgfSk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgcmVjaXBlOiBSZWNpcGUpOiBhbnkge1xuICAgIHJldHVybiByZWNpcGUuaWQ7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWNhdGVnb3J5XCIgKm5nSWY9XCIhaGlkZVwiIG5nTWlhbUluVmlld3BvcnQgW2NvbmRpdGlvbl09XCJyZWNpcGVzLmxlbmd0aCA+IDBcIiAoaW5WaWV3cG9ydCk9XCJzZW5kU2hvd0V2ZW50KClcIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9faGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9fdGl0bGVcIiAoY2xpY2spPVwiZGlzcGxheUxpc3RNb2RlKClcIiByb2xlPVwiaGVhZGluZ1wiIGFyaWEtbGV2ZWw9XCIyXCI+e3t0aXRsZX19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9faGVhZGVyX19ib3R0b21cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX3N1YnRpdGxlIG1pYW0tZHMtdGV4dCBzaXplLXMgd2VpZ2h0LWxcIj57e3N1YnRpdGxlfX08L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX2xpbmsgbWlhbS1kcy10ZXh0IHNpemUtcyB3ZWlnaHQteGxcIlxuICAgICAgICAoY2xpY2spPVwiZGlzcGxheUxpc3RNb2RlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidWb2lyIHRvdXRlcyBsZXMgcmVjZXR0ZXMgZGUgJyArIHRpdGxlXCI+XG4gICAgICAgIDxzcGFuIGkxOG4+Vm9pciB0b3V0PC9zcGFuPlxuICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvYXJyb3ctcmlnaHQuc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgI2NhdGVnb3J5Q29udGVudCBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9fY29udGVudFwiPlxuICAgIDxkaXYgI2NhdGVnb3J5Q2FyZHMgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX2NhcmRzXCIgcm9sZT1cImxpc3RcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nIHwgYXN5bmNcIiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9fbG9hZGVyXCI+XG4gICAgICAgIDxuZy1taWFtLWxvYWRlcj48L25nLW1pYW0tbG9hZGVyPlxuICAgICAgICA8ZGl2IGkxOG4+XG4gICAgICAgICAgQ2hhcmdlbWVudCBkZXMgcsOpc3VsdGF0cy4uLlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWNhcmRcbiAgICAgICAgKm5nRm9yPVwibGV0IHJlY2lwZSBvZiByZWNpcGVzOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICBbcmVjaXBlXT0ncmVjaXBlJ1xuICAgICAgICByb2xlPVwibGlzdGl0ZW1cIlxuICAgICAgICBbZGlzcGxheUluZm9zXT1cImRpc3BsYXlJbmZvc1wiXG4gICAgICAgIFtkaXNwbGF5UHJpY2luZ109XCJkaXNwbGF5UHJpY2luZ1wiXG4gICAgICAgIFtkaXNwbGF5VmFyaWFudF09XCJkaXNwbGF5UmVjaXBlVmFyaWFudFwiXG4gICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCI+XG4gICAgICA8L25nLW1pYW0tcmVjaXBlLWNhcmQ+XG4gICAgICA8bmctbWlhbS1jYXRhbG9nLWFydGljbGUtY2FyZCAqbmdGb3I9XCJsZXQgYXJ0aWNsZSBvZiBhcnRpY2xlc1wiIFthcnRpY2xlXT1cImFydGljbGVcIj48L25nLW1pYW0tY2F0YWxvZy1hcnRpY2xlLWNhcmQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|