ng-miam 9.3.19 → 9.3.21

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.
@@ -505,11 +505,29 @@ export class ContextService {
505
505
  }), switchMap(() => this.userService.setUserInfo(forbidProfiling)));
506
506
  }
507
507
  loadStoreLocatorPackage() {
508
+ this.loadStoreLocatorScript();
509
+ this.loadStoreLocatorCss();
510
+ }
511
+ loadStoreLocatorScript() {
508
512
  const storeLocatorScript = document.createElement('script');
509
513
  storeLocatorScript.setAttribute('type', 'module');
514
+ storeLocatorScript.setAttribute('id', 'mealz-store-locator-script');
510
515
  storeLocatorScript.setAttribute('src', `${environment.mealzComponents}/store-locator/store-locator.min.js`);
516
+ if (document.getElementById('mealz-store-locator-script')) {
517
+ return;
518
+ }
511
519
  document.head.appendChild(storeLocatorScript);
512
520
  }
521
+ loadStoreLocatorCss() {
522
+ const storeLocatorCss = document.createElement('link');
523
+ storeLocatorCss.setAttribute('rel', 'stylesheet');
524
+ storeLocatorCss.setAttribute('id', 'mealz-store-locator-css');
525
+ storeLocatorCss.setAttribute('href', `${environment.mealzComponents}/store-locator/store-locator.css`);
526
+ if (document.getElementById('mealz-store-locator-css')) {
527
+ return;
528
+ }
529
+ document.head.appendChild(storeLocatorCss);
530
+ }
513
531
  generateAuthlessIdIfNecessary() {
514
532
  return this.userService.generatingAuthlessId$.pipe(debounceTime(800), take(1), switchMap(isGenerating => {
515
533
  if (isGenerating || this.loggedOnSession || !!localStorage.getItem('_miam/authlessId')) {
@@ -548,4 +566,4 @@ ContextService.ɵprov = i0.ɵɵdefineInjectable({ token: ContextService, factory
548
566
  providedIn: 'root'
549
567
  }]
550
568
  }], function () { return [{ type: i1.PointOfSalesService }, { type: i2.BasketsService }, { type: i3.UserService }, { type: i4.PreferencesService }, { type: i5.AnalyticsService }, { type: i6.RecipesService }, { type: i7.BasketRecipeCleanupService }, { type: i8.MediaMatcher }, { type: i9.SuppliersService }, { type: i8.BreakpointObserver }, { type: i10.BasketsSynchronizerService }, { type: i11.StoreLocatorService }, { type: i12.RecipeLikesService }, { type: i13.FakeRetailerCartService }, { type: i14.HistoryService }, { type: i15.ContextRegistryService }, { type: i16.PlannerSSRService }]; }, null); })();
551
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL19zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBUWxGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixF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LENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDekUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7NEVBMWlCVSxjQUFjO3NEQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07dUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGF1c2libGVQcm9wcyB9IGZyb20gJ21lYWx6LXNoYXJlZC1hbmFseXRpY3MnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXNrZXRFbnRyeSwgUmVjaXBlLCBVc2VyIH0gZnJvbSAnLi4vX21vZGVscyc7XG5pbXBvcnQgeyBSZXNldEJhc2tldEFjdGlvbiB9IGZyb20gJy4uL19tb2RlbHMvYmFza2V0LWFjdGlvbnMvcmVzZXQtYmFza2V0LWFjdGlvbic7XG5pbXBvcnQgeyBSZWNpcGVQcmljaW5nIH0gZnJvbSAnLi4vX21vZGVscy9yZWNpcGUtcHJpY2luZyc7XG5pbXBvcnQgeyBDb21wYXJhYmxlUHJvZHVjdCB9IGZyb20gJy4uL190eXBlcy9idWlsZGVkL2NvbXBhcmFibGUtcHJvZHVjdCc7XG5pbXBvcnQgeyBNZWFsekludGVyZmFjZSB9IGZyb20gJy4uL190eXBlcy9idWlsZGVkL21lYWx6LWludGVyZmFjZSc7XG5pbXBvcnQgeyBNZWFsekludGVybmFsSW50ZXJmYWNlIH0gZnJvbSAnLi4vX3R5cGVzL2J1aWxkZWQvbWVhbHotaW50ZXJuYWwtaW50ZXJmYWNlJztcbmltcG9ydCB7IEV2ZW50Sm91cm5leSB9IGZyb20gJy4uL190eXBlcy9ldmVudC1qb3VybmV5LmVudW0nO1xuaW1wb3J0IHsgRXZlbnRUcmFjZSB9IGZyb20gJy4uL190eXBlcy9ldmVudC10cmFjZSc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBkZWVwQ2xvbmVXaXRoQ2xhc3MgfSBmcm9tICcuLi9fdXRpbHMvbWV0aG9kcy9kZWVwQ2xvbmUnO1xuaW1wb3J0IHsgbWVhbHpEZWJ1ZywgbWVhbHpXYXJuIH0gZnJvbSAnLi4vX3V0aWxzL21ldGhvZHMvbG9nZ2luZyc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBCYXNrZXRzU3luY2hyb25pemVyU2VydmljZSB9IGZyb20gJy4vYmFza2V0cy1zeW5jaHJvbml6aW5nJztcbmltcG9ydCB7IEJhc2tldHNTZXJ2aWNlIH0gZnJvbSAnLi9iYXNrZXRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGV4dFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vY29udGV4dC1yZWdpc3RyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEZha2VSZXRhaWxlckNhcnRTZXJ2aWNlIH0gZnJvbSAnLi9mYWtlLXJldGFpbGVyLWNhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBIaXN0b3J5U2VydmljZSB9IGZyb20gJy4vaGlzdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvaW50T2ZTYWxlc1NlcnZpY2UgfSBmcm9tICcuL3BvaW50LW9mLXNhbGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZUxpa2VzU2VydmljZSB9IGZyb20gJy4vcmVjaXBlLWxpa2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVjaXBlc1NlcnZpY2UgfSBmcm9tICcuL3JlY2lwZXMuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yZUxvY2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yZS1sb2NhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3VwcGxpZXJzU2VydmljZSB9IGZyb20gJy4vc3VwcGxpZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNrZXRSZWNpcGVDbGVhbnVwU2VydmljZSB9IGZyb20gJy4vYmFza2V0LXJlY2lwZS1jbGVhbnVwLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGxhbm5lclNTUlNlcnZpY2UgfSBmcm9tICcuL3BsYW5uZXItc3NyLnNlcnZpY2UnO1xuXG5jb25zdCBTTUFMTF9TQ1JFRU5fQlAgPSAnKG1pbi13aWR0aDogMTAyM3B4KSc7XG5cbmludGVyZmFjZSBJY29uT3ZlcnJpZGUge1xuICBpY29uOiBJY29uO1xuICB1cmw6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dFNlcnZpY2Uge1xuICB1c2VySW5mbzogVXNlcjtcbiAgaWNvbnM6IEljb25PdmVycmlkZVtdO1xuICB2aWRlb1JlY2lwZXNFbmFibGVkID0gZmFsc2U7XG4gIGFydGljbGVzSW5DYXRhbG9nRW5hYmxlZCA9IGZhbHNlO1xuICB0YWdzT25SZWNpcGVzRW5hYmxlZCA9IGZhbHNlO1xuICBzZW9FbmFibGVkID0gZmFsc2U7XG4gIGRlZmF1bHRJbmdyZWRpZW50UGljdHVyZSA9ICdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ltYWdlcy9kZWZhdWx0LWluZ3JlZGllbnQtcGljdHVyZS5zdmcnO1xuICBkZWZhdWx0UmVjaXBlUGljdHVyZSA9ICdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ltYWdlcy9wbGFjZWhvbGRlci5wbmcnO1xuICBnbG9iYWxTY3JvbGxhYmxlRWxlbWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5ib2R5O1xuICBpc1NtYWxsU2NyZWVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBvcmlnaW46IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuICBzdXBwbGllckhlYWRlckhlaWdodCQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBsb2dMZXZlbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCdhbGwnKTtcbiAgY2F0YWxvZ1VybCA9ICcnO1xuICByZWNpcGVJbmZvVXJsID0gJyc7XG4gIHJldGFpbGVyQ2FydFVybCA9ICcnO1xuICBwcm9tb3Rpb25zVXJsID0gJyc7XG4gIG1lYWxzUGxhbm5lclVybCA9ICcnO1xuICBhbnRpSW5mbGF0aW9uID0gZmFsc2U7XG4gIGRpc3BsYXlJbmdyZWRpZW50UGljdHVyZXNPblJlY2lwZUNhcmRzID0gZmFsc2U7XG4gIGd1ZXN0c0lucHV0T25NeU1lYWxzID0gZmFsc2U7XG4gIGNvbGxhcHNlVW5hdmFpbGFibGVQcm9kdWN0cyA9IGZhbHNlO1xuICBub1N1cHBsaWVyID0gZmFsc2U7XG4gIGxvZ2dlZE9uU2Vzc2lvbiA9IGZhbHNlO1xuICBpc1ByZWZlcmVuY2VzU1NSID0gZmFsc2U7XG4gIG9yZGVySGlzdG9yeUVuYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHRyYW5zZmVyVXJsQmFzZU92ZXJyaWRlOiBzdHJpbmc7XG5cbiAgZW5hYmxlTWVhbHNQbGFubmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGFkZEFsbFByb2R1Y3RzV2FzQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpbmdyZWRpZW50c0FkZGVkOiBudW1iZXI7IGluZ3JlZGllbnRzVG90YWw6IG51bWJlciB9PigpO1xuICBndWVzdHNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGd1ZXN0czogbnVtYmVyOyByZWNpcGVJZDogc3RyaW5nIH0+KCk7XG4gIHJlY2lwZVByaWNlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyByZW1haW5pbmc6IG51bWJlcjsgaW5CYXNrZXQ6IG51bWJlcjsgcmVjaXBlSWQ6IHN0cmluZyB9PigpO1xuICBwcmVmZXJlbmNlc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBDT1JTSXNzdWVzOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgbWVhbHo6IE1lYWx6SW50ZXJmYWNlID0ge1xuICAgIHBheW1lbnRTdGFydGVkOiB0b3RhbFByaWNlID0+IHtcbiAgICAgIG1lYWx6RGVidWcoJ1tNZWFsel0gc2VuZCBwYXltZW50U3RhcnRlZCBldmVudCcpO1xuICAgICAgdGhpcy5vbkJhc2tldEFuZFBvc1NlbmRQYXltZW50U3RhcnRlZEV2ZW50KHRvdGFsUHJpY2UpO1xuICAgIH0sXG4gICAgYW5hbHl0aWNzOiB7XG4gICAgICBpbml0OiAoZG9tYWluOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmluaXQoZG9tYWluKTtcbiAgICAgIH0sXG4gICAgICBldmVudFNlbnQkOiB0aGlzLmFuYWx5dGljc1NlcnZpY2UuZXZlbnRFbWl0dGVyLFxuICAgICAgc2V0QWJUZXN0S2V5OiBrZXkgPT4gdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNldEFiVGVzdEtleShrZXkpXG4gICAgfSxcbiAgICBiYXNrZXQ6IHtcbiAgICAgIGJhc2tldElzUmVhZHkkOiB0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldFN0YXRzJC5waXBlKFxuICAgICAgICBza2lwV2hpbGUoc3RhdHMgPT4gIXN0YXRzKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgICApLFxuICAgICAgaW5pdGlhbGl6ZTogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5vcmlnaW4udmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLmluaXRCYXNrZXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzdGFydCBNZWFsejogb3JpZ2luIGhhc25cXCd0IGJlZW4gc2V0Jyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICB0aGlzLnJlc2V0QmFza2V0KCk7XG4gICAgICB9LFxuICAgICAgcmVjaXBlQ291bnQ6ICgpID0+XG4gICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2Uud2FpdEZvckJhc2tldC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldFN0YXRzJCksXG4gICAgICAgICAgc2tpcFdoaWxlKGJzID0+ICFicyksXG4gICAgICAgICAgbWFwKGJzID0+IGJzLnJlY2lwZXNDb3VudCksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLFxuICAgICAgb3BlblByZXZpZXc6IChhbmFseXRpY3NQYXRoOiBzdHJpbmcgPSAnJykgPT4gdGhpcy5yZWNpcGVzU2VydmljZS5vcGVuQmFza2V0KGFuYWx5dGljc1BhdGgpLFxuICAgICAgb3ZlcnJpZGVUcmFuc2ZlclVybDogKHVybDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5vU3VwcGxpZXIgJiYgdXJsKSB7XG4gICAgICAgICAgdGhpcy50cmFuc2ZlclVybEJhc2VPdmVycmlkZSA9IHVybDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYmFza2V0U3luYzoge1xuICAgICAgZGVmaW5lUHVzaFByb2R1Y3RzVG9DYXJ0OiAocHVzaFByb2R1Y3RzVG9DYXJ0OiAoY29tcGFyYWJsZVByb2R1Y3RzOiBDb21wYXJhYmxlUHJvZHVjdFtdKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIHRoaXMuYmFza2V0SGFuZGxlci5wdXNoUHJvZHVjdHNUb1JldGFpbGVyQ2FydCA9IHB1c2hQcm9kdWN0c1RvQ2FydDtcbiAgICAgIH0sXG4gICAgICBkZWZpbmVBZGRQcm9kdWN0c1RvQ2FydDogKGFkZFByb2R1Y3RzVG9DYXJ0OiAoY29tcGFyYWJsZVByb2R1Y3RzOiBDb21wYXJhYmxlUHJvZHVjdFtdKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIHRoaXMuYmFza2V0SGFuZGxlci5hZGRQcm9kdWN0c1RvUmV0YWlsZXJDYXJ0ID0gYWRkUHJvZHVjdHNUb0NhcnQ7XG4gICAgICB9LFxuICAgICAgZGVmaW5lUmVtb3ZlUHJvZHVjdHNGcm9tQ2FydDogKHJlbW92ZVByb2R1Y3RzRnJvbUNhcnQ6IChjb21wYXJhYmxlUHJvZHVjdHM6IENvbXBhcmFibGVQcm9kdWN0W10pID0+IHZvaWQpID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRIYW5kbGVyLnJlbW92ZVByb2R1Y3RzRnJvbVJldGFpbGVyQ2FydCA9IHJlbW92ZVByb2R1Y3RzRnJvbUNhcnQ7XG4gICAgICB9LFxuICAgICAgZGVmaW5lUHVzaEJhc2tldEVudHJpZXNUb0Jhc2tldDogKHB1c2hCYXNrZXRFbnRyaWVzVG9CYXNrZXQ6IChlbnRyaWVzOiBhbnlbXSkgPT4gdm9pZCkgPT4ge1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIucHVzaEJhc2tldEVudHJpZXNUb0Jhc2tldCA9IHB1c2hCYXNrZXRFbnRyaWVzVG9CYXNrZXQ7XG4gICAgICB9LFxuICAgICAgcmV0YWlsZXJCYXNrZXRDaGFuZ2VkOiAoY29tcGFyYWJsZVByb2R1Y3RzOiBDb21wYXJhYmxlUHJvZHVjdFtdKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuYmFza2V0SGFuZGxlci5yZXRhaWxlckNhcnRDaGFuZ2VkKGNvbXBhcmFibGVQcm9kdWN0cyk7XG4gICAgICAgIHRoaXMuc3VwcGxpZXJzU2VydmljZS5sYXN0U3VwcGxpZXJDYXJ0ID0gY29tcGFyYWJsZVByb2R1Y3RzO1xuICAgICAgfSxcbiAgICAgIGhhbmRsZVBheW1lbnQ6ICh0b3RhbDogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuYmFza2V0SGFuZGxlci5oYW5kbGVQYXltZW50KHRvdGFsKTtcbiAgICAgICAgdGhpcy5zdXBwbGllcnNTZXJ2aWNlLmxhc3RTdXBwbGllckNhcnQgPSBbXTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNvbmZpZzoge1xuICAgICAgbWVhbHpMb2dzOiAocGFyYW06IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmxvZ0xldmVsJC5uZXh0KHBhcmFtKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGZlYXR1cmVzOiB7XG4gICAgICBlbmFibGVWaWRlb1JlY2lwZXM6ICgpID0+IHtcbiAgICAgICAgdGhpcy52aWRlb1JlY2lwZXNFbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgLy8gSW5qZWN0IHlvdXR1YmUgc2NyaXB0XG4gICAgICAgIGNvbnN0IHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICB0YWcuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhZyk7XG4gICAgICB9LFxuICAgICAgZW5hYmxlQXJ0aWNsZXNJbkNhdGFsb2c6ICgpID0+IHtcbiAgICAgICAgdGhpcy5hcnRpY2xlc0luQ2F0YWxvZ0VuYWJsZWQgPSB0cnVlO1xuICAgICAgfSxcbiAgICAgIGVuYWJsZVVzZXJQcmVmZXJlbmNlczogKCkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnByZWZlcmVuY2VzQWN0aXZhdGVkJC5uZXh0KHRydWUpO1xuICAgICAgfSxcbiAgICAgIGVuYWJsZVRhZ3NPblJlY2lwZXM6ICgpID0+IHtcbiAgICAgICAgdGhpcy50YWdzT25SZWNpcGVzRW5hYmxlZCA9IHRydWU7XG4gICAgICB9LFxuICAgICAgZW5hYmxlTWVhbHNQbGFubmVyOiAodXJsOiBzdHJpbmcsIGFudGlJbmZsYXRpb24gPSBmYWxzZSkgPT4ge1xuICAgICAgICBpZiAoIXVybCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG5lZWQgdG8gcHJvdmlkZSB0aGUgdXJsIGZvciB0aGUgbWVhbHMtcGxhbm5lciBwYWdlIHRvIGVuYWJsZSB0aGUgZmVhdHVyZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWVhbHNQbGFubmVyVXJsID0gdXJsO1xuICAgICAgICB0aGlzLmFudGlJbmZsYXRpb24gPSBhbnRpSW5mbGF0aW9uO1xuICAgICAgICB0aGlzLmVuYWJsZU1lYWxzUGxhbm5lciQubmV4dCh0cnVlKTtcbiAgICAgIH0sXG4gICAgICBlbmFibGVTZW86ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZW9FbmFibGVkID0gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICBlbmFibGVHdWVzdHNJbnB1dE9uTXlNZWFsczogKCkgPT4ge1xuICAgICAgICB0aGlzLmd1ZXN0c0lucHV0T25NeU1lYWxzID0gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICBjb2xsYXBzZVVuYXZhaWxhYmxlUHJvZHVjdHNCeURlZmF1bHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZVVuYXZhaWxhYmxlUHJvZHVjdHMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgaG9vazoge1xuICAgICAgc2V0SG9va0NhbGxiYWNrOiAoY2FsbGJhY2s6IChpc0xvZ2dlZCwgaXNQb3NWYWxpZCkgPT4gYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmhvb2tDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgfSxcbiAgICAgIHNldEZvcmNlUG9zQ2FsbGJhY2s6IChjYWxsYmFjazogKHBvc0V4dElkOiBzdHJpbmcpID0+IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5mb3JjZVBvc0NhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICB9XG4gICAgfSxcbiAgICBwb3M6IHtcbiAgICAgIGxvYWQ6IChleHRlcm5hbElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub3JpZ2luLnZhbHVlKSB7XG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ19taWFtL25vU3VwcGxpZXIvcG9zSWQnKTtcbiAgICAgICAgICB0aGlzLnBvc1NlcnZpY2UubG9hZFBvc1dpdGhFeHRJZChleHRlcm5hbElkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzdGFydCBNZWFsejogb3JpZ2luIGhhc25cXCd0IGJlZW4gc2V0Jyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBnZXRCeUFkZHJlc3M6IHRoaXMucG9zU2VydmljZS5nZXRCeUFkZHJlc3MuYmluZCh0aGlzLnBvc1NlcnZpY2UpLFxuICAgICAgZ2V0QnlDb29yZGluYXRlczogdGhpcy5wb3NTZXJ2aWNlLmdldEJ5Q29vcmRpbmF0ZXMuYmluZCh0aGlzLnBvc1NlcnZpY2UpLFxuICAgICAgb3Blbk5vU3VwcGxpZXJPbmJvYXJkaW5nOiAoKSA9PiB0aGlzLnN0b3JlTG9jYXRvclNlcnZpY2Uuc2hvd05vU3VwcGxpZXJPbmJvYXJkaW5nLm5leHQodHJ1ZSlcbiAgICB9LFxuICAgIHJlY2lwZXM6IHtcbiAgICAgIGhpZGRlbjogdGhpcy5yZWNpcGVzU2VydmljZS5oaWRkZW4sXG4gICAgICBhZGRBbGxJbmdyZWRpZW50c0NUQVdhc0NsaWNrZWQ6IHRoaXMuYWRkQWxsUHJvZHVjdHNXYXNDbGlja2VkLFxuICAgICAgc2V0RGVmYXVsdEluZ3JlZGllbnRQaWN0dXJlOiAodXJsOiBzdHJpbmcpID0+IHRoaXMuZGVmYXVsdEluZ3JlZGllbnRQaWN0dXJlID0gdXJsLFxuICAgICAgc2V0RGVmYXVsdFJlY2lwZVBpY3R1cmU6ICh1cmw6IHN0cmluZykgPT4gdGhpcy5kZWZhdWx0UmVjaXBlUGljdHVyZSA9IHVybCxcbiAgICAgIC8vIFdlIGtlZXAgdGhvc2UganVzdCBpbiBjYXNlXG4gICAgICAvLyBzZXRSZWNpcGVzUHJpbWFyeUJ1dHRvbkFjdGlvbnM6IChkaXNwbGF5ID0gdHJ1ZSwgYWRkVG9CYXNrZXQgPSB0cnVlKSA9PiB7XG4gICAgICAvLyAgIHRoaXMucmVjaXBlc1NlcnZpY2Uuc2V0UmVjaXBlc1ByaW1hcnlCdXR0b25BY3Rpb25zKGRpc3BsYXksIGFkZFRvQmFza2V0KTtcbiAgICAgIC8vIH0sXG4gICAgICAvLyBzZXRTdWdnZXN0aW9uc1ByaW1hcnlCdXR0b25BY3Rpb25zOiAoZGlzcGxheSA9IHRydWUsIGFkZFRvQmFza2V0ID0gdHJ1ZSkgPT4ge1xuICAgICAgLy8gICB0aGlzLnJlY2lwZXNTZXJ2aWNlLnNldFN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnMoZGlzcGxheSwgYWRkVG9CYXNrZXQpO1xuICAgICAgLy8gfSxcbiAgICAgIHNldERpZmZpY3VsdHlMZXZlbHM6IChsZXZlbHM6IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10pID0+IHtcbiAgICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzID0gbGV2ZWxzO1xuICAgICAgfSxcbiAgICAgIHNob3dDb25maXJtYXRpb25Ub2FzdGVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2UuY29uZmlybWF0aW9uVG9hc3RlciA9IHRydWU7XG4gICAgICB9LFxuICAgICAgc2hvdWxkRGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHM6IChzaG91bGQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5kaXNwbGF5SW5ncmVkaWVudFBpY3R1cmVzT25SZWNpcGVDYXJkcyA9IHNob3VsZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHJvdXRlcjoge1xuICAgICAgc2V0UmVjaXBlQ2F0YWxvZ1VybDogKHVybCA9ICcnKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuY2F0YWxvZ1VybCA9IHVybDtcbiAgICAgIH0sXG4gICAgICBzZXRSZWNpcGVJbmZvTGluazogKHVybCA9ICcnKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMucmVjaXBlSW5mb1VybCA9IHVybDtcbiAgICAgIH0sXG4gICAgICBzZXRSZXRhaWxlckNhcnRVcmw6ICh1cmwgPSAnJyk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnJldGFpbGVyQ2FydFVybCA9IHVybDtcbiAgICAgIH0sXG4gICAgICBzZXRQcm9tb3Rpb25zVXJsOiAodXJsID0gJycpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5wcm9tb3Rpb25zVXJsID0gdXJsO1xuICAgICAgfVxuICAgIH0sXG4gICAgc3VwcGxpZXI6IHtcbiAgICAgIHNldE9yaWdpbjogKG9yaWdpbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChvcmlnaW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuc2V0T3JpZ2luSWZOZWNlc3Nhcnkob3JpZ2luKTtcbiAgICAgICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRpc3BsYXlSZWNpcGVJblVybCgpO1xuICAgICAgICAgIC8vIFJlbW92ZSBvcmRlciBwYXJhbWV0ZXIgZnJvbSB1cmwgdG8gYXZvaWQgdW53YW50ZWQgZHJhd2VyIG9wZW5pbmcgKG9ubHkgaW4gOS4zLngpXG4gICAgICAgICAgdGhpcy5oaXN0b3J5U2VydmljZS5yZW1vdmVPcmRlclBhcmFtZXRlckZyb21VcmwoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxvYWQ6IChzdXBwbGllcklkOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc3VwcGxpZXJzU2VydmljZS5zdXBwbGllciQudmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIucmVzZXRNZWFseigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9yaWdpbi52YWx1ZSkge1xuICAgICAgICAgIHRoaXMuc3VwcGxpZXJzU2VydmljZS5sb2FkU3VwcGxpZXIoc3VwcGxpZXJJZC50b1N0cmluZygpKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBpZiAoIXRoaXMubG9nZ2VkT25TZXNzaW9uKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnX21pYW0vdXNlcklkJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZ2VuZXJhdGVBdXRobGVzc0lkSWZOZWNlc3NhcnkoKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzdGFydCBNZWFsejogb3JpZ2luIGhhc25cXCd0IGJlZW4gc2V0Jyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXR1cFdpdGhUb2tlbjogKHRva2VuOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5zdXBwbGllcnNTZXJ2aWNlLnRva2VuID0gdG9rZW47XG4gICAgICAgIGNvbnN0IHBhcnNlZFRva2VuID0gSlNPTi5wYXJzZShhdG9iKHRva2VuKSkgYXNcbiAgICAgICAgICB7IG5vU3VwcGxpZXI/OiBib29sZWFuOyBzdXBwbGllcklkOiBzdHJpbmc7IG9yaWdpbjogc3RyaW5nOyBkb21haW46IHN0cmluZzsgb3JkZXJIaXN0b3J5PzogYm9vbGVhbjsgZGlzYWJsZUFuYWx5dGljcz86IGJvb2xlYW4gfTtcbiAgICAgICAgaWYgKCFwYXJzZWRUb2tlbi5vcmlnaW4gfHwgIXBhcnNlZFRva2VuLmRvbWFpbiB8fCAoIXBhcnNlZFRva2VuLnN1cHBsaWVySWQgJiYgIXBhcnNlZFRva2VuLm5vU3VwcGxpZXIpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0aGUgdG9rZW4gZG9lcyBub3QgaGF2ZSB0aGUgY29ycmVjdCBmb3JtYXQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lYWx6LnN1cHBsaWVyLnNldE9yaWdpbihwYXJzZWRUb2tlbi5vcmlnaW4pO1xuICAgICAgICB0aGlzLm1lYWx6LmFuYWx5dGljcy5pbml0KHBhcnNlZFRva2VuLmRvbWFpbik7XG4gICAgICAgIHRoaXMuY29udGV4dFJlZ2lzdHJ5U2VydmljZS5kaXNhYmxlZEFuYWx5dGljcyA9ICEhcGFyc2VkVG9rZW4uZGlzYWJsZUFuYWx5dGljcztcbiAgICAgICAgdGhpcy5vcmRlckhpc3RvcnlFbmFibGVkJC5uZXh0KCEhcGFyc2VkVG9rZW4ub3JkZXJIaXN0b3J5KTtcbiAgICAgICAgaWYgKHBhcnNlZFRva2VuLm5vU3VwcGxpZXIpIHtcbiAgICAgICAgICB0aGlzLmxvYWRTdG9yZUxvY2F0b3JQYWNrYWdlKCk7XG4gICAgICAgICAgdGhpcy5ub1N1cHBsaWVyID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmZha2VDYXJ0U2VydmljZS5tYXRjaE1lYWx6QmFza2V0KCk7XG4gICAgICAgICAgdGhpcy5tZWFsei51c2VyLnJlc2V0KCk7XG4gICAgICAgICAgdGhpcy5wb3NTZXJ2aWNlLnBvc0Zyb21TdG9yYWdlKCk7XG4gICAgICAgICAgdGhpcy5tZWFsei5iYXNrZXRTeW5jLmRlZmluZVB1c2hQcm9kdWN0c1RvQ2FydChwcm9kdWN0cyA9PiB7XG4gICAgICAgICAgICB0aGlzLmZha2VDYXJ0U2VydmljZS5wdXNoVG9GYWtlQ2FydChwcm9kdWN0cyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5iYXNrZXRIYW5kbGVyLm5vU3VwcGxpZXIkLm5leHQodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ19taWFtL25vU3VwcGxpZXIvcG9zSWQnKTtcbiAgICAgICAgICB0aGlzLm1lYWx6LnN1cHBsaWVyLmxvYWQocGFyc2VkVG9rZW4uc3VwcGxpZXJJZCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBnZXRBZmZpbGlhdGVTdXBwbGllcnM6ICgpID0+IHRoaXMuc3VwcGxpZXJzU2VydmljZS5nZXRBZmZpbGlhdGVTdXBwbGllcnMoKVxuICAgIH0sXG4gICAgdXNlcjoge1xuICAgICAgbG9hZFdpdGhBdXRobGVzc0lkOiAoaWQsIGZvcmJpZFByb2ZpbGluZyA9IGZhbHNlKSA9PiB7XG4gICAgICAgIHRoaXMuY29udGV4dFJlZ2lzdHJ5U2VydmljZS5mb3JiaWRQcm9maWxpbmcgPSBmb3JiaWRQcm9maWxpbmc7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdfbWlhbS9hdXRobGVzc0lkJywgaWQpO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnX21pYW0vYXV0aGxlc3MtZm9yYmlkLXByb2ZpbGluZycsICcnICsgZm9yYmlkUHJvZmlsaW5nKTtcbiAgICAgIH0sXG4gICAgICBsb2FkV2l0aEV4dGVybmFsSWQ6IChpZCwgZm9yYmlkUHJvZmlsaW5nID0gZmFsc2UsIGluaXRCYXNrZXQgPSBmYWxzZSkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRleHRSZWdpc3RyeVNlcnZpY2UuZm9yYmlkUHJvZmlsaW5nID0gZm9yYmlkUHJvZmlsaW5nO1xuICAgICAgICB0aGlzLmxvZ2dlZE9uU2Vzc2lvbiA9IHRydWU7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdfbWlhbS91c2VySWQnLCBpZCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdfbWlhbS91c2VyVG9rZW4nKTtcbiAgICAgICAgdGhpcy5iYXNrZXRIYW5kbGVyLnJlc2V0TWVhbHooKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9nVXNlcihpZCwgZm9yYmlkUHJvZmlsaW5nLCBpbml0QmFza2V0KTtcbiAgICAgIH0sXG4gICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5sb2dnZWRPblNlc3Npb24pIHtcbiAgICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIucmVzZXRNZWFseigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nZ2VkT25TZXNzaW9uID0gZmFsc2U7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdfbWlhbS91c2VyVG9rZW4nKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ19taWFtL3VzZXJJZCcpO1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnRvZ2dsZUlzTG9nZ2VkKGZhbHNlKTtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUF1dGhsZXNzSWRJZk5lY2Vzc2FyeSgpLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBzd2l0Y2hNYXAoaWQgPT4ge1xuICAgICAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICAgIHRoaXMudXNlclNlcnZpY2UucmVzZXRVc2VySW5mbygpO1xuICAgICAgICAgICAgICBtZWFsekRlYnVnKCdbTWVhbHpdIHdpbGwgcmVmcmVzaCBiYXNrZXQgYWZ0ZXIgcmVzZXQnKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFza2V0c1NlcnZpY2UucmVmcmVzaEN1cnJlbnRCYXNrZXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICB9KVxuICAgICAgICApLnN1YnNjcmliZSgpO1xuICAgICAgfSxcbiAgICAgIHNldExhbmd1YWdlOiAobGFuZzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UubGFuZ3VhZ2UgPSBsYW5nO1xuICAgICAgfSxcbiAgICAgIHNldEZhdm9yaXRlSXRlbXM6IGZhdm9yaXRlUHJvZHVjdElkcyA9PiB0aGlzLnVzZXJTZXJ2aWNlLnNldEZhdm9yaXRlSXRlbXMoZmF2b3JpdGVQcm9kdWN0SWRzKSxcbiAgICAgIHNldExvY2F0aW9uOiAoY29vcmRzOiBHZW9sb2NhdGlvblBvc2l0aW9uKSA9PiB0aGlzLnVzZXJTZXJ2aWNlLnVzZXJDb29yZGluYXRlcyQubmV4dChjb29yZHMgfHwgbnVsbCksXG4gICAgICB1cGRhdGVGb3JiaWRQcm9maWxpbmc6IChmb3JiaWRQcm9maWxpbmc6IGJvb2xlYW4sIHVzZXJJZDogc3RyaW5nLCBpc0F1dGhsZXNzID0gZmFsc2UpID0+IHtcbiAgICAgICAgaWYgKGlzQXV0aGxlc3MpIHtcbiAgICAgICAgICB0aGlzLm1lYWx6LnVzZXIubG9hZFdpdGhBdXRobGVzc0lkKHVzZXJJZCwgZm9yYmlkUHJvZmlsaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvZ1VzZXIodXNlcklkLCBmb3JiaWRQcm9maWxpbmcsIGZhbHNlKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgZXZlbnRzOiB7XG4gICAgICBzdG9yZUxvY2F0b3JPcGVuZWQ6ICgpID0+IHRoaXMuc3RvcmVMb2NhdG9yU2VydmljZS5zdG9yZUxvY2F0b3JPcGVuZWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICB9LFxuICAgIHNldFN0aWNreUhlYWRlckhlaWdodDogKGhlaWdodDogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICBpZiAodGhpcy5zdXBwbGllckhlYWRlckhlaWdodCQudmFsdWUgIT09IGhlaWdodCkge1xuICAgICAgICB0aGlzLnN1cHBsaWVySGVhZGVySGVpZ2h0JC5uZXh0KGhlaWdodCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRlIHR3byB0aW1lcyAnbGwgbm90IGJlIGNvbnNpZGVyZWRcbiAgICAgKiBAcGFyYW0gaWNvbiBoYXZlIHRvIGJlIGEga25vd2VkIGljb24gbmFtZSBzZWUgc2VjdGlvbiAnQ3VzdG9tIGljb25zJyBpbiByZWFkIG1lXG4gICAgICogQHBhcmFtIHVybCBvZiB0aGUgbmV3IGljb25cbiAgICAgKi9cbiAgICBvdmVycmlkZUljb246IChpY29uLCB1cmwpID0+IHsgLy8gVE9ETzogTU9WRSBUTyBjb250ZW50XG4gICAgICBpZiAoIXRoaXMuaWNvbnMpIHtcbiAgICAgICAgdGhpcy5pY29ucyA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgaWNvbkluZGV4ID0gdGhpcy5pY29ucy5maW5kSW5kZXgoKGk6IEljb25PdmVycmlkZSkgPT4gaS5pY29uID09PSBpY29uKTtcbiAgICAgIGlmIChpY29uSW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLmljb25zW2ljb25JbmRleF0gPSB7IGljb24sIHVybCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pY29ucy5wdXNoKHsgaWNvbiwgdXJsIH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAgc2V0RGVmYXVsdFNjcm9sbEVsZW1lbnRHZXR0ZXI6IChjYWxsYmFjazogKCkgPT4gSFRNTEVsZW1lbnQpID0+IHRoaXMuZGVmYXVsdFNjcm9sbEVsZW1lbnRHZXR0ZXIgPSBjYWxsYmFja1xuICB9O1xuXG4gIG1lYWx6SW50ZXJuYWw6IE1lYWx6SW50ZXJuYWxJbnRlcmZhY2UgPSB7XG4gICAgYW5hbHl0aWNzOiB7XG4gICAgICBzZW5kRXZlbnQ6IChuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgcHJvcHM6IFBsYXVzaWJsZVByb3BzLCBqb3VybmV5Pzogc3RyaW5nKSA9PlxuICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KG5hbWUsIHBhdGgsIHByb3BzLCBqb3VybmV5KSxcbiAgICAgIHNldElzTWVhbHpQYWdlOiAoaXNNZWFselBhZ2U6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmlzTWVhbHpQYWdlID0gaXNNZWFselBhZ2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBiYXNrZXQ6IHtcbiAgICAgIHJlY2lwZURhdGFJbkJhc2tldCQ6ICgpID0+IHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlc0luQmFza2V0JCgpLFxuICAgICAgcmVjaXBlc0FkZGVkVG9CYXNrZXQkOiAoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlY2lwZXNBZGRlZCxcbiAgICAgIHdhaXRGb3JCYXNrZXRFbnRyaWVzOiAoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLndhaXRGb3JCYXNrZXQucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5iYXNrZXRzU2VydmljZS53YWl0Rm9yQmFza2V0RW50cmllcykpXG4gICAgfSxcbiAgICBjYXRhbG9nOiB7XG4gICAgICBvcGVuUHJlZmVyZW5jZXM6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc1ByZWZlcmVuY2VzU1NSID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmVmZXJlbmNlc1NlcnZpY2UuaXNPcGVuZWQkLm5leHQodHJ1ZSk7XG4gICAgICB9LFxuICAgICAgcHJlZmVyZW5jZXNNb2RhbENoYW5nZWQ6ICgpID0+IHRoaXMucHJlZmVyZW5jZXNDaGFuZ2VkLFxuICAgICAgcHJlZmVyZW5jZXNDb3VudDogKCk6IE9ic2VydmFibGU8bnVtYmVyPiA9PiB0aGlzLnByZWZlcmVuY2VzU2VydmljZS5jdXJyZW50UHJlZmVyZW5jZXNOdW1iZXIsXG4gICAgICBsb2FkTW9yZVJlY2lwZXM6IChwYWNrYWdlSWQsIHBhZ2UsIHBhZ2VTaXplLCBndWVzdHMpOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiA9PlxuICAgICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmxvYWRSZWNpcGVzRnJvbVBhY2thZ2VJZChwYWNrYWdlSWQsIHBhZ2UsIHBhZ2VTaXplLCBndWVzdHMpXG4gICAgfSxcbiAgICBwcmVmZXJlbmNlczoge1xuICAgICAgcmVzZXRQcmVmZXJlbmNlczogKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnByZWZlcmVuY2VzU2VydmljZS5yZXNldFByZWZlcmVuY2VzKCk7XG4gICAgICAgIGlmICh0aGlzLmlzUHJlZmVyZW5jZXNTU1IpIHtcbiAgICAgICAgICB0aGlzLnByZWZlcmVuY2VzU2VydmljZS5zZW5kQ2FjaGVSZXF1ZXN0KCdyZW1vdmUnLCAncHJlZmVyZW5jZXMnKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgY29uZmlnOiB7XG4gICAgICBsb2dMZXZlbDogdGhpcy5sb2dMZXZlbCRcbiAgICB9LFxuICAgIHJlY2lwZXM6IHtcbiAgICAgIG9wZW5EZXRhaWxzOiAocmVjaXBlSWQ6IHN0cmluZywgZ3Vlc3RzOiBudW1iZXIsIGluaXRpYWxUYWJJbmRleDogbnVtYmVyLCBwYXRoOiBzdHJpbmcgPSAnJywgY2F0ZWdvcnlJZDogc3RyaW5nID0gbnVsbCkgPT5cbiAgICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5vcGVuUmVjaXBlRGV0YWlscyhyZWNpcGVJZCwgZ3Vlc3RzLCBpbml0aWFsVGFiSW5kZXgsIHBhdGgsIGNhdGVnb3J5SWQpLFxuICAgICAgdXBkYXRlUmVjaXBlTGlrZTogKHJlY2lwZUxpa2VJZDogc3RyaW5nLCByZWNpcGVJZDogc3RyaW5nLCBpc1Bhc3Q6IGJvb2xlYW4sIHBhdGg6IHN0cmluZyA9ICcnKSA9PiB7XG4gICAgICAgIGNvbnN0IGV2ZW50VHJhY2U6IEV2ZW50VHJhY2UgPSB7IG9yaWdpblBhdGg6IHBhdGgsIHByb3BzOiB7IHJlY2lwZV9pZDogcmVjaXBlSWQgfSB9O1xuICAgICAgICBjb25zdCByZWNpcGVMaWtlID0gdGhpcy5yZWNpcGVMaWtlc1NlcnZpY2UucHJlcGFyZVJlY2lwZUxpa2VGb3JVcGRhdGUocmVjaXBlSWQsIHJlY2lwZUxpa2VJZCwgaXNQYXN0KTtcblxuICAgICAgICB0aGlzLnJlY2lwZUxpa2VzU2VydmljZS51cGRhdGVMaWtlKHJlY2lwZUlkLCByZWNpcGVMaWtlLCBldmVudFRyYWNlKTtcbiAgICAgIH0sXG4gICAgICBnZXRSZWNpcGVMaWtlOiAocmVjaXBlSWQ6IHN0cmluZykgPT4gdGhpcy5yZWNpcGVMaWtlc1NlcnZpY2UuZ2V0TGlrZShyZWNpcGVJZCksXG4gICAgICByZWNpcGVMaWtlVXBkYXRlZDogKCkgPT4gdGhpcy5yZWNpcGVMaWtlc1NlcnZpY2UucmVjaXBlTGlrZVVwZGF0ZWQkLFxuICAgICAgZ3Vlc3RzVXBkYXRlZDogKCkgPT4gdGhpcy5ndWVzdHNDaGFuZ2VkLFxuICAgICAgcmVjaXBlUHJpY2VVcGRhdGVkOiAoKSA9PiB0aGlzLnJlY2lwZVByaWNlQ2hhbmdlZCxcbiAgICAgIGZldGNoUHJpY2luZzogKHJlY2lwZUlkOiBzdHJpbmcsIHBvc0lkOiBzdHJpbmcsIHNlcnZlczogbnVtYmVyLCBpc0V4dFN0b3JlSWQ6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xuICAgICAgICBpZiAoIXJlY2lwZUlkIHx8ICFwb3NJZCB8fCAhc2VydmVzKSB7XG4gICAgICAgICAgcmV0dXJuIChvZihudWxsKSBhcyBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5nZXRQcmljaW5nKHJlY2lwZUlkLCBwb3NJZCwgc2VydmVzLCBpc0V4dFN0b3JlSWQpLnBpcGUoXG4gICAgICAgICAgc2tpcFdoaWxlKHJlc3VsdCA9PiByZXN1bHQucHJpY2UgPT09IDApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgICBzdXBwbGllcjoge1xuICAgICAgZ2V0VG9rZW46ICgpID0+IHRoaXMuc3VwcGxpZXJzU2VydmljZS50b2tlblxuICAgIH0sXG4gICAgdXNlcjoge1xuICAgICAgZ2V0TGFuZ3VhZ2U6ICgpID0+IHRoaXMudXNlclNlcnZpY2UubGFuZ3VhZ2UsXG4gICAgICBpc0F1dGhlbnRpY2F0ZWQ6ICgpID0+IHRoaXMudXNlclNlcnZpY2UuaXNMb2dnZWQkLFxuICAgICAgc2V0U2Vzc2lvbklkOiAoc2Vzc2lvbklkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX21pYW0vc2Vzc2lvbklkJywgc2Vzc2lvbklkKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHBsYW5uZXI6IHtcbiAgICAgIGdldERhc2hib2FyZEhUTUw6ICgpID0+IHRoaXMucGxhbm5lclNTUlNlcnZpY2UuZ2V0UGxhbm5lckRhc2hib2FyZCgpLFxuICAgICAgZ2V0Q3VycmVudE1lbnVIVE1MOiAoKSA9PiB0aGlzLnBsYW5uZXJTU1JTZXJ2aWNlLmdldEN1cnJlbnRNZW51KCksXG4gICAgICBnZXRFbnRyeUhUTUw6ICgpID0+IHRoaXMucGxhbm5lclNTUlNlcnZpY2UuZ2V0RW50cnkoKVxuICAgIH0sXG4gICAgZ2V0U3RpY2t5SGVhZGVySGVpZ2h0OiAoKSA9PiB0aGlzLnN1cHBsaWVySGVhZGVySGVpZ2h0JFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2tldHNTZXJ2aWNlOiBCYXNrZXRzU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHByZWZlcmVuY2VzU2VydmljZTogUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2tldFJlY2lwZUNsZWFudXBTZXJ2aWNlOiBCYXNrZXRSZWNpcGVDbGVhbnVwU2VydmljZSxcbiAgICBwcml2YXRlIG1lZGlhTWF0Y2hlcjogTWVkaWFNYXRjaGVyLFxuICAgIHByaXZhdGUgc3VwcGxpZXJzU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgIC8vIHByaXZhdGUgYmFza2V0SGFuZGxlcjogTGVnYWN5QmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRIYW5kbGVyOiBCYXNrZXRzU3luY2hyb25pemVyU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlTG9jYXRvclNlcnZpY2U6IFN0b3JlTG9jYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVMaWtlc1NlcnZpY2U6IFJlY2lwZUxpa2VzU2VydmljZSxcbiAgICBwcml2YXRlIGZha2VDYXJ0U2VydmljZTogRmFrZVJldGFpbGVyQ2FydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBoaXN0b3J5U2VydmljZTogSGlzdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0UmVnaXN0cnlTZXJ2aWNlOiBDb250ZXh0UmVnaXN0cnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhbm5lclNTUlNlcnZpY2U6IFBsYW5uZXJTU1JTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaXNTbWFsbFNjcmVlbiQubmV4dCghdGhpcy5tZWRpYU1hdGNoZXIubWF0Y2hNZWRpYShTTUFMTF9TQ1JFRU5fQlApLm1hdGNoZXMpO1xuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoU01BTExfU0NSRUVOX0JQKS5zdWJzY3JpYmUoQlBDaGFuZ2UgPT4gdGhpcy5pc1NtYWxsU2NyZWVuJC5uZXh0KCFCUENoYW5nZS5tYXRjaGVzKSk7XG4gICAgdGhpcy5pY29ucyA9IFtdO1xuICAgIHRoaXMuQ09SU0lzc3VlcyA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICAgIE9iamVjdC5hc3NpZ24od2luZG93LCB7XG4gICAgICBtZWFsejogdGhpcy5tZWFseixcbiAgICAgIG1lYWx6SW50ZXJuYWw6IHRoaXMubWVhbHpJbnRlcm5hbFxuICAgIH0pO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBob29rQ2FsbGJhY2s6IChpc0xvZ2dlZCwgaXNQb3NWYWxpZCkgPT4gYm9vbGVhbiA9IChpc0xvZ2dlZCwgaXNQb3NWYWxpZCkgPT4ge1xuICAgIG1lYWx6V2FybignW01lYWx6XSBob29rQ2FsbGJhY2sgKHVzZWQgdG8gZm9yY2UgdXNlciBsb2dpbikgbm90IHNldCcpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGZvcmNlUG9zQ2FsbGJhY2s6IChwb3NFeHRJZDogc3RyaW5nKSA9PiBib29sZWFuID0gKHBvc0V4dElkOiBzdHJpbmcpID0+IHtcbiAgICBtZWFseldhcm4oJ1tNZWFsel0gZm9yY2VQb3NDYWxsYmFjayAodXNlZCB0byBmb3JjZSBzZWxlY3RlZCBzaG9wKSBub3Qgc2V0Jyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIGRlZmF1bHRTY3JvbGxFbGVtZW50R2V0dGVyOiAoKSA9PiBIVE1MRWxlbWVudCA9ICgpID0+IGRvY3VtZW50LmJvZHk7XG5cbiAgc2V0Q09SU0lzc3VlU3RhdGUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLkNPUlNJc3N1ZXMubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXRDT1JTSXNzdWVzU3RhdGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuQ09SU0lzc3Vlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldE92ZXJyaWRlSWNvblVybChpY29uOiBJY29uKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaW5kaWNvbiA9IHRoaXMuaWNvbnMuZmluZChlbCA9PiBlbC5pY29uID09PSBpY29uKTtcbiAgICByZXR1cm4gZmluZGljb24gPyBmaW5kaWNvbi51cmwgOiAnJztcbiAgfVxuXG4gIHByaXZhdGUgc2V0T3JpZ2luSWZOZWNlc3Nhcnkob3JpZ2luOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAob3JpZ2luICYmIHRoaXMub3JpZ2luLnZhbHVlICE9PSBvcmlnaW4pIHtcbiAgICAgIHRoaXMub3JpZ2luLm5leHQob3JpZ2luKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uQmFza2V0QW5kUG9zU2VuZFBheW1lbnRTdGFydGVkRXZlbnQodG90YWxQcmljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgZm9ya0pvaW4oW1xuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS53YWl0Rm9yQmFza2V0LFxuICAgICAgdGhpcy5wb3NTZXJ2aWNlLndhaXRGb3JQb3MucGlwZSh0YWtlKDEpKVxuICAgIF0pLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgY29uc3QgYmFza2V0ID0gcmVzWzBdO1xuICAgICAgY29uc3QgcG9zID0gcmVzWzFdO1xuICAgICAgaWYgKGJhc2tldC50b3RhbFByaWNlID4gMCkge1xuICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgICAgICdwYXltZW50LnN0YXJ0ZWQnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJhc2tldF9pZDogYmFza2V0LmlkLFxuICAgICAgICAgICAgbWlhbV9hbW91bnQ6IGJhc2tldC50b3RhbFByaWNlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICB0b3RhbF9hbW91bnQ6IHRvdGFsUHJpY2UudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHBvc19pZDogdGhpcy5wb3NTZXJ2aWNlLnBvcyQuZ2V0VmFsdWUoKS5pZCxcbiAgICAgICAgICAgIHBvc19uYW1lOiB0aGlzLnBvc1NlcnZpY2UucG9zJC5nZXRWYWx1ZSgpLmF0dHJpYnV0ZXMubmFtZSxcbiAgICAgICAgICAgIHN1cHBsaWVyX2lkOiB0aGlzLnBvc1NlcnZpY2UucG9zJC5nZXRWYWx1ZSgpLnJlbGF0aW9uc2hpcHMuc3VwcGxpZXIuZGF0YS5pZCxcbiAgICAgICAgICAgIHJlY2lwZV9jb3VudDogYmFza2V0LnJlY2lwZUluZm9zLmxlbmd0aC50b1N0cmluZygpLFxuICAgICAgICAgICAgbWlhbV9wcm9kdWN0czogYmFza2V0LmVudHJpZXMubGVuZ3RoLnRvU3RyaW5nKClcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvZ1VzZXIodG9rZW5PcklkOiBzdHJpbmcsIGZvcmJpZFByb2ZpbGluZzogYm9vbGVhbiwgaW5pdEJhc2tldDogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRva2VuT3JJZCkge1xuICAgICAgdGhpcy51c2VyU2VydmljZS50b2dnbGVJc0xvZ2dlZCh0cnVlKTtcbiAgICB9XG4gICAgLy8gaWYgaW5pdEJhc2tldCBpcyBzZXQgdG8gZmFsc2UsIHRoZSBiYXNrZXQgJiBsaXN0IHdpbGwgbm90IGJlIGluaXRpYWxpc2VkIHVudGlsIHRoZSBmaXJzdCB0aW1lIHRoZXkgYXJlIG5lZWRlZFxuICAgIGlmIChpbml0QmFza2V0KSB7XG4gICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLmluaXRCYXNrZXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuZ2VuZXJhdGluZ0F1dGhsZXNzSWQkLnBpcGUoXG4gICAgICBza2lwV2hpbGUoZ2VuZXJhdGluZyA9PiBnZW5lcmF0aW5nKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnX21pYW0vYXV0aGxlc3NJZCcpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYmFza2V0c1NlcnZpY2UucmVsb2FkQmFza2V0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy51c2VyU2VydmljZS5zZXRVc2VySW5mbyhmb3JiaWRQcm9maWxpbmcpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFN0b3JlTG9jYXRvclBhY2thZ2UoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RvcmVMb2NhdG9yU2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgc3RvcmVMb2NhdG9yU2NyaXB0LnNldEF0dHJpYnV0ZSgndHlwZScsICdtb2R1bGUnKTtcbiAgICBzdG9yZUxvY2F0b3JTY3JpcHQuc2V0QXR0cmlidXRlKCdzcmMnLCBgJHtlbnZpcm9ubWVudC5tZWFsekNvbXBvbmVudHN9L3N0b3JlLWxvY2F0b3Ivc3RvcmUtbG9jYXRvci5taW4uanNgKTtcbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0b3JlTG9jYXRvclNjcmlwdCk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQXV0aGxlc3NJZElmTmVjZXNzYXJ5KCk6IE9ic2VydmFibGU8c3RyaW5nIHwgdm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmdlbmVyYXRpbmdBdXRobGVzc0lkJC5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDgwMCksXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKGlzR2VuZXJhdGluZyA9PiB7XG4gICAgICAgIGlmIChpc0dlbmVyYXRpbmcgfHwgdGhpcy5sb2dnZWRPblNlc3Npb24gfHwgISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnX21pYW0vYXV0aGxlc3NJZCcpKSB7XG4gICAgICAgICAgcmV0dXJuIG9mPHZvaWQ+KG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmdlbmVyYXRlQW5vbnltb3VzVXNlcklkKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0QmFza2V0KCkge1xuICAgIHRoaXMuYmFza2V0c1NlcnZpY2Uud2FpdEZvckJhc2tldEVudHJpZXNcbiAgICAgIC5waXBlKG1hcCgoZW50cmllczogQmFza2V0RW50cnlbXSkgPT5cbiAgICAgICAgZW50cmllc1xuICAgICAgICAgIC5maWx0ZXIoZW50cnkgPT4gZW50cnkuc3RhdHVzID09PSAnYWN0aXZlJylcbiAgICAgICAgICAubWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNsb25lZEVudHJ5ID0gZGVlcENsb25lV2l0aENsYXNzKGVudHJ5KSBhcyBCYXNrZXRFbnRyeTtcbiAgICAgICAgICAgIGNsb25lZEVudHJ5LnF1YW50aXR5ID0gMDtcbiAgICAgICAgICAgIHJldHVybiBjbG9uZWRFbnRyeTtcbiAgICAgICAgICB9KVxuICAgICAgKSkuc3Vic2NyaWJlKChjbG9uZWRFbnRyaWVzVG9SZW1vdmU6IEJhc2tldEVudHJ5W10pID0+IHtcbiAgICAgICAgaWYgKGNsb25lZEVudHJpZXNUb1JlbW92ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlc2V0QmFza2V0KCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXNldEJhc2tldCA9IGNsb25lZEVudHJpZXNUb1JlbW92ZS5tYXAoZW50cnkgPT4gbmV3IFJlc2V0QmFza2V0QWN0aW9uKGVudHJ5LCB7fSwgdGhpcy5iYXNrZXRzU2VydmljZSkpO1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIuYWRkVG9BY3Rpb25MaXN0KHJlc2V0QmFza2V0KTtcbiAgICAgICAgaWYgKHJlc2V0QmFza2V0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXNldEJhc2tldFtyZXNldEJhc2tldC5sZW5ndGggLSAxXS5vblN1Y2Nlc3MucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZXNldEJhc2tldCgpLnN1YnNjcmliZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIl19
569
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL19zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBUWxGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixF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YU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhdXNpYmxlUHJvcHMgfSBmcm9tICdtZWFsei1zaGFyZWQtYW5hbHl0aWNzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFza2V0RW50cnksIFJlY2lwZSwgVXNlciB9IGZyb20gJy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVzZXRCYXNrZXRBY3Rpb24gfSBmcm9tICcuLi9fbW9kZWxzL2Jhc2tldC1hY3Rpb25zL3Jlc2V0LWJhc2tldC1hY3Rpb24nO1xuaW1wb3J0IHsgUmVjaXBlUHJpY2luZyB9IGZyb20gJy4uL19tb2RlbHMvcmVjaXBlLXByaWNpbmcnO1xuaW1wb3J0IHsgQ29tcGFyYWJsZVByb2R1Y3QgfSBmcm9tICcuLi9fdHlwZXMvYnVpbGRlZC9jb21wYXJhYmxlLXByb2R1Y3QnO1xuaW1wb3J0IHsgTWVhbHpJbnRlcmZhY2UgfSBmcm9tICcuLi9fdHlwZXMvYnVpbGRlZC9tZWFsei1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWVhbHpJbnRlcm5hbEludGVyZmFjZSB9IGZyb20gJy4uL190eXBlcy9idWlsZGVkL21lYWx6LWludGVybmFsLWludGVyZmFjZSc7XG5pbXBvcnQgeyBFdmVudEpvdXJuZXkgfSBmcm9tICcuLi9fdHlwZXMvZXZlbnQtam91cm5leS5lbnVtJztcbmltcG9ydCB7IEV2ZW50VHJhY2UgfSBmcm9tICcuLi9fdHlwZXMvZXZlbnQtdHJhY2UnO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uL190eXBlcy9pY29uLmVudW0nO1xuaW1wb3J0IHsgZGVlcENsb25lV2l0aENsYXNzIH0gZnJvbSAnLi4vX3V0aWxzL21ldGhvZHMvZGVlcENsb25lJztcbmltcG9ydCB7IG1lYWx6RGVidWcsIG1lYWx6V2FybiB9IGZyb20gJy4uL191dGlscy9tZXRob2RzL2xvZ2dpbmcnO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UgfSBmcm9tICcuL2Jhc2tldHMtc3luY2hyb25pemluZyc7XG5pbXBvcnQgeyBCYXNrZXRzU2VydmljZSB9IGZyb20gJy4vYmFza2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRleHRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2NvbnRleHQtcmVnaXN0cnkuc2VydmljZSc7XG5pbXBvcnQgeyBGYWtlUmV0YWlsZXJDYXJ0U2VydmljZSB9IGZyb20gJy4vZmFrZS1yZXRhaWxlci1jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL2hpc3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBQb2ludE9mU2FsZXNTZXJ2aWNlIH0gZnJvbSAnLi9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQgeyBSZWNpcGVMaWtlc1NlcnZpY2UgfSBmcm9tICcuL3JlY2lwZS1saWtlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZXNTZXJ2aWNlIH0gZnJvbSAnLi9yZWNpcGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmVMb2NhdG9yU2VydmljZSB9IGZyb20gJy4vc3RvcmUtbG9jYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFN1cHBsaWVyc1NlcnZpY2UgfSBmcm9tICcuL3N1cHBsaWVycy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFza2V0UmVjaXBlQ2xlYW51cFNlcnZpY2UgfSBmcm9tICcuL2Jhc2tldC1yZWNpcGUtY2xlYW51cC5zZXJ2aWNlJztcbmltcG9ydCB7IFBsYW5uZXJTU1JTZXJ2aWNlIH0gZnJvbSAnLi9wbGFubmVyLXNzci5zZXJ2aWNlJztcblxuY29uc3QgU01BTExfU0NSRUVOX0JQID0gJyhtaW4td2lkdGg6IDEwMjNweCknO1xuXG5pbnRlcmZhY2UgSWNvbk92ZXJyaWRlIHtcbiAgaWNvbjogSWNvbjtcbiAgdXJsOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRTZXJ2aWNlIHtcbiAgdXNlckluZm86IFVzZXI7XG4gIGljb25zOiBJY29uT3ZlcnJpZGVbXTtcbiAgdmlkZW9SZWNpcGVzRW5hYmxlZCA9IGZhbHNlO1xuICBhcnRpY2xlc0luQ2F0YWxvZ0VuYWJsZWQgPSBmYWxzZTtcbiAgdGFnc09uUmVjaXBlc0VuYWJsZWQgPSBmYWxzZTtcbiAgc2VvRW5hYmxlZCA9IGZhbHNlO1xuICBkZWZhdWx0SW5ncmVkaWVudFBpY3R1cmUgPSAnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pbWFnZXMvZGVmYXVsdC1pbmdyZWRpZW50LXBpY3R1cmUuc3ZnJztcbiAgZGVmYXVsdFJlY2lwZVBpY3R1cmUgPSAnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pbWFnZXMvcGxhY2Vob2xkZXIucG5nJztcbiAgZ2xvYmFsU2Nyb2xsYWJsZUVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keTtcbiAgaXNTbWFsbFNjcmVlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgb3JpZ2luOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcbiAgc3VwcGxpZXJIZWFkZXJIZWlnaHQkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgbG9nTGV2ZWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnYWxsJyk7XG4gIGNhdGFsb2dVcmwgPSAnJztcbiAgcmVjaXBlSW5mb1VybCA9ICcnO1xuICByZXRhaWxlckNhcnRVcmwgPSAnJztcbiAgcHJvbW90aW9uc1VybCA9ICcnO1xuICBtZWFsc1BsYW5uZXJVcmwgPSAnJztcbiAgYW50aUluZmxhdGlvbiA9IGZhbHNlO1xuICBkaXNwbGF5SW5ncmVkaWVudFBpY3R1cmVzT25SZWNpcGVDYXJkcyA9IGZhbHNlO1xuICBndWVzdHNJbnB1dE9uTXlNZWFscyA9IGZhbHNlO1xuICBjb2xsYXBzZVVuYXZhaWxhYmxlUHJvZHVjdHMgPSBmYWxzZTtcbiAgbm9TdXBwbGllciA9IGZhbHNlO1xuICBsb2dnZWRPblNlc3Npb24gPSBmYWxzZTtcbiAgaXNQcmVmZXJlbmNlc1NTUiA9IGZhbHNlO1xuICBvcmRlckhpc3RvcnlFbmFibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICB0cmFuc2ZlclVybEJhc2VPdmVycmlkZTogc3RyaW5nO1xuXG4gIGVuYWJsZU1lYWxzUGxhbm5lciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBhZGRBbGxQcm9kdWN0c1dhc0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaW5ncmVkaWVudHNBZGRlZDogbnVtYmVyOyBpbmdyZWRpZW50c1RvdGFsOiBudW1iZXIgfT4oKTtcbiAgZ3Vlc3RzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBndWVzdHM6IG51bWJlcjsgcmVjaXBlSWQ6IHN0cmluZyB9PigpO1xuICByZWNpcGVQcmljZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcmVtYWluaW5nOiBudW1iZXI7IGluQmFza2V0OiBudW1iZXI7IHJlY2lwZUlkOiBzdHJpbmcgfT4oKTtcbiAgcHJlZmVyZW5jZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgQ09SU0lzc3VlczogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuXG4gIG1lYWx6OiBNZWFsekludGVyZmFjZSA9IHtcbiAgICBwYXltZW50U3RhcnRlZDogdG90YWxQcmljZSA9PiB7XG4gICAgICBtZWFsekRlYnVnKCdbTWVhbHpdIHNlbmQgcGF5bWVudFN0YXJ0ZWQgZXZlbnQnKTtcbiAgICAgIHRoaXMub25CYXNrZXRBbmRQb3NTZW5kUGF5bWVudFN0YXJ0ZWRFdmVudCh0b3RhbFByaWNlKTtcbiAgICB9LFxuICAgIGFuYWx5dGljczoge1xuICAgICAgaW5pdDogKGRvbWFpbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5pbml0KGRvbWFpbik7XG4gICAgICB9LFxuICAgICAgZXZlbnRTZW50JDogdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmV2ZW50RW1pdHRlcixcbiAgICAgIHNldEFiVGVzdEtleToga2V5ID0+IHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZXRBYlRlc3RLZXkoa2V5KVxuICAgIH0sXG4gICAgYmFza2V0OiB7XG4gICAgICBiYXNrZXRJc1JlYWR5JDogdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRTdGF0cyQucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHN0YXRzID0+ICFzdGF0cyksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcCgoKSA9PiB0cnVlKVxuICAgICAgKSxcbiAgICAgIGluaXRpYWxpemU6ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub3JpZ2luLnZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5pbml0QmFza2V0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgc3RhcnQgTWVhbHo6IG9yaWdpbiBoYXNuXFwndCBiZWVuIHNldCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldEJhc2tldCgpO1xuICAgICAgfSxcbiAgICAgIHJlY2lwZUNvdW50OiAoKSA9PlxuICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLndhaXRGb3JCYXNrZXQucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRTdGF0cyQpLFxuICAgICAgICAgIHNraXBXaGlsZShicyA9PiAhYnMpLFxuICAgICAgICAgIG1hcChicyA9PiBicy5yZWNpcGVzQ291bnQpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKSxcbiAgICAgIG9wZW5QcmV2aWV3OiAoYW5hbHl0aWNzUGF0aDogc3RyaW5nID0gJycpID0+IHRoaXMucmVjaXBlc1NlcnZpY2Uub3BlbkJhc2tldChhbmFseXRpY3NQYXRoKSxcbiAgICAgIG92ZXJyaWRlVHJhbnNmZXJVcmw6ICh1cmw6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAodGhpcy5ub1N1cHBsaWVyICYmIHVybCkge1xuICAgICAgICAgIHRoaXMudHJhbnNmZXJVcmxCYXNlT3ZlcnJpZGUgPSB1cmw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGJhc2tldFN5bmM6IHtcbiAgICAgIGRlZmluZVB1c2hQcm9kdWN0c1RvQ2FydDogKHB1c2hQcm9kdWN0c1RvQ2FydDogKGNvbXBhcmFibGVQcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4ge1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIucHVzaFByb2R1Y3RzVG9SZXRhaWxlckNhcnQgPSBwdXNoUHJvZHVjdHNUb0NhcnQ7XG4gICAgICB9LFxuICAgICAgZGVmaW5lQWRkUHJvZHVjdHNUb0NhcnQ6IChhZGRQcm9kdWN0c1RvQ2FydDogKGNvbXBhcmFibGVQcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4ge1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIuYWRkUHJvZHVjdHNUb1JldGFpbGVyQ2FydCA9IGFkZFByb2R1Y3RzVG9DYXJ0O1xuICAgICAgfSxcbiAgICAgIGRlZmluZVJlbW92ZVByb2R1Y3RzRnJvbUNhcnQ6IChyZW1vdmVQcm9kdWN0c0Zyb21DYXJ0OiAoY29tcGFyYWJsZVByb2R1Y3RzOiBDb21wYXJhYmxlUHJvZHVjdFtdKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIHRoaXMuYmFza2V0SGFuZGxlci5yZW1vdmVQcm9kdWN0c0Zyb21SZXRhaWxlckNhcnQgPSByZW1vdmVQcm9kdWN0c0Zyb21DYXJ0O1xuICAgICAgfSxcbiAgICAgIGRlZmluZVB1c2hCYXNrZXRFbnRyaWVzVG9CYXNrZXQ6IChwdXNoQmFza2V0RW50cmllc1RvQmFza2V0OiAoZW50cmllczogYW55W10pID0+IHZvaWQpID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRIYW5kbGVyLnB1c2hCYXNrZXRFbnRyaWVzVG9CYXNrZXQgPSBwdXNoQmFza2V0RW50cmllc1RvQmFza2V0O1xuICAgICAgfSxcbiAgICAgIHJldGFpbGVyQmFza2V0Q2hhbmdlZDogKGNvbXBhcmFibGVQcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIucmV0YWlsZXJDYXJ0Q2hhbmdlZChjb21wYXJhYmxlUHJvZHVjdHMpO1xuICAgICAgICB0aGlzLnN1cHBsaWVyc1NlcnZpY2UubGFzdFN1cHBsaWVyQ2FydCA9IGNvbXBhcmFibGVQcm9kdWN0cztcbiAgICAgIH0sXG4gICAgICBoYW5kbGVQYXltZW50OiAodG90YWw6IG51bWJlcik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIuaGFuZGxlUGF5bWVudCh0b3RhbCk7XG4gICAgICAgIHRoaXMuc3VwcGxpZXJzU2VydmljZS5sYXN0U3VwcGxpZXJDYXJ0ID0gW107XG4gICAgICB9XG4gICAgfSxcbiAgICBjb25maWc6IHtcbiAgICAgIG1lYWx6TG9nczogKHBhcmFtOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5sb2dMZXZlbCQubmV4dChwYXJhbSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBmZWF0dXJlczoge1xuICAgICAgZW5hYmxlVmlkZW9SZWNpcGVzOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudmlkZW9SZWNpcGVzRW5hYmxlZCA9IHRydWU7XG4gICAgICAgIC8vIEluamVjdCB5b3V0dWJlIHNjcmlwdFxuICAgICAgICBjb25zdCB0YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgdGFnLnNyYyA9ICdodHRwczovL3d3dy55b3V0dWJlLmNvbS9pZnJhbWVfYXBpJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0YWcpO1xuICAgICAgfSxcbiAgICAgIGVuYWJsZUFydGljbGVzSW5DYXRhbG9nOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWNsZXNJbkNhdGFsb2dFbmFibGVkID0gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICBlbmFibGVVc2VyUHJlZmVyZW5jZXM6ICgpID0+IHtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZS5wcmVmZXJlbmNlc0FjdGl2YXRlZCQubmV4dCh0cnVlKTtcbiAgICAgIH0sXG4gICAgICBlbmFibGVUYWdzT25SZWNpcGVzOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudGFnc09uUmVjaXBlc0VuYWJsZWQgPSB0cnVlO1xuICAgICAgfSxcbiAgICAgIGVuYWJsZU1lYWxzUGxhbm5lcjogKHVybDogc3RyaW5nLCBhbnRpSW5mbGF0aW9uID0gZmFsc2UpID0+IHtcbiAgICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBuZWVkIHRvIHByb3ZpZGUgdGhlIHVybCBmb3IgdGhlIG1lYWxzLXBsYW5uZXIgcGFnZSB0byBlbmFibGUgdGhlIGZlYXR1cmUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lYWxzUGxhbm5lclVybCA9IHVybDtcbiAgICAgICAgdGhpcy5hbnRpSW5mbGF0aW9uID0gYW50aUluZmxhdGlvbjtcbiAgICAgICAgdGhpcy5lbmFibGVNZWFsc1BsYW5uZXIkLm5leHQodHJ1ZSk7XG4gICAgICB9LFxuICAgICAgZW5hYmxlU2VvOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VvRW5hYmxlZCA9IHRydWU7XG4gICAgICB9LFxuICAgICAgZW5hYmxlR3Vlc3RzSW5wdXRPbk15TWVhbHM6ICgpID0+IHtcbiAgICAgICAgdGhpcy5ndWVzdHNJbnB1dE9uTXlNZWFscyA9IHRydWU7XG4gICAgICB9LFxuICAgICAgY29sbGFwc2VVbmF2YWlsYWJsZVByb2R1Y3RzQnlEZWZhdWx0OiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VVbmF2YWlsYWJsZVByb2R1Y3RzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGhvb2s6IHtcbiAgICAgIHNldEhvb2tDYWxsYmFjazogKGNhbGxiYWNrOiAoaXNMb2dnZWQsIGlzUG9zVmFsaWQpID0+IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5ob29rQ2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICAgIH0sXG4gICAgICBzZXRGb3JjZVBvc0NhbGxiYWNrOiAoY2FsbGJhY2s6IChwb3NFeHRJZDogc3RyaW5nKSA9PiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuZm9yY2VQb3NDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgfVxuICAgIH0sXG4gICAgcG9zOiB7XG4gICAgICBsb2FkOiAoZXh0ZXJuYWxJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9yaWdpbi52YWx1ZSkge1xuICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdfbWlhbS9ub1N1cHBsaWVyL3Bvc0lkJyk7XG4gICAgICAgICAgdGhpcy5wb3NTZXJ2aWNlLmxvYWRQb3NXaXRoRXh0SWQoZXh0ZXJuYWxJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgc3RhcnQgTWVhbHo6IG9yaWdpbiBoYXNuXFwndCBiZWVuIHNldCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZ2V0QnlBZGRyZXNzOiB0aGlzLnBvc1NlcnZpY2UuZ2V0QnlBZGRyZXNzLmJpbmQodGhpcy5wb3NTZXJ2aWNlKSxcbiAgICAgIGdldEJ5Q29vcmRpbmF0ZXM6IHRoaXMucG9zU2VydmljZS5nZXRCeUNvb3JkaW5hdGVzLmJpbmQodGhpcy5wb3NTZXJ2aWNlKSxcbiAgICAgIG9wZW5Ob1N1cHBsaWVyT25ib2FyZGluZzogKCkgPT4gdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLnNob3dOb1N1cHBsaWVyT25ib2FyZGluZy5uZXh0KHRydWUpXG4gICAgfSxcbiAgICByZWNpcGVzOiB7XG4gICAgICBoaWRkZW46IHRoaXMucmVjaXBlc1NlcnZpY2UuaGlkZGVuLFxuICAgICAgYWRkQWxsSW5ncmVkaWVudHNDVEFXYXNDbGlja2VkOiB0aGlzLmFkZEFsbFByb2R1Y3RzV2FzQ2xpY2tlZCxcbiAgICAgIHNldERlZmF1bHRJbmdyZWRpZW50UGljdHVyZTogKHVybDogc3RyaW5nKSA9PiB0aGlzLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZSA9IHVybCxcbiAgICAgIHNldERlZmF1bHRSZWNpcGVQaWN0dXJlOiAodXJsOiBzdHJpbmcpID0+IHRoaXMuZGVmYXVsdFJlY2lwZVBpY3R1cmUgPSB1cmwsXG4gICAgICAvLyBXZSBrZWVwIHRob3NlIGp1c3QgaW4gY2FzZVxuICAgICAgLy8gc2V0UmVjaXBlc1ByaW1hcnlCdXR0b25BY3Rpb25zOiAoZGlzcGxheSA9IHRydWUsIGFkZFRvQmFza2V0ID0gdHJ1ZSkgPT4ge1xuICAgICAgLy8gICB0aGlzLnJlY2lwZXNTZXJ2aWNlLnNldFJlY2lwZXNQcmltYXJ5QnV0dG9uQWN0aW9ucyhkaXNwbGF5LCBhZGRUb0Jhc2tldCk7XG4gICAgICAvLyB9LFxuICAgICAgLy8gc2V0U3VnZ2VzdGlvbnNQcmltYXJ5QnV0dG9uQWN0aW9uczogKGRpc3BsYXkgPSB0cnVlLCBhZGRUb0Jhc2tldCA9IHRydWUpID0+IHtcbiAgICAgIC8vICAgdGhpcy5yZWNpcGVzU2VydmljZS5zZXRTdWdnZXN0aW9uc1ByaW1hcnlCdXR0b25BY3Rpb25zKGRpc3BsYXksIGFkZFRvQmFza2V0KTtcbiAgICAgIC8vIH0sXG4gICAgICBzZXREaWZmaWN1bHR5TGV2ZWxzOiAobGV2ZWxzOiB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdKSA9PiB7XG4gICAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2UuZGlmZmljdWx0eUxldmVscyA9IGxldmVscztcbiAgICAgIH0sXG4gICAgICBzaG93Q29uZmlybWF0aW9uVG9hc3RlcjogKCkgPT4ge1xuICAgICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmNvbmZpcm1hdGlvblRvYXN0ZXIgPSB0cnVlO1xuICAgICAgfSxcbiAgICAgIHNob3VsZERpc3BsYXlJbmdyZWRpZW50UGljdHVyZXNPblJlY2lwZUNhcmRzOiAoc2hvdWxkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgPSBzaG91bGQ7XG4gICAgICB9XG4gICAgfSxcbiAgICByb3V0ZXI6IHtcbiAgICAgIHNldFJlY2lwZUNhdGFsb2dVcmw6ICh1cmwgPSAnJyk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmNhdGFsb2dVcmwgPSB1cmw7XG4gICAgICB9LFxuICAgICAgc2V0UmVjaXBlSW5mb0xpbms6ICh1cmwgPSAnJyk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnJlY2lwZUluZm9VcmwgPSB1cmw7XG4gICAgICB9LFxuICAgICAgc2V0UmV0YWlsZXJDYXJ0VXJsOiAodXJsID0gJycpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5yZXRhaWxlckNhcnRVcmwgPSB1cmw7XG4gICAgICB9LFxuICAgICAgc2V0UHJvbW90aW9uc1VybDogKHVybCA9ICcnKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMucHJvbW90aW9uc1VybCA9IHVybDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHN1cHBsaWVyOiB7XG4gICAgICBzZXRPcmlnaW46IChvcmlnaW46IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAob3JpZ2luLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNldE9yaWdpbklmTmVjZXNzYXJ5KG9yaWdpbik7XG4gICAgICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5kaXNwbGF5UmVjaXBlSW5VcmwoKTtcbiAgICAgICAgICAvLyBSZW1vdmUgb3JkZXIgcGFyYW1ldGVyIGZyb20gdXJsIHRvIGF2b2lkIHVud2FudGVkIGRyYXdlciBvcGVuaW5nIChvbmx5IGluIDkuMy54KVxuICAgICAgICAgIHRoaXMuaGlzdG9yeVNlcnZpY2UucmVtb3ZlT3JkZXJQYXJhbWV0ZXJGcm9tVXJsKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsb2FkOiAoc3VwcGxpZXJJZDogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnN1cHBsaWVyc1NlcnZpY2Uuc3VwcGxpZXIkLnZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5iYXNrZXRIYW5kbGVyLnJlc2V0TWVhbHooKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcmlnaW4udmFsdWUpIHtcbiAgICAgICAgICB0aGlzLnN1cHBsaWVyc1NlcnZpY2UubG9hZFN1cHBsaWVyKHN1cHBsaWVySWQudG9TdHJpbmcoKSkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgaWYgKCF0aGlzLmxvZ2dlZE9uU2Vzc2lvbikge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ19taWFtL3VzZXJJZCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmdlbmVyYXRlQXV0aGxlc3NJZElmTmVjZXNzYXJ5KCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgc3RhcnQgTWVhbHo6IG9yaWdpbiBoYXNuXFwndCBiZWVuIHNldCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc2V0dXBXaXRoVG9rZW46ICh0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc3VwcGxpZXJzU2VydmljZS50b2tlbiA9IHRva2VuO1xuICAgICAgICBjb25zdCBwYXJzZWRUb2tlbiA9IEpTT04ucGFyc2UoYXRvYih0b2tlbikpIGFzXG4gICAgICAgICAgeyBub1N1cHBsaWVyPzogYm9vbGVhbjsgc3VwcGxpZXJJZDogc3RyaW5nOyBvcmlnaW46IHN0cmluZzsgZG9tYWluOiBzdHJpbmc7IG9yZGVySGlzdG9yeT86IGJvb2xlYW47IGRpc2FibGVBbmFseXRpY3M/OiBib29sZWFuIH07XG4gICAgICAgIGlmICghcGFyc2VkVG9rZW4ub3JpZ2luIHx8ICFwYXJzZWRUb2tlbi5kb21haW4gfHwgKCFwYXJzZWRUb2tlbi5zdXBwbGllcklkICYmICFwYXJzZWRUb2tlbi5ub1N1cHBsaWVyKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndGhlIHRva2VuIGRvZXMgbm90IGhhdmUgdGhlIGNvcnJlY3QgZm9ybWF0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tZWFsei5zdXBwbGllci5zZXRPcmlnaW4ocGFyc2VkVG9rZW4ub3JpZ2luKTtcbiAgICAgICAgdGhpcy5tZWFsei5hbmFseXRpY3MuaW5pdChwYXJzZWRUb2tlbi5kb21haW4pO1xuICAgICAgICB0aGlzLmNvbnRleHRSZWdpc3RyeVNlcnZpY2UuZGlzYWJsZWRBbmFseXRpY3MgPSAhIXBhcnNlZFRva2VuLmRpc2FibGVBbmFseXRpY3M7XG4gICAgICAgIHRoaXMub3JkZXJIaXN0b3J5RW5hYmxlZCQubmV4dCghIXBhcnNlZFRva2VuLm9yZGVySGlzdG9yeSk7XG4gICAgICAgIGlmIChwYXJzZWRUb2tlbi5ub1N1cHBsaWVyKSB7XG4gICAgICAgICAgdGhpcy5sb2FkU3RvcmVMb2NhdG9yUGFja2FnZSgpO1xuICAgICAgICAgIHRoaXMubm9TdXBwbGllciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5mYWtlQ2FydFNlcnZpY2UubWF0Y2hNZWFsekJhc2tldCgpO1xuICAgICAgICAgIHRoaXMubWVhbHoudXNlci5yZXNldCgpO1xuICAgICAgICAgIHRoaXMucG9zU2VydmljZS5wb3NGcm9tU3RvcmFnZSgpO1xuICAgICAgICAgIHRoaXMubWVhbHouYmFza2V0U3luYy5kZWZpbmVQdXNoUHJvZHVjdHNUb0NhcnQocHJvZHVjdHMgPT4ge1xuICAgICAgICAgICAgdGhpcy5mYWtlQ2FydFNlcnZpY2UucHVzaFRvRmFrZUNhcnQocHJvZHVjdHMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuYmFza2V0SGFuZGxlci5ub1N1cHBsaWVyJC5uZXh0KHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdfbWlhbS9ub1N1cHBsaWVyL3Bvc0lkJyk7XG4gICAgICAgICAgdGhpcy5tZWFsei5zdXBwbGllci5sb2FkKHBhcnNlZFRva2VuLnN1cHBsaWVySWQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZ2V0QWZmaWxpYXRlU3VwcGxpZXJzOiAoKSA9PiB0aGlzLnN1cHBsaWVyc1NlcnZpY2UuZ2V0QWZmaWxpYXRlU3VwcGxpZXJzKClcbiAgICB9LFxuICAgIHVzZXI6IHtcbiAgICAgIGxvYWRXaXRoQXV0aGxlc3NJZDogKGlkLCBmb3JiaWRQcm9maWxpbmcgPSBmYWxzZSkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRleHRSZWdpc3RyeVNlcnZpY2UuZm9yYmlkUHJvZmlsaW5nID0gZm9yYmlkUHJvZmlsaW5nO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnX21pYW0vYXV0aGxlc3NJZCcsIGlkKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ19taWFtL2F1dGhsZXNzLWZvcmJpZC1wcm9maWxpbmcnLCAnJyArIGZvcmJpZFByb2ZpbGluZyk7XG4gICAgICB9LFxuICAgICAgbG9hZFdpdGhFeHRlcm5hbElkOiAoaWQsIGZvcmJpZFByb2ZpbGluZyA9IGZhbHNlLCBpbml0QmFza2V0ID0gZmFsc2UpID0+IHtcbiAgICAgICAgdGhpcy5jb250ZXh0UmVnaXN0cnlTZXJ2aWNlLmZvcmJpZFByb2ZpbGluZyA9IGZvcmJpZFByb2ZpbGluZztcbiAgICAgICAgdGhpcy5sb2dnZWRPblNlc3Npb24gPSB0cnVlO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnX21pYW0vdXNlcklkJywgaWQpO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnX21pYW0vdXNlclRva2VuJyk7XG4gICAgICAgIHRoaXMuYmFza2V0SGFuZGxlci5yZXNldE1lYWx6KCk7XG4gICAgICAgIHJldHVybiB0aGlzLmxvZ1VzZXIoaWQsIGZvcmJpZFByb2ZpbGluZywgaW5pdEJhc2tldCk7XG4gICAgICB9LFxuICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubG9nZ2VkT25TZXNzaW9uKSB7XG4gICAgICAgICAgdGhpcy5iYXNrZXRIYW5kbGVyLnJlc2V0TWVhbHooKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvZ2dlZE9uU2Vzc2lvbiA9IGZhbHNlO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnX21pYW0vdXNlclRva2VuJyk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdfbWlhbS91c2VySWQnKTtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZS50b2dnbGVJc0xvZ2dlZChmYWxzZSk7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVBdXRobGVzc0lkSWZOZWNlc3NhcnkoKS5waXBlKFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgc3dpdGNoTWFwKGlkID0+IHtcbiAgICAgICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnJlc2V0VXNlckluZm8oKTtcbiAgICAgICAgICAgICAgbWVhbHpEZWJ1ZygnW01lYWx6XSB3aWxsIHJlZnJlc2ggYmFza2V0IGFmdGVyIHJlc2V0Jyk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlZnJlc2hDdXJyZW50QmFza2V0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKTtcbiAgICAgIH0sXG4gICAgICBzZXRMYW5ndWFnZTogKGxhbmc6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmxhbmd1YWdlID0gbGFuZztcbiAgICAgIH0sXG4gICAgICBzZXRGYXZvcml0ZUl0ZW1zOiBmYXZvcml0ZVByb2R1Y3RJZHMgPT4gdGhpcy51c2VyU2VydmljZS5zZXRGYXZvcml0ZUl0ZW1zKGZhdm9yaXRlUHJvZHVjdElkcyksXG4gICAgICBzZXRMb2NhdGlvbjogKGNvb3JkczogR2VvbG9jYXRpb25Qb3NpdGlvbikgPT4gdGhpcy51c2VyU2VydmljZS51c2VyQ29vcmRpbmF0ZXMkLm5leHQoY29vcmRzIHx8IG51bGwpLFxuICAgICAgdXBkYXRlRm9yYmlkUHJvZmlsaW5nOiAoZm9yYmlkUHJvZmlsaW5nOiBib29sZWFuLCB1c2VySWQ6IHN0cmluZywgaXNBdXRobGVzcyA9IGZhbHNlKSA9PiB7XG4gICAgICAgIGlmIChpc0F1dGhsZXNzKSB7XG4gICAgICAgICAgdGhpcy5tZWFsei51c2VyLmxvYWRXaXRoQXV0aGxlc3NJZCh1c2VySWQsIGZvcmJpZFByb2ZpbGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dVc2VyKHVzZXJJZCwgZm9yYmlkUHJvZmlsaW5nLCBmYWxzZSkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGV2ZW50czoge1xuICAgICAgc3RvcmVMb2NhdG9yT3BlbmVkOiAoKSA9PiB0aGlzLnN0b3JlTG9jYXRvclNlcnZpY2Uuc3RvcmVMb2NhdG9yT3BlbmVkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgfSxcbiAgICBzZXRTdGlja3lIZWFkZXJIZWlnaHQ6IChoZWlnaHQ6IG51bWJlcik6IHZvaWQgPT4ge1xuICAgICAgaWYgKHRoaXMuc3VwcGxpZXJIZWFkZXJIZWlnaHQkLnZhbHVlICE9PSBoZWlnaHQpIHtcbiAgICAgICAgdGhpcy5zdXBwbGllckhlYWRlckhlaWdodCQubmV4dChoZWlnaHQpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBPdmVycmlkZSB0d28gdGltZXMgJ2xsIG5vdCBiZSBjb25zaWRlcmVkXG4gICAgICogQHBhcmFtIGljb24gaGF2ZSB0byBiZSBhIGtub3dlZCBpY29uIG5hbWUgc2VlIHNlY3Rpb24gJ0N1c3RvbSBpY29ucycgaW4gcmVhZCBtZVxuICAgICAqIEBwYXJhbSB1cmwgb2YgdGhlIG5ldyBpY29uXG4gICAgICovXG4gICAgb3ZlcnJpZGVJY29uOiAoaWNvbiwgdXJsKSA9PiB7IC8vIFRPRE86IE1PVkUgVE8gY29udGVudFxuICAgICAgaWYgKCF0aGlzLmljb25zKSB7XG4gICAgICAgIHRoaXMuaWNvbnMgPSBbXTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGljb25JbmRleCA9IHRoaXMuaWNvbnMuZmluZEluZGV4KChpOiBJY29uT3ZlcnJpZGUpID0+IGkuaWNvbiA9PT0gaWNvbik7XG4gICAgICBpZiAoaWNvbkluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5pY29uc1tpY29uSW5kZXhdID0geyBpY29uLCB1cmwgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaWNvbnMucHVzaCh7IGljb24sIHVybCB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHNldERlZmF1bHRTY3JvbGxFbGVtZW50R2V0dGVyOiAoY2FsbGJhY2s6ICgpID0+IEhUTUxFbGVtZW50KSA9PiB0aGlzLmRlZmF1bHRTY3JvbGxFbGVtZW50R2V0dGVyID0gY2FsbGJhY2tcbiAgfTtcblxuICBtZWFsekludGVybmFsOiBNZWFsekludGVybmFsSW50ZXJmYWNlID0ge1xuICAgIGFuYWx5dGljczoge1xuICAgICAgc2VuZEV2ZW50OiAobmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIHByb3BzOiBQbGF1c2libGVQcm9wcywgam91cm5leT86IHN0cmluZykgPT5cbiAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChuYW1lLCBwYXRoLCBwcm9wcywgam91cm5leSksXG4gICAgICBzZXRJc01lYWx6UGFnZTogKGlzTWVhbHpQYWdlOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5pc01lYWx6UGFnZSA9IGlzTWVhbHpQYWdlO1xuICAgICAgfVxuICAgIH0sXG4gICAgYmFza2V0OiB7XG4gICAgICByZWNpcGVEYXRhSW5CYXNrZXQkOiAoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlY2lwZXNJbkJhc2tldCQoKSxcbiAgICAgIHJlY2lwZXNBZGRlZFRvQmFza2V0JDogKCkgPT4gdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVzQWRkZWQsXG4gICAgICB3YWl0Rm9yQmFza2V0RW50cmllczogKCkgPT4gdGhpcy5iYXNrZXRzU2VydmljZS53YWl0Rm9yQmFza2V0LnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuYmFza2V0c1NlcnZpY2Uud2FpdEZvckJhc2tldEVudHJpZXMpKVxuICAgIH0sXG4gICAgY2F0YWxvZzoge1xuICAgICAgb3BlblByZWZlcmVuY2VzOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNQcmVmZXJlbmNlc1NTUiA9IHRydWU7XG4gICAgICAgIHRoaXMucHJlZmVyZW5jZXNTZXJ2aWNlLmlzT3BlbmVkJC5uZXh0KHRydWUpO1xuICAgICAgfSxcbiAgICAgIHByZWZlcmVuY2VzTW9kYWxDaGFuZ2VkOiAoKSA9PiB0aGlzLnByZWZlcmVuY2VzQ2hhbmdlZCxcbiAgICAgIHByZWZlcmVuY2VzQ291bnQ6ICgpOiBPYnNlcnZhYmxlPG51bWJlcj4gPT4gdGhpcy5wcmVmZXJlbmNlc1NlcnZpY2UuY3VycmVudFByZWZlcmVuY2VzTnVtYmVyLFxuICAgICAgbG9hZE1vcmVSZWNpcGVzOiAocGFja2FnZUlkLCBwYWdlLCBwYWdlU2l6ZSwgZ3Vlc3RzKTogT2JzZXJ2YWJsZTxSZWNpcGVbXT4gPT5cbiAgICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5sb2FkUmVjaXBlc0Zyb21QYWNrYWdlSWQocGFja2FnZUlkLCBwYWdlLCBwYWdlU2l6ZSwgZ3Vlc3RzKVxuICAgIH0sXG4gICAgcHJlZmVyZW5jZXM6IHtcbiAgICAgIHJlc2V0UHJlZmVyZW5jZXM6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5wcmVmZXJlbmNlc1NlcnZpY2UucmVzZXRQcmVmZXJlbmNlcygpO1xuICAgICAgICBpZiAodGhpcy5pc1ByZWZlcmVuY2VzU1NSKSB7XG4gICAgICAgICAgdGhpcy5wcmVmZXJlbmNlc1NlcnZpY2Uuc2VuZENhY2hlUmVxdWVzdCgncmVtb3ZlJywgJ3ByZWZlcmVuY2VzJykuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGNvbmZpZzoge1xuICAgICAgbG9nTGV2ZWw6IHRoaXMubG9nTGV2ZWwkXG4gICAgfSxcbiAgICByZWNpcGVzOiB7XG4gICAgICBvcGVuRGV0YWlsczogKHJlY2lwZUlkOiBzdHJpbmcsIGd1ZXN0czogbnVtYmVyLCBpbml0aWFsVGFiSW5kZXg6IG51bWJlciwgcGF0aDogc3RyaW5nID0gJycsIGNhdGVnb3J5SWQ6IHN0cmluZyA9IG51bGwpID0+XG4gICAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2Uub3BlblJlY2lwZURldGFpbHMocmVjaXBlSWQsIGd1ZXN0cywgaW5pdGlhbFRhYkluZGV4LCBwYXRoLCBjYXRlZ29yeUlkKSxcbiAgICAgIHVwZGF0ZVJlY2lwZUxpa2U6IChyZWNpcGVMaWtlSWQ6IHN0cmluZywgcmVjaXBlSWQ6IHN0cmluZywgaXNQYXN0OiBib29sZWFuLCBwYXRoOiBzdHJpbmcgPSAnJykgPT4ge1xuICAgICAgICBjb25zdCBldmVudFRyYWNlOiBFdmVudFRyYWNlID0geyBvcmlnaW5QYXRoOiBwYXRoLCBwcm9wczogeyByZWNpcGVfaWQ6IHJlY2lwZUlkIH0gfTtcbiAgICAgICAgY29uc3QgcmVjaXBlTGlrZSA9IHRoaXMucmVjaXBlTGlrZXNTZXJ2aWNlLnByZXBhcmVSZWNpcGVMaWtlRm9yVXBkYXRlKHJlY2lwZUlkLCByZWNpcGVMaWtlSWQsIGlzUGFzdCk7XG5cbiAgICAgICAgdGhpcy5yZWNpcGVMaWtlc1NlcnZpY2UudXBkYXRlTGlrZShyZWNpcGVJZCwgcmVjaXBlTGlrZSwgZXZlbnRUcmFjZSk7XG4gICAgICB9LFxuICAgICAgZ2V0UmVjaXBlTGlrZTogKHJlY2lwZUlkOiBzdHJpbmcpID0+IHRoaXMucmVjaXBlTGlrZXNTZXJ2aWNlLmdldExpa2UocmVjaXBlSWQpLFxuICAgICAgcmVjaXBlTGlrZVVwZGF0ZWQ6ICgpID0+IHRoaXMucmVjaXBlTGlrZXNTZXJ2aWNlLnJlY2lwZUxpa2VVcGRhdGVkJCxcbiAgICAgIGd1ZXN0c1VwZGF0ZWQ6ICgpID0+IHRoaXMuZ3Vlc3RzQ2hhbmdlZCxcbiAgICAgIHJlY2lwZVByaWNlVXBkYXRlZDogKCkgPT4gdGhpcy5yZWNpcGVQcmljZUNoYW5nZWQsXG4gICAgICBmZXRjaFByaWNpbmc6IChyZWNpcGVJZDogc3RyaW5nLCBwb3NJZDogc3RyaW5nLCBzZXJ2ZXM6IG51bWJlciwgaXNFeHRTdG9yZUlkOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgICAgaWYgKCFyZWNpcGVJZCB8fCAhcG9zSWQgfHwgIXNlcnZlcykge1xuICAgICAgICAgIHJldHVybiAob2YobnVsbCkgYXMgT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2UuZ2V0UHJpY2luZyhyZWNpcGVJZCwgcG9zSWQsIHNlcnZlcywgaXNFeHRTdG9yZUlkKS5waXBlKFxuICAgICAgICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LnByaWNlID09PSAwKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgc3VwcGxpZXI6IHtcbiAgICAgIGdldFRva2VuOiAoKSA9PiB0aGlzLnN1cHBsaWVyc1NlcnZpY2UudG9rZW5cbiAgICB9LFxuICAgIHVzZXI6IHtcbiAgICAgIGdldExhbmd1YWdlOiAoKSA9PiB0aGlzLnVzZXJTZXJ2aWNlLmxhbmd1YWdlLFxuICAgICAgaXNBdXRoZW50aWNhdGVkOiAoKSA9PiB0aGlzLnVzZXJTZXJ2aWNlLmlzTG9nZ2VkJCxcbiAgICAgIHNldFNlc3Npb25JZDogKHNlc3Npb25JZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ19taWFtL3Nlc3Npb25JZCcsIHNlc3Npb25JZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBwbGFubmVyOiB7XG4gICAgICBnZXREYXNoYm9hcmRIVE1MOiAoKSA9PiB0aGlzLnBsYW5uZXJTU1JTZXJ2aWNlLmdldFBsYW5uZXJEYXNoYm9hcmQoKSxcbiAgICAgIGdldEN1cnJlbnRNZW51SFRNTDogKCkgPT4gdGhpcy5wbGFubmVyU1NSU2VydmljZS5nZXRDdXJyZW50TWVudSgpLFxuICAgICAgZ2V0RW50cnlIVE1MOiAoKSA9PiB0aGlzLnBsYW5uZXJTU1JTZXJ2aWNlLmdldEVudHJ5KClcbiAgICB9LFxuICAgIGdldFN0aWNreUhlYWRlckhlaWdodDogKCkgPT4gdGhpcy5zdXBwbGllckhlYWRlckhlaWdodCRcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRzU2VydmljZTogQmFza2V0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmVmZXJlbmNlc1NlcnZpY2U6IFByZWZlcmVuY2VzU2VydmljZSxcbiAgICBwcml2YXRlIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVzU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRSZWNpcGVDbGVhbnVwU2VydmljZTogQmFza2V0UmVjaXBlQ2xlYW51cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgICBwcml2YXRlIHN1cHBsaWVyc1NlcnZpY2U6IFN1cHBsaWVyc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICAvLyBwcml2YXRlIGJhc2tldEhhbmRsZXI6IExlZ2FjeUJhc2tldHNTeW5jaHJvbml6ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFza2V0SGFuZGxlcjogQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZUxvY2F0b3JTZXJ2aWNlOiBTdG9yZUxvY2F0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlTGlrZXNTZXJ2aWNlOiBSZWNpcGVMaWtlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYWtlQ2FydFNlcnZpY2U6IEZha2VSZXRhaWxlckNhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGlzdG9yeVNlcnZpY2U6IEhpc3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFJlZ2lzdHJ5U2VydmljZTogQ29udGV4dFJlZ2lzdHJ5U2VydmljZSxcbiAgICBwcml2YXRlIHBsYW5uZXJTU1JTZXJ2aWNlOiBQbGFubmVyU1NSU2VydmljZVxuICApIHtcbiAgICB0aGlzLmlzU21hbGxTY3JlZW4kLm5leHQoIXRoaXMubWVkaWFNYXRjaGVyLm1hdGNoTWVkaWEoU01BTExfU0NSRUVOX0JQKS5tYXRjaGVzKTtcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKFNNQUxMX1NDUkVFTl9CUCkuc3Vic2NyaWJlKEJQQ2hhbmdlID0+IHRoaXMuaXNTbWFsbFNjcmVlbiQubmV4dCghQlBDaGFuZ2UubWF0Y2hlcykpO1xuICAgIHRoaXMuaWNvbnMgPSBbXTtcbiAgICB0aGlzLkNPUlNJc3N1ZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgICBPYmplY3QuYXNzaWduKHdpbmRvdywge1xuICAgICAgbWVhbHo6IHRoaXMubWVhbHosXG4gICAgICBtZWFsekludGVybmFsOiB0aGlzLm1lYWx6SW50ZXJuYWxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgaG9va0NhbGxiYWNrOiAoaXNMb2dnZWQsIGlzUG9zVmFsaWQpID0+IGJvb2xlYW4gPSAoaXNMb2dnZWQsIGlzUG9zVmFsaWQpID0+IHtcbiAgICBtZWFseldhcm4oJ1tNZWFsel0gaG9va0NhbGxiYWNrICh1c2VkIHRvIGZvcmNlIHVzZXIgbG9naW4pIG5vdCBzZXQnKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBmb3JjZVBvc0NhbGxiYWNrOiAocG9zRXh0SWQ6IHN0cmluZykgPT4gYm9vbGVhbiA9IChwb3NFeHRJZDogc3RyaW5nKSA9PiB7XG4gICAgbWVhbHpXYXJuKCdbTWVhbHpdIGZvcmNlUG9zQ2FsbGJhY2sgKHVzZWQgdG8gZm9yY2Ugc2VsZWN0ZWQgc2hvcCkgbm90IHNldCcpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICBkZWZhdWx0U2Nyb2xsRWxlbWVudEdldHRlcjogKCkgPT4gSFRNTEVsZW1lbnQgPSAoKSA9PiBkb2N1bWVudC5ib2R5O1xuXG4gIHNldENPUlNJc3N1ZVN0YXRlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5DT1JTSXNzdWVzLm5leHQodmFsdWUpO1xuICB9XG5cbiAgZ2V0Q09SU0lzc3Vlc1N0YXRlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLkNPUlNJc3N1ZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRPdmVycmlkZUljb25VcmwoaWNvbjogSWNvbik6IHN0cmluZyB7XG4gICAgY29uc3QgZmluZGljb24gPSB0aGlzLmljb25zLmZpbmQoZWwgPT4gZWwuaWNvbiA9PT0gaWNvbik7XG4gICAgcmV0dXJuIGZpbmRpY29uID8gZmluZGljb24udXJsIDogJyc7XG4gIH1cblxuICBwcml2YXRlIHNldE9yaWdpbklmTmVjZXNzYXJ5KG9yaWdpbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKG9yaWdpbiAmJiB0aGlzLm9yaWdpbi52YWx1ZSAhPT0gb3JpZ2luKSB7XG4gICAgICB0aGlzLm9yaWdpbi5uZXh0KG9yaWdpbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkJhc2tldEFuZFBvc1NlbmRQYXltZW50U3RhcnRlZEV2ZW50KHRvdGFsUHJpY2U6IG51bWJlcik6IHZvaWQge1xuICAgIGZvcmtKb2luKFtcbiAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2Uud2FpdEZvckJhc2tldCxcbiAgICAgIHRoaXMucG9zU2VydmljZS53YWl0Rm9yUG9zLnBpcGUodGFrZSgxKSlcbiAgICBdKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IGJhc2tldCA9IHJlc1swXTtcbiAgICAgIGNvbnN0IHBvcyA9IHJlc1sxXTtcbiAgICAgIGlmIChiYXNrZXQudG90YWxQcmljZSA+IDApIHtcbiAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICAgICAncGF5bWVudC5zdGFydGVkJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiYXNrZXRfaWQ6IGJhc2tldC5pZCxcbiAgICAgICAgICAgIG1pYW1fYW1vdW50OiBiYXNrZXQudG90YWxQcmljZS50b1N0cmluZygpLFxuICAgICAgICAgICAgdG90YWxfYW1vdW50OiB0b3RhbFByaWNlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBwb3NfaWQ6IHRoaXMucG9zU2VydmljZS5wb3MkLmdldFZhbHVlKCkuaWQsXG4gICAgICAgICAgICBwb3NfbmFtZTogdGhpcy5wb3NTZXJ2aWNlLnBvcyQuZ2V0VmFsdWUoKS5hdHRyaWJ1dGVzLm5hbWUsXG4gICAgICAgICAgICBzdXBwbGllcl9pZDogdGhpcy5wb3NTZXJ2aWNlLnBvcyQuZ2V0VmFsdWUoKS5yZWxhdGlvbnNoaXBzLnN1cHBsaWVyLmRhdGEuaWQsXG4gICAgICAgICAgICByZWNpcGVfY291bnQ6IGJhc2tldC5yZWNpcGVJbmZvcy5sZW5ndGgudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIG1pYW1fcHJvZHVjdHM6IGJhc2tldC5lbnRyaWVzLmxlbmd0aC50b1N0cmluZygpXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dVc2VyKHRva2VuT3JJZDogc3RyaW5nLCBmb3JiaWRQcm9maWxpbmc6IGJvb2xlYW4sIGluaXRCYXNrZXQ6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0b2tlbk9ySWQpIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudG9nZ2xlSXNMb2dnZWQodHJ1ZSk7XG4gICAgfVxuICAgIC8vIGlmIGluaXRCYXNrZXQgaXMgc2V0IHRvIGZhbHNlLCB0aGUgYmFza2V0ICYgbGlzdCB3aWxsIG5vdCBiZSBpbml0aWFsaXNlZCB1bnRpbCB0aGUgZmlyc3QgdGltZSB0aGV5IGFyZSBuZWVkZWRcbiAgICBpZiAoaW5pdEJhc2tldCkge1xuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5pbml0QmFza2V0KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmdlbmVyYXRpbmdBdXRobGVzc0lkJC5waXBlKFxuICAgICAgc2tpcFdoaWxlKGdlbmVyYXRpbmcgPT4gZ2VuZXJhdGluZyksXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgaWYgKCEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ19taWFtL2F1dGhsZXNzSWQnKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlbG9hZEJhc2tldCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudXNlclNlcnZpY2Uuc2V0VXNlckluZm8oZm9yYmlkUHJvZmlsaW5nKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRTdG9yZUxvY2F0b3JQYWNrYWdlKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZFN0b3JlTG9jYXRvclNjcmlwdCgpO1xuICAgIHRoaXMubG9hZFN0b3JlTG9jYXRvckNzcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkU3RvcmVMb2NhdG9yU2NyaXB0KCk6IHZvaWQge1xuICAgIGNvbnN0IHN0b3JlTG9jYXRvclNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHN0b3JlTG9jYXRvclNjcmlwdC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnbW9kdWxlJyk7XG4gICAgc3RvcmVMb2NhdG9yU2NyaXB0LnNldEF0dHJpYnV0ZSgnaWQnLCAnbWVhbHotc3RvcmUtbG9jYXRvci1zY3JpcHQnKTtcbiAgICBzdG9yZUxvY2F0b3JTY3JpcHQuc2V0QXR0cmlidXRlKCdzcmMnLCBgJHtlbnZpcm9ubWVudC5tZWFsekNvbXBvbmVudHN9L3N0b3JlLWxvY2F0b3Ivc3RvcmUtbG9jYXRvci5taW4uanNgKTtcbiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lYWx6LXN0b3JlLWxvY2F0b3Itc2NyaXB0JykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdG9yZUxvY2F0b3JTY3JpcHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkU3RvcmVMb2NhdG9yQ3NzKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0b3JlTG9jYXRvckNzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICBzdG9yZUxvY2F0b3JDc3Muc2V0QXR0cmlidXRlKCdyZWwnLCAnc3R5bGVzaGVldCcpO1xuICAgIHN0b3JlTG9jYXRvckNzcy5zZXRBdHRyaWJ1dGUoJ2lkJywgJ21lYWx6LXN0b3JlLWxvY2F0b3ItY3NzJyk7XG4gICAgc3RvcmVMb2NhdG9yQ3NzLnNldEF0dHJpYnV0ZSgnaHJlZicsIGAke2Vudmlyb25tZW50Lm1lYWx6Q29tcG9uZW50c30vc3RvcmUtbG9jYXRvci9zdG9yZS1sb2NhdG9yLmNzc2ApO1xuICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVhbHotc3RvcmUtbG9jYXRvci1jc3MnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0b3JlTG9jYXRvckNzcyk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQXV0aGxlc3NJZElmTmVjZXNzYXJ5KCk6IE9ic2VydmFibGU8c3RyaW5nIHwgdm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmdlbmVyYXRpbmdBdXRobGVzc0lkJC5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDgwMCksXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKGlzR2VuZXJhdGluZyA9PiB7XG4gICAgICAgIGlmIChpc0dlbmVyYXRpbmcgfHwgdGhpcy5sb2dnZWRPblNlc3Npb24gfHwgISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnX21pYW0vYXV0aGxlc3NJZCcpKSB7XG4gICAgICAgICAgcmV0dXJuIG9mPHZvaWQ+KG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmdlbmVyYXRlQW5vbnltb3VzVXNlcklkKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0QmFza2V0KCkge1xuICAgIHRoaXMuYmFza2V0c1NlcnZpY2Uud2FpdEZvckJhc2tldEVudHJpZXNcbiAgICAgIC5waXBlKG1hcCgoZW50cmllczogQmFza2V0RW50cnlbXSkgPT5cbiAgICAgICAgZW50cmllc1xuICAgICAgICAgIC5maWx0ZXIoZW50cnkgPT4gZW50cnkuc3RhdHVzID09PSAnYWN0aXZlJylcbiAgICAgICAgICAubWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNsb25lZEVudHJ5ID0gZGVlcENsb25lV2l0aENsYXNzKGVudHJ5KSBhcyBCYXNrZXRFbnRyeTtcbiAgICAgICAgICAgIGNsb25lZEVudHJ5LnF1YW50aXR5ID0gMDtcbiAgICAgICAgICAgIHJldHVybiBjbG9uZWRFbnRyeTtcbiAgICAgICAgICB9KVxuICAgICAgKSkuc3Vic2NyaWJlKChjbG9uZWRFbnRyaWVzVG9SZW1vdmU6IEJhc2tldEVudHJ5W10pID0+IHtcbiAgICAgICAgaWYgKGNsb25lZEVudHJpZXNUb1JlbW92ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlc2V0QmFza2V0KCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXNldEJhc2tldCA9IGNsb25lZEVudHJpZXNUb1JlbW92ZS5tYXAoZW50cnkgPT4gbmV3IFJlc2V0QmFza2V0QWN0aW9uKGVudHJ5LCB7fSwgdGhpcy5iYXNrZXRzU2VydmljZSkpO1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIuYWRkVG9BY3Rpb25MaXN0KHJlc2V0QmFza2V0KTtcbiAgICAgICAgaWYgKHJlc2V0QmFza2V0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXNldEJhc2tldFtyZXNldEJhc2tldC5sZW5ndGggLSAxXS5vblN1Y2Nlc3MucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZXNldEJhc2tldCgpLnN1YnNjcmliZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIl19
@@ -2,10 +2,10 @@ export const environment = {
2
2
  env: 'prod',
3
3
  miamAPI: 'https://api.miam.tech',
4
4
  miamWeb: 'https://miam.tech',
5
- mealzComponents: 'https://cdn.jsdelivr.net/npm/mealz-components@2.8/dist',
5
+ mealzComponents: 'https://cdn.jsdelivr.net/npm/mealz-components@2.10/dist',
6
6
  mealzSsrApi: 'https://ssr-api.mealz.ai',
7
7
  mealzSdkV10: 'https://cdn.jsdelivr.net/npm/webc-miam@10.5',
8
8
  lang: 'fr',
9
9
  analyticsEnabled: true // Only used in DEV mode
10
10
  };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixHQUFHLEVBQUUsTUFBTTtJQUNYLE9BQU8sRUFBRSx1QkFBdUI7SUFDaEMsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixlQUFlLEVBQUUsd0RBQXdEO0lBQ3pFLFdBQVcsRUFBRSwwQkFBMEI7SUFDdkMsV0FBVyxFQUFFLDZDQUE2QztJQUMxRCxJQUFJLEVBQUUsSUFBSTtJQUNWLGdCQUFnQixFQUFFLElBQUksQ0FBQyx3QkFBd0I7Q0FDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnZpcm9ubWVudCA9IHtcbiAgZW52OiAncHJvZCcsXG4gIG1pYW1BUEk6ICdodHRwczovL2FwaS5taWFtLnRlY2gnLFxuICBtaWFtV2ViOiAnaHR0cHM6Ly9taWFtLnRlY2gnLFxuICBtZWFsekNvbXBvbmVudHM6ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21lYWx6LWNvbXBvbmVudHNAMi44L2Rpc3QnLFxuICBtZWFselNzckFwaTogJ2h0dHBzOi8vc3NyLWFwaS5tZWFsei5haScsXG4gIG1lYWx6U2RrVjEwOiAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS93ZWJjLW1pYW1AMTAuNScsXG4gIGxhbmc6ICdmcicsXG4gIGFuYWx5dGljc0VuYWJsZWQ6IHRydWUgLy8gT25seSB1c2VkIGluIERFViBtb2RlXG59O1xuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixHQUFHLEVBQUUsTUFBTTtJQUNYLE9BQU8sRUFBRSx1QkFBdUI7SUFDaEMsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixlQUFlLEVBQUUseURBQXlEO0lBQzFFLFdBQVcsRUFBRSwwQkFBMEI7SUFDdkMsV0FBVyxFQUFFLDZDQUE2QztJQUMxRCxJQUFJLEVBQUUsSUFBSTtJQUNWLGdCQUFnQixFQUFFLElBQUksQ0FBQyx3QkFBd0I7Q0FDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnZpcm9ubWVudCA9IHtcbiAgZW52OiAncHJvZCcsXG4gIG1pYW1BUEk6ICdodHRwczovL2FwaS5taWFtLnRlY2gnLFxuICBtaWFtV2ViOiAnaHR0cHM6Ly9taWFtLnRlY2gnLFxuICBtZWFsekNvbXBvbmVudHM6ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21lYWx6LWNvbXBvbmVudHNAMi4xMC9kaXN0JyxcbiAgbWVhbHpTc3JBcGk6ICdodHRwczovL3Nzci1hcGkubWVhbHouYWknLFxuICBtZWFselNka1YxMDogJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vd2ViYy1taWFtQDEwLjUnLFxuICBsYW5nOiAnZnInLFxuICBhbmFseXRpY3NFbmFibGVkOiB0cnVlIC8vIE9ubHkgdXNlZCBpbiBERVYgbW9kZVxufTtcbiJdfQ==
@@ -2,10 +2,10 @@ export const environment = {
2
2
  env: 'prod',
3
3
  miamAPI: 'https://api.miam.tech',
4
4
  miamWeb: 'https://miam.tech',
5
- mealzComponents: 'https://cdn.jsdelivr.net/npm/mealz-components@2.8/dist',
5
+ mealzComponents: 'https://cdn.jsdelivr.net/npm/mealz-components@2.10/dist',
6
6
  mealzSsrApi: 'https://ssr-api.mealz.ai',
7
7
  mealzSdkV10: 'https://cdn.jsdelivr.net/npm/webc-miam@10.5',
8
8
  lang: 'fr',
9
9
  analyticsEnabled: true // Only used in DEV mode
10
10
  };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQucHJvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1pYW0vc3JjL2xpYi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQucHJvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsR0FBRyxFQUFFLE1BQU07SUFDWCxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLE9BQU8sRUFBRSxtQkFBbUI7SUFDNUIsZUFBZSxFQUFFLHdEQUF3RDtJQUN6RSxXQUFXLEVBQUUsMEJBQTBCO0lBQ3ZDLFdBQVcsRUFBRSw2Q0FBNkM7SUFDMUQsSUFBSSxFQUFFLElBQUk7SUFDVixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsd0JBQXdCO0NBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSB7XG4gIGVudjogJ3Byb2QnLFxuICBtaWFtQVBJOiAnaHR0cHM6Ly9hcGkubWlhbS50ZWNoJyxcbiAgbWlhbVdlYjogJ2h0dHBzOi8vbWlhbS50ZWNoJyxcbiAgbWVhbHpDb21wb25lbnRzOiAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tZWFsei1jb21wb25lbnRzQDIuOC9kaXN0JyxcbiAgbWVhbHpTc3JBcGk6ICdodHRwczovL3Nzci1hcGkubWVhbHouYWknLFxuICBtZWFselNka1YxMDogJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vd2ViYy1taWFtQDEwLjUnLFxuICBsYW5nOiAnZnInLFxuICBhbmFseXRpY3NFbmFibGVkOiB0cnVlIC8vIE9ubHkgdXNlZCBpbiBERVYgbW9kZVxufTtcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQucHJvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1pYW0vc3JjL2xpYi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQucHJvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsR0FBRyxFQUFFLE1BQU07SUFDWCxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLE9BQU8sRUFBRSxtQkFBbUI7SUFDNUIsZUFBZSxFQUFFLHlEQUF5RDtJQUMxRSxXQUFXLEVBQUUsMEJBQTBCO0lBQ3ZDLFdBQVcsRUFBRSw2Q0FBNkM7SUFDMUQsSUFBSSxFQUFFLElBQUk7SUFDVixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsd0JBQXdCO0NBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSB7XG4gIGVudjogJ3Byb2QnLFxuICBtaWFtQVBJOiAnaHR0cHM6Ly9hcGkubWlhbS50ZWNoJyxcbiAgbWlhbVdlYjogJ2h0dHBzOi8vbWlhbS50ZWNoJyxcbiAgbWVhbHpDb21wb25lbnRzOiAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tZWFsei1jb21wb25lbnRzQDIuMTAvZGlzdCcsXG4gIG1lYWx6U3NyQXBpOiAnaHR0cHM6Ly9zc3ItYXBpLm1lYWx6LmFpJyxcbiAgbWVhbHpTZGtWMTA6ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3dlYmMtbWlhbUAxMC41JyxcbiAgbGFuZzogJ2ZyJyxcbiAgYW5hbHl0aWNzRW5hYmxlZDogdHJ1ZSAvLyBPbmx5IHVzZWQgaW4gREVWIG1vZGVcbn07XG4iXX0=
@@ -1,2 +1,2 @@
1
- export const VERSION = "9.3.19"; // TODO: replace by ##VERSION## and update it in the CI/CD
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1pYW0vc3JjL2xpYi9lbnZpcm9ubWVudHMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsMERBQTBEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIjkuMy4xOVwiOyAvLyBUT0RPOiByZXBsYWNlIGJ5ICMjVkVSU0lPTiMjIGFuZCB1cGRhdGUgaXQgaW4gdGhlIENJL0NEXG4iXX0=
1
+ export const VERSION = "9.3.21"; // TODO: replace by ##VERSION## and update it in the CI/CD
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1pYW0vc3JjL2xpYi9lbnZpcm9ubWVudHMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsMERBQTBEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIjkuMy4yMVwiOyAvLyBUT0RPOiByZXBsYWNlIGJ5ICMjVkVSU0lPTiMjIGFuZCB1cGRhdGUgaXQgaW4gdGhlIENJL0NEXG4iXX0=
@@ -842,7 +842,7 @@ const environment$1 = {
842
842
  env: 'prod',
843
843
  miamAPI: 'https://api.miam.tech',
844
844
  miamWeb: 'https://miam.tech',
845
- mealzComponents: 'https://cdn.jsdelivr.net/npm/mealz-components@2.8/dist',
845
+ mealzComponents: 'https://cdn.jsdelivr.net/npm/mealz-components@2.10/dist',
846
846
  mealzSsrApi: 'https://ssr-api.mealz.ai',
847
847
  mealzSdkV10: 'https://cdn.jsdelivr.net/npm/webc-miam@10.5',
848
848
  lang: 'fr',
@@ -2200,7 +2200,7 @@ var EventJourney;
2200
2200
  EventJourney["EMPTY"] = "";
2201
2201
  })(EventJourney || (EventJourney = {}));
2202
2202
 
2203
- const VERSION = "9.3.19"; // TODO: replace by ##VERSION## and update it in the CI/CD
2203
+ const VERSION = "9.3.21"; // TODO: replace by ##VERSION## and update it in the CI/CD
2204
2204
 
2205
2205
  class ContextRegistryService {
2206
2206
  constructor() {
@@ -7353,11 +7353,29 @@ class ContextService {
7353
7353
  }), switchMap(() => this.userService.setUserInfo(forbidProfiling)));
7354
7354
  }
7355
7355
  loadStoreLocatorPackage() {
7356
+ this.loadStoreLocatorScript();
7357
+ this.loadStoreLocatorCss();
7358
+ }
7359
+ loadStoreLocatorScript() {
7356
7360
  const storeLocatorScript = document.createElement('script');
7357
7361
  storeLocatorScript.setAttribute('type', 'module');
7362
+ storeLocatorScript.setAttribute('id', 'mealz-store-locator-script');
7358
7363
  storeLocatorScript.setAttribute('src', `${environment$1.mealzComponents}/store-locator/store-locator.min.js`);
7364
+ if (document.getElementById('mealz-store-locator-script')) {
7365
+ return;
7366
+ }
7359
7367
  document.head.appendChild(storeLocatorScript);
7360
7368
  }
7369
+ loadStoreLocatorCss() {
7370
+ const storeLocatorCss = document.createElement('link');
7371
+ storeLocatorCss.setAttribute('rel', 'stylesheet');
7372
+ storeLocatorCss.setAttribute('id', 'mealz-store-locator-css');
7373
+ storeLocatorCss.setAttribute('href', `${environment$1.mealzComponents}/store-locator/store-locator.css`);
7374
+ if (document.getElementById('mealz-store-locator-css')) {
7375
+ return;
7376
+ }
7377
+ document.head.appendChild(storeLocatorCss);
7378
+ }
7361
7379
  generateAuthlessIdIfNecessary() {
7362
7380
  return this.userService.generatingAuthlessId$.pipe(debounceTime(800), take(1), switchMap(isGenerating => {
7363
7381
  if (isGenerating || this.loggedOnSession || !!localStorage.getItem('_miam/authlessId')) {
@@ -8867,7 +8885,7 @@ const environment = {
8867
8885
  env: 'prod',
8868
8886
  miamAPI: 'https://api.miam.tech',
8869
8887
  miamWeb: 'https://miam.tech',
8870
- mealzComponents: 'https://cdn.jsdelivr.net/npm/mealz-components@2.8/dist',
8888
+ mealzComponents: 'https://cdn.jsdelivr.net/npm/mealz-components@2.10/dist',
8871
8889
  mealzSsrApi: 'https://ssr-api.mealz.ai',
8872
8890
  mealzSdkV10: 'https://cdn.jsdelivr.net/npm/webc-miam@10.5',
8873
8891
  lang: 'fr',