gamma-app-controller 1.2.28 → 1.2.30

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.
Files changed (58) hide show
  1. package/esm2020/lib/application-controller/application-content.service.mjs +3 -3
  2. package/esm2020/lib/application-controller/application-controller.module.mjs +9 -5
  3. package/esm2020/lib/application-controller/application-dataset-component/create-dataset/create-dataset.component.mjs +2 -2
  4. package/esm2020/lib/application-controller/application-dataset-component/create-dataset-sql/create-dataset-sql.component.mjs +3 -3
  5. package/esm2020/lib/application-controller/application-menu-controller/application-create-menu/application-create-menu.component.mjs +15 -39
  6. package/esm2020/lib/application-controller/application-menu-controller/application-menus/application-menus.component.mjs +5 -5
  7. package/esm2020/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.mjs +4 -1
  8. package/esm2020/lib/application-controller/common.mjs +1 -1
  9. package/esm2020/lib/application-controller/page-controller/page-controller/page-controller.component.mjs +12 -6
  10. package/esm2020/lib/application-controller/support-components/dash-chart/dash-chart.component.mjs +19 -4
  11. package/esm2020/lib/application-controller/support-components/dash-table/dash-table.component.mjs +8 -4
  12. package/esm2020/lib/application-controller/support-components/dash-today-previous/dash-today-previous.component.mjs +3 -3
  13. package/esm2020/lib/application-controller/support-components/table-with-bar/table-with-bar.component.mjs +9 -5
  14. package/esm2020/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +3 -3
  15. package/esm2020/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +1 -4
  16. package/esm2020/lib/shared/gamma-bread-crumbs/bread-crumbs.component.mjs +1 -3
  17. package/esm2020/lib/shared/permission-helper.mjs +54 -0
  18. package/esm2020/lib/shared/security_principal.mjs +3 -0
  19. package/esm2020/lib/shared/shared.module.mjs +119 -0
  20. package/esm2020/lib/shared/template-dataset-call-service.mjs +376 -0
  21. package/esm2020/lib/shared/user-access/user-access.component.mjs +51 -0
  22. package/esm2020/lib/template-module/KpiCreationModule/create-kpi-tree.component.mjs +38 -4
  23. package/esm2020/lib/template-module/KpiCreationModule/kpiCreation.module.mjs +7 -3
  24. package/esm2020/lib/template-module/bookmarked-template/bookmarked-dataset-call.service.mjs +12 -344
  25. package/esm2020/lib/template-module/defaulLandingComponent/landing-component.component.mjs +2 -2
  26. package/esm2020/lib/template-module/defaulLandingComponent/landing-dataset-call.service.mjs +12 -344
  27. package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.component.mjs +1 -3
  28. package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/multi-landing-dataset-call.service.mjs +12 -344
  29. package/esm2020/lib/template-module/kpiWithMultiLayout/multi-layout-dataset-call.service.mjs +13 -345
  30. package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.mjs +55 -26
  31. package/esm2020/lib/template-module/kpiWithSingleLayout/single-layout-dataset-call.service.mjs +12 -347
  32. package/esm2020/public-api.mjs +6 -1
  33. package/fesm2015/gamma-app-controller.mjs +1863 -2879
  34. package/fesm2015/gamma-app-controller.mjs.map +1 -1
  35. package/fesm2020/gamma-app-controller.mjs +1237 -2257
  36. package/fesm2020/gamma-app-controller.mjs.map +1 -1
  37. package/lib/application-controller/application-content.service.d.ts +1 -1
  38. package/lib/application-controller/application-controller.module.d.ts +2 -1
  39. package/lib/application-controller/application-menu-controller/application-create-menu/application-create-menu.component.d.ts +2 -4
  40. package/lib/application-controller/page-controller/page-controller/page-controller.component.d.ts +3 -1
  41. package/lib/application-controller/support-components/dash-chart/dash-chart.component.d.ts +2 -0
  42. package/lib/application-controller/support-components/dash-table/dash-table.component.d.ts +1 -0
  43. package/lib/application-controller/support-components/table-with-bar/table-with-bar.component.d.ts +1 -0
  44. package/lib/shared/permission-helper.d.ts +8 -0
  45. package/lib/shared/security_principal.d.ts +2 -0
  46. package/lib/shared/shared.module.d.ts +10 -0
  47. package/lib/shared/template-dataset-call-service.d.ts +23 -0
  48. package/lib/shared/user-access/user-access.component.d.ts +20 -0
  49. package/lib/template-module/KpiCreationModule/create-kpi-tree.component.d.ts +2 -0
  50. package/lib/template-module/KpiCreationModule/kpiCreation.module.d.ts +2 -1
  51. package/lib/template-module/bookmarked-template/bookmarked-dataset-call.service.d.ts +6 -13
  52. package/lib/template-module/defaulLandingComponent/landing-dataset-call.service.d.ts +5 -12
  53. package/lib/template-module/defaulLandingMultiLayoutComponent/multi-landing-dataset-call.service.d.ts +5 -12
  54. package/lib/template-module/kpiWithMultiLayout/multi-layout-dataset-call.service.d.ts +6 -13
  55. package/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.d.ts +4 -2
  56. package/lib/template-module/kpiWithSingleLayout/single-layout-dataset-call.service.d.ts +5 -14
  57. package/package.json +1 -1
  58. package/public-api.d.ts +5 -0
@@ -520,8 +520,8 @@ export class ApplicationContentService {
520
520
  return response;
521
521
  }), catchError(this.handleError));
522
522
  }
523
- getListOfParentAppMenu() {
524
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getListOfParentAppMenu';
523
+ listAppMenuConfigs() {
524
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/listAppMenuConfigs';
525
525
  return this.http
526
526
  .get(apiUrl, { withCredentials: true })
527
527
  .pipe(map((response) => {
@@ -656,4 +656,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
656
656
  type: Inject,
657
657
  args: [APP_ENVIRONMENT]
658
658
  }] }]; } });
659
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHaEQsTUFBTSxPQUFPLHlCQUF5QjtJQVFsQyxZQUFtQixJQUFnQixFQUFvQyxXQUFnQjtRQUFwRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQW9DLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBSGhGLFlBQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNwRSxZQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFTMUQsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELG1CQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDaEQsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBVi9DLENBQUM7SUFFRCxXQUFXLENBQUMsS0FB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QVUsR0FBRyw4QkFBOEIsQ0FBQzthQUUzRixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDOztzSEF2M0JRLHlCQUF5Qiw0Q0FRWSxlQUFlOzBIQVJwRCx5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTs7MEJBU2dDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwSHR0cFNlcnZpY2UgfSBmcm9tICcuL2FwcC5odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVBQX0VOVklST05NRU5UIH0gZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlICB7XG5cblxuICAgXG5cbiAgICBwdWJsaWMgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBwdWJsaWMgb3B0aW9ucyA9IHsgaGVhZGVyczogdGhpcy5oZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LCAgQEluamVjdChBUFBfRU5WSVJPTk1FTlQpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSkge1xuICAgIH1cblxuICAgIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiBPYnNlcnZhYmxlPFJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGtwaUZpbHRlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihbXSk7XG4gICAgdXNlcmtwaUZpbHRlciQgPSB0aGlzLmtwaUZpbHRlci5hc09ic2VydmFibGUoKTtcblxuICAgIHByaXZhdGUgZGF0YXNldHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oW10pO1xuICAgIHVwZGF0ZURhdHNzZXRzJCA9IHRoaXMuZGF0YXNldHMuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBnZXRGaWx0ZXJGb3JLcGkocGluczogYW55KSB7XG4gICAgICAgIHRoaXMua3BpRmlsdGVyLm5leHQocGlucyk7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudEtwaUZpbHRlclZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5rcGlGaWx0ZXIuZ2V0VmFsdWUoKTtcbiAgICB9XG4gICAgc2V0Q3VycmVudERhdGFzZXRWYWx1ZShkYXRhOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YXNldHMubmV4dChkYXRhKTtcbiAgICB9XG5cblxuXG4gICAgZ2V0RGF0YVNldCgpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSAnL2Fzc2V0cy9hcGktZGF0YS9kYXRhLXNldC5qc29uJztcbiAgICAgICAgLy8gY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5nYXRld2F5VXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcHBOYW1lICsgJy9hc3NldHMvYXBpLWRhdGEvZGFzaGJvYXJkLmpzb24nO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgICApO1xuICAgIH1cbiAgICBnZXRDb21wb25lbnREYXRhQ29uZmlnU2V0KCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9ICcvYXNzZXRzL2FwaS1kYXRhL2NvbXBvbmVudF9jb25maWcuanNvbic7XG4gICAgICAgIC8vIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuZ2F0ZXdheVVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBwTmFtZSArICcvYXNzZXRzL2FwaS1kYXRhL2Rhc2hib2FyZC5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBsaXN0Q29sdW1uRW5yaWNobWVudEZ1bmN0aW9ucygpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpL2xpc3RDb2x1bW5FbnJpY2htZW50RnVuY3Rpb25zJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QoYXBpVXJsLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cbiAgICB2YWxpZGF0ZUFnZ3JlZ2F0ZVBhZ2luYXRlZFF1ZXJ5KHRyYW5zZm9ybWVkT2JqZWN0KTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS92YWxpZGF0ZUFnZ3JlZ2F0ZVBhZ2luYXRlZFF1ZXJ5JztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QoYXBpVXJsLCBKU09OLnN0cmluZ2lmeSh0cmFuc2Zvcm1lZE9iamVjdCksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgZ2V0S3BpQnJvd3NlckNvbmZpZ0J5SWQoaWQpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRLcGlCcm93c2VyQ29uZmlnQnlJZD9pZD0nICsgaWQ7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cbiAgICBnZXREYXRhKGJvZHksIHJlcXVlc3RJRCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgcmVxdWVzdElELCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGdldFNpbXBsZUFwaVBvc3RSZXF1ZXN0KHJlcXVlc3RBcGksIGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIHJlcXVlc3RBcGksIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldFNpbXBsZUFwaUdldFJlcXVlc3QocmVxdWVzdEFwaSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyByZXF1ZXN0QXBpLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRKc29uRGF0YXNldFBheWxvYWQocmVxdWVzdEFwaSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyByZXF1ZXN0QXBpLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZW5lcmljU3FsUXVlcnlSZXNwb25zZShyZXF1ZXN0QXBpLCBib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyByZXF1ZXN0QXBpLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIC8vIGRhdGFzZXQgYXBpc1xuICAgIGNyZWF0ZUFwcERhdGFzZXQoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2NyZWF0ZUFwcERhdGFzZXQnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIHVwZGF0ZUFwcERhdGFzZXRDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL3VwZGF0ZUFwcERhdGFzZXRDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGRlbGV0ZUFwcERhdGFzZXRDb25maWcoZGF0YXNldElkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9kZWxldGVBcHBEYXRhc2V0Q29uZmlnLycgKyBkYXRhc2V0SWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0QXBwRGF0YXNldENvbmZpZ3MoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0QXBwRGF0YXNldENvbmZpZ3MnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuICAgIGdldEFwcERhdGFzZXRDb25maWcoZGF0YXNldElkKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0QXBwRGF0YXNldENvbmZpZz9kYXRhc2V0SWQ9JyArIGRhdGFzZXRJZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuICAgIC8vdmlld3MgY29tcG9uZW50IGFwaXNcbiAgICBjcmVhdGVBcHBWaWV3Q29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jcmVhdGVBcHBWaWV3Q29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICB1cGRhdGVBcHBWaWV3Q29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy91cGRhdGVBcHBWaWV3Q29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0QXBwVmlld0NvbmZpZ3MoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0QXBwVmlld0NvbmZpZ3MnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuICAgIGdldEFwcFZpZXdDb25maWcodmlld0lkKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0QXBwVmlld0NvbmZpZz92aWV3SWQ9JyArIHZpZXdJZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBkZWxldGVBcHBWaWV3Q29uZmlnKGRhdGFzZXRJZCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGUodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZGVsZXRlQXBwVmlld0NvbmZpZy8nICsgZGF0YXNldElkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIC8vZmlsdGVyIGNvbnRlbnQgYXBpc1xuICAgIGNyZWF0ZUFwcEZpbHRlckNvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvY3JlYXRlQXBwRmlsdGVyQ29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBlZGl0QXBwRmlsdGVyQ29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9lZGl0QXBwRmlsdGVyQ29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0QXBwRmlsdGVyQ29uZmlncygpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBGaWx0ZXJDb25maWdzJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuICAgIGRlbGV0ZUFwcEZpbHRlckNvbmZpZyhmaWx0ZXJJZCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGUodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZGVsZXRlQXBwRmlsdGVyQ29uZmlnLycgKyBmaWx0ZXJJZCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG5cblxuXG5cblxuXG5cbiAgICBnZXRNYXBEYXRhKGJvZHksIHJlcXVlc3RJRCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9ICcvYXNzZXRzL2FwaS1kYXRhL21hcGpzb24uanNvbic7XG4gICAgICAgIC8vIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuZ2F0ZXdheVVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBwTmFtZSArICcvYXNzZXRzL2FwaS1kYXRhL21hcGpzb24uanNvbic7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG4gICAgZ2V0RGFzaEJvYXJkSnNvbigpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSAnL2Fzc2V0cy9hcGktZGF0YS9kYXNoYm9hcmRfbGViYXJhLmpzb24nO1xuICAgICAgICAvLyBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmdhdGV3YXlVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwcE5hbWUgKyAnL2Fzc2V0cy9hcGktZGF0YS9kYXNoYm9hcmQuanNvbic7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0QXBwUGFnZUNvbmZpZ3MoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0QXBwUGFnZUNvbmZpZ3MnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgY3JlYXRlQXBwUGFnZUNvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvY3JlYXRlQXBwUGFnZUNvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZWRpdEFwcFBhZ2VDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2VkaXRBcHBQYWdlQ29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBkZWxldGVBcHBQYWdlQ29uZmlnKHBhZ2VJZCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGUodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZGVsZXRlQXBwUGFnZUNvbmZpZy8nICsgcGFnZUlkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIHdpZGdldFxuICAgIGNyZWF0ZUFwcFdpZGdldENvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvY3JlYXRlQXBwV2lkZ2V0Q29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZWRpdEFwcFdpZGdldENvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZWRpdEFwcFdpZGdldENvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldEFwcFBhZ2VEZXRhaWxDb25maWcocGFnZUlkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBQYWdlRGV0YWlsQ29uZmlnP3BhZ2VDb25maWdJZD0nICsgcGFnZUlkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZGVsZXRlQXBwV2lkZ2V0Q29uZmlnKGZpbHRlcklkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9kZWxldGVBcHBXaWRnZXRDb25maWcvJyArIGZpbHRlcklkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldEFwcEZpbHRlckNvbmZpZyhmaWx0ZXJJZCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZ2V0QXBwRmlsdGVyQ29uZmlnP2ZpbHRlcklkPScgKyBmaWx0ZXJJZCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGdldEtQSVJlZmVyZW5jZUVuZFBvaW50cygpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRLUElSZWZlcmVuY2VFbmRQb2ludHMnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG5cbiAgICAvLyBwYWdlIHRlbXBsYXRlXG4gICAgbG9hZEtwaUJyb3dzZXIoKTogYW55IHtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGkvbG9hZEtwaUJyb3dzZXInLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGdldGxpc3RLcGlCcm93c2VyKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2xpc3RLcGlCcm93c2VyJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuICAgIGdldEJvb2ttYXJrZWRSZXNvdXJjZSgpOiBhbnkge1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS9nZXRCb29rbWFya2VkUmVzb3VyY2UnLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBib29rbWFya1Jlc291cmNlKGJvZHkpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpL2Jvb2ttYXJrUmVzb3VyY2UnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuXG4gICAgLy8gY3JlYXRlIGtwaVxuICAgIGNvbmZpZ3VyZUtwaUJyb3dzZXJDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2NvbmZpZ3VyZUtwaUJyb3dzZXJDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGdldENyZWF0ZUtwaShib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvY3JlYXRlS3BpJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgdXBsb2FkRGF0YXNldEpzb25QYXlsb2FkKGZvcm1EYXRhKTogYW55IHtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAnZW5jdHlwZSc6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJyxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IGhlYWRlcnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL3VwbG9hZERhdGFzZXRKc29uUGF5bG9hZCcsIGZvcm1EYXRhLCBvcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG4gICAgLy8gY2RyIGNvbmZpZyBzZXJ2aWNlXG5cbiAgICBnZXRLcGlEYXRhKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlUGF0aH1hc3NldHMvYXBpLWRhdGEvcG9saWN5Lmpzb25gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGdldEdyb3VwRGV0YWlscygpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9qb2JzL2dldEdyb3VwRGV0YWlscycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgbG9hZHRhYmxlTmFtZSgpOiBhbnkge1xuICAgICAgICBjb25zdCBhcHBVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldFNlYXJjaERhdGFzb3VyY2VEZXRhaWxzJztcbiAgICAgICAgLy8gY29uc3QgYXBwVXJsID0gJy9hc3NldHMvYXBpLWRhdGEvZ2V0U2VhcmNoRGF0YXNvdXJjZURldGFpbHMuanNvbic7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwcFVybCk7XG4gICAgfVxuXG5cbiAgICBnZXRTZWFyY2hSZXN1bHRGb3JEYXRhc291cmNlKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldFNlYXJjaFJlc3VsdEZvckRhdGFzb3VyY2UnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGFqYXhTZWxmUHJldkFjdGl2aXR5TG9ncygpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZ2V0VXNlckNkckJyb3dzZXJBY3Rpdml0eUxvZ3M/YWN0aXZpdHlDb3VudD01MCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0Q2RyQnJvd3NlckFjdGl2aXR5TG9ncyhzdGFydERhdGUsIGVuZERhdGUpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZ2V0Q2RyQnJvd3NlckFjdGl2aXR5TG9ncz9zdGFydERhdGU9JyArIHN0YXJ0RGF0ZSArICcmZW5kRGF0ZT0nICsgZW5kRGF0ZSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0QXZhaWxhYmxlVGFibGVzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRBdmFpbGFibGVUYWJsZXMnLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRUYWJsZU1ldGFkYXRhKHRhYmxlTmFtZSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRUYWJsZU1ldGFkYXRhP3RhYmxlTmFtZT0nICsgdGFibGVOYW1lLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRDZHJCcm93c2VyT3BlcmF0aW9ucygpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZ2V0Q2RyQnJvd3Nlck9wZXJhdGlvbnMnLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRTZWFyY2hEYXRhc291cmNlRGV0YWlscygpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZ2V0U2VhcmNoRGF0YXNvdXJjZURldGFpbHMnLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIHNhdmVEYXRhc291cmNlQ29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL3NhdmVEYXRhc291cmNlQ29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZWRpdERhdGFzb3VyY2VDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZWRpdERhdGFzb3VyY2VDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBkZWxldGVEYXRhc291cmNlQ29uZmlnKHRhYmxlTmFtZSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGUodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9kZWxldGVEYXRhc291cmNlQ29uZmlnLycgKyB0YWJsZU5hbWUsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgLy8gdmlldyB3aXRoIGRhdGFzZXRzXG5cbiAgICBnZXRLcGlDb25maWdhcmF0aW9uKCk6IGFueSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAvLyAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9yZXBvcnRzL2dldEFwcENvbmZpZ3VyZWRSZXBvcnRDb25maWcnLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5nYXRld2F5VXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcHBOYW1lICsgJ2Fzc2V0cy9hcGktZGF0YS9rcGktY29uZmlnLmpzb24nLCB7XG4gICAgICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cblxuXG4gICAgZ2V0bGlzdEtwaUJyb3dzZXJUd28oKTogYW55IHtcbiAgICAgICAgLy8gY29uc3QgYXBpVXJsID0gJy9hc3NldHMvYXBpLWRhdGEvZGFzaGJvYXJkLmpzb24nO1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmdhdGV3YXlVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwcE5hbWUgKyAnL2Fzc2V0cy9hcGktZGF0YS9kYXNoYm9hcmQuanNvbic7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0ZmlsdGVyRGF0YSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KFwiL2Fzc2V0cy9hcGktZGF0YS9maWx0ZXItZGlyZWN0aW9uLmpzb25cIilcbiAgICAgICAgICAgIC8vIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyBhcGkgKyAnPycrIHVybCApXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cblxuICAgIGdlbmVyaWNEZXRhaWxEYXRhUmVzcG9uc2UoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGkvZ2VuZXJpY0RldGFpbERhdGFSZXNwb25zZScsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cbiAgICBnZXRVbmlxdWVEYXRhKGFwaSk6IE9ic2VydmFibGU8UmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIGFwaSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuICAgIGdldEZpbHRlckRhdGFCeURyaWxsRG93bihhcGlOYW1lKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyBhcGlOYW1lO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG5cbiAgICAvLyBzaGVhcmQgbW9kdWxlXG5cblxuICAgIGdldERhdGFCeUFQSShyZXF1ZXN0SUQsIGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIHJlcXVlc3RJRCwgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuXG4gICAgZ2V0Q2RyRGF0YShhcGksIHVybCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyBhcGkgKyAnPycgKyB1cmwpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cbiAgICBnZXRTcnZUeXBlRGF0YVNvdXJjZSgpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpL3Nydi1wYXJhbXMnO1xuICAgICAgICAvLyBjb25zdCBhcGlVcmwgPSBlbnZpcm9ubWVudC5nYXRld2F5VXJsICsgZW52aXJvbm1lbnQuYXBwTmFtZSArICcvYXNzZXRzL2FwaS1kYXRhL3Nydl90eXBlX3BhcmFtcy5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAvLyAuZ2V0KGVudmlyb25tZW50LmFwcFVybCArIGVudmlyb25tZW50LmFwaVZlcnNpb24gKyBhcGkgKyAnPycrIHVybCApXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIHBhZ2ludGVkQWN0aXZpdHlMb2dzKHBhcm1zLCBhcGkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIGFwaTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QoYXBpVXJsLCBKU09OLnN0cmluZ2lmeShwYXJtcyksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBnZXRBcGlEYXRhKCk6IGFueSB7XG4gICAgICAgIC8vIGNvbnN0IGFwaVVybCA9IGVudmlyb25tZW50LmFwcFVybCArIGVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2FwcC1zZXR0aW5nL2dldEludGVncmF0ZWRBcHBzJztcbiAgICAgICAgY29uc3QgYXBpVXJsID0gJy9hc3NldHMvYXBpLWRhdGEvYXBpLXNlcnZpY2UuanNvbic7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cblxuICAgIC8vIGFwcCBtZW51IGNvbnRyb2xsZXJcblxuICAgIGNvbmZpZ3VyZUFwcE1lbnVDb25maWcobWFudWVDb25maWcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jb25maWd1cmVBcHBNZW51Q29uZmlnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QoYXBpVXJsLCBKU09OLnN0cmluZ2lmeShtYW51ZUNvbmZpZyksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0TGlzdE9mUGFyZW50QXBwTWVudSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRMaXN0T2ZQYXJlbnRBcHBNZW51JztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldEFwcEFwcE1lbnVDb25maWdCeUlkKG1hbnVpZCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcEFwcE1lbnVDb25maWdCeUlkP21lbnVJZD0nICsgbWFudWlkO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICB1cGRhdGVBcHBNZW51Q29uZmlnKG1hbnVlQ29uZmlnKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvdXBkYXRlQXBwTWVudUNvbmZpZyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGFwaVVybCwgSlNPTi5zdHJpbmdpZnkobWFudWVDb25maWcpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZGVsZXRlQXBwTWVudUNvbmZpZyhtZW51SWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2RlbGV0ZUFwcE1lbnVDb25maWcvJyArIG1lbnVJZCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuICAgIC8vIG1ldHJpY3Mgc2VydmljZXNcblxuICAgIGxpc3RNZXRyaWNDb25maWdzKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZXR0aW5ncy9tZXRyaWNzL2xpc3RNZXRyaWNDb25maWdzJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuICAgIGRlbGV0ZU1ldHJpY0NvbmZpZyhtZXRyaWNJZCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGUodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NldHRpbmdzL21ldHJpY3MvZGVsZXRlTWV0cmljQ29uZmlnLycgKyBtZXRyaWNJZCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIHNhdmVPbmxpbmVNZXRyaWNDb25maWcobWV0cmljQ29uZmlnKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NldHRpbmdzL21ldHJpY3Mvc2F2ZU9ubGluZU1ldHJpY0NvbmZpZyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGFwaVVybCwgSlNPTi5zdHJpbmdpZnkobWV0cmljQ29uZmlnKSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBlZGl0T2ZmbGluZU1ldHJpY0NvbmZpZyhtZXRyaWNDb25maWcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2V0dGluZ3MvbWV0cmljcy9lZGl0T2ZmbGluZU1ldHJpY0NvbmZpZyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGFwaVVybCwgSlNPTi5zdHJpbmdpZnkobWV0cmljQ29uZmlnKSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIC8vIGV4Y2VwdGlvbiBzZXJ2aWNlXG5cbiAgICBzYXZlRmlsZVNlcXVlbmNlQW5hbHl6ZXJHcm91cChib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NldHRpbmdzL29wZXJhdGlvbnMvc2F2ZUZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXAnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBlZGl0RmlsZVNlcXVlbmNlQW5hbHl6ZXJHcm91cChib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NldHRpbmdzL29wZXJhdGlvbnMvZWRpdEZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXAnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG4gICAgLy8gZ2V0Q2RyQnJvd3Nlck9wZXJhdGlvbnMoKTogYW55IHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgIC8vICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldENkckJyb3dzZXJPcGVyYXRpb25zJywgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAvLyAgICAgICAgIC5waXBlKFxuICAgIC8vICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgLy8gICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAvLyAgICAgICAgICAgICB9KSxcbiAgICAvLyAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICAvLyB9XG5cbiAgICBnZXRBcHBTcWxGdW5jdGlvbkxpc3QoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2FwcC1zZXR0aW5nL2dldEFwcFNxbEZ1bmN0aW9uTGlzdCc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cbiAgICBsaXN0RmlsZVNlcXVlbmNlQW5hbHl6ZXJHcm91cHMoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NldHRpbmdzL29wZXJhdGlvbnMvbGlzdEZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXBzJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuXG4gICAgZGVsZXRlRmlsZVNlcXVlbmNlQW5hbHl6ZXJHcm91cChjb25maWdpZCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGUoXG4gICAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyBcIi9zZXR0aW5ncy9vcGVyYXRpb25zL2RlbGV0ZUZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXAvXCIgKyBjb25maWdpZCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGFjdGl2YXRlRmlsZVNlcXVlbmNlQW5hbHl6ZXJHcm91cChjb25maWdpZCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoXG4gICAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyBcIi9zZXR0aW5ncy9vcGVyYXRpb25zL2FjdGl2YXRlRmlsZVNlcXVlbmNlQW5hbHl6ZXJHcm91cD9jb25maWdJZD1cIiArIGNvbmZpZ2lkLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZGVhY3RpdmF0ZUZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXAoY29uZmlnaWQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KFxuICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgXCIvc2V0dGluZ3Mvb3BlcmF0aW9ucy9kZWFjdGl2YXRlRmlsZVNlcXVlbmNlQW5hbHl6ZXJHcm91cD9jb25maWdJZD1cIiArIGNvbmZpZ2lkLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgdXBkYXRlRmlsZVNlcXVlbmNlQW5hbHl6ZXJKb2JzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoXG4gICAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyBcIi9zZXR0aW5ncy9vcGVyYXRpb25zL3VwZGF0ZUZpbGVTZXF1ZW5jZUFuYWx5emVySm9ic1wiLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0QXBwRGF0YXNvdXJjZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvb3BlcmF0aW9ucy9nZXRBcHBEYXRhc291cmNlJylcbiAgICAgICAgICAgIC8vIC5nZXQoJy9hc3NldHMvYXBpLWRhdGEvZ2V0QXBwRGF0YXNvdXJjZS5qc29uJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxufVxuIl19
659
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHaEQsTUFBTSxPQUFPLHlCQUF5QjtJQVFsQyxZQUFtQixJQUFnQixFQUFvQyxXQUFnQjtRQUFwRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQW9DLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBSGhGLFlBQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNwRSxZQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFTMUQsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELG1CQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDaEQsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBVi9DLENBQUM7SUFFRCxXQUFXLENBQUMsS0FB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VSxHQUFHLDhCQUE4QixDQUFDO2FBRTNGLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDdkIsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3NIQTMzQlEseUJBQXlCLDRDQVFZLGVBQWU7MEhBUnBELHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVOzswQkFTZ0MsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY2F0Y2hFcnJvciwgbWFwLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcHBIdHRwU2VydmljZSB9IGZyb20gJy4vYXBwLmh0dHAuc2VydmljZSc7XG5pbXBvcnQgeyBBUFBfRU5WSVJPTk1FTlQgfSBmcm9tICcuL2Vudmlyb25tZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UgIHtcblxuXG4gICBcblxuICAgIHB1YmxpYyBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgIHB1YmxpYyBvcHRpb25zID0geyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9O1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBDbGllbnQsICBASW5qZWN0KEFQUF9FTlZJUk9OTUVOVCkgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgfVxuXG4gICAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IE9ic2VydmFibGU8UmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgIH1cblxuICAgIHByaXZhdGUga3BpRmlsdGVyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFtdKTtcbiAgICB1c2Vya3BpRmlsdGVyJCA9IHRoaXMua3BpRmlsdGVyLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBkYXRhc2V0cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihbXSk7XG4gICAgdXBkYXRlRGF0c3NldHMkID0gdGhpcy5kYXRhc2V0cy5hc09ic2VydmFibGUoKTtcblxuICAgIGdldEZpbHRlckZvcktwaShwaW5zOiBhbnkpIHtcbiAgICAgICAgdGhpcy5rcGlGaWx0ZXIubmV4dChwaW5zKTtcbiAgICB9XG5cbiAgICBnZXRDdXJyZW50S3BpRmlsdGVyVmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmtwaUZpbHRlci5nZXRWYWx1ZSgpO1xuICAgIH1cbiAgICBzZXRDdXJyZW50RGF0YXNldFZhbHVlKGRhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhc2V0cy5uZXh0KGRhdGEpO1xuICAgIH1cblxuXG5cbiAgICBnZXREYXRhU2V0KCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9ICcvYXNzZXRzL2FwaS1kYXRhL2RhdGEtc2V0Lmpzb24nO1xuICAgICAgICAvLyBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmdhdGV3YXlVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwcE5hbWUgKyAnL2Fzc2V0cy9hcGktZGF0YS9kYXNoYm9hcmQuanNvbic7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGdldENvbXBvbmVudERhdGFDb25maWdTZXQoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gJy9hc3NldHMvYXBpLWRhdGEvY29tcG9uZW50X2NvbmZpZy5qc29uJztcbiAgICAgICAgLy8gY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5nYXRld2F5VXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcHBOYW1lICsgJy9hc3NldHMvYXBpLWRhdGEvZGFzaGJvYXJkLmpzb24nO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGxpc3RDb2x1bW5FbnJpY2htZW50RnVuY3Rpb25zKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGkvbGlzdENvbHVtbkVucmljaG1lbnRGdW5jdGlvbnMnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuICAgIHZhbGlkYXRlQWdncmVnYXRlUGFnaW5hdGVkUXVlcnkodHJhbnNmb3JtZWRPYmplY3QpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpL3ZhbGlkYXRlQWdncmVnYXRlUGFnaW5hdGVkUXVlcnknO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIEpTT04uc3RyaW5naWZ5KHRyYW5zZm9ybWVkT2JqZWN0KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cbiAgICBnZXRLcGlCcm93c2VyQ29uZmlnQnlJZChpZCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEtwaUJyb3dzZXJDb25maWdCeUlkP2lkPScgKyBpZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuICAgIGdldERhdGEoYm9keSwgcmVxdWVzdElEKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyByZXF1ZXN0SUQsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0U2ltcGxlQXBpUG9zdFJlcXVlc3QocmVxdWVzdEFwaSwgYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgcmVxdWVzdEFwaSwgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0U2ltcGxlQXBpR2V0UmVxdWVzdChyZXF1ZXN0QXBpKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIHJlcXVlc3RBcGksIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldEpzb25EYXRhc2V0UGF5bG9hZChyZXF1ZXN0QXBpKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIHJlcXVlc3RBcGksIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdlbmVyaWNTcWxRdWVyeVJlc3BvbnNlKHJlcXVlc3RBcGksIGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIHJlcXVlc3RBcGksIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgLy8gZGF0YXNldCBhcGlzXG4gICAgY3JlYXRlQXBwRGF0YXNldChib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvY3JlYXRlQXBwRGF0YXNldCcsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgdXBkYXRlQXBwRGF0YXNldENvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvdXBkYXRlQXBwRGF0YXNldENvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZGVsZXRlQXBwRGF0YXNldENvbmZpZyhkYXRhc2V0SWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2RlbGV0ZUFwcERhdGFzZXRDb25maWcvJyArIGRhdGFzZXRJZCwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBcHBEYXRhc2V0Q29uZmlncygpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBEYXRhc2V0Q29uZmlncyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG4gICAgZ2V0QXBwRGF0YXNldENvbmZpZyhkYXRhc2V0SWQpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBEYXRhc2V0Q29uZmlnP2RhdGFzZXRJZD0nICsgZGF0YXNldElkO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgLy92aWV3cyBjb21wb25lbnQgYXBpc1xuICAgIGNyZWF0ZUFwcFZpZXdDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2NyZWF0ZUFwcFZpZXdDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIHVwZGF0ZUFwcFZpZXdDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL3VwZGF0ZUFwcFZpZXdDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBcHBWaWV3Q29uZmlncygpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBWaWV3Q29uZmlncyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG4gICAgZ2V0QXBwVmlld0NvbmZpZyh2aWV3SWQpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBWaWV3Q29uZmlnP3ZpZXdJZD0nICsgdmlld0lkO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGRlbGV0ZUFwcFZpZXdDb25maWcoZGF0YXNldElkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9kZWxldGVBcHBWaWV3Q29uZmlnLycgKyBkYXRhc2V0SWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgLy9maWx0ZXIgY29udGVudCBhcGlzXG4gICAgY3JlYXRlQXBwRmlsdGVyQ29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jcmVhdGVBcHBGaWx0ZXJDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGVkaXRBcHBGaWx0ZXJDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2VkaXRBcHBGaWx0ZXJDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBcHBGaWx0ZXJDb25maWdzKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcEZpbHRlckNvbmZpZ3MnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgZGVsZXRlQXBwRmlsdGVyQ29uZmlnKGZpbHRlcklkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9kZWxldGVBcHBGaWx0ZXJDb25maWcvJyArIGZpbHRlcklkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cblxuXG5cblxuXG5cblxuICAgIGdldE1hcERhdGEoYm9keSwgcmVxdWVzdElEKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gJy9hc3NldHMvYXBpLWRhdGEvbWFwanNvbi5qc29uJztcbiAgICAgICAgLy8gY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5nYXRld2F5VXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcHBOYW1lICsgJy9hc3NldHMvYXBpLWRhdGEvbWFwanNvbi5qc29uJztcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IGFueSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cbiAgICBnZXREYXNoQm9hcmRKc29uKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9ICcvYXNzZXRzL2FwaS1kYXRhL2Rhc2hib2FyZF9sZWJhcmEuanNvbic7XG4gICAgICAgIC8vIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuZ2F0ZXdheVVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBwTmFtZSArICcvYXNzZXRzL2FwaS1kYXRhL2Rhc2hib2FyZC5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRBcHBQYWdlQ29uZmlncygpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBQYWdlQ29uZmlncyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cbiAgICBjcmVhdGVBcHBQYWdlQ29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jcmVhdGVBcHBQYWdlQ29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBlZGl0QXBwUGFnZUNvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvZWRpdEFwcFBhZ2VDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGRlbGV0ZUFwcFBhZ2VDb25maWcocGFnZUlkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9kZWxldGVBcHBQYWdlQ29uZmlnLycgKyBwYWdlSWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICAvLyBjcmVhdGUgd2lkZ2V0XG4gICAgY3JlYXRlQXBwV2lkZ2V0Q29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jcmVhdGVBcHBXaWRnZXRDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBlZGl0QXBwV2lkZ2V0Q29uZmlnKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9lZGl0QXBwV2lkZ2V0Q29uZmlnJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0QXBwUGFnZURldGFpbENvbmZpZyhwYWdlSWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEFwcFBhZ2VEZXRhaWxDb25maWc/cGFnZUNvbmZpZ0lkPScgKyBwYWdlSWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBkZWxldGVBcHBXaWRnZXRDb25maWcoZmlsdGVySWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2RlbGV0ZUFwcFdpZGdldENvbmZpZy8nICsgZmlsdGVySWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZ2V0QXBwRmlsdGVyQ29uZmlnKGZpbHRlcklkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBGaWx0ZXJDb25maWc/ZmlsdGVySWQ9JyArIGZpbHRlcklkLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0S1BJUmVmZXJlbmNlRW5kUG9pbnRzKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldEtQSVJlZmVyZW5jZUVuZFBvaW50cyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cblxuICAgIC8vIHBhZ2UgdGVtcGxhdGVcbiAgICBsb2FkS3BpQnJvd3NlcigpOiBhbnkge1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS9sb2FkS3BpQnJvd3NlcicsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0bGlzdEtwaUJyb3dzZXIoKTogYW55IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvbGlzdEtwaUJyb3dzZXInO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgZ2V0Qm9va21hcmtlZFJlc291cmNlKCk6IGFueSB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpL2dldEJvb2ttYXJrZWRSZXNvdXJjZScsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGJvb2ttYXJrUmVzb3VyY2UoYm9keSk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGkvYm9va21hcmtSZXNvdXJjZSc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KGFwaVVybCwgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG5cbiAgICAvLyBjcmVhdGUga3BpXG4gICAgY29uZmlndXJlS3BpQnJvd3NlckNvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvY29uZmlndXJlS3BpQnJvd3NlckNvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0Q3JlYXRlS3BpKGJvZHkpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9jcmVhdGVLcGknLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICB1cGxvYWREYXRhc2V0SnNvblBheWxvYWQoZm9ybURhdGEpOiBhbnkge1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgICdlbmN0eXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsgaGVhZGVyczogaGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS1jb25maWcvdXBsb2FkRGF0YXNldEpzb25QYXlsb2FkJywgZm9ybURhdGEsIG9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cbiAgICAvLyBjZHIgY29uZmlnIHNlcnZpY2VcblxuICAgIGdldEtwaURhdGEoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChgJHt0aGlzLmVudmlyb25tZW50LmJhc2VQYXRofWFzc2V0cy9hcGktZGF0YS9wb2xpY3kuanNvbmAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgZ2V0R3JvdXBEZXRhaWxzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2pvYnMvZ2V0R3JvdXBEZXRhaWxzJywgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBsb2FkdGFibGVOYW1lKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwcFVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZ2V0U2VhcmNoRGF0YXNvdXJjZURldGFpbHMnO1xuICAgICAgICAvLyBjb25zdCBhcHBVcmwgPSAnL2Fzc2V0cy9hcGktZGF0YS9nZXRTZWFyY2hEYXRhc291cmNlRGV0YWlscy5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBwVXJsKTtcbiAgICB9XG5cblxuICAgIGdldFNlYXJjaFJlc3VsdEZvckRhdGFzb3VyY2UoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvZ2V0U2VhcmNoUmVzdWx0Rm9yRGF0YXNvdXJjZScsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgYWpheFNlbGZQcmV2QWN0aXZpdHlMb2dzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRVc2VyQ2RyQnJvd3NlckFjdGl2aXR5TG9ncz9hY3Rpdml0eUNvdW50PTUwJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBnZXRDZHJCcm93c2VyQWN0aXZpdHlMb2dzKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRDZHJCcm93c2VyQWN0aXZpdHlMb2dzP3N0YXJ0RGF0ZT0nICsgc3RhcnREYXRlICsgJyZlbmREYXRlPScgKyBlbmREYXRlKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBnZXRBdmFpbGFibGVUYWJsZXMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldEF2YWlsYWJsZVRhYmxlcycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldFRhYmxlTWV0YWRhdGEodGFibGVOYW1lKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2dldFRhYmxlTWV0YWRhdGE/dGFibGVOYW1lPScgKyB0YWJsZU5hbWUsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldENkckJyb3dzZXJPcGVyYXRpb25zKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRDZHJCcm93c2VyT3BlcmF0aW9ucycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldFNlYXJjaERhdGFzb3VyY2VEZXRhaWxzKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRTZWFyY2hEYXRhc291cmNlRGV0YWlscycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgc2F2ZURhdGFzb3VyY2VDb25maWcoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZWFyY2gvc2F2ZURhdGFzb3VyY2VDb25maWcnLCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBlZGl0RGF0YXNvdXJjZUNvbmZpZyhib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9lZGl0RGF0YXNvdXJjZUNvbmZpZycsIEpTT04uc3RyaW5naWZ5KGJvZHkpLCB0aGlzLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGRlbGV0ZURhdGFzb3VyY2VDb25maWcodGFibGVOYW1lKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2VhcmNoL2RlbGV0ZURhdGFzb3VyY2VDb25maWcvJyArIHRhYmxlTmFtZSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICAvLyB2aWV3IHdpdGggZGF0YXNldHNcblxuICAgIGdldEtwaUNvbmZpZ2FyYXRpb24oKTogYW55IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC8vIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3JlcG9ydHMvZ2V0QXBwQ29uZmlndXJlZFJlcG9ydENvbmZpZycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmdhdGV3YXlVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwcE5hbWUgKyAnYXNzZXRzL2FwaS1kYXRhL2twaS1jb25maWcuanNvbicsIHtcbiAgICAgICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuXG5cbiAgICBnZXRsaXN0S3BpQnJvd3NlclR3bygpOiBhbnkge1xuICAgICAgICAvLyBjb25zdCBhcGlVcmwgPSAnL2Fzc2V0cy9hcGktZGF0YS9kYXNoYm9hcmQuanNvbic7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuZ2F0ZXdheVVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBwTmFtZSArICcvYXNzZXRzL2FwaS1kYXRhL2Rhc2hib2FyZC5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRmaWx0ZXJEYXRhKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoXCIvYXNzZXRzL2FwaS1kYXRhL2ZpbHRlci1kaXJlY3Rpb24uanNvblwiKVxuICAgICAgICAgICAgLy8gLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIGFwaSArICc/JysgdXJsIClcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuXG4gICAgZ2VuZXJpY0RldGFpbERhdGFSZXNwb25zZShib2R5KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL2twaS9nZW5lcmljRGV0YWlsRGF0YVJlc3BvbnNlJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuICAgIGdldFVuaXF1ZURhdGEoYXBpKTogT2JzZXJ2YWJsZTxSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgYXBpLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG4gICAgZ2V0RmlsdGVyRGF0YUJ5RHJpbGxEb3duKGFwaU5hbWUpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIGFwaU5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cblxuICAgIC8vIHNoZWFyZCBtb2R1bGVcblxuXG4gICAgZ2V0RGF0YUJ5QVBJKHJlcXVlc3RJRCwgYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgcmVxdWVzdElELCBKU09OLnN0cmluZ2lmeShib2R5KSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG5cbiAgICBnZXRDZHJEYXRhKGFwaSwgdXJsKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIGFwaSArICc/JyArIHVybClcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuICAgIGdldFNydlR5cGVEYXRhU291cmNlKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGkvc3J2LXBhcmFtcyc7XG4gICAgICAgIC8vIGNvbnN0IGFwaVVybCA9IGVudmlyb25tZW50LmdhdGV3YXlVcmwgKyBlbnZpcm9ubWVudC5hcHBOYW1lICsgJy9hc3NldHMvYXBpLWRhdGEvc3J2X3R5cGVfcGFyYW1zLmpzb24nO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC8vIC5nZXQoZW52aXJvbm1lbnQuYXBwVXJsICsgZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIGFwaSArICc/JysgdXJsIClcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgcGFnaW50ZWRBY3Rpdml0eUxvZ3MocGFybXMsIGFwaSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgYXBpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIEpTT04uc3RyaW5naWZ5KHBhcm1zKSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGdldEFwaURhdGEoKTogYW55IHtcbiAgICAgICAgLy8gY29uc3QgYXBpVXJsID0gZW52aXJvbm1lbnQuYXBwVXJsICsgZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvYXBwLXNldHRpbmcvZ2V0SW50ZWdyYXRlZEFwcHMnO1xuICAgICAgICBjb25zdCBhcGlVcmwgPSAnL2Fzc2V0cy9hcGktZGF0YS9hcGktc2VydmljZS5qc29uJztcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLCBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcblxuICAgIH1cblxuXG4gICAgLy8gYXBwIG1lbnUgY29udHJvbGxlclxuXG4gICAgY29uZmlndXJlQXBwTWVudUNvbmZpZyhtYW51ZUNvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2NvbmZpZ3VyZUFwcE1lbnVDb25maWcnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIEpTT04uc3RyaW5naWZ5KG1hbnVlQ29uZmlnKSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuXG4gICAgbGlzdEFwcE1lbnVDb25maWdzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2xpc3RBcHBNZW51Q29uZmlncyc7XG4gICAgICAgIC8vIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL2dldExpc3RPZlBhcmVudEFwcE1lbnUnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBnZXRBcHBBcHBNZW51Q29uZmlnQnlJZChtYW51aWQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9nZXRBcHBBcHBNZW51Q29uZmlnQnlJZD9tZW51SWQ9JyArIG1hbnVpZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChhcGlVcmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG4gICAgdXBkYXRlQXBwTWVudUNvbmZpZyhtYW51ZUNvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9rcGktY29uZmlnL3VwZGF0ZUFwcE1lbnVDb25maWcnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIEpTT04uc3RyaW5naWZ5KG1hbnVlQ29uZmlnKSwgdGhpcy5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cblxuICAgIGRlbGV0ZUFwcE1lbnVDb25maWcobWVudUlkKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcva3BpLWNvbmZpZy9kZWxldGVBcHBNZW51Q29uZmlnLycgKyBtZW51SWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cbiAgICAvLyBtZXRyaWNzIHNlcnZpY2VzXG5cbiAgICBsaXN0TWV0cmljQ29uZmlncygpOiBhbnkge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArICcvc2V0dGluZ3MvbWV0cmljcy9saXN0TWV0cmljQ29uZmlncyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cbiAgICBkZWxldGVNZXRyaWNDb25maWcobWV0cmljSWQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZXR0aW5ncy9tZXRyaWNzL2RlbGV0ZU1ldHJpY0NvbmZpZy8nICsgbWV0cmljSWQsIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICBzYXZlT25saW5lTWV0cmljQ29uZmlnKG1ldHJpY0NvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZXR0aW5ncy9tZXRyaWNzL3NhdmVPbmxpbmVNZXRyaWNDb25maWcnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIEpTT04uc3RyaW5naWZ5KG1ldHJpY0NvbmZpZyksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZWRpdE9mZmxpbmVNZXRyaWNDb25maWcobWV0cmljQ29uZmlnKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NldHRpbmdzL21ldHJpY3MvZWRpdE9mZmxpbmVNZXRyaWNDb25maWcnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdChhcGlVcmwsIEpTT04uc3RyaW5naWZ5KG1ldHJpY0NvbmZpZyksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cbiAgICAvLyBleGNlcHRpb24gc2VydmljZVxuXG4gICAgc2F2ZUZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXAoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZXR0aW5ncy9vcGVyYXRpb25zL3NhdmVGaWxlU2VxdWVuY2VBbmFseXplckdyb3VwJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG4gICAgZWRpdEZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXAoYm9keSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZXR0aW5ncy9vcGVyYXRpb25zL2VkaXRGaWxlU2VxdWVuY2VBbmFseXplckdyb3VwJywgSlNPTi5zdHJpbmdpZnkoYm9keSksIHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgICB9XG5cblxuICAgIC8vIGdldENkckJyb3dzZXJPcGVyYXRpb25zKCk6IGFueSB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAvLyAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL3NlYXJjaC9nZXRDZHJCcm93c2VyT3BlcmF0aW9ucycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgLy8gICAgICAgICAucGlwZShcbiAgICAvLyAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgIC8vICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgLy8gICAgICAgICAgICAgfSksXG4gICAgLy8gICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgLy8gfVxuXG4gICAgZ2V0QXBwU3FsRnVuY3Rpb25MaXN0KCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9hcHAtc2V0dGluZy9nZXRBcHBTcWxGdW5jdGlvbkxpc3QnO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KGFwaVVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuXG4gICAgfVxuXG4gICAgbGlzdEZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXBzKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgJy9zZXR0aW5ncy9vcGVyYXRpb25zL2xpc3RGaWxlU2VxdWVuY2VBbmFseXplckdyb3Vwcyc7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQoYXBpVXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbiAgICB9XG5cblxuICAgIGRlbGV0ZUZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXAoY29uZmlnaWQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZGVsZXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgXCIvc2V0dGluZ3Mvb3BlcmF0aW9ucy9kZWxldGVGaWxlU2VxdWVuY2VBbmFseXplckdyb3VwL1wiICsgY29uZmlnaWQsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSk6IGFueSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgfSksIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICAgIH1cbiAgICBhY3RpdmF0ZUZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXAoY29uZmlnaWQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KFxuICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgXCIvc2V0dGluZ3Mvb3BlcmF0aW9ucy9hY3RpdmF0ZUZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXA/Y29uZmlnSWQ9XCIgKyBjb25maWdpZCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGRlYWN0aXZhdGVGaWxlU2VxdWVuY2VBbmFseXplckdyb3VwKGNvbmZpZ2lkKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldChcbiAgICAgICAgICAgICAgICB0aGlzLmVudmlyb25tZW50LmFwcFVybCArIHRoaXMuZW52aXJvbm1lbnQuYXBpVmVyc2lvbiArIFwiL3NldHRpbmdzL29wZXJhdGlvbnMvZGVhY3RpdmF0ZUZpbGVTZXF1ZW5jZUFuYWx5emVyR3JvdXA/Y29uZmlnSWQ9XCIgKyBjb25maWdpZCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIHVwZGF0ZUZpbGVTZXF1ZW5jZUFuYWx5emVySm9icygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KFxuICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXBwVXJsICsgdGhpcy5lbnZpcm9ubWVudC5hcGlWZXJzaW9uICsgXCIvc2V0dGluZ3Mvb3BlcmF0aW9ucy91cGRhdGVGaWxlU2VxdWVuY2VBbmFseXplckpvYnNcIiwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KSwgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuICAgIGdldEFwcERhdGFzb3VyY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodGhpcy5lbnZpcm9ubWVudC5hcHBVcmwgKyB0aGlzLmVudmlyb25tZW50LmFwaVZlcnNpb24gKyAnL29wZXJhdGlvbnMvZ2V0QXBwRGF0YXNvdXJjZScpXG4gICAgICAgICAgICAvLyAuZ2V0KCcvYXNzZXRzL2FwaS1kYXRhL2dldEFwcERhdGFzb3VyY2UuanNvbicpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gICAgfVxuXG5cbn1cbiJdfQ==
@@ -58,6 +58,7 @@ import { GoogleGeoMapComponent } from '../shared/advanced-component/google-geo-m
58
58
  import { GammaTableClumnBarChartComponent } from '../shared/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component';
59
59
  import { GammaGeoChartComponent } from '../shared/advanced-component/gamma-geo-chart/gamma-geo-chart.component';
60
60
  import { AppLocalStorage } from './tokenStorage.servce';
61
+ import { SharedModule } from '../shared/shared.module';
61
62
  import * as i0 from "@angular/core";
62
63
  import * as i1 from "@angular/router";
63
64
  const appRoutes = [
@@ -207,7 +208,8 @@ PackageApplicationControllerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion
207
208
  MatDividerModule,
208
209
  MatMenuModule,
209
210
  MatIconModule,
210
- LoadingModule], exports: [RouterModule,
211
+ LoadingModule,
212
+ SharedModule], exports: [RouterModule,
211
213
  DashChartComponent,
212
214
  DashTableComponent,
213
215
  ApplicationFilterComponent,
@@ -281,7 +283,8 @@ PackageApplicationControllerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion
281
283
  MatDividerModule,
282
284
  MatMenuModule,
283
285
  MatIconModule,
284
- LoadingModule, RouterModule] });
286
+ LoadingModule,
287
+ SharedModule, RouterModule] });
285
288
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PackageApplicationControllerModule, decorators: [{
286
289
  type: NgModule,
287
290
  args: [{
@@ -372,7 +375,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
372
375
  MatDividerModule,
373
376
  MatMenuModule,
374
377
  MatIconModule,
375
- LoadingModule
378
+ LoadingModule,
379
+ SharedModule
376
380
  ],
377
381
  exports: [
378
382
  RouterModule,
@@ -406,7 +410,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
406
410
  AllMetricsConfigComponent,
407
411
  DashTodayPreviousComponent,
408
412
  HeatMapSupportComponent,
409
- GammaHeatChartComponent,
413
+ GammaHeatChartComponent
410
414
  ],
411
415
  providers: [
412
416
  ApplicationContentService,
@@ -415,4 +419,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
415
419
  ]
416
420
  }]
417
421
  }] });
418
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBVSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsYUFBYSxFQUNiLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFFbkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFDTCwyQkFB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ICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgRGV2RXh0cmVtZU1vZHVsZSxcbiAgRHhBY2NvcmRpb25Nb2R1bGUsXG4gIER4QnV0dG9uTW9kdWxlLFxuICBEeENoZWNrQm94TW9kdWxlLFxuICBEeERhdGFHcmlkTW9kdWxlLFxuICBEeERyb3BEb3duQm94TW9kdWxlLFxuICBEeEZvcm1Nb2R1bGUsXG4gIER4SHRtbEVkaXRvck1vZHVsZSxcbiAgRHhOdW1iZXJCb3hNb2R1bGUsXG4gIER4UG9wdXBNb2R1bGUsXG4gIER4U2VsZWN0Qm94TW9kdWxlLFxuICBEeFRhZ0JveE1vZHVsZSxcbiAgRHhUZXh0Qm94TW9kdWxlLFxuICBEeFRyZWVWaWV3TW9kdWxlLFxuICBEeEJ1bGxldE1vZHVsZSxcbiAgRHhDaGFydE1vZHVsZSxcbiAgRHhEYXRlQm94TW9kdWxlLFxuICBEeExvYWRQYW5lbE1vZHVsZSxcbiAgRHhMb29rdXBNb2R1bGUsXG4gIER4UGl2b3RHcmlkTW9kdWxlLFxuICBEeFRlbXBsYXRlTW9kdWxlLFxuICBEeFRleHRBcmVhTW9kdWxlLFxuICBEeFZhbGlkYXRpb25TdW1tYXJ5TW9kdWxlLFxuICBEeFZhbGlkYXRvck1vZHVsZSxcbiAgRHhDYWxlbmRhck1vZHVsZSxcbiAgRHhUb29sdGlwTW9kdWxlLFxuICBEeENvbnRleHRNZW51TW9kdWxlLFxuICBEeExvYWRJbmRpY2F0b3JNb2R1bGUsXG4gIER4UGllQ2hhcnRNb2R1bGUsXG4gIER4U2Nyb2xsVmlld01vZHVsZVxuXG59IGZyb20gXCJkZXZleHRyZW1lLWFuZ3VsYXJcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuLy8gaW1wb3J0IHsgQXBwVmlld0Zyb21LcGlDb21wb25lbnQgfSBmcm9tICcuL2FwcC12aWV3LWZyb20ta3BpL2FwcC12aWV3LWZyb20ta3BpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZmlsdGVyL2FwcGxpY2F0aW9uLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25EYXRhc2V0Q29tcG9uZW50XG59IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvYXBwbGljYXRpb24tZGF0YXNldC9hcHBsaWNhdGlvbi1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblZpZXdzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi12aWV3LWNvbXBvbmVudHMvYXBwbGljYXRpb24tdmlld3MvYXBwbGljYXRpb24tdmlld3MuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFzZXRNb25nb0NvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvZGF0YXNldC1tb25nby9kYXRhc2V0LW1vbmdvLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBEYXRhc2V0UXVlcnlCdWxkZXJDb21wb25lbnRcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9kYXRhc2V0LXF1ZXJ5LWJ1bGRlci9kYXRhc2V0LXF1ZXJ5LWJ1bGRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YXNldFJlc3RBcGlDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2RhdGFzZXQtcmVzdC1hcGkvZGF0YXNldC1yZXN0LWFwaS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3JlYXRlQ29tcFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXZpZXctY29tcG9uZW50cy9jcmVhdGUtY29tcC12aWV3L2NyZWF0ZS1jb21wLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hDaGFydENvbXBvbmVudCB9IGZyb20gJy4vc3VwcG9ydC1jb21wb25lbnRzL2Rhc2gtY2hhcnQvZGFzaC1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvZGFzaC10YWJsZS9kYXNoLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb25maWcvcGFnZS1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VDb250cm9sZXJDb21wb25lbnQgfSBmcm9tICcuL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IER5bmFtaWNSb3V0ZVNlcnZpY2UgfSBmcm9tICcuL3BhZ2UtdGVtcGxhdGVzL2R5bmFtaWMtcm91dGUtc2VydmljZSc7XG5cblxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IENyZWF0ZURhdGFzZXRKc29uQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1qc29uL2NyZWF0ZS1kYXRhc2V0LWpzb24uY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZURhdGFzZXRTcWxDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LXNxbC9jcmVhdGUtZGF0YXNldC1zcWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNxbFBpcGUgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LXNxbC9zcWxGb3JtYXR0ZXInO1xuaW1wb3J0IHsgQ3JlYXRlRGF0YXNldENvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQvY3JlYXRlLWRhdGFzZXQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgVGFibGVXaXRoQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvdGFibGUtd2l0aC1iYXIvdGFibGUtd2l0aC1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tbW9uLWhlYWRlci9jb21tb24taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZW9NYXBDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy9nZW8tbWFwL2dlby1tYXAuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQXBwbGljYXRpb25Db250ZW50U2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uRGF0c3NldHNDYWxsIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNhbGwuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbk1lbnVzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1tZW51LWNvbnRyb2xsZXIvYXBwbGljYXRpb24tbWVudXMvYXBwbGljYXRpb24tbWVudXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ3JlYXRlTWVudUNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tbWVudS1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNyZWF0ZS1tZW51L2FwcGxpY2F0aW9uLWNyZWF0ZS1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlQ29uZmlnTXVsdGlsYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbmZpZy1tdWx0aS1sYXlvdXQvcGFnZS1jb25maWctbXVsdGktbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVhdGVNZXRyaWNzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1tZXRyaWMtY29uZmlnL2NyZWF0ZS1tZXRyaWNzL2NyZWF0ZS1tZXRyaWNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPbmxpbmVNZXRyaWNzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1tZXRyaWMtY29uZmlnL29ubGluZS1tZXRyaWNzL29ubGluZS1tZXRyaWNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPZmxpbmVNZXRyaWNzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1tZXRyaWMtY29uZmlnL29mbGluZS1tZXRyaWNzL29mbGluZS1tZXRyaWNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGxNZXRyaWNzQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1tZXRyaWMtY29uZmlnL2FsbC1tZXRyaWNzLWNvbmZpZy9hbGwtbWV0cmljcy1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hUb2RheVByZXZpb3VzQ29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvZGFzaC10b2RheS1wcmV2aW91cy9kYXNoLXRvZGF5LXByZXZpb3VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW5nbGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvc2luZ2xlLWNhcmQvc2luZ2xlLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYXRNYXBTdXBwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvaGVhdC1tYXAvaGVhdC1tYXAuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hSGVhdENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS1oZWF0bWFwL2dhbW1hLWhlYXRtYXAuY29tcG9uZW50JztcbmltcG9ydCB7IEFkdmFuY2VXaWRnZXRIZWFkZXJGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2FkdmFuY2Utd2lkZ2V0LWhlYWRlci1maWx0ZXIvYWR2YW5jZS13aWRnZXQtaGVhZGVyLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwQWR2YW5jZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvYXBwLWFkdmFuY2UtaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1TaW5nbGVOdW1iZXJDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tLXNpbmdsZS1udW1iZXItY2FyZC9nYW1tLXNpbmdsZS1udW1iZXItY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFBZHZhbmNlQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWFkdmFuY2UtY2hhcnQvZ2FtbWEtYWR2YW5jZS1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFBZHZhbmNlT3BlcmF0b3JUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtYWR2YW5jZS1vcGVyYXRvci10YWJsZS9nYW1tYS1hZHZhbmNlLW9wZXJhdG9yLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb250ZW50U2FmZUh0bWwgfSBmcm9tICcuLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRhYmxlLXdpdGgtcGVyY2VudGFnZS9jb250ZW50U2FmZUh0bWwnO1xuaW1wb3J0IHsgR2FtbWFUYWJsZVdpdGhQZXJjZW50YWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS13aXRoLXBlcmNlbnRhZ2UvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYVRvZGF5UHJldmlvdXNDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRvZGF5LXByZXZpb3VzL2dhbW1hLXRvZGF5LXByZXZpb3VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9hcHAtdGl0bGUvYXBwLXRpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1hbVdpZGdldENvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9nYW1hbS13aWRnZXQvZ2FtYW0td2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYUFkdmFuY2VGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvZ2FtbWEtYWR2YW5jZS1maWx0ZXIvZ2FtbWEtYWR2YW5jZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJyZWFkQ3J1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2dhbW1hLWJyZWFkLWNydW1icy9icmVhZC1jcnVtYnMuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL2xvYWRpbmcvbG9hZGluZ01vZHVsZSc7XG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUgfSBmcm9tICcuLi9zaGFyZWQvc2FmZUh0bWxQaXBlJztcbmltcG9ydCB7IEdvb2dsZUdlb01hcENvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ29vZ2xlLWdlby1tYXAvZ29vZ2xlLWdlby1tYXAuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hVGFibGVDbHVtbkJhckNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS1jbHVtbi1iYXItY2hhcnQvZ2FtbWEtdGFibGUtY2x1bW4tYmFyLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBQX0VOVklST05NRU5UIH0gZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBHYW1tYUdlb0NoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS1nZW8tY2hhcnQvZ2FtbWEtZ2VvLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBMb2NhbFN0b3JhZ2UgfSBmcm9tICcuL3Rva2VuU3RvcmFnZS5zZXJ2Y2UnO1xuXG5jb25zdCBhcHBSb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIHJlZGlyZWN0VG86ICdhcHBsaWNhdGlvbkRhdGFzZXQnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25EYXRhc2V0JyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uRGF0YXNldENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvblZpZXdzJyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uVmlld3NDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25GaWx0ZXInLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25GaWx0ZXJDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25EYXNoYm9hcmQnLFxuICAgIGNvbXBvbmVudDogUGFnZUNvbnRyb2xlckNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdwYWdlQ29uZmlnQ29udHJvbGxlcicsXG4gICAgY29tcG9uZW50OiBQYWdlQ29uZmlnQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ211bHRpUGFnZUNvbmZpZ0NvbnRyb2xsZXInLFxuICAgIGNvbXBvbmVudDogUGFnZUNvbmZpZ011bHRpbGF5b3V0Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ21lbnVDb250cm9sbGVyJyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uTWVudXNDb21wb25lbnQsXG4gIH0sXG5cbiAge1xuICAgIHBhdGg6ICdtZW51Q29udHJvbGxlci9jcmVhdGVNZW51JyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uQ3JlYXRlTWVudUNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdtZW51Q29udHJvbGxlci9lZGl0TWVudScsXG4gICAgY29tcG9uZW50OiBBcHBsaWNhdGlvbkNyZWF0ZU1lbnVDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25EYXRhc2V0L2RhdGFzZXRFZGl0b3InLFxuICAgIGNvbXBvbmVudDogQ3JlYXRlRGF0YXNldENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvblZpZXdzL3ZpZXdFZGl0b3InLFxuICAgIGNvbXBvbmVudDogQ3JlYXRlQ29tcFZpZXdDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbWV0cmljQ29udHJvbGxlcicsXG4gICAgY29tcG9uZW50OiBBbGxNZXRyaWNzQ29uZmlnQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ21ldHJpY0NvbnRyb2xsZXIvY3JlYXRlTWV0cmljcycsXG4gICAgY29tcG9uZW50OiBDcmVhdGVNZXRyaWNzQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ21ldHJpY0NvbnRyb2xsZXIvZWRpdE1ldHJpY3MnLFxuICAgIGNvbXBvbmVudDogQ3JlYXRlTWV0cmljc0NvbXBvbmVudCxcbiAgfVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQXBwbGljYXRpb25EYXRhc2V0Q29tcG9uZW50LFxuICAgIEFwcGxpY2F0aW9uVmlld3NDb21wb25lbnQsXG4gICAgRGF0YXNldE1vbmdvQ29tcG9uZW50LFxuICAgIERhdGFzZXRRdWVyeUJ1bGRlckNvbXBvbmVudCxcbiAgICBEYXRhc2V0UmVzdEFwaUNvbXBvbmVudCxcbiAgICBHZW9NYXBDb21wb25lbnQsXG4gICAgLy8gQXBwVmlld0Zyb21LcGlDb21wb25lbnQsXG4gICAgQ3JlYXRlQ29tcFZpZXdDb21wb25lbnQsXG4gICAgRGFzaENoYXJ0Q29tcG9uZW50LFxuICAgIERhc2hUYWJsZUNvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvbkZpbHRlckNvbXBvbmVudCxcbiAgICBQYWdlQ29uZmlnQ29tcG9uZW50LFxuICAgIFBhZ2VDb250cm9sZXJDb21wb25lbnQsXG4gICAgQ3JlYXRlRGF0YXNldENvbXBvbmVudCxcbiAgICBUYWJsZVdpdGhCYXJDb21wb25lbnQsXG4gICAgQ3JlYXRlRGF0YXNldFNxbENvbXBvbmVudCxcbiAgICBDcmVhdGVEYXRhc2V0SnNvbkNvbXBvbmVudCxcbiAgICBBcHBUaXRsZUNvbXBvbmVudCxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgR2FtYW1XaWRnZXRDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlRmlsdGVyQ29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZUNoYXJ0Q29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZU9wZXJhdG9yVGFibGVDb21wb25lbnQsXG4gICAgQXBwQWR2YW5jZUhlYWRlckNvbXBvbmVudCxcbiAgICBHYW1tYVRvZGF5UHJldmlvdXNDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZVdpdGhQZXJjZW50YWdlQ29tcG9uZW50LFxuICAgIGNvbnRlbnRTYWZlSHRtbCxcbiAgICBHYW1tU2luZ2xlTnVtYmVyQ2FyZENvbXBvbmVudCxcbiAgICBBZHZhbmNlV2lkZ2V0SGVhZGVyRmlsdGVyQ29tcG9uZW50LFxuICAgIEJyZWFkQ3J1bWJzQ29tcG9uZW50LFxuICAgIFNxbFBpcGUsXG4gICAgU2FmZUh0bWxQaXBlLFxuICAgIENvbW1vbkhlYWRlckNvbXBvbmVudCxcbiAgICBHb29nbGVHZW9NYXBDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZUNsdW1uQmFyQ2hhcnRDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25NZW51c0NvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvbkNyZWF0ZU1lbnVDb21wb25lbnQsXG4gICAgR2FtbWFHZW9DaGFydENvbXBvbmVudCxcbiAgICBQYWdlQ29uZmlnTXVsdGlsYXlvdXRDb21wb25lbnQsXG4gICAgQ3JlYXRlTWV0cmljc0NvbXBvbmVudCxcbiAgICBPbmxpbmVNZXRyaWNzQ29tcG9uZW50LFxuICAgIE9mbGluZU1ldHJpY3NDb21wb25lbnQsXG4gICAgQWxsTWV0cmljc0NvbmZpZ0NvbXBvbmVudCxcbiAgICBEYXNoVG9kYXlQcmV2aW91c0NvbXBvbmVudCxcbiAgICBTaW5nbGVDYXJkQ29tcG9uZW50LFxuICAgIEhlYXRNYXBTdXBwb3J0Q29tcG9uZW50LFxuICAgIEdhbW1hSGVhdENoYXJ0Q29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKGFwcFJvdXRlcyksXG4gICAgRGV2RXh0cmVtZU1vZHVsZSxcbiAgICBEeEJ1dHRvbk1vZHVsZSxcbiAgICBEeENoZWNrQm94TW9kdWxlLFxuICAgIER4TnVtYmVyQm94TW9kdWxlLFxuICAgIER4RGF0YUdyaWRNb2R1bGUsXG4gICAgRHhEcm9wRG93bkJveE1vZHVsZSxcbiAgICBEeFRyZWVWaWV3TW9kdWxlLFxuICAgIER4U2Nyb2xsVmlld01vZHVsZSxcbiAgICBEeEZvcm1Nb2R1bGUsXG4gICAgRHhBY2NvcmRpb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRHhUYWdCb3hNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIER4SHRtbEVkaXRvck1vZHVsZSxcbiAgICBEeEJ1bGxldE1vZHVsZSxcbiAgICBEeENoYXJ0TW9kdWxlLFxuICAgIER4RGF0ZUJveE1vZHVsZSxcbiAgICBEeExvYWRQYW5lbE1vZHVsZSxcbiAgICBEeExvb2t1cE1vZHVsZSxcbiAgICBEeFBpdm90R3JpZE1vZHVsZSxcbiAgICBEeFRlbXBsYXRlTW9kdWxlLFxuICAgIER4VGV4dEFyZWFNb2R1bGUsXG4gICAgRHhWYWxpZGF0aW9uU3VtbWFyeU1vZHVsZSxcbiAgICBEeFZhbGlkYXRvck1vZHVsZSxcbiAgICBEeENhbGVuZGFyTW9kdWxlLFxuICAgIER4VG9vbHRpcE1vZHVsZSxcbiAgICBEeENvbnRleHRNZW51TW9kdWxlLFxuICAgIER4TG9hZEluZGljYXRvck1vZHVsZSxcbiAgICBEeFBpZUNoYXJ0TW9kdWxlLFxuICAgIC8vIFN0cnVjdHVyZUtwaU1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIER4UG9wdXBNb2R1bGUsIER4U2VsZWN0Qm94TW9kdWxlLCBEeFRleHRCb3hNb2R1bGUsIER4VHJlZVZpZXdNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIExvYWRpbmdNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJvdXRlck1vZHVsZSxcbiAgICBEYXNoQ2hhcnRDb21wb25lbnQsXG4gICAgRGFzaFRhYmxlQ29tcG9uZW50LFxuICAgIEFwcGxpY2F0aW9uRmlsdGVyQ29tcG9uZW50LFxuICAgIENyZWF0ZURhdGFzZXRDb21wb25lbnQsXG4gICAgQXBwVGl0bGVDb21wb25lbnQsXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIEdhbWFtV2lkZ2V0Q29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZUZpbHRlckNvbXBvbmVudCxcbiAgICBHYW1tYUFkdmFuY2VDaGFydENvbXBvbmVudCxcbiAgICBHYW1tYUFkdmFuY2VPcGVyYXRvclRhYmxlQ29tcG9uZW50LFxuICAgIEFwcEFkdmFuY2VIZWFkZXJDb21wb25lbnQsXG4gICAgR2FtbWFUb2RheVByZXZpb3VzQ29tcG9uZW50LFxuICAgIEdhbW1hVGFibGVXaXRoUGVyY2VudGFnZUNvbXBvbmVudCxcbiAgICBjb250ZW50U2FmZUh0bWwsXG4gICAgR2FtbVNpbmdsZU51bWJlckNhcmRDb21wb25lbnQsXG4gICAgQWR2YW5jZVdpZGdldEhlYWRlckZpbHRlckNvbXBvbmVudCxcbiAgICBCcmVhZENydW1ic0NvbXBvbmVudCxcbiAgICBDb21tb25IZWFkZXJDb21wb25lbnQsXG4gICAgR2VvTWFwQ29tcG9uZW50LFxuICAgIFNhZmVIdG1sUGlwZSxcbiAgICBHb29nbGVHZW9NYXBDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZUNsdW1uQmFyQ2hhcnRDb21wb25lbnQsXG4gICAgR2FtbWFHZW9DaGFydENvbXBvbmVudCxcbiAgICBQYWdlQ29uZmlnTXVsdGlsYXlvdXRDb21wb25lbnQsXG4gICAgQ3JlYXRlTWV0cmljc0NvbXBvbmVudCxcbiAgICBPbmxpbmVNZXRyaWNzQ29tcG9uZW50LFxuICAgIE9mbGluZU1ldHJpY3NDb21wb25lbnQsXG4gICAgQWxsTWV0cmljc0NvbmZpZ0NvbXBvbmVudCxcbiAgICBEYXNoVG9kYXlQcmV2aW91c0NvbXBvbmVudCxcbiAgICBIZWF0TWFwU3VwcG9ydENvbXBvbmVudCxcbiAgICBHYW1tYUhlYXRDaGFydENvbXBvbmVudCxcblxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlLFxuICAgIEFwcGxpY2F0aW9uRGF0c3NldHNDYWxsLFxuICAgIEFwcExvY2FsU3RvcmFnZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBhY2thZ2VBcHBsaWNhdGlvbkNvbnRyb2xsZXJNb2R1bGUge1xuICAvLyBzdGF0aWMgZm9yUm9vdChlbnZpcm9ubWVudDogYW55KTogTW9kdWxlV2l0aFByb3ZpZGVyczxQYWNrYWdlQXBwbGljYXRpb25Db250cm9sbGVyTW9kdWxlPiB7XG4gIC8vICAgcmV0dXJuIHtcbiAgLy8gICAgIG5nTW9kdWxlOiBQYWNrYWdlQXBwbGljYXRpb25Db250cm9sbGVyTW9kdWxlLFxuICAvLyAgICAgcHJvdmlkZXJzOiBbXG4gIC8vICAgICAgIHsgcHJvdmlkZTogQVBQX0VOVklST05NRU5ULCB1c2VWYWx1ZTogZW52aXJvbm1lbnQgfVxuICAvLyAgICAgXVxuICAvLyAgIH07XG4gIC8vIH1cbn1cbiJdfQ==
422
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBVSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsYUFBYSxFQUNiLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFFbkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQy9GLE9BQU8sRUFDTCwyQkFB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aEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBEZXZFeHRyZW1lTW9kdWxlLFxuICBEeEFjY29yZGlvbk1vZHVsZSxcbiAgRHhCdXR0b25Nb2R1bGUsXG4gIER4Q2hlY2tCb3hNb2R1bGUsXG4gIER4RGF0YUdyaWRNb2R1bGUsXG4gIER4RHJvcERvd25Cb3hNb2R1bGUsXG4gIER4Rm9ybU1vZHVsZSxcbiAgRHhIdG1sRWRpdG9yTW9kdWxlLFxuICBEeE51bWJlckJveE1vZHVsZSxcbiAgRHhQb3B1cE1vZHVsZSxcbiAgRHhTZWxlY3RCb3hNb2R1bGUsXG4gIER4VGFnQm94TW9kdWxlLFxuICBEeFRleHRCb3hNb2R1bGUsXG4gIER4VHJlZVZpZXdNb2R1bGUsXG4gIER4QnVsbGV0TW9kdWxlLFxuICBEeENoYXJ0TW9kdWxlLFxuICBEeERhdGVCb3hNb2R1bGUsXG4gIER4TG9hZFBhbmVsTW9kdWxlLFxuICBEeExvb2t1cE1vZHVsZSxcbiAgRHhQaXZvdEdyaWRNb2R1bGUsXG4gIER4VGVtcGxhdGVNb2R1bGUsXG4gIER4VGV4dEFyZWFNb2R1bGUsXG4gIER4VmFsaWRhdGlvblN1bW1hcnlNb2R1bGUsXG4gIER4VmFsaWRhdG9yTW9kdWxlLFxuICBEeENhbGVuZGFyTW9kdWxlLFxuICBEeFRvb2x0aXBNb2R1bGUsXG4gIER4Q29udGV4dE1lbnVNb2R1bGUsXG4gIER4TG9hZEluZGljYXRvck1vZHVsZSxcbiAgRHhQaWVDaGFydE1vZHVsZSxcbiAgRHhTY3JvbGxWaWV3TW9kdWxlXG5cbn0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG4vLyBpbXBvcnQgeyBBcHBWaWV3RnJvbUtwaUNvbXBvbmVudCB9IGZyb20gJy4vYXBwLXZpZXctZnJvbS1rcGkvYXBwLXZpZXctZnJvbS1rcGkuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1maWx0ZXIvYXBwbGljYXRpb24tZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkRhdGFzZXRDb21wb25lbnRcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9hcHBsaWNhdGlvbi1kYXRhc2V0L2FwcGxpY2F0aW9uLWRhdGFzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVmlld3NDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXZpZXctY29tcG9uZW50cy9hcHBsaWNhdGlvbi12aWV3cy9hcHBsaWNhdGlvbi12aWV3cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YXNldE1vbmdvQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9kYXRhc2V0LW1vbmdvL2RhdGFzZXQtbW9uZ28uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIERhdGFzZXRRdWVyeUJ1bGRlckNvbXBvbmVudFxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2RhdGFzZXQtcXVlcnktYnVsZGVyL2RhdGFzZXQtcXVlcnktYnVsZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhc2V0UmVzdEFwaUNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvZGF0YXNldC1yZXN0LWFwaS9kYXRhc2V0LXJlc3QtYXBpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVhdGVDb21wVmlld0NvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tdmlldy1jb21wb25lbnRzL2NyZWF0ZS1jb21wLXZpZXcvY3JlYXRlLWNvbXAtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvZGFzaC1jaGFydC9kYXNoLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy9kYXNoLXRhYmxlL2Rhc2gtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VDb25maWdDb21wb25lbnQgfSBmcm9tICcuL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbmZpZy9wYWdlLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZUNvbnRyb2xlckNvbXBvbmVudCB9IGZyb20gJy4vcGFnZS1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRHluYW1pY1JvdXRlU2VydmljZSB9IGZyb20gJy4vcGFnZS10ZW1wbGF0ZXMvZHluYW1pYy1yb3V0ZS1zZXJ2aWNlJztcblxuXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQ3JlYXRlRGF0YXNldEpzb25Db21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LWpzb24vY3JlYXRlLWRhdGFzZXQtanNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3JlYXRlRGF0YXNldFNxbENvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQtc3FsL2NyZWF0ZS1kYXRhc2V0LXNxbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3FsUGlwZSB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQtc3FsL3NxbEZvcm1hdHRlcic7XG5pbXBvcnQgeyBDcmVhdGVEYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC9jcmVhdGUtZGF0YXNldC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBUYWJsZVdpdGhCYXJDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy90YWJsZS13aXRoLWJhci90YWJsZS13aXRoLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tb24taGVhZGVyL2NvbW1vbi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEdlb01hcENvbXBvbmVudCB9IGZyb20gJy4vc3VwcG9ydC1jb21wb25lbnRzL2dlby1tYXAvZ2VvLW1hcC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25EYXRzc2V0c0NhbGwgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uTWVudXNDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLW1lbnUtY29udHJvbGxlci9hcHBsaWNhdGlvbi1tZW51cy9hcHBsaWNhdGlvbi1tZW51cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25DcmVhdGVNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1tZW51LWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY3JlYXRlLW1lbnUvYXBwbGljYXRpb24tY3JlYXRlLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VDb25maWdNdWx0aWxheW91dENvbXBvbmVudCB9IGZyb20gJy4vcGFnZS1jb250cm9sbGVyL3BhZ2UtY29uZmlnLW11bHRpLWxheW91dC9wYWdlLWNvbmZpZy1tdWx0aS1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZU1ldHJpY3NDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvY3JlYXRlLW1ldHJpY3MvY3JlYXRlLW1ldHJpY3MuY29tcG9uZW50JztcbmltcG9ydCB7IE9ubGluZU1ldHJpY3NDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvb25saW5lLW1ldHJpY3Mvb25saW5lLW1ldHJpY3MuY29tcG9uZW50JztcbmltcG9ydCB7IE9mbGluZU1ldHJpY3NDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvb2ZsaW5lLW1ldHJpY3Mvb2ZsaW5lLW1ldHJpY3MuY29tcG9uZW50JztcbmltcG9ydCB7IEFsbE1ldHJpY3NDb25maWdDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvYWxsLW1ldHJpY3MtY29uZmlnL2FsbC1tZXRyaWNzLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaFRvZGF5UHJldmlvdXNDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy9kYXNoLXRvZGF5LXByZXZpb3VzL2Rhc2gtdG9kYXktcHJldmlvdXMuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbmdsZUNhcmRDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy9zaW5nbGUtY2FyZC9zaW5nbGUtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhdE1hcFN1cHBvcnRDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy9oZWF0LW1hcC9oZWF0LW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFIZWF0Q2hhcnRDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWhlYXRtYXAvZ2FtbWEtaGVhdG1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWR2YW5jZVdpZGdldEhlYWRlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvYWR2YW5jZS13aWRnZXQtaGVhZGVyLWZpbHRlci9hZHZhbmNlLXdpZGdldC1oZWFkZXItZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBBZHZhbmNlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hcHAtYWR2YW5jZS1oZWFkZXIvYXBwLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbVNpbmdsZU51bWJlckNhcmRDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW0tc2luZ2xlLW51bWJlci1jYXJkL2dhbW0tc2luZ2xlLW51bWJlci1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYUFkdmFuY2VDaGFydENvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtYWR2YW5jZS1jaGFydC9nYW1tYS1hZHZhbmNlLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYUFkdmFuY2VPcGVyYXRvclRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS1hZHZhbmNlLW9wZXJhdG9yLXRhYmxlL2dhbW1hLWFkdmFuY2Utb3BlcmF0b3ItdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IGNvbnRlbnRTYWZlSHRtbCB9IGZyb20gJy4uL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlL2NvbnRlbnRTYWZlSHRtbCc7XG5pbXBvcnQgeyBHYW1tYVRhYmxlV2l0aFBlcmNlbnRhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRhYmxlLXdpdGgtcGVyY2VudGFnZS9nYW1tYS10YWJsZS13aXRoLXBlcmNlbnRhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hVG9kYXlQcmV2aW91c0NvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdG9kYXktcHJldmlvdXMvZ2FtbWEtdG9kYXktcHJldmlvdXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2FwcC10aXRsZS9hcHAtdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbWFtV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2dhbWFtLXdpZGdldC9nYW1hbS13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hQWR2YW5jZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9nYW1tYS1hZHZhbmNlLWZpbHRlci9nYW1tYS1hZHZhbmNlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRDcnVtYnNDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvZ2FtbWEtYnJlYWQtY3J1bWJzL2JyZWFkLWNydW1icy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRpbmdNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvbG9hZGluZy9sb2FkaW5nTW9kdWxlJztcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJy4uL3NoYXJlZC9zYWZlSHRtbFBpcGUnO1xuaW1wb3J0IHsgR29vZ2xlR2VvTWFwQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nb29nbGUtZ2VvLW1hcC9nb29nbGUtZ2VvLW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFUYWJsZUNsdW1uQmFyQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRhYmxlLWNsdW1uLWJhci1jaGFydC9nYW1tYS10YWJsZS1jbHVtbi1iYXItY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBUFBfRU5WSVJPTk1FTlQgfSBmcm9tICcuL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEdhbW1hR2VvQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWdlby1jaGFydC9nYW1tYS1nZW8tY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcExvY2FsU3RvcmFnZSB9IGZyb20gJy4vdG9rZW5TdG9yYWdlLnNlcnZjZSc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5cbmNvbnN0IGFwcFJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgcmVkaXJlY3RUbzogJ2FwcGxpY2F0aW9uRGF0YXNldCcsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCdcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvbkRhdGFzZXQnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25EYXRhc2V0Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2FwcGxpY2F0aW9uVmlld3MnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25WaWV3c0NvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvbkZpbHRlcicsXG4gICAgY29tcG9uZW50OiBBcHBsaWNhdGlvbkZpbHRlckNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvbkRhc2hib2FyZCcsXG4gICAgY29tcG9uZW50OiBQYWdlQ29udHJvbGVyQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3BhZ2VDb25maWdDb250cm9sbGVyJyxcbiAgICBjb21wb25lbnQ6IFBhZ2VDb25maWdDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbXVsdGlQYWdlQ29uZmlnQ29udHJvbGxlcicsXG4gICAgY29tcG9uZW50OiBQYWdlQ29uZmlnTXVsdGlsYXlvdXRDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbWVudUNvbnRyb2xsZXInLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25NZW51c0NvbXBvbmVudCxcbiAgfSxcblxuICB7XG4gICAgcGF0aDogJ21lbnVDb250cm9sbGVyL2NyZWF0ZU1lbnUnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25DcmVhdGVNZW51Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ21lbnVDb250cm9sbGVyL2VkaXRNZW51JyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uQ3JlYXRlTWVudUNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvbkRhdGFzZXQvZGF0YXNldEVkaXRvcicsXG4gICAgY29tcG9uZW50OiBDcmVhdGVEYXRhc2V0Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2FwcGxpY2F0aW9uVmlld3Mvdmlld0VkaXRvcicsXG4gICAgY29tcG9uZW50OiBDcmVhdGVDb21wVmlld0NvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdtZXRyaWNDb250cm9sbGVyJyxcbiAgICBjb21wb25lbnQ6IEFsbE1ldHJpY3NDb25maWdDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbWV0cmljQ29udHJvbGxlci9jcmVhdGVNZXRyaWNzJyxcbiAgICBjb21wb25lbnQ6IENyZWF0ZU1ldHJpY3NDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnbWV0cmljQ29udHJvbGxlci9lZGl0TWV0cmljcycsXG4gICAgY29tcG9uZW50OiBDcmVhdGVNZXRyaWNzQ29tcG9uZW50LFxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcHBsaWNhdGlvbkRhdGFzZXRDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25WaWV3c0NvbXBvbmVudCxcbiAgICBEYXRhc2V0TW9uZ29Db21wb25lbnQsXG4gICAgRGF0YXNldFF1ZXJ5QnVsZGVyQ29tcG9uZW50LFxuICAgIERhdGFzZXRSZXN0QXBpQ29tcG9uZW50LFxuICAgIEdlb01hcENvbXBvbmVudCxcbiAgICAvLyBBcHBWaWV3RnJvbUtwaUNvbXBvbmVudCxcbiAgICBDcmVhdGVDb21wVmlld0NvbXBvbmVudCxcbiAgICBEYXNoQ2hhcnRDb21wb25lbnQsXG4gICAgRGFzaFRhYmxlQ29tcG9uZW50LFxuICAgIEFwcGxpY2F0aW9uRmlsdGVyQ29tcG9uZW50LFxuICAgIFBhZ2VDb25maWdDb21wb25lbnQsXG4gICAgUGFnZUNvbnRyb2xlckNvbXBvbmVudCxcbiAgICBDcmVhdGVEYXRhc2V0Q29tcG9uZW50LFxuICAgIFRhYmxlV2l0aEJhckNvbXBvbmVudCxcbiAgICBDcmVhdGVEYXRhc2V0U3FsQ29tcG9uZW50LFxuICAgIENyZWF0ZURhdGFzZXRKc29uQ29tcG9uZW50LFxuICAgIEFwcFRpdGxlQ29tcG9uZW50LFxuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBHYW1hbVdpZGdldENvbXBvbmVudCxcbiAgICBHYW1tYUFkdmFuY2VGaWx0ZXJDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlQ2hhcnRDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlT3BlcmF0b3JUYWJsZUNvbXBvbmVudCxcbiAgICBBcHBBZHZhbmNlSGVhZGVyQ29tcG9uZW50LFxuICAgIEdhbW1hVG9kYXlQcmV2aW91c0NvbXBvbmVudCxcbiAgICBHYW1tYVRhYmxlV2l0aFBlcmNlbnRhZ2VDb21wb25lbnQsXG4gICAgY29udGVudFNhZmVIdG1sLFxuICAgIEdhbW1TaW5nbGVOdW1iZXJDYXJkQ29tcG9uZW50LFxuICAgIEFkdmFuY2VXaWRnZXRIZWFkZXJGaWx0ZXJDb21wb25lbnQsXG4gICAgQnJlYWRDcnVtYnNDb21wb25lbnQsXG4gICAgU3FsUGlwZSxcbiAgICBTYWZlSHRtbFBpcGUsXG4gICAgQ29tbW9uSGVhZGVyQ29tcG9uZW50LFxuICAgIEdvb2dsZUdlb01hcENvbXBvbmVudCxcbiAgICBHYW1tYVRhYmxlQ2x1bW5CYXJDaGFydENvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvbk1lbnVzQ29tcG9uZW50LFxuICAgIEFwcGxpY2F0aW9uQ3JlYXRlTWVudUNvbXBvbmVudCxcbiAgICBHYW1tYUdlb0NoYXJ0Q29tcG9uZW50LFxuICAgIFBhZ2VDb25maWdNdWx0aWxheW91dENvbXBvbmVudCxcbiAgICBDcmVhdGVNZXRyaWNzQ29tcG9uZW50LFxuICAgIE9ubGluZU1ldHJpY3NDb21wb25lbnQsXG4gICAgT2ZsaW5lTWV0cmljc0NvbXBvbmVudCxcbiAgICBBbGxNZXRyaWNzQ29uZmlnQ29tcG9uZW50LFxuICAgIERhc2hUb2RheVByZXZpb3VzQ29tcG9uZW50LFxuICAgIFNpbmdsZUNhcmRDb21wb25lbnQsXG4gICAgSGVhdE1hcFN1cHBvcnRDb21wb25lbnQsXG4gICAgR2FtbWFIZWF0Q2hhcnRDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoYXBwUm91dGVzKSxcbiAgICBEZXZFeHRyZW1lTW9kdWxlLFxuICAgIER4QnV0dG9uTW9kdWxlLFxuICAgIER4Q2hlY2tCb3hNb2R1bGUsXG4gICAgRHhOdW1iZXJCb3hNb2R1bGUsXG4gICAgRHhEYXRhR3JpZE1vZHVsZSxcbiAgICBEeERyb3BEb3duQm94TW9kdWxlLFxuICAgIER4VHJlZVZpZXdNb2R1bGUsXG4gICAgRHhTY3JvbGxWaWV3TW9kdWxlLFxuICAgIER4Rm9ybU1vZHVsZSxcbiAgICBEeEFjY29yZGlvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBEeFRhZ0JveE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgRHhIdG1sRWRpdG9yTW9kdWxlLFxuICAgIER4QnVsbGV0TW9kdWxlLFxuICAgIER4Q2hhcnRNb2R1bGUsXG4gICAgRHhEYXRlQm94TW9kdWxlLFxuICAgIER4TG9hZFBhbmVsTW9kdWxlLFxuICAgIER4TG9va3VwTW9kdWxlLFxuICAgIER4UGl2b3RHcmlkTW9kdWxlLFxuICAgIER4VGVtcGxhdGVNb2R1bGUsXG4gICAgRHhUZXh0QXJlYU1vZHVsZSxcbiAgICBEeFZhbGlkYXRpb25TdW1tYXJ5TW9kdWxlLFxuICAgIER4VmFsaWRhdG9yTW9kdWxlLFxuICAgIER4Q2FsZW5kYXJNb2R1bGUsXG4gICAgRHhUb29sdGlwTW9kdWxlLFxuICAgIER4Q29udGV4dE1lbnVNb2R1bGUsXG4gICAgRHhMb2FkSW5kaWNhdG9yTW9kdWxlLFxuICAgIER4UGllQ2hhcnRNb2R1bGUsXG4gICAgLy8gU3RydWN0dXJlS3BpTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgRHhQb3B1cE1vZHVsZSwgRHhTZWxlY3RCb3hNb2R1bGUsIER4VGV4dEJveE1vZHVsZSwgRHhUcmVlVmlld01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZSxcbiAgICBTaGFyZWRNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJvdXRlck1vZHVsZSxcbiAgICBEYXNoQ2hhcnRDb21wb25lbnQsXG4gICAgRGFzaFRhYmxlQ29tcG9uZW50LFxuICAgIEFwcGxpY2F0aW9uRmlsdGVyQ29tcG9uZW50LFxuICAgIENyZWF0ZURhdGFzZXRDb21wb25lbnQsXG4gICAgQXBwVGl0bGVDb21wb25lbnQsXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIEdhbWFtV2lkZ2V0Q29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZUZpbHRlckNvbXBvbmVudCxcbiAgICBHYW1tYUFkdmFuY2VDaGFydENvbXBvbmVudCxcbiAgICBHYW1tYUFkdmFuY2VPcGVyYXRvclRhYmxlQ29tcG9uZW50LFxuICAgIEFwcEFkdmFuY2VIZWFkZXJDb21wb25lbnQsXG4gICAgR2FtbWFUb2RheVByZXZpb3VzQ29tcG9uZW50LFxuICAgIEdhbW1hVGFibGVXaXRoUGVyY2VudGFnZUNvbXBvbmVudCxcbiAgICBjb250ZW50U2FmZUh0bWwsXG4gICAgR2FtbVNpbmdsZU51bWJlckNhcmRDb21wb25lbnQsXG4gICAgQWR2YW5jZVdpZGdldEhlYWRlckZpbHRlckNvbXBvbmVudCxcbiAgICBCcmVhZENydW1ic0NvbXBvbmVudCxcbiAgICBDb21tb25IZWFkZXJDb21wb25lbnQsXG4gICAgR2VvTWFwQ29tcG9uZW50LFxuICAgIFNhZmVIdG1sUGlwZSxcbiAgICBHb29nbGVHZW9NYXBDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZUNsdW1uQmFyQ2hhcnRDb21wb25lbnQsXG4gICAgR2FtbWFHZW9DaGFydENvbXBvbmVudCxcbiAgICBQYWdlQ29uZmlnTXVsdGlsYXlvdXRDb21wb25lbnQsXG4gICAgQ3JlYXRlTWV0cmljc0NvbXBvbmVudCxcbiAgICBPbmxpbmVNZXRyaWNzQ29tcG9uZW50LFxuICAgIE9mbGluZU1ldHJpY3NDb21wb25lbnQsXG4gICAgQWxsTWV0cmljc0NvbmZpZ0NvbXBvbmVudCxcbiAgICBEYXNoVG9kYXlQcmV2aW91c0NvbXBvbmVudCxcbiAgICBIZWF0TWFwU3VwcG9ydENvbXBvbmVudCxcbiAgICBHYW1tYUhlYXRDaGFydENvbXBvbmVudFxuXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UsXG4gICAgQXBwbGljYXRpb25EYXRzc2V0c0NhbGwsXG4gICAgQXBwTG9jYWxTdG9yYWdlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUGFja2FnZUFwcGxpY2F0aW9uQ29udHJvbGxlck1vZHVsZSB7XG4gIC8vIHN0YXRpYyBmb3JSb290KGVudmlyb25tZW50OiBhbnkpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFBhY2thZ2VBcHBsaWNhdGlvbkNvbnRyb2xsZXJNb2R1bGU+IHtcbiAgLy8gICByZXR1cm4ge1xuICAvLyAgICAgbmdNb2R1bGU6IFBhY2thZ2VBcHBsaWNhdGlvbkNvbnRyb2xsZXJNb2R1bGUsXG4gIC8vICAgICBwcm92aWRlcnM6IFtcbiAgLy8gICAgICAgeyBwcm92aWRlOiBBUFBfRU5WSVJPTk1FTlQsIHVzZVZhbHVlOiBlbnZpcm9ubWVudCB9XG4gIC8vICAgICBdXG4gIC8vICAgfTtcbiAgLy8gfVxufVxuIl19