@provoly/dashboard 1.1.0 → 1.1.2

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 (110) hide show
  1. package/assets/svgs/analytic.svg +1 -0
  2. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +5 -4
  3. package/esm2022/import/components/import.component.mjs +22 -10
  4. package/esm2022/import/i18n/en.translations.mjs +3 -1
  5. package/esm2022/import/i18n/fr.translations.mjs +3 -1
  6. package/esm2022/lib/core/access/access.service.mjs +4 -1
  7. package/esm2022/lib/core/i18n/en.translations.mjs +2 -1
  8. package/esm2022/lib/core/i18n/fr.translations.mjs +2 -1
  9. package/esm2022/lib/core/model/public-api.mjs +2 -1
  10. package/esm2022/lib/core/model/widget-aggregated-chart-manifest.interface.mjs +1 -1
  11. package/esm2022/lib/core/model/widget-analytic-manifest.interface.mjs +2 -0
  12. package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +8 -12
  13. package/esm2022/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.mjs +5 -11
  14. package/esm2022/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.mjs +6 -6
  15. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +5 -2
  16. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +12 -1
  17. package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +4 -3
  18. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +4 -2
  19. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -2
  20. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +6 -4
  21. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +17 -9
  22. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +8 -2
  23. package/esm2022/presentation/components/presentation.component.mjs +18 -9
  24. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +42 -87
  25. package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +2 -1
  26. package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +3 -5
  27. package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +108 -0
  28. package/esm2022/widgets/widget-analytic/i18n/en.translations.mjs +13 -0
  29. package/esm2022/widgets/widget-analytic/i18n/fr.translations.mjs +13 -0
  30. package/esm2022/widgets/widget-analytic/provoly-dashboard-widgets-widget-analytic.mjs +5 -0
  31. package/esm2022/widgets/widget-analytic/public-api.mjs +3 -0
  32. package/esm2022/widgets/widget-analytic/style/css.component.mjs +11 -0
  33. package/esm2022/widgets/widget-analytic/widget-analytic.module.mjs +70 -0
  34. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +2 -2
  35. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +2 -2
  36. package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +2 -2
  37. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +18 -141
  38. package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +2 -34
  39. package/esm2022/widgets/widget-map/interaction/tooltip-manager.class.mjs +191 -0
  40. package/esm2022/widgets/widget-map/public-api.mjs +2 -1
  41. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  42. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +2 -2
  43. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +24 -5
  44. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +2 -2
  45. package/fesm2022/provoly-dashboard-admin.mjs +3 -2
  46. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  47. package/fesm2022/provoly-dashboard-import.mjs +25 -9
  48. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  49. package/fesm2022/provoly-dashboard-presentation.mjs +17 -8
  50. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  51. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +45 -91
  52. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  53. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +211 -0
  54. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -0
  55. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
  56. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  57. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +1 -1
  58. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  59. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +1 -1
  60. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
  61. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +207 -175
  62. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  63. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
  64. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  65. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +23 -4
  66. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  67. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
  68. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
  69. package/fesm2022/provoly-dashboard.mjs +71 -43
  70. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  71. package/import/components/import.component.d.ts +4 -2
  72. package/import/i18n/en.translations.d.ts +2 -0
  73. package/import/i18n/fr.translations.d.ts +2 -0
  74. package/lib/core/access/access.service.d.ts +3 -0
  75. package/lib/core/i18n/en.translations.d.ts +1 -0
  76. package/lib/core/i18n/fr.translations.d.ts +1 -0
  77. package/lib/core/model/public-api.d.ts +1 -0
  78. package/lib/core/model/widget-aggregated-chart-manifest.interface.d.ts +3 -12
  79. package/lib/core/model/widget-analytic-manifest.interface.d.ts +6 -0
  80. package/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.d.ts +4 -4
  81. package/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.d.ts +2 -2
  82. package/lib/core/store/data-source/data-source.effects.d.ts +4 -2
  83. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +3 -1
  84. package/lib/dashboard/store/dashboard.actions.d.ts +11 -1
  85. package/lib/dashboard/store/dashboard.effects.d.ts +2 -0
  86. package/lib/dashboard/store/dashboard.reducers.d.ts +3 -1
  87. package/lib/dashboard/store/dashboard.selectors.d.ts +1 -1
  88. package/package.json +37 -31
  89. package/presentation/components/presentation.component.d.ts +5 -3
  90. package/styles/components/_o-pry-admin-classes-customize.scss +1 -0
  91. package/styles-theme/components-theme/_o-widget.theme.scss +0 -14
  92. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +9 -7
  93. package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +1 -0
  94. package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +2 -4
  95. package/widgets/widget-analytic/component/widget-analytic.component.d.ts +47 -0
  96. package/widgets/widget-analytic/i18n/en.translations.d.ts +12 -0
  97. package/widgets/widget-analytic/i18n/fr.translations.d.ts +12 -0
  98. package/widgets/widget-analytic/index.d.ts +5 -0
  99. package/widgets/widget-analytic/public-api.d.ts +2 -0
  100. package/widgets/widget-analytic/style/_o-widget-analytic.scss +43 -0
  101. package/widgets/widget-analytic/style/css.component.d.ts +5 -0
  102. package/widgets/widget-analytic/widget-analytic.module.d.ts +19 -0
  103. package/widgets/widget-iframe/component/widget-iframe.component.d.ts +3 -1
  104. package/widgets/widget-map/component/widget-map.component.d.ts +12 -23
  105. package/widgets/widget-map/interaction/interaction-manager.class.d.ts +0 -5
  106. package/widgets/widget-map/interaction/tooltip-manager.class.d.ts +43 -0
  107. package/widgets/widget-map/public-api.d.ts +1 -0
  108. package/widgets/widget-map/style/_m-layer-legend.scss +1 -4
  109. package/widgets/widget-table/component/widget-table.component.d.ts +3 -1
  110. package/widgets/widget-tile/component/widget-tile.component.d.ts +7 -2
@@ -103,7 +103,10 @@ export class DataSourceEffects {
103
103
  DataSourceActions.dataset.unselectDataset(),
104
104
  DataSourceActions.dataset.created({ path: props.route })
105
105
  ]))), catchError((error) => [DataSourceActions.dataset.failure({ error })])));
106
- this.unsetMissingGroupsOnDatasetSelection$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.selectDataset), map(() => DataSourceActions.dataset.setMissingGroups({ missingGroups: undefined }))));
106
+ this.unsetMissingGroupsOnDatasetSelection$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.selectDataset), mergeMap((action) => [
107
+ DataSourceActions.dataset.setMissingGroups({ missingGroups: undefined }),
108
+ DataSourceActions.dataset.listVersionsByDatasetId({ id: action.dataset.id })
109
+ ])));
107
110
  this.deleteDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.delete), switchMap((action) => this.dataSourceService.deleteDataset(action.name).pipe(mergeMap(() => [
108
111
  DataSourceActions.dataset.loadDataset(),
109
112
  DataSourceActions.dataset.unselectDataset(),
@@ -167,4 +170,4 @@ export class DataSourceEffects {
167
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DataSourceEffects, decorators: [{
168
171
  type: Injectable
169
172
  }], ctorParameters: () => [{ type: i1.Actions }, { type: i2.SearchService }, { type: i3.DataSourceService }, { type: i4.PrySnackbarService }, { type: i5.PryI18nService }, { type: i6.Store }, { type: i7.PryDialogService }] });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQXdCLE1BQU0sbURBQW1ELENBQUM7QUFJcEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7O0FBSTlELE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFDVSxRQUFpQixFQUNqQixhQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsUUFBNEIsRUFDNUIsU0FBeUIsRUFDekIsS0FBWSxFQUNaLFNBQTJCO1FBTjNCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsa0JB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dGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBBY3Rpb24sIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLmFjdGlvbnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgUHJ5RGlhbG9nQ29uZmlybUNvbXBvbmVudCwgUHJ5RGlhbG9nQ29uZmlybURhdGEgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL292ZXJsYXkvZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFByeURpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL292ZXJsYXkvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJ5U25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IFByeUkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU2VhcmNoQWN0aW9ucyB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2guYWN0aW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTb3VyY2VBY3Rpb25zIH0gZnJvbSAnLi9kYXRhLXNvdXJjZS5hY3Rpb25zJztcbmltcG9ydCB7IERhdGFzZXQsIE5hbWVkUXVlcnkgfSBmcm9tICcuL2RhdGEtc291cmNlLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBEYXRhU291cmNlU2VydmljZSB9IGZyb20gJy4vZGF0YS1zb3VyY2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlRWZmZWN0cyB7XG4gIHByaXZhdGUgaWROYW1lZFF1ZXJ5Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNvdXJjZVNlcnZpY2U6IERhdGFTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tCYXI6IFByeVNuYWNrYmFyU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogUHJ5STE4blNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBwcnlEaWFsb2c6IFByeURpYWxvZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIHBvc3ROYW1lUXVlcnkkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkucG9zdCksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMucmFuZG9tQ29sb3IpKSxcbiAgICAgIHN3aXRjaE1hcCgoW2FjdGlvbiwgcmFuZG9tQ29sb3JdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgaWQsIHBheWxvYWQsIGRlc2NyaXB0aW9uLCBjb2xvciwgZmF2b3JpdGUsIGlzRWRpdCwgdmlzaWJpbGl0eSB9ID0gYWN0aW9uO1xuICAgICAgICB0aGlzLmlkTmFtZWRRdWVyeSA9IGlzRWRpdCA/IGlkIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBuYW1lZFF1ZXJ5OiBOYW1lZFF1ZXJ5ID0ge1xuICAgICAgICAgIGlkOiBpZCA/PyAnJyxcbiAgICAgICAgICBzb3VyY2VUeXBlOiAnbmFtZWRRdWVyeScsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2liaWxpdHkgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIHJlcXVlc3Q6IHBheWxvYWQsXG4gICAgICAgICAgY29sb3I6IGNvbG9yID8/IHJhbmRvbUNvbG9yLFxuICAgICAgICAgIGZhdm9yaXRlXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLnBvc3QobmFtZWRRdWVyeSk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IFtdIGFzIEFjdGlvbltdO1xuICAgICAgICBpZiAodGhpcy5pZE5hbWVkUXVlcnkpIHtcbiAgICAgICAgICBhY3Rpb25zLnB1c2goXG4gICAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7IGlkOiB0aGlzLmlkTmFtZWRRdWVyeSwgZXhjbHVkZUdlbzogZmFsc2UsIGZyb206ICdwb3N0TmFtZVF1ZXJ5JCcgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaWROYW1lZFF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICBhY3Rpb25zLnB1c2goRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkKCkpO1xuICAgICAgICByZXR1cm4gYWN0aW9ucztcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIGdldE5hbWVkUXVlcnkkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCksXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldCgpKSxcbiAgICAgIG1hcCgobmFtZWRRdWVyeUxpc3Q6IE5hbWVkUXVlcnlbXSkgPT4gRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkZWQoeyBsaXN0OiBuYW1lZFF1ZXJ5TGlzdCB9KSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICApXG4gICk7XG5cbiAgbG9hZGVkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmxvYWRlZCksXG4gICAgICBtYXAoKGFjdGlvbjogeyBsaXN0OiBOYW1lZFF1ZXJ5W107IHR5cGU6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIHJldHVybiBEYXNoYm9hcmRBY3Rpb25zLnNldEF2YWlsYWJsZU5hbWVkUXVlcmllcyh7IG5hbWVzOiBhY3Rpb24ubGlzdC5tYXAoKG5xKSA9PiBucS5pZCkgfSk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBkZWxldGVOYW1lZFF1ZXJ5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmRlbGV0ZSksXG4gICAgICBzd2l0Y2hNYXAoKHByb3BzOiB7IGlkOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5kZWxldGUocHJvcHMuaWQpLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKCkgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCgpXSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgYWRkRmF2b3JpdGVOYW1lZFF1ZXJ5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmFkZEZhdm9yaXRlKSxcbiAgICAgIHN3aXRjaE1hcCgocHJvcHM6IHsgaWQ6IHN0cmluZyB9KSA9PiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmFkZEZhdm9yaXRlKHByb3BzLmlkKSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkKCldKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgIClcbiAgKTtcblxuICBkZWxldGVGYXZvcml0ZU5hbWVkUXVlcnkkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZGVsZXRlRmF2b3JpdGUpLFxuICAgICAgc3dpdGNoTWFwKChwcm9wczogeyBpZDogc3RyaW5nIH0pID0+IHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZGVsZXRlRmF2b3JpdGUocHJvcHMuaWQpKSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmxvYWQoKV0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIHRyeUVkaXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZWRpdCksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmVkaXRJblByb2dyZXNzKSksXG4gICAgICBtYXAoKFthY3Rpb24sIGluUHJvZ3Jlc3NdKSA9PiB7XG4gICAgICAgIGlmICghaW5Qcm9ncmVzcykge1xuICAgICAgICAgIHJldHVybiBEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5Lm9wZW5FZGl0KGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0Bwcnkuc2VhcmNoLm5hbWVkUXVlcnkuYWxyZWFkeUVkaXRpbmcnKSxcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3I6IG5ldyBFcnJvcignQHByeS5zZWFyY2gubmFtZWRRdWVyeS5hbHJlYWR5RWRpdGluZycpIH0pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVXaWRnZXRBZnRlclNhdmUkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgLy8gVXNpbmcgc3RyaW5ncyB0byBwcmV2ZW50IGhhdmluZyBjb3JlIG1vZHVsZSBkZXBlbmRpbmcgb24gc2VhcmNoIG1vZHVsZVxuICAgICAgb2ZUeXBlKCdbU2VhcmNoTW9ub0NsYXNzXSBzYXZlJywgJ1tTZWFyY2hNdWx0aUNsYXNzXSBsYXVuY2ggc2F2ZScsICdbU2VhcmNoIEZ1bGx0ZXh0XSBzYXZlJyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbShcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5lZGl0RnJvbVdpZGdldCksXG4gICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuY3VycmVudEVkaXQpLFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMud2luZG93TWFuaWZlc3QpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChbYWN0aW9uLCBmcm9tV2lkZ2V0LCBjdXJyZW50RWRpdCwgd2luZG93TWFuaWZlc3RdKSA9PiBmcm9tV2lkZ2V0ICE9PSB1bmRlZmluZWQpLFxuICAgICAgbWFwKChbYWN0aW9uLCBmcm9tV2lkZ2V0LCBjdXJyZW50RWRpdCwgd2luZG93TWFuaWZlc3RdKSA9PiB7XG4gICAgICAgIGNvbnN0IHdpZGdldE1hbmlmZXN0Q29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkod2luZG93TWFuaWZlc3Qud2lkZ2V0c1tmcm9tV2lkZ2V0Py53aWRnZXRJbmRleCA/PyAwXSkpO1xuICAgICAgICAvLyBSZXBsYWNpbmcgdXBkYXRlZCBxdWVyeSBpZCBieSBuZXcgcXVlcnkgaWRcbiAgICAgICAgY29uc3QgYXJyYXlPZk5hbWVkUXVlcnkgPSBBcnJheS5pc0FycmF5KHdpZGdldE1hbmlmZXN0Q29weS5uYW1lZFF1ZXJ5KVxuICAgICAgICAgID8gd2lkZ2V0TWFuaWZlc3RDb3B5Lm5hbWVkUXVlcnlcbiAgICAgICAgICA6IFt3aWRnZXRNYW5pZmVzdENvcHkubmFtZWRRdWVyeV07XG5cbiAgICAgICAgLy8gQHRzLWlnbm9yZSA6IHdlIGRvbid0IHdhbnQgdG8gbWFrZSBjb3JlIGRlcGVuZGluZyBvbiBzZWFyY2hcbiAgICAgICAgY29uc3QgbmV3UXVlcnlJZCA9IGFjdGlvbi5pZDtcbiAgICAgICAgY29uc3QgcHJldmlvdXNOcUluZGV4ID0gYXJyYXlPZk5hbWVkUXVlcnkuaW5kZXhPZihmcm9tV2lkZ2V0Py5lZGl0ZWRRdWVyeSk7XG4gICAgICAgIGlmIChwcmV2aW91c05xSW5kZXggPj0gMCkge1xuICAgICAgICAgIGFycmF5T2ZOYW1lZFF1ZXJ5W3ByZXZpb3VzTnFJbmRleF0gPSBuZXdRdWVyeUlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEVkaXRpbmcgYSByZXF1ZXN0IHRoYXQncyBub3QgaW4gdGhlIHdpZGdldC4gQWRkaW5nIGl0XG4gICAgICAgICAgYXJyYXlPZk5hbWVkUXVlcnkucHVzaChuZXdRdWVyeUlkKTtcbiAgICAgICAgfVxuICAgICAgICB3aWRnZXRNYW5pZmVzdENvcHkubmFtZWRRdWVyeSA9IGFycmF5T2ZOYW1lZFF1ZXJ5O1xuXG4gICAgICAgIHJldHVybiBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVdpZGdldE1hbmlmZXN0KHtcbiAgICAgICAgICBpbmRleDogZnJvbVdpZGdldD8ud2lkZ2V0SW5kZXggPz8gMCxcbiAgICAgICAgICBtYW5pZmVzdDogd2lkZ2V0TWFuaWZlc3RDb3B5XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgbG9hZGVkRGF0YXNldCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlXG4gICAgICAgICAgLmdldERhdGFzZXRzKClcbiAgICAgICAgICAucGlwZShtYXAoKGRzZCkgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkZWREYXRhc2V0KHsgZGF0YXNldHM6IGRzZCB9KSkpXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxvYWREYXRhc2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5sb2FkKSxcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCgpLCBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmxvYWREYXRhc2V0KCldKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVEYXRhc2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmNyZWF0ZSksXG4gICAgICBzd2l0Y2hNYXAoKHByb3BzOiB7IGRhdGFzZXQ6IERhdGFzZXQ7IHJvdXRlOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZVxuICAgICAgICAgIC5hZGREYXRhc2V0KHByb3BzLmRhdGFzZXQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiBbXG4gICAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSxcbiAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51bnNlbGVjdERhdGFzZXQoKSxcbiAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jcmVhdGVkKHsgcGF0aDogcHJvcHMucm91dGUgfSlcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIHVuc2V0TWlzc2luZ0dyb3Vwc09uRGF0YXNldFNlbGVjdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5zZWxlY3REYXRhc2V0KSxcbiAgICAgIG1hcCgoKSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnNldE1pc3NpbmdHcm91cHMoeyBtaXNzaW5nR3JvdXBzOiB1bmRlZmluZWQgfSkpXG4gICAgKVxuICApO1xuXG4gIGRlbGV0ZURhdGFzZXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVsZXRlKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmRlbGV0ZURhdGFzZXQoYWN0aW9uLm5hbWUpLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKCkgPT4gW1xuICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCgpLFxuICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51bnNlbGVjdERhdGFzZXQoKSxcbiAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVsZXRlZCh7IGFkZFJvdXRlOiBhY3Rpb24uYWRkUm91dGUgfSlcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBnZXREYXRhc2V0QnlJZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5nZXREYXRhc2V0QnlJZCksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldERhdGFzZXRCeUlkKGFjdGlvbi5pZCkucGlwZShcbiAgICAgICAgICBtYXAoKGRhdGEpID0+IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZ2V0RGF0YXNldEJ5SWRTdWNjZXNzKHsgZGF0YSB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmdldERhdGFzZXRCeUlkRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0VmVyc2lvbnMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldERhdGFzZXRWZXJzaW9ucygpLnBpcGUoXG4gICAgICAgICAgbWFwKCh2ZXJzaW9ucykgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnNTdWNjZXNzKHsgdmVyc2lvbnMgfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKF8pID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9uc0ZhaWx1cmUoKV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgbGlzdFZlcnNpb25zQnlJZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnNCeURhdGFzZXRJZCksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5nZXREYXRhc2V0VmVyc2lvbnNCeUlkKGFjdGlvbi5pZCkucGlwZShcbiAgICAgICAgICBtYXAoKHZlcnNpb25zKSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVwZGF0ZVZlcnNpb25MaXN0KHsgaWQ6IGFjdGlvbi5pZCwgdmVyc2lvbnMgfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKF8pID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9uc0ZhaWx1cmUoKV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY29uZmlybURhdGFzb3VyY2VEZWxldGlvbiQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuY29uZmlybURhdGFTb3VyY2VEZWxldGlvbiksXG4gICAgICAgIHRhcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YTogUHJ5RGlhbG9nQ29uZmlybURhdGEgPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0BwcnkuYWRtaW4uaW5mb01vZGFsVGl0bGUnLFxuICAgICAgICAgICAgbWVzc2FnZTogJ0BwcnkuYWRtaW4uZGF0YXNldC5kZWxldGUnLFxuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IDAsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdAcHJ5LmFkbWluLmRlbGV0ZScsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWxldGUoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBhY3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcm91dGU6IGFjdGlvbi5yb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgYWRkUm91dGU6IGFjdGlvbi5hZGRSb3V0ZVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgaWQ6IDAsIGxhYmVsOiAnQHByeS5hZG1pbi5jYW5jZWwnIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMucHJ5RGlhbG9nLm9wZW4oUHJ5RGlhbG9nQ29uZmlybUNvbXBvbmVudCwgeyBkYXRhIH0pO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvbiksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbjogYW55KSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvbihhY3Rpb24udmVyc2lvbklkKS5waXBlKFxuICAgICAgICAgIG1hcCgoZGF0YXNldFZlcnNpb24pID0+IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uU3VjY2Vzcyh7IGRhdGFzZXRWZXJzaW9uIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBhY3RpdmF0ZURhdGFzZXRWZXJzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmFjdGl2YXRlRGF0YXNldFZlcnNpb24pLFxuICAgICAgc3dpdGNoTWFwKChhY3Rpb246IGFueSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uKGFjdGlvbi52ZXJzaW9uSWQpLnBpcGUoXG4gICAgICAgICAgbWFwKChkYXRhc2V0VmVyc2lvbikgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uU3VjY2Vzcyh7IGRhdGFzZXRWZXJzaW9uIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuYWN0aXZhdGVEYXRhc2V0VmVyc2lvbkZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgYWN0aXZhdGVPckRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvblN1Y2Nlc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFxuICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmFjdGl2YXRlRGF0YXNldFZlcnNpb25TdWNjZXNzLFxuICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvblN1Y2Nlc3NcbiAgICAgICksXG4gICAgICBtYXAoKGFjdGlvbjogYW55KSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9ucygpKVxuICAgIClcbiAgKTtcblxuICBwcmV2aWV3c0dldEJ5SWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQucHJldmlld3MuZ2V0QnlJZCksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbjogYW55KSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldFByZXZpZXdzKGFjdGlvbi5pZCkucGlwZShcbiAgICAgICAgICBtYXAoKHByZXZpZXdzKSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnByZXZpZXdzLmdldEJ5SWRTdWNjZXNzKHsgcHJldmlld3MgfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5wcmV2aWV3cy5nZXRCeUlkRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVEYXRhc2V0VmVyc2lvbkluZm8gPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51cGRhdGVEYXRhc2V0VmVyc2lvbkluZm8pLFxuICAgICAgc3dpdGNoTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2VcbiAgICAgICAgICAudXBkYXRlRGF0YXNldFZlcnNpb25JbmZvKGFjdGlvbi52ZXJzaW9uKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChwcmV2aWV3cykgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51cGRhdGVEYXRhc2V0VmVyc2lvbkluZm9TdWNjZXNzKHsgdmVyc2lvbjogYWN0aW9uLnZlcnNpb24gfSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjb25maXJtRGVsZXRlRGF0YXNldFZlcnNpb24kID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmNvbmZpcm1EZWxldGVWZXJzaW9uKSxcbiAgICAgICAgdGFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBkYXRhOiBQcnlEaWFsb2dDb25maXJtRGF0YSA9IHtcbiAgICAgICAgICAgIHRpdGxlOiAnQHByeS5kYXRhc2V0LnZlcnNpb24uZGVsZXRlLnRpdGxlJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdAcHJ5LmRhdGFzZXQudmVyc2lvbi5kZWxldGUubWVzc2FnZScsXG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogMCxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0BwcnkuZGF0YXNldC5idXR0b25BY3Rpb24uZGVsZXRlJyxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWxldGVWZXJzaW9uKHsgdmVyc2lvbjogYWN0aW9uLnZlcnNpb24gfSldXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogMSxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0BwcnkuZGF0YXNldC5idXR0b25BY3Rpb24uY2FuY2VsJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3NlY29uZGFyeSdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5wcnlEaWFsb2cub3BlbihQcnlEaWFsb2dDb25maXJtQ29tcG9uZW50LCB7IGRhdGEgfSk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBkZWxldGVEYXRhc2V0VmVyc2lvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWxldGVWZXJzaW9uKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmRlbGV0ZURhdGFzZXRWZXJzaW9uKGFjdGlvbi52ZXJzaW9uKS5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKCgpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9uc0J5RGF0YXNldElkKHsgaWQ6IGFjdGlvbi52ZXJzaW9uLmRhdGFzZXQgfSldKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmRlbGV0ZVZlcnNpb25GYWlsdXJlKHsgZXJyIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcbn1cbiJdfQ==
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQXdCLE1BQU0sbURBQW1ELENBQUM7QUFJcEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7O0FBSTlELE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFDVSxRQUFpQixFQUNqQixhQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsUUFBNEIsRUFDNUIsU0FBeUIsRUFDekIsS0FBWSxFQUNaLFNBQTJCO1FBTjNCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsa0JB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RixDQUNGLENBQUM7SUE1V0MsQ0FBQzs4R0FYTyxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBBY3Rpb24sIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLmFjdGlvbnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgUHJ5RGlhbG9nQ29uZmlybUNvbXBvbmVudCwgUHJ5RGlhbG9nQ29uZmlybURhdGEgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL292ZXJsYXkvZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFByeURpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL292ZXJsYXkvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJ5U25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IFByeUkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU2VhcmNoQWN0aW9ucyB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2guYWN0aW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTb3VyY2VBY3Rpb25zIH0gZnJvbSAnLi9kYXRhLXNvdXJjZS5hY3Rpb25zJztcbmltcG9ydCB7IERhdGFzZXQsIE5hbWVkUXVlcnkgfSBmcm9tICcuL2RhdGEtc291cmNlLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBEYXRhU291cmNlU2VydmljZSB9IGZyb20gJy4vZGF0YS1zb3VyY2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlRWZmZWN0cyB7XG4gIHByaXZhdGUgaWROYW1lZFF1ZXJ5Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNvdXJjZVNlcnZpY2U6IERhdGFTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tCYXI6IFByeVNuYWNrYmFyU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogUHJ5STE4blNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBwcnlEaWFsb2c6IFByeURpYWxvZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIHBvc3ROYW1lUXVlcnkkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkucG9zdCksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMucmFuZG9tQ29sb3IpKSxcbiAgICAgIHN3aXRjaE1hcCgoW2FjdGlvbiwgcmFuZG9tQ29sb3JdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgaWQsIHBheWxvYWQsIGRlc2NyaXB0aW9uLCBjb2xvciwgZmF2b3JpdGUsIGlzRWRpdCwgdmlzaWJpbGl0eSB9ID0gYWN0aW9uO1xuICAgICAgICB0aGlzLmlkTmFtZWRRdWVyeSA9IGlzRWRpdCA/IGlkIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBuYW1lZFF1ZXJ5OiBOYW1lZFF1ZXJ5ID0ge1xuICAgICAgICAgIGlkOiBpZCA/PyAnJyxcbiAgICAgICAgICBzb3VyY2VUeXBlOiAnbmFtZWRRdWVyeScsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2liaWxpdHkgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIHJlcXVlc3Q6IHBheWxvYWQsXG4gICAgICAgICAgY29sb3I6IGNvbG9yID8/IHJhbmRvbUNvbG9yLFxuICAgICAgICAgIGZhdm9yaXRlXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLnBvc3QobmFtZWRRdWVyeSk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IFtdIGFzIEFjdGlvbltdO1xuICAgICAgICBpZiAodGhpcy5pZE5hbWVkUXVlcnkpIHtcbiAgICAgICAgICBhY3Rpb25zLnB1c2goXG4gICAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7IGlkOiB0aGlzLmlkTmFtZWRRdWVyeSwgZXhjbHVkZUdlbzogZmFsc2UsIGZyb206ICdwb3N0TmFtZVF1ZXJ5JCcgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaWROYW1lZFF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICBhY3Rpb25zLnB1c2goRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkKCkpO1xuICAgICAgICByZXR1cm4gYWN0aW9ucztcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIGdldE5hbWVkUXVlcnkkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCksXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldCgpKSxcbiAgICAgIG1hcCgobmFtZWRRdWVyeUxpc3Q6IE5hbWVkUXVlcnlbXSkgPT4gRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkZWQoeyBsaXN0OiBuYW1lZFF1ZXJ5TGlzdCB9KSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICApXG4gICk7XG5cbiAgbG9hZGVkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmxvYWRlZCksXG4gICAgICBtYXAoKGFjdGlvbjogeyBsaXN0OiBOYW1lZFF1ZXJ5W107IHR5cGU6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIHJldHVybiBEYXNoYm9hcmRBY3Rpb25zLnNldEF2YWlsYWJsZU5hbWVkUXVlcmllcyh7IG5hbWVzOiBhY3Rpb24ubGlzdC5tYXAoKG5xKSA9PiBucS5pZCkgfSk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBkZWxldGVOYW1lZFF1ZXJ5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmRlbGV0ZSksXG4gICAgICBzd2l0Y2hNYXAoKHByb3BzOiB7IGlkOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5kZWxldGUocHJvcHMuaWQpLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKCkgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCgpXSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgYWRkRmF2b3JpdGVOYW1lZFF1ZXJ5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmFkZEZhdm9yaXRlKSxcbiAgICAgIHN3aXRjaE1hcCgocHJvcHM6IHsgaWQ6IHN0cmluZyB9KSA9PiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmFkZEZhdm9yaXRlKHByb3BzLmlkKSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkKCldKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgIClcbiAgKTtcblxuICBkZWxldGVGYXZvcml0ZU5hbWVkUXVlcnkkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZGVsZXRlRmF2b3JpdGUpLFxuICAgICAgc3dpdGNoTWFwKChwcm9wczogeyBpZDogc3RyaW5nIH0pID0+IHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZGVsZXRlRmF2b3JpdGUocHJvcHMuaWQpKSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmxvYWQoKV0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIHRyeUVkaXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZWRpdCksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmVkaXRJblByb2dyZXNzKSksXG4gICAgICBtYXAoKFthY3Rpb24sIGluUHJvZ3Jlc3NdKSA9PiB7XG4gICAgICAgIGlmICghaW5Qcm9ncmVzcykge1xuICAgICAgICAgIHJldHVybiBEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5Lm9wZW5FZGl0KGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0Bwcnkuc2VhcmNoLm5hbWVkUXVlcnkuYWxyZWFkeUVkaXRpbmcnKSxcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3I6IG5ldyBFcnJvcignQHByeS5zZWFyY2gubmFtZWRRdWVyeS5hbHJlYWR5RWRpdGluZycpIH0pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVXaWRnZXRBZnRlclNhdmUkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgLy8gVXNpbmcgc3RyaW5ncyB0byBwcmV2ZW50IGhhdmluZyBjb3JlIG1vZHVsZSBkZXBlbmRpbmcgb24gc2VhcmNoIG1vZHVsZVxuICAgICAgb2ZUeXBlKCdbU2VhcmNoTW9ub0NsYXNzXSBzYXZlJywgJ1tTZWFyY2hNdWx0aUNsYXNzXSBsYXVuY2ggc2F2ZScsICdbU2VhcmNoIEZ1bGx0ZXh0XSBzYXZlJyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbShcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5lZGl0RnJvbVdpZGdldCksXG4gICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuY3VycmVudEVkaXQpLFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMud2luZG93TWFuaWZlc3QpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChbYWN0aW9uLCBmcm9tV2lkZ2V0LCBjdXJyZW50RWRpdCwgd2luZG93TWFuaWZlc3RdKSA9PiBmcm9tV2lkZ2V0ICE9PSB1bmRlZmluZWQpLFxuICAgICAgbWFwKChbYWN0aW9uLCBmcm9tV2lkZ2V0LCBjdXJyZW50RWRpdCwgd2luZG93TWFuaWZlc3RdKSA9PiB7XG4gICAgICAgIGNvbnN0IHdpZGdldE1hbmlmZXN0Q29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkod2luZG93TWFuaWZlc3Qud2lkZ2V0c1tmcm9tV2lkZ2V0Py53aWRnZXRJbmRleCA/PyAwXSkpO1xuICAgICAgICAvLyBSZXBsYWNpbmcgdXBkYXRlZCBxdWVyeSBpZCBieSBuZXcgcXVlcnkgaWRcbiAgICAgICAgY29uc3QgYXJyYXlPZk5hbWVkUXVlcnkgPSBBcnJheS5pc0FycmF5KHdpZGdldE1hbmlmZXN0Q29weS5uYW1lZFF1ZXJ5KVxuICAgICAgICAgID8gd2lkZ2V0TWFuaWZlc3RDb3B5Lm5hbWVkUXVlcnlcbiAgICAgICAgICA6IFt3aWRnZXRNYW5pZmVzdENvcHkubmFtZWRRdWVyeV07XG5cbiAgICAgICAgLy8gQHRzLWlnbm9yZSA6IHdlIGRvbid0IHdhbnQgdG8gbWFrZSBjb3JlIGRlcGVuZGluZyBvbiBzZWFyY2hcbiAgICAgICAgY29uc3QgbmV3UXVlcnlJZCA9IGFjdGlvbi5pZDtcbiAgICAgICAgY29uc3QgcHJldmlvdXNOcUluZGV4ID0gYXJyYXlPZk5hbWVkUXVlcnkuaW5kZXhPZihmcm9tV2lkZ2V0Py5lZGl0ZWRRdWVyeSk7XG4gICAgICAgIGlmIChwcmV2aW91c05xSW5kZXggPj0gMCkge1xuICAgICAgICAgIGFycmF5T2ZOYW1lZFF1ZXJ5W3ByZXZpb3VzTnFJbmRleF0gPSBuZXdRdWVyeUlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEVkaXRpbmcgYSByZXF1ZXN0IHRoYXQncyBub3QgaW4gdGhlIHdpZGdldC4gQWRkaW5nIGl0XG4gICAgICAgICAgYXJyYXlPZk5hbWVkUXVlcnkucHVzaChuZXdRdWVyeUlkKTtcbiAgICAgICAgfVxuICAgICAgICB3aWRnZXRNYW5pZmVzdENvcHkubmFtZWRRdWVyeSA9IGFycmF5T2ZOYW1lZFF1ZXJ5O1xuXG4gICAgICAgIHJldHVybiBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVdpZGdldE1hbmlmZXN0KHtcbiAgICAgICAgICBpbmRleDogZnJvbVdpZGdldD8ud2lkZ2V0SW5kZXggPz8gMCxcbiAgICAgICAgICBtYW5pZmVzdDogd2lkZ2V0TWFuaWZlc3RDb3B5XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgbG9hZGVkRGF0YXNldCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlXG4gICAgICAgICAgLmdldERhdGFzZXRzKClcbiAgICAgICAgICAucGlwZShtYXAoKGRzZCkgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkZWREYXRhc2V0KHsgZGF0YXNldHM6IGRzZCB9KSkpXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxvYWREYXRhc2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5sb2FkKSxcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCgpLCBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmxvYWREYXRhc2V0KCldKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVEYXRhc2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmNyZWF0ZSksXG4gICAgICBzd2l0Y2hNYXAoKHByb3BzOiB7IGRhdGFzZXQ6IERhdGFzZXQ7IHJvdXRlOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZVxuICAgICAgICAgIC5hZGREYXRhc2V0KHByb3BzLmRhdGFzZXQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiBbXG4gICAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSxcbiAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51bnNlbGVjdERhdGFzZXQoKSxcbiAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jcmVhdGVkKHsgcGF0aDogcHJvcHMucm91dGUgfSlcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIHVuc2V0TWlzc2luZ0dyb3Vwc09uRGF0YXNldFNlbGVjdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5zZWxlY3REYXRhc2V0KSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+IFtcbiAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5zZXRNaXNzaW5nR3JvdXBzKHsgbWlzc2luZ0dyb3VwczogdW5kZWZpbmVkIH0pLFxuICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9uc0J5RGF0YXNldElkKHsgaWQ6IGFjdGlvbi5kYXRhc2V0LmlkIH0pXG4gICAgICBdKVxuICAgIClcbiAgKTtcblxuICBkZWxldGVEYXRhc2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmRlbGV0ZSksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5kZWxldGVEYXRhc2V0KGFjdGlvbi5uYW1lKS5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKCgpID0+IFtcbiAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSxcbiAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQudW5zZWxlY3REYXRhc2V0KCksXG4gICAgICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmRlbGV0ZWQoeyBhZGRSb3V0ZTogYWN0aW9uLmFkZFJvdXRlIH0pXG4gICAgICAgICAgXSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZ2V0RGF0YXNldEJ5SWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZ2V0RGF0YXNldEJ5SWQpLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5nZXREYXRhc2V0QnlJZChhY3Rpb24uaWQpLnBpcGUoXG4gICAgICAgICAgbWFwKChkYXRhKSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmdldERhdGFzZXRCeUlkU3VjY2Vzcyh7IGRhdGEgfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5nZXREYXRhc2V0QnlJZEZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgbGlzdFZlcnNpb25zJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9ucyksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5nZXREYXRhc2V0VmVyc2lvbnMoKS5waXBlKFxuICAgICAgICAgIG1hcCgodmVyc2lvbnMpID0+IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zU3VjY2Vzcyh7IHZlcnNpb25zIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChfKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnNGYWlsdXJlKCldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxpc3RWZXJzaW9uc0J5SWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zQnlEYXRhc2V0SWQpLFxuICAgICAgc3dpdGNoTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZ2V0RGF0YXNldFZlcnNpb25zQnlJZChhY3Rpb24uaWQpLnBpcGUoXG4gICAgICAgICAgbWFwKCh2ZXJzaW9ucykgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51cGRhdGVWZXJzaW9uTGlzdCh7IGlkOiBhY3Rpb24uaWQsIHZlcnNpb25zIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChfKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnNGYWlsdXJlKCldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNvbmZpcm1EYXRhc291cmNlRGVsZXRpb24kID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmNvbmZpcm1EYXRhU291cmNlRGVsZXRpb24pLFxuICAgICAgICB0YXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGRhdGE6IFByeURpYWxvZ0NvbmZpcm1EYXRhID0ge1xuICAgICAgICAgICAgdGl0bGU6ICdAcHJ5LmFkbWluLmluZm9Nb2RhbFRpdGxlJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdAcHJ5LmFkbWluLmRhdGFzZXQuZGVsZXRlJyxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAwLFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQHByeS5hZG1pbi5kZWxldGUnLFxuICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVsZXRlKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogYWN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlOiBhY3Rpb24ucm91dGUsXG4gICAgICAgICAgICAgICAgICAgIGFkZFJvdXRlOiBhY3Rpb24uYWRkUm91dGVcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IGlkOiAwLCBsYWJlbDogJ0BwcnkuYWRtaW4uY2FuY2VsJyB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLnByeURpYWxvZy5vcGVuKFByeURpYWxvZ0NvbmZpcm1Db21wb25lbnQsIHsgZGF0YSB9KTtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIGRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWFjdGl2YXRlRGF0YXNldFZlcnNpb24pLFxuICAgICAgc3dpdGNoTWFwKChhY3Rpb246IGFueSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5kZWFjdGl2YXRlRGF0YXNldFZlcnNpb24oYWN0aW9uLnZlcnNpb25JZCkucGlwZShcbiAgICAgICAgICBtYXAoKGRhdGFzZXRWZXJzaW9uKSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvblN1Y2Nlc3MoeyBkYXRhc2V0VmVyc2lvbiB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvbkZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgYWN0aXZhdGVEYXRhc2V0VmVyc2lvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uOiBhbnkpID0+XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuYWN0aXZhdGVEYXRhc2V0VmVyc2lvbihhY3Rpb24udmVyc2lvbklkKS5waXBlKFxuICAgICAgICAgIG1hcCgoZGF0YXNldFZlcnNpb24pID0+IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuYWN0aXZhdGVEYXRhc2V0VmVyc2lvblN1Y2Nlc3MoeyBkYXRhc2V0VmVyc2lvbiB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmFjdGl2YXRlRGF0YXNldFZlcnNpb25GYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGFjdGl2YXRlT3JEZWFjdGl2YXRlRGF0YXNldFZlcnNpb25TdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShcbiAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uU3VjY2VzcyxcbiAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWFjdGl2YXRlRGF0YXNldFZlcnNpb25TdWNjZXNzXG4gICAgICApLFxuICAgICAgbWFwKChhY3Rpb246IGFueSkgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnMoKSlcbiAgICApXG4gICk7XG5cbiAgcHJldmlld3NHZXRCeUlkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnByZXZpZXdzLmdldEJ5SWQpLFxuICAgICAgc3dpdGNoTWFwKChhY3Rpb246IGFueSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5nZXRQcmV2aWV3cyhhY3Rpb24uaWQpLnBpcGUoXG4gICAgICAgICAgbWFwKChwcmV2aWV3cykgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5wcmV2aWV3cy5nZXRCeUlkU3VjY2Vzcyh7IHByZXZpZXdzIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQucHJldmlld3MuZ2V0QnlJZEZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgdXBkYXRlRGF0YXNldFZlcnNpb25JbmZvID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQudXBkYXRlRGF0YXNldFZlcnNpb25JbmZvKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlXG4gICAgICAgICAgLnVwZGF0ZURhdGFzZXRWZXJzaW9uSW5mbyhhY3Rpb24udmVyc2lvbilcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocHJldmlld3MpID0+IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQudXBkYXRlRGF0YXNldFZlcnNpb25JbmZvU3VjY2Vzcyh7IHZlcnNpb246IGFjdGlvbi52ZXJzaW9uIH0pKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY29uZmlybURlbGV0ZURhdGFzZXRWZXJzaW9uJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jb25maXJtRGVsZXRlVmVyc2lvbiksXG4gICAgICAgIHRhcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YTogUHJ5RGlhbG9nQ29uZmlybURhdGEgPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0BwcnkuZGF0YXNldC52ZXJzaW9uLmRlbGV0ZS50aXRsZScsXG4gICAgICAgICAgICBtZXNzYWdlOiAnQHByeS5kYXRhc2V0LnZlcnNpb24uZGVsZXRlLm1lc3NhZ2UnLFxuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IDAsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLmRlbGV0ZScsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVsZXRlVmVyc2lvbih7IHZlcnNpb246IGFjdGlvbi52ZXJzaW9uIH0pXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IDEsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdAcHJ5LmRhdGFzZXQuYnV0dG9uQWN0aW9uLmNhbmNlbCcsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdzZWNvbmRhcnknXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMucHJ5RGlhbG9nLm9wZW4oUHJ5RGlhbG9nQ29uZmlybUNvbXBvbmVudCwgeyBkYXRhIH0pO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgZGVsZXRlRGF0YXNldFZlcnNpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVsZXRlVmVyc2lvbiksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5kZWxldGVEYXRhc2V0VmVyc2lvbihhY3Rpb24udmVyc2lvbikucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgoKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnNCeURhdGFzZXRJZCh7IGlkOiBhY3Rpb24udmVyc2lvbi5kYXRhc2V0IH0pXSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWxldGVWZXJzaW9uRmFpbHVyZSh7IGVyciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG59XG4iXX0=
@@ -232,6 +232,17 @@ export class ToolboxManifestService extends SubscriptionnerDirective {
232
232
  baseSpec: {}
233
233
  },
234
234
  datasource: USE_CURRENT_RESULTSET
235
+ },
236
+ analytic: {
237
+ type: 'analytic',
238
+ layout: {
239
+ x: 1,
240
+ y: 1,
241
+ height: 2,
242
+ width: 3
243
+ },
244
+ options: { primaryProp: '', secondaryProp: '', verticalProp: '', valueProp: '' },
245
+ datasource: USE_CURRENT_RESULTSET
235
246
  }
236
247
  });
237
248
  this.currentResultSet = [];
@@ -281,4 +292,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
281
292
  providedIn: 'root'
282
293
  }]
283
294
  }], ctorParameters: () => [{ type: i1.Store }] });
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC1tYW5pZmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvdG9vbGJveC90b29sYm94LW1hbmlmZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2xILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFFbkUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLENBQUM7QUFLN0QsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHdCQUF3QjtJQWlPbEUsWUFBb0IsS0FBaUI7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBaE9yQyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBb0M7WUFDekUsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxLQUFLO2dCQUNYLE1BQU0sRUFBRTtvQkFDTixDQUFDLEVBQUUsQ0FBQztvQkFDSixDQUFDLEVBQUUsQ0FBQztvQkFDSixNQUFNLEVBQUUsQ0FBQztvQkFDVCxLQUFLLEVBQUUsQ0FBQztpQkFDVDtnQkFDRCxPQUFPLEVBQUU7b0JBQ1As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O29CQUNKLE1BQU0sRUFBRSxDQUFDO29CQUNULEtBQUssRUFBRSxDQUFDO2lCQUNUO2dCQUNELE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzdDLFVBQVUsRUFBRSxxQkFBcUI7YUFDbEM7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFFO29CQUNOLENBQUMsRUFBRSxDQUFDO29CQUNKLENBQUMsRUFBRSxDQUFDO29CQUNKLE1BQU0sRUFBRSxDQUFDO29CQUNULEtBQUssRUFBRSxDQUFDO2lCQUNUO2dCQUNELE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzlDLFVBQVUsRUFBRSxxQkFBcUI7YUFDbEM7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFFO29CQUNOLENBQUMsRUFBRSxDQUFDO29CQUNKLENBQUMsRUFBRSxDQUFDO29CQUNKLE1BQU0sRUFBRSxDQUFDO29CQUNULEtBQUssRUFBRSxDQUFDO2lCQUNUO2dCQUNELE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzVDLFVBQVUsRUFBRSxxQkFBcUI7YUFDbEM7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFFO29CQUNOLENBQUMsRUFBRSxDQUFDO29CQUNKLENBQUMsRUFBRSxDQUFDO29CQUNKLE1BQU0sRUFBRSxDQUFDO29CQUNULEtBQUssRUFBRSxDQUFDO2lCQUNUO2dCQUNELE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hELFVBQVUsRUFBRSxxQkFBcUI7YUFDbEM7WUFDRCxNQUFNLEVBQUU7Z0JBQ04s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QyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsVUFBVSxLQUFLLHFCQUFxQixDQUFDO0lBQ3JFLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBaUIsRUFBRSxFQUFVO1FBQ3hDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7WUFDeEcsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUU5QixNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFDeEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1lBRTNDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNqRixNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9FLENBQUM7SUFDSCxDQUFDOzhHQXJSVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1JTUVfVFlQRV9XSURHRVRfTUFOSUZFU1QsIE1JTUVfVFlQRV9XSURHRVRfVFlQRSB9IGZyb20gJy4uLy4uL2Rhc2hib2FyZC9jb21wb25lbnRzL2Rhc2hib2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGFzaGJvYXJkL2NvbXBvbmVudHMvc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBXaWRnZXRMYXlvdXQsIFdpZGdldE1hbmlmZXN0IH0gZnJvbSAnLi4vbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyYXBoVHlwZSB9IGZyb20gJy4uL21vZGVsL3dpZGdldC1hZ2dyZWdhdGVkLWNoYXJ0LW1hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kZSB9IGZyb20gJy4uL21vZGVsL3dpZGdldC1tYXAtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gJy4uL3N0b3JlL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcblxuZXhwb3J0IGNvbnN0IFVTRV9DVVJSRU5UX1JFU1VMVFNFVCA9ICd1c2UtY3VycmVudC1yZXN1bHRzZXQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUb29sYm94TWFuaWZlc3RTZXJ2aWNlIGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgaW5pdGlhbE1hbmlmZXN0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgW2tleTogc3RyaW5nXTogV2lkZ2V0TWFuaWZlc3QgfT4oe1xuICAgIHNpbXBsZW1hcDoge1xuICAgICAgdHlwZTogJ21hcCcsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZml0OiB0cnVlLFxuICAgICAgICBhdXRvbWF0aWNMYXllcnM6IHRydWUsXG4gICAgICAgIGxheWVyczogW10sXG4gICAgICAgIHRvb2x0aXBNb2RlOiBUb29sdGlwTW9kZS5DTElDS1xuICAgICAgfSxcbiAgICAgIGRhdGFzb3VyY2U6IFVTRV9DVVJSRU5UX1JFU1VMVFNFVFxuICAgIH0sXG4gICAgaGVhdG1hcDoge1xuICAgICAgdHlwZTogJ21hcCcsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZml0OiB0cnVlLFxuICAgICAgICBsYXllcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAnaGVhdG1hcCdcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHRvb2x0aXBNb2RlOiBUb29sdGlwTW9kZS5DTElDS1xuICAgICAgfSxcbiAgICAgIGRhdGFzb3VyY2U6IFVTRV9DVVJSRU5UX1JFU1VMVFNFVFxuICAgIH0sXG4gICAgYnViYmxlbWFwOiB7XG4gICAgICB0eXBlOiAnbWFwJyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBmaXQ6IHRydWUsXG4gICAgICAgIGxheWVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICdidWJibGUnXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICB0b29sdGlwTW9kZTogVG9vbHRpcE1vZGUuQ0xJQ0tcbiAgICAgIH0sXG4gICAgICBkYXRhc291cmNlOiBVU0VfQ1VSUkVOVF9SRVNVTFRTRVRcbiAgICB9LFxuICAgIG1hcmtlcm1hcDoge1xuICAgICAgdHlwZTogJ21hcCcsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZml0OiB0cnVlLFxuICAgICAgICBsYXllcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAnbWFya2VyJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgdG9vbHRpcE1vZGU6IFRvb2x0aXBNb2RlLkNMSUNLXG4gICAgICB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICB0YWJsZToge1xuICAgICAgdHlwZTogJ3RhYmxlJyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge30sXG4gICAgICBkYXRhc291cmNlOiBVU0VfQ1VSUkVOVF9SRVNVTFRTRVRcbiAgICB9LFxuICAgIGJhcmNoYXJ0OiB7XG4gICAgICB0eXBlOiAnY2hhcnQnLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGhlaWdodDogMixcbiAgICAgICAgd2lkdGg6IDNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7IGdyYXBoOiB7IHR5cGU6IEdyYXBoVHlwZS5CQVIgfSB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICBoaXN0b2dyYW06IHtcbiAgICAgIHR5cGU6ICdjaGFydCcsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHsgZ3JhcGg6IHsgdHlwZTogR3JhcGhUeXBlLkhJU1RPR1JBTSB9IH0sXG4gICAgICBkYXRhc291cmNlOiBVU0VfQ1VSUkVOVF9SRVNVTFRTRVRcbiAgICB9LFxuICAgIGxpbmVjaGFydDoge1xuICAgICAgdHlwZTogJ2NoYXJ0JyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczogeyBncmFwaDogeyB0eXBlOiBHcmFwaFR5cGUuQ1VSVkUgfSB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICBwb2ludGNoYXJ0OiB7XG4gICAgICB0eXBlOiAnY2hhcnQnLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGhlaWdodDogMixcbiAgICAgICAgd2lkdGg6IDNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7IGdyYXBoOiB7IHR5cGU6IEdyYXBoVHlwZS5QT0lOVFMgfSB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICBhcmVhY2hhcnQ6IHtcbiAgICAgIHR5cGU6ICdjaGFydCcsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHsgZ3JhcGg6IHsgdHlwZTogR3JhcGhUeXBlLkFSRUEgfSB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICBhcmNjaGFydDoge1xuICAgICAgdHlwZTogJ2NoYXJ0JyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczogeyBncmFwaDogeyB0eXBlOiBHcmFwaFR5cGUuQ0lSQ1VMQVIgfSB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICBkZXRhaWw6IHtcbiAgICAgIHR5cGU6ICdkZXRhaWwnLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGhlaWdodDogMixcbiAgICAgICAgd2lkdGg6IDNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7fVxuICAgIH0sXG4gICAgaWZyYW1lOiB7XG4gICAgICB0eXBlOiAnaWZyYW1lJyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge31cbiAgICB9LFxuICAgIGdyYXBoOiB7XG4gICAgICB0eXBlOiAnZ3JhcGgnLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGhlaWdodDogMixcbiAgICAgICAgd2lkdGg6IDNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIG1pbmlNYXA6IHRydWVcbiAgICAgIH0sXG4gICAgICBkYXRhc291cmNlOiBVU0VfQ1VSUkVOVF9SRVNVTFRTRVRcbiAgICB9LFxuICAgIHRpbGU6IHtcbiAgICAgIHR5cGU6ICd0aWxlJyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge30sXG4gICAgICBkYXRhc291cmNlOiBVU0VfQ1VSUkVOVF9SRVNVTFRTRVRcbiAgICB9LFxuICAgIHRlbXBsYXRlOiB7XG4gICAgICB0eXBlOiAndGVtcGxhdGUnLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGhlaWdodDogMixcbiAgICAgICAgd2lkdGg6IDNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7IGh0bWw6ICcnLCBjc3M6ICcnIH0sXG4gICAgICBkYXRhc291cmNlOiBVU0VfQ1VSUkVOVF9SRVNVTFRTRVRcbiAgICB9LFxuICAgIHZlZ2E6IHtcbiAgICAgIHR5cGU6ICd2ZWdhJyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBwbGFjZURhdGE6IFsnZGF0YScsIDAsICd2YWx1ZXMnXSxcbiAgICAgICAgYmFzZVNwZWM6IHt9XG4gICAgICB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfVxuICB9KTtcblxuICBjdXJyZW50UmVzdWx0U2V0OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZGVmYXVsdERhdGFzb3VyY2VOYW1lcykuc3Vic2NyaWJlKChyc05hbWUpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50UmVzdWx0U2V0ID0gcnNOYW1lO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5jYXRhbG9nKS5zdWJzY3JpYmUoKHdpZGdldHMpID0+IHtcbiAgICAgICAgd2lkZ2V0cy5mb3JFYWNoKCh3aWRnZXQpID0+IHRoaXMuc2V0KHdpZGdldC5pZCwgeyAuLi5KU09OLnBhcnNlKHdpZGdldC5jb250ZW50KSwgdGl0bGU6IHdpZGdldC5uYW1lIH0pKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldChpZDogc3RyaW5nLCBpbnN0YW5jaWF0ZSA9IHRydWUpOiBXaWRnZXRNYW5pZmVzdCB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSB0aGlzLmluaXRpYWxNYW5pZmVzdHMkLmdldFZhbHVlKClbaWRdO1xuICAgIGlmICghbWFuaWZlc3QpIHtcbiAgICAgIHJldHVybiBtYW5pZmVzdDtcbiAgICB9XG4gICAgY29uc3QgY29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QpKTtcbiAgICBpZiAoaW5zdGFuY2lhdGUgJiYgISFjb3B5ICYmIGNvcHkuZGF0YXNvdXJjZSA9PT0gVVNFX0NVUlJFTlRfUkVTVUxUU0VUKSB7XG4gICAgICBjb3B5LmRhdGFzb3VyY2UgPSBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGNvcHk7XG4gIH1cblxuICBzZXQoaWQ6IHN0cmluZywgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0KTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsTWFuaWZlc3RzJC5uZXh0KHsgLi4udGhpcy5pbml0aWFsTWFuaWZlc3RzJC5nZXRWYWx1ZSgpLCBbaWRdOiBtYW5pZmVzdCB9KTtcbiAgfVxuXG4gIHNldEFsbExheW91dHMobGF5b3V0OiBXaWRnZXRMYXlvdXQpOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmluaXRpYWxNYW5pZmVzdHMkLmdldFZhbHVlKCkpLmZvckVhY2goXG4gICAgICAoa2V5KSA9PiAodGhpcy5pbml0aWFsTWFuaWZlc3RzJC5nZXRWYWx1ZSgpW2tleV0ubGF5b3V0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShsYXlvdXQpKSlcbiAgICApO1xuICB9XG5cbiAgaXNNb2RlbChpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSB0aGlzLmdldChpZCwgZmFsc2UpO1xuICAgIHJldHVybiAhIW1hbmlmZXN0ICYmIG1hbmlmZXN0LmRhdGFzb3VyY2UgPT09IFVTRV9DVVJSRU5UX1JFU1VMVFNFVDtcbiAgfVxuXG4gIGRhdGFUcmFuc2ZlcigkZXZlbnQ6IERyYWdFdmVudCwgaWQ6IHN0cmluZykge1xuICAgIGlmICghISRldmVudCAmJiAhISRldmVudC5kYXRhVHJhbnNmZXIgJiYgISRldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoTUlNRV9UWVBFX1dJREdFVF9NQU5JRkVTVCkpIHtcbiAgICAgIGNvbnN0IG1hbmlmZXN0ID0gdGhpcy5nZXQoaWQpO1xuXG4gICAgICAkZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnY29weSc7XG4gICAgICAkZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAnY29weSc7XG5cbiAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShNSU1FX1RZUEVfV0lER0VUX01BTklGRVNULCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdCkpO1xuICAgICAgJGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKE1JTUVfVFlQRV9XSURHRVRfVFlQRSArIG1hbmlmZXN0LnR5cGUsICd1bnVzZWQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC1tYW5pZmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvdG9vbGJveC90b29sYm94LW1hbmlmZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2xILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFFbkUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLENBQUM7QUFLN0QsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHdCQUF3QjtJQTRPbEUsWUFBb0IsS0FBaUI7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBM09yQyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBb0M7WUFDekUsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxLQUFLO2dCQUNYLE1BQU0sRUFBRTtvQkFDTixDQUFDLEVBQUUsQ0FBQztvQkFDSixDQUFDLEVBQUUsQ0FBQztvQkFDSixNQUFNLEVBQUUsQ0FBQztvQkFDVCxLQUFLLEVBQUUsQ0FBQztpQkFDVDtnQkFDRCxPQUFPLEVBQUU7b0JBQ1As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O29CQUNKLE1BQU0sRUFBRSxDQUFDO29CQUNULEtBQUssRUFBRSxDQUFDO2lCQUNUO2dCQUNELE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzdDLFVBQVUsRUFBRSxxQkFBcUI7YUFDbEM7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFFO29CQUNOLENBQUMsRUFBRSxDQUFDO29CQUNKLENBQUMsRUFBRSxDQUFDO29CQUNKLE1BQU0sRUFBRSxDQUFDO29CQUNULEtBQUssRUFBRSxDQUFDO2lCQUNUO2dCQUNELE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzlDLFVBQVUsRUFBRSxxQkFBcUI7YUFDbEM7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFFO29CQUNOLENBQUMsRUFBRSxDQUFDO29CQUNKLENBQUMsRUFBRSxDQUFDO29CQUNKLE1BQU0sRUFBRSxDQUFDO29CQUNULEtBQUssRUFBRSxDQUFDO2lCQUNUO2dCQUNELE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzVDLFVBQVUsRUFBRSxxQkFBcUI7YUFDbEM7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFFO29CQUNOLENBQUMsRUFBRSxDQUFDO29CQUNKLENBQUMsRUFBRSxDQUFDO29CQUNKLE1BQU0sRUFBRSxDQUFDO29CQUNULEtBQUssRUFBRSxDQUFDO2lCQUNUO2dCQUNELE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hELFVBQVUsRUFBRSxxQkFBcUI7YUFDbEM7WUFDRCxNQUFNLEVBQUU7Z0JBQ04s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QUF0QixzQkFBc0IsY0FGckIsTUFBTTs7MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNSU1FX1RZUEVfV0lER0VUX01BTklGRVNULCBNSU1FX1RZUEVfV0lER0VUX1RZUEUgfSBmcm9tICcuLi8uLi9kYXNoYm9hcmQvY29tcG9uZW50cy9kYXNoYm9hcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2Rhc2hib2FyZC9jb21wb25lbnRzL3N1YnNjcmlwdGlvbm5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgV2lkZ2V0TGF5b3V0LCBXaWRnZXRNYW5pZmVzdCB9IGZyb20gJy4uL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmFwaFR5cGUgfSBmcm9tICcuLi9tb2RlbC93aWRnZXQtYWdncmVnYXRlZC1jaGFydC1tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZGUgfSBmcm9tICcuLi9tb2RlbC93aWRnZXQtbWFwLW1hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi9zdG9yZS9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBVU0VfQ1VSUkVOVF9SRVNVTFRTRVQgPSAndXNlLWN1cnJlbnQtcmVzdWx0c2V0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVG9vbGJveE1hbmlmZXN0U2VydmljZSBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB7XG4gIGluaXRpYWxNYW5pZmVzdHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IFtrZXk6IHN0cmluZ106IFdpZGdldE1hbmlmZXN0IH0+KHtcbiAgICBzaW1wbGVtYXA6IHtcbiAgICAgIHR5cGU6ICdtYXAnLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGhlaWdodDogMixcbiAgICAgICAgd2lkdGg6IDNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGZpdDogdHJ1ZSxcbiAgICAgICAgYXV0b21hdGljTGF5ZXJzOiB0cnVlLFxuICAgICAgICBsYXllcnM6IFtdLFxuICAgICAgICB0b29sdGlwTW9kZTogVG9vbHRpcE1vZGUuQ0xJQ0tcbiAgICAgIH0sXG4gICAgICBkYXRhc291cmNlOiBVU0VfQ1VSUkVOVF9SRVNVTFRTRVRcbiAgICB9LFxuICAgIGhlYXRtYXA6IHtcbiAgICAgIHR5cGU6ICdtYXAnLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGhlaWdodDogMixcbiAgICAgICAgd2lkdGg6IDNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGZpdDogdHJ1ZSxcbiAgICAgICAgbGF5ZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogJ2hlYXRtYXAnXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICB0b29sdGlwTW9kZTogVG9vbHRpcE1vZGUuQ0xJQ0tcbiAgICAgIH0sXG4gICAgICBkYXRhc291cmNlOiBVU0VfQ1VSUkVOVF9SRVNVTFRTRVRcbiAgICB9LFxuICAgIGJ1YmJsZW1hcDoge1xuICAgICAgdHlwZTogJ21hcCcsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZml0OiB0cnVlLFxuICAgICAgICBsYXllcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAnYnViYmxlJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgdG9vbHRpcE1vZGU6IFRvb2x0aXBNb2RlLkNMSUNLXG4gICAgICB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICBtYXJrZXJtYXA6IHtcbiAgICAgIHR5cGU6ICdtYXAnLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGhlaWdodDogMixcbiAgICAgICAgd2lkdGg6IDNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGZpdDogdHJ1ZSxcbiAgICAgICAgbGF5ZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogJ21hcmtlcidcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHRvb2x0aXBNb2RlOiBUb29sdGlwTW9kZS5DTElDS1xuICAgICAgfSxcbiAgICAgIGRhdGFzb3VyY2U6IFVTRV9DVVJSRU5UX1JFU1VMVFNFVFxuICAgIH0sXG4gICAgdGFibGU6IHtcbiAgICAgIHR5cGU6ICd0YWJsZScsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICBiYXJjaGFydDoge1xuICAgICAgdHlwZTogJ2NoYXJ0JyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczogeyBncmFwaDogeyB0eXBlOiBHcmFwaFR5cGUuQkFSIH0gfSxcbiAgICAgIGRhdGFzb3VyY2U6IFVTRV9DVVJSRU5UX1JFU1VMVFNFVFxuICAgIH0sXG4gICAgaGlzdG9ncmFtOiB7XG4gICAgICB0eXBlOiAnY2hhcnQnLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGhlaWdodDogMixcbiAgICAgICAgd2lkdGg6IDNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7IGdyYXBoOiB7IHR5cGU6IEdyYXBoVHlwZS5ISVNUT0dSQU0gfSB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICBsaW5lY2hhcnQ6IHtcbiAgICAgIHR5cGU6ICdjaGFydCcsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHsgZ3JhcGg6IHsgdHlwZTogR3JhcGhUeXBlLkNVUlZFIH0gfSxcbiAgICAgIGRhdGFzb3VyY2U6IFVTRV9DVVJSRU5UX1JFU1VMVFNFVFxuICAgIH0sXG4gICAgcG9pbnRjaGFydDoge1xuICAgICAgdHlwZTogJ2NoYXJ0JyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczogeyBncmFwaDogeyB0eXBlOiBHcmFwaFR5cGUuUE9JTlRTIH0gfSxcbiAgICAgIGRhdGFzb3VyY2U6IFVTRV9DVVJSRU5UX1JFU1VMVFNFVFxuICAgIH0sXG4gICAgYXJlYWNoYXJ0OiB7XG4gICAgICB0eXBlOiAnY2hhcnQnLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIHg6IDEsXG4gICAgICAgIHk6IDEsXG4gICAgICAgIGhlaWdodDogMixcbiAgICAgICAgd2lkdGg6IDNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7IGdyYXBoOiB7IHR5cGU6IEdyYXBoVHlwZS5BUkVBIH0gfSxcbiAgICAgIGRhdGFzb3VyY2U6IFVTRV9DVVJSRU5UX1JFU1VMVFNFVFxuICAgIH0sXG4gICAgYXJjY2hhcnQ6IHtcbiAgICAgIHR5cGU6ICdjaGFydCcsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHsgZ3JhcGg6IHsgdHlwZTogR3JhcGhUeXBlLkNJUkNVTEFSIH0gfSxcbiAgICAgIGRhdGFzb3VyY2U6IFVTRV9DVVJSRU5UX1JFU1VMVFNFVFxuICAgIH0sXG4gICAgZGV0YWlsOiB7XG4gICAgICB0eXBlOiAnZGV0YWlsJyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge31cbiAgICB9LFxuICAgIGlmcmFtZToge1xuICAgICAgdHlwZTogJ2lmcmFtZScsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHt9XG4gICAgfSxcbiAgICBncmFwaDoge1xuICAgICAgdHlwZTogJ2dyYXBoJyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBtaW5pTWFwOiB0cnVlXG4gICAgICB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICB0aWxlOiB7XG4gICAgICB0eXBlOiAndGlsZScsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICB0ZW1wbGF0ZToge1xuICAgICAgdHlwZTogJ3RlbXBsYXRlJyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICB4OiAxLFxuICAgICAgICB5OiAxLFxuICAgICAgICBoZWlnaHQ6IDIsXG4gICAgICAgIHdpZHRoOiAzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczogeyBodG1sOiAnJywgY3NzOiAnJyB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfSxcbiAgICB2ZWdhOiB7XG4gICAgICB0eXBlOiAndmVnYScsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcGxhY2VEYXRhOiBbJ2RhdGEnLCAwLCAndmFsdWVzJ10sXG4gICAgICAgIGJhc2VTcGVjOiB7fVxuICAgICAgfSxcbiAgICAgIGRhdGFzb3VyY2U6IFVTRV9DVVJSRU5UX1JFU1VMVFNFVFxuICAgIH0sXG4gICAgYW5hbHl0aWM6IHtcbiAgICAgIHR5cGU6ICdhbmFseXRpYycsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgeDogMSxcbiAgICAgICAgeTogMSxcbiAgICAgICAgaGVpZ2h0OiAyLFxuICAgICAgICB3aWR0aDogM1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHsgcHJpbWFyeVByb3A6ICcnLCBzZWNvbmRhcnlQcm9wOiAnJywgdmVydGljYWxQcm9wOiAnJywgdmFsdWVQcm9wOiAnJyB9LFxuICAgICAgZGF0YXNvdXJjZTogVVNFX0NVUlJFTlRfUkVTVUxUU0VUXG4gICAgfVxuICB9KTtcblxuICBjdXJyZW50UmVzdWx0U2V0OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZGVmYXVsdERhdGFzb3VyY2VOYW1lcykuc3Vic2NyaWJlKChyc05hbWUpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50UmVzdWx0U2V0ID0gcnNOYW1lO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5jYXRhbG9nKS5zdWJzY3JpYmUoKHdpZGdldHMpID0+IHtcbiAgICAgICAgd2lkZ2V0cy5mb3JFYWNoKCh3aWRnZXQpID0+IHRoaXMuc2V0KHdpZGdldC5pZCwgeyAuLi5KU09OLnBhcnNlKHdpZGdldC5jb250ZW50KSwgdGl0bGU6IHdpZGdldC5uYW1lIH0pKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldChpZDogc3RyaW5nLCBpbnN0YW5jaWF0ZSA9IHRydWUpOiBXaWRnZXRNYW5pZmVzdCB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSB0aGlzLmluaXRpYWxNYW5pZmVzdHMkLmdldFZhbHVlKClbaWRdO1xuICAgIGlmICghbWFuaWZlc3QpIHtcbiAgICAgIHJldHVybiBtYW5pZmVzdDtcbiAgICB9XG4gICAgY29uc3QgY29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QpKTtcbiAgICBpZiAoaW5zdGFuY2lhdGUgJiYgISFjb3B5ICYmIGNvcHkuZGF0YXNvdXJjZSA9PT0gVVNFX0NVUlJFTlRfUkVTVUxUU0VUKSB7XG4gICAgICBjb3B5LmRhdGFzb3VyY2UgPSBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGNvcHk7XG4gIH1cblxuICBzZXQoaWQ6IHN0cmluZywgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0KTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsTWFuaWZlc3RzJC5uZXh0KHsgLi4udGhpcy5pbml0aWFsTWFuaWZlc3RzJC5nZXRWYWx1ZSgpLCBbaWRdOiBtYW5pZmVzdCB9KTtcbiAgfVxuXG4gIHNldEFsbExheW91dHMobGF5b3V0OiBXaWRnZXRMYXlvdXQpOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmluaXRpYWxNYW5pZmVzdHMkLmdldFZhbHVlKCkpLmZvckVhY2goXG4gICAgICAoa2V5KSA9PiAodGhpcy5pbml0aWFsTWFuaWZlc3RzJC5nZXRWYWx1ZSgpW2tleV0ubGF5b3V0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShsYXlvdXQpKSlcbiAgICApO1xuICB9XG5cbiAgaXNNb2RlbChpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSB0aGlzLmdldChpZCwgZmFsc2UpO1xuICAgIHJldHVybiAhIW1hbmlmZXN0ICYmIG1hbmlmZXN0LmRhdGFzb3VyY2UgPT09IFVTRV9DVVJSRU5UX1JFU1VMVFNFVDtcbiAgfVxuXG4gIGRhdGFUcmFuc2ZlcigkZXZlbnQ6IERyYWdFdmVudCwgaWQ6IHN0cmluZykge1xuICAgIGlmICghISRldmVudCAmJiAhISRldmVudC5kYXRhVHJhbnNmZXIgJiYgISRldmVudC5kYXRhVHJhbnNmZXIudHlwZXMuaW5jbHVkZXMoTUlNRV9UWVBFX1dJREdFVF9NQU5JRkVTVCkpIHtcbiAgICAgIGNvbnN0IG1hbmlmZXN0ID0gdGhpcy5nZXQoaWQpO1xuXG4gICAgICAkZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnY29weSc7XG4gICAgICAkZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAnY29weSc7XG5cbiAgICAgICRldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShNSU1FX1RZUEVfV0lER0VUX01BTklGRVNULCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdCkpO1xuICAgICAgJGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKE1JTUVfVFlQRV9XSURHRVRfVFlQRSArIG1hbmlmZXN0LnR5cGUsICd1bnVzZWQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -44,7 +44,8 @@ export const defaultMenuStructure = [
44
44
  { icon: 'graph', label: '@pry.toolbox.graph', type: 'graph' },
45
45
  { icon: 'settings_applications', label: '@pry.toolbox.iframe', type: 'iframe' },
46
46
  { icon: 'tile', label: '@pry.toolbox.tile', type: 'tile' },
47
- { icon: 'code-box', label: '@pry.toolbox.template', type: 'template' }
47
+ { icon: 'code-box', label: '@pry.toolbox.template', type: 'template' },
48
+ { icon: 'analytic', label: '@pry.toolbox.analytic', type: 'analytic' }
48
49
  ]
49
50
  }
50
51
  ];
@@ -80,7 +81,7 @@ export class ToolboxMenuService {
80
81
  type: widget.id,
81
82
  description: widget.description,
82
83
  isCustom: true,
83
- visibility: widget.visibility,
84
+ visibility: widget.visibility
84
85
  }))
85
86
  ]
86
87
  })));
@@ -165,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
165
166
  providedIn: 'root'
166
167
  }]
167
168
  }], ctorParameters: () => [{ type: i1.WidgetFactoryService }, { type: i2.ToolboxManifestService }, { type: i3.Store }] });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS90b29sYm94L3Rvb2xib3gtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBdUI5RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBNEI7SUFDM0Q7UUFDRSxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsTUFBTSxFQUFFLEtBQUs7UUFDYixHQUFHLEVBQUU7WUFDSCxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDbkUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDN0UsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3RFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtTQUN0RTtLQUNGO0lBQ0Q7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QUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYyxFQUFFLEtBQWE7UUFDeEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVk7UUFDNUIsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RSxDQUFDOzhHQXZJVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgV2lkZ2V0RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXNoYm9hcmQvY29tcG9uZW50cy93aWRnZXRzL3dpZGdldC1pbnN0YW5jaWF0b3Ivd2lkZ2V0LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7IFByeVZpc2liaWxpdHkgfSBmcm9tICcuLi9jb21wb25lbnRzL3NoYXJlL3NoYXJlLm1vZGVsJztcbmltcG9ydCB7IFdpZGdldCB9IGZyb20gJy4uL21vZGVsL3dpZGdldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29uZmlnQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL2NvbmZpZy9jb25maWcuYWN0aW9ucyc7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi9zdG9yZS9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBERUZBVUxUX0lDT05fVVJMIH0gZnJvbSAnLi4vc3RvcmUvY29uZmlnL2ljb24tZGVmaW5pdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRvb2xib3hNYW5pZmVzdFNlcnZpY2UgfSBmcm9tICcuL3Rvb2xib3gtbWFuaWZlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBXaWRnZXRNYW5pZmVzdCB9IGZyb20gJy4uL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIFdpZGdldERlc2NyaXB0aW9uQmFzZSA9IHtcbiAgaWNvbjogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgV2lkZ2V0RGVzY3JpcHRpb25NZW51ID0gV2lkZ2V0RGVzY3JpcHRpb25CYXNlICYge1xuICBvcGVuZWQ6IGJvb2xlYW47XG4gIHN1YjogQ2F0YWxvZ0VudHJ5W107XG59O1xuXG5leHBvcnQgdHlwZSBDYXRhbG9nRW50cnkgPSBXaWRnZXREZXNjcmlwdGlvbkJhc2UgJiB7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpc0N1c3RvbT86IGJvb2xlYW47XG4gIHZpc2liaWxpdHk/OiBQcnlWaXNpYmlsaXR5O1xuICBjb3Zlcj86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdE1lbnVTdHJ1Y3R1cmU6IFdpZGdldERlc2NyaXB0aW9uTWVudVtdID0gW1xuICB7XG4gICAgaWNvbjogJ3NoYXJlX2xvY2F0aW9uJyxcbiAgICBsYWJlbDogJ0BwcnkudG9vbGJveC5zdWIubWFwJyxcbiAgICBvcGVuZWQ6IGZhbHNlLFxuICAgIHN1YjogW1xuICAgICAgeyBpY29uOiAnbWFwJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guc2ltcGxlbWFwJywgdHlwZTogJ3NpbXBsZW1hcCcgfSxcbiAgICAgIHsgaWNvbjogJ2J1YmJsZS1jaGFydC1saW5lJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guaGVhdG1hcCcsIHR5cGU6ICdoZWF0bWFwJyB9LFxuICAgICAgeyBpY29uOiAnYnVsbGVzJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guYnViYmxlbWFwJywgdHlwZTogJ2J1YmJsZW1hcCcgfSxcbiAgICAgIHsgaWNvbjogJ3BsYWNlJywgbGFiZWw6ICdAcHJ5LnRvb2xib3gubWFya2VybWFwJywgdHlwZTogJ21hcmtlcm1hcCcgfVxuICAgIF1cbiAgfSxcbiAge1xuICAgIGljb246ICdzaG93X2NoYXJ0JyxcbiAgICBsYWJlbDogJ0BwcnkudG9vbGJveC5zdWIuY2hhcnQnLFxuICAgIG9wZW5lZDogZmFsc2UsXG4gICAgc3ViOiBbXG4gICAgICB7IGljb246ICdiYXJfY2hhcnQnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5iYXJjaGFydCcsIHR5cGU6ICdiYXJjaGFydCcgfSxcbiAgICAgIHsgaWNvbjogJ2Jhcl9jaGFydCcsIGxhYmVsOiAnQHByeS50b29sYm94Lmhpc3RvZ3JhbScsIHR5cGU6ICdoaXN0b2dyYW0nIH0sXG4gICAgICB7IGljb246ICdzaG93X2NoYXJ0JywgbGFiZWw6ICdAcHJ5LnRvb2xib3gubGluZWNoYXJ0JywgdHlwZTogJ2xpbmVjaGFydCcgfSxcbiAgICAgIHsgaWNvbjogJ2F1dG9fZ3JhcGgnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5wb2ludGNoYXJ0JywgdHlwZTogJ3BvaW50Y2hhcnQnIH0sXG4gICAgICB7IGljb246ICdhcmVhX2NoYXJ0JywgbGFiZWw6ICdAcHJ5LnRvb2xib3guYXJlYWNoYXJ0JywgdHlwZTogJ2FyZWFjaGFydCcgfSxcbiAgICAgIHsgaWNvbjogJ2RvbnV0X2xhcmdlJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guYXJjY2hhcnQnLCB0eXBlOiAnYXJjY2hhcnQnIH0sXG4gICAgICB7IGljb246ICdiYXJfY2hhcnQnLCBsYWJlbDogJ0BwcnkudG9vbGJveC52ZWdhJywgdHlwZTogJ3ZlZ2EnIH1cbiAgICBdXG4gIH0sXG4gIHtcbiAgICBpY29uOiAndG9jJyxcbiAgICBsYWJlbDogJ0BwcnkudG9vbGJveC5zdWIub3RoZXInLFxuICAgIG9wZW5lZDogZmFsc2UsXG4gICAgc3ViOiBbXG4gICAgICB7IGljb246ICd0YWJsZV9jaGFydCcsIGxhYmVsOiAnQHByeS50b29sYm94LnRhYmxlJywgdHlwZTogJ3RhYmxlJyB9LFxuICAgICAgeyBpY29uOiAndG9jJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guZGV0YWlsJywgdHlwZTogJ2RldGFpbCcgfSxcbiAgICAgIHsgaWNvbjogJ2dyYXBoJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guZ3JhcGgnLCB0eXBlOiAnZ3JhcGgnIH0sXG4gICAgICB7IGljb246ICdzZXR0aW5nc19hcHBsaWNhdGlvbnMnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5pZnJhbWUnLCB0eXBlOiAnaWZyYW1lJyB9LFxuICAgICAgeyBpY29uOiAndGlsZScsIGxhYmVsOiAnQHByeS50b29sYm94LnRpbGUnLCB0eXBlOiAndGlsZScgfSxcbiAgICAgIHsgaWNvbjogJ2NvZGUtYm94JywgbGFiZWw6ICdAcHJ5LnRvb2xib3gudGVtcGxhdGUnLCB0eXBlOiAndGVtcGxhdGUnIH1cbiAgICBdXG4gIH1cbl07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xib3hNZW51U2VydmljZSB7XG4gIF9tZW51U3RydWN0dXJlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0RGVzY3JpcHRpb25NZW51W10+KGRlZmF1bHRNZW51U3RydWN0dXJlKTtcbiAgbWVudVN0cnVjdHVyZSQ6IE9ic2VydmFibGU8V2lkZ2V0RGVzY3JpcHRpb25NZW51W10+O1xuICBtZW51TGlzdCQ6IE9ic2VydmFibGU8Q2F0YWxvZ0VudHJ5W10+O1xuICB0eXBlcyQ6IE9ic2VydmFibGU8eyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH1bXT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB3aWRnZXRGYWN0b3J5U2VydmljZTogV2lkZ2V0RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b29sYm94TWFuaWZlc3RTZXJ2aWNlOiBUb29sYm94TWFuaWZlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlXG4gICkge1xuICAgIHRoaXMubWVudVN0cnVjdHVyZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX21lbnVTdHJ1Y3R1cmUkLFxuICAgICAgdGhpcy53aWRnZXRGYWN0b3J5U2VydmljZS5yZWZlcmVuY2UkLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmNhdGFsb2cpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW21lbnVTdHJ1Y3R1cmUsIHJlZmVyZW5jZSwgY2F0YWxvZ10pID0+XG4gICAgICAgIC8vIEdlbmVyaWMgd2lkZ2V0c1xuICAgICAgICBtZW51U3RydWN0dXJlXG4gICAgICAgICAgLmZpbHRlcigobWVudSkgPT4gbWVudS5zdWIuZmluZCgoc3ViKSA9PiByZWZlcmVuY2VbdGhpcy50b29sYm94TWFuaWZlc3RTZXJ2aWNlLmdldChzdWIudHlwZSkudHlwZV0pKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAobWVudSkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAuLi5tZW51LFxuICAgICAgICAgICAgICAgIHN1YjogbWVudS5zdWJcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHN1YikgPT4gcmVmZXJlbmNlW3RoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5nZXQoc3ViLnR5cGUpLnR5cGVdKVxuICAgICAgICAgICAgICAgICAgLm1hcCgoZW50cnkpID0+ICh7IC4uLmVudHJ5LCBpY29uOiAnYXNzZXRzL3N2Z3MvJyArIGVudHJ5Lmljb24gKyAnLnN2ZycgfSkpIGFzIENhdGFsb2dFbnRyeVtdXG4gICAgICAgICAgICAgIH0gYXMgV2lkZ2V0RGVzY3JpcHRpb25NZW51KVxuICAgICAgICAgIClcbiAgICAgICAgICAvLyBVc2VyIGRlZmluZWQgd2lkZ2V0IGNvbmZpZ3VyYXRpb25zXG4gICAgICAgICAgLmNvbmNhdCh7XG4gICAgICAgICAgICBpY29uOiAnbGlicmFyeV9hZGQnLFxuICAgICAgICAgICAgbGFiZWw6ICdAcHJ5LnRvb2xib3guY2F0YWxvZy50aXRsZScsXG4gICAgICAgICAgICBvcGVuZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc3ViOiBbXG4gICAgICAgICAgICAgIC4uLmNhdGFsb2cubWFwKCh3aWRnZXQpID0+ICh7XG4gICAgICAgICAgICAgICAgaWNvbjogd2lkZ2V0LmltYWdlLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB3aWRnZXQubmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aWRnZXQuaWQsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHdpZGdldC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBpc0N1c3RvbTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB3aWRnZXQudmlzaWJpbGl0eSxcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5tZW51TGlzdCQgPSB0aGlzLm1lbnVTdHJ1Y3R1cmUkLnBpcGUoXG4gICAgICBtYXAoKG1lbnVEZXNjcmlwdGlvbikgPT5cbiAgICAgICAgbWVudURlc2NyaXB0aW9uXG4gICAgICAgICAgLm1hcCgobWVudSkgPT5cbiAgICAgICAgICAgIG1lbnUuc3ViLm1hcCgoc3ViTWVudSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uc3ViTWVudSxcbiAgICAgICAgICAgICAgY2F0ZWdvcnk6IG1lbnUubGFiZWxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIClcbiAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnR5cGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy50b29sYm94TWFuaWZlc3RTZXJ2aWNlLmluaXRpYWxNYW5pZmVzdHMkLFxuICAgICAgdGhpcy5tZW51U3RydWN0dXJlJCxcbiAgICAgIHRoaXMud2lkZ2V0RmFjdG9yeVNlcnZpY2UucmVmZXJlbmNlJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFttYW5pZmVzdHMsIG1lbnVTdHJ1Y3R1cmUsIHJlZmVyZW5jZV0pID0+IHtcbiAgICAgICAgY29uc3QgdHlwZXMgPSBbXG4gICAgICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMobWFuaWZlc3RzKVxuICAgICAgICAgICAgICAuZmlsdGVyKChtYW5pZmVzdCkgPT4gcmVmZXJlbmNlW21hbmlmZXN0LnR5cGVdKVxuICAgICAgICAgICAgICAubWFwKChtYW5pZmVzdCkgPT4gbWFuaWZlc3QudHlwZSlcbiAgICAgICAgICApXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiB0eXBlcy5tYXAoKHR5cGUpID0+IHtcbiAgICAgICAgICBjb25zdCBtYXRjaGluZ01lbnUgPSBtZW51U3RydWN0dXJlLmZpbmQoXG4gICAgICAgICAgICAobWVudSkgPT4gbWVudS5sYWJlbC5yZXBsYWNlKCdAcHJ5LnRvb2xib3guc3ViLicsICcnKS5pbmRleE9mKHR5cGUpID49IDBcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmICghIW1hdGNoaW5nTWVudSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgbGFiZWw6IG1hdGNoaW5nTWVudS5sYWJlbCxcbiAgICAgICAgICAgICAgaWNvbjogbWF0Y2hpbmdNZW51Lmljb24sXG4gICAgICAgICAgICAgIG1hbmlmZXN0OiBPYmplY3QudmFsdWVzKG1hbmlmZXN0cykuZmluZCgobWFuaWZlc3QpID0+IG1hbmlmZXN0LnR5cGUgPT09IHR5cGUpIGFzIFdpZGdldE1hbmlmZXN0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBtYXRjaGluZ1N1Yk1lbnUgPSBtZW51U3RydWN0dXJlXG4gICAgICAgICAgICAubWFwKChtZW51KSA9PiBtZW51LnN1Yi5maW5kKChzdWIpID0+IHN1Yi5sYWJlbC5yZXBsYWNlKCdAcHJ5LnRvb2xib3guJywgJycpLmluZGV4T2YodHlwZSkgPj0gMCkpXG4gICAgICAgICAgICAuZmlsdGVyKChtYXRjaGluZykgPT4gISFtYXRjaGluZylbMF07XG4gICAgICAgICAgaWYgKCEhbWF0Y2hpbmdTdWJNZW51KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICBsYWJlbDogbWF0Y2hpbmdTdWJNZW51LmxhYmVsLFxuICAgICAgICAgICAgICBpY29uOiBtYXRjaGluZ1N1Yk1lbnUuaWNvbi5yZXBsYWNlKCdhc3NldHMvc3Zncy8nLCAnJykucmVwbGFjZSgvLnN2ZyQvLCAnJyksXG4gICAgICAgICAgICAgIG1hbmlmZXN0OiBPYmplY3QudmFsdWVzKG1hbmlmZXN0cykuZmluZCgobWFuaWZlc3QpID0+IG1hbmlmZXN0LnR5cGUgPT09IHR5cGUpIGFzIFdpZGdldE1hbmlmZXN0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4geyB0eXBlLCBsYWJlbDogdHlwZSwgaWNvbjogREVGQVVMVF9JQ09OX1VSTCwgbWFuaWZlc3Q6IHt9IGFzIFdpZGdldE1hbmlmZXN0IH07XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYWRkTWVudShpY29uOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX21lbnVTdHJ1Y3R1cmUkLmdldFZhbHVlKCkuZmluZCgobWVudSkgPT4gbWVudS5sYWJlbCA9PT0gbGFiZWwpKSB7XG4gICAgICB0aGlzLl9tZW51U3RydWN0dXJlJC5uZXh0KHRoaXMuX21lbnVTdHJ1Y3R1cmUkLmdldFZhbHVlKCkuY29uY2F0KHsgaWNvbiwgbGFiZWwsIG9wZW5lZDogZmFsc2UsIHN1YjogW10gfSkpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFdpZGdldChtZW51TGFiZWw6IHN0cmluZywgaWNvbjogc3RyaW5nLCBsYWJlbDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBtZW51ID0gdGhpcy5fbWVudVN0cnVjdHVyZSQuZ2V0VmFsdWUoKS5maW5kKChtZW51KSA9PiBtZW51LmxhYmVsID09PSBtZW51TGFiZWwpO1xuICAgIGlmICghbWVudSkge1xuICAgICAgY29uc29sZS5lcnJvcihgTWVudSB3aXRoIGxhYmVsICR7bWVudUxhYmVsfSBoYXMgbm90IGJlZW4gZm91bmRgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWVudS5zdWIucHVzaCh7IGljb24sIGxhYmVsLCB0eXBlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldE1lbnVTdHJ1Y3R1cmUoc3RydWN0dXJlOiBXaWRnZXREZXNjcmlwdGlvbk1lbnVbXSkge1xuICAgIHRoaXMuX21lbnVTdHJ1Y3R1cmUkLm5leHQoc3RydWN0dXJlKTtcbiAgfVxuXG4gIGFkZFRvQ2F0YWxvZyh3aWRnZXQ6IFdpZGdldCwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmlzVmFsaWRGb3JDYXRhbG9nKHdpZGdldC5uYW1lKSkge1xuICAgICAgY29uc3QgbWFuaWZlc3QgPSBKU09OLnBhcnNlKHdpZGdldC5jb250ZW50KTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVXaWRnZXRNYW5pZmVzdCh7IG1hbmlmZXN0LCBpbmRleCB9KSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuc2F2ZVdpZGdldCh7IHdpZGdldCB9KSk7XG4gICAgICB0aGlzLnRvb2xib3hNYW5pZmVzdFNlcnZpY2Uuc2V0KHdpZGdldC5pZCwgbWFuaWZlc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBUcnlpbmcgdG8gYWRkIGV4aXN0aW5nIHR5cGUgXCIke25hbWV9XCJgKTtcbiAgICB9XG4gIH1cblxuICBpc1ZhbGlkRm9yQ2F0YWxvZyhuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gISFuYW1lICYmIG5hbWUubGVuZ3RoID4gMyAmJiAhdGhpcy50b29sYm94TWFuaWZlc3RTZXJ2aWNlLmdldChuYW1lKTtcbiAgfVxufVxuIl19
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS90b29sYm94L3Rvb2xib3gtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBdUI5RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBNEI7SUFDM0Q7UUFDRSxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsTUFBTSxFQUFFLEtBQUs7UUFDYixHQUFHLEVBQUU7WUFDSCxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDbkUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDN0UsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3RFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtTQUN0RTtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsWUFBWTtRQUNsQixLQUFLLEVBQUUsd0JBQXdCO1FBQy9CLE1BQU0sRUFBRSxLQUFLO1FBQ2IsR0FBRyxFQUFFO1lBQ0gsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3ZFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUN6RSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDMUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQzVFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUMxRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDekUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1NBQ2hFO0tBQ0Y7SUFDRDtRQUNFLElBQUksRUFBRSxLQUFLO1FBQ1gsS0FBSyxFQUFFLHdCQUF3QjtRQUMvQixNQUFNLEVBQUUsS0FBSztRQUNiLEdBQUcsRUFBRTtZQUNILEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUNuRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDN0QsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQzdELEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQy9FLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUMxRCxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDdEUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1NBQ3ZFO0tBQ0Y7Q0FDRixDQUFDO0FBS0YsTUFBTSxPQUFPLGtCQUFrQjtJQU03QixZQUNVLG9CQUEwQyxFQUMxQyxzQkFBOEMsRUFDOUMsS0FBWTtRQUZaLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBUnRCLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQTBCLG9CQUFvQixDQUFDLENBQUM7UUFVbkYsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7WUFDbEMsSUFBSSxDQUFDLGVBQWU7WUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVU7WUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQztTQUMzQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1FBQzFDLGtCQUFrQjtRQUNsQixhQUFhO2FBQ1YsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDbkcsR0FBRyxDQUNGLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxDQUFDO1lBQ0MsR0FBRyxJQUFJO1lBQ1AsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2lCQUNWLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMxRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBbUI7U0FDaEcsQ0FBMEIsQ0FDOUI7WUFDRCxxQ0FBcUM7YUFDcEMsTUFBTSxDQUFDO1lBQ04sSUFBSSxFQUFFLGFBQWE7WUFDbkIsS0FBSyxFQUFFLDRCQUE0QjtZQUNuQyxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRTtnQkFDSCxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFCLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSztvQkFDbEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNsQixJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ2YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO29CQUMvQixRQUFRLEVBQUUsSUFBSTtvQkFDZCxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7aUJBQzlCLENBQUMsQ0FBQzthQUNKO1NBQ0YsQ0FBQyxDQUNMLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQ3RCLGVBQWU7YUFDWixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEdBQUcsT0FBTztZQUNWLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSztTQUNyQixDQUFDLENBQUMsQ0FDSjthQUNBLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDdEMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7WUFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQjtZQUM3QyxJQUFJLENBQUMsY0FBYztZQUNuQixJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVTtTQUNyQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFO1lBQzVDLE1BQU0sS0FBSyxHQUFHO2dCQUNaLEdBQUcsSUFBSSxHQUFHLENBQ1IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7cUJBQ3JCLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDOUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ3BDO2FBQ0YsQ0FBQztZQUNGLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN4QixNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUNyQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDekUsQ0FBQztnQkFDRixJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDbkIsT0FBTzt3QkFDTCxJQUFJO3dCQUNKLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSzt3QkFDekIsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO3dCQUN2QixRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFtQjtxQkFDaEcsQ0FBQztnQkFDSixDQUFDO2dCQUNELE1BQU0sZUFBZSxHQUFHLGFBQWE7cUJBQ2xDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ2hHLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDdEIsT0FBTzt3QkFDTCxJQUFJO3dCQUNKLEtBQUssRUFBRSxlQUFlLENBQUMsS0FBSzt3QkFDNUIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQzt3QkFDM0UsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBbUI7cUJBQ2hHLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxFQUFvQixFQUFFLENBQUM7WUFDdkYsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdHLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBRSxJQUFZO1FBQ3BFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLFNBQVMscUJBQXFCLENBQUMsQ0FBQztRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBa0M7UUFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjLEVBQUUsS0FBYTtRQUN4QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBWTtRQUM1QixPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdFLENBQUM7OEdBdklVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXaWRnZXRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uLy4uL2Rhc2hib2FyZC9jb21wb25lbnRzL3dpZGdldHMvd2lkZ2V0LWluc3RhbmNpYXRvci93aWRnZXQtZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICcuLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLmFjdGlvbnMnO1xuaW1wb3J0IHsgUHJ5VmlzaWJpbGl0eSB9IGZyb20gJy4uL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgV2lkZ2V0IH0gZnJvbSAnLi4vbW9kZWwvd2lkZ2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vc3RvcmUvY29uZmlnL2NvbmZpZy5hY3Rpb25zJztcbmltcG9ydCB7IENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gJy4uL3N0b3JlL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcbmltcG9ydCB7IERFRkFVTFRfSUNPTl9VUkwgfSBmcm9tICcuLi9zdG9yZS9jb25maWcvaWNvbi1kZWZpbml0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVG9vbGJveE1hbmlmZXN0U2VydmljZSB9IGZyb20gJy4vdG9vbGJveC1tYW5pZmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldE1hbmlmZXN0IH0gZnJvbSAnLi4vbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcblxuZXhwb3J0IHR5cGUgV2lkZ2V0RGVzY3JpcHRpb25CYXNlID0ge1xuICBpY29uOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBXaWRnZXREZXNjcmlwdGlvbk1lbnUgPSBXaWRnZXREZXNjcmlwdGlvbkJhc2UgJiB7XG4gIG9wZW5lZDogYm9vbGVhbjtcbiAgc3ViOiBDYXRhbG9nRW50cnlbXTtcbn07XG5cbmV4cG9ydCB0eXBlIENhdGFsb2dFbnRyeSA9IFdpZGdldERlc2NyaXB0aW9uQmFzZSAmIHtcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlzQ3VzdG9tPzogYm9vbGVhbjtcbiAgdmlzaWJpbGl0eT86IFByeVZpc2liaWxpdHk7XG4gIGNvdmVyPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TWVudVN0cnVjdHVyZTogV2lkZ2V0RGVzY3JpcHRpb25NZW51W10gPSBbXG4gIHtcbiAgICBpY29uOiAnc2hhcmVfbG9jYXRpb24nLFxuICAgIGxhYmVsOiAnQHByeS50b29sYm94LnN1Yi5tYXAnLFxuICAgIG9wZW5lZDogZmFsc2UsXG4gICAgc3ViOiBbXG4gICAgICB7IGljb246ICdtYXAnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5zaW1wbGVtYXAnLCB0eXBlOiAnc2ltcGxlbWFwJyB9LFxuICAgICAgeyBpY29uOiAnYnViYmxlLWNoYXJ0LWxpbmUnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5oZWF0bWFwJywgdHlwZTogJ2hlYXRtYXAnIH0sXG4gICAgICB7IGljb246ICdidWxsZXMnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5idWJibGVtYXAnLCB0eXBlOiAnYnViYmxlbWFwJyB9LFxuICAgICAgeyBpY29uOiAncGxhY2UnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5tYXJrZXJtYXAnLCB0eXBlOiAnbWFya2VybWFwJyB9XG4gICAgXVxuICB9LFxuICB7XG4gICAgaWNvbjogJ3Nob3dfY2hhcnQnLFxuICAgIGxhYmVsOiAnQHByeS50b29sYm94LnN1Yi5jaGFydCcsXG4gICAgb3BlbmVkOiBmYWxzZSxcbiAgICBzdWI6IFtcbiAgICAgIHsgaWNvbjogJ2Jhcl9jaGFydCcsIGxhYmVsOiAnQHByeS50b29sYm94LmJhcmNoYXJ0JywgdHlwZTogJ2JhcmNoYXJ0JyB9LFxuICAgICAgeyBpY29uOiAnYmFyX2NoYXJ0JywgbGFiZWw6ICdAcHJ5LnRvb2xib3guaGlzdG9ncmFtJywgdHlwZTogJ2hpc3RvZ3JhbScgfSxcbiAgICAgIHsgaWNvbjogJ3Nob3dfY2hhcnQnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5saW5lY2hhcnQnLCB0eXBlOiAnbGluZWNoYXJ0JyB9LFxuICAgICAgeyBpY29uOiAnYXV0b19ncmFwaCcsIGxhYmVsOiAnQHByeS50b29sYm94LnBvaW50Y2hhcnQnLCB0eXBlOiAncG9pbnRjaGFydCcgfSxcbiAgICAgIHsgaWNvbjogJ2FyZWFfY2hhcnQnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5hcmVhY2hhcnQnLCB0eXBlOiAnYXJlYWNoYXJ0JyB9LFxuICAgICAgeyBpY29uOiAnZG9udXRfbGFyZ2UnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5hcmNjaGFydCcsIHR5cGU6ICdhcmNjaGFydCcgfSxcbiAgICAgIHsgaWNvbjogJ2Jhcl9jaGFydCcsIGxhYmVsOiAnQHByeS50b29sYm94LnZlZ2EnLCB0eXBlOiAndmVnYScgfVxuICAgIF1cbiAgfSxcbiAge1xuICAgIGljb246ICd0b2MnLFxuICAgIGxhYmVsOiAnQHByeS50b29sYm94LnN1Yi5vdGhlcicsXG4gICAgb3BlbmVkOiBmYWxzZSxcbiAgICBzdWI6IFtcbiAgICAgIHsgaWNvbjogJ3RhYmxlX2NoYXJ0JywgbGFiZWw6ICdAcHJ5LnRvb2xib3gudGFibGUnLCB0eXBlOiAndGFibGUnIH0sXG4gICAgICB7IGljb246ICd0b2MnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5kZXRhaWwnLCB0eXBlOiAnZGV0YWlsJyB9LFxuICAgICAgeyBpY29uOiAnZ3JhcGgnLCBsYWJlbDogJ0BwcnkudG9vbGJveC5ncmFwaCcsIHR5cGU6ICdncmFwaCcgfSxcbiAgICAgIHsgaWNvbjogJ3NldHRpbmdzX2FwcGxpY2F0aW9ucycsIGxhYmVsOiAnQHByeS50b29sYm94LmlmcmFtZScsIHR5cGU6ICdpZnJhbWUnIH0sXG4gICAgICB7IGljb246ICd0aWxlJywgbGFiZWw6ICdAcHJ5LnRvb2xib3gudGlsZScsIHR5cGU6ICd0aWxlJyB9LFxuICAgICAgeyBpY29uOiAnY29kZS1ib3gnLCBsYWJlbDogJ0BwcnkudG9vbGJveC50ZW1wbGF0ZScsIHR5cGU6ICd0ZW1wbGF0ZScgfSxcbiAgICAgIHsgaWNvbjogJ2FuYWx5dGljJywgbGFiZWw6ICdAcHJ5LnRvb2xib3guYW5hbHl0aWMnLCB0eXBlOiAnYW5hbHl0aWMnIH1cbiAgICBdXG4gIH1cbl07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xib3hNZW51U2VydmljZSB7XG4gIF9tZW51U3RydWN0dXJlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0RGVzY3JpcHRpb25NZW51W10+KGRlZmF1bHRNZW51U3RydWN0dXJlKTtcbiAgbWVudVN0cnVjdHVyZSQ6IE9ic2VydmFibGU8V2lkZ2V0RGVzY3JpcHRpb25NZW51W10+O1xuICBtZW51TGlzdCQ6IE9ic2VydmFibGU8Q2F0YWxvZ0VudHJ5W10+O1xuICB0eXBlcyQ6IE9ic2VydmFibGU8eyBpY29uOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH1bXT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB3aWRnZXRGYWN0b3J5U2VydmljZTogV2lkZ2V0RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b29sYm94TWFuaWZlc3RTZXJ2aWNlOiBUb29sYm94TWFuaWZlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlXG4gICkge1xuICAgIHRoaXMubWVudVN0cnVjdHVyZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX21lbnVTdHJ1Y3R1cmUkLFxuICAgICAgdGhpcy53aWRnZXRGYWN0b3J5U2VydmljZS5yZWZlcmVuY2UkLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmNhdGFsb2cpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW21lbnVTdHJ1Y3R1cmUsIHJlZmVyZW5jZSwgY2F0YWxvZ10pID0+XG4gICAgICAgIC8vIEdlbmVyaWMgd2lkZ2V0c1xuICAgICAgICBtZW51U3RydWN0dXJlXG4gICAgICAgICAgLmZpbHRlcigobWVudSkgPT4gbWVudS5zdWIuZmluZCgoc3ViKSA9PiByZWZlcmVuY2VbdGhpcy50b29sYm94TWFuaWZlc3RTZXJ2aWNlLmdldChzdWIudHlwZSkudHlwZV0pKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAobWVudSkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAuLi5tZW51LFxuICAgICAgICAgICAgICAgIHN1YjogbWVudS5zdWJcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHN1YikgPT4gcmVmZXJlbmNlW3RoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5nZXQoc3ViLnR5cGUpLnR5cGVdKVxuICAgICAgICAgICAgICAgICAgLm1hcCgoZW50cnkpID0+ICh7IC4uLmVudHJ5LCBpY29uOiAnYXNzZXRzL3N2Z3MvJyArIGVudHJ5Lmljb24gKyAnLnN2ZycgfSkpIGFzIENhdGFsb2dFbnRyeVtdXG4gICAgICAgICAgICAgIH0pIGFzIFdpZGdldERlc2NyaXB0aW9uTWVudVxuICAgICAgICAgIClcbiAgICAgICAgICAvLyBVc2VyIGRlZmluZWQgd2lkZ2V0IGNvbmZpZ3VyYXRpb25zXG4gICAgICAgICAgLmNvbmNhdCh7XG4gICAgICAgICAgICBpY29uOiAnbGlicmFyeV9hZGQnLFxuICAgICAgICAgICAgbGFiZWw6ICdAcHJ5LnRvb2xib3guY2F0YWxvZy50aXRsZScsXG4gICAgICAgICAgICBvcGVuZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc3ViOiBbXG4gICAgICAgICAgICAgIC4uLmNhdGFsb2cubWFwKCh3aWRnZXQpID0+ICh7XG4gICAgICAgICAgICAgICAgaWNvbjogd2lkZ2V0LmltYWdlLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB3aWRnZXQubmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aWRnZXQuaWQsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHdpZGdldC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBpc0N1c3RvbTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB3aWRnZXQudmlzaWJpbGl0eVxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLm1lbnVMaXN0JCA9IHRoaXMubWVudVN0cnVjdHVyZSQucGlwZShcbiAgICAgIG1hcCgobWVudURlc2NyaXB0aW9uKSA9PlxuICAgICAgICBtZW51RGVzY3JpcHRpb25cbiAgICAgICAgICAubWFwKChtZW51KSA9PlxuICAgICAgICAgICAgbWVudS5zdWIubWFwKChzdWJNZW51KSA9PiAoe1xuICAgICAgICAgICAgICAuLi5zdWJNZW51LFxuICAgICAgICAgICAgICBjYXRlZ29yeTogbWVudS5sYWJlbFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMudHlwZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnRvb2xib3hNYW5pZmVzdFNlcnZpY2UuaW5pdGlhbE1hbmlmZXN0cyQsXG4gICAgICB0aGlzLm1lbnVTdHJ1Y3R1cmUkLFxuICAgICAgdGhpcy53aWRnZXRGYWN0b3J5U2VydmljZS5yZWZlcmVuY2UkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW21hbmlmZXN0cywgbWVudVN0cnVjdHVyZSwgcmVmZXJlbmNlXSkgPT4ge1xuICAgICAgICBjb25zdCB0eXBlcyA9IFtcbiAgICAgICAgICAuLi5uZXcgU2V0KFxuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhtYW5pZmVzdHMpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKG1hbmlmZXN0KSA9PiByZWZlcmVuY2VbbWFuaWZlc3QudHlwZV0pXG4gICAgICAgICAgICAgIC5tYXAoKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC50eXBlKVxuICAgICAgICAgIClcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIHR5cGVzLm1hcCgodHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1hdGNoaW5nTWVudSA9IG1lbnVTdHJ1Y3R1cmUuZmluZChcbiAgICAgICAgICAgIChtZW51KSA9PiBtZW51LmxhYmVsLnJlcGxhY2UoJ0BwcnkudG9vbGJveC5zdWIuJywgJycpLmluZGV4T2YodHlwZSkgPj0gMFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKCEhbWF0Y2hpbmdNZW51KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICBsYWJlbDogbWF0Y2hpbmdNZW51LmxhYmVsLFxuICAgICAgICAgICAgICBpY29uOiBtYXRjaGluZ01lbnUuaWNvbixcbiAgICAgICAgICAgICAgbWFuaWZlc3Q6IE9iamVjdC52YWx1ZXMobWFuaWZlc3RzKS5maW5kKChtYW5pZmVzdCkgPT4gbWFuaWZlc3QudHlwZSA9PT0gdHlwZSkgYXMgV2lkZ2V0TWFuaWZlc3RcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG1hdGNoaW5nU3ViTWVudSA9IG1lbnVTdHJ1Y3R1cmVcbiAgICAgICAgICAgIC5tYXAoKG1lbnUpID0+IG1lbnUuc3ViLmZpbmQoKHN1YikgPT4gc3ViLmxhYmVsLnJlcGxhY2UoJ0BwcnkudG9vbGJveC4nLCAnJykuaW5kZXhPZih0eXBlKSA+PSAwKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKG1hdGNoaW5nKSA9PiAhIW1hdGNoaW5nKVswXTtcbiAgICAgICAgICBpZiAoISFtYXRjaGluZ1N1Yk1lbnUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgIGxhYmVsOiBtYXRjaGluZ1N1Yk1lbnUubGFiZWwsXG4gICAgICAgICAgICAgIGljb246IG1hdGNoaW5nU3ViTWVudS5pY29uLnJlcGxhY2UoJ2Fzc2V0cy9zdmdzLycsICcnKS5yZXBsYWNlKC8uc3ZnJC8sICcnKSxcbiAgICAgICAgICAgICAgbWFuaWZlc3Q6IE9iamVjdC52YWx1ZXMobWFuaWZlc3RzKS5maW5kKChtYW5pZmVzdCkgPT4gbWFuaWZlc3QudHlwZSA9PT0gdHlwZSkgYXMgV2lkZ2V0TWFuaWZlc3RcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7IHR5cGUsIGxhYmVsOiB0eXBlLCBpY29uOiBERUZBVUxUX0lDT05fVVJMLCBtYW5pZmVzdDoge30gYXMgV2lkZ2V0TWFuaWZlc3QgfTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhZGRNZW51KGljb246IHN0cmluZywgbGFiZWw6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5fbWVudVN0cnVjdHVyZSQuZ2V0VmFsdWUoKS5maW5kKChtZW51KSA9PiBtZW51LmxhYmVsID09PSBsYWJlbCkpIHtcbiAgICAgIHRoaXMuX21lbnVTdHJ1Y3R1cmUkLm5leHQodGhpcy5fbWVudVN0cnVjdHVyZSQuZ2V0VmFsdWUoKS5jb25jYXQoeyBpY29uLCBsYWJlbCwgb3BlbmVkOiBmYWxzZSwgc3ViOiBbXSB9KSk7XG4gICAgfVxuICB9XG5cbiAgYWRkV2lkZ2V0KG1lbnVMYWJlbDogc3RyaW5nLCBpY29uOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAgIGNvbnN0IG1lbnUgPSB0aGlzLl9tZW51U3RydWN0dXJlJC5nZXRWYWx1ZSgpLmZpbmQoKG1lbnUpID0+IG1lbnUubGFiZWwgPT09IG1lbnVMYWJlbCk7XG4gICAgaWYgKCFtZW51KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNZW51IHdpdGggbGFiZWwgJHttZW51TGFiZWx9IGhhcyBub3QgYmVlbiBmb3VuZGApO1xuICAgIH0gZWxzZSB7XG4gICAgICBtZW51LnN1Yi5wdXNoKHsgaWNvbiwgbGFiZWwsIHR5cGUgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0TWVudVN0cnVjdHVyZShzdHJ1Y3R1cmU6IFdpZGdldERlc2NyaXB0aW9uTWVudVtdKSB7XG4gICAgdGhpcy5fbWVudVN0cnVjdHVyZSQubmV4dChzdHJ1Y3R1cmUpO1xuICB9XG5cbiAgYWRkVG9DYXRhbG9nKHdpZGdldDogV2lkZ2V0LCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuaXNWYWxpZEZvckNhdGFsb2cod2lkZ2V0Lm5hbWUpKSB7XG4gICAgICBjb25zdCBtYW5pZmVzdCA9IEpTT04ucGFyc2Uod2lkZ2V0LmNvbnRlbnQpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVdpZGdldE1hbmlmZXN0KHsgbWFuaWZlc3QsIGluZGV4IH0pKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5zYXZlV2lkZ2V0KHsgd2lkZ2V0IH0pKTtcbiAgICAgIHRoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5zZXQod2lkZ2V0LmlkLCBtYW5pZmVzdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFRyeWluZyB0byBhZGQgZXhpc3RpbmcgdHlwZSBcIiR7bmFtZX1cImApO1xuICAgIH1cbiAgfVxuXG4gIGlzVmFsaWRGb3JDYXRhbG9nKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiAhIW5hbWUgJiYgbmFtZS5sZW5ndGggPiAzICYmICF0aGlzLnRvb2xib3hNYW5pZmVzdFNlcnZpY2UuZ2V0KG5hbWUpO1xuICB9XG59XG4iXX0=