@mtgame/core 1.0.6 → 1.0.8

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.
@@ -396,6 +396,14 @@ export class TournamentApi {
396
396
  return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users_limitation/`).pipe(map(result => GameUserLimitations.toFront(result))).toPromise();
397
397
  });
398
398
  }
399
+ downloadTeamSanctionList(tournamentTeamId, fileType) {
400
+ return __awaiter(this, void 0, void 0, function* () {
401
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/sanction_list_file/?file_type=${fileType}`, {
402
+ params: new HttpParams().set('file_type', fileType),
403
+ responseType: 'blob'
404
+ }).toPromise();
405
+ });
406
+ }
399
407
  }
400
408
  TournamentApi.ɵprov = i0.ɵɵdefineInjectable({ factory: function TournamentApi_Factory() { return new TournamentApi(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.ConfigService)); }, token: TournamentApi, providedIn: "root" });
401
409
  TournamentApi.decorators = [
@@ -530,4 +538,4 @@ export function applyStatisticLeadersFilters(filters, params) {
530
538
  }
531
539
  return params;
532
540
  }
533
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91cm5hbWVudC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9hcGkvdG91cm5hbWVudC1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxN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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRvdXJuYW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUb3VybmFtZW50TmV3cyB9IGZyb20gJy4uL21vZGVscy90b3VybmFtZW50LW5ld3MnO1xuaW1wb3J0IHsgR2FtZSwgR2FtZVN0YXR1c2VzIH0gZnJvbSAnLi4vbW9kZWxzL2dhbWUnO1xuaW1wb3J0IHsgR2FtZVRpbWVsaW5lU3RhZ2VzIH0gZnJvbSAnLi4vbW9kZWxzL2dhbWUtdGltZWxpbmUtc3RhZ2VzJztcbmltcG9ydCB7IFRvdXJuYW1lbnRUZWFtIH0gZnJvbSAnLi4vbW9kZWxzL3RvdXJuYW1lbnQtdGVhbSc7XG5pbXBvcnQgeyBUb3VybmFtZW50U3RhZ2UgfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudC1zdGFnZSc7XG5pbXBvcnQgeyBQbGF5b2ZmIH0gZnJvbSAnLi4vbW9kZWxzL3BsYXlvZmYnO1xuaW1wb3J0IHsgUGFnaW5hdGVkUmVzcG9uc2UgfSBmcm9tICcuL3BhZ2luYXRlZC1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFza2V0YmFsbFN0YXRpc3RpYyB9IGZyb20gJy4uL21vZGVscy9iYXNrZXRiYWxsLXN0YXRpc3RpYyc7XG5pbXBvcnQgeyBWb2xsZXliYWxsU3RhdGlzdGljIH0gZnJvbSAnLi4vbW9kZWxzL3ZvbGxleWJhbGwtc3RhdGlzdGljJztcbmltcG9ydCB7IFRvdXJuYW1lbnRUZWFtVXNlciB9IGZyb20gJy4uL21vZGVscy90b3VybmFtZW50LXRlYW0tdXNlcic7XG5pbXBvcnQgeyBUb3VybmFtZW50U3RhZ2VUZWFtIH0gZnJvbSAnLi4vbW9kZWxzL3RvdXJuYW1lbnQtc3RhZ2UtdGVhbSc7XG5pbXBvcnQgeyBUb3VybmFtZW50RXZlbnQsIFRvdXJuYW1lbnRFdmVudFR5cGVzIH0gZnJvbSAnLi4vbW9kZWxzL3RvdXJuYW1lbnQtZXZlbnQnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEhvY2tleVN0YXRpc3RpYyB9IGZyb20gJy4uL21vZGVscy9ob2NrZXktc3RhdGlzdGljJztcbmltcG9ydCB7IEZvb3RiYWxsU3RhdGlzdGljIH0gZnJvbSAnLi4vbW9kZWxzL2Zvb3RiYWxsLXN0YXRpc3RpYyc7XG5pbXBvcnQgeyBMZWFndWVVc2VyUGVybWlzc2lvbnMgfSBmcm9tICcuLi9tb2RlbHMvbGVhZ3VlLXVzZXInO1xuaW1wb3J0IHsgSGFuZGJhbGxTdGF0aXN0aWMgfSBmcm9tICcuLi9tb2RlbHMvaGFuZGJhbGwtc3RhdGlzdGljJztcbmltcG9ydCB7IFJ1Z2J5U3RhdGlzdGljIH0gZnJvbSAnLi4vbW9kZWxzL3J1Z2J5LXN0YXRpc3RpYyc7XG5pbXBvcnQgeyBUb3VybmFtZW50R3JvdXAgfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudC1ncm91cCc7XG5pbXBvcnQgeyBUZWFtQWNoaWV2ZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvdGVhbS1hY2hpZXZlbWVudCc7XG5pbXBvcnQgeyBXYXRlcnBvbG9TdGF0aXN0aWMgfSBmcm9tICcuLi9tb2RlbHMvd2F0ZXJwb2xvLXN0YXRpc3RpYyc7XG5pbXBvcnQgeyBUb3VybmFtZW50Um91bmQgfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudC1yb3VuZCc7XG5pbXBvcnQgeyBUb3VybmFtZW50RGl2aXNpb24gfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudC1kaXZpc2lvbic7XG5pbXBvcnQgeyBVc2VyR2VuZGVyIH0gZnJvbSAnLi4vbW9kZWxzL3VzZXInO1xuaW1wb3J0IHsgR2FtZVVzZXJMaW1pdGF0aW9ucyB9IGZyb20gJy4uL21vZGVscy9nYW1lLXVzZXItbGltaXRhdGlvbic7XG5pbXBvcnQgeyBHYW1lSG9ja2V5UG9zaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvaG9ja2V5LXByb2ZpbGUnO1xuaW1wb3J0IHsgR2FtZUZvb3RiYWxsUG9zaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvZm9vdGJhbGwtcHJvZmlsZSc7XG5pbXBvcnQgeyBHYW1lSGFuZGJhbGxQb3NpdGlvbiB9IGZyb20gJy4uL21vZGVscy9oYW5kYmFsbC1wcm9maWxlJztcbmltcG9ydCB7IEdhbWVXYXRlcnBvbG9Qb3NpdGlvbiB9IGZyb20gJy4uL21vZGVscy93YXRlcnBvbG8tcHJvZmlsZSc7XG5pbXBvcnQgeyBHYW1lQmFza2V0YmFsbFBvc2l0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2Jhc2tldGJhbGwtcHJvZmlsZSc7XG5pbXBvcnQgeyBHYW1lVm9sbGV5YmFsbFBvc2l0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3ZvbGxleWJhbGwtcHJvZmlsZSc7XG5pbXBvcnQgeyBHYW1lUnVnYnlQb3NpdGlvbiB9IGZyb20gJy4uL21vZGVscy9ydWdieS1wcm9maWxlJztcbmltcG9ydCB7IFdyZXN0YmFsbFN0YXRpc3RpYyB9IGZyb20gJy4uL21vZGVscy93cmVzdGJhbGwtc3RhdGlzdGljJztcblxuZXhwb3J0IGludGVyZmFjZSBUb3VybmFtZW50R2FtZXNGaWx0ZXJzIHtcbiAgdG91cm5hbWVudElkcz86IG51bWJlcltdO1xuICB0b3VybmFtZW50U2Vhc29uSWQ/OiBudW1iZXI7XG4gIHRvdXJuYW1lbnRTdGFnZUlkPzogbnVtYmVyO1xuICB0b3VybmFtZW50Um91bmRJZD86IG51bWJlcjtcbiAgdG91cm5hbWVudEdyb3VwSWQ/OiBudW1iZXI7XG4gIGRpdmlzaW9uSWQ/OiBudW1iZXI7XG4gIHRvdXJuYW1lbnRUb3VyPzogbnVtYmVyO1xuICB0ZWFtSWQ/OiBudW1iZXI7XG4gIHBsYXlvZmZTdGFnZT86IG51bWJlcjtcbiAgcGxheW9mZlJvdW5kPzogbnVtYmVyO1xuICBwbGF5b2ZmSWQ/OiBudW1iZXI7XG4gIGlzUGxheW9mZj86IGJvb2xlYW47XG4gIHN0YXR1cz86IEdhbWVTdGF0dXNlcztcbiAgc3RhdHVzZXM/OiBHYW1lU3RhdHVzZXNbXTtcbiAgdG91cm5hbWVudENvdXJ0SWQ/OiBudW1iZXI7XG4gIGxlYWd1ZVBsYXllcklkPzogbnVtYmVyO1xuICB1c2VySWQ/OiBudW1iZXI7XG4gIHF1ZXJ5Pzogc3RyaW5nO1xuICBkYXRlX2Zyb20/OiBzdHJpbmc7XG4gIGRhdGVfdG8/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFN0YXRpc3RpY0dyb3VwQnlUeXBlcyA9ICd0ZWFtJyB8ICd1c2VyJyB8ICd0ZWFtX3VzZXInIHwgJ3RvdXJuYW1lbnRfdGVhbScgfCAnbGVhZ3VlX3BsYXllcicgfCAndG91cm5hbWVudF90ZWFtX3VzZXInXG4gIHwgJ21vbnRoJyB8ICd3aW5fbG9zZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRpc3RpY0ZpbHRlcnMge1xuICBsZWFndWVfaWQ/OiBudW1iZXI7XG4gIHRvdXJuYW1lbnRfaWQ/OiBudW1iZXI7XG4gIHRvdXJuYW1lbnRfaWRzPzogbnVtYmVyW107XG4gIHRvdXJuYW1lbnRfc2Vhc29uX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3NlYXNvbl9pZHM/OiBudW1iZXJbXTtcbiAgdG91cm5hbWVudF90ZWFtX2lkPzogbnVtYmVyO1xuICBsZWFndWVfcGxheWVyX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3RlYW1fdXNlcl9pZD86IG51bWJlcjtcbiAgdGVhbV9pZD86IG51bWJlcjtcbiAgdGVhbV91c2VyX2lkPzogbnVtYmVyO1xuICB1c2VyX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3N0YWdlX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3JvdW5kX2lkPzogbnVtYmVyO1xuICBkaXZpc2lvbl9pZD86IG51bWJlcjtcbiAgdG91cm5hbWVudF9ncm91cF9pZD86IG51bWJlcjtcbiAgdG91cm5hbWVudF90b3VyPzogbnVtYmVyO1xuICBwbGF5b2ZmX3N0YWdlPzogbnVtYmVyO1xuICBwbGF5b2ZmX3JvdW5kPzogbnVtYmVyO1xuICBwbGF5b2ZmX2lkPzogbnVtYmVyO1xuICBpc19wbGF5b2ZmPzogYm9vbGVhbjtcbiAgZGF0ZV9mcm9tPzogc3RyaW5nO1xuICBkYXRlX3RvPzogc3RyaW5nO1xuICBxdWVyeT86IHN0cmluZztcbiAgZ2VuZGVyPzogVXNlckdlbmRlcjtcbiAgYmFza2V0YmFsbF9wb3NpdGlvbj86IEdhbWVCYXNrZXRiYWxsUG9zaXRpb247XG4gIHZvbGxleWJhbGxfcG9zaXRpb24/OiBHYW1lVm9sbGV5YmFsbFBvc2l0aW9uO1xuICBob2NrZXlfcG9zaXRpb24/OiBHYW1lSG9ja2V5UG9zaXRpb247XG4gIGZvb3RiYWxsX3Bvc2l0aW9uPzogR2FtZUZvb3RiYWxsUG9zaXRpb247XG4gIGhhbmRiYWxsX3Bvc2l0aW9uPzogR2FtZUhhbmRiYWxsUG9zaXRpb247XG4gIHdhdGVycG9sb19wb3NpdGlvbj86IEdhbWVXYXRlcnBvbG9Qb3NpdGlvbjtcbiAgcnVnYnlfcG9zaXRpb24/OiBHYW1lUnVnYnlQb3NpdGlvbjtcbiAgbGVhZ3VlX3BsYXllcl9maWVsZF92YWx1ZT86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuICB0b3VybmFtZW50X3RlYW1fZmllbGRfdmFsdWU/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcbiAgcGVyX2dhbWU/OiBib29sZWFuO1xuICBncm91cF9ieTogU3RhdGlzdGljR3JvdXBCeVR5cGVzO1xuICBvbmx5X2Nsb3NlZD86IGJvb2xlYW47XG4gIGNoZWNrX2lnbm9yZV9nYW1lPzogYm9vbGVhbjtcbiAgb3JkZXJfYnk/OiBzdHJpbmc7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMge1xuICB0b3VybmFtZW50X2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X2lkcz86IG51bWJlcltdO1xuICB0b3VybmFtZW50X3NlYXNvbl9pZD86IG51bWJlcjtcbiAgdG91cm5hbWVudF90ZWFtX2lkPzogbnVtYmVyO1xuICB0ZWFtX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3N0YWdlX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3RvdXI/OiBudW1iZXI7XG4gIHBsYXlvZmZfc3RhZ2U/OiBudW1iZXI7XG4gIHBsYXlvZmZfaWQ/OiBudW1iZXI7XG4gIGRhdGVfZnJvbT86IHN0cmluZztcbiAgZGF0ZV90bz86IHN0cmluZztcbiAgcGVyX2dhbWU/OiBib29sZWFuO1xuICBncm91cF9ieTogU3RhdGlzdGljR3JvdXBCeVR5cGVzO1xuICBzaXplPzogbnVtYmVyO1xuICBmaWVsZHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvdXJuYW1lbnRFdmVudHNMaXN0RmlsdGVyIHtcbiAgZXZlbnQ/OiBUb3VybmFtZW50RXZlbnRUeXBlcztcbiAgc2VhcmNoPzogc3RyaW5nO1xuICB0b3VybmFtZW50VG91cj86IG51bWJlcjtcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVG91cm5hbWVudEFwaSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlJZCh0b3VybmFtZW50SWQ6IG51bWJlcik6IFByb21pc2U8VG91cm5hbWVudD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vYClcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gVG91cm5hbWVudC50b0Zyb250KHJlc3VsdCkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlBbGlhcyhsZWFndWVJZDogbnVtYmVyLCBhbGlhczogc3RyaW5nKTogUHJvbWlzZTxUb3VybmFtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS9sZWFndWUvJHtsZWFndWVJZH0vdG91cm5hbWVudHMvJHthbGlhc30vYClcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gVG91cm5hbWVudC50b0Zyb250KHJlc3VsdCkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0U2Vhc29uVG91cm5hbWVudHMoc2Vhc29uVG91cm5hbWVudElkOiBudW1iZXIpOiBQcm9taXNlPFRvdXJuYW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvc2Vhc29uX3RvdXJuYW1lbnQvJHtzZWFzb25Ub3VybmFtZW50SWR9L3RvdXJuYW1lbnRzL2ApXG4gICAgICAucGlwZShtYXAocmVzdWx0ID0+IFRvdXJuYW1lbnQudG9Gcm9udChyZXN1bHQpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldE5ld3ModG91cm5hbWVudElkOiBudW1iZXIpOiBQcm9taXNlPFRvdXJuYW1lbnROZXdzW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L25ld3MvYClcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gVG91cm5hbWVudE5ld3MudG9Gcm9udChyZXN1bHQpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldEV2ZW50cyh0b3VybmFtZW50SWQ6IG51bWJlciwgcGFnZTogbnVtYmVyLCBzaXplOiBudW1iZXIsIGZpbHRlcnM/OiBUb3VybmFtZW50RXZlbnRzTGlzdEZpbHRlcik6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8VG91cm5hbWVudEV2ZW50W10+PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYWdlJywgcGFnZS50b1N0cmluZygpKVxuICAgICAgLnNldCgnc2l6ZScsIHNpemUudG9TdHJpbmcoKSk7XG4gICAgaWYgKGZpbHRlcnMpIHtcbiAgICAgIGlmIChmaWx0ZXJzLmV2ZW50KSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2V2ZW50JywgVG91cm5hbWVudEV2ZW50VHlwZXNbZmlsdGVycy5ldmVudF0pO1xuICAgICAgfVxuICAgICAgaWYgKGZpbHRlcnMuc2VhcmNoKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NlYXJjaCcsIGZpbHRlcnMuc2VhcmNoKTtcbiAgICAgIH1cbiAgICAgIGlmIChmaWx0ZXJzLnRvdXJuYW1lbnRUb3VyKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RvdXJuYW1lbnRfdG91cicsIGZpbHRlcnMudG91cm5hbWVudFRvdXIudG9TdHJpbmcoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vZXZlbnRzL2AsIHtwYXJhbXMsIG9ic2VydmU6ICdyZXNwb25zZSd9KVxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiAoe1xuICAgICAgICB0b3RhbDogK3Jlc3VsdC5oZWFkZXJzLmdldCgnWC1QYWdlLUNvdW50JyksXG4gICAgICAgIGRhdGE6IFRvdXJuYW1lbnRFdmVudC50b0Zyb250KHJlc3VsdC5ib2R5KVxuICAgICAgfSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG91cm5hbWVudFN0YWdlcyh0b3VybmFtZW50SWQ6IG51bWJlcik6IFByb21pc2U8VG91cm5hbWVudFN0YWdlW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L3N0YWdlcy9gKS5waXBlKFxuICAgICAgbWFwKGRhdGEgPT4gVG91cm5hbWVudFN0YWdlLnRvRnJvbnQoZGF0YSkpXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFRvdXJuYW1lbnRSb3VuZHModG91cm5hbWVudElkOiBudW1iZXIpOiBQcm9taXNlPFRvdXJuYW1lbnRSb3VuZFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50LyR7dG91cm5hbWVudElkfS9yb3VuZHMvYCkucGlwZShcbiAgICAgIG1hcChkYXRhID0+IFRvdXJuYW1lbnRSb3VuZC50b0Zyb250KGRhdGEpKSxcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG91cm5hbWVudERpdmlzaW9ucyh0b3VybmFtZW50SWQ6IG51bWJlcik6IFByb21pc2U8VG91cm5hbWVudERpdmlzaW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L2RpdmlzaW9ucy9gKS5waXBlKFxuICAgICAgbWFwKGRhdGEgPT4gVG91cm5hbWVudERpdmlzaW9uLnRvRnJvbnQoZGF0YSkpLFxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRQbGF5b2ZmKHRvdXJuYW1lbnRJZDogbnVtYmVyKTogUHJvbWlzZTxQbGF5b2ZmW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L3BsYXlvZmYvYCkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gUGxheW9mZi50b0Zyb250KHJlc3VsdCkpXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFBsYXlvZmZHYW1lcyhwbGF5b2ZmSWQ6IG51bWJlciwgcGxheW9mZk51bWJlcj86IHN0cmluZyk6IFByb21pc2U8R2FtZVtdPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgaWYgKHBsYXlvZmZOdW1iZXIpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BsYXlvZmZfbnVtYmVyJywgcGxheW9mZk51bWJlcik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF9wbGF5b2ZmLyR7cGxheW9mZklkfS9nYW1lcy9gLFxuICAgICAge3BhcmFtc31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IEdhbWUudG9Gcm9udChyZXN1bHQpKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRHYW1lc1N0YWdlcyh0b3VybmFtZW50SWQ6IG51bWJlciwgcm91bmRJZD86IG51bWJlcik6IFByb21pc2U8R2FtZVRpbWVsaW5lU3RhZ2VzPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgaWYgKHJvdW5kSWQpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RvdXJuYW1lbnRfcm91bmRfaWQnLCByb3VuZElkLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcbiAgICAgIGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vZ2FtZXNfc3RhZ2VzL2AsXG4gICAgICB7cGFyYW1zfVxuICAgIClcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IEdhbWVUaW1lbGluZVN0YWdlcy50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldEdhbWVzKHRvdXJuYW1lbnRJZDogbnVtYmVyLCBwYWdlOiBudW1iZXIsIHNpemU6IG51bWJlciwgZmlsdGVyczogVG91cm5hbWVudEdhbWVzRmlsdGVycyA9IHt9KTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxHYW1lW10+PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYWdlJywgcGFnZS50b1N0cmluZygpKTtcbiAgICBpZiAoc2l6ZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2l6ZScsIHNpemUudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIHBhcmFtcyA9IGFwcGx5R2FtZXNGaWx0ZXJzKGZpbHRlcnMsIHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50LyR7dG91cm5hbWVudElkfS9nYW1lcy9gLCB7cGFyYW1zLCBvYnNlcnZlOiAncmVzcG9uc2UnfSlcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gKHtcbiAgICAgICAgdG90YWw6ICtyZXN1bHQuaGVhZGVycy5nZXQoJ1gtUGFnZS1Db3VudCcpLFxuICAgICAgICBkYXRhOiBHYW1lLnRvRnJvbnQocmVzdWx0LmJvZHkpXG4gICAgICB9KSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0R2FtZXNEYXRlcyh0b3VybmFtZW50SWQ6IG51bWJlcik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXG4gICAgICBgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L2dhbWVzX2RhdGVzL2AsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogcmVzdWx0LmJvZHlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRHcm91cHModG91cm5hbWVudElkOiBudW1iZXIpOiBQcm9taXNlPFRvdXJuYW1lbnRHcm91cFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50LyR7dG91cm5hbWVudElkfS9ncm91cHMvYClcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gVG91cm5hbWVudEdyb3VwLnRvRnJvbnQocmVzdWx0KSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRUZWFtcyh0b3VybmFtZW50SWQ6IG51bWJlciwgZ3JvdXBJZD86IG51bWJlciwgc2hvcnQ/OiBib29sZWFuKTogUHJvbWlzZTxUb3VybmFtZW50VGVhbVtdPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgaWYgKGdyb3VwSWQpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2dyb3VwX2lkJywgZ3JvdXBJZC50b1N0cmluZygpKTtcbiAgICB9XG4gICAgaWYgKHNob3J0KSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzaG9ydCcsICcxJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vdGVhbXMvYCwge3BhcmFtc30pXG4gICAgICAucGlwZShtYXAocmVzdWx0ID0+IFRvdXJuYW1lbnRUZWFtLnRvRnJvbnQocmVzdWx0KSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRTdGFnZVRlYW1zKHRvdXJuYW1lbnRJZDogbnVtYmVyKTogUHJvbWlzZTxUb3VybmFtZW50U3RhZ2VUZWFtW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L3N0YWdlX3RlYW1zL2ApXG4gICAgICAucGlwZShtYXAocmVzdWx0ID0+IFRvdXJuYW1lbnRTdGFnZVRlYW0udG9Gcm9udChyZXN1bHQpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFRlYW1zQWNoaWV2ZW1lbnRzKHRvdXJuYW1lbnRJZDogbnVtYmVyKTogUHJvbWlzZTxUZWFtQWNoaWV2ZW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vYWNoaWV2ZW1lbnRzL2ApXG4gICAgICAucGlwZShtYXAocmVzdWx0ID0+IFRlYW1BY2hpZXZlbWVudC50b0Zyb250KHJlc3VsdCkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VGVhbUJ5SWQodG91cm5hbWVudFRlYW1JZDogbnVtYmVyKTogUHJvbWlzZTxUb3VybmFtZW50VGVhbT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF90ZWFtLyR7dG91cm5hbWVudFRlYW1JZH0vYClcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gVG91cm5hbWVudFRlYW0udG9Gcm9udChyZXN1bHQpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJCeUlkKHVzZXJJZDogbnVtYmVyKTogUHJvbWlzZTxUb3VybmFtZW50VGVhbVVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnRfdGVhbV91c2VyLyR7dXNlcklkfS9gKVxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiBUb3VybmFtZW50VGVhbVVzZXIudG9Gcm9udChyZXN1bHQpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJHYW1lcyh0b3VybmFtZW50VXNlcklkOiBudW1iZXIpOiBQcm9taXNlPEdhbWVbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF90ZWFtX3VzZXIvJHt0b3VybmFtZW50VXNlcklkfS9nYW1lcy9gKVxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiBHYW1lLnRvRnJvbnQocmVzdWx0KSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBkb3dubG9hZFRhYmxlKHRvdXJuYW1lbnRJZDogbnVtYmVyLCBmb3JtYXQ6ICdwZGYnIHwgJ3hsc3gnLCBpc0NoZXNzPzogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XG4gICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnZmlsZV90eXBlJywgZm9ybWF0KTtcbiAgICBpZiAoaXNDaGVzcykge1xuICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCdpc0NoZXNzJywgdHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vdGFibGVfZmlsZS9gLCB7XG4gICAgICBwYXJhbXM6IGh0dHBQYXJhbXMsXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xuICAgIH0pLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QmFza2V0YmFsbFN0YXRpc3RpY0xlYWRlcnMoZmlsdGVyczogU3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMpOiBQcm9taXNlPHtba2V5OiBzdHJpbmddOiBCYXNrZXRiYWxsU3RhdGlzdGljW119PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gYXBwbHlTdGF0aXN0aWNMZWFkZXJzRmlsdGVycyhmaWx0ZXJzLCBwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvYmFza2V0YmFsbF9zdGF0aXN0aWNfbGVhZGVycy9gLCB7cGFyYW1zfSkucGlwZShcbiAgICAgIG1hcCgocmVzdWx0OiB7W2tleTogc3RyaW5nXTogYW55W119KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJlc3VsdCkpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IEJhc2tldGJhbGxTdGF0aXN0aWMudG9Gcm9udChyZXN1bHRba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFZvbGxleWJhbGxTdGF0aXN0aWNMZWFkZXJzKGZpbHRlcnM6IFN0YXRpc3RpY0xlYWRlcnNGaWx0ZXJzKTogUHJvbWlzZTx7W2tleTogc3RyaW5nXTogVm9sbGV5YmFsbFN0YXRpc3RpY1tdfT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IGFwcGx5U3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMoZmlsdGVycywgcGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3ZvbGxleWJhbGxfc3RhdGlzdGljX2xlYWRlcnMvYCwge3BhcmFtc30pLnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDoge1trZXk6IHN0cmluZ106IGFueVtdfSkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhyZXN1bHQpKSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBWb2xsZXliYWxsU3RhdGlzdGljLnRvRnJvbnQocmVzdWx0W2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRIb2NrZXlTdGF0aXN0aWNMZWFkZXJzKGZpbHRlcnM6IFN0YXRpc3RpY0xlYWRlcnNGaWx0ZXJzKTogUHJvbWlzZTx7W2tleTogc3RyaW5nXTogSG9ja2V5U3RhdGlzdGljW119PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gYXBwbHlTdGF0aXN0aWNMZWFkZXJzRmlsdGVycyhmaWx0ZXJzLCBwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvaG9ja2V5X3N0YXRpc3RpY19sZWFkZXJzL2AsIHtwYXJhbXN9KS5waXBlKFxuICAgICAgbWFwKChyZXN1bHQ6IHtba2V5OiBzdHJpbmddOiBhbnlbXX0pID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVzdWx0KSkge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gSG9ja2V5U3RhdGlzdGljLnRvRnJvbnQocmVzdWx0W2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRGb290YmFsbFN0YXRpc3RpY0xlYWRlcnMoZmlsdGVyczogU3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMpOiBQcm9taXNlPHtba2V5OiBzdHJpbmddOiBGb290YmFsbFN0YXRpc3RpY1tdfT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IGFwcGx5U3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMoZmlsdGVycywgcGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL2Zvb3RiYWxsX3N0YXRpc3RpY19sZWFkZXJzL2AsIHtwYXJhbXN9KS5waXBlKFxuICAgICAgbWFwKChyZXN1bHQ6IHtba2V5OiBzdHJpbmddOiBhbnlbXX0pID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVzdWx0KSkge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gRm9vdGJhbGxTdGF0aXN0aWMudG9Gcm9udChyZXN1bHRba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldEhhbmRiYWxsU3RhdGlzdGljTGVhZGVycyhmaWx0ZXJzOiBTdGF0aXN0aWNMZWFkZXJzRmlsdGVycyk6IFByb21pc2U8e1trZXk6IHN0cmluZ106IEhhbmRiYWxsU3RhdGlzdGljW119PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gYXBwbHlTdGF0aXN0aWNMZWFkZXJzRmlsdGVycyhmaWx0ZXJzLCBwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvaGFuZGJhbGxfc3RhdGlzdGljX2xlYWRlcnMvYCwge3BhcmFtc30pLnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDoge1trZXk6IHN0cmluZ106IGFueVtdfSkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhyZXN1bHQpKSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBIYW5kYmFsbFN0YXRpc3RpYy50b0Zyb250KHJlc3VsdFtrZXldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0V2F0ZXJwb2xvU3RhdGlzdGljTGVhZGVycyhmaWx0ZXJzOiBTdGF0aXN0aWNMZWFkZXJzRmlsdGVycyk6IFByb21pc2U8e1trZXk6IHN0cmluZ106IFdhdGVycG9sb1N0YXRpc3RpY1tdfT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IGFwcGx5U3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMoZmlsdGVycywgcGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3dhdGVycG9sb19zdGF0aXN0aWNfbGVhZGVycy9gLCB7cGFyYW1zfSkucGlwZShcbiAgICAgIG1hcCgocmVzdWx0OiB7W2tleTogc3RyaW5nXTogYW55W119KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJlc3VsdCkpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IFdhdGVycG9sb1N0YXRpc3RpYy50b0Zyb250KHJlc3VsdFtrZXldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QmFza2V0YmFsbFN0YXRpc3RpYyhmaWx0ZXJzPzogU3RhdGlzdGljRmlsdGVycyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8QmFza2V0YmFsbFN0YXRpc3RpY1tdPj4ge1xuICAgIGNvbnN0IGRhdGEgPSBhcHBseVN0YXRpc3RpY0ZpbHRlcnMoZmlsdGVycyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXG4gICAgICBgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL2Jhc2tldGJhbGxfc3RhdGlzdGljL2AsXG4gICAgICBkYXRhLFxuICAgICAge29ic2VydmU6ICdyZXNwb25zZSd9XG4gICAgKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiAoe1xuICAgICAgICB0b3RhbDogK3Jlc3VsdC5oZWFkZXJzLmdldCgnWC1QYWdlLUNvdW50JyksXG4gICAgICAgIGRhdGE6IEJhc2tldGJhbGxTdGF0aXN0aWMudG9Gcm9udChyZXN1bHQuYm9keSlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRWb2xsZXliYWxsU3RhdGlzdGljKGZpbHRlcnM/OiBTdGF0aXN0aWNGaWx0ZXJzKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxWb2xsZXliYWxsU3RhdGlzdGljW10+PiB7XG4gICAgY29uc3QgZGF0YSA9IGFwcGx5U3RhdGlzdGljRmlsdGVycyhmaWx0ZXJzKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcbiAgICAgIGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdm9sbGV5YmFsbF9zdGF0aXN0aWMvYCxcbiAgICAgIGRhdGEsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogVm9sbGV5YmFsbFN0YXRpc3RpYy50b0Zyb250KHJlc3VsdC5ib2R5KVxuICAgICAgfSkpXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldEhvY2tleVN0YXRpc3RpYyhmaWx0ZXJzPzogU3RhdGlzdGljRmlsdGVycyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SG9ja2V5U3RhdGlzdGljW10+PiB7XG4gICAgY29uc3QgZGF0YSA9IGFwcGx5U3RhdGlzdGljRmlsdGVycyhmaWx0ZXJzKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcbiAgICAgIGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvaG9ja2V5X3N0YXRpc3RpYy9gLFxuICAgICAgZGF0YSxcbiAgICAgIHtvYnNlcnZlOiAncmVzcG9uc2UnfVxuICAgICkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gKHtcbiAgICAgICAgdG90YWw6ICtyZXN1bHQuaGVhZGVycy5nZXQoJ1gtUGFnZS1Db3VudCcpLFxuICAgICAgICBkYXRhOiBIb2NrZXlTdGF0aXN0aWMudG9Gcm9udChyZXN1bHQuYm9keSlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRGb290YmFsbFN0YXRpc3RpYyhmaWx0ZXJzPzogU3RhdGlzdGljRmlsdGVycyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8Rm9vdGJhbGxTdGF0aXN0aWNbXT4+IHtcbiAgICBjb25zdCBkYXRhID0gYXBwbHlTdGF0aXN0aWNGaWx0ZXJzKGZpbHRlcnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxuICAgICAgYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS9mb290YmFsbF9zdGF0aXN0aWMvYCxcbiAgICAgIGRhdGEsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogRm9vdGJhbGxTdGF0aXN0aWMudG9Gcm9udChyZXN1bHQuYm9keSlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRIYW5kYmFsbFN0YXRpc3RpYyhmaWx0ZXJzPzogU3RhdGlzdGljRmlsdGVycyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SGFuZGJhbGxTdGF0aXN0aWNbXT4+IHtcbiAgICBjb25zdCBkYXRhID0gYXBwbHlTdGF0aXN0aWNGaWx0ZXJzKGZpbHRlcnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxuICAgICAgYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS9oYW5kYmFsbF9zdGF0aXN0aWMvYCxcbiAgICAgIGRhdGEsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogSGFuZGJhbGxTdGF0aXN0aWMudG9Gcm9udChyZXN1bHQuYm9keSlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRSdWdieVN0YXRpc3RpYyhmaWx0ZXJzPzogU3RhdGlzdGljRmlsdGVycyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8UnVnYnlTdGF0aXN0aWNbXT4+IHtcbiAgICBjb25zdCBkYXRhID0gYXBwbHlTdGF0aXN0aWNGaWx0ZXJzKGZpbHRlcnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxuICAgICAgYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS9ydWdieV9zdGF0aXN0aWMvYCxcbiAgICAgIGRhdGEsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogUnVnYnlTdGF0aXN0aWMudG9Gcm9udChyZXN1bHQuYm9keSlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRXYXRlcnBvbG9TdGF0aXN0aWMoZmlsdGVycz86IFN0YXRpc3RpY0ZpbHRlcnMpOiBQcm9taXNlPFBhZ2luYXRlZFJlc3BvbnNlPFdhdGVycG9sb1N0YXRpc3RpY1tdPj4ge1xuICAgIGNvbnN0IGRhdGEgPSBhcHBseVN0YXRpc3RpY0ZpbHRlcnMoZmlsdGVycyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXG4gICAgICBgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3dhdGVycG9sb19zdGF0aXN0aWMvYCxcbiAgICAgIGRhdGEsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogV2F0ZXJwb2xvU3RhdGlzdGljLnRvRnJvbnQocmVzdWx0LmJvZHkpXG4gICAgICB9KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0V3Jlc3RiYWxsU3RhdGlzdGljKGZpbHRlcnM/OiBTdGF0aXN0aWNGaWx0ZXJzKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxXcmVzdGJhbGxTdGF0aXN0aWNbXT4+IHtcbiAgICBjb25zdCBkYXRhID0gYXBwbHlTdGF0aXN0aWNGaWx0ZXJzKGZpbHRlcnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxuICAgICAgYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS93cmVzdGJhbGxfc3RhdGlzdGljL2AsXG4gICAgICBkYXRhLFxuICAgICAge29ic2VydmU6ICdyZXNwb25zZSd9XG4gICAgKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiAoe1xuICAgICAgICB0b3RhbDogK3Jlc3VsdC5oZWFkZXJzLmdldCgnWC1QYWdlLUNvdW50JyksXG4gICAgICAgIGRhdGE6IFdyZXN0YmFsbFN0YXRpc3RpYy50b0Zyb250KHJlc3VsdC5ib2R5KVxuICAgICAgfSkpXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFRvdXJuYW1lbnRUZWFtVXNlcnModG91cm5hbWVudFRlYW1JZDogbnVtYmVyLCBpbmNsdWRlczogc3RyaW5nW10gPSBbXSk6IFByb21pc2U8VG91cm5hbWVudFRlYW1Vc2VyW10+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBmb3IgKGNvbnN0IGluY2x1ZGUgb2YgaW5jbHVkZXMpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2luY2x1ZGUnLCBpbmNsdWRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X3RlYW0vJHt0b3VybmFtZW50VGVhbUlkfS91c2Vycy9gLCB7cGFyYW1zfSkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gVG91cm5hbWVudFRlYW1Vc2VyLnRvRnJvbnQocmVzdWx0KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgbXlQZXJtaXNzaW9uKHRvdXJuYW1lbnRJZDogbnVtYmVyKTogUHJvbWlzZTxMZWFndWVVc2VyUGVybWlzc2lvbnNbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vcGVybWlzc2lvbi9gKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IChkYXRhLnBlcm1pc3Npb25zIHx8IFtdKS5tYXAoaXRlbSA9PiBMZWFndWVVc2VyUGVybWlzc2lvbnNbaXRlbV0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRUb3VybmFtZW50VGVhbVRvdXJuYW1lbnRzKHRvdXJuYW1lbnRUZWFtSWQ6IG51bWJlcik6IFByb21pc2U8VG91cm5hbWVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X3RlYW0vJHt0b3VybmFtZW50VGVhbUlkfS90b3VybmFtZW50cy9gKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiBUb3VybmFtZW50LnRvRnJvbnQocmVzdWx0KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG91cm5hbWVudFVzZXJUb3VybmFtZW50cyh0b3VybmFtZW50VGVhbVVzZXJJZDogbnVtYmVyKTogUHJvbWlzZTxUb3VybmFtZW50W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnRfdGVhbV91c2VyLyR7dG91cm5hbWVudFRlYW1Vc2VySWR9L3RvdXJuYW1lbnRzL2ApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IFRvdXJuYW1lbnQudG9Gcm9udChyZXN1bHQpKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRUb3VybmFtZW50VGVhbVVzZXJzTGltaXRhdGlvbih0b3VybmFtZW50VGVhbUlkOiBudW1iZXIpOiBQcm9taXNlPEdhbWVVc2VyTGltaXRhdGlvbnNbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF90ZWFtLyR7dG91cm5hbWVudFRlYW1JZH0vdXNlcnNfbGltaXRhdGlvbi9gKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiBHYW1lVXNlckxpbWl0YXRpb25zLnRvRnJvbnQocmVzdWx0KSksXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlHYW1lc0ZpbHRlcnMoZmlsdGVyczogVG91cm5hbWVudEdhbWVzRmlsdGVycywgcGFyYW1zOiBIdHRwUGFyYW1zKTogSHR0cFBhcmFtcyB7XG4gIGlmIChmaWx0ZXJzLnRvdXJuYW1lbnRJZHMpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0b3VybmFtZW50X2lkcycsIGZpbHRlcnMudG91cm5hbWVudElkcy5qb2luKCcsJykpO1xuICB9XG4gIGlmIChmaWx0ZXJzLnRvdXJuYW1lbnRTdGFnZUlkKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG91cm5hbWVudF9zdGFnZV9pZCcsIGZpbHRlcnMudG91cm5hbWVudFN0YWdlSWQudG9TdHJpbmcoKSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMudG91cm5hbWVudFJvdW5kSWQpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0b3VybmFtZW50X3JvdW5kX2lkJywgZmlsdGVycy50b3VybmFtZW50Um91bmRJZC50b1N0cmluZygpKTtcbiAgfVxuICBpZiAoZmlsdGVycy50b3VybmFtZW50R3JvdXBJZCkge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RvdXJuYW1lbnRfZ3JvdXBfaWQnLCBmaWx0ZXJzLnRvdXJuYW1lbnRHcm91cElkLnRvU3RyaW5nKCkpO1xuICB9XG4gIGlmIChmaWx0ZXJzLmRpdmlzaW9uSWQpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdkaXZpc2lvbl9pZCcsIGZpbHRlcnMuZGl2aXNpb25JZC50b1N0cmluZygpKTtcbiAgfVxuICBpZiAoZmlsdGVycy50b3VybmFtZW50VG91cikge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RvdXJuYW1lbnRfdG91cicsIGZpbHRlcnMudG91cm5hbWVudFRvdXIudG9TdHJpbmcoKSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMucGxheW9mZlN0YWdlKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGxheW9mZl9zdGFnZScsIGZpbHRlcnMucGxheW9mZlN0YWdlLnRvU3RyaW5nKCkpO1xuICB9XG4gIGlmIChmaWx0ZXJzLnBsYXlvZmZSb3VuZCkge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BsYXlvZmZfcm91bmQnLCBmaWx0ZXJzLnBsYXlvZmZSb3VuZC50b1N0cmluZygpKTtcbiAgfVxuICBpZiAoZmlsdGVycy50ZWFtSWQpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0ZWFtX2lkJywgZmlsdGVycy50ZWFtSWQudG9TdHJpbmcoKSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMuc3RhdHVzKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc3RhdHVzJywgR2FtZVN0YXR1c2VzW2ZpbHRlcnMuc3RhdHVzXSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMuc3RhdHVzZXMpIHtcbiAgICBjb25zdCBzdGF0dXNlcyA9IGZpbHRlcnMuc3RhdHVzZXMubWFwKGkgPT4gR2FtZVN0YXR1c2VzW2ldKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzdGF0dXNlcycsIHN0YXR1c2VzLmpvaW4oJywnKSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMudG91cm5hbWVudENvdXJ0SWQpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0b3VybmFtZW50X2NvdXJ0X2lkJywgZmlsdGVycy50b3VybmFtZW50Q291cnRJZC50b1N0cmluZygpKTtcbiAgfVxuICBpZiAoZmlsdGVycy5sZWFndWVQbGF5ZXJJZCkge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2xlYWd1ZV9wbGF5ZXJfaWQnLCBmaWx0ZXJzLmxlYWd1ZVBsYXllcklkLnRvU3RyaW5nKCkpO1xuICB9XG4gIGlmIChmaWx0ZXJzLnVzZXJJZCkge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3VzZXJfaWQnLCBmaWx0ZXJzLnVzZXJJZC50b1N0cmluZygpKTtcbiAgfVxuICBpZiAoZmlsdGVycy5xdWVyeSkge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3F1ZXJ5JywgZmlsdGVycy5xdWVyeSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMuZGF0ZV9mcm9tKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZGF0ZV9mcm9tJywgZmlsdGVycy5kYXRlX2Zyb20pO1xuICB9XG4gIGlmIChmaWx0ZXJzLmRhdGVfdG8pIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdkYXRlX3RvJywgZmlsdGVycy5kYXRlX3RvKTtcbiAgfVxuICBpZiAoZmlsdGVycy5pc1BsYXlvZmYgIT09IHVuZGVmaW5lZCAmJiBmaWx0ZXJzLmlzUGxheW9mZiAhPT0gbnVsbCkge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2lzX3BsYXlvZmYnLCBmaWx0ZXJzLmlzUGxheW9mZiA/ICcxJyA6ICcwJyk7XG4gIH1cbiAgcmV0dXJuIHBhcmFtcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5U3RhdGlzdGljRmlsdGVycyhmaWx0ZXJzOiBTdGF0aXN0aWNGaWx0ZXJzKTogb2JqZWN0IHtcbiAgY29uc3QgcmF3RmlsdGVycyA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmaWx0ZXJzKSkge1xuICAgIGlmIChmaWx0ZXJzW2tleV0pIHtcbiAgICAgIGlmIChrZXkgPT09ICdiYXNrZXRiYWxsX3Bvc2l0aW9uJykge1xuICAgICAgICByYXdGaWx0ZXJzW2tleV0gPSBHYW1lQmFza2V0YmFsbFBvc2l0aW9uW2ZpbHRlcnNba2V5XV07XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3ZvbGxleWJhbGxfcG9zaXRpb24nKSB7XG4gICAgICAgIHJhd0ZpbHRlcnNba2V5XSA9IEdhbWVWb2xsZXliYWxsUG9zaXRpb25bZmlsdGVyc1trZXldXTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnaG9ja2V5X3Bvc2l0aW9uJykge1xuICAgICAgICByYXdGaWx0ZXJzW2tleV0gPSBHYW1lSG9ja2V5UG9zaXRpb25bZmlsdGVyc1trZXldXTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnZm9vdGJhbGxfcG9zaXRpb24nKSB7XG4gICAgICAgIHJhd0ZpbHRlcnNba2V5XSA9IEdhbWVGb290YmFsbFBvc2l0aW9uW2ZpbHRlcnNba2V5XV07XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2hhbmRiYWxsX3Bvc2l0aW9uJykge1xuICAgICAgICByYXdGaWx0ZXJzW2tleV0gPSBHYW1lSGFuZGJhbGxQb3NpdGlvbltmaWx0ZXJzW2tleV1dO1xuICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICd3YXRlcnBvbG9fcG9zaXRpb24nKSB7XG4gICAgICAgIHJhd0ZpbHRlcnNba2V5XSA9IEdhbWVXYXRlcnBvbG9Qb3NpdGlvbltmaWx0ZXJzW2tleV1dO1xuICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdydWdieV9wb3NpdGlvbicpIHtcbiAgICAgICAgcmF3RmlsdGVyc1trZXldID0gR2FtZVJ1Z2J5UG9zaXRpb25bZmlsdGVyc1trZXldXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJhd0ZpbHRlcnNba2V5XSA9IGZpbHRlcnNba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoZmlsdGVycy5wZXJfZ2FtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmF3RmlsdGVyc1sncGVyX2dhbWUnXSA9IGZpbHRlcnMucGVyX2dhbWUgPyAnMScgOiAnMCc7XG4gIH1cblxuICBpZiAoZmlsdGVycy50b3VybmFtZW50X2lkcykge1xuICAgIHJhd0ZpbHRlcnNbJ3RvdXJuYW1lbnRfaWRzJ10gPSBmaWx0ZXJzLnRvdXJuYW1lbnRfaWRzLmpvaW4oJywnKTtcbiAgfVxuXG4gIGlmIChmaWx0ZXJzLnRvdXJuYW1lbnRfc2Vhc29uX2lkcykge1xuICAgIHJhd0ZpbHRlcnNbJ3RvdXJuYW1lbnRfc2Vhc29uX2lkcyddID0gZmlsdGVycy50b3VybmFtZW50X3NlYXNvbl9pZHMuam9pbignLCcpO1xuICB9XG5cbiAgaWYgKGZpbHRlcnMuaXNfcGxheW9mZiAhPT0gdW5kZWZpbmVkICYmIGZpbHRlcnMuaXNfcGxheW9mZiAhPT0gbnVsbCkge1xuICAgIHJhd0ZpbHRlcnNbJ2lzX3BsYXlvZmYnXSA9IGZpbHRlcnMuaXNfcGxheW9mZiA/ICcxJyA6ICcwJztcbiAgfVxuXG4gIGlmIChmaWx0ZXJzLm9ubHlfY2xvc2VkICE9PSB1bmRlZmluZWQgJiYgZmlsdGVycy5vbmx5X2Nsb3NlZCAhPT0gbnVsbCkge1xuICAgIHJhd0ZpbHRlcnNbJ29ubHlfY2xvc2VkJ10gPSBmaWx0ZXJzLm9ubHlfY2xvc2VkID8gJzEnIDogJzAnO1xuICB9XG5cbiAgaWYgKGZpbHRlcnMuY2hlY2tfaWdub3JlX2dhbWUgIT09IHVuZGVmaW5lZCAmJiBmaWx0ZXJzLmNoZWNrX2lnbm9yZV9nYW1lICE9PSBudWxsKSB7XG4gICAgcmF3RmlsdGVyc1snY2hlY2tfaWdub3JlX2dhbWUnXSA9IGZpbHRlcnMuY2hlY2tfaWdub3JlX2dhbWUgPyAnMScgOiAnMCc7XG4gIH1cblxuICByZXR1cm4gcmF3RmlsdGVycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5U3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMoZmlsdGVyczogU3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMsIHBhcmFtczogSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXMge1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmaWx0ZXJzKSkge1xuICAgIGlmIChmaWx0ZXJzW2tleV0pIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoa2V5LCBmaWx0ZXJzW2tleV0pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChmaWx0ZXJzLnBlcl9nYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwZXJfZ2FtZScsIGZpbHRlcnMucGVyX2dhbWUgPyAnMScgOiAnMCcpO1xuICB9XG5cbiAgaWYgKGZpbHRlcnMudG91cm5hbWVudF9pZHMpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0b3VybmFtZW50X2lkcycsIGZpbHRlcnMudG91cm5hbWVudF9pZHMuam9pbignLCcpKTtcbiAgfVxuICBpZiAoZmlsdGVycy5maWVsZHMpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdmaWVsZHMnLCBmaWx0ZXJzLmZpZWxkcy5qb2luKCcsJykpO1xuICB9XG4gIHJldHVybiBwYXJhbXM7XG59XG4iXX0=
541
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91cm5hbWVudC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9hcGkvdG91cm5hbWVudC1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxN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RUQsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFO1FBQzFCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDekU7SUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDbEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDekQ7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRvdXJuYW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUb3VybmFtZW50TmV3cyB9IGZyb20gJy4uL21vZGVscy90b3VybmFtZW50LW5ld3MnO1xuaW1wb3J0IHsgR2FtZSwgR2FtZVN0YXR1c2VzIH0gZnJvbSAnLi4vbW9kZWxzL2dhbWUnO1xuaW1wb3J0IHsgR2FtZVRpbWVsaW5lU3RhZ2VzIH0gZnJvbSAnLi4vbW9kZWxzL2dhbWUtdGltZWxpbmUtc3RhZ2VzJztcbmltcG9ydCB7IFRvdXJuYW1lbnRUZWFtIH0gZnJvbSAnLi4vbW9kZWxzL3RvdXJuYW1lbnQtdGVhbSc7XG5pbXBvcnQgeyBUb3VybmFtZW50U3RhZ2UgfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudC1zdGFnZSc7XG5pbXBvcnQgeyBQbGF5b2ZmIH0gZnJvbSAnLi4vbW9kZWxzL3BsYXlvZmYnO1xuaW1wb3J0IHsgUGFnaW5hdGVkUmVzcG9uc2UgfSBmcm9tICcuL3BhZ2luYXRlZC1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFza2V0YmFsbFN0YXRpc3RpYyB9IGZyb20gJy4uL21vZGVscy9iYXNrZXRiYWxsLXN0YXRpc3RpYyc7XG5pbXBvcnQgeyBWb2xsZXliYWxsU3RhdGlzdGljIH0gZnJvbSAnLi4vbW9kZWxzL3ZvbGxleWJhbGwtc3RhdGlzdGljJztcbmltcG9ydCB7IFRvdXJuYW1lbnRUZWFtVXNlciB9IGZyb20gJy4uL21vZGVscy90b3VybmFtZW50LXRlYW0tdXNlcic7XG5pbXBvcnQgeyBUb3VybmFtZW50U3RhZ2VUZWFtIH0gZnJvbSAnLi4vbW9kZWxzL3RvdXJuYW1lbnQtc3RhZ2UtdGVhbSc7XG5pbXBvcnQgeyBUb3VybmFtZW50RXZlbnQsIFRvdXJuYW1lbnRFdmVudFR5cGVzIH0gZnJvbSAnLi4vbW9kZWxzL3RvdXJuYW1lbnQtZXZlbnQnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEhvY2tleVN0YXRpc3RpYyB9IGZyb20gJy4uL21vZGVscy9ob2NrZXktc3RhdGlzdGljJztcbmltcG9ydCB7IEZvb3RiYWxsU3RhdGlzdGljIH0gZnJvbSAnLi4vbW9kZWxzL2Zvb3RiYWxsLXN0YXRpc3RpYyc7XG5pbXBvcnQgeyBMZWFndWVVc2VyUGVybWlzc2lvbnMgfSBmcm9tICcuLi9tb2RlbHMvbGVhZ3VlLXVzZXInO1xuaW1wb3J0IHsgSGFuZGJhbGxTdGF0aXN0aWMgfSBmcm9tICcuLi9tb2RlbHMvaGFuZGJhbGwtc3RhdGlzdGljJztcbmltcG9ydCB7IFJ1Z2J5U3RhdGlzdGljIH0gZnJvbSAnLi4vbW9kZWxzL3J1Z2J5LXN0YXRpc3RpYyc7XG5pbXBvcnQgeyBUb3VybmFtZW50R3JvdXAgfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudC1ncm91cCc7XG5pbXBvcnQgeyBUZWFtQWNoaWV2ZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvdGVhbS1hY2hpZXZlbWVudCc7XG5pbXBvcnQgeyBXYXRlcnBvbG9TdGF0aXN0aWMgfSBmcm9tICcuLi9tb2RlbHMvd2F0ZXJwb2xvLXN0YXRpc3RpYyc7XG5pbXBvcnQgeyBUb3VybmFtZW50Um91bmQgfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudC1yb3VuZCc7XG5pbXBvcnQgeyBUb3VybmFtZW50RGl2aXNpb24gfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudC1kaXZpc2lvbic7XG5pbXBvcnQgeyBVc2VyR2VuZGVyIH0gZnJvbSAnLi4vbW9kZWxzL3VzZXInO1xuaW1wb3J0IHsgR2FtZVVzZXJMaW1pdGF0aW9ucyB9IGZyb20gJy4uL21vZGVscy9nYW1lLXVzZXItbGltaXRhdGlvbic7XG5pbXBvcnQgeyBHYW1lSG9ja2V5UG9zaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvaG9ja2V5LXByb2ZpbGUnO1xuaW1wb3J0IHsgR2FtZUZvb3RiYWxsUG9zaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvZm9vdGJhbGwtcHJvZmlsZSc7XG5pbXBvcnQgeyBHYW1lSGFuZGJhbGxQb3NpdGlvbiB9IGZyb20gJy4uL21vZGVscy9oYW5kYmFsbC1wcm9maWxlJztcbmltcG9ydCB7IEdhbWVXYXRlcnBvbG9Qb3NpdGlvbiB9IGZyb20gJy4uL21vZGVscy93YXRlcnBvbG8tcHJvZmlsZSc7XG5pbXBvcnQgeyBHYW1lQmFza2V0YmFsbFBvc2l0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2Jhc2tldGJhbGwtcHJvZmlsZSc7XG5pbXBvcnQgeyBHYW1lVm9sbGV5YmFsbFBvc2l0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3ZvbGxleWJhbGwtcHJvZmlsZSc7XG5pbXBvcnQgeyBHYW1lUnVnYnlQb3NpdGlvbiB9IGZyb20gJy4uL21vZGVscy9ydWdieS1wcm9maWxlJztcbmltcG9ydCB7IFdyZXN0YmFsbFN0YXRpc3RpYyB9IGZyb20gJy4uL21vZGVscy93cmVzdGJhbGwtc3RhdGlzdGljJztcblxuZXhwb3J0IGludGVyZmFjZSBUb3VybmFtZW50R2FtZXNGaWx0ZXJzIHtcbiAgdG91cm5hbWVudElkcz86IG51bWJlcltdO1xuICB0b3VybmFtZW50U2Vhc29uSWQ/OiBudW1iZXI7XG4gIHRvdXJuYW1lbnRTdGFnZUlkPzogbnVtYmVyO1xuICB0b3VybmFtZW50Um91bmRJZD86IG51bWJlcjtcbiAgdG91cm5hbWVudEdyb3VwSWQ/OiBudW1iZXI7XG4gIGRpdmlzaW9uSWQ/OiBudW1iZXI7XG4gIHRvdXJuYW1lbnRUb3VyPzogbnVtYmVyO1xuICB0ZWFtSWQ/OiBudW1iZXI7XG4gIHBsYXlvZmZTdGFnZT86IG51bWJlcjtcbiAgcGxheW9mZlJvdW5kPzogbnVtYmVyO1xuICBwbGF5b2ZmSWQ/OiBudW1iZXI7XG4gIGlzUGxheW9mZj86IGJvb2xlYW47XG4gIHN0YXR1cz86IEdhbWVTdGF0dXNlcztcbiAgc3RhdHVzZXM/OiBHYW1lU3RhdHVzZXNbXTtcbiAgdG91cm5hbWVudENvdXJ0SWQ/OiBudW1iZXI7XG4gIGxlYWd1ZVBsYXllcklkPzogbnVtYmVyO1xuICB1c2VySWQ/OiBudW1iZXI7XG4gIHF1ZXJ5Pzogc3RyaW5nO1xuICBkYXRlX2Zyb20/OiBzdHJpbmc7XG4gIGRhdGVfdG8/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFN0YXRpc3RpY0dyb3VwQnlUeXBlcyA9ICd0ZWFtJyB8ICd1c2VyJyB8ICd0ZWFtX3VzZXInIHwgJ3RvdXJuYW1lbnRfdGVhbScgfCAnbGVhZ3VlX3BsYXllcicgfCAndG91cm5hbWVudF90ZWFtX3VzZXInXG4gIHwgJ21vbnRoJyB8ICd3aW5fbG9zZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRpc3RpY0ZpbHRlcnMge1xuICBsZWFndWVfaWQ/OiBudW1iZXI7XG4gIHRvdXJuYW1lbnRfaWQ/OiBudW1iZXI7XG4gIHRvdXJuYW1lbnRfaWRzPzogbnVtYmVyW107XG4gIHRvdXJuYW1lbnRfc2Vhc29uX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3NlYXNvbl9pZHM/OiBudW1iZXJbXTtcbiAgdG91cm5hbWVudF90ZWFtX2lkPzogbnVtYmVyO1xuICBsZWFndWVfcGxheWVyX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3RlYW1fdXNlcl9pZD86IG51bWJlcjtcbiAgdGVhbV9pZD86IG51bWJlcjtcbiAgdGVhbV91c2VyX2lkPzogbnVtYmVyO1xuICB1c2VyX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3N0YWdlX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3JvdW5kX2lkPzogbnVtYmVyO1xuICBkaXZpc2lvbl9pZD86IG51bWJlcjtcbiAgdG91cm5hbWVudF9ncm91cF9pZD86IG51bWJlcjtcbiAgdG91cm5hbWVudF90b3VyPzogbnVtYmVyO1xuICBwbGF5b2ZmX3N0YWdlPzogbnVtYmVyO1xuICBwbGF5b2ZmX3JvdW5kPzogbnVtYmVyO1xuICBwbGF5b2ZmX2lkPzogbnVtYmVyO1xuICBpc19wbGF5b2ZmPzogYm9vbGVhbjtcbiAgZGF0ZV9mcm9tPzogc3RyaW5nO1xuICBkYXRlX3RvPzogc3RyaW5nO1xuICBxdWVyeT86IHN0cmluZztcbiAgZ2VuZGVyPzogVXNlckdlbmRlcjtcbiAgYmFza2V0YmFsbF9wb3NpdGlvbj86IEdhbWVCYXNrZXRiYWxsUG9zaXRpb247XG4gIHZvbGxleWJhbGxfcG9zaXRpb24/OiBHYW1lVm9sbGV5YmFsbFBvc2l0aW9uO1xuICBob2NrZXlfcG9zaXRpb24/OiBHYW1lSG9ja2V5UG9zaXRpb247XG4gIGZvb3RiYWxsX3Bvc2l0aW9uPzogR2FtZUZvb3RiYWxsUG9zaXRpb247XG4gIGhhbmRiYWxsX3Bvc2l0aW9uPzogR2FtZUhhbmRiYWxsUG9zaXRpb247XG4gIHdhdGVycG9sb19wb3NpdGlvbj86IEdhbWVXYXRlcnBvbG9Qb3NpdGlvbjtcbiAgcnVnYnlfcG9zaXRpb24/OiBHYW1lUnVnYnlQb3NpdGlvbjtcbiAgbGVhZ3VlX3BsYXllcl9maWVsZF92YWx1ZT86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuICB0b3VybmFtZW50X3RlYW1fZmllbGRfdmFsdWU/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcbiAgcGVyX2dhbWU/OiBib29sZWFuO1xuICBncm91cF9ieTogU3RhdGlzdGljR3JvdXBCeVR5cGVzO1xuICBvbmx5X2Nsb3NlZD86IGJvb2xlYW47XG4gIGNoZWNrX2lnbm9yZV9nYW1lPzogYm9vbGVhbjtcbiAgb3JkZXJfYnk/OiBzdHJpbmc7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMge1xuICB0b3VybmFtZW50X2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X2lkcz86IG51bWJlcltdO1xuICB0b3VybmFtZW50X3NlYXNvbl9pZD86IG51bWJlcjtcbiAgdG91cm5hbWVudF90ZWFtX2lkPzogbnVtYmVyO1xuICB0ZWFtX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3N0YWdlX2lkPzogbnVtYmVyO1xuICB0b3VybmFtZW50X3RvdXI/OiBudW1iZXI7XG4gIHBsYXlvZmZfc3RhZ2U/OiBudW1iZXI7XG4gIHBsYXlvZmZfaWQ/OiBudW1iZXI7XG4gIGRhdGVfZnJvbT86IHN0cmluZztcbiAgZGF0ZV90bz86IHN0cmluZztcbiAgcGVyX2dhbWU/OiBib29sZWFuO1xuICBncm91cF9ieTogU3RhdGlzdGljR3JvdXBCeVR5cGVzO1xuICBzaXplPzogbnVtYmVyO1xuICBmaWVsZHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvdXJuYW1lbnRFdmVudHNMaXN0RmlsdGVyIHtcbiAgZXZlbnQ/OiBUb3VybmFtZW50RXZlbnRUeXBlcztcbiAgc2VhcmNoPzogc3RyaW5nO1xuICB0b3VybmFtZW50VG91cj86IG51bWJlcjtcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVG91cm5hbWVudEFwaSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlJZCh0b3VybmFtZW50SWQ6IG51bWJlcik6IFByb21pc2U8VG91cm5hbWVudD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vYClcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gVG91cm5hbWVudC50b0Zyb250KHJlc3VsdCkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlBbGlhcyhsZWFndWVJZDogbnVtYmVyLCBhbGlhczogc3RyaW5nKTogUHJvbWlzZTxUb3VybmFtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS9sZWFndWUvJHtsZWFndWVJZH0vdG91cm5hbWVudHMvJHthbGlhc30vYClcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gVG91cm5hbWVudC50b0Zyb250KHJlc3VsdCkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0U2Vhc29uVG91cm5hbWVudHMoc2Vhc29uVG91cm5hbWVudElkOiBudW1iZXIpOiBQcm9taXNlPFRvdXJuYW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvc2Vhc29uX3RvdXJuYW1lbnQvJHtzZWFzb25Ub3VybmFtZW50SWR9L3RvdXJuYW1lbnRzL2ApXG4gICAgICAucGlwZShtYXAocmVzdWx0ID0+IFRvdXJuYW1lbnQudG9Gcm9udChyZXN1bHQpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldE5ld3ModG91cm5hbWVudElkOiBudW1iZXIpOiBQcm9taXNlPFRvdXJuYW1lbnROZXdzW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L25ld3MvYClcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gVG91cm5hbWVudE5ld3MudG9Gcm9udChyZXN1bHQpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldEV2ZW50cyh0b3VybmFtZW50SWQ6IG51bWJlciwgcGFnZTogbnVtYmVyLCBzaXplOiBudW1iZXIsIGZpbHRlcnM/OiBUb3VybmFtZW50RXZlbnRzTGlzdEZpbHRlcik6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8VG91cm5hbWVudEV2ZW50W10+PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYWdlJywgcGFnZS50b1N0cmluZygpKVxuICAgICAgLnNldCgnc2l6ZScsIHNpemUudG9TdHJpbmcoKSk7XG4gICAgaWYgKGZpbHRlcnMpIHtcbiAgICAgIGlmIChmaWx0ZXJzLmV2ZW50KSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2V2ZW50JywgVG91cm5hbWVudEV2ZW50VHlwZXNbZmlsdGVycy5ldmVudF0pO1xuICAgICAgfVxuICAgICAgaWYgKGZpbHRlcnMuc2VhcmNoKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NlYXJjaCcsIGZpbHRlcnMuc2VhcmNoKTtcbiAgICAgIH1cbiAgICAgIGlmIChmaWx0ZXJzLnRvdXJuYW1lbnRUb3VyKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RvdXJuYW1lbnRfdG91cicsIGZpbHRlcnMudG91cm5hbWVudFRvdXIudG9TdHJpbmcoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vZXZlbnRzL2AsIHtwYXJhbXMsIG9ic2VydmU6ICdyZXNwb25zZSd9KVxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiAoe1xuICAgICAgICB0b3RhbDogK3Jlc3VsdC5oZWFkZXJzLmdldCgnWC1QYWdlLUNvdW50JyksXG4gICAgICAgIGRhdGE6IFRvdXJuYW1lbnRFdmVudC50b0Zyb250KHJlc3VsdC5ib2R5KVxuICAgICAgfSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG91cm5hbWVudFN0YWdlcyh0b3VybmFtZW50SWQ6IG51bWJlcik6IFByb21pc2U8VG91cm5hbWVudFN0YWdlW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L3N0YWdlcy9gKS5waXBlKFxuICAgICAgbWFwKGRhdGEgPT4gVG91cm5hbWVudFN0YWdlLnRvRnJvbnQoZGF0YSkpXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFRvdXJuYW1lbnRSb3VuZHModG91cm5hbWVudElkOiBudW1iZXIpOiBQcm9taXNlPFRvdXJuYW1lbnRSb3VuZFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50LyR7dG91cm5hbWVudElkfS9yb3VuZHMvYCkucGlwZShcbiAgICAgIG1hcChkYXRhID0+IFRvdXJuYW1lbnRSb3VuZC50b0Zyb250KGRhdGEpKSxcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG91cm5hbWVudERpdmlzaW9ucyh0b3VybmFtZW50SWQ6IG51bWJlcik6IFByb21pc2U8VG91cm5hbWVudERpdmlzaW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L2RpdmlzaW9ucy9gKS5waXBlKFxuICAgICAgbWFwKGRhdGEgPT4gVG91cm5hbWVudERpdmlzaW9uLnRvRnJvbnQoZGF0YSkpLFxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRQbGF5b2ZmKHRvdXJuYW1lbnRJZDogbnVtYmVyKTogUHJvbWlzZTxQbGF5b2ZmW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L3BsYXlvZmYvYCkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gUGxheW9mZi50b0Zyb250KHJlc3VsdCkpXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFBsYXlvZmZHYW1lcyhwbGF5b2ZmSWQ6IG51bWJlciwgcGxheW9mZk51bWJlcj86IHN0cmluZyk6IFByb21pc2U8R2FtZVtdPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgaWYgKHBsYXlvZmZOdW1iZXIpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BsYXlvZmZfbnVtYmVyJywgcGxheW9mZk51bWJlcik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF9wbGF5b2ZmLyR7cGxheW9mZklkfS9nYW1lcy9gLFxuICAgICAge3BhcmFtc31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IEdhbWUudG9Gcm9udChyZXN1bHQpKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRHYW1lc1N0YWdlcyh0b3VybmFtZW50SWQ6IG51bWJlciwgcm91bmRJZD86IG51bWJlcik6IFByb21pc2U8R2FtZVRpbWVsaW5lU3RhZ2VzPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgaWYgKHJvdW5kSWQpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RvdXJuYW1lbnRfcm91bmRfaWQnLCByb3VuZElkLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcbiAgICAgIGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vZ2FtZXNfc3RhZ2VzL2AsXG4gICAgICB7cGFyYW1zfVxuICAgIClcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IEdhbWVUaW1lbGluZVN0YWdlcy50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldEdhbWVzKHRvdXJuYW1lbnRJZDogbnVtYmVyLCBwYWdlOiBudW1iZXIsIHNpemU6IG51bWJlciwgZmlsdGVyczogVG91cm5hbWVudEdhbWVzRmlsdGVycyA9IHt9KTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxHYW1lW10+PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdwYWdlJywgcGFnZS50b1N0cmluZygpKTtcbiAgICBpZiAoc2l6ZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2l6ZScsIHNpemUudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIHBhcmFtcyA9IGFwcGx5R2FtZXNGaWx0ZXJzKGZpbHRlcnMsIHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50LyR7dG91cm5hbWVudElkfS9nYW1lcy9gLCB7cGFyYW1zLCBvYnNlcnZlOiAncmVzcG9uc2UnfSlcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gKHtcbiAgICAgICAgdG90YWw6ICtyZXN1bHQuaGVhZGVycy5nZXQoJ1gtUGFnZS1Db3VudCcpLFxuICAgICAgICBkYXRhOiBHYW1lLnRvRnJvbnQocmVzdWx0LmJvZHkpXG4gICAgICB9KSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0R2FtZXNEYXRlcyh0b3VybmFtZW50SWQ6IG51bWJlcik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoXG4gICAgICBgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L2dhbWVzX2RhdGVzL2AsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogcmVzdWx0LmJvZHlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRHcm91cHModG91cm5hbWVudElkOiBudW1iZXIpOiBQcm9taXNlPFRvdXJuYW1lbnRHcm91cFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50LyR7dG91cm5hbWVudElkfS9ncm91cHMvYClcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gVG91cm5hbWVudEdyb3VwLnRvRnJvbnQocmVzdWx0KSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRUZWFtcyh0b3VybmFtZW50SWQ6IG51bWJlciwgZ3JvdXBJZD86IG51bWJlciwgc2hvcnQ/OiBib29sZWFuKTogUHJvbWlzZTxUb3VybmFtZW50VGVhbVtdPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgaWYgKGdyb3VwSWQpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2dyb3VwX2lkJywgZ3JvdXBJZC50b1N0cmluZygpKTtcbiAgICB9XG4gICAgaWYgKHNob3J0KSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzaG9ydCcsICcxJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vdGVhbXMvYCwge3BhcmFtc30pXG4gICAgICAucGlwZShtYXAocmVzdWx0ID0+IFRvdXJuYW1lbnRUZWFtLnRvRnJvbnQocmVzdWx0KSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRTdGFnZVRlYW1zKHRvdXJuYW1lbnRJZDogbnVtYmVyKTogUHJvbWlzZTxUb3VybmFtZW50U3RhZ2VUZWFtW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnQvJHt0b3VybmFtZW50SWR9L3N0YWdlX3RlYW1zL2ApXG4gICAgICAucGlwZShtYXAocmVzdWx0ID0+IFRvdXJuYW1lbnRTdGFnZVRlYW0udG9Gcm9udChyZXN1bHQpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFRlYW1zQWNoaWV2ZW1lbnRzKHRvdXJuYW1lbnRJZDogbnVtYmVyKTogUHJvbWlzZTxUZWFtQWNoaWV2ZW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vYWNoaWV2ZW1lbnRzL2ApXG4gICAgICAucGlwZShtYXAocmVzdWx0ID0+IFRlYW1BY2hpZXZlbWVudC50b0Zyb250KHJlc3VsdCkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VGVhbUJ5SWQodG91cm5hbWVudFRlYW1JZDogbnVtYmVyKTogUHJvbWlzZTxUb3VybmFtZW50VGVhbT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF90ZWFtLyR7dG91cm5hbWVudFRlYW1JZH0vYClcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4gVG91cm5hbWVudFRlYW0udG9Gcm9udChyZXN1bHQpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJCeUlkKHVzZXJJZDogbnVtYmVyKTogUHJvbWlzZTxUb3VybmFtZW50VGVhbVVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnRfdGVhbV91c2VyLyR7dXNlcklkfS9gKVxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiBUb3VybmFtZW50VGVhbVVzZXIudG9Gcm9udChyZXN1bHQpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJHYW1lcyh0b3VybmFtZW50VXNlcklkOiBudW1iZXIpOiBQcm9taXNlPEdhbWVbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF90ZWFtX3VzZXIvJHt0b3VybmFtZW50VXNlcklkfS9nYW1lcy9gKVxuICAgICAgLnBpcGUobWFwKHJlc3VsdCA9PiBHYW1lLnRvRnJvbnQocmVzdWx0KSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBkb3dubG9hZFRhYmxlKHRvdXJuYW1lbnRJZDogbnVtYmVyLCBmb3JtYXQ6ICdwZGYnIHwgJ3hsc3gnLCBpc0NoZXNzPzogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XG4gICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnZmlsZV90eXBlJywgZm9ybWF0KTtcbiAgICBpZiAoaXNDaGVzcykge1xuICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCdpc0NoZXNzJywgdHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vdGFibGVfZmlsZS9gLCB7XG4gICAgICBwYXJhbXM6IGh0dHBQYXJhbXMsXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xuICAgIH0pLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QmFza2V0YmFsbFN0YXRpc3RpY0xlYWRlcnMoZmlsdGVyczogU3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMpOiBQcm9taXNlPHtba2V5OiBzdHJpbmddOiBCYXNrZXRiYWxsU3RhdGlzdGljW119PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gYXBwbHlTdGF0aXN0aWNMZWFkZXJzRmlsdGVycyhmaWx0ZXJzLCBwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvYmFza2V0YmFsbF9zdGF0aXN0aWNfbGVhZGVycy9gLCB7cGFyYW1zfSkucGlwZShcbiAgICAgIG1hcCgocmVzdWx0OiB7W2tleTogc3RyaW5nXTogYW55W119KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJlc3VsdCkpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IEJhc2tldGJhbGxTdGF0aXN0aWMudG9Gcm9udChyZXN1bHRba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFZvbGxleWJhbGxTdGF0aXN0aWNMZWFkZXJzKGZpbHRlcnM6IFN0YXRpc3RpY0xlYWRlcnNGaWx0ZXJzKTogUHJvbWlzZTx7W2tleTogc3RyaW5nXTogVm9sbGV5YmFsbFN0YXRpc3RpY1tdfT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IGFwcGx5U3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMoZmlsdGVycywgcGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3ZvbGxleWJhbGxfc3RhdGlzdGljX2xlYWRlcnMvYCwge3BhcmFtc30pLnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDoge1trZXk6IHN0cmluZ106IGFueVtdfSkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhyZXN1bHQpKSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBWb2xsZXliYWxsU3RhdGlzdGljLnRvRnJvbnQocmVzdWx0W2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRIb2NrZXlTdGF0aXN0aWNMZWFkZXJzKGZpbHRlcnM6IFN0YXRpc3RpY0xlYWRlcnNGaWx0ZXJzKTogUHJvbWlzZTx7W2tleTogc3RyaW5nXTogSG9ja2V5U3RhdGlzdGljW119PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gYXBwbHlTdGF0aXN0aWNMZWFkZXJzRmlsdGVycyhmaWx0ZXJzLCBwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvaG9ja2V5X3N0YXRpc3RpY19sZWFkZXJzL2AsIHtwYXJhbXN9KS5waXBlKFxuICAgICAgbWFwKChyZXN1bHQ6IHtba2V5OiBzdHJpbmddOiBhbnlbXX0pID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVzdWx0KSkge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gSG9ja2V5U3RhdGlzdGljLnRvRnJvbnQocmVzdWx0W2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRGb290YmFsbFN0YXRpc3RpY0xlYWRlcnMoZmlsdGVyczogU3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMpOiBQcm9taXNlPHtba2V5OiBzdHJpbmddOiBGb290YmFsbFN0YXRpc3RpY1tdfT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IGFwcGx5U3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMoZmlsdGVycywgcGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL2Zvb3RiYWxsX3N0YXRpc3RpY19sZWFkZXJzL2AsIHtwYXJhbXN9KS5waXBlKFxuICAgICAgbWFwKChyZXN1bHQ6IHtba2V5OiBzdHJpbmddOiBhbnlbXX0pID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVzdWx0KSkge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gRm9vdGJhbGxTdGF0aXN0aWMudG9Gcm9udChyZXN1bHRba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldEhhbmRiYWxsU3RhdGlzdGljTGVhZGVycyhmaWx0ZXJzOiBTdGF0aXN0aWNMZWFkZXJzRmlsdGVycyk6IFByb21pc2U8e1trZXk6IHN0cmluZ106IEhhbmRiYWxsU3RhdGlzdGljW119PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gYXBwbHlTdGF0aXN0aWNMZWFkZXJzRmlsdGVycyhmaWx0ZXJzLCBwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvaGFuZGJhbGxfc3RhdGlzdGljX2xlYWRlcnMvYCwge3BhcmFtc30pLnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDoge1trZXk6IHN0cmluZ106IGFueVtdfSkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhyZXN1bHQpKSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBIYW5kYmFsbFN0YXRpc3RpYy50b0Zyb250KHJlc3VsdFtrZXldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0V2F0ZXJwb2xvU3RhdGlzdGljTGVhZGVycyhmaWx0ZXJzOiBTdGF0aXN0aWNMZWFkZXJzRmlsdGVycyk6IFByb21pc2U8e1trZXk6IHN0cmluZ106IFdhdGVycG9sb1N0YXRpc3RpY1tdfT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IGFwcGx5U3RhdGlzdGljTGVhZGVyc0ZpbHRlcnMoZmlsdGVycywgcGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3dhdGVycG9sb19zdGF0aXN0aWNfbGVhZGVycy9gLCB7cGFyYW1zfSkucGlwZShcbiAgICAgIG1hcCgocmVzdWx0OiB7W2tleTogc3RyaW5nXTogYW55W119KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJlc3VsdCkpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IFdhdGVycG9sb1N0YXRpc3RpYy50b0Zyb250KHJlc3VsdFtrZXldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QmFza2V0YmFsbFN0YXRpc3RpYyhmaWx0ZXJzPzogU3RhdGlzdGljRmlsdGVycyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8QmFza2V0YmFsbFN0YXRpc3RpY1tdPj4ge1xuICAgIGNvbnN0IGRhdGEgPSBhcHBseVN0YXRpc3RpY0ZpbHRlcnMoZmlsdGVycyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXG4gICAgICBgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL2Jhc2tldGJhbGxfc3RhdGlzdGljL2AsXG4gICAgICBkYXRhLFxuICAgICAge29ic2VydmU6ICdyZXNwb25zZSd9XG4gICAgKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiAoe1xuICAgICAgICB0b3RhbDogK3Jlc3VsdC5oZWFkZXJzLmdldCgnWC1QYWdlLUNvdW50JyksXG4gICAgICAgIGRhdGE6IEJhc2tldGJhbGxTdGF0aXN0aWMudG9Gcm9udChyZXN1bHQuYm9keSlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRWb2xsZXliYWxsU3RhdGlzdGljKGZpbHRlcnM/OiBTdGF0aXN0aWNGaWx0ZXJzKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxWb2xsZXliYWxsU3RhdGlzdGljW10+PiB7XG4gICAgY29uc3QgZGF0YSA9IGFwcGx5U3RhdGlzdGljRmlsdGVycyhmaWx0ZXJzKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcbiAgICAgIGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdm9sbGV5YmFsbF9zdGF0aXN0aWMvYCxcbiAgICAgIGRhdGEsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogVm9sbGV5YmFsbFN0YXRpc3RpYy50b0Zyb250KHJlc3VsdC5ib2R5KVxuICAgICAgfSkpXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldEhvY2tleVN0YXRpc3RpYyhmaWx0ZXJzPzogU3RhdGlzdGljRmlsdGVycyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SG9ja2V5U3RhdGlzdGljW10+PiB7XG4gICAgY29uc3QgZGF0YSA9IGFwcGx5U3RhdGlzdGljRmlsdGVycyhmaWx0ZXJzKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChcbiAgICAgIGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvaG9ja2V5X3N0YXRpc3RpYy9gLFxuICAgICAgZGF0YSxcbiAgICAgIHtvYnNlcnZlOiAncmVzcG9uc2UnfVxuICAgICkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gKHtcbiAgICAgICAgdG90YWw6ICtyZXN1bHQuaGVhZGVycy5nZXQoJ1gtUGFnZS1Db3VudCcpLFxuICAgICAgICBkYXRhOiBIb2NrZXlTdGF0aXN0aWMudG9Gcm9udChyZXN1bHQuYm9keSlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRGb290YmFsbFN0YXRpc3RpYyhmaWx0ZXJzPzogU3RhdGlzdGljRmlsdGVycyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8Rm9vdGJhbGxTdGF0aXN0aWNbXT4+IHtcbiAgICBjb25zdCBkYXRhID0gYXBwbHlTdGF0aXN0aWNGaWx0ZXJzKGZpbHRlcnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxuICAgICAgYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS9mb290YmFsbF9zdGF0aXN0aWMvYCxcbiAgICAgIGRhdGEsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogRm9vdGJhbGxTdGF0aXN0aWMudG9Gcm9udChyZXN1bHQuYm9keSlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRIYW5kYmFsbFN0YXRpc3RpYyhmaWx0ZXJzPzogU3RhdGlzdGljRmlsdGVycyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8SGFuZGJhbGxTdGF0aXN0aWNbXT4+IHtcbiAgICBjb25zdCBkYXRhID0gYXBwbHlTdGF0aXN0aWNGaWx0ZXJzKGZpbHRlcnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxuICAgICAgYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS9oYW5kYmFsbF9zdGF0aXN0aWMvYCxcbiAgICAgIGRhdGEsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogSGFuZGJhbGxTdGF0aXN0aWMudG9Gcm9udChyZXN1bHQuYm9keSlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRSdWdieVN0YXRpc3RpYyhmaWx0ZXJzPzogU3RhdGlzdGljRmlsdGVycyk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8UnVnYnlTdGF0aXN0aWNbXT4+IHtcbiAgICBjb25zdCBkYXRhID0gYXBwbHlTdGF0aXN0aWNGaWx0ZXJzKGZpbHRlcnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxuICAgICAgYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS9ydWdieV9zdGF0aXN0aWMvYCxcbiAgICAgIGRhdGEsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogUnVnYnlTdGF0aXN0aWMudG9Gcm9udChyZXN1bHQuYm9keSlcbiAgICAgIH0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRXYXRlcnBvbG9TdGF0aXN0aWMoZmlsdGVycz86IFN0YXRpc3RpY0ZpbHRlcnMpOiBQcm9taXNlPFBhZ2luYXRlZFJlc3BvbnNlPFdhdGVycG9sb1N0YXRpc3RpY1tdPj4ge1xuICAgIGNvbnN0IGRhdGEgPSBhcHBseVN0YXRpc3RpY0ZpbHRlcnMoZmlsdGVycyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXG4gICAgICBgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3dhdGVycG9sb19zdGF0aXN0aWMvYCxcbiAgICAgIGRhdGEsXG4gICAgICB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJ31cbiAgICApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+ICh7XG4gICAgICAgIHRvdGFsOiArcmVzdWx0LmhlYWRlcnMuZ2V0KCdYLVBhZ2UtQ291bnQnKSxcbiAgICAgICAgZGF0YTogV2F0ZXJwb2xvU3RhdGlzdGljLnRvRnJvbnQocmVzdWx0LmJvZHkpXG4gICAgICB9KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0V3Jlc3RiYWxsU3RhdGlzdGljKGZpbHRlcnM/OiBTdGF0aXN0aWNGaWx0ZXJzKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxXcmVzdGJhbGxTdGF0aXN0aWNbXT4+IHtcbiAgICBjb25zdCBkYXRhID0gYXBwbHlTdGF0aXN0aWNGaWx0ZXJzKGZpbHRlcnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFxuICAgICAgYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS93cmVzdGJhbGxfc3RhdGlzdGljL2AsXG4gICAgICBkYXRhLFxuICAgICAge29ic2VydmU6ICdyZXNwb25zZSd9XG4gICAgKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiAoe1xuICAgICAgICB0b3RhbDogK3Jlc3VsdC5oZWFkZXJzLmdldCgnWC1QYWdlLUNvdW50JyksXG4gICAgICAgIGRhdGE6IFdyZXN0YmFsbFN0YXRpc3RpYy50b0Zyb250KHJlc3VsdC5ib2R5KVxuICAgICAgfSkpXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFRvdXJuYW1lbnRUZWFtVXNlcnModG91cm5hbWVudFRlYW1JZDogbnVtYmVyLCBpbmNsdWRlczogc3RyaW5nW10gPSBbXSk6IFByb21pc2U8VG91cm5hbWVudFRlYW1Vc2VyW10+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBmb3IgKGNvbnN0IGluY2x1ZGUgb2YgaW5jbHVkZXMpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2luY2x1ZGUnLCBpbmNsdWRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X3RlYW0vJHt0b3VybmFtZW50VGVhbUlkfS91c2Vycy9gLCB7cGFyYW1zfSkucGlwZShcbiAgICAgIG1hcChyZXN1bHQgPT4gVG91cm5hbWVudFRlYW1Vc2VyLnRvRnJvbnQocmVzdWx0KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgbXlQZXJtaXNzaW9uKHRvdXJuYW1lbnRJZDogbnVtYmVyKTogUHJvbWlzZTxMZWFndWVVc2VyUGVybWlzc2lvbnNbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudC8ke3RvdXJuYW1lbnRJZH0vcGVybWlzc2lvbi9gKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IChkYXRhLnBlcm1pc3Npb25zIHx8IFtdKS5tYXAoaXRlbSA9PiBMZWFndWVVc2VyUGVybWlzc2lvbnNbaXRlbV0pKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRUb3VybmFtZW50VGVhbVRvdXJuYW1lbnRzKHRvdXJuYW1lbnRUZWFtSWQ6IG51bWJlcik6IFByb21pc2U8VG91cm5hbWVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X3RlYW0vJHt0b3VybmFtZW50VGVhbUlkfS90b3VybmFtZW50cy9gKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiBUb3VybmFtZW50LnRvRnJvbnQocmVzdWx0KSlcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG91cm5hbWVudFVzZXJUb3VybmFtZW50cyh0b3VybmFtZW50VGVhbVVzZXJJZDogbnVtYmVyKTogUHJvbWlzZTxUb3VybmFtZW50W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnRfdGVhbV91c2VyLyR7dG91cm5hbWVudFRlYW1Vc2VySWR9L3RvdXJuYW1lbnRzL2ApLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IFRvdXJuYW1lbnQudG9Gcm9udChyZXN1bHQpKVxuICAgICkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRUb3VybmFtZW50VGVhbVVzZXJzTGltaXRhdGlvbih0b3VybmFtZW50VGVhbUlkOiBudW1iZXIpOiBQcm9taXNlPEdhbWVVc2VyTGltaXRhdGlvbnNbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF90ZWFtLyR7dG91cm5hbWVudFRlYW1JZH0vdXNlcnNfbGltaXRhdGlvbi9gKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiBHYW1lVXNlckxpbWl0YXRpb25zLnRvRnJvbnQocmVzdWx0KSksXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkVGVhbVNhbmN0aW9uTGlzdCh0b3VybmFtZW50VGVhbUlkOiBudW1iZXIsIGZpbGVUeXBlOiAncGRmJyB8ICd4bHN4JyB8ICdodG1sJyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90b3VybmFtZW50X3RlYW0vJHt0b3VybmFtZW50VGVhbUlkfS9zYW5jdGlvbl9saXN0X2ZpbGUvP2ZpbGVfdHlwZT0ke2ZpbGVUeXBlfWAsIHtcbiAgICAgIHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2ZpbGVfdHlwZScsIGZpbGVUeXBlKSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InXG4gICAgfSkudG9Qcm9taXNlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5R2FtZXNGaWx0ZXJzKGZpbHRlcnM6IFRvdXJuYW1lbnRHYW1lc0ZpbHRlcnMsIHBhcmFtczogSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXMge1xuICBpZiAoZmlsdGVycy50b3VybmFtZW50SWRzKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG91cm5hbWVudF9pZHMnLCBmaWx0ZXJzLnRvdXJuYW1lbnRJZHMuam9pbignLCcpKTtcbiAgfVxuICBpZiAoZmlsdGVycy50b3VybmFtZW50U3RhZ2VJZCkge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RvdXJuYW1lbnRfc3RhZ2VfaWQnLCBmaWx0ZXJzLnRvdXJuYW1lbnRTdGFnZUlkLnRvU3RyaW5nKCkpO1xuICB9XG4gIGlmIChmaWx0ZXJzLnRvdXJuYW1lbnRSb3VuZElkKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG91cm5hbWVudF9yb3VuZF9pZCcsIGZpbHRlcnMudG91cm5hbWVudFJvdW5kSWQudG9TdHJpbmcoKSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMudG91cm5hbWVudEdyb3VwSWQpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0b3VybmFtZW50X2dyb3VwX2lkJywgZmlsdGVycy50b3VybmFtZW50R3JvdXBJZC50b1N0cmluZygpKTtcbiAgfVxuICBpZiAoZmlsdGVycy5kaXZpc2lvbklkKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZGl2aXNpb25faWQnLCBmaWx0ZXJzLmRpdmlzaW9uSWQudG9TdHJpbmcoKSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMudG91cm5hbWVudFRvdXIpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0b3VybmFtZW50X3RvdXInLCBmaWx0ZXJzLnRvdXJuYW1lbnRUb3VyLnRvU3RyaW5nKCkpO1xuICB9XG4gIGlmIChmaWx0ZXJzLnBsYXlvZmZTdGFnZSkge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BsYXlvZmZfc3RhZ2UnLCBmaWx0ZXJzLnBsYXlvZmZTdGFnZS50b1N0cmluZygpKTtcbiAgfVxuICBpZiAoZmlsdGVycy5wbGF5b2ZmUm91bmQpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwbGF5b2ZmX3JvdW5kJywgZmlsdGVycy5wbGF5b2ZmUm91bmQudG9TdHJpbmcoKSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMudGVhbUlkKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgndGVhbV9pZCcsIGZpbHRlcnMudGVhbUlkLnRvU3RyaW5nKCkpO1xuICB9XG4gIGlmIChmaWx0ZXJzLnN0YXR1cykge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3N0YXR1cycsIEdhbWVTdGF0dXNlc1tmaWx0ZXJzLnN0YXR1c10pO1xuICB9XG4gIGlmIChmaWx0ZXJzLnN0YXR1c2VzKSB7XG4gICAgY29uc3Qgc3RhdHVzZXMgPSBmaWx0ZXJzLnN0YXR1c2VzLm1hcChpID0+IEdhbWVTdGF0dXNlc1tpXSk7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc3RhdHVzZXMnLCBzdGF0dXNlcy5qb2luKCcsJykpO1xuICB9XG4gIGlmIChmaWx0ZXJzLnRvdXJuYW1lbnRDb3VydElkKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG91cm5hbWVudF9jb3VydF9pZCcsIGZpbHRlcnMudG91cm5hbWVudENvdXJ0SWQudG9TdHJpbmcoKSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMubGVhZ3VlUGxheWVySWQpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdsZWFndWVfcGxheWVyX2lkJywgZmlsdGVycy5sZWFndWVQbGF5ZXJJZC50b1N0cmluZygpKTtcbiAgfVxuICBpZiAoZmlsdGVycy51c2VySWQpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd1c2VyX2lkJywgZmlsdGVycy51c2VySWQudG9TdHJpbmcoKSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMucXVlcnkpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdxdWVyeScsIGZpbHRlcnMucXVlcnkpO1xuICB9XG4gIGlmIChmaWx0ZXJzLmRhdGVfZnJvbSkge1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2RhdGVfZnJvbScsIGZpbHRlcnMuZGF0ZV9mcm9tKTtcbiAgfVxuICBpZiAoZmlsdGVycy5kYXRlX3RvKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZGF0ZV90bycsIGZpbHRlcnMuZGF0ZV90byk7XG4gIH1cbiAgaWYgKGZpbHRlcnMuaXNQbGF5b2ZmICE9PSB1bmRlZmluZWQgJiYgZmlsdGVycy5pc1BsYXlvZmYgIT09IG51bGwpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdpc19wbGF5b2ZmJywgZmlsdGVycy5pc1BsYXlvZmYgPyAnMScgOiAnMCcpO1xuICB9XG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVN0YXRpc3RpY0ZpbHRlcnMoZmlsdGVyczogU3RhdGlzdGljRmlsdGVycyk6IG9iamVjdCB7XG4gIGNvbnN0IHJhd0ZpbHRlcnMgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZmlsdGVycykpIHtcbiAgICBpZiAoZmlsdGVyc1trZXldKSB7XG4gICAgICBpZiAoa2V5ID09PSAnYmFza2V0YmFsbF9wb3NpdGlvbicpIHtcbiAgICAgICAgcmF3RmlsdGVyc1trZXldID0gR2FtZUJhc2tldGJhbGxQb3NpdGlvbltmaWx0ZXJzW2tleV1dO1xuICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICd2b2xsZXliYWxsX3Bvc2l0aW9uJykge1xuICAgICAgICByYXdGaWx0ZXJzW2tleV0gPSBHYW1lVm9sbGV5YmFsbFBvc2l0aW9uW2ZpbHRlcnNba2V5XV07XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2hvY2tleV9wb3NpdGlvbicpIHtcbiAgICAgICAgcmF3RmlsdGVyc1trZXldID0gR2FtZUhvY2tleVBvc2l0aW9uW2ZpbHRlcnNba2V5XV07XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Zvb3RiYWxsX3Bvc2l0aW9uJykge1xuICAgICAgICByYXdGaWx0ZXJzW2tleV0gPSBHYW1lRm9vdGJhbGxQb3NpdGlvbltmaWx0ZXJzW2tleV1dO1xuICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdoYW5kYmFsbF9wb3NpdGlvbicpIHtcbiAgICAgICAgcmF3RmlsdGVyc1trZXldID0gR2FtZUhhbmRiYWxsUG9zaXRpb25bZmlsdGVyc1trZXldXTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnd2F0ZXJwb2xvX3Bvc2l0aW9uJykge1xuICAgICAgICByYXdGaWx0ZXJzW2tleV0gPSBHYW1lV2F0ZXJwb2xvUG9zaXRpb25bZmlsdGVyc1trZXldXTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncnVnYnlfcG9zaXRpb24nKSB7XG4gICAgICAgIHJhd0ZpbHRlcnNba2V5XSA9IEdhbWVSdWdieVBvc2l0aW9uW2ZpbHRlcnNba2V5XV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByYXdGaWx0ZXJzW2tleV0gPSBmaWx0ZXJzW2tleV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGZpbHRlcnMucGVyX2dhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJhd0ZpbHRlcnNbJ3Blcl9nYW1lJ10gPSBmaWx0ZXJzLnBlcl9nYW1lID8gJzEnIDogJzAnO1xuICB9XG5cbiAgaWYgKGZpbHRlcnMudG91cm5hbWVudF9pZHMpIHtcbiAgICByYXdGaWx0ZXJzWyd0b3VybmFtZW50X2lkcyddID0gZmlsdGVycy50b3VybmFtZW50X2lkcy5qb2luKCcsJyk7XG4gIH1cblxuICBpZiAoZmlsdGVycy50b3VybmFtZW50X3NlYXNvbl9pZHMpIHtcbiAgICByYXdGaWx0ZXJzWyd0b3VybmFtZW50X3NlYXNvbl9pZHMnXSA9IGZpbHRlcnMudG91cm5hbWVudF9zZWFzb25faWRzLmpvaW4oJywnKTtcbiAgfVxuXG4gIGlmIChmaWx0ZXJzLmlzX3BsYXlvZmYgIT09IHVuZGVmaW5lZCAmJiBmaWx0ZXJzLmlzX3BsYXlvZmYgIT09IG51bGwpIHtcbiAgICByYXdGaWx0ZXJzWydpc19wbGF5b2ZmJ10gPSBmaWx0ZXJzLmlzX3BsYXlvZmYgPyAnMScgOiAnMCc7XG4gIH1cblxuICBpZiAoZmlsdGVycy5vbmx5X2Nsb3NlZCAhPT0gdW5kZWZpbmVkICYmIGZpbHRlcnMub25seV9jbG9zZWQgIT09IG51bGwpIHtcbiAgICByYXdGaWx0ZXJzWydvbmx5X2Nsb3NlZCddID0gZmlsdGVycy5vbmx5X2Nsb3NlZCA/ICcxJyA6ICcwJztcbiAgfVxuXG4gIGlmIChmaWx0ZXJzLmNoZWNrX2lnbm9yZV9nYW1lICE9PSB1bmRlZmluZWQgJiYgZmlsdGVycy5jaGVja19pZ25vcmVfZ2FtZSAhPT0gbnVsbCkge1xuICAgIHJhd0ZpbHRlcnNbJ2NoZWNrX2lnbm9yZV9nYW1lJ10gPSBmaWx0ZXJzLmNoZWNrX2lnbm9yZV9nYW1lID8gJzEnIDogJzAnO1xuICB9XG5cbiAgcmV0dXJuIHJhd0ZpbHRlcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVN0YXRpc3RpY0xlYWRlcnNGaWx0ZXJzKGZpbHRlcnM6IFN0YXRpc3RpY0xlYWRlcnNGaWx0ZXJzLCBwYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZmlsdGVycykpIHtcbiAgICBpZiAoZmlsdGVyc1trZXldKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KGtleSwgZmlsdGVyc1trZXldKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZmlsdGVycy5wZXJfZ2FtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGVyX2dhbWUnLCBmaWx0ZXJzLnBlcl9nYW1lID8gJzEnIDogJzAnKTtcbiAgfVxuXG4gIGlmIChmaWx0ZXJzLnRvdXJuYW1lbnRfaWRzKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG91cm5hbWVudF9pZHMnLCBmaWx0ZXJzLnRvdXJuYW1lbnRfaWRzLmpvaW4oJywnKSk7XG4gIH1cbiAgaWYgKGZpbHRlcnMuZmllbGRzKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZmllbGRzJywgZmlsdGVycy5maWVsZHMuam9pbignLCcpKTtcbiAgfVxuICByZXR1cm4gcGFyYW1zO1xufVxuIl19
@@ -280,6 +280,7 @@ Tournament = __decorate([
280
280
  season_id: 'seasonId',
281
281
  game_price: 'gamePrice',
282
282
  season_tournament_id: 'seasonTournamentId',
283
+ sort: 'sort',
283
284
  },
284
285
  relation: {
285
286
  logo: File,
@@ -301,4 +302,4 @@ Tournament = __decorate([
301
302
  })
302
303
  ], Tournament);
303
304
  export { Tournament };
304
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91cm5hbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL21vZGVscy90b3VybmFtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsa0NBQWUsQ0FBQTtJQUNmLDhDQUEyQixDQUFBO0lBQzNCLGdDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxrQkFJWDtBQUpELFdBQVksa0JBQWtCO0lBQzVCLDJEQUFJLENBQUE7SUFDSix5RUFBVyxDQUFBO0lBQ1gsK0RBQU0sQ0FBQTtBQUNSLENBQUMsRUFKVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSTdCO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBSVg7QUFKRCxXQUFZLGdCQUFnQjtJQUMxQix1REFBTyxDQUFBO0lBQ1AsMkRBQU0sQ0FBQTtJQUNOLHFEQUFHLENBQUE7QUFDTCxDQUFDLEVBSlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUkzQjtBQUVELE1BQU0sQ0FBTixJQUFZLHdCQUlY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QzFCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLE9BQU87WUFDZCxnQkFBZ0IsRUFBRSxpQkFBaUI7WUFDbkMsUUFBUSxFQUFFLFVBQVU7WUFDcEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsV0FBVyxFQUFFLFlBQVk7WUFDekIscUJBQXFCLEVBQUUscUJBQXFCO1lBQzVDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFdBQVcsRUFBRSxZQUFZO1lBQ3pCLFdBQVcsRUFBRSxZQUFZO1lBQ3pCLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLG9CQUFvQixFQUFFLG9CQUFvQjtTQUMzQztRQUNELFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxLQUFLO1lBQ1osY0FBYyxFQUFFLElBQUk7WUFDcEIsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixJQUFJLEVBQUUsYUFBYTtZQUNuQixNQUFNLEVBQUUsTUFBTTtZQUNkLE1BQU0sRUFBRSxTQUFTLENBQUMsa0JBQWtCLENBQUM7WUFDckMsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLFNBQVMsRUFBRSxvQkFBb0I7WUFDL0IsTUFBTSxFQUFFLGdCQUFnQjtTQUN6QjtLQUNGLENBQUM7R0FDVyxVQUFVLENBMkR0QjtTQTNEWSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsLCBlbnVtRmllbGQsIE1vZGVsSW5zdGFuY2UsIERhdGVUaW1lRmllbGQsIFRvQmFja0hvb2ssIFRvRnJvbnRIb29rIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IENpdHkgfSBmcm9tICcuL2NpdHknO1xuaW1wb3J0IHsgRmlsZSB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBMZWFndWUgfSBmcm9tICcuL2xlYWd1ZSc7XG5pbXBvcnQgeyBTcG9ydCB9IGZyb20gJy4vc3BvcnQnO1xuaW1wb3J0IHsgVGVhbSB9IGZyb20gJy4vdGVhbSc7XG5pbXBvcnQgeyBUb3VybmFtZW50U2Vhc29uIH0gZnJvbSAnLi90b3VybmFtZW50LXNlYXNvbic7XG5cbmV4cG9ydCBlbnVtIFRvdXJuYW1lbnRUeXBlcyB7XG4gIGdyb3VwID0gJ2dyb3VwJyxcbiAgZWxpbWluYXRpb24gPSAnZWxpbWluYXRpb24nLFxuICBmaWJhID0gJ2ZpYmEnXG59XG5cbmV4cG9ydCBlbnVtIFRvdXJuYW1lbnRTdGF0dXNlcyB7XG4gIG9wZW4sXG4gIGluX3Byb2dyZXNzLFxuICBjbG9zZWQsXG59XG5cbmV4cG9ydCBlbnVtIFRvdXJuYW1lbnRHZW5kZXIge1xuICBtYWxlPSAxLFxuICBmZW1hbGUsXG4gIGFsbFxufVxuXG5leHBvcnQgZW51bSBCYXNrZXRiYWxsU3RhdGlzdGljVHlwZXMge1xuICBzdGFuZGFyZCA9IDEsXG4gIGxpZ2h0LFxuICBhZHZhbmNlZFxufVxuXG5leHBvcnQgZW51bSBWb2xsZXliYWxsU3RhdGlzdGljVHlwZXMge1xuICBzdGFuZGFyZCA9IDEsXG4gIGxpZ2h0LFxuICBhZHZhbmNlZFxufVxuXG5leHBvcnQgZW51bSBSdWdieVN0YXRpc3RpY1R5cGVzIHtcbiAgbGlnaHQgPSAxLFxuICBzdGFuZGFyZCxcbn1cblxuZXhwb3J0IGVudW0gV2F0ZXJwb2xvU3RhdGlzdGljVHlwZXMge1xuICBzdGFuZGFyZCA9IDEsXG4gIGxpZ2h0LFxufVxuXG5leHBvcnQgZW51bSBXcmVzdGJhbGxTdGF0aXN0aWNUeXBlcyB7XG4gIHN0YW5kYXJkID0gMSxcbn1cblxuZXhwb3J0IGVudW0gR2FtZVRpbWVUeXBlcyB7XG4gIGNsZWFuID0gMSxcbiAgZGlydHksXG59XG5cbmV4cG9ydCBlbnVtIE92ZXJ0aW1lVHlwZXMge1xuICB0b19zY29yZV90b3RhbCA9IDEsXG4gIHRvX3Njb3JlX2RpZmYsXG4gIHRpbWUsXG4gIHdpdGhvdXRfb3ZlcnRpbWUsXG4gIHRvX2ZpcnN0X2dvYWwsXG4gIHRvX2ZpcnN0X2dvYWxfYW5kX2J1bGxpdHRzLFxuICBidWxsaXR0cyxcbiAgcGVuYWx0aWVzLFxuICB0aW1lX2FuZF9wZW5hbHRpZXMsXG4gIHRpbWVfYW5kX2ZpcnN0X2dvYWxcbn1cblxuZXhwb3J0IGVudW0gVGltZXJUeXBlcyB7XG4gIGJhY2t3YXJkID0gMSxcbiAgZm9yd2FyZCxcbn1cblxuZXhwb3J0IGVudW0gU3Vic3RpdHV0ZU1hbmFnZVR5cGVzIHtcbiAgZ29hbGtlZXBlcl9vbmx5ID0gMSxcbiAgYWRkaXRpb25hbF9zY3JlZW4sXG4gIG9uZV9zY3JlZW4sXG4gIHNwbGl0X3NjcmVlbixcbn1cblxuQE1vZGVsSW5zdGFuY2Uoe1xuICBtYXBwaW5nRmllbGRzOiB7XG4gICAgaWQ6ICdpZCcsXG4gICAgZ2VuZGVyOiAnZ2VuZGVyJyxcbiAgICBiaXJ0aF95ZWFyX2Zyb206ICdiaXJ0aFllYXJGcm9tJyxcbiAgICBiaXJ0aF95ZWFyX3RvOiAnYmlydGhZZWFyVG8nLFxuICAgIG1heF90ZWFtX3BsYXllcnM6ICdtYXhUZWFtUGxheWVycycsXG4gICAgbWF4X2dhbWVfcGxheWVyczogJ21heEdhbWVQbGF5ZXJzJyxcbiAgICB0eXBlOiAndHlwZScsXG4gICAgdG91cnNfY291bnQ6ICd0b3Vyc0NvdW50JyxcbiAgICBwZXJpb2RzX2NvdW50OiAncGVyaW9kc0NvdW50JyxcbiAgICBwZXJpb2RfdGltZTogJ3BlcmlvZFRpbWUnLFxuICAgIG92ZXJ0aW1lX3R5cGU6ICdvdmVydGltZVR5cGUnLFxuICAgIG92ZXJ0aW1lX3RpbWU6ICdvdmVydGltZVRpbWUnLFxuICAgIG92ZXJ0aW1lX3Njb3JlOiAnb3ZlcnRpbWVTY29yZScsXG4gICAgZ2FtZV90eXBlOiAnZ2FtZVR5cGUnLFxuICAgIHRpbWVvdXRfY291bnQ6ICd0aW1lb3V0Q291bnQnLFxuICAgIHRpbWVvdXRfdGltZTogJ3RpbWVvdXRUaW1lJyxcbiAgICBzdWJzdGl0dXRlX2NvdW50OiAnc3Vic3RpdHV0ZUNvdW50JyxcbiAgICBnYW1lX3VwX3RvX3Njb3JlOiAnZ2FtZVVwVG9TY29yZScsXG4gICAgdm9sbGV5YmFsbF9zY29yZV9pbl9zZXQ6ICd2b2xsZXliYWxsU2NvcmVJblNldCcsXG4gICAgdm9sbGV5YmFsbF9zY29yZV9pbl9sYXN0X3NldDogJ3ZvbGxleWJhbGxTY29yZUluTGFzdFNldCcsXG4gICAgbWFuYWdlX3RlYW1fYXBwbGljYXRpb246ICdtYW5hZ2VUZWFtQXBwbGljYXRpb24nLFxuICAgIHJlY3J1aXRtZW50X2lzX29wZW46ICdyZWNydWl0bWVudElzT3BlbicsXG4gICAgdHJhbnNmZXJfaXNfb3BlbjogJ3RyYW5zZmVySXNPcGVuJyxcbiAgICBiYXNrZXRiYWxsX3N0YXRpc3RpY190eXBlOiAnYmFza2V0YmFsbFN0YXRpc3RpY1R5cGUnLFxuICAgIHZvbGxleWJhbGxfc3RhdGlzdGljX3R5cGU6ICd2b2xsZXliYWxsU3RhdGlzdGljVHlwZScsXG4gICAgcnVnYnlfc3RhdGlzdGljX3R5cGU6ICdydWdieVN0YXRpc3RpY1R5cGUnLFxuICAgIHdhdGVycG9sb19zdGF0aXN0aWNfdHlwZTogJ3dhdGVycG9sb1N0YXRpc3RpY1R5cGUnLFxuICAgIHdyZXN0YmFsbF9zdGF0aXN0aWNfdHlwZTogJ3dyZXN0YmFsbFN0YXRpc3RpY1R5cGUnLFxuICAgIHNob3RfY2xvY2tfZW5hYmxlZDogJ3Nob3RDbG9ja0VuYWJsZWQnLFxuICAgIGdhbWVfdGltZV90eXBlOiAnZ2FtZVRpbWVUeXBlJyxcbiAgICB3aXRoX3Jlc3VsdF90YWJsZTogJ3dpdGhSZXN1bHRUYWJsZScsXG4gICAgZnJlZV9zdWJzdGl0dXRlX2VuYWJsZWQ6ICdmcmVlU3Vic3RpdHV0ZUVuYWJsZWQnLFxuICAgIHN1YnN0aXR1dGVfbWFuYWdlX2VuYWJsZWQ6ICdzdWJzdGl0dXRlTWFuYWdlRW5hYmxlZCcsXG4gICAgc3Vic3RpdHV0ZV9tYW5hZ2VfbW9kZTogJ3N1YnN0aXR1dGVNYW5hZ2VNb2RlJyxcbiAgICBib251c19wb2ludHNfZW5hYmxlZDogJ2JvbnVzUG9pbnRzRW5hYmxlZCcsXG4gICAgbWlub3JfcGVuYWx0eV90aW1lOiAnbWlub3JQZW5hbHR5VGltZScsXG4gICAgbWFqb3JfcGVuYWx0eV90aW1lOiAnbWFqb3JQZW5hbHR5VGltZScsXG4gICAgbWlzY29uZHVjdF9wZW5hbHR5X3RpbWU6ICdtaXNjb25kdWN0UGVuYWx0eVRpbWUnLFxuICAgIGdhbWVfbWlzY29uZHVjdF9wZW5hbHR5X3RpbWU6ICdnYW1lTWlzY29uZHVjdFBlbmFsdHlUaW1lJyxcbiAgICBtYXRjaF9wZW5hbHR5X3RpbWU6ICdtYXRjaFBlbmFsdHlUaW1lJyxcbiAgICB0aW1lcl90eXBlOiAndGltZXJUeXBlJyxcbiAgICBoaWRlX29uX2xlYWd1ZV9tYWluX3BhZ2U6ICdoaWRlT25MZWFndWVNYWluUGFnZScsXG4gICAgd3Jlc3RsZXJfc2NydW1zX2NvdW50OiAnd3Jlc3RsZXJTY3J1bXNDb3VudCcsXG4gICAgd3Jlc3RsZXJzX2NvdW50OiAnd3Jlc3RsZXJzQ291bnQnLFxuICB9LFxuICByZWxhdGlvbjoge1xuICAgIHR5cGU6IGVudW1GaWVsZChUb3VybmFtZW50VHlwZXMpLFxuICAgIGdlbmRlcjogZW51bUZpZWxkKFRvdXJuYW1lbnRHZW5kZXIpLFxuICAgIGJhc2tldGJhbGxTdGF0aXN0aWNUeXBlOiBlbnVtRmllbGQoQmFza2V0YmFsbFN0YXRpc3RpY1R5cGVzKSxcbiAgICB2b2xsZXliYWxsU3RhdGlzdGljVHlwZTogZW51bUZpZWxkKFZvbGxleWJhbGxTdGF0aXN0aWNUeXBlcyksXG4gICAgcnVnYnlTdGF0aXN0aWNUeXBlOiBlbnVtRmllbGQoUnVnYnlTdGF0aXN0aWNUeXBlcyksXG4gICAgd2F0ZXJwb2xvU3RhdGlzdGljVHlwZTogZW51bUZpZWxkKFdhdGVycG9sb1N0YXRpc3RpY1R5cGVzKSxcbiAgICB3cmVzdGJhbGxTdGF0aXN0aWNUeXBlOiBlbnVtRmllbGQoV3Jlc3RiYWxsU3RhdGlzdGljVHlwZXMpLFxuICAgIGdhbWVUaW1lVHlwZTogZW51bUZpZWxkKEdhbWVUaW1lVHlwZXMpLFxuICAgIG92ZXJ0aW1lVHlwZTogZW51bUZpZWxkKE92ZXJ0aW1lVHlwZXMpLFxuICAgIHRpbWVyVHlwZTogZW51bUZpZWxkKFRpbWVyVHlwZXMpLFxuICAgIHN1YnN0aXR1dGVNYW5hZ2VNb2RlOiBlbnVtRmllbGQoU3Vic3RpdHV0ZU1hbmFnZVR5cGVzKSxcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBUb3VybmFtZW50U2V0dGluZ3MgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBwcml2YXRlIF9zdWJzdGl0dXRlTWFuYWdlTW9kZTogU3Vic3RpdHV0ZU1hbmFnZVR5cGVzO1xuXG4gIGlkOiBudW1iZXI7XG4gIGdlbmRlcjogVG91cm5hbWVudEdlbmRlcjtcbiAgYmlydGhZZWFyRnJvbTogbnVtYmVyO1xuICBiaXJ0aFllYXJUbzogbnVtYmVyO1xuICBtYXhUZWFtUGxheWVyczogbnVtYmVyO1xuICBtYXhHYW1lUGxheWVyczogbnVtYmVyO1xuICB0eXBlOiBUb3VybmFtZW50VHlwZXM7XG4gIHRvdXJzQ291bnQ6IG51bWJlcjtcbiAgcGVyaW9kc0NvdW50OiBudW1iZXI7XG4gIHBlcmlvZFRpbWU6IG51bWJlcjtcbiAgb3ZlcnRpbWVUeXBlOiBPdmVydGltZVR5cGVzO1xuICBvdmVydGltZVRpbWU6IG51bWJlcjtcbiAgb3ZlcnRpbWVTY29yZTogbnVtYmVyO1xuICBnYW1lVHlwZTogc3RyaW5nO1xuICB0aW1lb3V0Q291bnQ6IG51bWJlcjtcbiAgdGltZW91dFRpbWU6IG51bWJlcjtcbiAgc3Vic3RpdHV0ZUNvdW50OiBudW1iZXI7XG4gIGdhbWVVcFRvU2NvcmU6IG51bWJlcjtcbiAgdm9sbGV5YmFsbFNjb3JlSW5TZXQ6IG51bWJlcjtcbiAgdm9sbGV5YmFsbFNjb3JlSW5MYXN0U2V0OiBudW1iZXI7XG4gIG1hbmFnZVRlYW1BcHBsaWNhdGlvbjogYm9vbGVhbjtcbiAgcmVjcnVpdG1lbnRJc09wZW46IGJvb2xlYW47XG4gIHRyYW5zZmVySXNPcGVuOiBib29sZWFuO1xuICBiYXNrZXRiYWxsU3RhdGlzdGljVHlwZTogQmFza2V0YmFsbFN0YXRpc3RpY1R5cGVzO1xuICB2b2xsZXliYWxsU3RhdGlzdGljVHlwZTogVm9sbGV5YmFsbFN0YXRpc3RpY1R5cGVzO1xuICBydWdieVN0YXRpc3RpY1R5cGU6IFJ1Z2J5U3RhdGlzdGljVHlwZXM7XG4gIHdhdGVycG9sb1N0YXRpc3RpY1R5cGU6IFdhdGVycG9sb1N0YXRpc3RpY1R5cGVzO1xuICB3cmVzdGJhbGxTdGF0aXN0aWNUeXBlOiBXcmVzdGJhbGxTdGF0aXN0aWNUeXBlcztcbiAgc2hvdENsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgZ2FtZVRpbWVUeXBlOiBHYW1lVGltZVR5cGVzO1xuICB3aXRoUmVzdWx0VGFibGU6IGJvb2xlYW47XG4gIGZyZWVTdWJzdGl0dXRlRW5hYmxlZDogYm9vbGVhbjtcbiAgYm9udXNQb2ludHNFbmFibGVkOiBib29sZWFuO1xuICBzdWJzdGl0dXRlTWFuYWdlRW5hYmxlZDogYm9vbGVhbjtcbiAgbWlub3JQZW5hbHR5VGltZTogbnVtYmVyO1xuICBtYWpvclBlbmFsdHlUaW1lOiBudW1iZXI7XG4gIG1pc2NvbmR1Y3RQZW5hbHR5VGltZTogbnVtYmVyO1xuICBnYW1lTWlzY29uZHVjdFBlbmFsdHlUaW1lOiBudW1iZXI7XG4gIG1hdGNoUGVuYWx0eVRpbWU6IG51bWJlcjtcbiAgdGltZXJUeXBlOiBUaW1lclR5cGVzO1xuICBoaWRlT25MZWFndWVNYWluUGFnZTogYm9vbGVhbjtcbiAgd3Jlc3RsZXJTY3J1bXNDb3VudDogbnVtYmVyO1xuICB3cmVzdGxlcnNDb3VudDogbnVtYmVyO1xuXG4gIGdldCBzdWJzdGl0dXRlTWFuYWdlTW9kZSgpOiBTdWJzdGl0dXRlTWFuYWdlVHlwZXMge1xuICAgIGlmICh0aGlzLl9zdWJzdGl0dXRlTWFuYWdlTW9kZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3N1YnN0aXR1dGVNYW5hZ2VNb2RlO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdWJzdGl0dXRlTWFuYWdlRW5hYmxlZCkge1xuICAgICAgcmV0dXJuIFN1YnN0aXR1dGVNYW5hZ2VUeXBlcy5zcGxpdF9zY3JlZW47XG4gICAgfVxuICAgIHJldHVybiBTdWJzdGl0dXRlTWFuYWdlVHlwZXMuZ29hbGtlZXBlcl9vbmx5O1xuICB9XG5cbiAgc2V0IHN1YnN0aXR1dGVNYW5hZ2VNb2RlKHZhbHVlOiBTdWJzdGl0dXRlTWFuYWdlVHlwZXMpIHtcbiAgICB0aGlzLl9zdWJzdGl0dXRlTWFuYWdlTW9kZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGdlbmRlclRpdGxlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeWVhckRpZmYgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSB0aGlzLmJpcnRoWWVhckZyb207XG4gICAgaWYgKHRoaXMuZ2VuZGVyID09PSBUb3VybmFtZW50R2VuZGVyLm1hbGUpIHtcbiAgICAgIGlmICh5ZWFyRGlmZiA8IDE1KSB7XG4gICAgICAgIHJldHVybiAn0JzQsNC70YzRh9C40LrQuCc7XG4gICAgICB9XG4gICAgICBpZiAoeWVhckRpZmYgPCAyMSkge1xuICAgICAgICByZXR1cm4gJ9Cu0L3QvtGI0LgnO1xuICAgICAgfVxuICAgICAgcmV0dXJuICfQnNGD0LbRh9C40L3Riyc7XG4gICAgfVxuICAgIGlmICh0aGlzLmdlbmRlciA9PT0gVG91cm5hbWVudEdlbmRlci5mZW1hbGUpIHtcbiAgICAgIGlmICh5ZWFyRGlmZiA8IDE1KSB7XG4gICAgICAgIHJldHVybiAn0JTQtdCy0L7Rh9C60LgnO1xuICAgICAgfVxuICAgICAgaWYgKHllYXJEaWZmIDwgMjEpIHtcbiAgICAgICAgcmV0dXJuICfQlNC10LLRg9GI0LrQuCc7XG4gICAgICB9XG4gICAgICByZXR1cm4gJ9CW0LXQvdGJ0LjQvdGLJztcbiAgICB9XG4gICAgcmV0dXJuICfQodC80LXRiNCw0L3QvdGL0LknO1xuICB9XG5cbiAgQFRvRnJvbnRIb29rXG4gIHN0YXRpYyB0b0Zyb250KGRhdGE6IGFueSk6IGFueSB7fVxuXG4gIEBUb0JhY2tIb29rXG4gIHN0YXRpYyB0b0JhY2soZGF0YTogYW55KTogYW55IHt9XG59XG5cbkBNb2RlbEluc3RhbmNlKHtcbiAgbWFwcGluZ0ZpZWxkczoge1xuICAgIGlkOiAnaWQnLFxuICAgIHRlYW1faWQ6ICd0ZWFtSWQnLFxuICAgIHRvdXJuYW1lbnRfaWQ6ICd0b3VybmFtZW50SWQnLFxuICAgIG5hbWU6ICduYW1lJyxcbiAgICBsb2dvOiAnbG9nbycsXG4gICAgdGVhbTogJ3RlYW0nLFxuICAgIHBvaW50czogJ3BvaW50cycsXG4gIH0sXG4gIHJlbGF0aW9uOiB7XG4gICAgbG9nbzogRmlsZSxcbiAgICB0ZWFtOiBUZWFtLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFRvdXJuYW1lbnRUZWFtV2lubmVyIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgaWQ6IG51bWJlcjtcbiAgdGVhbUlkOiBudW1iZXI7XG4gIHRvdXJuYW1lbnRJZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIGxvZ286IEZpbGU7XG4gIHRlYW06IFRlYW07XG4gIHBvaW50czogbnVtYmVyO1xuXG4gIEBUb0Zyb250SG9va1xuICBzdGF0aWMgdG9Gcm9udChkYXRhOiBhbnkpOiBhbnkge31cblxuICBAVG9CYWNrSG9va1xuICBzdGF0aWMgdG9CYWNrKGRhdGE6IGFueSk6IGFueSB7fVxufVxuXG5ATW9kZWxJbnN0YW5jZSh7XG4gIG1hcHBpbmdGaWVsZHM6IHtcbiAgICBpZDogJ2lkJyxcbiAgICBuYW1lOiAnbmFtZScsXG4gICAgYWxpYXM6ICdhbGlhcycsXG4gICAgbG9nbzogJ2xvZ28nLFxuICAgIGNvdmVyOiAnY292ZXInLFxuICAgIGNvdmVyX21vYmlsZTogJ2NvdmVyTW9iaWxlJyxcbiAgICBwcmV2aWV3X2ltYWdlOiAncHJldmlld0ltYWdlJyxcbiAgICBjaXR5OiAnY2l0eScsXG4gICAgc3BvcnQ6ICdzcG9ydCcsXG4gICAgbG9jYXRpb246ICdsb2NhdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdkZXNjcmlwdGlvbicsXG4gICAgZGF0ZTogJ2RhdGUnLFxuICAgIHByaWNlOiAncHJpY2UnLFxuICAgIHJlZ3VsYXRpb25fZmlsZXM6ICdyZWd1bGF0aW9uRmlsZXMnLFxuICAgIHNldHRpbmdzOiAnc2V0dGluZ3MnLFxuICAgIGxlYWd1ZTogJ2xlYWd1ZScsXG4gICAgdGVhbXNfY291bnQ6ICd0ZWFtc0NvdW50JyxcbiAgICBjbG9zZXN0X2dhbWVfZGF0ZXRpbWU6ICdjbG9zZXN0R2FtZURhdGV0aW1lJyxcbiAgICBzdGF0dXM6ICdzdGF0dXMnLFxuICAgIHRlYW1fd2lubmVyOiAndGVhbVdpbm5lcicsXG4gICAgdGVhbV9zZWNvbmQ6ICd0ZWFtU2Vjb25kJyxcbiAgICB0ZWFtX3RoaXJkOiAndGVhbVRoaXJkJyxcbiAgICBzZWFzb246ICdzZWFzb24nLFxuICAgIHNlYXNvbl9pZDogJ3NlYXNvbklkJyxcbiAgICBnYW1lX3ByaWNlOiAnZ2FtZVByaWNlJyxcbiAgICBzZWFzb25fdG91cm5hbWVudF9pZDogJ3NlYXNvblRvdXJuYW1lbnRJZCcsXG4gIH0sXG4gIHJlbGF0aW9uOiB7XG4gICAgbG9nbzogRmlsZSxcbiAgICBjb3ZlcjogRmlsZSxcbiAgICBjb3Zlck1vYmlsZTogRmlsZSxcbiAgICBwcmV2aWV3SW1hZ2U6IEZpbGUsXG4gICAgY2l0eTogQ2l0eSxcbiAgICBzcG9ydDogU3BvcnQsXG4gICAgcmVndWxhdGlvbkZpbGU6IEZpbGUsXG4gICAgc2V0dGluZ3M6IFRvdXJuYW1lbnRTZXR0aW5ncyxcbiAgICBkYXRlOiBEYXRlVGltZUZpZWxkLFxuICAgIGxlYWd1ZTogTGVhZ3VlLFxuICAgIHN0YXR1czogZW51bUZpZWxkKFRvdXJuYW1lbnRTdGF0dXNlcyksXG4gICAgdGVhbVdpbm5lcjogVG91cm5hbWVudFRlYW1XaW5uZXIsXG4gICAgdGVhbVNlY29uZDogVG91cm5hbWVudFRlYW1XaW5uZXIsXG4gICAgdGVhbVRoaXJkOiBUb3VybmFtZW50VGVhbVdpbm5lcixcbiAgICBzZWFzb246IFRvdXJuYW1lbnRTZWFzb24sXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgVG91cm5hbWVudCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIGlkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgYWxpYXM6IHN0cmluZztcbiAgbG9nbzogRmlsZTtcbiAgY292ZXI6IEZpbGU7XG4gIGNvdmVyTW9iaWxlOiBGaWxlO1xuICBwcmV2aWV3SW1hZ2U6IEZpbGU7XG4gIGNpdHk6IENpdHk7XG4gIHNwb3J0OiBTcG9ydDtcbiAgbG9jYXRpb246IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgZGF0ZTogRGF0ZTtcbiAgcHJpY2U6IG51bWJlcjtcbiAgcmVndWxhdGlvbkZpbGVzOiBGaWxlW107XG4gIHNldHRpbmdzOiBUb3VybmFtZW50U2V0dGluZ3M7XG4gIGxlYWd1ZTogTGVhZ3VlO1xuICB0ZWFtc0NvdW50OiBudW1iZXI7XG4gIGNsb3Nlc3RHYW1lRGF0ZXRpbWU6IHN0cmluZztcbiAgc3RhdHVzOiBUb3VybmFtZW50U3RhdHVzZXM7XG4gIHRlYW1XaW5uZXI6IFRvdXJuYW1lbnRUZWFtV2lubmVyO1xuICB0ZWFtU2Vjb25kOiBUb3VybmFtZW50VGVhbVdpbm5lcjtcbiAgdGVhbVRoaXJkOiBUb3VybmFtZW50VGVhbVdpbm5lcjtcbiAgc2Vhc29uOiBUb3VybmFtZW50U2Vhc29uO1xuICBzZWFzb25JZDogbnVtYmVyO1xuICBnYW1lUHJpY2U6IG51bWJlcjtcbiAgc2Vhc29uVG91cm5hbWVudElkOiBudW1iZXI7XG5cbiAgZ2V0RW1wdHlMb2dvQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbGFzc0xpc3QgPSBbJ2VtcHR5LWxvZ28nXTtcbiAgICBpZiAodGhpcy5zcG9ydC5pc0Jhc2tldGJhbGwoKSkge1xuICAgICAgY2xhc3NMaXN0LnB1c2goJ2VtcHR5LWxvZ28tYmFza2V0YmFsbCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zcG9ydC5pc1ZvbGxleWJhbGwoKSkge1xuICAgICAgY2xhc3NMaXN0LnB1c2goJ2VtcHR5LWxvZ28tdm9sbGV5YmFsbCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zcG9ydC5pc0hvY2tleSgpKSB7XG4gICAgICBjbGFzc0xpc3QucHVzaCgnZW1wdHktbG9nby1ob2NrZXknKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3BvcnQuaXNGb290YmFsbCgpKSB7XG4gICAgICBjbGFzc0xpc3QucHVzaCgnZW1wdHktbG9nby1mb290YmFsbCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zcG9ydC5pc0hhbmRiYWxsKCkpIHtcbiAgICAgIGNsYXNzTGlzdC5wdXNoKCdlbXB0eS1sb2dvLWhhbmRiYWxsJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNwb3J0LmlzUnVnYnkoKSkge1xuICAgICAgY2xhc3NMaXN0LnB1c2goJ2VtcHR5LWxvZ28tcnVnYnknKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3BvcnQuaXNXYXRlcnBvbG8oKSkge1xuICAgICAgY2xhc3NMaXN0LnB1c2goJ2VtcHR5LWxvZ28td2F0ZXJwb2xvJyk7XG4gICAgfVxuICAgIHJldHVybiBjbGFzc0xpc3Quam9pbignICcpO1xuICB9XG5cbiAgQFRvRnJvbnRIb29rXG4gIHN0YXRpYyB0b0Zyb250KGRhdGE6IGFueSk6IGFueSB7fVxuXG4gIEBUb0JhY2tIb29rXG4gIHN0YXRpYyB0b0JhY2soZGF0YTogYW55KTogYW55IHt9XG59XG4iXX0=
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91cm5hbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL21vZGVscy90b3VybmFtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsa0NBQWUsQ0FBQTtJQUNmLDhDQUEyQixDQUFBO0lBQzNCLGdDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxrQkFJWDtBQUpELFdBQVksa0JBQWtCO0lBQzVCLDJEQUFJLENBQUE7SUFDSix5RUFBVyxDQUFBO0lBQ1gsK0RBQU0sQ0FBQTtBQUNSLENBQUMsRUFKVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSTdCO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBSVg7QUFKRCxXQUFZLGdCQUFnQjtJQUMxQix1REFBTyxDQUFBO0lBQ1AsMkRBQU0sQ0FBQTtJQUNOLHFEQUFHLENBQUE7QUFDTCxDQUFDLEVBSlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUkzQjtBQUVELE1BQU0sQ0FBTixJQUFZLHdCQUlY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QzFCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLE9BQU87WUFDZCxnQkFBZ0IsRUFBRSxpQkFBaUI7WUFDbkMsUUFBUSxFQUFFLFVBQVU7WUFDcEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsV0FBVyxFQUFFLFlBQVk7WUFDekIscUJBQXFCLEVBQUUscUJBQXFCO1lBQzVDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFdBQVcsRUFBRSxZQUFZO1lBQ3pCLFdBQVcsRUFBRSxZQUFZO1lBQ3pCLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLG9CQUFvQixFQUFFLG9CQUFvQjtZQUMxQyxJQUFJLEVBQUUsTUFBTTtTQUNiO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLEtBQUs7WUFDWixjQUFjLEVBQUUsSUFBSTtZQUNwQixRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLElBQUksRUFBRSxhQUFhO1lBQ25CLE1BQU0sRUFBRSxNQUFNO1lBQ2QsTUFBTSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztZQUNyQyxVQUFVLEVBQUUsb0JBQW9CO1lBQ2hDLFVBQVUsRUFBRSxvQkFBb0I7WUFDaEMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixNQUFNLEVBQUUsZ0JBQWdCO1NBQ3pCO0tBQ0YsQ0FBQztHQUNXLFVBQVUsQ0E0RHRCO1NBNURZLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwsIGVudW1GaWVsZCwgTW9kZWxJbnN0YW5jZSwgRGF0ZVRpbWVGaWVsZCwgVG9CYWNrSG9vaywgVG9Gcm9udEhvb2sgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgQ2l0eSB9IGZyb20gJy4vY2l0eSc7XG5pbXBvcnQgeyBGaWxlIH0gZnJvbSAnLi9maWxlJztcbmltcG9ydCB7IExlYWd1ZSB9IGZyb20gJy4vbGVhZ3VlJztcbmltcG9ydCB7IFNwb3J0IH0gZnJvbSAnLi9zcG9ydCc7XG5pbXBvcnQgeyBUZWFtIH0gZnJvbSAnLi90ZWFtJztcbmltcG9ydCB7IFRvdXJuYW1lbnRTZWFzb24gfSBmcm9tICcuL3RvdXJuYW1lbnQtc2Vhc29uJztcblxuZXhwb3J0IGVudW0gVG91cm5hbWVudFR5cGVzIHtcbiAgZ3JvdXAgPSAnZ3JvdXAnLFxuICBlbGltaW5hdGlvbiA9ICdlbGltaW5hdGlvbicsXG4gIGZpYmEgPSAnZmliYSdcbn1cblxuZXhwb3J0IGVudW0gVG91cm5hbWVudFN0YXR1c2VzIHtcbiAgb3BlbixcbiAgaW5fcHJvZ3Jlc3MsXG4gIGNsb3NlZCxcbn1cblxuZXhwb3J0IGVudW0gVG91cm5hbWVudEdlbmRlciB7XG4gIG1hbGU9IDEsXG4gIGZlbWFsZSxcbiAgYWxsXG59XG5cbmV4cG9ydCBlbnVtIEJhc2tldGJhbGxTdGF0aXN0aWNUeXBlcyB7XG4gIHN0YW5kYXJkID0gMSxcbiAgbGlnaHQsXG4gIGFkdmFuY2VkXG59XG5cbmV4cG9ydCBlbnVtIFZvbGxleWJhbGxTdGF0aXN0aWNUeXBlcyB7XG4gIHN0YW5kYXJkID0gMSxcbiAgbGlnaHQsXG4gIGFkdmFuY2VkXG59XG5cbmV4cG9ydCBlbnVtIFJ1Z2J5U3RhdGlzdGljVHlwZXMge1xuICBsaWdodCA9IDEsXG4gIHN0YW5kYXJkLFxufVxuXG5leHBvcnQgZW51bSBXYXRlcnBvbG9TdGF0aXN0aWNUeXBlcyB7XG4gIHN0YW5kYXJkID0gMSxcbiAgbGlnaHQsXG59XG5cbmV4cG9ydCBlbnVtIFdyZXN0YmFsbFN0YXRpc3RpY1R5cGVzIHtcbiAgc3RhbmRhcmQgPSAxLFxufVxuXG5leHBvcnQgZW51bSBHYW1lVGltZVR5cGVzIHtcbiAgY2xlYW4gPSAxLFxuICBkaXJ0eSxcbn1cblxuZXhwb3J0IGVudW0gT3ZlcnRpbWVUeXBlcyB7XG4gIHRvX3Njb3JlX3RvdGFsID0gMSxcbiAgdG9fc2NvcmVfZGlmZixcbiAgdGltZSxcbiAgd2l0aG91dF9vdmVydGltZSxcbiAgdG9fZmlyc3RfZ29hbCxcbiAgdG9fZmlyc3RfZ29hbF9hbmRfYnVsbGl0dHMsXG4gIGJ1bGxpdHRzLFxuICBwZW5hbHRpZXMsXG4gIHRpbWVfYW5kX3BlbmFsdGllcyxcbiAgdGltZV9hbmRfZmlyc3RfZ29hbFxufVxuXG5leHBvcnQgZW51bSBUaW1lclR5cGVzIHtcbiAgYmFja3dhcmQgPSAxLFxuICBmb3J3YXJkLFxufVxuXG5leHBvcnQgZW51bSBTdWJzdGl0dXRlTWFuYWdlVHlwZXMge1xuICBnb2Fsa2VlcGVyX29ubHkgPSAxLFxuICBhZGRpdGlvbmFsX3NjcmVlbixcbiAgb25lX3NjcmVlbixcbiAgc3BsaXRfc2NyZWVuLFxufVxuXG5ATW9kZWxJbnN0YW5jZSh7XG4gIG1hcHBpbmdGaWVsZHM6IHtcbiAgICBpZDogJ2lkJyxcbiAgICBnZW5kZXI6ICdnZW5kZXInLFxuICAgIGJpcnRoX3llYXJfZnJvbTogJ2JpcnRoWWVhckZyb20nLFxuICAgIGJpcnRoX3llYXJfdG86ICdiaXJ0aFllYXJUbycsXG4gICAgbWF4X3RlYW1fcGxheWVyczogJ21heFRlYW1QbGF5ZXJzJyxcbiAgICBtYXhfZ2FtZV9wbGF5ZXJzOiAnbWF4R2FtZVBsYXllcnMnLFxuICAgIHR5cGU6ICd0eXBlJyxcbiAgICB0b3Vyc19jb3VudDogJ3RvdXJzQ291bnQnLFxuICAgIHBlcmlvZHNfY291bnQ6ICdwZXJpb2RzQ291bnQnLFxuICAgIHBlcmlvZF90aW1lOiAncGVyaW9kVGltZScsXG4gICAgb3ZlcnRpbWVfdHlwZTogJ292ZXJ0aW1lVHlwZScsXG4gICAgb3ZlcnRpbWVfdGltZTogJ292ZXJ0aW1lVGltZScsXG4gICAgb3ZlcnRpbWVfc2NvcmU6ICdvdmVydGltZVNjb3JlJyxcbiAgICBnYW1lX3R5cGU6ICdnYW1lVHlwZScsXG4gICAgdGltZW91dF9jb3VudDogJ3RpbWVvdXRDb3VudCcsXG4gICAgdGltZW91dF90aW1lOiAndGltZW91dFRpbWUnLFxuICAgIHN1YnN0aXR1dGVfY291bnQ6ICdzdWJzdGl0dXRlQ291bnQnLFxuICAgIGdhbWVfdXBfdG9fc2NvcmU6ICdnYW1lVXBUb1Njb3JlJyxcbiAgICB2b2xsZXliYWxsX3Njb3JlX2luX3NldDogJ3ZvbGxleWJhbGxTY29yZUluU2V0JyxcbiAgICB2b2xsZXliYWxsX3Njb3JlX2luX2xhc3Rfc2V0OiAndm9sbGV5YmFsbFNjb3JlSW5MYXN0U2V0JyxcbiAgICBtYW5hZ2VfdGVhbV9hcHBsaWNhdGlvbjogJ21hbmFnZVRlYW1BcHBsaWNhdGlvbicsXG4gICAgcmVjcnVpdG1lbnRfaXNfb3BlbjogJ3JlY3J1aXRtZW50SXNPcGVuJyxcbiAgICB0cmFuc2Zlcl9pc19vcGVuOiAndHJhbnNmZXJJc09wZW4nLFxuICAgIGJhc2tldGJhbGxfc3RhdGlzdGljX3R5cGU6ICdiYXNrZXRiYWxsU3RhdGlzdGljVHlwZScsXG4gICAgdm9sbGV5YmFsbF9zdGF0aXN0aWNfdHlwZTogJ3ZvbGxleWJhbGxTdGF0aXN0aWNUeXBlJyxcbiAgICBydWdieV9zdGF0aXN0aWNfdHlwZTogJ3J1Z2J5U3RhdGlzdGljVHlwZScsXG4gICAgd2F0ZXJwb2xvX3N0YXRpc3RpY190eXBlOiAnd2F0ZXJwb2xvU3RhdGlzdGljVHlwZScsXG4gICAgd3Jlc3RiYWxsX3N0YXRpc3RpY190eXBlOiAnd3Jlc3RiYWxsU3RhdGlzdGljVHlwZScsXG4gICAgc2hvdF9jbG9ja19lbmFibGVkOiAnc2hvdENsb2NrRW5hYmxlZCcsXG4gICAgZ2FtZV90aW1lX3R5cGU6ICdnYW1lVGltZVR5cGUnLFxuICAgIHdpdGhfcmVzdWx0X3RhYmxlOiAnd2l0aFJlc3VsdFRhYmxlJyxcbiAgICBmcmVlX3N1YnN0aXR1dGVfZW5hYmxlZDogJ2ZyZWVTdWJzdGl0dXRlRW5hYmxlZCcsXG4gICAgc3Vic3RpdHV0ZV9tYW5hZ2VfZW5hYmxlZDogJ3N1YnN0aXR1dGVNYW5hZ2VFbmFibGVkJyxcbiAgICBzdWJzdGl0dXRlX21hbmFnZV9tb2RlOiAnc3Vic3RpdHV0ZU1hbmFnZU1vZGUnLFxuICAgIGJvbnVzX3BvaW50c19lbmFibGVkOiAnYm9udXNQb2ludHNFbmFibGVkJyxcbiAgICBtaW5vcl9wZW5hbHR5X3RpbWU6ICdtaW5vclBlbmFsdHlUaW1lJyxcbiAgICBtYWpvcl9wZW5hbHR5X3RpbWU6ICdtYWpvclBlbmFsdHlUaW1lJyxcbiAgICBtaXNjb25kdWN0X3BlbmFsdHlfdGltZTogJ21pc2NvbmR1Y3RQZW5hbHR5VGltZScsXG4gICAgZ2FtZV9taXNjb25kdWN0X3BlbmFsdHlfdGltZTogJ2dhbWVNaXNjb25kdWN0UGVuYWx0eVRpbWUnLFxuICAgIG1hdGNoX3BlbmFsdHlfdGltZTogJ21hdGNoUGVuYWx0eVRpbWUnLFxuICAgIHRpbWVyX3R5cGU6ICd0aW1lclR5cGUnLFxuICAgIGhpZGVfb25fbGVhZ3VlX21haW5fcGFnZTogJ2hpZGVPbkxlYWd1ZU1haW5QYWdlJyxcbiAgICB3cmVzdGxlcl9zY3J1bXNfY291bnQ6ICd3cmVzdGxlclNjcnVtc0NvdW50JyxcbiAgICB3cmVzdGxlcnNfY291bnQ6ICd3cmVzdGxlcnNDb3VudCcsXG4gIH0sXG4gIHJlbGF0aW9uOiB7XG4gICAgdHlwZTogZW51bUZpZWxkKFRvdXJuYW1lbnRUeXBlcyksXG4gICAgZ2VuZGVyOiBlbnVtRmllbGQoVG91cm5hbWVudEdlbmRlciksXG4gICAgYmFza2V0YmFsbFN0YXRpc3RpY1R5cGU6IGVudW1GaWVsZChCYXNrZXRiYWxsU3RhdGlzdGljVHlwZXMpLFxuICAgIHZvbGxleWJhbGxTdGF0aXN0aWNUeXBlOiBlbnVtRmllbGQoVm9sbGV5YmFsbFN0YXRpc3RpY1R5cGVzKSxcbiAgICBydWdieVN0YXRpc3RpY1R5cGU6IGVudW1GaWVsZChSdWdieVN0YXRpc3RpY1R5cGVzKSxcbiAgICB3YXRlcnBvbG9TdGF0aXN0aWNUeXBlOiBlbnVtRmllbGQoV2F0ZXJwb2xvU3RhdGlzdGljVHlwZXMpLFxuICAgIHdyZXN0YmFsbFN0YXRpc3RpY1R5cGU6IGVudW1GaWVsZChXcmVzdGJhbGxTdGF0aXN0aWNUeXBlcyksXG4gICAgZ2FtZVRpbWVUeXBlOiBlbnVtRmllbGQoR2FtZVRpbWVUeXBlcyksXG4gICAgb3ZlcnRpbWVUeXBlOiBlbnVtRmllbGQoT3ZlcnRpbWVUeXBlcyksXG4gICAgdGltZXJUeXBlOiBlbnVtRmllbGQoVGltZXJUeXBlcyksXG4gICAgc3Vic3RpdHV0ZU1hbmFnZU1vZGU6IGVudW1GaWVsZChTdWJzdGl0dXRlTWFuYWdlVHlwZXMpLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFRvdXJuYW1lbnRTZXR0aW5ncyBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIHByaXZhdGUgX3N1YnN0aXR1dGVNYW5hZ2VNb2RlOiBTdWJzdGl0dXRlTWFuYWdlVHlwZXM7XG5cbiAgaWQ6IG51bWJlcjtcbiAgZ2VuZGVyOiBUb3VybmFtZW50R2VuZGVyO1xuICBiaXJ0aFllYXJGcm9tOiBudW1iZXI7XG4gIGJpcnRoWWVhclRvOiBudW1iZXI7XG4gIG1heFRlYW1QbGF5ZXJzOiBudW1iZXI7XG4gIG1heEdhbWVQbGF5ZXJzOiBudW1iZXI7XG4gIHR5cGU6IFRvdXJuYW1lbnRUeXBlcztcbiAgdG91cnNDb3VudDogbnVtYmVyO1xuICBwZXJpb2RzQ291bnQ6IG51bWJlcjtcbiAgcGVyaW9kVGltZTogbnVtYmVyO1xuICBvdmVydGltZVR5cGU6IE92ZXJ0aW1lVHlwZXM7XG4gIG92ZXJ0aW1lVGltZTogbnVtYmVyO1xuICBvdmVydGltZVNjb3JlOiBudW1iZXI7XG4gIGdhbWVUeXBlOiBzdHJpbmc7XG4gIHRpbWVvdXRDb3VudDogbnVtYmVyO1xuICB0aW1lb3V0VGltZTogbnVtYmVyO1xuICBzdWJzdGl0dXRlQ291bnQ6IG51bWJlcjtcbiAgZ2FtZVVwVG9TY29yZTogbnVtYmVyO1xuICB2b2xsZXliYWxsU2NvcmVJblNldDogbnVtYmVyO1xuICB2b2xsZXliYWxsU2NvcmVJbkxhc3RTZXQ6IG51bWJlcjtcbiAgbWFuYWdlVGVhbUFwcGxpY2F0aW9uOiBib29sZWFuO1xuICByZWNydWl0bWVudElzT3BlbjogYm9vbGVhbjtcbiAgdHJhbnNmZXJJc09wZW46IGJvb2xlYW47XG4gIGJhc2tldGJhbGxTdGF0aXN0aWNUeXBlOiBCYXNrZXRiYWxsU3RhdGlzdGljVHlwZXM7XG4gIHZvbGxleWJhbGxTdGF0aXN0aWNUeXBlOiBWb2xsZXliYWxsU3RhdGlzdGljVHlwZXM7XG4gIHJ1Z2J5U3RhdGlzdGljVHlwZTogUnVnYnlTdGF0aXN0aWNUeXBlcztcbiAgd2F0ZXJwb2xvU3RhdGlzdGljVHlwZTogV2F0ZXJwb2xvU3RhdGlzdGljVHlwZXM7XG4gIHdyZXN0YmFsbFN0YXRpc3RpY1R5cGU6IFdyZXN0YmFsbFN0YXRpc3RpY1R5cGVzO1xuICBzaG90Q2xvY2tFbmFibGVkOiBib29sZWFuO1xuICBnYW1lVGltZVR5cGU6IEdhbWVUaW1lVHlwZXM7XG4gIHdpdGhSZXN1bHRUYWJsZTogYm9vbGVhbjtcbiAgZnJlZVN1YnN0aXR1dGVFbmFibGVkOiBib29sZWFuO1xuICBib251c1BvaW50c0VuYWJsZWQ6IGJvb2xlYW47XG4gIHN1YnN0aXR1dGVNYW5hZ2VFbmFibGVkOiBib29sZWFuO1xuICBtaW5vclBlbmFsdHlUaW1lOiBudW1iZXI7XG4gIG1ham9yUGVuYWx0eVRpbWU6IG51bWJlcjtcbiAgbWlzY29uZHVjdFBlbmFsdHlUaW1lOiBudW1iZXI7XG4gIGdhbWVNaXNjb25kdWN0UGVuYWx0eVRpbWU6IG51bWJlcjtcbiAgbWF0Y2hQZW5hbHR5VGltZTogbnVtYmVyO1xuICB0aW1lclR5cGU6IFRpbWVyVHlwZXM7XG4gIGhpZGVPbkxlYWd1ZU1haW5QYWdlOiBib29sZWFuO1xuICB3cmVzdGxlclNjcnVtc0NvdW50OiBudW1iZXI7XG4gIHdyZXN0bGVyc0NvdW50OiBudW1iZXI7XG5cbiAgZ2V0IHN1YnN0aXR1dGVNYW5hZ2VNb2RlKCk6IFN1YnN0aXR1dGVNYW5hZ2VUeXBlcyB7XG4gICAgaWYgKHRoaXMuX3N1YnN0aXR1dGVNYW5hZ2VNb2RlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3Vic3RpdHV0ZU1hbmFnZU1vZGU7XG4gICAgfVxuICAgIGlmICh0aGlzLnN1YnN0aXR1dGVNYW5hZ2VFbmFibGVkKSB7XG4gICAgICByZXR1cm4gU3Vic3RpdHV0ZU1hbmFnZVR5cGVzLnNwbGl0X3NjcmVlbjtcbiAgICB9XG4gICAgcmV0dXJuIFN1YnN0aXR1dGVNYW5hZ2VUeXBlcy5nb2Fsa2VlcGVyX29ubHk7XG4gIH1cblxuICBzZXQgc3Vic3RpdHV0ZU1hbmFnZU1vZGUodmFsdWU6IFN1YnN0aXR1dGVNYW5hZ2VUeXBlcykge1xuICAgIHRoaXMuX3N1YnN0aXR1dGVNYW5hZ2VNb2RlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZ2VuZGVyVGl0bGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCB5ZWFyRGlmZiA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIHRoaXMuYmlydGhZZWFyRnJvbTtcbiAgICBpZiAodGhpcy5nZW5kZXIgPT09IFRvdXJuYW1lbnRHZW5kZXIubWFsZSkge1xuICAgICAgaWYgKHllYXJEaWZmIDwgMTUpIHtcbiAgICAgICAgcmV0dXJuICfQnNCw0LvRjNGH0LjQutC4JztcbiAgICAgIH1cbiAgICAgIGlmICh5ZWFyRGlmZiA8IDIxKSB7XG4gICAgICAgIHJldHVybiAn0K7QvdC+0YjQuCc7XG4gICAgICB9XG4gICAgICByZXR1cm4gJ9Cc0YPQttGH0LjQvdGLJztcbiAgICB9XG4gICAgaWYgKHRoaXMuZ2VuZGVyID09PSBUb3VybmFtZW50R2VuZGVyLmZlbWFsZSkge1xuICAgICAgaWYgKHllYXJEaWZmIDwgMTUpIHtcbiAgICAgICAgcmV0dXJuICfQlNC10LLQvtGH0LrQuCc7XG4gICAgICB9XG4gICAgICBpZiAoeWVhckRpZmYgPCAyMSkge1xuICAgICAgICByZXR1cm4gJ9CU0LXQstGD0YjQutC4JztcbiAgICAgIH1cbiAgICAgIHJldHVybiAn0JbQtdC90YnQuNC90YsnO1xuICAgIH1cbiAgICByZXR1cm4gJ9Ch0LzQtdGI0LDQvdC90YvQuSc7XG4gIH1cblxuICBAVG9Gcm9udEhvb2tcbiAgc3RhdGljIHRvRnJvbnQoZGF0YTogYW55KTogYW55IHt9XG5cbiAgQFRvQmFja0hvb2tcbiAgc3RhdGljIHRvQmFjayhkYXRhOiBhbnkpOiBhbnkge31cbn1cblxuQE1vZGVsSW5zdGFuY2Uoe1xuICBtYXBwaW5nRmllbGRzOiB7XG4gICAgaWQ6ICdpZCcsXG4gICAgdGVhbV9pZDogJ3RlYW1JZCcsXG4gICAgdG91cm5hbWVudF9pZDogJ3RvdXJuYW1lbnRJZCcsXG4gICAgbmFtZTogJ25hbWUnLFxuICAgIGxvZ286ICdsb2dvJyxcbiAgICB0ZWFtOiAndGVhbScsXG4gICAgcG9pbnRzOiAncG9pbnRzJyxcbiAgfSxcbiAgcmVsYXRpb246IHtcbiAgICBsb2dvOiBGaWxlLFxuICAgIHRlYW06IFRlYW0sXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgVG91cm5hbWVudFRlYW1XaW5uZXIgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBpZDogbnVtYmVyO1xuICB0ZWFtSWQ6IG51bWJlcjtcbiAgdG91cm5hbWVudElkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgbG9nbzogRmlsZTtcbiAgdGVhbTogVGVhbTtcbiAgcG9pbnRzOiBudW1iZXI7XG5cbiAgQFRvRnJvbnRIb29rXG4gIHN0YXRpYyB0b0Zyb250KGRhdGE6IGFueSk6IGFueSB7fVxuXG4gIEBUb0JhY2tIb29rXG4gIHN0YXRpYyB0b0JhY2soZGF0YTogYW55KTogYW55IHt9XG59XG5cbkBNb2RlbEluc3RhbmNlKHtcbiAgbWFwcGluZ0ZpZWxkczoge1xuICAgIGlkOiAnaWQnLFxuICAgIG5hbWU6ICduYW1lJyxcbiAgICBhbGlhczogJ2FsaWFzJyxcbiAgICBsb2dvOiAnbG9nbycsXG4gICAgY292ZXI6ICdjb3ZlcicsXG4gICAgY292ZXJfbW9iaWxlOiAnY292ZXJNb2JpbGUnLFxuICAgIHByZXZpZXdfaW1hZ2U6ICdwcmV2aWV3SW1hZ2UnLFxuICAgIGNpdHk6ICdjaXR5JyxcbiAgICBzcG9ydDogJ3Nwb3J0JyxcbiAgICBsb2NhdGlvbjogJ2xvY2F0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ2Rlc2NyaXB0aW9uJyxcbiAgICBkYXRlOiAnZGF0ZScsXG4gICAgcHJpY2U6ICdwcmljZScsXG4gICAgcmVndWxhdGlvbl9maWxlczogJ3JlZ3VsYXRpb25GaWxlcycsXG4gICAgc2V0dGluZ3M6ICdzZXR0aW5ncycsXG4gICAgbGVhZ3VlOiAnbGVhZ3VlJyxcbiAgICB0ZWFtc19jb3VudDogJ3RlYW1zQ291bnQnLFxuICAgIGNsb3Nlc3RfZ2FtZV9kYXRldGltZTogJ2Nsb3Nlc3RHYW1lRGF0ZXRpbWUnLFxuICAgIHN0YXR1czogJ3N0YXR1cycsXG4gICAgdGVhbV93aW5uZXI6ICd0ZWFtV2lubmVyJyxcbiAgICB0ZWFtX3NlY29uZDogJ3RlYW1TZWNvbmQnLFxuICAgIHRlYW1fdGhpcmQ6ICd0ZWFtVGhpcmQnLFxuICAgIHNlYXNvbjogJ3NlYXNvbicsXG4gICAgc2Vhc29uX2lkOiAnc2Vhc29uSWQnLFxuICAgIGdhbWVfcHJpY2U6ICdnYW1lUHJpY2UnLFxuICAgIHNlYXNvbl90b3VybmFtZW50X2lkOiAnc2Vhc29uVG91cm5hbWVudElkJyxcbiAgICBzb3J0OiAnc29ydCcsXG4gIH0sXG4gIHJlbGF0aW9uOiB7XG4gICAgbG9nbzogRmlsZSxcbiAgICBjb3ZlcjogRmlsZSxcbiAgICBjb3Zlck1vYmlsZTogRmlsZSxcbiAgICBwcmV2aWV3SW1hZ2U6IEZpbGUsXG4gICAgY2l0eTogQ2l0eSxcbiAgICBzcG9ydDogU3BvcnQsXG4gICAgcmVndWxhdGlvbkZpbGU6IEZpbGUsXG4gICAgc2V0dGluZ3M6IFRvdXJuYW1lbnRTZXR0aW5ncyxcbiAgICBkYXRlOiBEYXRlVGltZUZpZWxkLFxuICAgIGxlYWd1ZTogTGVhZ3VlLFxuICAgIHN0YXR1czogZW51bUZpZWxkKFRvdXJuYW1lbnRTdGF0dXNlcyksXG4gICAgdGVhbVdpbm5lcjogVG91cm5hbWVudFRlYW1XaW5uZXIsXG4gICAgdGVhbVNlY29uZDogVG91cm5hbWVudFRlYW1XaW5uZXIsXG4gICAgdGVhbVRoaXJkOiBUb3VybmFtZW50VGVhbVdpbm5lcixcbiAgICBzZWFzb246IFRvdXJuYW1lbnRTZWFzb24sXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgVG91cm5hbWVudCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIGlkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgYWxpYXM6IHN0cmluZztcbiAgbG9nbzogRmlsZTtcbiAgY292ZXI6IEZpbGU7XG4gIGNvdmVyTW9iaWxlOiBGaWxlO1xuICBwcmV2aWV3SW1hZ2U6IEZpbGU7XG4gIGNpdHk6IENpdHk7XG4gIHNwb3J0OiBTcG9ydDtcbiAgbG9jYXRpb246IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgZGF0ZTogRGF0ZTtcbiAgcHJpY2U6IG51bWJlcjtcbiAgcmVndWxhdGlvbkZpbGVzOiBGaWxlW107XG4gIHNldHRpbmdzOiBUb3VybmFtZW50U2V0dGluZ3M7XG4gIGxlYWd1ZTogTGVhZ3VlO1xuICB0ZWFtc0NvdW50OiBudW1iZXI7XG4gIGNsb3Nlc3RHYW1lRGF0ZXRpbWU6IHN0cmluZztcbiAgc3RhdHVzOiBUb3VybmFtZW50U3RhdHVzZXM7XG4gIHRlYW1XaW5uZXI6IFRvdXJuYW1lbnRUZWFtV2lubmVyO1xuICB0ZWFtU2Vjb25kOiBUb3VybmFtZW50VGVhbVdpbm5lcjtcbiAgdGVhbVRoaXJkOiBUb3VybmFtZW50VGVhbVdpbm5lcjtcbiAgc2Vhc29uOiBUb3VybmFtZW50U2Vhc29uO1xuICBzZWFzb25JZDogbnVtYmVyO1xuICBnYW1lUHJpY2U6IG51bWJlcjtcbiAgc2Vhc29uVG91cm5hbWVudElkOiBudW1iZXI7XG4gIHNvcnQ6IG51bWJlcjtcblxuICBnZXRFbXB0eUxvZ29DbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsYXNzTGlzdCA9IFsnZW1wdHktbG9nbyddO1xuICAgIGlmICh0aGlzLnNwb3J0LmlzQmFza2V0YmFsbCgpKSB7XG4gICAgICBjbGFzc0xpc3QucHVzaCgnZW1wdHktbG9nby1iYXNrZXRiYWxsJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNwb3J0LmlzVm9sbGV5YmFsbCgpKSB7XG4gICAgICBjbGFzc0xpc3QucHVzaCgnZW1wdHktbG9nby12b2xsZXliYWxsJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNwb3J0LmlzSG9ja2V5KCkpIHtcbiAgICAgIGNsYXNzTGlzdC5wdXNoKCdlbXB0eS1sb2dvLWhvY2tleScpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zcG9ydC5pc0Zvb3RiYWxsKCkpIHtcbiAgICAgIGNsYXNzTGlzdC5wdXNoKCdlbXB0eS1sb2dvLWZvb3RiYWxsJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNwb3J0LmlzSGFuZGJhbGwoKSkge1xuICAgICAgY2xhc3NMaXN0LnB1c2goJ2VtcHR5LWxvZ28taGFuZGJhbGwnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3BvcnQuaXNSdWdieSgpKSB7XG4gICAgICBjbGFzc0xpc3QucHVzaCgnZW1wdHktbG9nby1ydWdieScpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zcG9ydC5pc1dhdGVycG9sbygpKSB7XG4gICAgICBjbGFzc0xpc3QucHVzaCgnZW1wdHktbG9nby13YXRlcnBvbG8nKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzTGlzdC5qb2luKCcgJyk7XG4gIH1cblxuICBAVG9Gcm9udEhvb2tcbiAgc3RhdGljIHRvRnJvbnQoZGF0YTogYW55KTogYW55IHt9XG5cbiAgQFRvQmFja0hvb2tcbiAgc3RhdGljIHRvQmFjayhkYXRhOiBhbnkpOiBhbnkge31cbn1cbiJdfQ==
@@ -1445,6 +1445,7 @@ Tournament = __decorate([
1445
1445
  season_id: 'seasonId',
1446
1446
  game_price: 'gamePrice',
1447
1447
  season_tournament_id: 'seasonTournamentId',
1448
+ sort: 'sort',
1448
1449
  },
1449
1450
  relation: {
1450
1451
  logo: File,
@@ -6636,6 +6637,14 @@ class TournamentApi {
6636
6637
  return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users_limitation/`).pipe(map(result => GameUserLimitations.toFront(result))).toPromise();
6637
6638
  });
6638
6639
  }
6640
+ downloadTeamSanctionList(tournamentTeamId, fileType) {
6641
+ return __awaiter(this, void 0, void 0, function* () {
6642
+ return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/sanction_list_file/?file_type=${fileType}`, {
6643
+ params: new HttpParams().set('file_type', fileType),
6644
+ responseType: 'blob'
6645
+ }).toPromise();
6646
+ });
6647
+ }
6639
6648
  }
6640
6649
  TournamentApi.ɵprov = i0.ɵɵdefineInjectable({ factory: function TournamentApi_Factory() { return new TournamentApi(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(ConfigService)); }, token: TournamentApi, providedIn: "root" });
6641
6650
  TournamentApi.decorators = [