tango-app-ui-analyse-trax 3.6.2-bulktask-5 → 3.6.2-bulktask-7

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.
@@ -123,6 +123,9 @@ export class TraxService {
123
123
  taskvalidateUserData(users) {
124
124
  return this.http.post(`${this.galleryApiUrl}/taskvalidateUserData`, users);
125
125
  }
126
+ getallchecklist(users) {
127
+ return this.http.post(`${this.galleryApiUrl}/getallchecklist`, users);
128
+ }
126
129
  assignUpload(users) {
127
130
  return this.http.post(`${this.traxUrl}/assignUpload`, users);
128
131
  }
@@ -501,4 +504,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
501
504
  providedIn: 'root'
502
505
  }]
503
506
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
504
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvc2VydmljZXMvdHJheC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsR0FBYyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQWtDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZHLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOzs7O0FBRTdCLE1BQU0sVUFBVSxHQUFHLGlGQUFpRixDQUFDO0FBQ3JHLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUNoQyxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQztBQUMxQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFLN0IsTUFBTSxPQUFPLFdBQVc7SUFnQkY7SUFBMEI7SUFmOUMsT0FBTyxDQUFNO0lBQ2IsUUFBUSxDQUFNO0lBQ2QsYUFBYSxDQUFNO0lBQ25CLGNBQWMsQ0FBTTtJQUNwQixlQUFlLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUE7SUFFeEMsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEUsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRCxnQ0FBZ0M7SUFDaEMsb0JBQW9CLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUE7SUFDdEQsWUFBWSxDQUFNO0lBQ2xCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQVE7SUFFbkIsWUFBb0IsSUFBZ0IsRUFBVSxFQUFzQjtRQUFo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VSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsLCBjYXRjaEVycm9yLCBtYXAsdGhyb3dFcnJvciwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5cclxuY29uc3QgRVhDRUxfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04JztcclxuY29uc3QgRVhDRUxfRVhURU5TSU9OID0gJy54bHN4JztcclxuY29uc3QgQ1NWX1RZUEUgPSAndGV4dC9jc3Y7Y2hhcnNldD11dGYtOCc7XHJcbmNvbnN0IENTVl9FWFRFTlNJT04gPSAnLmNzdic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmF4U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgdHJheFVybDogYW55O1xyXG4gIHN0b3JlVXJsOiBhbnk7XHJcbiAgZ2FsbGVyeUFwaVVybDogYW55O1xyXG4gIGFjdGl2aXR5bG9nVXJsOiBhbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpXHJcblxyXG4gIHByaXZhdGUgcmVsb2FkRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICByZWxvYWREYXRhJCA9IHRoaXMucmVsb2FkRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8vIG9wZW5lZERyb3Bkb3duczpzdHJpbmdbXSA9IFtdXHJcbiAgZHJvcGRvd25DbG9zZVRyaWdnZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpXHJcbiAgY2xpZW50QVBpVXJsOiBhbnk7XHJcbiAgdHJhZmZpY0FwaVVybDogYW55O1xyXG4gIHRyYXhUYXNrVXJsOiBzdHJpbmcgIFxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMudHJheFVybCA9IGVudi50cmF4VXJsO1xyXG4gICAgICAgIHRoaXMuc3RvcmVVcmwgPSBlbnYuc3RvcmVBcGlVcmxcclxuICAgICAgICB0aGlzLmdhbGxlcnlBcGlVcmwgPSBlbnYuZ2FsbGVyeUFwaVVybFxyXG4gICAgICAgIHRoaXMuY2xpZW50QVBpVXJsID0gZW52LmNsaWVudEFwaVVybFxyXG4gICAgICAgIHRoaXMudHJhZmZpY0FwaVVybCA9IGVudi50cmFmZmljQXBpVXJsXHJcbiAgICAgICAgdGhpcy50cmF4VGFza1VybCA9IGVudi50cmF4VGFza1VybFxyXG4gICAgICAgIHRoaXMuYWN0aXZpdHlsb2dVcmwgPSBlbnYuYWN0aXZpdHlsb2dVcmxcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlclJlbG9hZCgpIHtcclxuICAgIHRoaXMucmVsb2FkRGF0YVN1YmplY3QubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnRBc0V4Y2VsRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24pO1xyXG4gICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSB7IFNoZWV0czogeyAnZGF0YSc6IHdvcmtzaGVldCB9LCBTaGVldE5hbWVzOiBbJ2RhdGEnXSB9O1xyXG4gICAgY29uc3QgZXhjZWxCdWZmZXI6IGFueSA9IFhMU1gud3JpdGUod29ya2Jvb2ssIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcclxuICAgIHRoaXMuc2F2ZUFzRXhjZWxGaWxlKGV4Y2VsQnVmZmVyLCBleGNlbEZpbGVOYW1lKTtcclxuICB9XHJcbiBcclxuICBwdWJsaWMgc2F2ZUFzRXhjZWxGaWxlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgJ2xpc3QnICsgRVhDRUxfRVhURU5TSU9OKTtcclxuICB9XHJcbiBcclxuICBwdWJsaWMgc2F2ZUFzVGVtcGxhdGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICB0eXBlOiBFWENFTF9UWVBFXHJcbiAgICB9KTtcclxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdW1tYXJ5VGFibGVEYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS96b25lU3VtbWFyeVRhYmxlX3YyYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0Y2hlY2tsaXN0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS9nZXRjaGVja2xpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRUYXNrTGlzdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L3Rhc2tEcm9wZG93bmAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFF1ZXN0aW9ucyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2dldFF1ZXN0aW9uc2AsIGRhdGEpXHJcbiAgfVxyXG4gIGFwcHJvdmVjaGVja2xpc3QoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L3VwZGF0ZUFwcHJvdmVgLCBkYXRhKVxyXG4gIH1cclxuICBhcHByb3ZldGFzayhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L3VwZGF0ZUFwcHJvdmVgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRBbnN3ZXJzKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZ2V0QW5zd2Vyc2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRBbnN3ZXJjb3VudChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2dldEFuc3dlckNvdW50YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldE1vYlVzYWdlbGlzdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0TW9iaWxlVXNlYWdlbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldGN1c3RvbWVydW5hdHRlbmRlZGxpc3QoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2dldGN1c3RvbWVydW5hdHRlbmRlZGxpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBcclxuICBzdG9yZU9wZW5jbG9zZWxpc3QoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2dldGN1c3RvbWVydW5hdHRlbmRlZGxpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBxdWV1ZWFsZXJ0bGlzdCggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2dldGN1c3RvbWVydW5hdHRlbmRlZGxpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBcclxuICBnZXRTdW1tYXJ5VGFibGVFeHBvcnQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L3pvbmVTdW1tYXJ5VGFibGVfdjJgLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuXHJcbiAgY2hlY2tsaXN0KG9iajogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L2NoZWNrbGlzdD9saW1pdD0ke29iai5saW1pdH0mb2Zmc2V0PSR7b2JqLm9mZnNldH0mc29ydENvbHVtbk5hbWU9JHtvYmouc29ydENvbHVtbn0mc2VhcmNoPSR7b2JqLnNlYXJjaH0mc29ydEJ5PSR7b2JqLnNvcnRCeX0mY2xpZW50SWQ9JHtvYmouY2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIGNoZWNrbGlzdHYyKG9iajogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L2NoZWNrbGlzdFYyP2xpbWl0PSR7b2JqLmxpbWl0fSZvZmZzZXQ9JHtvYmoub2Zmc2V0fSZzb3J0Q29sdW1uTmFtZT0ke29iai5zb3J0Q29sdW1ufSZzZWFyY2g9JHtvYmouc2VhcmNofSZzb3J0Qnk9JHtvYmouc29ydEJ5fSZjbGllbnRJZD0ke29iai5jbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgaW1hZ2V1cGxvYWQodXNlcnM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vdXBsb2FkYCwgdXNlcnMpXHJcbiAgfVxyXG5cclxuICB0YXNrSW1hZ2V1cGxvYWQodXNlcnM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L3VwbG9hZEltYWdlYCwgdXNlcnMpXHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVVzZXIodXNlcnM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vdmFsaWRhdGVVc2VyYCwgdXNlcnMpXHJcbiAgfVxyXG5cclxuICB0YXNrdmFsaWRhdGVVc2VyRGF0YSh1c2VyczogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS90YXNrdmFsaWRhdGVVc2VyRGF0YWAsIHVzZXJzKVxyXG4gIH1cclxuXHJcbiAgYXNzaWduVXBsb2FkKHVzZXJzOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vYXNzaWduVXBsb2FkYCwgdXNlcnMpXHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVVzZXJ2MSh1c2VyczogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS92YWxpZGF0ZVVzZXJ2MWAsIHVzZXJzKVxyXG4gIH1cclxuXHJcbiAgdGFza3ZhbGlkYXRlVXNlcnYxKHVzZXJzOiBhbnkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L3VwbG9hZGAsIHVzZXJzKVxyXG4gIH1cclxuICBcclxuICB0YXNrYXNzaWduVXBsb2FkKHVzZXJzOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Fzc2lnblVwbG9hZGAsIHVzZXJzKVxyXG4gIH1cclxuXHJcbiAgZ2V0dXBkYXRlY2hlY2tsaXN0KGlkOiBhbnksIGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy50cmF4VXJsfS9jaGVja2xpc3QvdXBkYXRlLyR7aWR9YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGNyZWF0ZWNoZWNrbGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2NoZWNrbGlzdC9jcmVhdGVgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgY29uZmlnVXBkYXRlKG9iajogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9jaGVja2xpc3RDb25maWd1cmV2MWAsIG9iailcclxuICB9XHJcblxyXG4gIGFzc2lnblVwZGF0ZShkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vdXBkYXRlQXNzaWduYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGFzc2lnbnRhc2tVcGRhdGUoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS91cGRhdGVBc3NpZ25gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQWlDb25maWd1cmUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS91cGRhdGVBaUNvbmZpZ3VyZWAsZGF0YSlcclxuICB9XHJcbiBcclxuXHJcbiAgZ2V0Y29uZmlnKG9iajogYW55KSB7XHJcbiAgICBsZXQga2V5ID0gT2JqZWN0LmtleXMob2JqKVswXTtcclxuICAgIGxldCB2YWx1ZSA9IG9ialtPYmplY3Qua2V5cyhvYmopWzBdXTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vZ2V0Q29uZmlnRGV0YWlscz8ke2tleX09JHt2YWx1ZX0mY2xpZW50SWQ9JHtvYmpbT2JqZWN0LmtleXMob2JqKVsxXV19YClcclxuICB9XHJcbiAgICBcclxuICBnZXRBSWNvbmZpZyhvYmo6IGFueSkge1xyXG4gICAgbGV0IGtleSA9IE9iamVjdC5rZXlzKG9iailbMF07XHJcbiAgICBsZXQgdmFsdWUgPSBvYmpbT2JqZWN0LmtleXMob2JqKVswXV07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L2dldEFpRGV0YWlscz8ke2tleX09JHt2YWx1ZX0mY2xpZW50SWQ9JHtvYmpbT2JqZWN0LmtleXMob2JqKVsxXV19YClcclxuICB9XHJcblxyXG4gIHJ1bkFJSW5zZXJ0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vcnVuQUlJbnNlcnRgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZHVwbGljYXRlY2hlY2tsaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS9kdXBsaWNhdGVDaGVja2xpc3QvJHtkYXRhLmNoZWNrbGlzdElkfT9jbGllbnRJZD0ke2RhdGEuY2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIGdldFVzZXJEZXRhaWxzKG9iajogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L3VzZXJEZXRhaWxzLyR7b2JqLmlkfT9vZmZzZXQ9JHtvYmoub2Zmc2V0fSZsaW1pdD0ke29iai5saW1pdH0mc2VhcmNoPSR7b2JqLnNlYXJjaH0mY2xpZW50SWQ9JHtvYmouY2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIGdldFN0b3JlTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlVXJsfS9zdG9yZUluZnJhTGlzdGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBkZWxldGVDaGVja2xpc3QoZGF0YTogYW55LCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy50cmF4VXJsfS9kZWxldGVDaGVja2xpc3QvJHtkYXRhLmlkfT9jbGllbnRJZD0ke2RhdGEuY2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIHB1Ymxpc2goZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLnRyYXhVcmx9L3B1Ymxpc2hgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRTdG9yZXMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2dldC1zdG9yZXNgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tsaXN0cyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vY2hlY2tsaXN0RHJvcGRvd25gLCBkYXRhKVxyXG4gIH1cclxuICB2aWV3Q2hlY2tsaXN0cyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vdmlld2NoZWNrbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBvdmVyYWxsRmxhZ01ldHJpY3MoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NhcmRzVjFgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgb3ZlcmFsbEZsYWdNZXRyaWNzQ29tcGFyaXNvbihib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnQ29tcGFyaXNvbkNhcmRzVjJgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgZmxhZ3NUYWJsZShib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnVGFibGVzVjFgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgZmxhZ3NUYWJsZVYyKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdUYWJsZXNWMmAsIGJvZHkpXHJcbiAgfVxyXG5cclxuICBleHBvcnRGbGFnc1RhYmxlKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdUYWJsZXNWMWAsIGJvZHksIHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIH0pXHJcbiAgfVxyXG5cclxuICBleHBvcnRGbGFnc1RhYmxldjIoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ1RhYmxlc1YyYCwgYm9keSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcblxyXG4gIGdldE92ZXJhbGxDYXJkc0RhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9vdmVyYWxsQ2FyZHNWMWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2xpc3RQZXJmb3JtYW5jZURhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9jaGVja2xpc3RQZXJmb3JtYW5jZWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2xpc3RQZXJmb3JtYW5jZURhdGF2MihkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2NoZWNrbGlzdFBlcmZvcm1hbmNlVjJgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tsaXN0UGVyZm9ybWFuY2VEYXRhRXhwb3J0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0UGVyZm9ybWFuY2VgLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tsaXN0UGVyZm9ybWFuY2VEYXRhRXhwb3J0djIoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9jaGVja2xpc3RQZXJmb3JtYW5jZVYyYCwgZGF0YSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcblxyXG4gIGdldFN0b3JlUGVyZm9ybWFuY2VEYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvc3RvcmVQZXJmb3JtYW5jZWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZVBlcmZvcm1hbmNlRGF0YXYyKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0UGVyZm9ybWFuY2VWMmAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZVBlcmZvcm1hbmNlRGF0YUV4cG9ydChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3N0b3JlUGVyZm9ybWFuY2VgLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuXHJcblxyXG4gIGdldFVzZXJQZXJmb3JtYW5jZURhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC91c2VyUGVyZm9ybWFuY2VgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlclBlcmZvcm1hbmNlRGF0YUV4cG9ydChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3VzZXJQZXJmb3JtYW5jZWAsIGRhdGEsIHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIH0pXHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2xpc3REcm9wZG93bkRhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NoZWNrbGlzdERyb3BEb3duVjFgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRDaGVja2xpc3REcm9wZG93bkRhc2hib2FyZERhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9jaGVja2xpc3REcm9wZG93bmAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRJbmZvQ2FyZHNEYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvaW5mb0NhcmRzVjFgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgY2hlY2tsaXN0RmxhZ1RhYmxlKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDaGVja2xpc3RUYWJsZVYxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIENyZWF0ZWNoZWNrbGlzdFRhc2soYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhUYXNrVXJsfS9jaGVja2xpc3RUYXNrYCwgYm9keSlcclxuICB9XHJcbiAgQ3JlYXRlY2hlY2tsaXN0TXVsdGlUYXNrKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VGFza1VybH0vY2hlY2tsaXN0TXVsdGlUYXNrYCwgYm9keSlcclxuICB9XHJcbiBcclxuICByZWRvVGFza2NoZWNrbGlzdChib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vcmVkb2AsIGJvZHkpXHJcbiAgfVxyXG4gIHJlZG9UYXNrbXVsdGljaGVja2xpc3QoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L211bHRpcmVkb2AsIGJvZHkpXHJcbiAgfVxyXG4gIHJlZG9tdWx0aVRhc2soYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhUYXNrVXJsfS9tdWx0aXJlZG9gLCBib2R5KVxyXG4gIH1cclxuICByZWRvVGFzayhib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFRhc2tVcmx9L3JlZG9gLCBib2R5KVxyXG4gIH1cclxuICBnZXRyZWRvTG9ncyhib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0TG9nc2AsIGJvZHkpXHJcbiAgfVxyXG4gIGV4cG9ydENoZWNrbGlzdEZsYWdUYWJsZShib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NoZWNrbGlzdFRhYmxlVjFgLCBib2R5LCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuXHJcbiAgcmVwb3J0VGFibGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9yZXBvcnRDaGVja2xpc3REYXRhdjFgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgZmxhZ0NhcmRWYWx1ZXMoYm9keTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDaGVja2xpc3RDYXJkc1YxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGZsYWdDYXJkVGVyZW5kKGJvZHk6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnQ2hlY2tsaXN0Q29tcGFyaXNvbkNhcmRzVjFgLCBib2R5KVxyXG4gIH1cclxuXHJcblxyXG4gIGdldENoZWNrbGlzdEluZm9EYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0SW5mb2AsIGRhdGEpXHJcbiAgfVxyXG4gIGdldENoZWNrbGlzdEluZm9EYXRhRXhwb3J0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0SW5mb2AsIGRhdGEsIHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIH0pXHJcbiAgfVxyXG5cclxuICBnZXRVc2VybGlzdERyb3Bkb3duRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3VzZXJsaXN0RHJvcGRvd25gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0TW9udGhseVBlZm9ybWFuY2VEYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvbW9udGhseUdyYXBoVjFgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2xpZW50VXNlcihjbGllbnRJZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vdXNlckxpc3Q/Y2xpZW50SWQ9JHtjbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0Wm9uZUxpc3QoY2xpZW50SWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L3pvbmVMaXN0P2NsaWVudElkPSR7Y2xpZW50SWR9YClcclxuICB9XHJcbiAgZ2V0SW5mb0NvbXBhcmlzb25DYXJkc0RhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9pbmZvQ29tcGFyaXNvbkNhcmRzVjFgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRPdmVyYWxsQ29tcGFyaXNvbkNhcmRzRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL292ZXJhbGxDb21wYXJpc29uQ2FyZHNWMWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRhaWNoZWNrbGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vYWljaGVja2xpc3Q/Y2xpZW50SWQ9JHtkYXRhfWApXHJcbiAgfVxyXG5cclxuICByZXBvcnRUYWJsZUV4cG9ydChib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZG93bmxvYWRzL2Rvd25sb2FkSW5zZXJ0YCwgYm9keSlcclxuICB9XHJcbiAgYWljaGVja2xpc3RFeHBvcnQoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2Rvd25sb2Fkcy9kb3dubG9hZEluc2VydEFJYCwgYm9keSlcclxuICB9XHJcbiAgZ2V0cHJlZGVmaW5lZGNoZWNrbGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vcHJlZGVmaW5lZENoZWNrbGlzdD9jbGllbnRJZD0ke2RhdGF9YClcclxuICB9XHJcbiAgZ2V0Y2xpZW50KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBUGlVcmx9L2RldGFpbGVkLWNsaWVudC1jb3VudD9jbGllbnRJZD0ke2RhdGEuY2xpZW50SWR9YClcclxuICB9XHJcbiAgZ2V0R3JvdXBzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJhZmZpY0FwaVVybH0vaGVhZGVyR3JvdXBzX3YxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0Y2x1c3RlcnMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJjbHVzdGVyX3YyYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0dXNlcnMoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L3VzZXJMaXN0YCxkYXRhKVxyXG4gIH1cclxuICBnZXRBbGxUZWFtcyhjbGllbnRJZDphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vdGVhbXNMaXN0P2NsaWVudElkPSR7Y2xpZW50SWR9YClcclxuICB9XHJcbiAgZ2V0U3RvcmVzbGlzdChkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vaGVhZGVyU3RvcmVzX3YyYCxkYXRhKVxyXG4gIH1cclxuICBhcHByb3ZhbHN0YXR1c2NoZWNrbGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2FwcHJvdmFsc3RhdHVzYCwgZGF0YSlcclxuICB9XHJcbiAgYXBwcm92YWxzdGF0dXN0YXNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2FwcHJvdmFsc3RhdHVzYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldE9yZGVyc0J5RGF0ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2xvY3Vzb3JkZXIvZ2V0YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIG9yZGVyVXBkYXRlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vbG9jdXNvcmRlci91cGRhdGVgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgb3JkZXJEZWxldGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9sb2N1c29yZGVyL2RlbGV0ZWAsIGRhdGEpXHJcbiAgICAgXHJcbiAgfVxyXG5cclxuICBpc0xvY3VzQXV0aG9yaXplZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vbG9jdXNvcmRlci91c2VyLWFsbG93ZWRgKVxyXG4gIH1cclxuICByZWluaXRpYXRlQ2hlY2tsaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3JlaW5pdGlhdGVjaGVja2xpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBjaGVja05vdGlmaWNhdGlvbkNvdW50KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vY2hlY2tOb3RpZmljYXRpb25Db3VudGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwb3J0QXNDU1ZGaWxlKGpzb246IGFueVtdLCBleGNlbEZpbGVOYW1lOiBzdHJpbmcsIGlkZW50aWZpZXI/OiBhbnlbXSk6IHZvaWQge1xyXG4gICAgY29uc3Qgd29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChqc29uKTtcclxuXHJcbiAgICBjb25zdCBjc3ZPdXRwdXQ6IHN0cmluZyA9IFhMU1gudXRpbHMuc2hlZXRfdG9fY3N2KHdvcmtzaGVldCk7XHJcbiAgICB0aGlzLnNhdmVBc0NTVkZpbGUoY3N2T3V0cHV0LCBleGNlbEZpbGVOYW1lKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzYXZlQXNDU1ZGaWxlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogQ1NWX1RZUEVcclxuICAgIH0pO1xyXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIENTVl9FWFRFTlNJT04pO1xyXG4gIH1cclxuXHJcbiAgcmVJbml0aWF0ZShib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3JlaW5pdGlhdGVjaGVja2xpc3RgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlVGFzayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9jcmVhdGVgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0VGFza2NvbmZpZyhpZDogc3RyaW5nLCBjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kZXRhaWxzP3Rhc2tJZD0ke2lkfSZjbGllbnRJZD0ke2NsaWVudElkfWApXHJcbiAgfVxyXG5cclxuICBjb25maWdUYXNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2NvbmZpZ2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRUYXNrVXNlckRldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7IGZyb21PYmplY3Q6IGRhdGEgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhUYXNrVXJsfS91c2VyRGV0YWlsc2AsIHsgcGFyYW1zIH0pXHJcbiAgfVxyXG5cclxuICB1cGxvYWRUYXNrQXNzaWduZWVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L3VwbG9hZGAsIGRhdGEpXHJcblxyXG4gIH1cclxuXHJcbiAgXHJcbiAgZ2V0T3ZlcmFsbFRhc2tzRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Rhc2hib2FyZC9vdmVyYWxsY2FyZHNWMWAsIGRhdGEpXHJcbiAgfVxyXG4gIC8vIGdldFRhc2tUYWJsZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgLy8gICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZGFzaGJvYXJkL3Rhc2tUYWJsZVYxYCwgZGF0YSlcclxuICAvLyB9XHJcbiAgLy8gZ2V0VGFza1RhYmxlRGF0YUV4cG9ydCggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza1RhYmxlVjFgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICAvLyB9XHJcbiAgZ2V0VGFza1RhYmxlRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Rhc2hib2FyZC90YXNrRGV0YWlsc2AsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFRhc2tUYWJsZURhdGFFeHBvcnQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza0RldGFpbHNgLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuICBnZXRUYXNrSW5mb1RhYmxlRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Rhc2hib2FyZC90YXNrSW5mb1RhYmxlVjFgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRUYXNrSW5mb1RhYmxlRGF0YUV4cG9ydChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Rhc2hib2FyZC90YXNrSW5mb1RhYmxlVjFgLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuICBnZXRPdmVyYWxsQWN0aW9uQ2VudGVyRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2FjdGlvbkNlbnRlci9vdmVyYWxsY2FyZHNWMWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldEFwcHJvdmFsRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2FjdGlvbkNlbnRlci9hcHByb3ZhbFRhYmxlVjFgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRBY3Rpdml0eUxvZyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2FjdGlvbkNlbnRlci9hY3Rpdml0eUxvZ1YxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0VGFza0Ryb3Bkb3duTGlzdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Rhc2hib2FyZC90YXNrRHJvcGRvd25MaXN0VjFgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRUYXNrRGVsZXRlKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZGFzaGJvYXJkL3Rhc2tEZWxldGVWMWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFRhc2tVcGRhdGUoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9yZWluaXRpYXRlYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIHNlbGVjdHRhc2tDaGlwcyhkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Fzc2lnbmAsZGF0YSlcclxuICB9XHJcblxyXG4gIHRhc2tMaXN0KG9iajogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFRhc2tVcmx9L3Rhc2stbGlzdD9saW1pdD0ke29iai5saW1pdH0mb2Zmc2V0PSR7b2JqLm9mZnNldH0mc29ydENvbHVtbk5hbWU9JHtvYmouc29ydENvbHVtbn0mc2VhcmNoPSR7b2JqLnNlYXJjaH0mc29ydEJ5PSR7b2JqLnNvcnRCeX0mY2xpZW50SWQ9JHtvYmouY2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIHB1Ymxpc2hUYXNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy50cmF4VGFza1VybH0vcHVibGlzaGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBkdXBsaWNhdGVUYXNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VGFza1VybH0vZHVwbGljYXRlVGFzay8ke2RhdGEuY2hlY2tsaXN0SWR9P2NsaWVudElkPSR7ZGF0YS5jbGllbnRJZH1gKVxyXG4gIH1cclxuICBnZXRTZW5kQWxlcnQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9zZW5kQWxlcnRgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0YXNzaWduRHJvcGRvd24oZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L3NlbGVjdEFzc2lnbmAsZGF0YSlcclxuICB9XHJcblxyXG4gIHNlbGVjdENoaXBzKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9hc3NpZ25gLGRhdGEpXHJcbiAgfVxyXG5cclxuICByZW1vdmVDaGlwcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L3JlbW92ZWAsZGF0YSkgICBcclxuICB9XHJcblxyXG4gIGdldFVzZXJEZXRhaWxzVjIob2JqOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vdXNlckRldGFpbHMvJHtvYmouY2hlY2tsaXN0SWR9P29mZnNldD0ke29iai5vZmZzZXR9JmxpbWl0PSR7b2JqLmxpbWl0fSZzZWFyY2g9JHtvYmouc2VhcmNofSZjbGllbnRJZD0ke29iai5jbGllbnRJZH0mc29ydENvbHVtbj0ke29iai5zb3J0Q29sdW1ufSZzb3J0Qnk9JHtvYmouc29ydEJ5fWApXHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRGV0YWlsc1YxKG9iajogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L3VzZXJEZXRhaWxzdjEvJHtvYmouaWR9P2NsaWVudElkPSR7b2JqPy5jbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0dGFza1VzZXJEZXRhaWxzVjEob2JqOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFRhc2tVcmx9L3VzZXJEZXRhaWxzLz90YXNrSWQ9JHtvYmouaWR9JmNsaWVudElkPSR7b2JqPy5jbGllbnRJZH1gKVxyXG4gIH1cclxuICBjaGVja2xpc3RDb3VudEJ5VHlwZShib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9jaGVja2xpc3RDb3VudEJ5VHlwZWAsIGJvZHkpXHJcbiAgfVxyXG4gIGFjdGl2aXR5TG9nTGlzdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aXZpdHlsb2dVcmx9L2xpc3RMb2dgLCBkYXRhKVxyXG4gIH1cclxuXHJcbn1cclxuIl19
507
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJheC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmF4L3NyYy9saWIvc2VydmljZXMvdHJheC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsR0FBYyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQWtDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZHLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOzs7O0FBRTdCLE1BQU0sVUFBVSxHQUFHLGlGQUFpRixDQUFDO0FBQ3JHLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUNoQyxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQztBQUMxQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFLN0IsTUFBTSxPQUFPLFdBQVc7SUFnQkY7SUFBMEI7SUFmOUMsT0FBTyxDQUFNO0lBQ2IsUUFBUSxDQUFNO0lBQ2QsYUFBYSxDQUFNO0lBQ25CLGNBQWMsQ0FBTTtJQUNwQixlQUFlLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUE7SUFFeEMsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEUsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRCxnQ0FBZ0M7SUFDaEMsb0JBQW9CLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUE7SUFDdEQsWUFBWSxDQUFNO0lBQ2xCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQVE7SUFFbkIsWUFBb0IsSUFBZ0IsRUFBVSxFQUFzQjtRQUFo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Q0FBQyxjQUFjLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMvRCxDQUFDO3dHQW5rQlUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95LCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwsIGNhdGNoRXJyb3IsIG1hcCx0aHJvd0Vycm9yLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcblxyXG5jb25zdCBFWENFTF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xyXG5jb25zdCBFWENFTF9FWFRFTlNJT04gPSAnLnhsc3gnO1xyXG5jb25zdCBDU1ZfVFlQRSA9ICd0ZXh0L2NzdjtjaGFyc2V0PXV0Zi04JztcclxuY29uc3QgQ1NWX0VYVEVOU0lPTiA9ICcuY3N2JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYXhTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICB0cmF4VXJsOiBhbnk7XHJcbiAgc3RvcmVVcmw6IGFueTtcclxuICBnYWxsZXJ5QXBpVXJsOiBhbnk7XHJcbiAgYWN0aXZpdHlsb2dVcmw6IGFueTtcclxuICBkcm9wRG93blRyaWdnZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbClcclxuXHJcbiAgcHJpdmF0ZSByZWxvYWREYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHJlbG9hZERhdGEkID0gdGhpcy5yZWxvYWREYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLy8gb3BlbmVkRHJvcGRvd25zOnN0cmluZ1tdID0gW11cclxuICBkcm9wZG93bkNsb3NlVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcclxuICBjbGllbnRBUGlVcmw6IGFueTtcclxuICB0cmFmZmljQXBpVXJsOiBhbnk7XHJcbiAgdHJheFRhc2tVcmw6IHN0cmluZyAgXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy50cmF4VXJsID0gZW52LnRyYXhVcmw7XHJcbiAgICAgICAgdGhpcy5zdG9yZVVybCA9IGVudi5zdG9yZUFwaVVybFxyXG4gICAgICAgIHRoaXMuZ2FsbGVyeUFwaVVybCA9IGVudi5nYWxsZXJ5QXBpVXJsXHJcbiAgICAgICAgdGhpcy5jbGllbnRBUGlVcmwgPSBlbnYuY2xpZW50QXBpVXJsXHJcbiAgICAgICAgdGhpcy50cmFmZmljQXBpVXJsID0gZW52LnRyYWZmaWNBcGlVcmxcclxuICAgICAgICB0aGlzLnRyYXhUYXNrVXJsID0gZW52LnRyYXhUYXNrVXJsXHJcbiAgICAgICAgdGhpcy5hY3Rpdml0eWxvZ1VybCA9IGVudi5hY3Rpdml0eWxvZ1VybFxyXG5cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyUmVsb2FkKCkge1xyXG4gICAgdGhpcy5yZWxvYWREYXRhU3ViamVjdC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cG9ydEFzRXhjZWxGaWxlKGpzb246IGFueVtdLCBleGNlbEZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbik7XHJcbiAgICBjb25zdCB3b3JrYm9vazogWExTWC5Xb3JrQm9vayA9IHsgU2hlZXRzOiB7ICdkYXRhJzogd29ya3NoZWV0IH0sIFNoZWV0TmFtZXM6IFsnZGF0YSddIH07XHJcbiAgICBjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0gWExTWC53cml0ZSh3b3JrYm9vaywgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xyXG4gICAgdGhpcy5zYXZlQXNFeGNlbEZpbGUoZXhjZWxCdWZmZXIsIGV4Y2VsRmlsZU5hbWUpO1xyXG4gIH1cclxuIFxyXG4gIHB1YmxpYyBzYXZlQXNFeGNlbEZpbGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICB0eXBlOiBFWENFTF9UWVBFXHJcbiAgICB9KTtcclxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyAnbGlzdCcgKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gIH1cclxuIFxyXG4gIHB1YmxpYyBzYXZlQXNUZW1wbGF0ZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcclxuICAgIH0pO1xyXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGdldFN1bW1hcnlUYWJsZURhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L3pvbmVTdW1tYXJ5VGFibGVfdjJgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRjaGVja2xpc3QoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2dldGNoZWNrbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFRhc2tMaXN0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vdGFza0Ryb3Bkb3duYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0UXVlc3Rpb25zKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZ2V0UXVlc3Rpb25zYCwgZGF0YSlcclxuICB9XHJcbiAgYXBwcm92ZWNoZWNrbGlzdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vdXBkYXRlQXBwcm92ZWAsIGRhdGEpXHJcbiAgfVxyXG4gIGFwcHJvdmV0YXNrKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vdXBkYXRlQXBwcm92ZWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldEFuc3dlcnMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9nZXRBbnN3ZXJzYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEFuc3dlcmNvdW50KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZ2V0QW5zd2VyQ291bnRgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0TW9iVXNhZ2VsaXN0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS9nZXRNb2JpbGVVc2VhZ2VsaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkbGlzdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIFxyXG4gIHN0b3JlT3BlbmNsb3NlbGlzdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIHF1ZXVlYWxlcnRsaXN0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZ2FsbGVyeUFwaVVybH0vZ2V0Y3VzdG9tZXJ1bmF0dGVuZGVkbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIFxyXG4gIGdldFN1bW1hcnlUYWJsZUV4cG9ydChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vem9uZVN1bW1hcnlUYWJsZV92MmAsIGRhdGEsIHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIH0pXHJcbiAgfVxyXG5cclxuICBjaGVja2xpc3Qob2JqOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0P2xpbWl0PSR7b2JqLmxpbWl0fSZvZmZzZXQ9JHtvYmoub2Zmc2V0fSZzb3J0Q29sdW1uTmFtZT0ke29iai5zb3J0Q29sdW1ufSZzZWFyY2g9JHtvYmouc2VhcmNofSZzb3J0Qnk9JHtvYmouc29ydEJ5fSZjbGllbnRJZD0ke29iai5jbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgY2hlY2tsaXN0djIob2JqOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0VjI/bGltaXQ9JHtvYmoubGltaXR9Jm9mZnNldD0ke29iai5vZmZzZXR9JnNvcnRDb2x1bW5OYW1lPSR7b2JqLnNvcnRDb2x1bW59JnNlYXJjaD0ke29iai5zZWFyY2h9JnNvcnRCeT0ke29iai5zb3J0Qnl9JmNsaWVudElkPSR7b2JqLmNsaWVudElkfWApXHJcbiAgfVxyXG5cclxuICBpbWFnZXVwbG9hZCh1c2VyczogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS91cGxvYWRgLCB1c2VycylcclxuICB9XHJcblxyXG4gIHRhc2tJbWFnZXVwbG9hZCh1c2VyczogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vdXBsb2FkSW1hZ2VgLCB1c2VycylcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlVXNlcih1c2VyczogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS92YWxpZGF0ZVVzZXJgLCB1c2VycylcclxuICB9XHJcblxyXG4gIHRhc2t2YWxpZGF0ZVVzZXJEYXRhKHVzZXJzOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L3Rhc2t2YWxpZGF0ZVVzZXJEYXRhYCwgdXNlcnMpXHJcbiAgfVxyXG4gIGdldGFsbGNoZWNrbGlzdCh1c2VyczogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS9nZXRhbGxjaGVja2xpc3RgLCB1c2VycylcclxuICB9XHJcblxyXG4gIGFzc2lnblVwbG9hZCh1c2VyczphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Fzc2lnblVwbG9hZGAsIHVzZXJzKVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVVc2VydjEodXNlcnM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vdmFsaWRhdGVVc2VydjFgLCB1c2VycylcclxuICB9XHJcblxyXG4gIHRhc2t2YWxpZGF0ZVVzZXJ2MSh1c2VyczogYW55KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS91cGxvYWRgLCB1c2VycylcclxuICB9XHJcbiAgXHJcbiAgdGFza2Fzc2lnblVwbG9hZCh1c2VyczphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9hc3NpZ25VcGxvYWRgLCB1c2VycylcclxuICB9XHJcblxyXG4gIGdldHVwZGF0ZWNoZWNrbGlzdChpZDogYW55LCBkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0L3VwZGF0ZS8ke2lkfWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBjcmVhdGVjaGVja2xpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9jaGVja2xpc3QvY3JlYXRlYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGNvbmZpZ1VwZGF0ZShvYmo6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vY2hlY2tsaXN0Q29uZmlndXJldjFgLCBvYmopXHJcbiAgfVxyXG5cclxuICBhc3NpZ25VcGRhdGUoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L3VwZGF0ZUFzc2lnbmAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBhc3NpZ250YXNrVXBkYXRlKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vdXBkYXRlQXNzaWduYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFpQ29uZmlndXJlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vdXBkYXRlQWlDb25maWd1cmVgLGRhdGEpXHJcbiAgfVxyXG4gXHJcblxyXG4gIGdldGNvbmZpZyhvYmo6IGFueSkge1xyXG4gICAgbGV0IGtleSA9IE9iamVjdC5rZXlzKG9iailbMF07XHJcbiAgICBsZXQgdmFsdWUgPSBvYmpbT2JqZWN0LmtleXMob2JqKVswXV07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L2dldENvbmZpZ0RldGFpbHM/JHtrZXl9PSR7dmFsdWV9JmNsaWVudElkPSR7b2JqW09iamVjdC5rZXlzKG9iailbMV1dfWApXHJcbiAgfVxyXG4gICAgXHJcbiAgZ2V0QUljb25maWcob2JqOiBhbnkpIHtcclxuICAgIGxldCBrZXkgPSBPYmplY3Qua2V5cyhvYmopWzBdO1xyXG4gICAgbGV0IHZhbHVlID0gb2JqW09iamVjdC5rZXlzKG9iailbMF1dO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS9nZXRBaURldGFpbHM/JHtrZXl9PSR7dmFsdWV9JmNsaWVudElkPSR7b2JqW09iamVjdC5rZXlzKG9iailbMV1dfWApXHJcbiAgfVxyXG5cclxuICBydW5BSUluc2VydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L3J1bkFJSW5zZXJ0YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGR1cGxpY2F0ZWNoZWNrbGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFVybH0vZHVwbGljYXRlQ2hlY2tsaXN0LyR7ZGF0YS5jaGVja2xpc3RJZH0/Y2xpZW50SWQ9JHtkYXRhLmNsaWVudElkfWApXHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRGV0YWlscyhvYmo6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS91c2VyRGV0YWlscy8ke29iai5pZH0/b2Zmc2V0PSR7b2JqLm9mZnNldH0mbGltaXQ9JHtvYmoubGltaXR9JnNlYXJjaD0ke29iai5zZWFyY2h9JmNsaWVudElkPSR7b2JqLmNsaWVudElkfWApXHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZVVybH0vc3RvcmVJbmZyYUxpc3RgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ2hlY2tsaXN0KGRhdGE6IGFueSwpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMudHJheFVybH0vZGVsZXRlQ2hlY2tsaXN0LyR7ZGF0YS5pZH0/Y2xpZW50SWQ9JHtkYXRhLmNsaWVudElkfWApXHJcbiAgfVxyXG5cclxuICBwdWJsaXNoKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy50cmF4VXJsfS9wdWJsaXNoYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0U3RvcmVzKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS9nZXQtc3RvcmVzYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldENoZWNrbGlzdHMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2NoZWNrbGlzdERyb3Bkb3duYCwgZGF0YSlcclxuICB9XHJcbiAgdmlld0NoZWNrbGlzdHMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L3ZpZXdjaGVja2xpc3RgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgb3ZlcmFsbEZsYWdNZXRyaWNzKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDYXJkc1YxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIG92ZXJhbGxGbGFnTWV0cmljc0NvbXBhcmlzb24oYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NvbXBhcmlzb25DYXJkc1YyYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGZsYWdzVGFibGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ1RhYmxlc1YxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGZsYWdzVGFibGVWMihib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnVGFibGVzVjJgLCBib2R5KVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0RmxhZ3NUYWJsZShib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnVGFibGVzVjFgLCBib2R5LCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0RmxhZ3NUYWJsZXYyKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdUYWJsZXNWMmAsIGJvZHksIHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIH0pXHJcbiAgfVxyXG5cclxuICBnZXRPdmVyYWxsQ2FyZHNEYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvb3ZlcmFsbENhcmRzVjFgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tsaXN0UGVyZm9ybWFuY2VEYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0UGVyZm9ybWFuY2VgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tsaXN0UGVyZm9ybWFuY2VEYXRhdjIoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9jaGVja2xpc3RQZXJmb3JtYW5jZVYyYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldENoZWNrbGlzdFBlcmZvcm1hbmNlRGF0YUV4cG9ydChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2NoZWNrbGlzdFBlcmZvcm1hbmNlYCwgZGF0YSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcblxyXG4gIGdldENoZWNrbGlzdFBlcmZvcm1hbmNlRGF0YUV4cG9ydHYyKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0UGVyZm9ybWFuY2VWMmAsIGRhdGEsIHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIH0pXHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZVBlcmZvcm1hbmNlRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL3N0b3JlUGVyZm9ybWFuY2VgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVQZXJmb3JtYW5jZURhdGF2MihkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2NoZWNrbGlzdFBlcmZvcm1hbmNlVjJgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVQZXJmb3JtYW5jZURhdGFFeHBvcnQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9zdG9yZVBlcmZvcm1hbmNlYCwgZGF0YSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcblxyXG5cclxuICBnZXRVc2VyUGVyZm9ybWFuY2VEYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvdXNlclBlcmZvcm1hbmNlYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldFVzZXJQZXJmb3JtYW5jZURhdGFFeHBvcnQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC91c2VyUGVyZm9ybWFuY2VgLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tsaXN0RHJvcGRvd25EYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDaGVja2xpc3REcm9wRG93blYxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0Q2hlY2tsaXN0RHJvcGRvd25EYXNoYm9hcmREYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvY2hlY2tsaXN0RHJvcGRvd25gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0SW5mb0NhcmRzRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2luZm9DYXJkc1YxYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGNoZWNrbGlzdEZsYWdUYWJsZShib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnQ2hlY2tsaXN0VGFibGVWMWAsIGJvZHkpXHJcbiAgfVxyXG5cclxuICBDcmVhdGVjaGVja2xpc3RUYXNrKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VGFza1VybH0vY2hlY2tsaXN0VGFza2AsIGJvZHkpXHJcbiAgfVxyXG4gIENyZWF0ZWNoZWNrbGlzdE11bHRpVGFzayhib2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFRhc2tVcmx9L2NoZWNrbGlzdE11bHRpVGFza2AsIGJvZHkpXHJcbiAgfVxyXG4gXHJcbiAgcmVkb1Rhc2tjaGVja2xpc3QoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L3JlZG9gLCBib2R5KVxyXG4gIH1cclxuICByZWRvVGFza211bHRpY2hlY2tsaXN0KGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS9tdWx0aXJlZG9gLCBib2R5KVxyXG4gIH1cclxuICByZWRvbXVsdGlUYXNrKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VGFza1VybH0vbXVsdGlyZWRvYCwgYm9keSlcclxuICB9XHJcbiAgcmVkb1Rhc2soYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhUYXNrVXJsfS9yZWRvYCwgYm9keSlcclxuICB9XHJcbiAgZ2V0cmVkb0xvZ3MoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2dldExvZ3NgLCBib2R5KVxyXG4gIH1cclxuICBleHBvcnRDaGVja2xpc3RGbGFnVGFibGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9mbGFnL2ZsYWdDaGVja2xpc3RUYWJsZVYxYCwgYm9keSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcblxyXG4gIHJlcG9ydFRhYmxlKGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvcmVwb3J0Q2hlY2tsaXN0RGF0YXYxYCwgYm9keSlcclxuICB9XHJcblxyXG4gIGZsYWdDYXJkVmFsdWVzKGJvZHk6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMudHJheFVybH0vZmxhZy9mbGFnQ2hlY2tsaXN0Q2FyZHNWMWAsIGJvZHkpXHJcbiAgfVxyXG5cclxuICBmbGFnQ2FyZFRlcmVuZChib2R5OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvZmxhZ0NoZWNrbGlzdENvbXBhcmlzb25DYXJkc1YxYCwgYm9keSlcclxuICB9XHJcblxyXG5cclxuICBnZXRDaGVja2xpc3RJbmZvRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2NoZWNrbGlzdEluZm9gLCBkYXRhKVxyXG4gIH1cclxuICBnZXRDaGVja2xpc3RJbmZvRGF0YUV4cG9ydChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL2NoZWNrbGlzdEluZm9gLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcmxpc3REcm9wZG93bkRhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC91c2VybGlzdERyb3Bkb3duYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldE1vbnRobHlQZWZvcm1hbmNlRGF0YShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vZGFzaGJvYXJkL21vbnRobHlHcmFwaFYxYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldENsaWVudFVzZXIoY2xpZW50SWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L3VzZXJMaXN0P2NsaWVudElkPSR7Y2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIGdldFpvbmVMaXN0KGNsaWVudElkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS96b25lTGlzdD9jbGllbnRJZD0ke2NsaWVudElkfWApXHJcbiAgfVxyXG4gIGdldEluZm9Db21wYXJpc29uQ2FyZHNEYXRhKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvaW5mb0NvbXBhcmlzb25DYXJkc1YxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0T3ZlcmFsbENvbXBhcmlzb25DYXJkc0RhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9vdmVyYWxsQ29tcGFyaXNvbkNhcmRzVjFgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0YWljaGVja2xpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L2FpY2hlY2tsaXN0P2NsaWVudElkPSR7ZGF0YX1gKVxyXG4gIH1cclxuXHJcbiAgcmVwb3J0VGFibGVFeHBvcnQoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2Rvd25sb2Fkcy9kb3dubG9hZEluc2VydGAsIGJvZHkpXHJcbiAgfVxyXG4gIGFpY2hlY2tsaXN0RXhwb3J0KGJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy50cmF4VXJsfS9kb3dubG9hZHMvZG93bmxvYWRJbnNlcnRBSWAsIGJvZHkpXHJcbiAgfVxyXG4gIGdldHByZWRlZmluZWRjaGVja2xpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L3ByZWRlZmluZWRDaGVja2xpc3Q/Y2xpZW50SWQ9JHtkYXRhfWApXHJcbiAgfVxyXG4gIGdldGNsaWVudChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QVBpVXJsfS9kZXRhaWxlZC1jbGllbnQtY291bnQ/Y2xpZW50SWQ9JHtkYXRhLmNsaWVudElkfWApXHJcbiAgfVxyXG4gIGdldEdyb3VwcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYWZmaWNBcGlVcmx9L2hlYWRlckdyb3Vwc192MWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldGNsdXN0ZXJzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJhZmZpY0FwaVVybH0vaGVhZGVyY2x1c3Rlcl92MmAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldHVzZXJzKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS91c2VyTGlzdGAsZGF0YSlcclxuICB9XHJcbiAgZ2V0QWxsVGVhbXMoY2xpZW50SWQ6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L3RlYW1zTGlzdD9jbGllbnRJZD0ke2NsaWVudElkfWApXHJcbiAgfVxyXG4gIGdldFN0b3Jlc2xpc3QoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2hlYWRlclN0b3Jlc192MmAsZGF0YSlcclxuICB9XHJcbiAgYXBwcm92YWxzdGF0dXNjaGVja2xpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5nYWxsZXJ5QXBpVXJsfS9hcHByb3ZhbHN0YXR1c2AsIGRhdGEpXHJcbiAgfVxyXG4gIGFwcHJvdmFsc3RhdHVzdGFzayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9hcHByb3ZhbHN0YXR1c2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRPcmRlcnNCeURhdGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9sb2N1c29yZGVyL2dldGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBvcmRlclVwZGF0ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2xvY3Vzb3JkZXIvdXBkYXRlYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIG9yZGVyRGVsZXRlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vbG9jdXNvcmRlci9kZWxldGVgLCBkYXRhKVxyXG4gICAgIFxyXG4gIH1cclxuXHJcbiAgaXNMb2N1c0F1dGhvcml6ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L2xvY3Vzb3JkZXIvdXNlci1hbGxvd2VkYClcclxuICB9XHJcbiAgcmVpbml0aWF0ZUNoZWNrbGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9yZWluaXRpYXRlY2hlY2tsaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgY2hlY2tOb3RpZmljYXRpb25Db3VudChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmdhbGxlcnlBcGlVcmx9L2NoZWNrTm90aWZpY2F0aW9uQ291bnRgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cG9ydEFzQ1NWRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nLCBpZGVudGlmaWVyPzogYW55W10pOiB2b2lkIHtcclxuICAgIGNvbnN0IHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbik7XHJcblxyXG4gICAgY29uc3QgY3N2T3V0cHV0OiBzdHJpbmcgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2Nzdih3b3Jrc2hlZXQpO1xyXG4gICAgdGhpcy5zYXZlQXNDU1ZGaWxlKGNzdk91dHB1dCwgZXhjZWxGaWxlTmFtZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgc2F2ZUFzQ1NWRmlsZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgIHR5cGU6IENTVl9UWVBFXHJcbiAgICB9KTtcclxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyBDU1ZfRVhURU5TSU9OKTtcclxuICB9XHJcblxyXG4gIHJlSW5pdGlhdGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2Rhc2hib2FyZC9yZWluaXRpYXRlY2hlY2tsaXN0YCwgYm9keSlcclxuICB9XHJcblxyXG4gIGNyZWF0ZVRhc2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vY3JlYXRlYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldFRhc2tjb25maWcoaWQ6IHN0cmluZywgY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VGFza1VybH0vZGV0YWlscz90YXNrSWQ9JHtpZH0mY2xpZW50SWQ9JHtjbGllbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgY29uZmlnVGFzayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9jb25maWdgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0VGFza1VzZXJEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBmcm9tT2JqZWN0OiBkYXRhIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VGFza1VybH0vdXNlckRldGFpbHNgLCB7IHBhcmFtcyB9KVxyXG4gIH1cclxuXHJcbiAgdXBsb2FkVGFza0Fzc2lnbmVlcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS91cGxvYWRgLCBkYXRhKVxyXG5cclxuICB9XHJcblxyXG4gIFxyXG4gIGdldE92ZXJhbGxUYXNrc0RhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvb3ZlcmFsbGNhcmRzVjFgLCBkYXRhKVxyXG4gIH1cclxuICAvLyBnZXRUYXNrVGFibGVEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Rhc2hib2FyZC90YXNrVGFibGVWMWAsIGRhdGEpXHJcbiAgLy8gfVxyXG4gIC8vIGdldFRhc2tUYWJsZURhdGFFeHBvcnQoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgLy8gICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZGFzaGJvYXJkL3Rhc2tUYWJsZVYxYCwgZGF0YSwge3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgLy8gfVxyXG4gIGdldFRhc2tUYWJsZURhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza0RldGFpbHNgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRUYXNrVGFibGVEYXRhRXhwb3J0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vZGFzaGJvYXJkL3Rhc2tEZXRhaWxzYCwgZGF0YSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcbiAgZ2V0VGFza0luZm9UYWJsZURhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza0luZm9UYWJsZVYxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0VGFza0luZm9UYWJsZURhdGFFeHBvcnQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza0luZm9UYWJsZVYxYCwgZGF0YSwgeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSlcclxuICB9XHJcbiAgZ2V0T3ZlcmFsbEFjdGlvbkNlbnRlckRhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9hY3Rpb25DZW50ZXIvb3ZlcmFsbGNhcmRzVjFgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRBcHByb3ZhbERhdGEoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9hY3Rpb25DZW50ZXIvYXBwcm92YWxUYWJsZVYxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0QWN0aXZpdHlMb2coZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9hY3Rpb25DZW50ZXIvYWN0aXZpdHlMb2dWMWAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldFRhc2tEcm9wZG93bkxpc3QoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9kYXNoYm9hcmQvdGFza0Ryb3Bkb3duTGlzdFYxYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0VGFza0RlbGV0ZShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFRhc2tVcmx9L2Rhc2hib2FyZC90YXNrRGVsZXRlVjFgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRUYXNrVXBkYXRlKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VGFza1VybH0vcmVpbml0aWF0ZWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBzZWxlY3R0YXNrQ2hpcHMoZGF0YTphbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYXhUYXNrVXJsfS9hc3NpZ25gLGRhdGEpXHJcbiAgfVxyXG5cclxuICB0YXNrTGlzdChvYmo6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhUYXNrVXJsfS90YXNrLWxpc3Q/bGltaXQ9JHtvYmoubGltaXR9Jm9mZnNldD0ke29iai5vZmZzZXR9JnNvcnRDb2x1bW5OYW1lPSR7b2JqLnNvcnRDb2x1bW59JnNlYXJjaD0ke29iai5zZWFyY2h9JnNvcnRCeT0ke29iai5zb3J0Qnl9JmNsaWVudElkPSR7b2JqLmNsaWVudElkfWApXHJcbiAgfVxyXG5cclxuICBwdWJsaXNoVGFzayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMudHJheFRhc2tVcmx9L3B1Ymxpc2hgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZHVwbGljYXRlVGFzayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudHJheFRhc2tVcmx9L2R1cGxpY2F0ZVRhc2svJHtkYXRhLmNoZWNrbGlzdElkfT9jbGllbnRJZD0ke2RhdGEuY2xpZW50SWR9YClcclxuICB9XHJcbiAgZ2V0U2VuZEFsZXJ0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9kYXNoYm9hcmQvc2VuZEFsZXJ0YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldGFzc2lnbkRyb3Bkb3duKGRhdGE6YW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9zZWxlY3RBc3NpZ25gLGRhdGEpXHJcbiAgfVxyXG5cclxuICBzZWxlY3RDaGlwcyhkYXRhOmFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJheFVybH0vYXNzaWduYCxkYXRhKVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ2hpcHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmF4VXJsfS9yZW1vdmVgLGRhdGEpICAgXHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRGV0YWlsc1YyKG9iajogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhVcmx9L3VzZXJEZXRhaWxzLyR7b2JqLmNoZWNrbGlzdElkfT9vZmZzZXQ9JHtvYmoub2Zmc2V0fSZsaW1pdD0ke29iai5saW1pdH0mc2VhcmNoPSR7b2JqLnNlYXJjaH0mY2xpZW50SWQ9JHtvYmouY2xpZW50SWR9JnNvcnRDb2x1bW49JHtvYmouc29ydENvbHVtbn0mc29ydEJ5PSR7b2JqLnNvcnRCeX1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckRldGFpbHNWMShvYmo6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy50cmF4VXJsfS91c2VyRGV0YWlsc3YxLyR7b2JqLmlkfT9jbGllbnRJZD0ke29iaj8uY2xpZW50SWR9YClcclxuICB9XHJcblxyXG4gIGdldHRhc2tVc2VyRGV0YWlsc1YxKG9iajogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnRyYXhUYXNrVXJsfS91c2VyRGV0YWlscy8/dGFza0lkPSR7b2JqLmlkfSZjbGllbnRJZD0ke29iaj8uY2xpZW50SWR9YClcclxuICB9XHJcbiAgY2hlY2tsaXN0Q291bnRCeVR5cGUoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnRyYXhVcmx9L2ZsYWcvY2hlY2tsaXN0Q291bnRCeVR5cGVgLCBib2R5KVxyXG4gIH1cclxuICBhY3Rpdml0eUxvZ0xpc3QoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFjdGl2aXR5bG9nVXJsfS9saXN0TG9nYCwgZGF0YSlcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -10,7 +10,7 @@ import 'dayjs/locale/en';
10
10
  import { BehaviorSubject, takeUntil, Subject } from 'rxjs';
11
11
  import * as i1$1 from '@angular/forms';
12
12
  import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
13
- import { T as TraxService } from './tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-bWZT0X9J.mjs';
13
+ import { T as TraxService } from './tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-GDb7SVZD.mjs';
14
14
  import * as FileSaver from 'file-saver';
15
15
  import * as XLSX from 'xlsx';
16
16
  import * as i1 from '@angular/common/http';
@@ -1524,4 +1524,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
1524
1524
  }] });
1525
1525
 
1526
1526
  export { EyeTestAuditModule };
1527
- //# sourceMappingURL=tango-app-ui-analyse-trax-eye-test-audit.module-CbPBGiAI.mjs.map
1527
+ //# sourceMappingURL=tango-app-ui-analyse-trax-eye-test-audit.module-DYtk5gHI.mjs.map