@provoly/dashboard 0.14.9 → 0.14.11

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 (100) hide show
  1. package/admin/components/admin-layout/admin-layout.component.d.ts +5 -3
  2. package/assets/svgs/map.svg +1 -1
  3. package/components/metadata-editor/metadata-editor.component.d.ts +1 -3
  4. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +1 -1
  5. package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +10 -7
  6. package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +1 -1
  7. package/esm2022/admin/i18n/en.translations.mjs +2 -2
  8. package/esm2022/admin/i18n/fr.translations.mjs +5 -5
  9. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +8 -29
  10. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +2 -2
  11. package/esm2022/lib/core/components/about/about.component.mjs +29 -0
  12. package/esm2022/lib/core/components/about/pry-about.module.mjs +21 -0
  13. package/esm2022/lib/core/components/icon/icon.component.mjs +5 -1
  14. package/esm2022/lib/core/i18n/en.translations.mjs +13 -2
  15. package/esm2022/lib/core/i18n/fr.translations.mjs +13 -2
  16. package/esm2022/lib/core/i18n/i18n.pipe.mjs +4 -3
  17. package/esm2022/lib/core/i18n/i18n.service.mjs +5 -5
  18. package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
  19. package/esm2022/lib/core/public-api.mjs +3 -1
  20. package/esm2022/lib/core/store/class/class.effects.mjs +1 -1
  21. package/esm2022/lib/core/store/config/config.actions.mjs +5 -2
  22. package/esm2022/lib/core/store/config/config.effects.mjs +4 -1
  23. package/esm2022/lib/core/store/config/config.reducer.mjs +10 -3
  24. package/esm2022/lib/core/store/config/config.selectors.mjs +6 -4
  25. package/esm2022/lib/core/store/config/config.service.mjs +36 -2
  26. package/esm2022/lib/core/store/config/versions.interface.mjs +2 -0
  27. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +15 -1
  28. package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +3 -17
  29. package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +3 -1
  30. package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +3 -2
  31. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -2
  32. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +12 -4
  33. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +7 -1
  34. package/esm2022/lib/dashboard/store/manifest.service.mjs +2 -3
  35. package/esm2022/notification/store/notification.effects.mjs +3 -3
  36. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +23 -18
  37. package/esm2022/presentation/components/presentation.component.mjs +18 -18
  38. package/esm2022/presentation/style/css.component.mjs +2 -2
  39. package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +3 -3
  40. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +6 -3
  41. package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.mjs +6 -3
  42. package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors.component.mjs +2 -2
  43. package/esm2022/supervision/components/supervision-layout/supervision-layout.component.mjs +2 -2
  44. package/esm2022/supervision/components/supervision.component.mjs +2 -2
  45. package/esm2022/supervision/store/supervision.actions.mjs +1 -1
  46. package/esm2022/supervision/store/supervision.reducer.mjs +3 -2
  47. package/esm2022/supervision/store/supervision.selectors.mjs +2 -2
  48. package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +18 -11
  49. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +20 -6
  50. package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +1 -2
  51. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +2 -2
  52. package/fesm2022/provoly-dashboard-admin.mjs +15 -12
  53. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  54. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +7 -28
  55. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  56. package/fesm2022/provoly-dashboard-dataset.mjs +1 -1
  57. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  58. package/fesm2022/provoly-dashboard-notification.mjs +2 -2
  59. package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
  60. package/fesm2022/provoly-dashboard-presentation.mjs +41 -37
  61. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  62. package/fesm2022/provoly-dashboard-restitution.mjs +7 -4
  63. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  64. package/fesm2022/provoly-dashboard-supervision.mjs +11 -8
  65. package/fesm2022/provoly-dashboard-supervision.mjs.map +1 -1
  66. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +17 -10
  67. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
  68. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +19 -6
  69. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  70. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +1 -1
  71. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  72. package/fesm2022/provoly-dashboard.mjs +184 -56
  73. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  74. package/lib/core/components/about/about.component.d.ts +12 -0
  75. package/lib/core/components/about/pry-about.module.d.ts +10 -0
  76. package/lib/core/i18n/en.translations.d.ts +11 -0
  77. package/lib/core/i18n/fr.translations.d.ts +11 -0
  78. package/lib/core/i18n/i18n.service.d.ts +2 -2
  79. package/lib/core/model/widget-map-manifest.interface.d.ts +2 -0
  80. package/lib/core/public-api.d.ts +2 -0
  81. package/lib/core/store/config/config.actions.d.ts +12 -0
  82. package/lib/core/store/config/config.effects.d.ts +6 -0
  83. package/lib/core/store/config/config.reducer.d.ts +2 -0
  84. package/lib/core/store/config/config.selectors.d.ts +1 -0
  85. package/lib/core/store/config/config.service.d.ts +2 -0
  86. package/lib/core/store/config/versions.interface.d.ts +10 -0
  87. package/lib/dashboard/store/dashboard.actions.d.ts +4 -4
  88. package/lib/dashboard/store/manifest.service.d.ts +1 -1
  89. package/package.json +25 -25
  90. package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +4 -3
  91. package/presentation/components/presentation.component.d.ts +2 -2
  92. package/presentation/style/_o-pry-new-presentation.scss +7 -0
  93. package/restitution/components/restitution-list-item/restitution-list-item.component.d.ts +3 -2
  94. package/styles/layout/_o-base-layout.scss +8 -1
  95. package/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.d.ts +1 -1
  96. package/supervision/store/supervision.actions.d.ts +2 -2
  97. package/supervision/store/supervision.reducer.d.ts +1 -1
  98. package/supervision/store/supervision.selectors.d.ts +1 -1
  99. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +7 -0
  100. package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +0 -1
@@ -292,6 +292,12 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
292
292
  manifests: {
293
293
  ...state.manifests,
294
294
  list: action.manifests
295
+ },
296
+ presentation: {
297
+ ...state.presentation,
298
+ current: state.presentation.current
299
+ ? action.manifests.find((manifest) => manifest.id === state.presentation.current?.id)
300
+ : undefined
295
301
  }
296
302
  })), on(DashboardActions.updateStaticManifest, (state, action) => ({
297
303
  ...state,
@@ -631,4 +637,4 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
631
637
  export function dashboardReducer(state, action) {
632
638
  return internalReducer(state, action);
633
639
  }
634
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnJlZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFrQixpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRy9GLE9BQU8sRUFDTCxtQkFBbUIsRUFJcEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUk3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDckcsT0FBTyxFQUFFLGdCQUFnQixFQUFpQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQW1DcEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQW1CO0lBQ25ELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEVBQUU7UUFDWCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUMzQjtRQUNELGNBQWMsRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxFQUFFLEVBQUU7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Q3BFLE9BQU8sZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERpc3BsYXlPcHRpb25zLCBnZXREaXNwbGF5T3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvZGlzcGxheS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2ZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgR2xvYmFsTWFuaWZlc3QsXG4gIE1hbmlmZXN0RGVzY3JpcHRpb24sXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlbGF0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9yZWxhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVzdWx0T3JkZXIgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL3Jlc3VsdC1vcmRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVzdWx0U2V0cyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgREVGQVVMVF9OQU1FRF9RVUVSWV9JRCwgRVhQTE9SRV9OQU1FRF9RVUVSWV9JRCB9IGZyb20gJy4uLy4uL2NvcmUvc3RvcmUvc2VhcmNoL3NlYXJjaC5jb25zdGFudHMnO1xuaW1wb3J0IHsgc29sdmVDb2xsaXNpb25zIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zb2x2ZS1jb2xsaXNpb25zLmZ1bmN0aW9uJztcbmltcG9ydCB7IFdpZGdldFBsYWNlbWVudFV0aWxzIH0gZnJvbSAnLi4vY29tcG9uZW50cy93aWRnZXRzL3dpZGdldC1wbGFjZW1lbnQvd2lkZ2V0LXBsYWNlbWVudC51dGlscyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRBY3Rpb25zLCBEYXNoYm9hcmRDZWxsUGFyYW1zLCBWaWV3TW9kZSB9IGZyb20gJy4vZGFzaGJvYXJkLmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9DT0xVTU5TX05VTUJFUixcbiAgREVGQVVMVF9HQVBfUFgsXG4gIERFRkFVTFRfUk9XX0hFSUdIVF9QWCxcbiAgREVGQVVMVF9ST1dTX05VTUJFUlxufSBmcm9tICcuL2Rhc2hib2FyZC5jb250YW50cyc7XG5pbXBvcnQgeyBHZXRDYXBhYmlsaXRpZXNSZXNwb25zZSB9IGZyb20gJy4vd21zLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgZGFzaGJvYXJkRmVhdHVyZUtleSA9ICdAcHJ5L2Rhc2hib2FyZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGFzaGJvYXJkU3RhdGUge1xuICBtYW5pZmVzdHM6IHtcbiAgICBzZW5kZXI6IHN0cmluZztcbiAgICB0ZW5hbnRzOiBzdHJpbmdbXTtcbiAgICBtYW5pZmVzdDogR2xvYmFsTWFuaWZlc3Q7XG4gICAgbGlzdDogTWFuaWZlc3REZXNjcmlwdGlvbltdO1xuICAgIGN1cnJlbnRJZDogc3RyaW5nO1xuICAgIHN0YXRpY01hbmlmZXN0OiBHbG9iYWxNYW5pZmVzdDtcbiAgICBsb2FkaW5nOiBib29sZWFuO1xuICB9O1xuICBwcmVzZW50YXRpb246IHtcbiAgICBjdXJyZW50OiBNYW5pZmVzdERlc2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICAgIHZpZXdNb2RlPzogVmlld01vZGU7XG4gICAgaW5pdGlhbDogR2xvYmFsTWFuaWZlc3QgfCB1bmRlZmluZWQ7XG4gIH07XG4gIHJlc3VsdHM6IHtcbiAgICByZXN1bHRTZXRzOiBSZXN1bHRTZXRzO1xuICAgIHJlc3VsdFNldHNQYXJhbXM6IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbiAgICBhdmFpbGFibGVEYXRhc291cmNlTmFtZXM6IHN0cmluZ1tdO1xuICAgIGRlZmF1bHREYXRhc291cmNlOiBzdHJpbmdbXTtcbiAgICBzZWxlY3RlZEl0ZW1zOiBzdHJpbmdbXTtcbiAgICBvYmplY3REZXRhaWxzOiB7IFtpZDogc3RyaW5nXTogSXRlbSB9O1xuICAgIHF1aWNrT3JkZXI6IHsgW2lkOiBzdHJpbmddOiBSZXN1bHRPcmRlciB8IHVuZGVmaW5lZCB9O1xuICB9O1xuICBkYXNoYm9hcmQ6IHtcbiAgICBwYXJhbXM6IERhc2hib2FyZENlbGxQYXJhbXM7XG4gICAgZWRpdGlvbk1vZGU6IGJvb2xlYW47XG4gIH07XG4gIHdtc0ZlYXR1cmVzOiBhbnlbXTtcbiAgZGlzcGxheT86IERpc3BsYXlPcHRpb25zO1xuICBjYXBhYmlsaXRpZXM6IHsgW3VybDogc3RyaW5nXTogR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UgfCBudWxsIH07XG59XG5cbmV4cG9ydCBjb25zdCBkYXNoYm9hcmRJbml0aWFsU3RhdGU6IERhc2hib2FyZFN0YXRlID0ge1xuICBtYW5pZmVzdHM6IHtcbiAgICBzZW5kZXI6ICcnLFxuICAgIHRlbmFudHM6IFtdLFxuICAgIG1hbmlmZXN0OiB7XG4gICAgICB3aW5kb3dzOiBbeyB3aWRnZXRzOiBbXSB9XVxuICAgIH0sXG4gICAgc3RhdGljTWFuaWZlc3Q6IHtcbiAgICAgIHdpbmRvd3M6IFt7IHdpZGdldHM6IFtdIH1dXG4gICAgfSxcbiAgICBsaXN0OiBbXSxcbiAgICBjdXJyZW50SWQ6ICcnLFxuICAgIGxvYWRpbmc6IGZhbHNlXG4gIH0sXG4gIHByZXNlbnRhdGlvbjoge1xuICAgIGN1cnJlbnQ6IHVuZGVmaW5lZCxcbiAgICBpbml0aWFsOiB1bmRlZmluZWRcbiAgfSxcbiAgcmVzdWx0czoge1xuICAgIGF2YWlsYWJsZURhdGFzb3VyY2VOYW1lczogW10sXG4gICAgcmVzdWx0U2V0czoge1xuICAgICAgW0RFRkFVTFRfTkFNRURfUVVFUllfSURdOiB7IGl0ZW1zOiB7fSwgcmVsYXRpb25zOiBbXSB9LFxuICAgICAgW0VYUExPUkVfTkFNRURfUVVFUllfSURdOiB7IGl0ZW1zOiB7fSwgcmVsYXRpb25zOiBbXSB9XG4gICAgfSxcbiAgICByZXN1bHRTZXRzUGFyYW1zOiB7XG4gICAgICBbREVGQVVMVF9OQU1FRF9RVUVSWV9JRF06IHVuZGVmaW5lZCxcbiAgICAgIFtFWFBMT1JFX05BTUVEX1FVRVJZX0lEXTogdW5kZWZpbmVkXG4gICAgfSxcbiAgICBkZWZhdWx0RGF0YXNvdXJjZTogWydjdXJyZW50J10sXG4gICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgb2JqZWN0RGV0YWlsczoge30sXG4gICAgcXVpY2tPcmRlcjoge31cbiAgfSxcbiAgZGFzaGJvYXJkOiB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBncmlkV2lkdGg6IDEsXG4gICAgICBncmlkSGVpZ2h0OiAxLFxuICAgICAgZ3JpZEdhcDogREVGQVVMVF9HQVBfUFgsXG4gICAgICBjb2x1bW5zOiBERUZBVUxUX0NPTFVNTlNfTlVNQkVSLFxuICAgICAgY2VsbEhlaWdodDogREVGQVVMVF9ST1dfSEVJR0hUX1BYLFxuICAgICAgcm93czogREVGQVVMVF9ST1dTX05VTUJFUixcbiAgICAgIGNlbGxXaWR0aDogMSxcbiAgICAgIG9mZnNldExlZnQ6IDAsXG4gICAgICBvZmZzZXRUb3A6IDAsXG4gICAgICBtb2JpbGVNb2RlOiBmYWxzZVxuICAgIH0sXG4gICAgZWRpdGlvbk1vZGU6IGZhbHNlXG4gIH0sXG4gIHdtc0ZlYXR1cmVzOiBbXSxcbiAgY2FwYWJpbGl0aWVzOiB7fVxufTtcblxuY29uc3QgaW50ZXJuYWxSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxEYXNoYm9hcmRTdGF0ZT4oXG4gIGRhc2hib2FyZEluaXRpYWxTdGF0ZSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5qb2luLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIHRlbmFudHM6IFsuLi5zdGF0ZS5tYW5pZmVzdHMudGVuYW50cywgYWN0aW9uLnNlbmRlcl1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5kZWNsYXJlU2VuZGVySWQsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgc2VuZGVyOiBhY3Rpb24uc2VuZGVyLFxuICAgICAgdGVuYW50czogc3RhdGUubWFuaWZlc3RzLnRlbmFudHMubGVuZ3RoID09PSAwID8gYWN0aW9uLnRlbmFudHMgOiBzdGF0ZS5tYW5pZmVzdHMudGVuYW50c1xuICAgIH1cbiAgfSkpLFxuICBvbihcbiAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0LFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RBZnRlclRlbmFudEpvaW4sXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdEFmdGVyVGVuYW50TGVhdmUsXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdEFmdGVyRmV0Y2gsXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdEFmdGVyUmVzaXplLFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RXaXRob3V0QWN0aXZhdGlvbixcbiAgICAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKCEhYWN0aW9uLnNlbmRlciAmJiAhc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuZmluZCgodGVuYW50KSA9PiB0ZW5hbnQgPT09IGFjdGlvbi5zZW5kZXIpICYmICFhY3Rpb24uam9pbmluZykge1xuICAgICAgICAvLyBpZ25vcmUgbWFuaWZlc3QgdXBkYXRlcyBmcm9tIHRlbmFudHMgdGhhdCBoYXZlIG5vdCBqb2luZWRcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgICB0ZW5hbnRzOiBhY3Rpb24udGVuYW50cyA/PyBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cyxcbiAgICAgICAgICBtYW5pZmVzdDogYWN0aW9uLm1hbmlmZXN0LFxuICAgICAgICAgIGN1cnJlbnRJZDogYWN0aW9uLm1hbmlmZXN0SWQgPz8gc3RhdGUubWFuaWZlc3RzLmN1cnJlbnRJZFxuICAgICAgICB9LFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHByZXNlbnRhdGlvbjogYWN0aW9uLnByZXNlbnRhdGlvbiA/PyBzdGF0ZS5wcmVzZW50YXRpb24sXG4gICAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM6IGFjdGlvbi5zZWxlY3RlZElkcyxcbiAgICAgICAgICByZXN1bHRTZXRzOiAhIWFjdGlvbi5yZXN1bHRTZXRzXG4gICAgICAgICAgICA/IHsgLi4uc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzLCAuLi5hY3Rpb24ucmVzdWx0U2V0cyB9XG4gICAgICAgICAgICA6IHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1xuICAgICAgICB9LFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGRpc3BsYXk6IGFjdGlvbi5kaXNwbGF5ID8/IHN0YXRlLmRpc3BsYXlcbiAgICAgIH07XG4gICAgfVxuICApLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVJvdXRlTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3Qgc2VuZGVyUmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2YoYWN0aW9uLnNlbmRlciA/PyBzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gWy4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzXTtcbiAgICBuZXdXaW5kb3dzW3NlbmRlclJhbmtdID0geyAuLi5uZXdXaW5kb3dzW3NlbmRlclJhbmtdLCByb3V0ZTogYWN0aW9uLnJvdXRlIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEYXNoYm9hcmRNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3NdO1xuICAgIG5ld1dpbmRvd3NbbXlSYW5rXSA9IGFjdGlvbi5tYW5pZmVzdDtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVdpZGdldE1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MpKTtcbiAgICAobmV3V2luZG93c1tteVJhbmtdID8/IHsgd2lkZ2V0czogW10gfSkud2lkZ2V0c1thY3Rpb24uaW5kZXhdID0gYWN0aW9uLm1hbmlmZXN0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlUmVzdWx0U2V0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgcmVzdWx0U2V0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMsXG4gICAgICAgIFthY3Rpb24uaWRdOiBhY3Rpb24ucmVzdWx0U2V0XG4gICAgICB9LFxuICAgICAgcmVzdWx0U2V0c1BhcmFtczoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNQYXJhbXMsXG4gICAgICAgIFthY3Rpb24uaWRdOiBhY3Rpb24ucGFyYW1zXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMubW92ZVdpZGdldCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3NdO1xuXG4gICAgLy8gQ3JlYXRpbmcgbmV3IGN1cnJlbnQgd2luZG93IG1hbmlmZXN0LCB3aXRob3V0IG1vdmVkIHdpZGdldFxuICAgIGNvbnN0IG15TmV3V2luZG93ID0ge1xuICAgICAgLi4ubmV3V2luZG93c1tteVJhbmtdLFxuICAgICAgd2lkZ2V0czogWy4uLm5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzXVxuICAgIH07XG4gICAgY29uc3Qgd2lkZ2V0ID0gbXlOZXdXaW5kb3cud2lkZ2V0cy5zcGxpY2UoYWN0aW9uLndpZGdldEluZGV4LCAxKVswXTtcbiAgICBuZXdXaW5kb3dzW215UmFua10gPSBteU5ld1dpbmRvdztcblxuICAgIC8vIENyZWF0aW5nIGVpdGhlciBhIG5ldyB3aW5kb3cgbWFuaWZlc3Qgb3IgdXBkYXRlIHRoZSB0YXJnZXQgb25lXG4gICAgY29uc3QgdGFyZ2V0UmFuayA9IGFjdGlvbi50YXJnZXRJbmRleDtcbiAgICBpZiAodGFyZ2V0UmFuayAhPT0gLTEpIHtcbiAgICAgIGlmICghbmV3V2luZG93c1t0YXJnZXRSYW5rXSkge1xuICAgICAgICBuZXdXaW5kb3dzW3RhcmdldFJhbmtdID0ge1xuICAgICAgICAgIC4uLm5ld1dpbmRvd3NbbXlSYW5rXSxcbiAgICAgICAgICB3aWRnZXRzOiBbd2lkZ2V0XVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3V2luZG93c1t0YXJnZXRSYW5rXSA9IHtcbiAgICAgICAgICAuLi5uZXdXaW5kb3dzW3RhcmdldFJhbmtdLFxuICAgICAgICAgIHdpZGdldHM6IFsuLi4obmV3V2luZG93c1t0YXJnZXRSYW5rXS53aWRnZXRzID8/IFtdKSwgd2lkZ2V0XVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjcmVhdGUgbmV3IHdpbmRvdyB0byB3ZWxjb21lIHRoaXMgd2lkZ2V0XG4gICAgICBuZXdXaW5kb3dzLnB1c2goe1xuICAgICAgICAuLi5uZXdXaW5kb3dzW215UmFua10sXG4gICAgICAgIHdpZGdldHM6IFt3aWRnZXRdXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5tYXhpbWl6ZVdpZGdldCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzKSk7XG4gICAgbmV3V2luZG93c1tteVJhbmtdLndpZGdldHNbYWN0aW9uLndpZGdldEluZGV4XS5sYXlvdXQgPSB7XG4gICAgICB4OiAxLFxuICAgICAgeTogMSxcbiAgICAgIHdpZHRoOiBzdGF0ZS5kYXNoYm9hcmQucGFyYW1zLmNvbHVtbnMsXG4gICAgICBoZWlnaHQ6IHN0YXRlLmRhc2hib2FyZC5wYXJhbXMucm93c1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZXRBdmFpbGFibGVOYW1lZFF1ZXJpZXMsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHJlc3VsdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICBhdmFpbGFibGVEYXRhc291cmNlTmFtZXM6IGFjdGlvbi5uYW1lcyxcbiAgICAgIGRlZmF1bHREYXRhc291cmNlOiBzdGF0ZS5yZXN1bHRzLmRlZmF1bHREYXRhc291cmNlLmZpbHRlcigocnNOYW1lKSA9PiBhY3Rpb24ubmFtZXMuaW5jbHVkZXMocnNOYW1lKSlcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZXREZWZhdWx0RGF0YXNvdXJjZSwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIGRlZmF1bHREYXRhc291cmNlOiBhY3Rpb24ubmFtZXNcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zb2x2ZUNvbGxpc2lvbnMsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICB3aW5kb3dzOiBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cy5tYXAoKHdpbmRvdykgPT4ge1xuICAgICAgICAgIGNvbnN0IFtmaXJzdCwgLi4ub3RoZXJzXSA9IHdpbmRvdy53aWRnZXRzO1xuICAgICAgICAgIHJldHVybiBzb2x2ZUNvbGxpc2lvbnMoZmlyc3QsIG90aGVycywgd2luZG93KTtcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEYXNoYm9hcmRQYXJhbXMsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGRhc2hib2FyZDoge1xuICAgICAgLi4uc3RhdGUuZGFzaGJvYXJkLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIC4uLnN0YXRlLmRhc2hib2FyZC5wYXJhbXMsXG4gICAgICAgIC4uLmFjdGlvbi5wYXJhbXNcbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy50b2dnbGVFZGl0aW9uTW9kZSwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgZGFzaGJvYXJkOiB7XG4gICAgICAuLi5zdGF0ZS5kYXNoYm9hcmQsXG4gICAgICBlZGl0aW9uTW9kZTogYWN0aW9uLmZvcmNlID8/ICFzdGF0ZS5kYXNoYm9hcmQuZWRpdGlvbk1vZGVcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3QsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHJlc3VsdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbXG4gICAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgICAgIWFjdGlvbi5jdW11bGF0aXZlXG4gICAgICAgICAgICA/IFthY3Rpb24uaWRdXG4gICAgICAgICAgICA6IHN0YXRlLnJlc3VsdHMuc2VsZWN0ZWRJdGVtcy5maW5kKChpZCkgPT4gaWQgPT09IGFjdGlvbi5pZClcbiAgICAgICAgICAgID8gc3RhdGUucmVzdWx0cy5zZWxlY3RlZEl0ZW1zLmZpbHRlcigoaWQpID0+IGlkICE9PSBhY3Rpb24uaWQpXG4gICAgICAgICAgICA6IFsuLi5zdGF0ZS5yZXN1bHRzLnNlbGVjdGVkSXRlbXMsIGFjdGlvbi5pZF1cbiAgICAgICAgKVxuICAgICAgXVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmludmVydFNlbGVjdGlvbiwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBhbGxJdGVtcyA9IE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cylcbiAgICAgIC5tYXAoKHJzKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNbcnNdLml0ZW1zKVxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+IHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1tyc10uaXRlbXNbY2xhc3NJZF0gYXMgSXRlbVtdKVxuICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICApXG4gICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCk7XG5cbiAgICBjb25zdCBpbnZlcnRlZEl0ZW1zSWQgPSBhbGxJdGVtcy5maWx0ZXIoKGl0ZW1JZCkgPT4gIXN0YXRlLnJlc3VsdHMuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhpdGVtSWQpKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgc2VsZWN0ZWRJdGVtczogWy4uLm5ldyBTZXQoaW52ZXJ0ZWRJdGVtc0lkKV1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RNYW55LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgc2VsZWN0ZWRJdGVtczogWy4uLm5ldyBTZXQoYWN0aW9uLmlkcyldXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RzTGlzdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBsaXN0OiBhY3Rpb24ubWFuaWZlc3RzXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlU3RhdGljTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgc3RhdGljTWFuaWZlc3Q6IGFjdGlvbi5zdGF0aWNNYW5pZmVzdFxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmxvYWRBbmRBY3RpdmF0ZU1hbmlmZXN0LCBEYXNoYm9hcmRBY3Rpb25zLmxvYWRNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICB3aW5kb3dzOiBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MubWFwKCh3aW5NYW5pZmVzdCkgPT4gKHsgLi4ud2luTWFuaWZlc3QsIHdpZGdldHM6IFtdIH0pKV1cbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5jbGVhck1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgd2luZG93czogWy4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzLm1hcCgocHJldmlvdXMpID0+ICh7IC4uLnByZXZpb3VzLCB3aWRnZXRzOiBbXSB9KSldLFxuICAgICAgICBmaWx0ZXJzOiBbXVxuICAgICAgfSxcbiAgICAgIGN1cnJlbnRJZDogJydcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVPYmplY3RzRGV0YWlscywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIG9iamVjdERldGFpbHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5vYmplY3REZXRhaWxzLFxuICAgICAgICAuLi5hY3Rpb24ubGlzdFxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmV4cGxvcmUsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgY3VycmVudEl0ZW0gPSBPYmplY3Qua2V5cyhzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpXG4gICAgICAubWFwKChrZXkpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1trZXldLml0ZW1zKVxuICAgICAgICAgIC5tYXAoKGtleUNsYXNzKSA9PiBzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNba2V5XS5pdGVtc1trZXlDbGFzc10uZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gYWN0aW9uLmlkKSlcbiAgICAgICAgICAuZmluZCgoaXQpID0+ICEhaXQpXG4gICAgICApXG4gICAgICAuZmluZCgoaXQpID0+ICEhaXQpIGFzIEl0ZW07XG5cbiAgICBjb25zdCBhY3R1YWxXaW5kb3dzID0gc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3M7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBhY3R1YWxXaW5kb3dzLmNvbmNhdCh7XG4gICAgICAgICAgICB3aWRnZXRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgd2lkdGg6IDEyLCBoZWlnaHQ6IDEyIH0sXG4gICAgICAgICAgICAgICAgdHlwZTogJ2dyYXBoJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICBkYXRhc291cmNlOiBFWFBMT1JFX05BTUVEX1FVRVJZX0lEXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICByZXN1bHRTZXRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzLFxuICAgICAgICAgIFtFWFBMT1JFX05BTUVEX1FVRVJZX0lEXToge1xuICAgICAgICAgICAgaXRlbXM6IHsgW2N1cnJlbnRJdGVtLm9DbGFzc106IFtjdXJyZW50SXRlbV0gfSxcbiAgICAgICAgICAgIHJlbGF0aW9uczogW10gYXMgUmVsYXRpb25bXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldFJlZnJlc2hSYXRlLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHJlZnJlc2hSYXRlczogeyAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QucmVmcmVzaFJhdGVzLCBbYWN0aW9uLmlkXTogYWN0aW9uLnJhdGUgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuYWRkUmVsYXRpb25zVG9SZXN1bHRTZXRzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWRSZXN1bHRTZXRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpKTtcbiAgICBhY3Rpb24ucmVsYXRpb25zLmZvckVhY2goKHJlbGF0aW9uKSA9PiB7XG4gICAgICBPYmplY3Qua2V5cyh1cGRhdGVkUmVzdWx0U2V0cykuZm9yRWFjaCgocnNJZCkgPT4ge1xuICAgICAgICBjb25zdCBpc0NvbmNlcm5lZCA9IE9iamVjdC5rZXlzKHVwZGF0ZWRSZXN1bHRTZXRzW3JzSWRdLml0ZW1zKS5tYXAoKGNsYXNzSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFJlc3VsdFNldHNbcnNJZF0uaXRlbXNbY2xhc3NJZF0ubWFwKFxuICAgICAgICAgICAgKGl0ZW06IEl0ZW0pID0+IGl0ZW0uaWQgPT09IHJlbGF0aW9uLnNvdXJjZSB8fCBpdGVtLmlkID09PSByZWxhdGlvbi5kZXN0aW5hdGlvblxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaXNDb25jZXJuZWQpIHtcbiAgICAgICAgICB1cGRhdGVkUmVzdWx0U2V0c1tyc0lkXS5yZWxhdGlvbnMucHVzaChyZWxhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgcmVzdWx0U2V0czogdXBkYXRlZFJlc3VsdFNldHNcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5hZGRJdGVtVG9SZXN1bHRTZXRzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWRSZXN1bHRTZXRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpKTtcblxuICAgIGlmICghIWFjdGlvbi5yZXN1bHRTZXQpIHtcbiAgICAgIGlmICghdXBkYXRlZFJlc3VsdFNldHNbYWN0aW9uLnJlc3VsdFNldF0uaXRlbXNbYWN0aW9uLml0ZW0ub0NsYXNzXSkge1xuICAgICAgICB1cGRhdGVkUmVzdWx0U2V0c1thY3Rpb24ucmVzdWx0U2V0XS5pdGVtc1thY3Rpb24uaXRlbS5vQ2xhc3NdID0gW2FjdGlvbi5pdGVtXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVwZGF0ZWRSZXN1bHRTZXRzW2FjdGlvbi5yZXN1bHRTZXRdLml0ZW1zW2FjdGlvbi5pdGVtLm9DbGFzc10ucHVzaChhY3Rpb24uaXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICByZXN1bHRTZXRzOiB1cGRhdGVkUmVzdWx0U2V0c1xuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnF1aWNrT3JkZXIsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICBxdWlja09yZGVyOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5xdWlja09yZGVyLFxuICAgICAgICAgIFthY3Rpb24uZGF0YXNvdXJjZUlkXTogYWN0aW9uLmFzYyA/IHsgYXR0cmlidXRlOiBhY3Rpb24uYXR0cmlidXRlLCBhc2M6IGFjdGlvbi5hc2MgfSA6IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0UHJlc2VudGF0aW9uLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHByZXNlbnRhdGlvbjoge1xuICAgICAgICAuLi5zdGF0ZS5wcmVzZW50YXRpb24sXG4gICAgICAgIGN1cnJlbnQ6IGFjdGlvbi5wcmVzZW50YXRpb24sXG4gICAgICAgIHZpZXdNb2RlOiBhY3Rpb24udmlld01vZGUsXG4gICAgICAgIGluaXRpYWw6IGFjdGlvbi5wcmVzZW50YXRpb24gPyBzdGF0ZS5wcmVzZW50YXRpb24uaW5pdGlhbCA6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldEluaXRpYWxQcmVzZW50YXRpb24sIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcHJlc2VudGF0aW9uOiB7XG4gICAgICAgIC4uLnN0YXRlLnByZXNlbnRhdGlvbixcbiAgICAgICAgaW5pdGlhbDogYWN0aW9uLmluaXRpYWxcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZXRHcmlkTGF5b3V0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MgPz8gW10pKTtcbiAgICBpZiAoIW5ld1dpbmRvd3NbbXlSYW5rXSkge1xuICAgICAgbmV3V2luZG93c1tteVJhbmtdID0geyB3aWRnZXRzOiBbXSB9O1xuICAgIH1cbiAgICBpZiAoIW5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkKSB7XG4gICAgICBuZXdXaW5kb3dzW215UmFua10uZ3JpZCA9IHt9O1xuICAgIH1cbiAgICBpZiAoIW5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzKSB7XG4gICAgICBuZXdXaW5kb3dzW215UmFua10ud2lkZ2V0cyA9IFtdO1xuICAgIH1cbiAgICBuZXdXaW5kb3dzW215UmFua10uZ3JpZC5sYXlvdXQgPSBhY3Rpb24ubGF5b3V0O1xuICAgIGlmIChhY3Rpb24ubGF5b3V0ICE9PSBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTCkge1xuICAgICAgLy8gUmVvcmRlciBsYXlvdXRzXG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHJvd3M6IG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkLnJvd3MsXG4gICAgICAgIGNvbHVtbnM6IG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkLmNvbHVtbnNcbiAgICAgIH07XG4gICAgICBjb25zdCBwbGFjZXMgPSBXaWRnZXRQbGFjZW1lbnRVdGlscy5wbGFjZW1lbnRPcHRpb25zKHt9IGFzIFdpZGdldE1hbmlmZXN0LCBhY3Rpb24ubGF5b3V0LCBwYXJhbXMpO1xuXG4gICAgICBuZXdXaW5kb3dzW215UmFua10ud2lkZ2V0cy5mb3JFYWNoKCh3aWRnZXQ6IFdpZGdldE1hbmlmZXN0LCBpZHg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgdGFyZ2V0TGF5b3V0ID0gcGxhY2VzW2lkeF0/LmxheW91dDtcbiAgICAgICAgaWYgKCF0YXJnZXRMYXlvdXQpIHtcbiAgICAgICAgICB0YXJnZXRMYXlvdXQgPSB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0luY29ycmVjdCBwbGFjZW1lbnQgY2FsY3VsYXRpb24nLCBwbGFjZXMsIGlkeCwgd2lkZ2V0LCBhY3Rpb24ubGF5b3V0KTtcbiAgICAgICAgfVxuICAgICAgICB3aWRnZXQubGF5b3V0ID0geyAuLi50YXJnZXRMYXlvdXQgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmNyZWF0ZVRhYiwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG15TGF5b3V0ID0gc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3NbbXlSYW5rXS5ncmlkPy5sYXlvdXQgPz8gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUw7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MpKTtcbiAgICBuZXdXaW5kb3dzLnB1c2goeyBncmlkOiB7IGxheW91dDogbXlMYXlvdXQgfSwgd2lkZ2V0czogW10gfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucmVzdG9yZUluaXRpYWxNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDogSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5wcmVzZW50YXRpb24uaW5pdGlhbCkpXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucHJvcGFnYXRlR3JpZExheW91dCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cykpO1xuICAgIG5ld1dpbmRvd3NbYWN0aW9uLnJhbmtdID0gYWN0aW9uLm1hbmlmZXN0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0RmlsdGVycywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgIGZpbHRlcnM6IGFjdGlvbi5maWx0ZXJzXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRmlsdGVycywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBpc1ByZXNlbnQgPSBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycz8uZmluZCgoZmlsdGVyKSA9PiBmaWx0ZXIuaWQgPT09IGFjdGlvbi5maWx0ZXIuaWQpO1xuICAgIGxldCBmaWx0ZXJzID0gW107XG4gICAgaWYgKGlzUHJlc2VudCkge1xuICAgICAgZmlsdGVycyA9XG4gICAgICAgIHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzPy5tYXAoKGZpbHRlcikgPT4gKGZpbHRlci5pZCA9PT0gYWN0aW9uLmZpbHRlci5pZCA/IGFjdGlvbi5maWx0ZXIgOiBmaWx0ZXIpKSA/P1xuICAgICAgICBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzKSB7XG4gICAgICAgIGZpbHRlcnMgPSBbLi4uKHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzIGFzIEZpbHRlcltdKSwgYWN0aW9uLmZpbHRlcl07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaWx0ZXJzID0gW2FjdGlvbi5maWx0ZXJdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5yZW1vdmVGaWx0ZXIsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICBmaWx0ZXJzOiBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycz8uZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5pZCAhPT0gYWN0aW9uLmlkKVxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnJlbW92ZUZpbHRlcnMsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgZmlsdGVyczogW11cbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVGaWx0ZXJWYWx1ZSwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycyA/PyBbXSkpIGFzIEZpbHRlcltdO1xuXG4gICAgY29uc3QgZmlsdGVyVG9VcGRhdGUgPSBmaWx0ZXJzLmZpbmQoKGZpbHRlcikgPT4gZmlsdGVyLmlkID09PSBhY3Rpb24uaWQpO1xuICAgIGlmIChmaWx0ZXJUb1VwZGF0ZSkge1xuICAgICAgaWYgKCFhY3Rpb24udmFsdWUpIHtcbiAgICAgICAgZGVsZXRlIGZpbHRlclRvVXBkYXRlLnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmlsdGVyVG9VcGRhdGUudmFsdWUgPSBhY3Rpb24udmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgZmlsdGVyc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuZ2V0V21zRmVhdHVyZXMsIERhc2hib2FyZEFjdGlvbnMucmVzZXRXbXNGZWF0dXJlcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgd21zRmVhdHVyZXM6IFtdXG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5hZGRXbXNGZWF0dXJlcywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBhbGxGZWF0dXJlcyA9IFsuLi5zdGF0ZS53bXNGZWF0dXJlcywgLi4uYWN0aW9uLmZlYXR1cmVzXTtcbiAgICBjb25zdCBkZUR1cGVkSWRzID0gWy4uLm5ldyBTZXQoYWxsRmVhdHVyZXMubWFwKChmZWF0KSA9PiBmZWF0LmlkKSldO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHdtc0ZlYXR1cmVzOiBkZUR1cGVkSWRzLm1hcCgoaWQpID0+IGFsbEZlYXR1cmVzLmZpbmQoKGZlYXQpID0+IGZlYXQuaWQgPT09IGlkKSlcbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5mZXRjaFN0YXRpY01hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIGxvYWRpbmc6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5lbmRMb2FkaW5nLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGlzcGxheU9wdGlvbnMsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheTogYWN0aW9uLmN1c3RvbURpc3BsYXkgPyBhY3Rpb24uY3VzdG9tRGlzcGxheSA6IGdldERpc3BsYXlPcHRpb25zKGFjdGlvbi5tb2RlKVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZUNhcGFiaWxpdHksIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgY2FwYWJpbGl0aWVzOiB7XG4gICAgICAgIC4uLnN0YXRlLmNhcGFiaWxpdGllcyxcbiAgICAgICAgW2FjdGlvbi51cmxdOiBhY3Rpb24uY2FwYWJpbGl0eVxuICAgICAgfVxuICAgIH07XG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZGFzaGJvYXJkUmVkdWNlcihzdGF0ZTogRGFzaGJvYXJkU3RhdGUsIGFjdGlvbjogQWN0aW9uKSB7XG4gIHJldHVybiBpbnRlcm5hbFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG59XG4iXX0=
640
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnJlZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFrQixpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRy9GLE9BQU8sRUFDTCxtQkFBbUIsRUFJcEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUk3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDckcsT0FBTyxFQUFFLGdCQUFnQixFQUFpQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQW1DcEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQW1CO0lBQ25ELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEVBQUU7UUFDWCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUMzQjtRQUNELGNBQWMsRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxFQUFFLEVBQUU7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RUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUN0RCxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsWUFBWSxFQUFFO1lBQ1osR0FBRyxLQUFLLENBQUMsWUFBWTtZQUNyQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBVTtTQUNoQztLQUNGLENBQUM7QUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBRUYsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQXFCLEVBQUUsTUFBYztJQUNwRSxPQUFPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgY3JlYXRlUmVkdWNlciwgb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEaXNwbGF5T3B0aW9ucywgZ2V0RGlzcGxheU9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2Rpc3BsYXktb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEdyaWRMYXlvdXQsXG4gIEdsb2JhbE1hbmlmZXN0LFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBXaWRnZXRNYW5pZmVzdFxufSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWxhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVsYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdE9yZGVyIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9yZXN1bHQtb3JkZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldHMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL3Jlc3VsdC1zZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IERFRkFVTFRfTkFNRURfUVVFUllfSUQsIEVYUExPUkVfTkFNRURfUVVFUllfSUQgfSBmcm9tICcuLi8uLi9jb3JlL3N0b3JlL3NlYXJjaC9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IHNvbHZlQ29sbGlzaW9ucyB9IGZyb20gJy4uL2NvbXBvbmVudHMvc29sdmUtY29sbGlzaW9ucy5mdW5jdGlvbic7XG5pbXBvcnQgeyBXaWRnZXRQbGFjZW1lbnRVdGlscyB9IGZyb20gJy4uL2NvbXBvbmVudHMvd2lkZ2V0cy93aWRnZXQtcGxhY2VtZW50L3dpZGdldC1wbGFjZW1lbnQudXRpbHMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucywgRGFzaGJvYXJkQ2VsbFBhcmFtcywgVmlld01vZGUgfSBmcm9tICcuL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7XG4gIERFRkFVTFRfQ09MVU1OU19OVU1CRVIsXG4gIERFRkFVTFRfR0FQX1BYLFxuICBERUZBVUxUX1JPV19IRUlHSFRfUFgsXG4gIERFRkFVTFRfUk9XU19OVU1CRVJcbn0gZnJvbSAnLi9kYXNoYm9hcmQuY29udGFudHMnO1xuaW1wb3J0IHsgR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UgfSBmcm9tICcuL3dtcy5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGRhc2hib2FyZEZlYXR1cmVLZXkgPSAnQHByeS9kYXNoYm9hcmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZFN0YXRlIHtcbiAgbWFuaWZlc3RzOiB7XG4gICAgc2VuZGVyOiBzdHJpbmc7XG4gICAgdGVuYW50czogc3RyaW5nW107XG4gICAgbWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0O1xuICAgIGxpc3Q6IE1hbmlmZXN0RGVzY3JpcHRpb25bXTtcbiAgICBjdXJyZW50SWQ6IHN0cmluZztcbiAgICBzdGF0aWNNYW5pZmVzdDogR2xvYmFsTWFuaWZlc3Q7XG4gICAgbG9hZGluZzogYm9vbGVhbjtcbiAgfTtcbiAgcHJlc2VudGF0aW9uOiB7XG4gICAgY3VycmVudDogTWFuaWZlc3REZXNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgICB2aWV3TW9kZT86IFZpZXdNb2RlO1xuICAgIGluaXRpYWw6IEdsb2JhbE1hbmlmZXN0IHwgdW5kZWZpbmVkO1xuICB9O1xuICByZXN1bHRzOiB7XG4gICAgcmVzdWx0U2V0czogUmVzdWx0U2V0cztcbiAgICByZXN1bHRTZXRzUGFyYW1zOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG4gICAgYXZhaWxhYmxlRGF0YXNvdXJjZU5hbWVzOiBzdHJpbmdbXTtcbiAgICBkZWZhdWx0RGF0YXNvdXJjZTogc3RyaW5nW107XG4gICAgc2VsZWN0ZWRJdGVtczogc3RyaW5nW107XG4gICAgb2JqZWN0RGV0YWlsczogeyBbaWQ6IHN0cmluZ106IEl0ZW0gfTtcbiAgICBxdWlja09yZGVyOiB7IFtpZDogc3RyaW5nXTogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQgfTtcbiAgfTtcbiAgZGFzaGJvYXJkOiB7XG4gICAgcGFyYW1zOiBEYXNoYm9hcmRDZWxsUGFyYW1zO1xuICAgIGVkaXRpb25Nb2RlOiBib29sZWFuO1xuICB9O1xuICB3bXNGZWF0dXJlczogYW55W107XG4gIGRpc3BsYXk/OiBEaXNwbGF5T3B0aW9ucztcbiAgY2FwYWJpbGl0aWVzOiB7IFt1cmw6IHN0cmluZ106IEdldENhcGFiaWxpdGllc1Jlc3BvbnNlIHwgbnVsbCB9O1xufVxuXG5leHBvcnQgY29uc3QgZGFzaGJvYXJkSW5pdGlhbFN0YXRlOiBEYXNoYm9hcmRTdGF0ZSA9IHtcbiAgbWFuaWZlc3RzOiB7XG4gICAgc2VuZGVyOiAnJyxcbiAgICB0ZW5hbnRzOiBbXSxcbiAgICBtYW5pZmVzdDoge1xuICAgICAgd2luZG93czogW3sgd2lkZ2V0czogW10gfV1cbiAgICB9LFxuICAgIHN0YXRpY01hbmlmZXN0OiB7XG4gICAgICB3aW5kb3dzOiBbeyB3aWRnZXRzOiBbXSB9XVxuICAgIH0sXG4gICAgbGlzdDogW10sXG4gICAgY3VycmVudElkOiAnJyxcbiAgICBsb2FkaW5nOiBmYWxzZVxuICB9LFxuICBwcmVzZW50YXRpb246IHtcbiAgICBjdXJyZW50OiB1bmRlZmluZWQsXG4gICAgaW5pdGlhbDogdW5kZWZpbmVkXG4gIH0sXG4gIHJlc3VsdHM6IHtcbiAgICBhdmFpbGFibGVEYXRhc291cmNlTmFtZXM6IFtdLFxuICAgIHJlc3VsdFNldHM6IHtcbiAgICAgIFtERUZBVUxUX05BTUVEX1FVRVJZX0lEXTogeyBpdGVtczoge30sIHJlbGF0aW9uczogW10gfSxcbiAgICAgIFtFWFBMT1JFX05BTUVEX1FVRVJZX0lEXTogeyBpdGVtczoge30sIHJlbGF0aW9uczogW10gfVxuICAgIH0sXG4gICAgcmVzdWx0U2V0c1BhcmFtczoge1xuICAgICAgW0RFRkFVTFRfTkFNRURfUVVFUllfSURdOiB1bmRlZmluZWQsXG4gICAgICBbRVhQTE9SRV9OQU1FRF9RVUVSWV9JRF06IHVuZGVmaW5lZFxuICAgIH0sXG4gICAgZGVmYXVsdERhdGFzb3VyY2U6IFsnY3VycmVudCddLFxuICAgIHNlbGVjdGVkSXRlbXM6IFtdLFxuICAgIG9iamVjdERldGFpbHM6IHt9LFxuICAgIHF1aWNrT3JkZXI6IHt9XG4gIH0sXG4gIGRhc2hib2FyZDoge1xuICAgIHBhcmFtczoge1xuICAgICAgZ3JpZFdpZHRoOiAxLFxuICAgICAgZ3JpZEhlaWdodDogMSxcbiAgICAgIGdyaWRHYXA6IERFRkFVTFRfR0FQX1BYLFxuICAgICAgY29sdW1uczogREVGQVVMVF9DT0xVTU5TX05VTUJFUixcbiAgICAgIGNlbGxIZWlnaHQ6IERFRkFVTFRfUk9XX0hFSUdIVF9QWCxcbiAgICAgIHJvd3M6IERFRkFVTFRfUk9XU19OVU1CRVIsXG4gICAgICBjZWxsV2lkdGg6IDEsXG4gICAgICBvZmZzZXRMZWZ0OiAwLFxuICAgICAgb2Zmc2V0VG9wOiAwLFxuICAgICAgbW9iaWxlTW9kZTogZmFsc2VcbiAgICB9LFxuICAgIGVkaXRpb25Nb2RlOiBmYWxzZVxuICB9LFxuICB3bXNGZWF0dXJlczogW10sXG4gIGNhcGFiaWxpdGllczoge31cbn07XG5cbmNvbnN0IGludGVybmFsUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8RGFzaGJvYXJkU3RhdGU+KFxuICBkYXNoYm9hcmRJbml0aWFsU3RhdGUsXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuam9pbiwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICB0ZW5hbnRzOiBbLi4uc3RhdGUubWFuaWZlc3RzLnRlbmFudHMsIGFjdGlvbi5zZW5kZXJdXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuZGVjbGFyZVNlbmRlcklkLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIHNlbmRlcjogYWN0aW9uLnNlbmRlcixcbiAgICAgIHRlbmFudHM6IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmxlbmd0aCA9PT0gMCA/IGFjdGlvbi50ZW5hbnRzIDogc3RhdGUubWFuaWZlc3RzLnRlbmFudHNcbiAgICB9XG4gIH0pKSxcbiAgb24oXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdCxcbiAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0QWZ0ZXJUZW5hbnRKb2luLFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RBZnRlclRlbmFudExlYXZlLFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RBZnRlckZldGNoLFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RBZnRlclJlc2l6ZSxcbiAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0V2l0aG91dEFjdGl2YXRpb24sXG4gICAgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmICghIWFjdGlvbi5zZW5kZXIgJiYgIXN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmZpbmQoKHRlbmFudCkgPT4gdGVuYW50ID09PSBhY3Rpb24uc2VuZGVyKSAmJiAhYWN0aW9uLmpvaW5pbmcpIHtcbiAgICAgICAgLy8gaWdub3JlIG1hbmlmZXN0IHVwZGF0ZXMgZnJvbSB0ZW5hbnRzIHRoYXQgaGF2ZSBub3Qgam9pbmVkXG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgICAgdGVuYW50czogYWN0aW9uLnRlbmFudHMgPz8gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMsXG4gICAgICAgICAgbWFuaWZlc3Q6IGFjdGlvbi5tYW5pZmVzdCxcbiAgICAgICAgICBjdXJyZW50SWQ6IGFjdGlvbi5tYW5pZmVzdElkID8/IHN0YXRlLm1hbmlmZXN0cy5jdXJyZW50SWRcbiAgICAgICAgfSxcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBwcmVzZW50YXRpb246IGFjdGlvbi5wcmVzZW50YXRpb24gPz8gc3RhdGUucHJlc2VudGF0aW9uLFxuICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zOiBhY3Rpb24uc2VsZWN0ZWRJZHMsXG4gICAgICAgICAgcmVzdWx0U2V0czogISFhY3Rpb24ucmVzdWx0U2V0c1xuICAgICAgICAgICAgPyB7IC4uLnN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cywgLi4uYWN0aW9uLnJlc3VsdFNldHMgfVxuICAgICAgICAgICAgOiBzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNcbiAgICAgICAgfSxcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBkaXNwbGF5OiBhY3Rpb24uZGlzcGxheSA/PyBzdGF0ZS5kaXNwbGF5XG4gICAgICB9O1xuICAgIH1cbiAgKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVSb3V0ZU1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHNlbmRlclJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKGFjdGlvbi5zZW5kZXIgPz8gc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IFsuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93c107XG4gICAgbmV3V2luZG93c1tzZW5kZXJSYW5rXSA9IHsgLi4ubmV3V2luZG93c1tzZW5kZXJSYW5rXSwgcm91dGU6IGFjdGlvbi5yb3V0ZSB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGFzaGJvYXJkTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbXlSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gWy4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzXTtcbiAgICBuZXdXaW5kb3dzW215UmFua10gPSBhY3Rpb24ubWFuaWZlc3Q7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVXaWRnZXRNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzKSk7XG4gICAgKG5ld1dpbmRvd3NbbXlSYW5rXSA/PyB7IHdpZGdldHM6IFtdIH0pLndpZGdldHNbYWN0aW9uLmluZGV4XSA9IGFjdGlvbi5tYW5pZmVzdDtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVJlc3VsdFNldCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIHJlc3VsdFNldHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzLFxuICAgICAgICBbYWN0aW9uLmlkXTogYWN0aW9uLnJlc3VsdFNldFxuICAgICAgfSxcbiAgICAgIHJlc3VsdFNldHNQYXJhbXM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzUGFyYW1zLFxuICAgICAgICBbYWN0aW9uLmlkXTogYWN0aW9uLnBhcmFtc1xuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLm1vdmVXaWRnZXQsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbXlSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gWy4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzXTtcblxuICAgIC8vIENyZWF0aW5nIG5ldyBjdXJyZW50IHdpbmRvdyBtYW5pZmVzdCwgd2l0aG91dCBtb3ZlZCB3aWRnZXRcbiAgICBjb25zdCBteU5ld1dpbmRvdyA9IHtcbiAgICAgIC4uLm5ld1dpbmRvd3NbbXlSYW5rXSxcbiAgICAgIHdpZGdldHM6IFsuLi5uZXdXaW5kb3dzW215UmFua10ud2lkZ2V0c11cbiAgICB9O1xuICAgIGNvbnN0IHdpZGdldCA9IG15TmV3V2luZG93LndpZGdldHMuc3BsaWNlKGFjdGlvbi53aWRnZXRJbmRleCwgMSlbMF07XG4gICAgbmV3V2luZG93c1tteVJhbmtdID0gbXlOZXdXaW5kb3c7XG5cbiAgICAvLyBDcmVhdGluZyBlaXRoZXIgYSBuZXcgd2luZG93IG1hbmlmZXN0IG9yIHVwZGF0ZSB0aGUgdGFyZ2V0IG9uZVxuICAgIGNvbnN0IHRhcmdldFJhbmsgPSBhY3Rpb24udGFyZ2V0SW5kZXg7XG4gICAgaWYgKHRhcmdldFJhbmsgIT09IC0xKSB7XG4gICAgICBpZiAoIW5ld1dpbmRvd3NbdGFyZ2V0UmFua10pIHtcbiAgICAgICAgbmV3V2luZG93c1t0YXJnZXRSYW5rXSA9IHtcbiAgICAgICAgICAuLi5uZXdXaW5kb3dzW215UmFua10sXG4gICAgICAgICAgd2lkZ2V0czogW3dpZGdldF1cbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1dpbmRvd3NbdGFyZ2V0UmFua10gPSB7XG4gICAgICAgICAgLi4ubmV3V2luZG93c1t0YXJnZXRSYW5rXSxcbiAgICAgICAgICB3aWRnZXRzOiBbLi4uKG5ld1dpbmRvd3NbdGFyZ2V0UmFua10ud2lkZ2V0cyA/PyBbXSksIHdpZGdldF1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY3JlYXRlIG5ldyB3aW5kb3cgdG8gd2VsY29tZSB0aGlzIHdpZGdldFxuICAgICAgbmV3V2luZG93cy5wdXNoKHtcbiAgICAgICAgLi4ubmV3V2luZG93c1tteVJhbmtdLFxuICAgICAgICB3aWRnZXRzOiBbd2lkZ2V0XVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMubWF4aW1pemVXaWRnZXQsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbXlSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cykpO1xuICAgIG5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzW2FjdGlvbi53aWRnZXRJbmRleF0ubGF5b3V0ID0ge1xuICAgICAgeDogMSxcbiAgICAgIHk6IDEsXG4gICAgICB3aWR0aDogc3RhdGUuZGFzaGJvYXJkLnBhcmFtcy5jb2x1bW5zLFxuICAgICAgaGVpZ2h0OiBzdGF0ZS5kYXNoYm9hcmQucGFyYW1zLnJvd3NcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0QXZhaWxhYmxlTmFtZWRRdWVyaWVzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgYXZhaWxhYmxlRGF0YXNvdXJjZU5hbWVzOiBhY3Rpb24ubmFtZXMsXG4gICAgICBkZWZhdWx0RGF0YXNvdXJjZTogc3RhdGUucmVzdWx0cy5kZWZhdWx0RGF0YXNvdXJjZS5maWx0ZXIoKHJzTmFtZSkgPT4gYWN0aW9uLm5hbWVzLmluY2x1ZGVzKHJzTmFtZSkpXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0RGVmYXVsdERhdGFzb3VyY2UsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHJlc3VsdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICBkZWZhdWx0RGF0YXNvdXJjZTogYWN0aW9uLm5hbWVzXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc29sdmVDb2xsaXNpb25zLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgd2luZG93czogc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MubWFwKCh3aW5kb3cpID0+IHtcbiAgICAgICAgICBjb25zdCBbZmlyc3QsIC4uLm90aGVyc10gPSB3aW5kb3cud2lkZ2V0cztcbiAgICAgICAgICByZXR1cm4gc29sdmVDb2xsaXNpb25zKGZpcnN0LCBvdGhlcnMsIHdpbmRvdyk7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGFzaGJvYXJkUGFyYW1zLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBkYXNoYm9hcmQ6IHtcbiAgICAgIC4uLnN0YXRlLmRhc2hib2FyZCxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICAuLi5zdGF0ZS5kYXNoYm9hcmQucGFyYW1zLFxuICAgICAgICAuLi5hY3Rpb24ucGFyYW1zXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudG9nZ2xlRWRpdGlvbk1vZGUsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGRhc2hib2FyZDoge1xuICAgICAgLi4uc3RhdGUuZGFzaGJvYXJkLFxuICAgICAgZWRpdGlvbk1vZGU6IGFjdGlvbi5mb3JjZSA/PyAhc3RhdGUuZGFzaGJvYXJkLmVkaXRpb25Nb2RlXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgc2VsZWN0ZWRJdGVtczogW1xuICAgICAgICAuLi5uZXcgU2V0KFxuICAgICAgICAgICFhY3Rpb24uY3VtdWxhdGl2ZVxuICAgICAgICAgICAgPyBbYWN0aW9uLmlkXVxuICAgICAgICAgICAgOiBzdGF0ZS5yZXN1bHRzLnNlbGVjdGVkSXRlbXMuZmluZCgoaWQpID0+IGlkID09PSBhY3Rpb24uaWQpXG4gICAgICAgICAgICA/IHN0YXRlLnJlc3VsdHMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGlkKSA9PiBpZCAhPT0gYWN0aW9uLmlkKVxuICAgICAgICAgICAgOiBbLi4uc3RhdGUucmVzdWx0cy5zZWxlY3RlZEl0ZW1zLCBhY3Rpb24uaWRdXG4gICAgICAgIClcbiAgICAgIF1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5pbnZlcnRTZWxlY3Rpb24sIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgYWxsSXRlbXMgPSBPYmplY3Qua2V5cyhzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpXG4gICAgICAubWFwKChycykgPT5cbiAgICAgICAgT2JqZWN0LmtleXMoc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzW3JzXS5pdGVtcylcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PiBzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNbcnNdLml0ZW1zW2NsYXNzSWRdIGFzIEl0ZW1bXSlcbiAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgKVxuICAgICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0uaWQpO1xuXG4gICAgY29uc3QgaW52ZXJ0ZWRJdGVtc0lkID0gYWxsSXRlbXMuZmlsdGVyKChpdGVtSWQpID0+ICFzdGF0ZS5yZXN1bHRzLnNlbGVjdGVkSXRlbXMuaW5jbHVkZXMoaXRlbUlkKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICByZXN1bHRzOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgIHNlbGVjdGVkSXRlbXM6IFsuLi5uZXcgU2V0KGludmVydGVkSXRlbXNJZCldXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0TWFueSwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIHNlbGVjdGVkSXRlbXM6IFsuLi5uZXcgU2V0KGFjdGlvbi5pZHMpXVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0c0xpc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbGlzdDogYWN0aW9uLm1hbmlmZXN0c1xuICAgIH0sXG4gICAgcHJlc2VudGF0aW9uOiB7XG4gICAgICAuLi5zdGF0ZS5wcmVzZW50YXRpb24sXG4gICAgICBjdXJyZW50OiBzdGF0ZS5wcmVzZW50YXRpb24uY3VycmVudFxuICAgICAgICA/IGFjdGlvbi5tYW5pZmVzdHMuZmluZCgobWFuaWZlc3QpID0+IG1hbmlmZXN0LmlkID09PSBzdGF0ZS5wcmVzZW50YXRpb24uY3VycmVudD8uaWQpXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlU3RhdGljTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgc3RhdGljTWFuaWZlc3Q6IGFjdGlvbi5zdGF0aWNNYW5pZmVzdFxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmxvYWRBbmRBY3RpdmF0ZU1hbmlmZXN0LCBEYXNoYm9hcmRBY3Rpb25zLmxvYWRNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICB3aW5kb3dzOiBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MubWFwKCh3aW5NYW5pZmVzdCkgPT4gKHsgLi4ud2luTWFuaWZlc3QsIHdpZGdldHM6IFtdIH0pKV1cbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5jbGVhck1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgd2luZG93czogWy4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzLm1hcCgocHJldmlvdXMpID0+ICh7IC4uLnByZXZpb3VzLCB3aWRnZXRzOiBbXSB9KSldLFxuICAgICAgICBmaWx0ZXJzOiBbXVxuICAgICAgfSxcbiAgICAgIGN1cnJlbnRJZDogJydcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVPYmplY3RzRGV0YWlscywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIG9iamVjdERldGFpbHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5vYmplY3REZXRhaWxzLFxuICAgICAgICAuLi5hY3Rpb24ubGlzdFxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmV4cGxvcmUsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgY3VycmVudEl0ZW0gPSBPYmplY3Qua2V5cyhzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpXG4gICAgICAubWFwKChrZXkpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1trZXldLml0ZW1zKVxuICAgICAgICAgIC5tYXAoKGtleUNsYXNzKSA9PiBzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNba2V5XS5pdGVtc1trZXlDbGFzc10uZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gYWN0aW9uLmlkKSlcbiAgICAgICAgICAuZmluZCgoaXQpID0+ICEhaXQpXG4gICAgICApXG4gICAgICAuZmluZCgoaXQpID0+ICEhaXQpIGFzIEl0ZW07XG5cbiAgICBjb25zdCBhY3R1YWxXaW5kb3dzID0gc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3M7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBhY3R1YWxXaW5kb3dzLmNvbmNhdCh7XG4gICAgICAgICAgICB3aWRnZXRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgd2lkdGg6IDEyLCBoZWlnaHQ6IDEyIH0sXG4gICAgICAgICAgICAgICAgdHlwZTogJ2dyYXBoJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICBkYXRhc291cmNlOiBFWFBMT1JFX05BTUVEX1FVRVJZX0lEXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICByZXN1bHRTZXRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzLFxuICAgICAgICAgIFtFWFBMT1JFX05BTUVEX1FVRVJZX0lEXToge1xuICAgICAgICAgICAgaXRlbXM6IHsgW2N1cnJlbnRJdGVtLm9DbGFzc106IFtjdXJyZW50SXRlbV0gfSxcbiAgICAgICAgICAgIHJlbGF0aW9uczogW10gYXMgUmVsYXRpb25bXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldFJlZnJlc2hSYXRlLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHJlZnJlc2hSYXRlczogeyAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QucmVmcmVzaFJhdGVzLCBbYWN0aW9uLmlkXTogYWN0aW9uLnJhdGUgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuYWRkUmVsYXRpb25zVG9SZXN1bHRTZXRzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWRSZXN1bHRTZXRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpKTtcbiAgICBhY3Rpb24ucmVsYXRpb25zLmZvckVhY2goKHJlbGF0aW9uKSA9PiB7XG4gICAgICBPYmplY3Qua2V5cyh1cGRhdGVkUmVzdWx0U2V0cykuZm9yRWFjaCgocnNJZCkgPT4ge1xuICAgICAgICBjb25zdCBpc0NvbmNlcm5lZCA9IE9iamVjdC5rZXlzKHVwZGF0ZWRSZXN1bHRTZXRzW3JzSWRdLml0ZW1zKS5tYXAoKGNsYXNzSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFJlc3VsdFNldHNbcnNJZF0uaXRlbXNbY2xhc3NJZF0ubWFwKFxuICAgICAgICAgICAgKGl0ZW06IEl0ZW0pID0+IGl0ZW0uaWQgPT09IHJlbGF0aW9uLnNvdXJjZSB8fCBpdGVtLmlkID09PSByZWxhdGlvbi5kZXN0aW5hdGlvblxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaXNDb25jZXJuZWQpIHtcbiAgICAgICAgICB1cGRhdGVkUmVzdWx0U2V0c1tyc0lkXS5yZWxhdGlvbnMucHVzaChyZWxhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgcmVzdWx0U2V0czogdXBkYXRlZFJlc3VsdFNldHNcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5hZGRJdGVtVG9SZXN1bHRTZXRzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWRSZXN1bHRTZXRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpKTtcblxuICAgIGlmICghIWFjdGlvbi5yZXN1bHRTZXQpIHtcbiAgICAgIGlmICghdXBkYXRlZFJlc3VsdFNldHNbYWN0aW9uLnJlc3VsdFNldF0uaXRlbXNbYWN0aW9uLml0ZW0ub0NsYXNzXSkge1xuICAgICAgICB1cGRhdGVkUmVzdWx0U2V0c1thY3Rpb24ucmVzdWx0U2V0XS5pdGVtc1thY3Rpb24uaXRlbS5vQ2xhc3NdID0gW2FjdGlvbi5pdGVtXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVwZGF0ZWRSZXN1bHRTZXRzW2FjdGlvbi5yZXN1bHRTZXRdLml0ZW1zW2FjdGlvbi5pdGVtLm9DbGFzc10ucHVzaChhY3Rpb24uaXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICByZXN1bHRTZXRzOiB1cGRhdGVkUmVzdWx0U2V0c1xuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnF1aWNrT3JkZXIsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICBxdWlja09yZGVyOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5xdWlja09yZGVyLFxuICAgICAgICAgIFthY3Rpb24uZGF0YXNvdXJjZUlkXTogYWN0aW9uLmFzYyA/IHsgYXR0cmlidXRlOiBhY3Rpb24uYXR0cmlidXRlLCBhc2M6IGFjdGlvbi5hc2MgfSA6IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0UHJlc2VudGF0aW9uLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHByZXNlbnRhdGlvbjoge1xuICAgICAgICAuLi5zdGF0ZS5wcmVzZW50YXRpb24sXG4gICAgICAgIGN1cnJlbnQ6IGFjdGlvbi5wcmVzZW50YXRpb24sXG4gICAgICAgIHZpZXdNb2RlOiBhY3Rpb24udmlld01vZGUsXG4gICAgICAgIGluaXRpYWw6IGFjdGlvbi5wcmVzZW50YXRpb24gPyBzdGF0ZS5wcmVzZW50YXRpb24uaW5pdGlhbCA6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldEluaXRpYWxQcmVzZW50YXRpb24sIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcHJlc2VudGF0aW9uOiB7XG4gICAgICAgIC4uLnN0YXRlLnByZXNlbnRhdGlvbixcbiAgICAgICAgaW5pdGlhbDogYWN0aW9uLmluaXRpYWxcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZXRHcmlkTGF5b3V0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MgPz8gW10pKTtcbiAgICBpZiAoIW5ld1dpbmRvd3NbbXlSYW5rXSkge1xuICAgICAgbmV3V2luZG93c1tteVJhbmtdID0geyB3aWRnZXRzOiBbXSB9O1xuICAgIH1cbiAgICBpZiAoIW5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkKSB7XG4gICAgICBuZXdXaW5kb3dzW215UmFua10uZ3JpZCA9IHt9O1xuICAgIH1cbiAgICBpZiAoIW5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzKSB7XG4gICAgICBuZXdXaW5kb3dzW215UmFua10ud2lkZ2V0cyA9IFtdO1xuICAgIH1cbiAgICBuZXdXaW5kb3dzW215UmFua10uZ3JpZC5sYXlvdXQgPSBhY3Rpb24ubGF5b3V0O1xuICAgIGlmIChhY3Rpb24ubGF5b3V0ICE9PSBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTCkge1xuICAgICAgLy8gUmVvcmRlciBsYXlvdXRzXG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHJvd3M6IG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkLnJvd3MsXG4gICAgICAgIGNvbHVtbnM6IG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkLmNvbHVtbnNcbiAgICAgIH07XG4gICAgICBjb25zdCBwbGFjZXMgPSBXaWRnZXRQbGFjZW1lbnRVdGlscy5wbGFjZW1lbnRPcHRpb25zKHt9IGFzIFdpZGdldE1hbmlmZXN0LCBhY3Rpb24ubGF5b3V0LCBwYXJhbXMpO1xuXG4gICAgICBuZXdXaW5kb3dzW215UmFua10ud2lkZ2V0cy5mb3JFYWNoKCh3aWRnZXQ6IFdpZGdldE1hbmlmZXN0LCBpZHg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgdGFyZ2V0TGF5b3V0ID0gcGxhY2VzW2lkeF0/LmxheW91dDtcbiAgICAgICAgaWYgKCF0YXJnZXRMYXlvdXQpIHtcbiAgICAgICAgICB0YXJnZXRMYXlvdXQgPSB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0luY29ycmVjdCBwbGFjZW1lbnQgY2FsY3VsYXRpb24nLCBwbGFjZXMsIGlkeCwgd2lkZ2V0LCBhY3Rpb24ubGF5b3V0KTtcbiAgICAgICAgfVxuICAgICAgICB3aWRnZXQubGF5b3V0ID0geyAuLi50YXJnZXRMYXlvdXQgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmNyZWF0ZVRhYiwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG15TGF5b3V0ID0gc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3NbbXlSYW5rXS5ncmlkPy5sYXlvdXQgPz8gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUw7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MpKTtcbiAgICBuZXdXaW5kb3dzLnB1c2goeyBncmlkOiB7IGxheW91dDogbXlMYXlvdXQgfSwgd2lkZ2V0czogW10gfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucmVzdG9yZUluaXRpYWxNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDogSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5wcmVzZW50YXRpb24uaW5pdGlhbCkpXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucHJvcGFnYXRlR3JpZExheW91dCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cykpO1xuICAgIG5ld1dpbmRvd3NbYWN0aW9uLnJhbmtdID0gYWN0aW9uLm1hbmlmZXN0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0RmlsdGVycywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgIGZpbHRlcnM6IGFjdGlvbi5maWx0ZXJzXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRmlsdGVycywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBpc1ByZXNlbnQgPSBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycz8uZmluZCgoZmlsdGVyKSA9PiBmaWx0ZXIuaWQgPT09IGFjdGlvbi5maWx0ZXIuaWQpO1xuICAgIGxldCBmaWx0ZXJzID0gW107XG4gICAgaWYgKGlzUHJlc2VudCkge1xuICAgICAgZmlsdGVycyA9XG4gICAgICAgIHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzPy5tYXAoKGZpbHRlcikgPT4gKGZpbHRlci5pZCA9PT0gYWN0aW9uLmZpbHRlci5pZCA/IGFjdGlvbi5maWx0ZXIgOiBmaWx0ZXIpKSA/P1xuICAgICAgICBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzKSB7XG4gICAgICAgIGZpbHRlcnMgPSBbLi4uKHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzIGFzIEZpbHRlcltdKSwgYWN0aW9uLmZpbHRlcl07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaWx0ZXJzID0gW2FjdGlvbi5maWx0ZXJdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5yZW1vdmVGaWx0ZXIsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICBmaWx0ZXJzOiBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycz8uZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5pZCAhPT0gYWN0aW9uLmlkKVxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnJlbW92ZUZpbHRlcnMsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgZmlsdGVyczogW11cbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVGaWx0ZXJWYWx1ZSwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycyA/PyBbXSkpIGFzIEZpbHRlcltdO1xuXG4gICAgY29uc3QgZmlsdGVyVG9VcGRhdGUgPSBmaWx0ZXJzLmZpbmQoKGZpbHRlcikgPT4gZmlsdGVyLmlkID09PSBhY3Rpb24uaWQpO1xuICAgIGlmIChmaWx0ZXJUb1VwZGF0ZSkge1xuICAgICAgaWYgKCFhY3Rpb24udmFsdWUpIHtcbiAgICAgICAgZGVsZXRlIGZpbHRlclRvVXBkYXRlLnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmlsdGVyVG9VcGRhdGUudmFsdWUgPSBhY3Rpb24udmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgZmlsdGVyc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuZ2V0V21zRmVhdHVyZXMsIERhc2hib2FyZEFjdGlvbnMucmVzZXRXbXNGZWF0dXJlcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgd21zRmVhdHVyZXM6IFtdXG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5hZGRXbXNGZWF0dXJlcywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBhbGxGZWF0dXJlcyA9IFsuLi5zdGF0ZS53bXNGZWF0dXJlcywgLi4uYWN0aW9uLmZlYXR1cmVzXTtcbiAgICBjb25zdCBkZUR1cGVkSWRzID0gWy4uLm5ldyBTZXQoYWxsRmVhdHVyZXMubWFwKChmZWF0KSA9PiBmZWF0LmlkKSldO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHdtc0ZlYXR1cmVzOiBkZUR1cGVkSWRzLm1hcCgoaWQpID0+IGFsbEZlYXR1cmVzLmZpbmQoKGZlYXQpID0+IGZlYXQuaWQgPT09IGlkKSlcbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5mZXRjaFN0YXRpY01hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIGxvYWRpbmc6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5lbmRMb2FkaW5nLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGlzcGxheU9wdGlvbnMsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheTogYWN0aW9uLmN1c3RvbURpc3BsYXkgPyBhY3Rpb24uY3VzdG9tRGlzcGxheSA6IGdldERpc3BsYXlPcHRpb25zKGFjdGlvbi5tb2RlKVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZUNhcGFiaWxpdHksIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgY2FwYWJpbGl0aWVzOiB7XG4gICAgICAgIC4uLnN0YXRlLmNhcGFiaWxpdGllcyxcbiAgICAgICAgW2FjdGlvbi51cmxdOiBhY3Rpb24uY2FwYWJpbGl0eVxuICAgICAgfVxuICAgIH07XG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZGFzaGJvYXJkUmVkdWNlcihzdGF0ZTogRGFzaGJvYXJkU3RhdGUsIGFjdGlvbjogQWN0aW9uKSB7XG4gIHJldHVybiBpbnRlcm5hbFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG59XG4iXX0=
@@ -1,7 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { mergeMap, of } from 'rxjs';
3
3
  import { catchError, map, withLatestFrom } from 'rxjs/operators';
4
- import { v4 as uuidv4 } from 'uuid';
5
4
  import { ConfigSelectors } from '../../core/store/config/config.selectors';
6
5
  import { ManifestUtils } from './manifest-utils.class';
7
6
  import { DashboardSelectors } from './dashboard.selectors';
@@ -51,7 +50,7 @@ export class ManifestService {
51
50
  }
52
51
  save(name, manifest, visibility, id, description, image, cover) {
53
52
  return this.store.select(ConfigSelectors.refUrl).pipe(mergeMap((url) => this.httpClient.post(encodeURI(`${url}/users/me/dashboards`), {
54
- id: id === undefined || id.length === 0 ? uuidv4() : id,
53
+ id,
55
54
  name,
56
55
  description,
57
56
  manifest,
@@ -100,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
100
99
  providedIn: 'root'
101
100
  }]
102
101
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Store }, { type: i3.PrySnackbarService }, { type: i4.PryI18nService }]; } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvc3RvcmUvbWFuaWZlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQUszRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNVLFVBQXNCLEVBQ3RCLEtBQWlCLEVBQ2pCLFFBQTRCLEVBQzVCLGdCQUFnQztRQUhoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQjtJQUN2QyxDQUFDO0lBRUosSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDbkQsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBd0IsU0FBUyxDQUFDLEdBQUcsR0FBRyxzQkFBc0Is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QUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUNqQixTQUFTLENBQUMsR0FBRyxHQUFHLDJCQUEyQixjQUFjLGdCQUFnQixVQUFVLEVBQUUsQ0FBQyxFQUN0RixFQUFFLEtBQUssRUFBRSxDQUNWLENBQ0YsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWMsQ0FBQyxjQUFzQixFQUFFLFVBQWtCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQzthQUM5QixJQUFJLENBQ0gsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDZixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDcEIsU0FBUyxDQUFDLEdBQUcsR0FBRywyQkFBMkIsY0FBYyxnQkFBZ0IsVUFBVSxFQUFFLENBQUMsQ0FDdkYsQ0FDRixDQUNGLENBQUM7SUFDTixDQUFDOzhHQTNIVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IG1lcmdlTWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgUHJ5VmlzaWJpbGl0eSB9IGZyb20gJy4uLy4uL2NvcmUvY29tcG9uZW50cy9zaGFyZS9zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBQcnlTbmFja2JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcnlJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2xvYmFsTWFuaWZlc3QsIE1hbmlmZXN0RGVzY3JpcHRpb24gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9jb3JlL3N0b3JlL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcbmltcG9ydCB7IE1hbmlmZXN0VXRpbHMgfSBmcm9tICcuL21hbmlmZXN0LXV0aWxzLmNsYXNzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4vZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1hbmlmZXN0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgc25hY2tCYXI6IFByeVNuYWNrYmFyU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge31cblxuICBsaXN0KCk6IE9ic2VydmFibGU8TWFuaWZlc3REZXNjcmlwdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5yZWZVcmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB0aGlzLmh0dHBDbGllbnQuZ2V0PE1hbmlmZXN0RGVzY3JpcHRpb25bXT4oZW5jb2RlVVJJKGAke3VybH0vdXNlcnMvbWUvZGFzaGJvYXJkc2ApKSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IuZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIC8vIEEgY2xpZW50LXNpZGUgb3IgbmV0d29yayBlcnJvciBvY2N1cnJlZFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0EgZnJvbnRlbmQgZXJyb3Igb2NjdXJyZWQ6JywgZXJyb3IuZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKHtcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS5tYW5pZmVzdC5nZXQuZXJyb3JGcm9udCcsIHsgbXNnOiBlcnJvci5lcnJvci5tZXNzYWdlIH0pXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVGhlIGJhY2tlbmQgcmV0dXJuZWQgYW4gdW5zdWNjZXNzZnVsIHJlc3BvbnNlIGNvZGUuXG4gICAgICAgICAgaWYgKGVycm9yLmNvZGUgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQmFja2VuZCByZXR1cm5lZCBjb2RlICR7ZXJyb3Iuc3RhdHVzfSwgYm9keSB3YXM6ICR7SlNPTi5zdHJpbmdpZnkoZXJyb3IuZXJyb3IpfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXJyb3IuY29kZSA+PSA0MDApIHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3Blbih7XG4gICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5Lm1hbmlmZXN0LmdldC5lcnJvckJhY2snLCB7XG4gICAgICAgICAgICAgICAgY29kZTogZXJyb3Iuc3RhdHVzXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxHbG9iYWxNYW5pZmVzdD4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5yZWZVcmwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKHVybCkgPT5cbiAgICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0PEdsb2JhbE1hbmlmZXN0PihlbmNvZGVVUkkoYCR7dXJsfS91c2Vycy9tZS9kYXNoYm9hcmRzL2lkLyR7aWR9L21hbmlmZXN0YCkpXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBzYXZlKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBtYW5pZmVzdDogR2xvYmFsTWFuaWZlc3QsXG4gICAgdmlzaWJpbGl0eTogUHJ5VmlzaWJpbGl0eSxcbiAgICBpZD86IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyxcbiAgICBpbWFnZT86IHN0cmluZyxcbiAgICBjb3Zlcj86IGJvb2xlYW5cbiAgKTogT2JzZXJ2YWJsZTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgbWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0IH0+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnJlZlVybCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh1cmwpID0+XG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0PHsgaWQ6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZzsgbmFtZTogc3RyaW5nOyBtYW5pZmVzdDogR2xvYmFsTWFuaWZlc3QgfT4oXG4gICAgICAgICAgZW5jb2RlVVJJKGAke3VybH0vdXNlcnMvbWUvZGFzaGJvYXJkc2ApLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBpZCA9PT0gdW5kZWZpbmVkIHx8IGlkLmxlbmd0aCA9PT0gMCA/IHV1aWR2NCgpIDogaWQsXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgICAgIGltYWdlLFxuICAgICAgICAgICAgdmlzaWJpbGl0eSxcbiAgICAgICAgICAgIGNvdmVyLFxuICAgICAgICAgICAgZGF0YXNvdXJjZTogTWFuaWZlc3RVdGlscy5nZXREYXRhc291cmNlc1VzZWRCeU1hbmlmZXN0KG1hbmlmZXN0KVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5yZWZVcmwpXG4gICAgICAucGlwZShtZXJnZU1hcCgodXJsKSA9PiB0aGlzLmh0dHBDbGllbnQuZGVsZXRlPHZvaWQ+KGVuY29kZVVSSShgJHt1cmx9L3VzZXJzL21lL2Rhc2hib2FyZHMvaWQvJHtpZH1gKSkpKTtcbiAgfVxuXG4gIGRlZmF1bHQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMucmVmVXJsKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLm1hbmlmZXN0c0xpc3QpKSxcbiAgICAgIG1lcmdlTWFwKChbdXJsLCBtYW5pZmVzdHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdHVhbCA9IG1hbmlmZXN0cy5maW5kKChtYW5pZmVzdDogeyBpZDogc3RyaW5nIH0pID0+IG1hbmlmZXN0LmlkID09PSBpZCk7XG4gICAgICAgIGlmICghIWFjdHVhbCAmJiAhYWN0dWFsLmRlZmF1bHQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAucHV0PEFycmF5QnVmZmVyPihlbmNvZGVVUkkoYCR7dXJsfS91c2Vycy9tZS9kYXNoYm9hcmRzL2lkLyR7aWR9L2RlZmF1bHRgKSwge30pXG4gICAgICAgICAgICAucGlwZShtYXAoKCkgPT4gdHJ1ZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5kZWxldGU8QXJyYXlCdWZmZXI+KGVuY29kZVVSSShgJHt1cmx9L3VzZXJzL21lL2Rhc2hib2FyZHMvZGVmYXVsdGApLCB7fSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgoKSA9PiBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhZGRNZXRhZGF0YShwcmVzZW50YXRpb25JZDogc3RyaW5nLCBtZXRhZGF0YUlkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChDb25maWdTZWxlY3RvcnMucmVmVXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCh1cmwpID0+XG4gICAgICAgICAgdGhpcy5odHRwQ2xpZW50LnB1dDx2b2lkPihcbiAgICAgICAgICAgIGVuY29kZVVSSShgJHt1cmx9L3VzZXJzL21lL2Rhc2hib2FyZHMvaWQvJHtwcmVzZW50YXRpb25JZH0vbWV0YWRhdGEvaWQvJHttZXRhZGF0YUlkfWApLFxuICAgICAgICAgICAgeyB2YWx1ZSB9XG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgZGVsZXRlTWV0YWRhdGEocHJlc2VudGF0aW9uSWQ6IHN0cmluZywgbWV0YWRhdGFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnJlZlVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBtZXJnZU1hcCgodXJsKSA9PlxuICAgICAgICAgIHRoaXMuaHR0cENsaWVudC5kZWxldGU8dm9pZD4oXG4gICAgICAgICAgICBlbmNvZGVVUkkoYCR7dXJsfS91c2Vycy9tZS9kYXNoYm9hcmRzL2lkLyR7cHJlc2VudGF0aW9uSWR9L21ldGFkYXRhL2lkLyR7bWV0YWRhdGFJZH1gKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxufVxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvc3RvcmUvbWFuaWZlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQUszRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNVLFVBQXNCLEVBQ3RCLEtBQWlCLEVBQ2pCLFFBQTRCLEVBQzVCLGdCQUFnQztRQUhoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQjtJQUN2QyxDQUFDO0lBRUosSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDbkQsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBd0IsU0FBUyxDQUFDLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsRUFDdEcsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7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Q0YsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELGNBQWMsQ0FBQyxjQUFzQixFQUFFLFVBQWtCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQzthQUM5QixJQUFJLENBQ0gsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDZixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDcEIsU0FBUyxDQUFDLEdBQUcsR0FBRywyQkFBMkIsY0FBYyxnQkFBZ0IsVUFBVSxFQUFFLENBQUMsQ0FDdkYsQ0FDRixDQUNGLENBQUM7SUFDTixDQUFDOzhHQTNIVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IG1lcmdlTWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByeVZpc2liaWxpdHkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgUHJ5U25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IEdsb2JhbE1hbmlmZXN0LCBNYW5pZmVzdERlc2NyaXB0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vY29yZS9zdG9yZS9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBNYW5pZmVzdFV0aWxzIH0gZnJvbSAnLi9tYW5pZmVzdC11dGlscy5jbGFzcyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNYW5pZmVzdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBQcnlTbmFja2JhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBQcnlJMThuU2VydmljZVxuICApIHt9XG5cbiAgbGlzdCgpOiBPYnNlcnZhYmxlPE1hbmlmZXN0RGVzY3JpcHRpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMucmVmVXJsKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHVybCkgPT4gdGhpcy5odHRwQ2xpZW50LmdldDxNYW5pZmVzdERlc2NyaXB0aW9uW10+KGVuY29kZVVSSShgJHt1cmx9L3VzZXJzL21lL2Rhc2hib2FyZHNgKSkpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAvLyBBIGNsaWVudC1zaWRlIG9yIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWRcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdBIGZyb250ZW5kIGVycm9yIG9jY3VycmVkOicsIGVycm9yLmVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgIHRoaXMuc25hY2tCYXIub3Blbih7XG4gICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0BwcnkubWFuaWZlc3QuZ2V0LmVycm9yRnJvbnQnLCB7IG1zZzogZXJyb3IuZXJyb3IubWVzc2FnZSB9KVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoZSBiYWNrZW5kIHJldHVybmVkIGFuIHVuc3VjY2Vzc2Z1bCByZXNwb25zZSBjb2RlLlxuICAgICAgICAgIGlmIChlcnJvci5jb2RlICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEJhY2tlbmQgcmV0dXJuZWQgY29kZSAke2Vycm9yLnN0YXR1c30sIGJvZHkgd2FzOiAke0pTT04uc3RyaW5naWZ5KGVycm9yLmVycm9yKX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVycm9yLmNvZGUgPj0gNDAwKSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oe1xuICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS5tYW5pZmVzdC5nZXQuZXJyb3JCYWNrJywge1xuICAgICAgICAgICAgICAgIGNvZGU6IGVycm9yLnN0YXR1c1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8R2xvYmFsTWFuaWZlc3Q+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChDb25maWdTZWxlY3RvcnMucmVmVXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCh1cmwpID0+XG4gICAgICAgICAgdGhpcy5odHRwQ2xpZW50LmdldDxHbG9iYWxNYW5pZmVzdD4oZW5jb2RlVVJJKGAke3VybH0vdXNlcnMvbWUvZGFzaGJvYXJkcy9pZC8ke2lkfS9tYW5pZmVzdGApKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgc2F2ZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgbWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0LFxuICAgIHZpc2liaWxpdHk6IFByeVZpc2liaWxpdHksXG4gICAgaWQ6IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyxcbiAgICBpbWFnZT86IHN0cmluZyxcbiAgICBjb3Zlcj86IGJvb2xlYW5cbiAgKTogT2JzZXJ2YWJsZTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgbWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0IH0+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnJlZlVybCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh1cmwpID0+XG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0PHsgaWQ6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZzsgbmFtZTogc3RyaW5nOyBtYW5pZmVzdDogR2xvYmFsTWFuaWZlc3QgfT4oXG4gICAgICAgICAgZW5jb2RlVVJJKGAke3VybH0vdXNlcnMvbWUvZGFzaGJvYXJkc2ApLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgICAgICBpbWFnZSxcbiAgICAgICAgICAgIHZpc2liaWxpdHksXG4gICAgICAgICAgICBjb3ZlcixcbiAgICAgICAgICAgIGRhdGFzb3VyY2U6IE1hbmlmZXN0VXRpbHMuZ2V0RGF0YXNvdXJjZXNVc2VkQnlNYW5pZmVzdChtYW5pZmVzdClcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChDb25maWdTZWxlY3RvcnMucmVmVXJsKVxuICAgICAgLnBpcGUobWVyZ2VNYXAoKHVybCkgPT4gdGhpcy5odHRwQ2xpZW50LmRlbGV0ZTx2b2lkPihlbmNvZGVVUkkoYCR7dXJsfS91c2Vycy9tZS9kYXNoYm9hcmRzL2lkLyR7aWR9YCkpKSk7XG4gIH1cblxuICBkZWZhdWx0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnJlZlVybCkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5tYW5pZmVzdHNMaXN0KSksXG4gICAgICBtZXJnZU1hcCgoW3VybCwgbWFuaWZlc3RzXSkgPT4ge1xuICAgICAgICBjb25zdCBhY3R1YWwgPSBtYW5pZmVzdHMuZmluZCgobWFuaWZlc3Q6IHsgaWQ6IHN0cmluZyB9KSA9PiBtYW5pZmVzdC5pZCA9PT0gaWQpO1xuICAgICAgICBpZiAoISFhY3R1YWwgJiYgIWFjdHVhbC5kZWZhdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnB1dDxBcnJheUJ1ZmZlcj4oZW5jb2RlVVJJKGAke3VybH0vdXNlcnMvbWUvZGFzaGJvYXJkcy9pZC8ke2lkfS9kZWZhdWx0YCksIHt9KVxuICAgICAgICAgICAgLnBpcGUobWFwKCgpID0+IHRydWUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAuZGVsZXRlPEFycmF5QnVmZmVyPihlbmNvZGVVUkkoYCR7dXJsfS91c2Vycy9tZS9kYXNoYm9hcmRzL2RlZmF1bHRgKSwge30pXG4gICAgICAgICAgICAucGlwZShtYXAoKCkgPT4gZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYWRkTWV0YWRhdGEocHJlc2VudGF0aW9uSWQ6IHN0cmluZywgbWV0YWRhdGFJZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnJlZlVybClcbiAgICAgIC5waXBlKFxuICAgICAgICBtZXJnZU1hcCgodXJsKSA9PlxuICAgICAgICAgIHRoaXMuaHR0cENsaWVudC5wdXQ8dm9pZD4oXG4gICAgICAgICAgICBlbmNvZGVVUkkoYCR7dXJsfS91c2Vycy9tZS9kYXNoYm9hcmRzL2lkLyR7cHJlc2VudGF0aW9uSWR9L21ldGFkYXRhL2lkLyR7bWV0YWRhdGFJZH1gKSxcbiAgICAgICAgICAgIHsgdmFsdWUgfVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxuXG4gIGRlbGV0ZU1ldGFkYXRhKHByZXNlbnRhdGlvbklkOiBzdHJpbmcsIG1ldGFkYXRhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5yZWZVcmwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKHVybCkgPT5cbiAgICAgICAgICB0aGlzLmh0dHBDbGllbnQuZGVsZXRlPHZvaWQ+KFxuICAgICAgICAgICAgZW5jb2RlVVJJKGAke3VybH0vdXNlcnMvbWUvZGFzaGJvYXJkcy9pZC8ke3ByZXNlbnRhdGlvbklkfS9tZXRhZGF0YS9pZC8ke21ldGFkYXRhSWR9YClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -18,14 +18,14 @@ export class NotificationEffects {
18
18
  .pipe(map(() => NotificationActions.deleteSuccess({ id: action.id }))))));
19
19
  this.deleteAllNotifications$ = createEffect(() => this.actions$.pipe(ofType(NotificationActions.deleteAll), mergeMap((action) => this.notificationService.deleteAllNotifications().pipe(map(() => NotificationActions.deleteAllSuccess())))));
20
20
  wsService.messages$('notification').subscribe((msg) => {
21
- this.store.dispatch(NotificationActions.add({
21
+ setTimeout(() => this.store.dispatch(NotificationActions.add({
22
22
  notification: {
23
23
  text: msg.payload.text,
24
24
  link: msg.payload.link,
25
25
  creationDate: msg.payload.creationDate,
26
26
  id: msg.id
27
27
  }
28
- }));
28
+ })), 1);
29
29
  });
30
30
  }
31
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NotificationEffects, deps: [{ token: i1.Actions }, { token: i2.WebsocketService }, { token: i3.Store }, { token: i4.NotificationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -34,4 +34,4 @@ export class NotificationEffects {
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NotificationEffects, decorators: [{
35
35
  type: Injectable
36
36
  }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.WebsocketService }, { type: i3.Store }, { type: i4.NotificationService }]; } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9ub3RpZmljYXRpb24vc3RvcmUvbm90aWZpY2F0aW9uLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBSTdELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDVSxRQUFpQixFQUNqQixTQUEyQixFQUMzQixLQUFZLEVBQ1osbUJBQXdDO1FBSHhDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFnQmxELHdCQUFtQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFDbEMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLG1CQUFtQjthQUNyQixrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDekUsQ0FDRixDQUNGLENBQUM7UUFFRiw0QkFBdUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEVBQ3JDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQzFHLENBQ0YsQ0FDRixDQUFDO1FBaENBLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBYyxFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztnQkFDdEIsWUFBWSxFQUFFO29CQUNaLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUk7b0JBQ3RCLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUk7b0JBQ3RCLFlBQVksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVk7b0JBQ3RDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtpQkFDWDthQUNGLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQW5CVSxtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFdlYnNvY2tldFNlcnZpY2UsIHdzTWVzc2FnZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25BY3Rpb25zIH0gZnJvbSAnLi9ub3RpZmljYXRpb24uYWN0aW9ucyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25FZmZlY3RzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIHdzU2VydmljZTogV2Vic29ja2V0U2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgd3NTZXJ2aWNlLm1lc3NhZ2VzJCgnbm90aWZpY2F0aW9uJykuc3Vic2NyaWJlKChtc2c6IHdzTWVzc2FnZSkgPT4ge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgTm90aWZpY2F0aW9uQWN0aW9ucy5hZGQoe1xuICAgICAgICAgIG5vdGlmaWNhdGlvbjoge1xuICAgICAgICAgICAgdGV4dDogbXNnLnBheWxvYWQudGV4dCxcbiAgICAgICAgICAgIGxpbms6IG1zZy5wYXlsb2FkLmxpbmssXG4gICAgICAgICAgICBjcmVhdGlvbkRhdGU6IG1zZy5wYXlsb2FkLmNyZWF0aW9uRGF0ZSxcbiAgICAgICAgICAgIGlkOiBtc2cuaWRcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlTm90aWZpY2F0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShOb3RpZmljYXRpb25BY3Rpb25zLmRlbGV0ZSksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2VcbiAgICAgICAgICAuZGVsZXRlTm90aWZpY2F0aW9uKGFjdGlvbi5pZClcbiAgICAgICAgICAucGlwZShtYXAoKCkgPT4gTm90aWZpY2F0aW9uQWN0aW9ucy5kZWxldGVTdWNjZXNzKHsgaWQ6IGFjdGlvbi5pZCB9KSkpXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGRlbGV0ZUFsbE5vdGlmaWNhdGlvbnMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKE5vdGlmaWNhdGlvbkFjdGlvbnMuZGVsZXRlQWxsKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5kZWxldGVBbGxOb3RpZmljYXRpb25zKCkucGlwZShtYXAoKCkgPT4gTm90aWZpY2F0aW9uQWN0aW9ucy5kZWxldGVBbGxTdWNjZXNzKCkpKVxuICAgICAgKVxuICAgIClcbiAgKTtcbn1cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9ub3RpZmljYXRpb24vc3RvcmUvbm90aWZpY2F0aW9uLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBSTdELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDVSxRQUFpQixFQUNqQixTQUEyQixFQUMzQixLQUFZLEVBQ1osbUJBQXdDO1FBSHhDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFvQmxELHdCQUFtQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFDbEMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLG1CQUFtQjthQUNyQixrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDekUsQ0FDRixDQUNGLENBQUM7UUFFRiw0QkFBdUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEVBQ3JDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQzFHLENBQ0YsQ0FDRixDQUFDO1FBcENBLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBYyxFQUFFLEVBQUU7WUFDL0QsVUFBVSxDQUNSLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixtQkFBbUIsQ0FBQyxHQUFHLENBQUM7Z0JBQ3RCLFlBQVksRUFBRTtvQkFDWixJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJO29CQUN0QixJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJO29CQUN0QixZQUFZLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZO29CQUN0QyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7aUJBQ1g7YUFDRixDQUFDLENBQ0gsRUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F2QlUsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBXZWJzb2NrZXRTZXJ2aWNlLCB3c01lc3NhZ2UgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uQWN0aW9ucyB9IGZyb20gJy4vbm90aWZpY2F0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uRWZmZWN0cyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSB3c1NlcnZpY2U6IFdlYnNvY2tldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlXG4gICkge1xuICAgIHdzU2VydmljZS5tZXNzYWdlcyQoJ25vdGlmaWNhdGlvbicpLnN1YnNjcmliZSgobXNnOiB3c01lc3NhZ2UpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgIE5vdGlmaWNhdGlvbkFjdGlvbnMuYWRkKHtcbiAgICAgICAgICAgICAgbm90aWZpY2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogbXNnLnBheWxvYWQudGV4dCxcbiAgICAgICAgICAgICAgICBsaW5rOiBtc2cucGF5bG9hZC5saW5rLFxuICAgICAgICAgICAgICAgIGNyZWF0aW9uRGF0ZTogbXNnLnBheWxvYWQuY3JlYXRpb25EYXRlLFxuICAgICAgICAgICAgICAgIGlkOiBtc2cuaWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLFxuICAgICAgICAxXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlTm90aWZpY2F0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShOb3RpZmljYXRpb25BY3Rpb25zLmRlbGV0ZSksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2VcbiAgICAgICAgICAuZGVsZXRlTm90aWZpY2F0aW9uKGFjdGlvbi5pZClcbiAgICAgICAgICAucGlwZShtYXAoKCkgPT4gTm90aWZpY2F0aW9uQWN0aW9ucy5kZWxldGVTdWNjZXNzKHsgaWQ6IGFjdGlvbi5pZCB9KSkpXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGRlbGV0ZUFsbE5vdGlmaWNhdGlvbnMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKE5vdGlmaWNhdGlvbkFjdGlvbnMuZGVsZXRlQWxsKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5kZWxldGVBbGxOb3RpZmljYXRpb25zKCkucGlwZShtYXAoKCkgPT4gTm90aWZpY2F0aW9uQWN0aW9ucy5kZWxldGVBbGxTdWNjZXNzKCkpKVxuICAgICAgKVxuICAgIClcbiAgKTtcbn1cbiJdfQ==