@igo2/geo 16.0.0-rc.1 → 16.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +7 -7
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +7 -7
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +3 -3
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +6 -6
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +4 -4
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +2 -2
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +13 -13
  9. package/esm2022/lib/catalog/catalog.module.mjs +3 -3
  10. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
  11. package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
  12. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  13. package/esm2022/lib/catalog/shared/catalog.service.mjs +7 -8
  14. package/esm2022/lib/catalog/shared/catalogs.mjs +1 -1
  15. package/esm2022/lib/datasource/datasource.module.mjs +1 -1
  16. package/esm2022/lib/datasource/shared/capabilities.service.mjs +10 -10
  17. package/esm2022/lib/datasource/shared/datasource.service.mjs +9 -9
  18. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +2 -2
  21. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +2 -2
  22. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  23. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +2 -2
  24. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  25. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
  26. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  27. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +2 -2
  28. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  29. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +2 -2
  30. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +4 -4
  31. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +2 -2
  32. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  33. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  34. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  35. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +4 -19
  36. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +5 -5
  37. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  38. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +5 -5
  39. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +7 -7
  40. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  41. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  42. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +2 -2
  43. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +2 -2
  44. package/esm2022/lib/datasource/utils/tilegrid.mjs +3 -3
  45. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +3 -3
  46. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +6 -6
  47. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +4 -4
  48. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  49. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +4 -4
  50. package/esm2022/lib/directions/directions.component.mjs +9 -9
  51. package/esm2022/lib/directions/directions.module.mjs +7 -7
  52. package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
  53. package/esm2022/lib/directions/shared/directions.service.mjs +10 -11
  54. package/esm2022/lib/directions/shared/directions.utils.mjs +7 -7
  55. package/esm2022/lib/directions/shared/store.mjs +1 -1
  56. package/esm2022/lib/download/download-button/download-button.component.mjs +2 -2
  57. package/esm2022/lib/download/download.module.mjs +2 -2
  58. package/esm2022/lib/download/shared/download.service.mjs +3 -3
  59. package/esm2022/lib/draw/draw/draw-popup.component.mjs +8 -8
  60. package/esm2022/lib/draw/draw/draw.component.mjs +29 -29
  61. package/esm2022/lib/draw/draw/draw.module.mjs +15 -15
  62. package/esm2022/lib/draw/drawingTool.module.mjs +1 -1
  63. package/esm2022/lib/draw/shared/draw-icon.service.mjs +1 -1
  64. package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
  65. package/esm2022/lib/draw/shared/draw.utils.mjs +6 -6
  66. package/esm2022/lib/environment/environment.interface.mjs +2 -0
  67. package/esm2022/lib/environment/index.mjs +2 -0
  68. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +9 -9
  69. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +3 -3
  70. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +3 -3
  71. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +3 -3
  72. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +2 -2
  73. package/esm2022/lib/feature/feature.module.mjs +2 -2
  74. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  75. package/esm2022/lib/feature/shared/feature.utils.mjs +7 -7
  76. package/esm2022/lib/feature/shared/store.mjs +3 -3
  77. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +4 -4
  78. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +10 -22
  79. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +5 -2
  80. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +1 -1
  81. package/esm2022/lib/feature/shared/strategies/loading.mjs +1 -1
  82. package/esm2022/lib/feature/shared/strategies/search.mjs +2 -2
  83. package/esm2022/lib/feature/shared/strategies/selection.mjs +5 -5
  84. package/esm2022/lib/feature/shared/strategies.utils.mjs +2 -2
  85. package/esm2022/lib/filter/filter.module.mjs +21 -21
  86. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
  87. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +3 -3
  88. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +7 -7
  89. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +6 -6
  90. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +3 -3
  91. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +3 -3
  92. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +4 -4
  93. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
  94. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +2 -2
  95. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
  96. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
  97. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  98. package/esm2022/lib/filter/shared/ogc-filter.mjs +5 -5
  99. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +2 -2
  100. package/esm2022/lib/filter/shared/time-filter.interface.mjs +1 -1
  101. package/esm2022/lib/filter/shared/time-filter.service.mjs +2 -2
  102. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +15 -15
  103. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +7 -7
  104. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +3 -3
  105. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  106. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +3 -3
  107. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  108. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
  109. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  110. package/esm2022/lib/geo.module.mjs +4 -4
  111. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +7 -7
  112. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +1 -1
  113. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +3 -3
  114. package/esm2022/lib/geometry/geometry.module.mjs +2 -2
  115. package/esm2022/lib/geometry/shared/controls/draw.mjs +6 -6
  116. package/esm2022/lib/geometry/shared/controls/modify.mjs +8 -8
  117. package/esm2022/lib/geometry/shared/controls/slice.mjs +2 -2
  118. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  119. package/esm2022/lib/geometry/shared/geometry.utils.mjs +5 -5
  120. package/esm2022/lib/import-export/export-button/export-button.component.mjs +3 -3
  121. package/esm2022/lib/import-export/import-export/import-export.component.mjs +37 -37
  122. package/esm2022/lib/import-export/import-export.module.mjs +3 -3
  123. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +10 -21
  124. package/esm2022/lib/import-export/shared/export.interface.mjs +1 -1
  125. package/esm2022/lib/import-export/shared/export.service.mjs +4 -4
  126. package/esm2022/lib/import-export/shared/export.utils.mjs +2 -2
  127. package/esm2022/lib/import-export/shared/import.interface.mjs +1 -1
  128. package/esm2022/lib/import-export/shared/import.service.mjs +4 -4
  129. package/esm2022/lib/import-export/shared/import.utils.mjs +5 -5
  130. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +3 -3
  131. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +6 -6
  132. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +3 -3
  133. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +2 -2
  134. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +3 -3
  135. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +4 -4
  136. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +8 -8
  137. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +2 -2
  138. package/esm2022/lib/layer/layer.module.mjs +9 -9
  139. package/esm2022/lib/layer/shared/layer.service.mjs +16 -16
  140. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  141. package/esm2022/lib/layer/shared/layers/any-layer.mjs +1 -1
  142. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  143. package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
  144. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -1
  145. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  146. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  147. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
  148. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  149. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +44 -33
  150. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  151. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
  152. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
  153. package/esm2022/lib/layer/utils/image-watcher.mjs +2 -2
  154. package/esm2022/lib/layer/utils/tile-watcher.mjs +2 -2
  155. package/esm2022/lib/layer/utils/vector-watcher.mjs +2 -2
  156. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +2 -2
  157. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +4 -4
  158. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +2 -2
  159. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +2 -2
  160. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +7 -9
  161. package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +2 -0
  162. package/esm2022/lib/map/home-extent-button/index.mjs +2 -1
  163. package/esm2022/lib/map/map-browser/map-browser.component.mjs +2 -2
  164. package/esm2022/lib/map/map-center/map-center.component.mjs +1 -1
  165. package/esm2022/lib/map/map.module.mjs +14 -14
  166. package/esm2022/lib/map/offline-button/offline-button.component.mjs +1 -1
  167. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +2 -2
  168. package/esm2022/lib/map/shared/controllers/controller.mjs +1 -1
  169. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +1 -1
  170. package/esm2022/lib/map/shared/controllers/geolocation.mjs +8 -8
  171. package/esm2022/lib/map/shared/controllers/view.mjs +3 -3
  172. package/esm2022/lib/map/shared/hover-feature.directive.mjs +15 -15
  173. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +4 -4
  174. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +4 -4
  175. package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
  176. package/esm2022/lib/map/shared/map.mjs +9 -6
  177. package/esm2022/lib/map/shared/map.utils.mjs +3 -3
  178. package/esm2022/lib/map/shared/mapOffline.directive.mjs +3 -3
  179. package/esm2022/lib/map/shared/projection.interfaces.mjs +1 -1
  180. package/esm2022/lib/map/shared/projection.service.mjs +3 -3
  181. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +2 -2
  182. package/esm2022/lib/map/utils/layer-watcher.mjs +2 -2
  183. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +3 -3
  184. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +1 -1
  185. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +2 -2
  186. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
  187. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +3 -3
  188. package/esm2022/lib/measure/measurer/measurer.component.mjs +12 -12
  189. package/esm2022/lib/measure/measurer/measurer.module.mjs +6 -6
  190. package/esm2022/lib/measure/shared/measure.utils.mjs +7 -7
  191. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
  192. package/esm2022/lib/metadata/metadata.module.mjs +4 -4
  193. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +5 -5
  194. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +3 -3
  195. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +2 -2
  196. package/esm2022/lib/offline/shared/geo-network.service.mjs +1 -8
  197. package/esm2022/lib/overlay/overlay.module.mjs +1 -1
  198. package/esm2022/lib/overlay/shared/overlay.directive.mjs +1 -1
  199. package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
  200. package/esm2022/lib/overlay/shared/overlay.service.mjs +1 -1
  201. package/esm2022/lib/print/print/print.component.mjs +2 -2
  202. package/esm2022/lib/print/print-form/print-form.component.mjs +3 -3
  203. package/esm2022/lib/print/print.module.mjs +4 -4
  204. package/esm2022/lib/print/shared/print.interface.mjs +1 -1
  205. package/esm2022/lib/print/shared/print.service.mjs +9 -9
  206. package/esm2022/lib/query/query.module.mjs +3 -3
  207. package/esm2022/lib/query/shared/query-search-source.mjs +2 -2
  208. package/esm2022/lib/query/shared/query-search-source.providers.mjs +1 -1
  209. package/esm2022/lib/query/shared/query.directive.mjs +7 -7
  210. package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
  211. package/esm2022/lib/query/shared/query.service.mjs +10 -10
  212. package/esm2022/lib/search/search-bar/search-bar.component.mjs +5 -5
  213. package/esm2022/lib/search/search-bar/search-bar.module.mjs +2 -2
  214. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +2 -2
  215. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +4 -4
  216. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +14 -14
  217. package/esm2022/lib/search/search-results/search-results-item.component.mjs +5 -5
  218. package/esm2022/lib/search/search-results/search-results.component.mjs +7 -7
  219. package/esm2022/lib/search/search-results/search-results.module.mjs +11 -11
  220. package/esm2022/lib/search/search-selector/search-selector.component.mjs +3 -3
  221. package/esm2022/lib/search/search-selector/search-selector.module.mjs +2 -2
  222. package/esm2022/lib/search/search-settings/search-settings.component.mjs +4 -4
  223. package/esm2022/lib/search/search-settings/search-settings.module.mjs +3 -3
  224. package/esm2022/lib/search/search.module.mjs +8 -8
  225. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +14 -14
  226. package/esm2022/lib/search/shared/search-source-service.providers.mjs +2 -2
  227. package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
  228. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  229. package/esm2022/lib/search/shared/search.service.mjs +3 -3
  230. package/esm2022/lib/search/shared/search.utils.mjs +1 -1
  231. package/esm2022/lib/search/shared/sources/cadastre.mjs +7 -7
  232. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +2 -2
  233. package/esm2022/lib/search/shared/sources/coordinates.mjs +11 -11
  234. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +3 -3
  235. package/esm2022/lib/search/shared/sources/icherche.mjs +6 -6
  236. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +3 -3
  237. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  238. package/esm2022/lib/search/shared/sources/ilayer.mjs +8 -8
  239. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +2 -2
  240. package/esm2022/lib/search/shared/sources/nominatim.mjs +7 -7
  241. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +2 -2
  242. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  243. package/esm2022/lib/search/shared/sources/storedqueries.mjs +7 -7
  244. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +2 -2
  245. package/esm2022/lib/search/shared/sources/workspace.mjs +6 -6
  246. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +1 -1
  247. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +2 -2
  248. package/esm2022/lib/style/shared/feature/feature-style.mjs +1 -1
  249. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +2 -2
  250. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +2 -2
  251. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +2 -2
  252. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
  253. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +1 -1
  254. package/esm2022/lib/style/style-list/style-list.module.mjs +2 -2
  255. package/esm2022/lib/style/style-list/style-list.provider.mjs +1 -1
  256. package/esm2022/lib/style/style-list/style-list.service.mjs +3 -3
  257. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +24 -33
  258. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +17 -25
  259. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +2 -2
  260. package/esm2022/lib/style/style-service/draw-style.service.mjs +2 -2
  261. package/esm2022/lib/style/style-service/style.service.mjs +3 -3
  262. package/esm2022/lib/style/style.module.mjs +4 -4
  263. package/esm2022/lib/toast/toast.component.mjs +2 -2
  264. package/esm2022/lib/toast/toast.module.mjs +3 -3
  265. package/esm2022/lib/utils/id-generator.mjs +2 -2
  266. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +1 -1
  267. package/esm2022/lib/wkt/shared/wkt.service.mjs +16 -16
  268. package/esm2022/lib/wkt/wkt.module.mjs +1 -1
  269. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +3 -3
  270. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +2 -2
  271. package/esm2022/lib/workspace/shared/edition-workspace.mjs +10 -15
  272. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +7 -7
  273. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  274. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +6 -6
  275. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  276. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +6 -6
  277. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +5 -5
  278. package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
  279. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  280. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +2 -2
  281. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +7 -7
  282. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +2 -2
  283. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +5 -5
  284. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +2 -2
  285. package/esm2022/lib/workspace/workspace.module.mjs +4 -4
  286. package/esm2022/public_api.mjs +2 -1
  287. package/fesm2022/igo2-geo.mjs +34181 -34233
  288. package/fesm2022/igo2-geo.mjs.map +1 -1
  289. package/geo-theme.scss +23 -21
  290. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +3 -3
  291. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +2 -2
  292. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +3 -3
  293. package/lib/catalog/catalog-browser/catalog-browser.theming.scss +22 -0
  294. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +4 -4
  295. package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
  296. package/lib/catalog/catalog.theming.scss +5 -0
  297. package/lib/catalog/shared/catalog.abstract.d.ts +2 -2
  298. package/lib/catalog/shared/catalog.enum.d.ts +4 -0
  299. package/lib/catalog/shared/catalog.interface.d.ts +10 -5
  300. package/lib/catalog/shared/catalog.service.d.ts +2 -2
  301. package/lib/datasource/shared/capabilities.service.d.ts +2 -2
  302. package/lib/datasource/shared/datasource.service.d.ts +6 -6
  303. package/lib/datasource/shared/datasources/any-datasource.d.ts +11 -11
  304. package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +10 -10
  305. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +2 -2
  306. package/lib/datasource/shared/datasources/carto-datasource.d.ts +1 -1
  307. package/lib/datasource/shared/datasources/cluster-datasource.d.ts +1 -1
  308. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +1 -1
  309. package/lib/datasource/shared/datasources/datasource.d.ts +4 -4
  310. package/lib/datasource/shared/datasources/datasource.interface.d.ts +2 -2
  311. package/lib/datasource/shared/datasources/feature-datasource.d.ts +1 -1
  312. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +2 -2
  313. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +1 -1
  314. package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +1 -1
  315. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +1 -1
  316. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +3 -4
  317. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +2 -2
  318. package/lib/datasource/shared/datasources/wfs.service.d.ts +1 -1
  319. package/lib/datasource/shared/datasources/wms-datasource.d.ts +5 -5
  320. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +2 -2
  321. package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +4 -3
  322. package/lib/datasource/shared/options/options-api.providers.d.ts +1 -1
  323. package/lib/datasource/shared/options/options-api.service.d.ts +1 -1
  324. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +2 -2
  325. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +3 -3
  326. package/lib/directions/directions-sources/directions-source.interface.d.ts +12 -8
  327. package/lib/directions/directions-sources/osrm-directions-source.d.ts +1 -1
  328. package/lib/directions/directions.component.d.ts +3 -3
  329. package/lib/directions/shared/directions.interface.d.ts +1 -1
  330. package/lib/directions/shared/directions.service.d.ts +5 -5
  331. package/lib/directions/shared/directions.utils.d.ts +3 -3
  332. package/lib/draw/draw/draw-popup.component.d.ts +3 -3
  333. package/lib/draw/draw/draw.component.d.ts +12 -12
  334. package/lib/draw/shared/draw-icon.service.d.ts +1 -1
  335. package/lib/draw/shared/draw.interface.d.ts +3 -3
  336. package/lib/draw/shared/draw.utils.d.ts +4 -4
  337. package/lib/environment/environment.interface.d.ts +48 -0
  338. package/lib/environment/index.d.ts +1 -0
  339. package/lib/feature/feature-details/feature-details.component.d.ts +6 -6
  340. package/lib/feature/feature-details/feature-details.directive.d.ts +2 -2
  341. package/lib/feature/feature-form/feature-form.component.d.ts +1 -1
  342. package/lib/feature/shared/feature.interfaces.d.ts +5 -5
  343. package/lib/feature/shared/feature.utils.d.ts +4 -4
  344. package/lib/feature/shared/store.d.ts +1 -1
  345. package/lib/feature/shared/strategies/geo-properties.d.ts +2 -2
  346. package/lib/feature/shared/strategies/in-map-extent.d.ts +1 -1
  347. package/lib/feature/shared/strategies/in-map-resolution.d.ts +1 -1
  348. package/lib/feature/shared/strategies/loading-layer.d.ts +1 -1
  349. package/lib/feature/shared/strategies/search.d.ts +1 -1
  350. package/lib/feature/shared/strategies/selection.d.ts +2 -2
  351. package/lib/feature/shared/strategies.utils.d.ts +1 -1
  352. package/lib/filter/filter.theming.scss +0 -3
  353. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +3 -3
  354. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +5 -5
  355. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
  356. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -1
  357. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
  358. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +2 -2
  359. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
  360. package/lib/filter/shared/ogc-filter.d.ts +5 -4
  361. package/lib/filter/shared/ogc-filter.interface.d.ts +3 -3
  362. package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
  363. package/lib/filter/shared/time-filter.interface.d.ts +1 -1
  364. package/lib/filter/shared/time-filter.service.d.ts +1 -1
  365. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +13 -13
  366. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +6 -6
  367. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -3
  368. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
  369. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +2 -2
  370. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +2 -2
  371. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
  372. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +4 -4
  373. package/lib/geometry/shared/controls/draw.d.ts +4 -4
  374. package/lib/geometry/shared/controls/modify.d.ts +4 -4
  375. package/lib/geometry/shared/controls/slice.d.ts +3 -3
  376. package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
  377. package/lib/geometry/shared/geometry.utils.d.ts +2 -2
  378. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  379. package/lib/import-export/import-export/import-export.component.d.ts +14 -14
  380. package/lib/import-export/shared/drop-geo-file.directive.d.ts +6 -6
  381. package/lib/import-export/shared/export.interface.d.ts +1 -1
  382. package/lib/import-export/shared/export.service.d.ts +2 -2
  383. package/lib/import-export/shared/import.interface.d.ts +1 -0
  384. package/lib/import-export/shared/import.utils.d.ts +3 -3
  385. package/lib/layer/layer-item/layer-item.component.d.ts +2 -2
  386. package/lib/layer/layer-legend/layer-legend.component.d.ts +3 -3
  387. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +2 -2
  388. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
  389. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +2 -2
  390. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +2 -2
  391. package/lib/layer/layer-list/layer-list.component.d.ts +5 -5
  392. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
  393. package/lib/layer/layer.theming.scss +17 -24
  394. package/lib/layer/shared/layer.service.d.ts +5 -5
  395. package/lib/layer/shared/layers/any-layer.d.ts +1 -1
  396. package/lib/layer/shared/layers/any-layer.interface.d.ts +1 -1
  397. package/lib/layer/shared/layers/image-layer.d.ts +5 -5
  398. package/lib/layer/shared/layers/image-layer.interface.d.ts +3 -3
  399. package/lib/layer/shared/layers/layer.d.ts +6 -6
  400. package/lib/layer/shared/layers/layer.interface.d.ts +2 -2
  401. package/lib/layer/shared/layers/tile-layer.d.ts +6 -6
  402. package/lib/layer/shared/layers/tile-layer.interface.d.ts +8 -8
  403. package/lib/layer/shared/layers/vector-layer.d.ts +18 -11
  404. package/lib/layer/shared/layers/vector-layer.interface.d.ts +13 -13
  405. package/lib/layer/shared/layers/vectortile-layer.d.ts +3 -3
  406. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +4 -4
  407. package/lib/layer/utils/image-watcher.d.ts +1 -1
  408. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  409. package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
  410. package/lib/map/home-extent-button/home-extent-button.interface.d.ts +6 -0
  411. package/lib/map/home-extent-button/index.d.ts +1 -0
  412. package/lib/map/map-browser/map-browser.component.d.ts +1 -1
  413. package/lib/map/shared/controllers/controller.d.ts +1 -1
  414. package/lib/map/shared/controllers/geolocation.d.ts +5 -5
  415. package/lib/map/shared/controllers/geolocation.interface.d.ts +8 -0
  416. package/lib/map/shared/controllers/view.d.ts +2 -2
  417. package/lib/map/shared/hover-feature.directive.d.ts +8 -8
  418. package/lib/map/shared/map-pointer-position.directive.d.ts +2 -2
  419. package/lib/map/shared/map.abstract.d.ts +5 -5
  420. package/lib/map/shared/map.d.ts +14 -10
  421. package/lib/map/shared/mapOffline.directive.d.ts +2 -2
  422. package/lib/map/shared/projection.interfaces.d.ts +1 -3
  423. package/lib/map/utils/layer-watcher.d.ts +2 -2
  424. package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
  425. package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
  426. package/lib/measure/measurer/measurer.component.d.ts +5 -5
  427. package/lib/measure/shared/measure.utils.d.ts +5 -5
  428. package/lib/metadata/metadata-button/metadata-button.component.d.ts +1 -1
  429. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +1 -1
  430. package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
  431. package/lib/offline/shared/geo-network.service.d.ts +2 -1
  432. package/lib/overlay/shared/overlay.d.ts +1 -1
  433. package/lib/overlay/shared/overlay.directive.d.ts +2 -2
  434. package/lib/print/print/print.component.d.ts +1 -1
  435. package/lib/print/print-form/print-form.component.d.ts +2 -2
  436. package/lib/print/shared/print.interface.d.ts +1 -1
  437. package/lib/print/shared/print.service.d.ts +2 -2
  438. package/lib/query/shared/query.directive.d.ts +4 -4
  439. package/lib/query/shared/query.interfaces.d.ts +3 -3
  440. package/lib/query/shared/query.service.d.ts +3 -3
  441. package/lib/search/search-bar/search-bar.component.d.ts +5 -5
  442. package/lib/search/search-bar/search-url-param.directive.d.ts +1 -1
  443. package/lib/search/search-results/save-feature-dialog.component.d.ts +3 -3
  444. package/lib/search/search-results/search-results-add-button.component.d.ts +7 -7
  445. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  446. package/lib/search/search-results/search-results.component.d.ts +4 -4
  447. package/lib/search/search-selector/search-selector.component.d.ts +1 -1
  448. package/lib/search/search-settings/search-settings.component.d.ts +2 -2
  449. package/lib/search/shared/search-pointer-summary.directive.d.ts +5 -5
  450. package/lib/search/shared/search-source-service.providers.d.ts +1 -1
  451. package/lib/search/shared/search.interfaces.d.ts +1 -1
  452. package/lib/search/shared/search.service.d.ts +2 -2
  453. package/lib/search/shared/search.utils.d.ts +1 -1
  454. package/lib/search/shared/sources/cadastre.d.ts +1 -1
  455. package/lib/search/shared/sources/cadastre.providers.d.ts +1 -1
  456. package/lib/search/shared/sources/coordinates.d.ts +5 -5
  457. package/lib/search/shared/sources/coordinates.providers.d.ts +2 -2
  458. package/lib/search/shared/sources/icherche.d.ts +4 -4
  459. package/lib/search/shared/sources/icherche.providers.d.ts +2 -2
  460. package/lib/search/shared/sources/ilayer.d.ts +2 -2
  461. package/lib/search/shared/sources/ilayer.interfaces.d.ts +1 -1
  462. package/lib/search/shared/sources/ilayer.providers.d.ts +1 -1
  463. package/lib/search/shared/sources/nominatim.d.ts +1 -1
  464. package/lib/search/shared/sources/nominatim.providers.d.ts +1 -1
  465. package/lib/search/shared/sources/source.d.ts +2 -2
  466. package/lib/search/shared/sources/storedqueries.d.ts +4 -4
  467. package/lib/search/shared/sources/storedqueries.providers.d.ts +1 -1
  468. package/lib/search/shared/sources/workspace.d.ts +1 -1
  469. package/lib/style/shared/feature/feature-style.d.ts +2 -2
  470. package/lib/style/shared/overlay/overlay-style.utils.d.ts +1 -1
  471. package/lib/style/shared/vector/conversion.utils.d.ts +1 -1
  472. package/lib/style/shared/vector/vector-style.interface.d.ts +6 -1
  473. package/lib/style/style-list/style-list.provider.d.ts +1 -1
  474. package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +3 -3
  475. package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +3 -3
  476. package/lib/style/style-service/draw-style.service.d.ts +1 -1
  477. package/lib/style/style-service/style.service.d.ts +3 -3
  478. package/lib/utils/id-generator.d.ts +2 -2
  479. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
  480. package/lib/workspace/shared/edition-workspace.d.ts +7 -9
  481. package/lib/workspace/shared/edition-workspace.service.d.ts +5 -5
  482. package/lib/workspace/shared/feature-workspace.service.d.ts +3 -3
  483. package/lib/workspace/shared/wfs-workspace.service.d.ts +3 -3
  484. package/lib/workspace/shared/wms-workspace.service.d.ts +4 -4
  485. package/lib/workspace/shared/workspace.utils.d.ts +4 -4
  486. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
  487. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +4 -4
  488. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +3 -3
  489. package/locale/en.geo.json +9 -3
  490. package/locale/fr.geo.json +9 -3
  491. package/package.json +4 -4
  492. package/public_api.d.ts +1 -0
  493. package/style/style.css +0 -1
  494. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.theming.scss +0 -15
@@ -1,13 +1,13 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
1
  import { moveItemInArray } from '@angular/cdk/drag-drop';
3
- import * as olProj from 'ol/proj';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { LanguageService } from '@igo2/core';
4
4
  import * as olObservable from 'ol/Observable';
5
+ import * as olProj from 'ol/proj';
5
6
  import pointOnFeature from '@turf/point-on-feature';
6
- import { computeRelativePosition, removeStopFromStore, updateStoreSorting } from '../shared/directions.utils';
7
- import { StopsFeatureStore, StopsStore } from '../shared/store';
8
7
  import { roundCoordTo } from '../../map/shared/map.utils';
9
- import { LanguageService } from '@igo2/core';
10
8
  import { DirectionRelativePositionType } from '../shared/directions.enum';
9
+ import { computeRelativePosition, removeStopFromStore, updateStoreSorting } from '../shared/directions.utils';
10
+ import { StopsFeatureStore, StopsStore } from '../shared/store';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "@igo2/core";
13
13
  import * as i2 from "@angular/common";
@@ -291,4 +291,4 @@ export class DirectionsInputsComponent {
291
291
  }], stopInputHasFocus: [{
292
292
  type: Output
293
293
  }] }); })();
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1pbnB1dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtaW5wdXRzL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxZQUFZLE1BQU0sZUFBZSxDQUFDO0FBSzlDLE9BQU8sY0FBYyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBR3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ0tsRSxrQ0FhQztJQURDLDZOQUFTLGVBQUEseUJBQWUsQ0FBQSxJQUFDOztJQUV6QiwrQkFBcUM7SUFDdkMsaUJBQVM7O0lBTlAscUZBQTZEOzs7SUFrQjNELHNDQUtDO0lBQ0Ms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QUM7SUFDckMsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQzttRkFsTFUseUJBQXlCOzZEQUF6Qix5QkFBeUI7WUNqQ3RDLDhCQUF3RTtZQUFwQyxtSUFBc0IsZ0JBQVksSUFBQztZQUNyRSw0RUFrR007O1lBQ1IsaUJBQU07O1lBekZlLGVBQW1DO1lBQW5DLDBFQUFtQzs7O3VGRHNCM0MseUJBQXlCO2NBTHJDLFNBQVM7MkJBQ0UsdUJBQXVCO2tFQVN4QixVQUFVO2tCQUFsQixLQUFLO1lBQ0csaUJBQWlCO2tCQUF6QixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUVHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFFSSxpQkFBaUI7a0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuXG5pbXBvcnQgKiBhcyBvbFByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgKiBhcyBvbE9ic2VydmFibGUgZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XG5cbmltcG9ydCB7IFN0b3AgfSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCBwb2ludE9uRmVhdHVyZSBmcm9tICdAdHVyZi9wb2ludC1vbi1mZWF0dXJlJztcbmltcG9ydCB7XG4gIGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uLFxuICByZW1vdmVTdG9wRnJvbVN0b3JlLFxuICB1cGRhdGVTdG9yZVNvcnRpbmdcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgU3RvcHNGZWF0dXJlU3RvcmUsIFN0b3BzU3RvcmUgfSBmcm9tICcuLi9zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgcm91bmRDb29yZFRvIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAudXRpbHMnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tZGlyZWN0aW9ucy1pbnB1dHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlyZWN0aW9ucy1pbnB1dHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNJbnB1dHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGludmFsaWRLZXlzID0gWydDb250cm9sJywgJ1NoaWZ0JywgJ0FsdCddO1xuICBwcml2YXRlIG9uTWFwQ2xpY2tFdmVudEtleXMgPSBbXTtcbiAgcHVibGljIHN0b3BXaXRoSG92ZXI6IFN0b3A7XG4gIHB1YmxpYyBzdG9wSXNEcmFnZ2VkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN0b3BzU3RvcmU6IFN0b3BzU3RvcmU7XG4gIEBJbnB1dCgpIHN0b3BzRmVhdHVyZVN0b3JlOiBTdG9wc0ZlYXR1cmVTdG9yZTtcbiAgQElucHV0KCkgcHJvamVjdGlvbjogc3RyaW5nO1xuICBASW5wdXQoKSBjb29yZFJvdW5kZWREZWNpbWFsczogbnVtYmVyID0gNjtcblxuICBASW5wdXQoKSBkZWJvdW5jZTogbnVtYmVyID0gMjAwO1xuICBASW5wdXQoKSBsZW5ndGg6IG51bWJlciA9IDI7XG5cbiAgQE91dHB1dCgpIHN0b3BJbnB1dEhhc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5saXN0ZW5NYXBTaW5nbGVDbGljaygpO1xuICB9XG4gIG9uU3RvcEVudGVyKHN0b3A6IFN0b3ApIHtcbiAgICB0aGlzLnN0b3BXaXRoSG92ZXIgPSBzdG9wO1xuICB9XG4gIG9uU3RvcExlYXZlKCkge1xuICAgIHRoaXMuc3RvcFdpdGhIb3ZlciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldE9wdGlvblRleHQob3B0aW9uKSB7XG4gICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgcmV0dXJuIG9wdGlvbj8ubWV0YSA/IG9wdGlvbi5tZXRhLnRpdGxlIDogJyc7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb247XG4gIH1cblxuICBjaG9vc2VQcm9wb3NhbChcbiAgICBldmVudDogeyBzb3VyY2U6IE1hdEF1dG9jb21wbGV0ZTsgb3B0aW9uOiBNYXRPcHRpb24gfSxcbiAgICBzdG9wOiBTdG9wXG4gICkge1xuICAgIGNvbnN0IHJlc3VsdDogRmVhdHVyZSA9IGV2ZW50Lm9wdGlvbi52YWx1ZTtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBsZXQgZ2VvbUNvb3JkO1xuICAgICAgY29uc3QgZ2VvbSA9IHJlc3VsdC5nZW9tZXRyeTtcbiAgICAgIGlmIChnZW9tLnR5cGUgPT09ICdQb2ludCcpIHtcbiAgICAgICAgZ2VvbUNvb3JkID0gZ2VvbS5jb29yZGluYXRlcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gcG9pbnRPbkZlYXR1cmUocmVzdWx0Lmdlb21ldHJ5KTtcbiAgICAgICAgZ2VvbUNvb3JkID0gW1xuICAgICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxuICAgICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgICBpZiAoZ2VvbUNvb3JkKSB7XG4gICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSBnZW9tQ29vcmQ7XG4gICAgICAgIHN0b3AudGV4dCA9IHJlc3VsdC5tZXRhLnRpdGxlO1xuICAgICAgICB0aGlzLnN0b3BzU3RvcmUudXBkYXRlKHN0b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFN0b3BUZXh0KGV2ZW50OiBLZXlib2FyZEV2ZW50LCBzdG9wOiBTdG9wKSB7XG4gICAgdGhpcy51bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCk7XG4gICAgY29uc3QgdGVybSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgaWYgKHRlcm0ubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNsZWFyU3RvcChzdG9wKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudmFsaWRhdGVUZXJtKHRlcm0pKSB7XG4gICAgICBzdG9wLnRleHQgPSB0ZXJtO1xuICAgICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZShzdG9wKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVRlcm0odGVybTogc3RyaW5nKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5rZXlJc1ZhbGlkKHRlcm0pICYmXG4gICAgICAodGVybS5sZW5ndGggPj0gdGhpcy5sZW5ndGggfHwgdGVybS5sZW5ndGggPT09IDApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBrZXlJc1ZhbGlkKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZEtleXMuZmluZCgodmFsdWUpID0+IHZhbHVlID09PSBrZXkpID09PSB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXROZ0NsYXNzKHN0b3A6IFN0b3ApOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5zdG9wV2l0aEhvdmVyKSB7XG4gICAgICByZXR1cm4gJ2lnby1pbnB1dC1jb250YWluZXInO1xuICAgIH0gZWxzZSBpZiAoc3RvcC5pZCA9PT0gdGhpcy5zdG9wV2l0aEhvdmVyLmlkKSB7XG4gICAgICByZXR1cm4gJ2lnby1pbnB1dC1jb250YWluZXIgcmVkdWNlJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdpZ28taW5wdXQtY29udGFpbmVyJztcbiAgICB9XG4gIH1cblxuICBnZXRQbGFjZWhvbGRlcihzdG9wOiBTdG9wKTogc3RyaW5nIHtcbiAgICBsZXQgZXh0cmEgPSAnJztcbiAgICBpZiAoc3RvcC5yZWxhdGl2ZVBvc2l0aW9uKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHN0b3AucmVsYXRpdmVQb3NpdGlvbiA9PT0gRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUuSW50ZXJtZWRpYXRlXG4gICAgICApIHtcbiAgICAgICAgZXh0cmEgPSAnICMnICsgc3RvcC5wb3NpdGlvbjtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLicgKyBzdG9wLnJlbGF0aXZlUG9zaXRpb25cbiAgICAgICAgKSArIGV4dHJhXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlU3RvcChzdG9wOiBTdG9wKSB7XG4gICAgcmVtb3ZlU3RvcEZyb21TdG9yZSh0aGlzLnN0b3BzU3RvcmUsIHN0b3ApO1xuICB9XG5cbiAgY2xlYXJTdG9wKHN0b3A6IFN0b3ApIHtcbiAgICB0aGlzLnN0b3BzU3RvcmUudXBkYXRlKHtcbiAgICAgIGlkOiBzdG9wLmlkLFxuICAgICAgcmVsYXRpdmVQb3NpdGlvbjogc3RvcC5yZWxhdGl2ZVBvc2l0aW9uLFxuICAgICAgcG9zaXRpb246IHN0b3AucG9zaXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgIHRoaXMubW92ZVN0b3BzKGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIG1vdmVTdG9wcyhmcm9tSW5kZXgsIHRvSW5kZXgpIHtcbiAgICBpZiAoZnJvbUluZGV4ICE9PSB0b0luZGV4KSB7XG4gICAgICBjb25zdCBzdG9wcyA9IFsuLi50aGlzLnN0b3BzU3RvcmUudmlldy5hbGwoKV07XG4gICAgICBtb3ZlSXRlbUluQXJyYXkoc3RvcHMsIGZyb21JbmRleCwgdG9JbmRleCk7XG4gICAgICBzdG9wcy5tYXAoKHN0b3AsIGkpID0+IHtcbiAgICAgICAgc3RvcC5yZWxhdGl2ZVBvc2l0aW9uID0gY29tcHV0ZVJlbGF0aXZlUG9zaXRpb24oaSwgc3RvcHMubGVuZ3RoKTtcbiAgICAgICAgc3RvcC5wb3NpdGlvbiA9IGk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGVNYW55KHN0b3BzKTtcbiAgICAgIHVwZGF0ZVN0b3JlU29ydGluZyh0aGlzLnN0b3BzU3RvcmUpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRGb2N1cyhzdG9wOiBTdG9wKSB7XG4gICAgaWYgKCFzdG9wLnRleHQgfHwgc3RvcC50ZXh0Py5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudW5saXN0ZW5NYXBTaW5nbGVDbGljaygpO1xuICAgICAgdGhpcy5zdG9wSW5wdXRIYXNGb2N1cy5lbWl0KHRydWUpO1xuICAgICAgdGhpcy5saXN0ZW5NYXBTaW5nbGVDbGljayhzdG9wKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk1hcFNpbmdsZUNsaWNrKHN0b3A6IFN0b3ApIHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5vbmNlKFxuICAgICAgJ3NpbmdsZWNsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCBjbGlja0Nvb3JkaW5hdGVzID0gb2xQcm9qLnRyYW5zZm9ybShcbiAgICAgICAgICBldmVudC5jb29yZGluYXRlLFxuICAgICAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb24sXG4gICAgICAgICAgdGhpcy5wcm9qZWN0aW9uXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHJvdW5kZWRDb29yZCA9IHJvdW5kQ29vcmRUbyhcbiAgICAgICAgICBjbGlja0Nvb3JkaW5hdGVzIGFzIFtudW1iZXIsIG51bWJlcl0sXG4gICAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xuICAgICAgICApO1xuICAgICAgICBzdG9wLnRleHQgPSByb3VuZGVkQ29vcmQuam9pbignLCcpO1xuICAgICAgICBzdG9wLmNvb3JkaW5hdGVzID0gcm91bmRlZENvb3JkO1xuICAgICAgICB0aGlzLnN0b3BzU3RvcmUudXBkYXRlKHN0b3ApO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3BJbnB1dEhhc0ZvY3VzLmVtaXQoZmFsc2UpO1xuICAgICAgICB9LCA1MDApO1xuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5vbk1hcENsaWNrRXZlbnRLZXlzLnB1c2goa2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5saXN0ZW5NYXBTaW5nbGVDbGljaygpIHtcbiAgICB0aGlzLm9uTWFwQ2xpY2tFdmVudEtleXMubWFwKChrZXkpID0+IHtcbiAgICAgIG9sT2JzZXJ2YWJsZS51bkJ5S2V5KGtleSk7XG4gICAgfSk7XG4gICAgdGhpcy5vbk1hcENsaWNrRXZlbnRLZXlzID0gW107XG4gIH1cbn1cbiIsIjxkaXYgY2RrRHJvcExpc3QgY2xhc3M9XCJzdG9wcy1saXN0XCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgPGRpdlxuICAgIHRvdWNobGVhdmVcbiAgICAodG91Y2hlbnRlcik9XCJvblN0b3BFbnRlcihzdG9wKVwiXG4gICAgKHRvdWNobGVhdmUpPVwib25TdG9wTGVhdmUoKVwiXG4gICAgKG1vdXNlb3Zlcik9XCJvblN0b3BFbnRlcihzdG9wKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwib25TdG9wTGVhdmUoKVwiXG4gICAgKGNka0RyYWdTdGFydGVkKT1cInN0b3BJc0RyYWdnZWQgPSB0cnVlXCJcbiAgICAoY2RrRHJhZ0VuZGVkKT1cInN0b3BJc0RyYWdnZWQgPSBmYWxzZVwiXG4gICAgY2RrRHJhZ0xvY2tBeGlzPVwieVwiXG4gICAgY2xhc3M9XCJzdG9wLWJveFwiXG4gICAgKm5nRm9yPVwibGV0IHN0b3Agb2Ygc3RvcHNTdG9yZS52aWV3LmFsbCQoKSB8IGFzeW5jOyBsZXQgaSA9IGluZGV4XCJcbiAgICBjZGtEcmFnXG4gID5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cImdldE5nQ2xhc3Moc3RvcClcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgZ2V0UGxhY2Vob2xkZXIoc3RvcCkgfX08L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgaWQ9XCJ7eyBzdG9wLmlkIH19XCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKHN0b3ApXCJcbiAgICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJzdG9wLnRleHRcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJOdW1iZXJcIlxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgKGZvY3VzKT1cIm9uSW5wdXRGb2N1cyhzdG9wKVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzdG9wLnRleHRcIlxuICAgICAgICAgIChrZXl1cCk9XCJzZXRTdG9wVGV4dCgkZXZlbnQsIHN0b3ApXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAoc3RvcC50ZXh0IHx8IHN0b3AuY29vcmRpbmF0ZXMpICYmXG4gICAgICAgICAgICBzdG9wV2l0aEhvdmVyICYmXG4gICAgICAgICAgICBzdG9wLmlkID09PSBzdG9wV2l0aEhvdmVyLmlkXG4gICAgICAgICAgXCJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5jbGVhclN0b3AnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyU3RvcChzdG9wKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNsb3NlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgICAgICBbZGlzcGxheVdpdGhdPVwiZ2V0T3B0aW9uVGV4dFwiXG4gICAgICAgICAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxuICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJjaG9vc2VQcm9wb3NhbCgkZXZlbnQsIHN0b3ApXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtb3B0Z3JvdXBcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzb3VyY2Ugb2Ygc3RvcC5zZWFyY2hQcm9wb3NhbHNcIlxuICAgICAgICAgICAgW2xhYmVsXT1cInNvdXJjZS5zb3VyY2UudGl0bGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNvdXJjZS5zb3VyY2UuZW5hYmxlZCA9PT0gZmFsc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByZXN1bHQgb2Ygc291cmNlLnJlc3VsdHNcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwicmVzdWx0XCJcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInJlc3VsdC5tZXRhID8gcmVzdWx0Lm1ldGEudGl0bGUgOiAnJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHJlc3VsdC5tZXRhID8gcmVzdWx0Lm1ldGEudGl0bGUgOiAnJyB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LW9wdGdyb3VwPlxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhc3RvcElzRHJhZ2dlZCAmJiBzdG9wV2l0aEhvdmVyICYmIHN0b3AuaWQgPT09IHN0b3BXaXRoSG92ZXIuaWRcIlxuICAgICAgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXBcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzd2lwZS12ZXJ0aWNhbFwiXG4gICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5tb3ZlU3RvcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdlc3R1cmUtc3dpcGUtdmVydGljYWxcIj48L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCIoc3RvcHNTdG9yZS5jb3VudCQgfCBhc3luYykgPiAyXCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5yZW1vdmVTdG9wJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgIChjbGljayk9XCJyZW1vdmVTdG9wKHN0b3ApXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJkZWxldGVcIj48L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1pbnB1dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtaW5wdXRzL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsT0FBTyxLQUFLLFlBQVksTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxjQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ0l4RCxrQ0FhQztJQURDLDZOQUFTLGVBQUEseUJBQWUsQ0FBQSxJQUFDOztJQUV6QiwrQkFBcUM7SUFDdkMsaUJBQVM7O0lBTlAscUZBQTZEOzs7SUFrQjNELHNDQUtDO0lBQ0Ms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QUM7SUFDckMsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQzttRkFsTFUseUJBQXlCOzZEQUF6Qix5QkFBeUI7WUNsQ3RDLDhCQUF3RTtZQUFwQyxtSUFBc0IsZ0JBQVksSUFBQztZQUNyRSw0RUFrR007O1lBQ1IsaUJBQU07O1lBekZlLGVBQW1DO1lBQW5DLDBFQUFtQzs7O3VGRHVCM0MseUJBQXlCO2NBTHJDLFNBQVM7MkJBQ0UsdUJBQXVCO2tFQVN4QixVQUFVO2tCQUFsQixLQUFLO1lBQ0csaUJBQWlCO2tCQUF6QixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUVHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFFSSxpQkFBaUI7a0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBvbE9ic2VydmFibGUgZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XHJcbmltcG9ydCAqIGFzIG9sUHJvaiBmcm9tICdvbC9wcm9qJztcclxuXHJcbmltcG9ydCBwb2ludE9uRmVhdHVyZSBmcm9tICdAdHVyZi9wb2ludC1vbi1mZWF0dXJlJztcclxuXHJcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyByb3VuZENvb3JkVG8gfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IFN0b3AgfSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uLFxyXG4gIHJlbW92ZVN0b3BGcm9tU3RvcmUsXHJcbiAgdXBkYXRlU3RvcmVTb3J0aW5nXHJcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMnO1xyXG5pbXBvcnQgeyBTdG9wc0ZlYXR1cmVTdG9yZSwgU3RvcHNTdG9yZSB9IGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1kaXJlY3Rpb25zLWlucHV0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGludmFsaWRLZXlzID0gWydDb250cm9sJywgJ1NoaWZ0JywgJ0FsdCddO1xyXG4gIHByaXZhdGUgb25NYXBDbGlja0V2ZW50S2V5cyA9IFtdO1xyXG4gIHB1YmxpYyBzdG9wV2l0aEhvdmVyOiBTdG9wO1xyXG4gIHB1YmxpYyBzdG9wSXNEcmFnZ2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3RvcHNTdG9yZTogU3RvcHNTdG9yZTtcclxuICBASW5wdXQoKSBzdG9wc0ZlYXR1cmVTdG9yZTogU3RvcHNGZWF0dXJlU3RvcmU7XHJcbiAgQElucHV0KCkgcHJvamVjdGlvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvb3JkUm91bmRlZERlY2ltYWxzOiBudW1iZXIgPSA2O1xyXG5cclxuICBASW5wdXQoKSBkZWJvdW5jZTogbnVtYmVyID0gMjAwO1xyXG4gIEBJbnB1dCgpIGxlbmd0aDogbnVtYmVyID0gMjtcclxuXHJcbiAgQE91dHB1dCgpIHN0b3BJbnB1dEhhc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge31cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVubGlzdGVuTWFwU2luZ2xlQ2xpY2soKTtcclxuICB9XHJcbiAgb25TdG9wRW50ZXIoc3RvcDogU3RvcCkge1xyXG4gICAgdGhpcy5zdG9wV2l0aEhvdmVyID0gc3RvcDtcclxuICB9XHJcbiAgb25TdG9wTGVhdmUoKSB7XHJcbiAgICB0aGlzLnN0b3BXaXRoSG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25UZXh0KG9wdGlvbikge1xyXG4gICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICByZXR1cm4gb3B0aW9uPy5tZXRhID8gb3B0aW9uLm1ldGEudGl0bGUgOiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBvcHRpb247XHJcbiAgfVxyXG5cclxuICBjaG9vc2VQcm9wb3NhbChcclxuICAgIGV2ZW50OiB7IHNvdXJjZTogTWF0QXV0b2NvbXBsZXRlOyBvcHRpb246IE1hdE9wdGlvbiB9LFxyXG4gICAgc3RvcDogU3RvcFxyXG4gICkge1xyXG4gICAgY29uc3QgcmVzdWx0OiBGZWF0dXJlID0gZXZlbnQub3B0aW9uLnZhbHVlO1xyXG4gICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICBsZXQgZ2VvbUNvb3JkO1xyXG4gICAgICBjb25zdCBnZW9tID0gcmVzdWx0Lmdlb21ldHJ5O1xyXG4gICAgICBpZiAoZ2VvbS50eXBlID09PSAnUG9pbnQnKSB7XHJcbiAgICAgICAgZ2VvbUNvb3JkID0gZ2VvbS5jb29yZGluYXRlcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBwb2ludCA9IHBvaW50T25GZWF0dXJlKHJlc3VsdC5nZW9tZXRyeSk7XHJcbiAgICAgICAgZ2VvbUNvb3JkID0gW1xyXG4gICAgICAgICAgcG9pbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXHJcbiAgICAgICAgICBwb2ludC5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGdlb21Db29yZCkge1xyXG4gICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSBnZW9tQ29vcmQ7XHJcbiAgICAgICAgc3RvcC50ZXh0ID0gcmVzdWx0Lm1ldGEudGl0bGU7XHJcbiAgICAgICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZShzdG9wKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U3RvcFRleHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHN0b3A6IFN0b3ApIHtcclxuICAgIHRoaXMudW5saXN0ZW5NYXBTaW5nbGVDbGljaygpO1xyXG4gICAgY29uc3QgdGVybSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICBpZiAodGVybS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5jbGVhclN0b3Aoc3RvcCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmFsaWRhdGVUZXJtKHRlcm0pKSB7XHJcbiAgICAgIHN0b3AudGV4dCA9IHRlcm07XHJcbiAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVRlcm0odGVybTogc3RyaW5nKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMua2V5SXNWYWxpZCh0ZXJtKSAmJlxyXG4gICAgICAodGVybS5sZW5ndGggPj0gdGhpcy5sZW5ndGggfHwgdGVybS5sZW5ndGggPT09IDApXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGtleUlzVmFsaWQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmludmFsaWRLZXlzLmZpbmQoKHZhbHVlKSA9PiB2YWx1ZSA9PT0ga2V5KSA9PT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmdDbGFzcyhzdG9wOiBTdG9wKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5zdG9wV2l0aEhvdmVyKSB7XHJcbiAgICAgIHJldHVybiAnaWdvLWlucHV0LWNvbnRhaW5lcic7XHJcbiAgICB9IGVsc2UgaWYgKHN0b3AuaWQgPT09IHRoaXMuc3RvcFdpdGhIb3Zlci5pZCkge1xyXG4gICAgICByZXR1cm4gJ2lnby1pbnB1dC1jb250YWluZXIgcmVkdWNlJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnaWdvLWlucHV0LWNvbnRhaW5lcic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRQbGFjZWhvbGRlcihzdG9wOiBTdG9wKTogc3RyaW5nIHtcclxuICAgIGxldCBleHRyYSA9ICcnO1xyXG4gICAgaWYgKHN0b3AucmVsYXRpdmVQb3NpdGlvbikge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgc3RvcC5yZWxhdGl2ZVBvc2l0aW9uID09PSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5JbnRlcm1lZGlhdGVcclxuICAgICAgKSB7XHJcbiAgICAgICAgZXh0cmEgPSAnICMnICsgc3RvcC5wb3NpdGlvbjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uJyArIHN0b3AucmVsYXRpdmVQb3NpdGlvblxyXG4gICAgICAgICkgKyBleHRyYVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlU3RvcChzdG9wOiBTdG9wKSB7XHJcbiAgICByZW1vdmVTdG9wRnJvbVN0b3JlKHRoaXMuc3RvcHNTdG9yZSwgc3RvcCk7XHJcbiAgfVxyXG5cclxuICBjbGVhclN0b3Aoc3RvcDogU3RvcCkge1xyXG4gICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZSh7XHJcbiAgICAgIGlkOiBzdG9wLmlkLFxyXG4gICAgICByZWxhdGl2ZVBvc2l0aW9uOiBzdG9wLnJlbGF0aXZlUG9zaXRpb24sXHJcbiAgICAgIHBvc2l0aW9uOiBzdG9wLnBvc2l0aW9uXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgdGhpcy5tb3ZlU3RvcHMoZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW92ZVN0b3BzKGZyb21JbmRleCwgdG9JbmRleCkge1xyXG4gICAgaWYgKGZyb21JbmRleCAhPT0gdG9JbmRleCkge1xyXG4gICAgICBjb25zdCBzdG9wcyA9IFsuLi50aGlzLnN0b3BzU3RvcmUudmlldy5hbGwoKV07XHJcbiAgICAgIG1vdmVJdGVtSW5BcnJheShzdG9wcywgZnJvbUluZGV4LCB0b0luZGV4KTtcclxuICAgICAgc3RvcHMubWFwKChzdG9wLCBpKSA9PiB7XHJcbiAgICAgICAgc3RvcC5yZWxhdGl2ZVBvc2l0aW9uID0gY29tcHV0ZVJlbGF0aXZlUG9zaXRpb24oaSwgc3RvcHMubGVuZ3RoKTtcclxuICAgICAgICBzdG9wLnBvc2l0aW9uID0gaTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGVNYW55KHN0b3BzKTtcclxuICAgICAgdXBkYXRlU3RvcmVTb3J0aW5nKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0Rm9jdXMoc3RvcDogU3RvcCkge1xyXG4gICAgaWYgKCFzdG9wLnRleHQgfHwgc3RvcC50ZXh0Py5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy51bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCk7XHJcbiAgICAgIHRoaXMuc3RvcElucHV0SGFzRm9jdXMuZW1pdCh0cnVlKTtcclxuICAgICAgdGhpcy5saXN0ZW5NYXBTaW5nbGVDbGljayhzdG9wKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdGVuTWFwU2luZ2xlQ2xpY2soc3RvcDogU3RvcCkge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wub25jZShcclxuICAgICAgJ3NpbmdsZWNsaWNrJyxcclxuICAgICAgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2xpY2tDb29yZGluYXRlcyA9IG9sUHJvai50cmFuc2Zvcm0oXHJcbiAgICAgICAgICBldmVudC5jb29yZGluYXRlLFxyXG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbixcclxuICAgICAgICAgIHRoaXMucHJvamVjdGlvblxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxyXG4gICAgICAgICAgY2xpY2tDb29yZGluYXRlcyBhcyBbbnVtYmVyLCBudW1iZXJdLFxyXG4gICAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgc3RvcC50ZXh0ID0gcm91bmRlZENvb3JkLmpvaW4oJywnKTtcclxuICAgICAgICBzdG9wLmNvb3JkaW5hdGVzID0gcm91bmRlZENvb3JkO1xyXG4gICAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN0b3BJbnB1dEhhc0ZvY3VzLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIH0sIDUwMCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLm9uTWFwQ2xpY2tFdmVudEtleXMucHVzaChrZXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCkge1xyXG4gICAgdGhpcy5vbk1hcENsaWNrRXZlbnRLZXlzLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgIG9sT2JzZXJ2YWJsZS51bkJ5S2V5KGtleSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMub25NYXBDbGlja0V2ZW50S2V5cyA9IFtdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNka0Ryb3BMaXN0IGNsYXNzPVwic3RvcHMtbGlzdFwiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gIDxkaXZcbiAgICB0b3VjaGxlYXZlXG4gICAgKHRvdWNoZW50ZXIpPVwib25TdG9wRW50ZXIoc3RvcClcIlxuICAgICh0b3VjaGxlYXZlKT1cIm9uU3RvcExlYXZlKClcIlxuICAgIChtb3VzZW92ZXIpPVwib25TdG9wRW50ZXIoc3RvcClcIlxuICAgIChtb3VzZWxlYXZlKT1cIm9uU3RvcExlYXZlKClcIlxuICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdG9wSXNEcmFnZ2VkID0gdHJ1ZVwiXG4gICAgKGNka0RyYWdFbmRlZCk9XCJzdG9wSXNEcmFnZ2VkID0gZmFsc2VcIlxuICAgIGNka0RyYWdMb2NrQXhpcz1cInlcIlxuICAgIGNsYXNzPVwic3RvcC1ib3hcIlxuICAgICpuZ0Zvcj1cImxldCBzdG9wIG9mIHN0b3BzU3RvcmUudmlldy5hbGwkKCkgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiXG4gICAgY2RrRHJhZ1xuICA+XG4gICAgPGRpdiBbbmdDbGFzc109XCJnZXROZ0NsYXNzKHN0b3ApXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7IGdldFBsYWNlaG9sZGVyKHN0b3ApIH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGlkPVwie3sgc3RvcC5pZCB9fVwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcihzdG9wKVwiXG4gICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwic3RvcC50ZXh0XCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiTnVtYmVyXCJcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoc3RvcClcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic3RvcC50ZXh0XCJcbiAgICAgICAgICAoa2V5dXApPVwic2V0U3RvcFRleHQoJGV2ZW50LCBzdG9wKVwiXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKHN0b3AudGV4dCB8fCBzdG9wLmNvb3JkaW5hdGVzKSAmJlxuICAgICAgICAgICAgc3RvcFdpdGhIb3ZlciAmJlxuICAgICAgICAgICAgc3RvcC5pZCA9PT0gc3RvcFdpdGhIb3Zlci5pZFxuICAgICAgICAgIFwiXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uY2xlYXJTdG9wJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxuICAgICAgICAgIChjbGljayk9XCJjbGVhclN0b3Aoc3RvcClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjbG9zZVwiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAgICAgW2Rpc3BsYXlXaXRoXT1cImdldE9wdGlvblRleHRcIlxuICAgICAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiY2hvb3NlUHJvcG9zYWwoJGV2ZW50LCBzdG9wKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LW9wdGdyb3VwXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc291cmNlIG9mIHN0b3Auc2VhcmNoUHJvcG9zYWxzXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJzb3VyY2Uuc291cmNlLnRpdGxlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzb3VyY2Uuc291cmNlLmVuYWJsZWQgPT09IGZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVzdWx0IG9mIHNvdXJjZS5yZXN1bHRzXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJlc3VsdFwiXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJyZXN1bHQubWV0YSA/IHJlc3VsdC5tZXRhLnRpdGxlIDogJydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyByZXN1bHQubWV0YSA/IHJlc3VsdC5tZXRhLnRpdGxlIDogJycgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiIXN0b3BJc0RyYWdnZWQgJiYgc3RvcFdpdGhIb3ZlciAmJiBzdG9wLmlkID09PSBzdG9wV2l0aEhvdmVyLmlkXCJcbiAgICAgIGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3dpcGUtdmVydGljYWxcIlxuICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ubW92ZVN0b3AnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnZXN0dXJlLXN3aXBlLXZlcnRpY2FsXCI+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiKHN0b3BzU3RvcmUuY291bnQkIHwgYXN5bmMpID4gMlwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ucmVtb3ZlU3RvcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlU3RvcChzdG9wKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZGVsZXRlXCI+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,13 +1,13 @@
1
1
  import { ChangeDetectorRef, Component, Input } from '@angular/core';
2
2
  import { LanguageService } from '@igo2/core';
3
- import { debounceTime } from 'rxjs/operators';
4
- import { formatDistance, formatDuration, formatInstruction } from '../shared/directions.utils';
5
- import { RoutesFeatureStore, StepFeatureStore } from '../shared/store';
6
3
  import olFeature from 'ol/Feature';
7
4
  import OlGeoJSON from 'ol/format/GeoJSON';
8
5
  import * as olGeom from 'ol/geom';
6
+ import { debounceTime } from 'rxjs/operators';
9
7
  import { FEATURE } from '../../feature/shared/feature.enums';
10
8
  import { DirectionType } from '../shared/directions.enum';
9
+ import { formatDistance, formatDuration, formatInstruction } from '../shared/directions.utils';
10
+ import { RoutesFeatureStore, StepFeatureStore } from '../shared/store';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "@igo2/core";
13
13
  import * as i2 from "@angular/common";
@@ -212,4 +212,4 @@ export class DirectionsResultsComponent {
212
212
  }], stepFeatureStore: [{
213
213
  type: Input
214
214
  }] }); })();
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1yZXN1bHRzL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtcmVzdWx0cy9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzlDLE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxFQUNkLGlCQUFpQixFQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZFLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLFNBQVMsTUFBTSxtQkFBbUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUdsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7O0lDbkJwRCxxQ0FHQztJQUNDLFlBR0Y7SUFBQSxpQkFBYTs7Ozs7SUFMWCxvQ0FBbUI7SUFFbkIsZUFHRjtJQUhFLDRKQUdGOzs7O0lBaEJKLHNDQUE0RCxnQkFBQTtJQUMvQyxZQUVUOztJQUFBLGlCQUFZO0lB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LEVBQUU7Z0JBQ1YsRUFBRSxFQUFFLFFBQVE7Z0JBQ1osSUFBSTtnQkFDSixJQUFJLEVBQUUsYUFBYSxDQUFDLE1BQU07YUFDM0I7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLFFBQVE7Z0JBQ1osUUFBUSxFQUFFLHNCQUFzQixHQUFHLENBQUM7YUFDckM7WUFDRCxFQUFFLEVBQUUsT0FBTztTQUNaLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFDLElBQUksWUFBWSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQ3pELE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQXNDLENBQ3RFLENBQUM7U0FDSDtJQUNILENBQUM7b0ZBMUhVLDBCQUEwQjs2REFBMUIsMEJBQTBCO1lDcEN2Qyw0RUFxRE07O1lBckQ0Qiw0REFBbUM7Ozt1RkRvQ3hELDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLHdCQUF3QjtrR0FVekIsa0JBQWtCO2tCQUExQixLQUFLO1lBQ0csZ0JBQWdCO2tCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgRGlyZWN0aW9uLFxuICBGZWF0dXJlV2l0aFN0ZXAsXG4gIElnb1N0ZXBcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIGZvcm1hdERpc3RhbmNlLFxuICBmb3JtYXREdXJhdGlvbixcbiAgZm9ybWF0SW5zdHJ1Y3Rpb25cbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMnO1xuaW1wb3J0IHsgUm91dGVzRmVhdHVyZVN0b3JlLCBTdGVwRmVhdHVyZVN0b3JlIH0gZnJvbSAnLi4vc2hhcmVkL3N0b3JlJztcblxuaW1wb3J0IG9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuaW1wb3J0ICogYXMgb2xHZW9tIGZyb20gJ29sL2dlb20nO1xuXG5pbXBvcnQgeyBGZWF0dXJlR2VvbWV0cnkgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgRkVBVFVSRSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuZW51bXMnO1xuaW1wb3J0IHsgRGlyZWN0aW9uVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tZGlyZWN0aW9ucy1yZXN1bHRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgYWN0aXZlRGlyZWN0aW9uOiBEaXJlY3Rpb247XG4gIHB1YmxpYyBkaXJlY3Rpb25zOiBEaXJlY3Rpb25bXTtcblxuICBwcml2YXRlIGVudGl0aWVzJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBASW5wdXQoKSByb3V0ZXNGZWF0dXJlU3RvcmU6IFJvdXRlc0ZlYXR1cmVTdG9yZTtcbiAgQElucHV0KCkgc3RlcEZlYXR1cmVTdG9yZTogU3RlcEZlYXR1cmVTdG9yZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVudGl0aWVzJCQgPSB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5lbnRpdGllcyRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMDApKVxuICAgICAgLnN1YnNjcmliZSgoZW50aXRpZXMpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZlRmVhdHVyZVdpdGhEaXJlY3Rpb24gPSBlbnRpdGllcy5maW5kKFxuICAgICAgICAgIChlbnRpdHkpID0+IGVudGl0eS5wcm9wZXJ0aWVzLmFjdGl2ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRpcmVjdGlvbnMgPSBlbnRpdGllcy5tYXAoKGVudGl0eSkgPT4gZW50aXR5LnByb3BlcnRpZXMuZGlyZWN0aW9uKTtcbiAgICAgICAgaWYgKGFjdGl2ZUZlYXR1cmVXaXRoRGlyZWN0aW9uKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVEaXJlY3Rpb24gPVxuICAgICAgICAgICAgYWN0aXZlRmVhdHVyZVdpdGhEaXJlY3Rpb24ucHJvcGVydGllcy5kaXJlY3Rpb247XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVEaXJlY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZW50aXRpZXMkJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY2hhbmdlUm91dGUoKSB7XG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZW50aXRpZXMkLnZhbHVlLm1hcChcbiAgICAgIChlbnRpdHkpID0+IChlbnRpdHkucHJvcGVydGllcy5hY3RpdmUgPSAhZW50aXR5LnByb3BlcnRpZXMuYWN0aXZlKVxuICAgICk7XG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIub2xcbiAgICAgIC5nZXRTb3VyY2UoKVxuICAgICAgLmdldEZlYXR1cmVzKClcbiAgICAgIC5tYXAoKGZlYXR1cmUpID0+IGZlYXR1cmUuc2V0KCdhY3RpdmUnLCAhZmVhdHVyZS5nZXQoJ2FjdGl2ZScpKSk7XG4gIH1cblxuICBmb3JtYXREaXN0YW5jZShkaXN0YW5jZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybWF0RGlzdGFuY2UoZGlzdGFuY2UpO1xuICB9XG5cbiAgZm9ybWF0RHVyYXRpb24oZHVyYXRpb246IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm1hdER1cmF0aW9uKGR1cmF0aW9uKTtcbiAgfVxuXG4gIGZvcm1hdFN0ZXAoc3RlcCwgY250KSB7XG4gICAgcmV0dXJuIGZvcm1hdEluc3RydWN0aW9uKFxuICAgICAgc3RlcC5tYW5ldXZlci50eXBlLFxuICAgICAgc3RlcC5tYW5ldXZlci5tb2RpZmllcixcbiAgICAgIHN0ZXAubmFtZSxcbiAgICAgIHN0ZXAubWFuZXV2ZXIuYmVhcmluZ19hZnRlcixcbiAgICAgIGNudCxcbiAgICAgIHN0ZXAubWFuZXV2ZXIuZXhpdCxcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLFxuICAgICAgY250ID09PSB0aGlzLmFjdGl2ZURpcmVjdGlvbi5zdGVwcy5sZW5ndGggLSAxXG4gICAgKTtcbiAgfVxuXG4gIG9uU3RlcHNMaXN0Qmx1cigpIHtcbiAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUuY2xlYXIoKTtcbiAgfVxuXG4gIHNob3dTZWdtZW50KHN0ZXA6IElnb1N0ZXAsIHpvb21Ub0V4dGVudCA9IGZhbHNlKSB7XG4gICAgdGhpcy5zaG93Um91dGVTZWdtZW50R2VvbWV0cnkoc3RlcCwgem9vbVRvRXh0ZW50KTtcbiAgfVxuXG4gIHNob3dSb3V0ZVNlZ21lbnRHZW9tZXRyeShzdGVwOiBJZ29TdGVwLCB6b29tVG9FeHRlbnQgPSBmYWxzZSkge1xuICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gc3RlcC5nZW9tZXRyeS5jb29yZGluYXRlcztcbiAgICBjb25zdCB2ZXJ0ZXhJZCA9ICd2ZXJ0ZXgnO1xuICAgIGNvbnN0IGdlb21ldHJ5NDMyNiA9IG5ldyBvbEdlb20uTGluZVN0cmluZyhjb29yZGluYXRlcyk7XG4gICAgY29uc3QgZ2VvbWV0cnlNYXBQcm9qZWN0aW9uID0gZ2VvbWV0cnk0MzI2LnRyYW5zZm9ybShcbiAgICAgICdFUFNHOjQzMjYnLFxuICAgICAgdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uXG4gICAgKTtcbiAgICBjb25zdCByb3V0ZVNlZ21lbnRDb29yZGluYXRlcyA9IChcbiAgICAgIGdlb21ldHJ5TWFwUHJvamVjdGlvbiBhcyBhbnlcbiAgICApLmdldENvb3JkaW5hdGVzKCk7XG4gICAgY29uc3QgbGFzdFBvaW50ID0gcm91dGVTZWdtZW50Q29vcmRpbmF0ZXNbMF07XG5cbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBvbEdlb20uUG9pbnQobGFzdFBvaW50KTtcbiAgICBjb25zdCBmZWF0dXJlID0gbmV3IG9sRmVhdHVyZSh7IGdlb21ldHJ5IH0pO1xuXG4gICAgY29uc3QgZ2VvanNvbkdlb20gPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChnZW9tZXRyeSwge1xuICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbixcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb25cbiAgICB9KSBhcyBGZWF0dXJlR2VvbWV0cnk7XG5cbiAgICBjb25zdCBwcmV2aW91c1ZlcnRleCA9IHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5nZXQodmVydGV4SWQpO1xuICAgIGNvbnN0IHByZXZpb3VzVmVydGV4UmV2aXNpb24gPSBwcmV2aW91c1ZlcnRleFxuICAgICAgPyBwcmV2aW91c1ZlcnRleC5tZXRhLnJldmlzaW9uXG4gICAgICA6IDA7XG5cbiAgICBjb25zdCBzdGVwRmVhdHVyZTogRmVhdHVyZVdpdGhTdGVwID0ge1xuICAgICAgdHlwZTogRkVBVFVSRSxcbiAgICAgIGdlb21ldHJ5OiBnZW9qc29uR2VvbSxcbiAgICAgIHByb2plY3Rpb246IHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaWQ6IHZlcnRleElkLFxuICAgICAgICBzdGVwLFxuICAgICAgICB0eXBlOiBEaXJlY3Rpb25UeXBlLlZlcnRleFxuICAgICAgfSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgaWQ6IHZlcnRleElkLFxuICAgICAgICByZXZpc2lvbjogcHJldmlvdXNWZXJ0ZXhSZXZpc2lvbiArIDFcbiAgICAgIH0sXG4gICAgICBvbDogZmVhdHVyZVxuICAgIH07XG4gICAgdGhpcy5zdGVwRmVhdHVyZVN0b3JlLnVwZGF0ZShzdGVwRmVhdHVyZSk7XG4gICAgaWYgKHpvb21Ub0V4dGVudCkge1xuICAgICAgdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci56b29tVG9FeHRlbnQoXG4gICAgICAgIGZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRFeHRlbnQoKSBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCIgKm5nSWY9XCJkaXJlY3Rpb25zICYmIGFjdGl2ZURpcmVjdGlvblwiPlxuICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJkaXJlY3Rpb25zICYmIGRpcmVjdGlvbnMubGVuZ3RoID4gMVwiPlxuICAgIDxtYXQtbGFiZWw+e3tcbiAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmRyaXZpbmdPcHRpb25zJyB8IHRyYW5zbGF0ZVxuICAgIH19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1zZWxlY3RcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZHJpdmluZ09wdGlvbnMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlUm91dGUoKVwiXG4gICAgICBbKG5nTW9kZWwpXT1cImFjdGl2ZURpcmVjdGlvblwiXG4gICAgPlxuICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IGRpcmVjdGlvbiBvZiBkaXJlY3Rpb25zOyBsZXQgY250ID0gaW5kZXhcIlxuICAgICAgICBbdmFsdWVdPVwiZGlyZWN0aW9uXCJcbiAgICAgID5cbiAgICAgICAgT3B0aW9uIHt7IGNudCArIDEgfX0gOiB7eyBmb3JtYXREaXN0YW5jZShkaXJlY3Rpb24uZGlzdGFuY2UpIH19ICh7e1xuICAgICAgICAgIGZvcm1hdER1cmF0aW9uKGRpcmVjdGlvbi5kdXJhdGlvbilcbiAgICAgICAgfX0pXG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZGl2aWRlciAqbmdJZj1cImRpcmVjdGlvbnMgJiYgZGlyZWN0aW9ucy5sZW5ndGggPT09IDBcIj48L21hdC1kaXZpZGVyPlxuXG4gIDxtYXQtbGlzdCAobW91c2VsZWF2ZSk9XCJvblN0ZXBzTGlzdEJsdXIoKVwiPlxuICAgIDxoMiBtYXQtaGVhZGVyIGNsYXNzPVwiaWdvLXJvdXRlLXRpdGxlXCI+e3sgYWN0aXZlRGlyZWN0aW9uLnRpdGxlIH19PC9oMj5cbiAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uXCI+XG4gICAgICB7eyBmb3JtYXREaXN0YW5jZShhY3RpdmVEaXJlY3Rpb24uZGlzdGFuY2UpIH19LFxuICAgICAge3sgZm9ybWF0RHVyYXRpb24oYWN0aXZlRGlyZWN0aW9uLmR1cmF0aW9uKSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8bWF0LWxpc3QtaXRlbVxuICAgICAgY2xhc3M9XCJpZ28tc3RlcHNcIlxuICAgICAgKG1vdXNlZW50ZXIpPVwic2hvd1NlZ21lbnQoc3RlcClcIlxuICAgICAgKGNsaWNrKT1cInNob3dTZWdtZW50KHN0ZXAsIHRydWUpXCJcbiAgICAgICpuZ0Zvcj1cImxldCBzdGVwIG9mIGFjdGl2ZURpcmVjdGlvbi5zdGVwczsgbGV0IGNudCA9IGluZGV4XCJcbiAgICAgIGlnb0xpc3RJdGVtXG4gICAgPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIFtuZ0NsYXNzXT1cImZvcm1hdFN0ZXAoc3RlcCwgY250KS5jc3NDbGFzc1wiXG4gICAgICAgIG1hdExpc3RJdGVtSWNvblxuICAgICAgICBzdmdJY29uPVwie3sgZm9ybWF0U3RlcChzdGVwLCBjbnQpLmltYWdlIH19XCJcbiAgICAgID5cbiAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaWdvLXN0ZXAtdGV4dFwiPlxuICAgICAgICB7eyBjbnQgKyAxIH19LiB7eyBmb3JtYXRTdGVwKHN0ZXAsIGNudCkuaW5zdHJ1Y3Rpb24gfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIG1hdExpc3RJdGVtTWV0YT5cbiAgICAgICAge3sgZm9ybWF0RGlzdGFuY2Uoc3RlcC5kaXN0YW5jZSkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9tYXQtbGlzdD5cbjwvZGl2PlxuIl19
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1yZXN1bHRzL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtcmVzdWx0cy9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBR2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBTTFELE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxFQUNkLGlCQUFpQixFQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7O0lDcEJqRSxxQ0FHQztJQUNDLFlBR0Y7SUFBQSxpQkFBYTs7Ozs7SUFMWCxvQ0FBbUI7SUFFbkIsZUFHRjtJQUhFLDRKQUdGOzs7O0lBaEJKLHNDQUE0RCxnQkFBQTtJQUMvQyxZQUVUOztJQUFBLGlCQUFZO0lBQ2QscUNBSUM7SUFGQyxpTkFBbUIsZUFBQSxvQkFBYSxDQUFBLElBQUMseVBBQUE7O0lBR2pDLGdIQU9hO0lBQ2YsaUJBQWEsRUFBQTs7O0lBaEJGLGVBRVQ7SUFGUyxtRkFFVDtJQUVBLGVBQXVFO0lBQXZFLHNHQUF1RTtJQUV2RSxnREFBNkI7SUFHTCxlQUFlO0lBQWYsMkNBQWU7OztJQVUzQyw4QkFBeUU7Ozs7SUFRdkUseUNBTUM7SUFKQyx1UUFBYyxlQUFBLDZCQUFpQixDQUFBLElBQUMsZ1BBQ3ZCLGVBQUEsOEJBQWtCLElBQUksQ0FBQyxDQUFBLElBREE7SUFLaEMsK0JBS1c7SUFFWCxnQ0FBNEI7SUFDMUIsWUFDRjtJQUFBLGlCQUFPO0lBQ1AsZ0NBQXNCO0lBQ3BCLFlBQ0Y7SUFBQSxpQkFBTyxFQUFBOzs7OztJQVRMLGVBQTJDO0lBQTNDLCtFQUEyQztJQUYzQyx1RUFBMEM7SUFPMUMsZUFDRjtJQURFLG9HQUNGO0lBRUUsZUFDRjtJQURFLHlFQUNGOzs7O0lBaEROLDhCQUF1RTtJQUNyRSx1R0FrQmlCO0lBRWpCLGlHQUF5RTtJQUV6RSxtQ0FBMkM7SUFBakMscUxBQWMsZUFBQSx5QkFBaUIsQ0FBQSxJQUFDO0lBQ3hDLDZCQUF1QztJQUFBLFlBQTJCO0lBQUEsaUJBQUs7SUFDdkUsK0JBQTBCO0lBQ3hCLFlBRUY7SUFBQSxpQkFBTztJQUNQLHFHQW9CZ0I7SUFFaEIsOEJBQTJCO0lBQzdCLGlCQUFXLEVBQUE7OztJQW5ETSxlQUF5QztJQUF6Qyx3RUFBeUM7SUFvQjVDLGVBQTJDO0lBQTNDLDBFQUEyQztJQUdoQixlQUEyQjtJQUEzQixrREFBMkI7SUFFaEUsZUFFRjtJQUZFLHFKQUVGO0lBS21CLGVBQTBCO0lBQTFCLHNEQUEwQjs7QURJakQsTUFBTSxPQUFPLDBCQUEwQjtJQVUzQjtJQUNBO0lBVkgsZUFBZSxDQUFZO0lBQzNCLFVBQVUsQ0FBYztJQUV2QixVQUFVLENBQWU7SUFFeEIsa0JBQWtCLENBQXFCO0lBQ3ZDLGdCQUFnQixDQUFtQjtJQUU1QyxZQUNVLGVBQWdDLEVBQ2hDLEtBQXdCO1FBRHhCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUMvQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVM7YUFDaEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixNQUFNLDBCQUEwQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQzlDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDckMsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4RSxJQUFJLDBCQUEwQixFQUFFO2dCQUM5QixJQUFJLENBQUMsZUFBZTtvQkFDbEIsMEJBQTBCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQzthQUNuRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQzthQUNsQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ3pDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FDbkUsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRTthQUM3QixTQUFTLEVBQUU7YUFDWCxXQUFXLEVBQUU7YUFDYixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFnQjtRQUM3QixPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCO1FBQzdCLE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUc7UUFDbEIsT0FBTyxpQkFBaUIsQ0FDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUN0QixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUMzQixHQUFHLEVBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ2xCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLEdBQUcsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFhLEVBQUUsWUFBWSxHQUFHLEtBQUs7UUFDN0MsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsSUFBYSxFQUFFLFlBQVksR0FBRyxLQUFLO1FBQzFELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzlDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUMxQixNQUFNLFlBQVksR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEQsTUFBTSxxQkFBcUIsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUNsRCxXQUFXLEVBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUMzQyxDQUFDO1FBQ0YsTUFBTSx1QkFBdUIsR0FDM0IscUJBQ0QsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixNQUFNLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sV0FBVyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFO1lBQ2hFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVU7WUFDN0QsY0FBYyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVU7U0FDM0QsQ0FBb0IsQ0FBQztRQUV0QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELE1BQU0sc0JBQXNCLEdBQUcsY0FBYztZQUMzQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFTixNQUFNLFdBQVcsR0FBb0I7WUFDbkMsSUFBSSxFQUFFLE9BQU87WUFDYixRQUFRLEVBQUUsV0FBVztZQUNyQixVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVTtZQUN0RCxVQUFVLEVBQUU7Z0JBQ1YsRUFBRSxFQUFFLFFBQVE7Z0JBQ1osSUFBSTtnQkFDSixJQUFJLEVBQUUsYUFBYSxDQUFDLE1BQU07YUFDM0I7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLFFBQVE7Z0JBQ1osUUFBUSxFQUFFLHNCQUFzQixHQUFHLENBQUM7YUFDckM7WUFDRCxFQUFFLEVBQUUsT0FBTztTQUNaLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFDLElBQUksWUFBWSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQ3pELE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQXNDLENBQ3RFLENBQUM7U0FDSDtJQUNILENBQUM7b0ZBMUhVLDBCQUEwQjs2REFBMUIsMEJBQTBCO1lDckN2Qyw0RUFxRE07O1lBckQ0Qiw0REFBbUM7Ozt1RkRxQ3hELDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLHdCQUF3QjtrR0FVekIsa0JBQWtCO2tCQUExQixLQUFLO1lBQ0csZ0JBQWdCO2tCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgT2xHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcclxuaW1wb3J0ICogYXMgb2xHZW9tIGZyb20gJ29sL2dlb20nO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEZFQVRVUkUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmVudW1zJztcclxuaW1wb3J0IHsgRmVhdHVyZUdlb21ldHJ5IH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIERpcmVjdGlvbixcclxuICBGZWF0dXJlV2l0aFN0ZXAsXHJcbiAgSWdvU3RlcFxyXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgZm9ybWF0RGlzdGFuY2UsXHJcbiAgZm9ybWF0RHVyYXRpb24sXHJcbiAgZm9ybWF0SW5zdHJ1Y3Rpb25cclxufSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy51dGlscyc7XHJcbmltcG9ydCB7IFJvdXRlc0ZlYXR1cmVTdG9yZSwgU3RlcEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1kaXJlY3Rpb25zLXJlc3VsdHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zUmVzdWx0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgYWN0aXZlRGlyZWN0aW9uOiBEaXJlY3Rpb247XHJcbiAgcHVibGljIGRpcmVjdGlvbnM6IERpcmVjdGlvbltdO1xyXG5cclxuICBwcml2YXRlIGVudGl0aWVzJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgQElucHV0KCkgcm91dGVzRmVhdHVyZVN0b3JlOiBSb3V0ZXNGZWF0dXJlU3RvcmU7XHJcbiAgQElucHV0KCkgc3RlcEZlYXR1cmVTdG9yZTogU3RlcEZlYXR1cmVTdG9yZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbnRpdGllcyQkID0gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZW50aXRpZXMkXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChlbnRpdGllcykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZUZlYXR1cmVXaXRoRGlyZWN0aW9uID0gZW50aXRpZXMuZmluZChcclxuICAgICAgICAgIChlbnRpdHkpID0+IGVudGl0eS5wcm9wZXJ0aWVzLmFjdGl2ZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25zID0gZW50aXRpZXMubWFwKChlbnRpdHkpID0+IGVudGl0eS5wcm9wZXJ0aWVzLmRpcmVjdGlvbik7XHJcbiAgICAgICAgaWYgKGFjdGl2ZUZlYXR1cmVXaXRoRGlyZWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdGlvbiA9XHJcbiAgICAgICAgICAgIGFjdGl2ZUZlYXR1cmVXaXRoRGlyZWN0aW9uLnByb3BlcnRpZXMuZGlyZWN0aW9uO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmVudGl0aWVzJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVJvdXRlKCkge1xyXG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZW50aXRpZXMkLnZhbHVlLm1hcChcclxuICAgICAgKGVudGl0eSkgPT4gKGVudGl0eS5wcm9wZXJ0aWVzLmFjdGl2ZSA9ICFlbnRpdHkucHJvcGVydGllcy5hY3RpdmUpXHJcbiAgICApO1xyXG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIub2xcclxuICAgICAgLmdldFNvdXJjZSgpXHJcbiAgICAgIC5nZXRGZWF0dXJlcygpXHJcbiAgICAgIC5tYXAoKGZlYXR1cmUpID0+IGZlYXR1cmUuc2V0KCdhY3RpdmUnLCAhZmVhdHVyZS5nZXQoJ2FjdGl2ZScpKSk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREaXN0YW5jZShkaXN0YW5jZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBmb3JtYXREaXN0YW5jZShkaXN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREdXJhdGlvbihkdXJhdGlvbjogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBmb3JtYXREdXJhdGlvbihkdXJhdGlvbik7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRTdGVwKHN0ZXAsIGNudCkge1xyXG4gICAgcmV0dXJuIGZvcm1hdEluc3RydWN0aW9uKFxyXG4gICAgICBzdGVwLm1hbmV1dmVyLnR5cGUsXHJcbiAgICAgIHN0ZXAubWFuZXV2ZXIubW9kaWZpZXIsXHJcbiAgICAgIHN0ZXAubmFtZSxcclxuICAgICAgc3RlcC5tYW5ldXZlci5iZWFyaW5nX2FmdGVyLFxyXG4gICAgICBjbnQsXHJcbiAgICAgIHN0ZXAubWFuZXV2ZXIuZXhpdCxcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UsXHJcbiAgICAgIGNudCA9PT0gdGhpcy5hY3RpdmVEaXJlY3Rpb24uc3RlcHMubGVuZ3RoIC0gMVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uU3RlcHNMaXN0Qmx1cigpIHtcclxuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1NlZ21lbnQoc3RlcDogSWdvU3RlcCwgem9vbVRvRXh0ZW50ID0gZmFsc2UpIHtcclxuICAgIHRoaXMuc2hvd1JvdXRlU2VnbWVudEdlb21ldHJ5KHN0ZXAsIHpvb21Ub0V4dGVudCk7XHJcbiAgfVxyXG5cclxuICBzaG93Um91dGVTZWdtZW50R2VvbWV0cnkoc3RlcDogSWdvU3RlcCwgem9vbVRvRXh0ZW50ID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gc3RlcC5nZW9tZXRyeS5jb29yZGluYXRlcztcclxuICAgIGNvbnN0IHZlcnRleElkID0gJ3ZlcnRleCc7XHJcbiAgICBjb25zdCBnZW9tZXRyeTQzMjYgPSBuZXcgb2xHZW9tLkxpbmVTdHJpbmcoY29vcmRpbmF0ZXMpO1xyXG4gICAgY29uc3QgZ2VvbWV0cnlNYXBQcm9qZWN0aW9uID0gZ2VvbWV0cnk0MzI2LnRyYW5zZm9ybShcclxuICAgICAgJ0VQU0c6NDMyNicsXHJcbiAgICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvblxyXG4gICAgKTtcclxuICAgIGNvbnN0IHJvdXRlU2VnbWVudENvb3JkaW5hdGVzID0gKFxyXG4gICAgICBnZW9tZXRyeU1hcFByb2plY3Rpb24gYXMgYW55XHJcbiAgICApLmdldENvb3JkaW5hdGVzKCk7XHJcbiAgICBjb25zdCBsYXN0UG9pbnQgPSByb3V0ZVNlZ21lbnRDb29yZGluYXRlc1swXTtcclxuXHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBvbEdlb20uUG9pbnQobGFzdFBvaW50KTtcclxuICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgb2xGZWF0dXJlKHsgZ2VvbWV0cnkgfSk7XHJcblxyXG4gICAgY29uc3QgZ2VvanNvbkdlb20gPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChnZW9tZXRyeSwge1xyXG4gICAgICBmZWF0dXJlUHJvamVjdGlvbjogdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgICBkYXRhUHJvamVjdGlvbjogdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uXHJcbiAgICB9KSBhcyBGZWF0dXJlR2VvbWV0cnk7XHJcblxyXG4gICAgY29uc3QgcHJldmlvdXNWZXJ0ZXggPSB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUuZ2V0KHZlcnRleElkKTtcclxuICAgIGNvbnN0IHByZXZpb3VzVmVydGV4UmV2aXNpb24gPSBwcmV2aW91c1ZlcnRleFxyXG4gICAgICA/IHByZXZpb3VzVmVydGV4Lm1ldGEucmV2aXNpb25cclxuICAgICAgOiAwO1xyXG5cclxuICAgIGNvbnN0IHN0ZXBGZWF0dXJlOiBGZWF0dXJlV2l0aFN0ZXAgPSB7XHJcbiAgICAgIHR5cGU6IEZFQVRVUkUsXHJcbiAgICAgIGdlb21ldHJ5OiBnZW9qc29uR2VvbSxcclxuICAgICAgcHJvamVjdGlvbjogdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgaWQ6IHZlcnRleElkLFxyXG4gICAgICAgIHN0ZXAsXHJcbiAgICAgICAgdHlwZTogRGlyZWN0aW9uVHlwZS5WZXJ0ZXhcclxuICAgICAgfSxcclxuICAgICAgbWV0YToge1xyXG4gICAgICAgIGlkOiB2ZXJ0ZXhJZCxcclxuICAgICAgICByZXZpc2lvbjogcHJldmlvdXNWZXJ0ZXhSZXZpc2lvbiArIDFcclxuICAgICAgfSxcclxuICAgICAgb2w6IGZlYXR1cmVcclxuICAgIH07XHJcbiAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUudXBkYXRlKHN0ZXBGZWF0dXJlKTtcclxuICAgIGlmICh6b29tVG9FeHRlbnQpIHtcclxuICAgICAgdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci56b29tVG9FeHRlbnQoXHJcbiAgICAgICAgZmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldEV4dGVudCgpIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCIgKm5nSWY9XCJkaXJlY3Rpb25zICYmIGFjdGl2ZURpcmVjdGlvblwiPlxuICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJkaXJlY3Rpb25zICYmIGRpcmVjdGlvbnMubGVuZ3RoID4gMVwiPlxuICAgIDxtYXQtbGFiZWw+e3tcbiAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmRyaXZpbmdPcHRpb25zJyB8IHRyYW5zbGF0ZVxuICAgIH19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1zZWxlY3RcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZHJpdmluZ09wdGlvbnMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlUm91dGUoKVwiXG4gICAgICBbKG5nTW9kZWwpXT1cImFjdGl2ZURpcmVjdGlvblwiXG4gICAgPlxuICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IGRpcmVjdGlvbiBvZiBkaXJlY3Rpb25zOyBsZXQgY250ID0gaW5kZXhcIlxuICAgICAgICBbdmFsdWVdPVwiZGlyZWN0aW9uXCJcbiAgICAgID5cbiAgICAgICAgT3B0aW9uIHt7IGNudCArIDEgfX0gOiB7eyBmb3JtYXREaXN0YW5jZShkaXJlY3Rpb24uZGlzdGFuY2UpIH19ICh7e1xuICAgICAgICAgIGZvcm1hdER1cmF0aW9uKGRpcmVjdGlvbi5kdXJhdGlvbilcbiAgICAgICAgfX0pXG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZGl2aWRlciAqbmdJZj1cImRpcmVjdGlvbnMgJiYgZGlyZWN0aW9ucy5sZW5ndGggPT09IDBcIj48L21hdC1kaXZpZGVyPlxuXG4gIDxtYXQtbGlzdCAobW91c2VsZWF2ZSk9XCJvblN0ZXBzTGlzdEJsdXIoKVwiPlxuICAgIDxoMiBtYXQtaGVhZGVyIGNsYXNzPVwiaWdvLXJvdXRlLXRpdGxlXCI+e3sgYWN0aXZlRGlyZWN0aW9uLnRpdGxlIH19PC9oMj5cbiAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uXCI+XG4gICAgICB7eyBmb3JtYXREaXN0YW5jZShhY3RpdmVEaXJlY3Rpb24uZGlzdGFuY2UpIH19LFxuICAgICAge3sgZm9ybWF0RHVyYXRpb24oYWN0aXZlRGlyZWN0aW9uLmR1cmF0aW9uKSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8bWF0LWxpc3QtaXRlbVxuICAgICAgY2xhc3M9XCJpZ28tc3RlcHNcIlxuICAgICAgKG1vdXNlZW50ZXIpPVwic2hvd1NlZ21lbnQoc3RlcClcIlxuICAgICAgKGNsaWNrKT1cInNob3dTZWdtZW50KHN0ZXAsIHRydWUpXCJcbiAgICAgICpuZ0Zvcj1cImxldCBzdGVwIG9mIGFjdGl2ZURpcmVjdGlvbi5zdGVwczsgbGV0IGNudCA9IGluZGV4XCJcbiAgICAgIGlnb0xpc3RJdGVtXG4gICAgPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIFtuZ0NsYXNzXT1cImZvcm1hdFN0ZXAoc3RlcCwgY250KS5jc3NDbGFzc1wiXG4gICAgICAgIG1hdExpc3RJdGVtSWNvblxuICAgICAgICBzdmdJY29uPVwie3sgZm9ybWF0U3RlcChzdGVwLCBjbnQpLmltYWdlIH19XCJcbiAgICAgID5cbiAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaWdvLXN0ZXAtdGV4dFwiPlxuICAgICAgICB7eyBjbnQgKyAxIH19LiB7eyBmb3JtYXRTdGVwKHN0ZXAsIGNudCkuaW5zdHJ1Y3Rpb24gfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIG1hdExpc3RJdGVtTWV0YT5cbiAgICAgICAge3sgZm9ybWF0RGlzdGFuY2Uoc3RlcC5kaXN0YW5jZSkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9tYXQtbGlzdD5cbjwvZGl2PlxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1zb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLXNvdXJjZXMvZGlyZWN0aW9ucy1zb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERpcmVjdGlvbnNTb3VyY2VPcHRpb25zIHtcbiAgdXJsPzogc3RyaW5nO1xuICByZXZlcnNlVXJsPzogc3RyaW5nO1xuICBsaW1pdD86IG51bWJlcjtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGRpc3RhbmNlPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3Rpb25zU291cmNlc09wdGlvbnMge1xuICBvc3JtPzogRGlyZWN0aW9uc1NvdXJjZU9wdGlvbnM7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1zb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLXNvdXJjZXMvZGlyZWN0aW9ucy1zb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERpcmVjdGlvbnNTb3VyY2VPcHRpb25zIGV4dGVuZHMgQmFzZURpcmVjdGlvbnNTb3VyY2VPcHRpb25zIHtcclxuICBvc3JtPzogT3NybURpcmVjdGlvbnNTb3VyY2VPcHRpb25zO1xyXG4gIGxvZ28/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9zcm1EaXJlY3Rpb25zU291cmNlT3B0aW9ucyA9IEJhc2VEaXJlY3Rpb25zU291cmNlT3B0aW9ucztcclxuXHJcbmludGVyZmFjZSBCYXNlRGlyZWN0aW9uc1NvdXJjZU9wdGlvbnMge1xyXG4gIGRpc3RhbmNlPzogbnVtYmVyO1xyXG4gIGVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIGxpbWl0PzogbnVtYmVyO1xyXG4gIGxvZ28/OiBzdHJpbmc7XHJcbiAgcmV2ZXJzZVVybD86IHN0cmluZztcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIHVybD86IHN0cmluZztcclxufVxyXG4iXX0=
@@ -1,11 +1,11 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { Injectable } from '@angular/core';
3
2
  import { HttpClient, HttpParams } from '@angular/common/http';
3
+ import { Injectable } from '@angular/core';
4
+ import { ConfigService } from '@igo2/core';
5
+ import { customCacheHasher, uuid } from '@igo2/utils';
4
6
  import { Observable } from 'rxjs';
5
7
  import { map } from 'rxjs/operators';
6
8
  import { Cacheable } from 'ts-cacheable';
7
- import { customCacheHasher, uuid } from '@igo2/utils';
8
- import { ConfigService } from '@igo2/core';
9
9
  import { DirectionsFormat, SourceDirectionsType } from '../shared/directions.enum';
10
10
  import { DirectionsSource } from './directions-source';
11
11
  import * as i0 from "@angular/core";
@@ -125,4 +125,4 @@ __decorate([
125
125
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OsrmDirectionsSource, [{
126
126
  type: Injectable
127
127
  }], function () { return [{ type: i1.HttpClient }, { type: i2.ConfigService }]; }, { getRoute: [] }); })();
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NybS1kaXJlY3Rpb25zLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1zb3VyY2VzL29zcm0tZGlyZWN0aW9ucy1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUczQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBSXZELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFhOUM7SUFDQTtJQWJWLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7SUFDckIsYUFBYSxHQUNuQixxRUFBcUUsQ0FBQztJQUNoRSxPQUFPLENBQTBC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SUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7WUFDM0IsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtZQUMvQixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsV0FBVztTQUMxQyxDQUFDO0lBQ0osQ0FBQzs4RUFwSFUsb0JBQW9CO2dFQUFwQixvQkFBb0IsV0FBcEIsb0JBQW9COztBQXFDdkI7SUFKUCxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsaUJBQWlCO0tBQy9CLENBQUM7OzRDQUdRLFVBQVU7b0NBQ2pCLFVBQVU7b0RBTVo7dUZBOUNVLG9CQUFvQjtjQURoQyxVQUFVO3lGQXNDRCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ2FjaGVhYmxlIH0gZnJvbSAndHMtY2FjaGVhYmxlJztcblxuaW1wb3J0IHsgY3VzdG9tQ2FjaGVIYXNoZXIsIHV1aWQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbmltcG9ydCB7IERpcmVjdGlvbiwgRGlyZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBEaXJlY3Rpb25zRm9ybWF0LFxuICBTb3VyY2VEaXJlY3Rpb25zVHlwZVxufSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy5lbnVtJztcblxuaW1wb3J0IHsgRGlyZWN0aW9uc1NvdXJjZSB9IGZyb20gJy4vZGlyZWN0aW9ucy1zb3VyY2UnO1xuaW1wb3J0IHsgRGlyZWN0aW9uc1NvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPc3JtRGlyZWN0aW9uc1NvdXJjZSBleHRlbmRzIERpcmVjdGlvbnNTb3VyY2Uge1xuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmVuYWJsZWQgIT09IGZhbHNlO1xuICB9XG4gIHNldCBlbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZWQgPSB2YWx1ZTtcbiAgfVxuICBzdGF0aWMgX25hbWUgPSAnT1NSTSBRdcOpYmVjJztcbiAgcHJpdmF0ZSBkaXJlY3Rpb25zVXJsID1cbiAgICAnaHR0cHM6Ly9nZW9lZ2wubXNwLmdvdXYucWMuY2Evc2VydmljZXMvaXRpbmVyYWlyZS9yb3V0ZS92MS9kcml2aW5nLyc7XG4gIHByaXZhdGUgb3B0aW9uczogRGlyZWN0aW9uc1NvdXJjZU9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdkaXJlY3Rpb25zU291cmNlcy5vc3JtJykgfHwge307XG4gICAgdGhpcy5kaXJlY3Rpb25zVXJsID0gdGhpcy5vcHRpb25zLnVybCB8fCB0aGlzLmRpcmVjdGlvbnNVcmw7XG4gIH1cblxuICBnZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE9zcm1EaXJlY3Rpb25zU291cmNlLl9uYW1lO1xuICB9XG5cbiAgcm91dGUoXG4gICAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl1bXSxcbiAgICBkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8RGlyZWN0aW9uW10+IHtcbiAgICBjb25zdCBkaXJlY3Rpb25zUGFyYW1zID0gdGhpcy5nZXRSb3V0ZVBhcmFtcyhkaXJlY3Rpb25zT3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Um91dGUoY29vcmRpbmF0ZXMsIGRpcmVjdGlvbnNQYXJhbXMpO1xuICB9XG5cbiAgQENhY2hlYWJsZSh7XG4gICAgbWF4Q2FjaGVDb3VudDogMjAsXG4gICAgY2FjaGVIYXNoZXI6IGN1c3RvbUNhY2hlSGFzaGVyXG4gIH0pXG4gIHByaXZhdGUgZ2V0Um91dGUoXG4gICAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl1bXSxcbiAgICBwYXJhbXM6IEh0dHBQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxEaXJlY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8SlNPTltdPih0aGlzLmRpcmVjdGlvbnNVcmwgKyBjb29yZGluYXRlcy5qb2luKCc7JyksIHtcbiAgICAgICAgcGFyYW1zXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKChyZXMpID0+IHRoaXMuZXh0cmFjdFJvdXRlc0RhdGEocmVzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0Um91dGVzRGF0YShyZXNwb25zZSk6IERpcmVjdGlvbltdIHtcbiAgICBjb25zdCByb3V0ZVJlc3BvbnNlID0gW107XG4gICAgcmVzcG9uc2Uucm91dGVzLmZvckVhY2goKHJvdXRlKSA9PiB7XG4gICAgICByb3V0ZVJlc3BvbnNlLnB1c2godGhpcy5mb3JtYXRSb3V0ZShyb3V0ZSwgcmVzcG9uc2Uud2F5cG9pbnRzKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJvdXRlUmVzcG9uc2U7XG4gIH1cblxuICBwcml2YXRlIGdldFJvdXRlUGFyYW1zKGRpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge30pOiBIdHRwUGFyYW1zIHtcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5hbHRlcm5hdGl2ZXMgPVxuICAgICAgZGlyZWN0aW9uc09wdGlvbnMuYWx0ZXJuYXRpdmVzICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5hbHRlcm5hdGl2ZXNcbiAgICAgICAgOiB0cnVlO1xuICAgIGRpcmVjdGlvbnNPcHRpb25zLnN0ZXBzID1cbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLnN0ZXBzICE9PSB1bmRlZmluZWQgPyBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA6IHRydWU7XG4gICAgZGlyZWN0aW9uc09wdGlvbnMuZ2VvbWV0cmllcyA9XG4gICAgICBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzXG4gICAgICAgIDogJ2dlb2pzb24nO1xuICAgIGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ID1cbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5vdmVydmlld1xuICAgICAgICA6IGZhbHNlO1xuICAgIGRpcmVjdGlvbnNPcHRpb25zLmNvbnRpbnVlX3N0cmFpZ2h0ID1cbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLmNvbnRpbnVlX3N0cmFpZ2h0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5jb250aW51ZV9zdHJhaWdodFxuICAgICAgICA6IGZhbHNlO1xuXG4gICAgcmV0dXJuIG5ldyBIdHRwUGFyYW1zKHtcbiAgICAgIGZyb21PYmplY3Q6IHtcbiAgICAgICAgYWx0ZXJuYXRpdmVzOiBkaXJlY3Rpb25zT3B0aW9ucy5hbHRlcm5hdGl2ZXMgPyAndHJ1ZScgOiAnZmFsc2UnLFxuICAgICAgICBvdmVydmlldzogZGlyZWN0aW9uc09wdGlvbnMub3ZlcnZpZXcgPyAnc2ltcGxpZmllZCcgOiAnZnVsbCcsXG4gICAgICAgIHN0ZXBzOiBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICAgIGdlb21ldHJpZXM6IGRpcmVjdGlvbnNPcHRpb25zLmdlb21ldHJpZXNcbiAgICAgICAgICA/IGRpcmVjdGlvbnNPcHRpb25zLmdlb21ldHJpZXNcbiAgICAgICAgICA6ICdnZW9qc29uJyxcbiAgICAgICAgY29udGludWVfc3RyYWlnaHQ6IGRpcmVjdGlvbnNPcHRpb25zLmNvbnRpbnVlX3N0cmFpZ2h0XG4gICAgICAgICAgPyAndHJ1ZSdcbiAgICAgICAgICA6ICdmYWxzZSdcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Um91dGUocm9hZE5ldHdvcmtSb3V0ZTogYW55LCB3YXlwb2ludHM6IGFueSk6IERpcmVjdGlvbiB7XG4gICAgY29uc3Qgc3RlcHNVSSA9IFtdO1xuICAgIHJvYWROZXR3b3JrUm91dGUubGVncy5mb3JFYWNoKChsZWcpID0+IHtcbiAgICAgIGxlZy5zdGVwcy5mb3JFYWNoKChzdGVwKSA9PiB7XG4gICAgICAgIHN0ZXBzVUkucHVzaChzdGVwKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdXVpZCgpLFxuICAgICAgdGl0bGU6IHJvYWROZXR3b3JrUm91dGUubGVnc1swXS5zdW1tYXJ5LFxuICAgICAgc291cmNlOiBPc3JtRGlyZWN0aW9uc1NvdXJjZS5fbmFtZSxcbiAgICAgIHNvdXJjZVR5cGU6IFNvdXJjZURpcmVjdGlvbnNUeXBlLlJvdXRlLFxuICAgICAgb3JkZXI6IDEsXG4gICAgICBmb3JtYXQ6IERpcmVjdGlvbnNGb3JtYXQuR2VvSlNPTixcbiAgICAgIGljb246ICdkaXJlY3Rpb25zJyxcbiAgICAgIHByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgICAgd2F5cG9pbnRzLFxuICAgICAgZGlzdGFuY2U6IHJvYWROZXR3b3JrUm91dGUuZGlzdGFuY2UsXG4gICAgICBkdXJhdGlvbjogcm9hZE5ldHdvcmtSb3V0ZS5kdXJhdGlvbixcbiAgICAgIGdlb21ldHJ5OiByb2FkTmV0d29ya1JvdXRlLmdlb21ldHJ5LFxuICAgICAgbGVnczogcm9hZE5ldHdvcmtSb3V0ZS5sZWdzLFxuICAgICAgc3RlcHM6IHN0ZXBzVUksXG4gICAgICB3ZWlnaHQ6IHJvYWROZXR3b3JrUm91dGUud2VpZ2h0LFxuICAgICAgd2VpZ2h0X25hbWU6IHJvYWROZXR3b3JrUm91dGUud2VpZ2h0X25hbWVcbiAgICB9O1xuICB9XG59XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NybS1kaXJlY3Rpb25zLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1zb3VyY2VzL29zcm0tZGlyZWN0aW9ucy1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBSXZELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFhOUM7SUFDQTtJQWJWLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7SUFDckIsYUFBYSxHQUNuQixxRUFBcUUsQ0FBQztJQUNoRSxPQUFPLENBQThC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SUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7WUFDM0IsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtZQUMvQixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsV0FBVztTQUMxQyxDQUFDO0lBQ0osQ0FBQzs4RUFwSFUsb0JBQW9CO2dFQUFwQixvQkFBb0IsV0FBcEIsb0JBQW9COztBQXFDdkI7SUFKUCxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsaUJBQWlCO0tBQy9CLENBQUM7OzRDQUdRLFVBQVU7b0NBQ2pCLFVBQVU7b0RBTVo7dUZBOUNVLG9CQUFvQjtjQURoQyxVQUFVO3lGQXNDRCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBjdXN0b21DYWNoZUhhc2hlciwgdXVpZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDYWNoZWFibGUgfSBmcm9tICd0cy1jYWNoZWFibGUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBEaXJlY3Rpb25zRm9ybWF0LFxyXG4gIFNvdXJjZURpcmVjdGlvbnNUeXBlXHJcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbiwgRGlyZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlJztcclxuaW1wb3J0IHsgT3NybURpcmVjdGlvbnNTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgT3NybURpcmVjdGlvbnNTb3VyY2UgZXh0ZW5kcyBEaXJlY3Rpb25zU291cmNlIHtcclxuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZW5hYmxlZCAhPT0gZmFsc2U7XHJcbiAgfVxyXG4gIHNldCBlbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMuZW5hYmxlZCA9IHZhbHVlO1xyXG4gIH1cclxuICBzdGF0aWMgX25hbWUgPSAnT1NSTSBRdcOpYmVjJztcclxuICBwcml2YXRlIGRpcmVjdGlvbnNVcmwgPVxyXG4gICAgJ2h0dHBzOi8vZ2VvZWdsLm1zcC5nb3V2LnFjLmNhL3NlcnZpY2VzL2l0aW5lcmFpcmUvcm91dGUvdjEvZHJpdmluZy8nO1xyXG4gIHByaXZhdGUgb3B0aW9uczogT3NybURpcmVjdGlvbnNTb3VyY2VPcHRpb25zO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdkaXJlY3Rpb25zU291cmNlcy5vc3JtJykgfHwge307XHJcbiAgICB0aGlzLmRpcmVjdGlvbnNVcmwgPSB0aGlzLm9wdGlvbnMudXJsIHx8IHRoaXMuZGlyZWN0aW9uc1VybDtcclxuICB9XHJcblxyXG4gIGdldE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBPc3JtRGlyZWN0aW9uc1NvdXJjZS5fbmFtZTtcclxuICB9XHJcblxyXG4gIHJvdXRlKFxyXG4gICAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl1bXSxcclxuICAgIGRpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge31cclxuICApOiBPYnNlcnZhYmxlPERpcmVjdGlvbltdPiB7XHJcbiAgICBjb25zdCBkaXJlY3Rpb25zUGFyYW1zID0gdGhpcy5nZXRSb3V0ZVBhcmFtcyhkaXJlY3Rpb25zT3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSb3V0ZShjb29yZGluYXRlcywgZGlyZWN0aW9uc1BhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBAQ2FjaGVhYmxlKHtcclxuICAgIG1heENhY2hlQ291bnQ6IDIwLFxyXG4gICAgY2FjaGVIYXNoZXI6IGN1c3RvbUNhY2hlSGFzaGVyXHJcbiAgfSlcclxuICBwcml2YXRlIGdldFJvdXRlKFxyXG4gICAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl1bXSxcclxuICAgIHBhcmFtczogSHR0cFBhcmFtc1xyXG4gICk6IE9ic2VydmFibGU8RGlyZWN0aW9uW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxKU09OW10+KHRoaXMuZGlyZWN0aW9uc1VybCArIGNvb3JkaW5hdGVzLmpvaW4oJzsnKSwge1xyXG4gICAgICAgIHBhcmFtc1xyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShtYXAoKHJlcykgPT4gdGhpcy5leHRyYWN0Um91dGVzRGF0YShyZXMpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RSb3V0ZXNEYXRhKHJlc3BvbnNlKTogRGlyZWN0aW9uW10ge1xyXG4gICAgY29uc3Qgcm91dGVSZXNwb25zZSA9IFtdO1xyXG4gICAgcmVzcG9uc2Uucm91dGVzLmZvckVhY2goKHJvdXRlKSA9PiB7XHJcbiAgICAgIHJvdXRlUmVzcG9uc2UucHVzaCh0aGlzLmZvcm1hdFJvdXRlKHJvdXRlLCByZXNwb25zZS53YXlwb2ludHMpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJvdXRlUmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvdXRlUGFyYW1zKGRpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge30pOiBIdHRwUGFyYW1zIHtcclxuICAgIGRpcmVjdGlvbnNPcHRpb25zLmFsdGVybmF0aXZlcyA9XHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLmFsdGVybmF0aXZlcyAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5hbHRlcm5hdGl2ZXNcclxuICAgICAgICA6IHRydWU7XHJcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA9XHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLnN0ZXBzICE9PSB1bmRlZmluZWQgPyBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA6IHRydWU7XHJcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzID1cclxuICAgICAgZGlyZWN0aW9uc09wdGlvbnMuZ2VvbWV0cmllcyAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzXHJcbiAgICAgICAgOiAnZ2VvanNvbic7XHJcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5vdmVydmlldyA9XHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ICE9PSB1bmRlZmluZWRcclxuICAgICAgICA/IGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3XHJcbiAgICAgICAgOiBmYWxzZTtcclxuICAgIGRpcmVjdGlvbnNPcHRpb25zLmNvbnRpbnVlX3N0cmFpZ2h0ID1cclxuICAgICAgZGlyZWN0aW9uc09wdGlvbnMuY29udGludWVfc3RyYWlnaHQgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgID8gZGlyZWN0aW9uc09wdGlvbnMuY29udGludWVfc3RyYWlnaHRcclxuICAgICAgICA6IGZhbHNlO1xyXG5cclxuICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICBhbHRlcm5hdGl2ZXM6IGRpcmVjdGlvbnNPcHRpb25zLmFsdGVybmF0aXZlcyA/ICd0cnVlJyA6ICdmYWxzZScsXHJcbiAgICAgICAgb3ZlcnZpZXc6IGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ID8gJ3NpbXBsaWZpZWQnIDogJ2Z1bGwnLFxyXG4gICAgICAgIHN0ZXBzOiBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA/ICd0cnVlJyA6ICdmYWxzZScsXHJcbiAgICAgICAgZ2VvbWV0cmllczogZGlyZWN0aW9uc09wdGlvbnMuZ2VvbWV0cmllc1xyXG4gICAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzXHJcbiAgICAgICAgICA6ICdnZW9qc29uJyxcclxuICAgICAgICBjb250aW51ZV9zdHJhaWdodDogZGlyZWN0aW9uc09wdGlvbnMuY29udGludWVfc3RyYWlnaHRcclxuICAgICAgICAgID8gJ3RydWUnXHJcbiAgICAgICAgICA6ICdmYWxzZSdcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdFJvdXRlKHJvYWROZXR3b3JrUm91dGU6IGFueSwgd2F5cG9pbnRzOiBhbnkpOiBEaXJlY3Rpb24ge1xyXG4gICAgY29uc3Qgc3RlcHNVSSA9IFtdO1xyXG4gICAgcm9hZE5ldHdvcmtSb3V0ZS5sZWdzLmZvckVhY2goKGxlZykgPT4ge1xyXG4gICAgICBsZWcuc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xyXG4gICAgICAgIHN0ZXBzVUkucHVzaChzdGVwKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkOiB1dWlkKCksXHJcbiAgICAgIHRpdGxlOiByb2FkTmV0d29ya1JvdXRlLmxlZ3NbMF0uc3VtbWFyeSxcclxuICAgICAgc291cmNlOiBPc3JtRGlyZWN0aW9uc1NvdXJjZS5fbmFtZSxcclxuICAgICAgc291cmNlVHlwZTogU291cmNlRGlyZWN0aW9uc1R5cGUuUm91dGUsXHJcbiAgICAgIG9yZGVyOiAxLFxyXG4gICAgICBmb3JtYXQ6IERpcmVjdGlvbnNGb3JtYXQuR2VvSlNPTixcclxuICAgICAgaWNvbjogJ2RpcmVjdGlvbnMnLFxyXG4gICAgICBwcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcclxuICAgICAgd2F5cG9pbnRzLFxyXG4gICAgICBkaXN0YW5jZTogcm9hZE5ldHdvcmtSb3V0ZS5kaXN0YW5jZSxcclxuICAgICAgZHVyYXRpb246IHJvYWROZXR3b3JrUm91dGUuZHVyYXRpb24sXHJcbiAgICAgIGdlb21ldHJ5OiByb2FkTmV0d29ya1JvdXRlLmdlb21ldHJ5LFxyXG4gICAgICBsZWdzOiByb2FkTmV0d29ya1JvdXRlLmxlZ3MsXHJcbiAgICAgIHN0ZXBzOiBzdGVwc1VJLFxyXG4gICAgICB3ZWlnaHQ6IHJvYWROZXR3b3JrUm91dGUud2VpZ2h0LFxyXG4gICAgICB3ZWlnaHRfbmFtZTogcm9hZE5ldHdvcmtSb3V0ZS53ZWlnaHRfbmFtZVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,20 +1,20 @@
1
1
  import { ChangeDetectorRef, Component, Input } from '@angular/core';
2
- import { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';
3
- import { LanguageService } from '@igo2/core';
4
2
  import { EntityStoreWatcher } from '@igo2/common';
3
+ import { LanguageService } from '@igo2/core';
4
+ import { ChangeUtils, ObjectUtils } from '@igo2/utils';
5
5
  import * as olCondition from 'ol/events/condition';
6
6
  import * as olInteraction from 'ol/interaction';
7
7
  import * as olProj from 'ol/proj';
8
8
  import { Subject } from 'rxjs';
9
- import { addDirectionToRoutesFeatureStore, addStopToStopsFeatureStore, addStopToStore, initRoutesFeatureStore, initStepFeatureStore, initStopsFeatureStore, updateStoreSorting } from './shared/directions.utils';
10
- import { DirectionsService } from './shared/directions.service';
11
- import { DirectionType, ProposalType } from './shared/directions.enum';
9
+ import { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';
10
+ import { FeatureStoreLoadingStrategy } from '../feature/shared/strategies/loading';
12
11
  import { roundCoordTo, stringToLonLat } from '../map';
12
+ import { QueryService } from '../query/shared/query.service';
13
13
  import { SearchService } from '../search/shared/search.service';
14
- import { ChangeUtils, ObjectUtils } from '@igo2/utils';
14
+ import { DirectionType, ProposalType } from './shared/directions.enum';
15
+ import { DirectionsService } from './shared/directions.service';
16
+ import { addDirectionToRoutesFeatureStore, addStopToStopsFeatureStore, addStopToStore, initRoutesFeatureStore, initStepFeatureStore, initStopsFeatureStore, updateStoreSorting } from './shared/directions.utils';
15
17
  import { RoutesFeatureStore, StepFeatureStore, StopsFeatureStore, StopsStore } from './shared/store';
16
- import { FeatureStoreLoadingStrategy } from '../feature/shared/strategies/loading';
17
- import { QueryService } from '../query/shared/query.service';
18
18
  import * as i0 from "@angular/core";
19
19
  import * as i1 from "@igo2/core";
20
20
  import * as i2 from "./shared/directions.service";
@@ -371,4 +371,4 @@ export class DirectionsComponent {
371
371
  }], zoomToActiveRoute$: [{
372
372
  type: Input
373
373
  }] }); })();
374
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWxELE9BQU8sS0FBSyxXQUFXLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxLQUFLLGFBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQVVsQyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLDBCQUEwQixFQUMxQixjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ25CLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFB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S0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDRyxrQkFBa0I7a0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgRW50aXR5U3RvcmVXYXRjaGVyIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuXHJcbmltcG9ydCAqIGFzIG9sQ29uZGl0aW9uIGZyb20gJ29sL2V2ZW50cy9jb25kaXRpb24nO1xyXG5pbXBvcnQgKiBhcyBvbEludGVyYWN0aW9uIGZyb20gJ29sL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgb2xQcm9qIGZyb20gJ29sL3Byb2onO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL1RyYW5zbGF0ZSc7XHJcbmltcG9ydCBDb2xsZWN0aW9uIGZyb20gJ29sL0NvbGxlY3Rpb24nO1xyXG5pbXBvcnQgeyBTZWxlY3RFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL1NlbGVjdCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIERpcmVjdGlvbk9wdGlvbnMsXHJcbiAgRmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcyxcclxuICBTdG9wXHJcbn0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBhZGREaXJlY3Rpb25Ub1JvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICBhZGRTdG9wVG9TdG9wc0ZlYXR1cmVTdG9yZSxcclxuICBhZGRTdG9wVG9TdG9yZSxcclxuICBpbml0Um91dGVzRmVhdHVyZVN0b3JlLFxyXG4gIGluaXRTdGVwRmVhdHVyZVN0b3JlLFxyXG4gIGluaXRTdG9wc0ZlYXR1cmVTdG9yZSxcclxuICB1cGRhdGVTdG9yZVNvcnRpbmdcclxufSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLnV0aWxzJztcclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uVHlwZSwgUHJvcG9zYWxUeXBlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy5lbnVtJztcclxuaW1wb3J0IHsgcm91bmRDb29yZFRvLCBzdHJpbmdUb0xvbkxhdCB9IGZyb20gJy4uL21hcCc7XHJcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi9zZWFyY2gvc2hhcmVkL3NlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hhbmdlVXRpbHMsIE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIFJvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICBTdGVwRmVhdHVyZVN0b3JlLFxyXG4gIFN0b3BzRmVhdHVyZVN0b3JlLFxyXG4gIFN0b3BzU3RvcmVcclxufSBmcm9tICcuL3NoYXJlZC9zdG9yZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4uL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvbG9hZGluZyc7XHJcbmltcG9ydCB7IFJlc2VhcmNoLCBTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi9zZWFyY2gvc2hhcmVkL3NlYXJjaC5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgUXVlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vcXVlcnkvc2hhcmVkL3F1ZXJ5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tZGlyZWN0aW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RpcmVjdGlvbnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHdhdGNoZXI6IEVudGl0eVN0b3JlV2F0Y2hlcjxTdG9wPjtcclxuXHJcbiAgcHVibGljIHByb2plY3Rpb246IHN0cmluZyA9ICdFUFNHOjQzMjYnO1xyXG5cclxuICBwcml2YXRlIHpvb21Sb3V0ZSQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBzdG9yZUVtcHR5JCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHN0b3JlQ2hhbmdlJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHJvdXRlc1F1ZXJpZXMkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RTdG9wSW50ZXJhY3Rpb246IG9sSW50ZXJhY3Rpb24uU2VsZWN0O1xyXG4gIHByaXZhdGUgdHJhbnNsYXRlU3RvcDogb2xJbnRlcmFjdGlvbi5UcmFuc2xhdGU7XHJcbiAgcHJpdmF0ZSBzZWxlY3RlZFJvdXRlOiBvbEludGVyYWN0aW9uLlNlbGVjdDtcclxuICBwcml2YXRlIGZvY3VzT25TdG9wOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc1RyYW5zbGF0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBwcmV2aW91c1N0b3BzOiBTdG9wW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBzZWFyY2hzJCQ6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGNvbnRleHRVcmk6IHN0cmluZztcclxuICBASW5wdXQoKSBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlO1xyXG4gIEBJbnB1dCgpIHN0b3BzRmVhdHVyZVN0b3JlOiBTdG9wc0ZlYXR1cmVTdG9yZTtcclxuICBASW5wdXQoKSByb3V0ZXNGZWF0dXJlU3RvcmU6IFJvdXRlc0ZlYXR1cmVTdG9yZTtcclxuICBASW5wdXQoKSBzdGVwRmVhdHVyZVN0b3JlOiBTdGVwRmVhdHVyZVN0b3JlO1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlOiBudW1iZXIgPSAyMDA7XHJcbiAgQElucHV0KCkgbGVuZ3RoOiBudW1iZXIgPSAyO1xyXG4gIEBJbnB1dCgpIGNvb3JkUm91bmRlZERlY2ltYWxzOiBudW1iZXIgPSA2O1xyXG4gIEBJbnB1dCgpIHpvb21Ub0FjdGl2ZVJvdXRlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRlciBvbmUgb2YgdGhlIGRpcmVjdGlvbiBjb250cm9sIGlzIGFjdGl2ZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGdldCBkaXJlY3Rpb25Db250cm9sSXNBY3RpdmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZDtcclxuICB9XHJcblxyXG4gIGdldCBpbnRlcmFjdGlvbnMoKTogb2xJbnRlcmFjdGlvbi5JbnRlcmFjdGlvbltdIHtcclxuICAgIHJldHVybiBbdGhpcy5zZWxlY3RTdG9wSW50ZXJhY3Rpb24sIHRoaXMudHJhbnNsYXRlU3RvcCwgdGhpcy5zZWxlY3RlZFJvdXRlXTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU2VydmljZTogRGlyZWN0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHF1ZXJ5U2VydmljZTogUXVlcnlTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbml0RW50aXR5U3RvcmVzKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaW5pdFN0b3BzRmVhdHVyZVN0b3JlKHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUsIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlKTtcclxuICAgICAgaW5pdFJvdXRlc0ZlYXR1cmVTdG9yZSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZSwgdGhpcy5sYW5ndWFnZVNlcnZpY2UpO1xyXG4gICAgICBpbml0U3RlcEZlYXR1cmVTdG9yZSh0aGlzLnN0ZXBGZWF0dXJlU3RvcmUpO1xyXG4gICAgICB0aGlzLmluaXRPbEludGVyYWN0aW9uKCk7XHJcbiAgICB9LCAxKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5xdWVyeVNlcnZpY2UucXVlcnlFbmFibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuc3RvcmVFbXB0eSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN0b3JlQ2hhbmdlJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMucm91dGVzUXVlcmllcyQkLm1hcCgodSkgPT4gdS51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMuem9vbVJvdXRlJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuZnJlZXplU3RvcmVzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZyZWV6ZVN0b3JlcygpIHtcclxuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XHJcbiAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcclxuICAgICk7XHJcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmRlYWN0aXZhdGVTdHJhdGVneU9mVHlwZShcclxuICAgICAgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5XHJcbiAgICApO1xyXG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKFxyXG4gICAgICBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3lcclxuICAgICk7XHJcbiAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRFbnRpdHlTdG9yZXMoKSB7XHJcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgRW50aXR5U3RvcmVXYXRjaGVyKHRoaXMuc3RvcHNTdG9yZSwgdGhpcy5jZFJlZik7XHJcbiAgICB0aGlzLm1vbml0b3JFbXB0eUVudGl0eVN0b3JlKCk7XHJcbiAgICB0aGlzLm1vbml0b3JFbnRpdHlTdG9yZUNoYW5nZSgpO1xyXG4gICAgdGhpcy5tb25pdG9yQWN0aXZlUm91dGVab29tKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vbml0b3JBY3RpdmVSb3V0ZVpvb20oKSB7XHJcbiAgICB0aGlzLnpvb21Sb3V0ZSQkID0gdGhpcy56b29tVG9BY3RpdmVSb3V0ZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmNvdW50ID49IDEpIHtcclxuICAgICAgICBjb25zdCBhY3RpdmVSb3V0ZSA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlXHJcbiAgICAgICAgICAuYWxsKClcclxuICAgICAgICAgIC5maW5kKChyb3V0ZSkgPT4gcm91dGUucHJvcGVydGllcy5hY3RpdmUpO1xyXG5cclxuICAgICAgICBpZiAoYWN0aXZlUm91dGUpIHtcclxuICAgICAgICAgIGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCk7XHJcbiAgICAgICAgICBjb25zdCByb3V0ZUV4dGVudCA9IGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCk7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuem9vbVRvRXh0ZW50KFxyXG4gICAgICAgICAgICByb3V0ZUV4dGVudCBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0T2xJbnRlcmFjdGlvbigpIHtcclxuICAgIHRoaXMuc2VsZWN0U3RvcEludGVyYWN0aW9uID0gbmV3IG9sSW50ZXJhY3Rpb24uU2VsZWN0KHtcclxuICAgICAgbGF5ZXJzOiBbdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5vbF0sXHJcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcclxuICAgICAgY29uZGl0aW9uOiAoZXZlbnQpID0+IHtcclxuICAgICAgICByZXR1cm4gZXZlbnQudHlwZSA9PT0gJ3BvaW50ZXJtb3ZlJyAmJiAhZXZlbnQuZHJhZ2dpbmc7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlU3RvcCA9IG5ldyBvbEludGVyYWN0aW9uLlRyYW5zbGF0ZSh7XHJcbiAgICAgIGZlYXR1cmVzOiB0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbi5nZXRGZWF0dXJlcygpXHJcbiAgICB9KTtcclxuICAgIHRoaXMudHJhbnNsYXRlU3RvcC5vbigndHJhbnNsYXRpbmcnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmlzVHJhbnNsYXRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmV4ZWN1dGVTdG9wVHJhbnNsYXRpb24oZXZ0LmZlYXR1cmVzKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTdG9wLm9uKCd0cmFuc2xhdGVlbmQnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmlzVHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5leGVjdXRlU3RvcFRyYW5zbGF0aW9uKGV2dC5mZWF0dXJlcyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkUm91dGUgPSBuZXcgb2xJbnRlcmFjdGlvbi5TZWxlY3Qoe1xyXG4gICAgICBsYXllcnM6IFt0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5vbF0sXHJcbiAgICAgIGNvbmRpdGlvbjogb2xDb25kaXRpb24uY2xpY2ssXHJcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcclxuICAgICAgZmlsdGVyOiAoZmVhdHVyZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICBmZWF0dXJlLmdldCgndHlwZScpID09PSBEaXJlY3Rpb25UeXBlLlJvdXRlICYmXHJcbiAgICAgICAgICBmZWF0dXJlLmdldCgnYWN0aXZlJykgJiZcclxuICAgICAgICAgICF0aGlzLmlzVHJhbnNsYXRpbmdcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5vbignc2VsZWN0JywgKGV2dDogU2VsZWN0RXZlbnQpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9jdXNPblN0b3AgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0Q29vcmRpbmF0ZXMgPSByb3VuZENvb3JkVG8oXHJcbiAgICAgICAgICBvbFByb2oudHJhbnNmb3JtKFxyXG4gICAgICAgICAgICAoZXZ0IGFzIGFueSkubWFwQnJvd3NlckV2ZW50LmNvb3JkaW5hdGUsXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25cclxuICAgICAgICAgICkgYXMgW251bWJlciwgbnVtYmVyXSxcclxuICAgICAgICAgIHRoaXMuY29vcmRSb3VuZGVkRGVjaW1hbHNcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGFkZGVkU3RvcCA9IGFkZFN0b3BUb1N0b3JlKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgICAgICAgYWRkZWRTdG9wLnRleHQgPSBzZWxlY3RDb29yZGluYXRlcy5qb2luKCcsJyk7XHJcbiAgICAgICAgYWRkZWRTdG9wLmNvb3JkaW5hdGVzID0gW3NlbGVjdENvb3JkaW5hdGVzWzBdLCBzZWxlY3RDb29yZGluYXRlc1sxXV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XHJcbiAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5hZGRJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvblN0b3BJbnB1dEhhc0ZvY3VzQ2hhbmdlKHN0b3BJbnB1dEhhc0ZvY3VzOiBib29sZWFuKSB7XHJcbiAgICBzdG9wSW5wdXRIYXNGb2N1c1xyXG4gICAgICA/IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbihcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZVxyXG4gICAgICAgIClcclxuICAgICAgOiB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy5zZWxlY3RlZFJvdXRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhlY3V0ZVN0b3BUcmFuc2xhdGlvbihmZWF0dXJlczogQ29sbGVjdGlvbjxhbnk+KSB7XHJcbiAgICBpZiAoZmVhdHVyZXMuZ2V0TGVuZ3RoKCkgPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZmlyc3RGZWF0dXJlID0gZmVhdHVyZXMuZ2V0QXJyYXkoKVswXTtcclxuICAgIGNvbnN0IHRyYW5zbGF0ZWRTdG9wSWQgPSBmaXJzdEZlYXR1cmUuZ2V0SWQoKTtcclxuXHJcbiAgICBjb25zdCB0cmFuc2xhdGlvbkNvb3JkaW5hdGVzID0gb2xQcm9qLnRyYW5zZm9ybShcclxuICAgICAgZmlyc3RGZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0Q29vcmRpbmF0ZXMoKSxcclxuICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbixcclxuICAgICAgdGhpcy5wcm9qZWN0aW9uXHJcbiAgICApO1xyXG4gICAgY29uc3QgdHJhbnNsYXRlZFN0b3AgPSB0aGlzLnN0b3BzU3RvcmUuZ2V0KHRyYW5zbGF0ZWRTdG9wSWQpO1xyXG4gICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxyXG4gICAgICB0cmFuc2xhdGlvbkNvb3JkaW5hdGVzIGFzIFtudW1iZXIsIG51bWJlcl0sXHJcbiAgICAgIHRoaXMuY29vcmRSb3VuZGVkRGVjaW1hbHNcclxuICAgICk7XHJcbiAgICB0cmFuc2xhdGVkU3RvcC5jb29yZGluYXRlcyA9IHJvdW5kZWRDb29yZDtcclxuICAgIHRyYW5zbGF0ZWRTdG9wLnRleHQgPSByb3VuZGVkQ29vcmQuam9pbignLCcpO1xyXG4gICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZSh0cmFuc2xhdGVkU3RvcCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vbml0b3JFbXB0eUVudGl0eVN0b3JlKCkge1xyXG4gICAgLy8gV2F0Y2ggaWYgdGhlIHN0b3JlIGlzIGVtcHR5IHRvIHJlc2V0IGl0XHJcbiAgICB0aGlzLnN0b3JlRW1wdHkkJCA9IHRoaXMuc3RvcHNTdG9yZS5jb3VudCRcclxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgLnN1YnNjcmliZSgoY291bnQpID0+IHtcclxuICAgICAgICBpZiAoY291bnQgPCAyKSB7XHJcbiAgICAgICAgICBhZGRTdG9wVG9TdG9yZSh0aGlzLnN0b3BzU3RvcmUpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc3RvcHNTdG9yZS5jb3VudCA9PT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BzU3RvcmUuc3RvcmVJbml0aWFsaXplZCQubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zdG9wc1N0b3JlLnN0b3JlSW5pdGlhbGl6ZWQkLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5tYXAoKHUpID0+IHUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtb25pdG9yRW50aXR5U3RvcmVDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnN0b3JlQ2hhbmdlJCQgPSB0aGlzLnN0b3BzU3RvcmUuZW50aXRpZXMkXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlKSlcclxuICAgICAgLnN1YnNjcmliZSgoc3RvcHM6IFN0b3BbXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlU3RvcERpZmYoc3RvcHMpO1xyXG4gICAgICAgIHVwZGF0ZVN0b3JlU29ydGluZyh0aGlzLnN0b3BzU3RvcmUpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlU3RvcHNGZWF0dXJlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRSb3V0ZXModGhpcy5pc1RyYW5zbGF0aW5nKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaHMkJC5tYXAoKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVN0b3BEaWZmKHN0b3BzOiBTdG9wW10pIHtcclxuICAgIGNvbnN0IHNpbXBsaWZpZWRTdG9wcyA9IHN0b3BzLm1hcCgoc3RvcDogU3RvcCkgPT4ge1xyXG4gICAgICByZXR1cm4gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcclxuICAgICAgICAuLi57IGlkOiBzdG9wLmlkLCB0ZXh0OiBzdG9wLnRleHQsIGNvb3JkaW5hdGVzOiBzdG9wLmNvb3JkaW5hdGVzIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGRpZmYgPSBDaGFuZ2VVdGlscy5maW5kQ2hhbmdlcyh0aGlzLnByZXZpb3VzU3RvcHMsIHNpbXBsaWZpZWRTdG9wcywgW1xyXG4gICAgICAnY29vcmRpbmF0ZXMnXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IHN0b3BJZFRvUHJvY2VzcyA9IGRpZmYuYWRkZWQuY29uY2F0KGRpZmYubW9kaWZpZWQpO1xyXG4gICAgaWYgKHN0b3BJZFRvUHJvY2Vzcykge1xyXG4gICAgICBzdG9wSWRUb1Byb2Nlc3MubWFwKChjaGFuZ2UpID0+IHtcclxuICAgICAgICBjb25zdCBjaGFuZ2VkU3RvcCA9IGNoYW5nZS5uZXdWYWx1ZSBhcyBTdG9wO1xyXG4gICAgICAgIGlmIChjaGFuZ2VkU3RvcCkge1xyXG4gICAgICAgICAgY29uc3Qgc3RvcDogU3RvcCA9IHRoaXMuc3RvcHNTdG9yZS5nZXQoY2hhbmdlZFN0b3AuaWQpO1xyXG4gICAgICAgICAgY29uc3QgdGVybSA9IHN0b3AudGV4dDtcclxuICAgICAgICAgIGlmICghdGVybSB8fCB0ZXJtLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHN0cmluZ1RvTG9uTGF0KFxyXG4gICAgICAgICAgICB0ZXJtLFxyXG4gICAgICAgICAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgbGV0IHJlc2VhcmNoZXM6IFJlc2VhcmNoW107XHJcbiAgICAgICAgICBsZXQgaXNDb29yZCA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmxvbkxhdCkge1xyXG4gICAgICAgICAgICBpc0Nvb3JkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc2VhcmNoZXMgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRlcm0sIHtcclxuICAgICAgICAgICAgc2VhcmNoVHlwZTogJ0ZlYXR1cmUnXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuY2FuY2VsU2VhcmNoKCk7XHJcbiAgICAgICAgICBjb25zdCByZXF1ZXN0cyQgPSByZXNlYXJjaGVzLm1hcCgocmVzKSA9PlxyXG4gICAgICAgICAgICByZXMucmVxdWVzdC5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+XHJcbiAgICAgICAgICAgICAgICByZXN1bHRzLmZpbHRlcigocikgPT5cclxuICAgICAgICAgICAgICAgICAgaXNDb29yZFxyXG4gICAgICAgICAgICAgICAgICAgID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5XHJcbiAgICAgICAgICAgICAgICAgICAgOiByLmRhdGEuZ2VvbWV0cnlcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaHMkJCA9IHJlcXVlc3RzJC5tYXAoKHJlcXVlc3QpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RcclxuICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+XHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMuZmlsdGVyKChyKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIGlzQ29vcmRcclxuICAgICAgICAgICAgICAgICAgICAgID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICA6IHIuZGF0YS5nZW9tZXRyeVxyXG4gICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogU2VhcmNoUmVzdWx0W10pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSByZXNbMF0uc291cmNlO1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBtZXRhID0gcmVzWzBdLm1ldGE7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXMubWFwKChyKSA9PiByLmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoIXN0b3Auc2VhcmNoUHJvcG9zYWxzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC5zZWFyY2hQcm9wb3NhbHMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBzdG9wLnNlYXJjaFByb3Bvc2FscyA9IHN0b3Auc2VhcmNoUHJvcG9zYWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAoc3ApID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICBzcC50eXBlID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgKGlzQ29vcmQgPyBQcm9wb3NhbFR5cGUuQ29vcmQgOiBQcm9wb3NhbFR5cGUuVGV4dClcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHN0b3JlZFNvdXJjZSA9IHN0b3Auc2VhcmNoUHJvcG9zYWxzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgKHNwKSA9PiBzcC5zb3VyY2UgPT09IHNvdXJjZVxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoc3RvcmVkU291cmNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVkU291cmNlLnJlc3VsdHMgPSByZXN1bHRzO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0b3Auc2VhcmNoUHJvcG9zYWxzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogaXNDb29yZCA/IFByb3Bvc2FsVHlwZS5Db29yZCA6IFByb3Bvc2FsVHlwZS5UZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgc291cmNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbWV0YSxcclxuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcmV2aW91c1N0b3BzID0gc2ltcGxpZmllZFN0b3BzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVTdG9wc0ZlYXR1cmUoKSB7XHJcbiAgICBjb25zdCBzdG9wcyA9IHRoaXMuc3RvcHNTdG9yZS5hbGwoKTtcclxuICAgIGNvbnN0IHN0b3BzV2l0aENvb3JkaW5hdGVzID0gc3RvcHMuZmlsdGVyKChzdG9wKSA9PiBzdG9wLmNvb3JkaW5hdGVzKTtcclxuICAgIHN0b3BzV2l0aENvb3JkaW5hdGVzLm1hcCgoc3RvcCkgPT4gdGhpcy5hZGRTdG9wT3ZlcmxheShzdG9wKSk7XHJcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlXHJcbiAgICAgIC5hbGwoKVxyXG4gICAgICAubWFwKChzdG9wRmVhdHVyZTogRmVhdHVyZTxGZWF0dXJlV2l0aFN0b3BQcm9wZXJ0aWVzPikgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zdG9wc1N0b3JlLmdldChzdG9wRmVhdHVyZS5wcm9wZXJ0aWVzLmlkKSkge1xyXG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5kZWxldGUoc3RvcEZlYXR1cmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICBjb25zdCBzdG9wc1dpdGhvdXRDb29yZGluYXRlcyA9IHN0b3BzLmZpbHRlcigoc3RvcCkgPT4gIXN0b3AuY29vcmRpbmF0ZXMpO1xyXG4gICAgc3RvcHNXaXRob3V0Q29vcmRpbmF0ZXMubWFwKChzdG9wKSA9PiB7XHJcbiAgICAgIGNvbnN0IHN0b3BGZWF0dXJlID0gdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5nZXQoc3RvcC5pZCk7XHJcbiAgICAgIGlmIChzdG9wRmVhdHVyZSkge1xyXG4gICAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUuZGVsZXRlKHN0b3BGZWF0dXJlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvdXRlcyhpc092ZXJ2aWV3OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHN0b3BzV2l0aENvb3JkaW5hdGVzID0gdGhpcy5zdG9wc1N0b3JlLnZpZXdcclxuICAgICAgLmFsbCgpXHJcbiAgICAgIC5maWx0ZXIoKHN0b3ApID0+IHN0b3AuY29vcmRpbmF0ZXMpO1xyXG4gICAgaWYgKHN0b3BzV2l0aENvb3JkaW5hdGVzLmxlbmd0aCA8IDIpIHtcclxuICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVsZXRlTWFueSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5hbGwoKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByb3VuZGVkQ29vcmRpbmF0ZXMgPSBzdG9wc1dpdGhDb29yZGluYXRlcy5tYXAoKHN0b3ApID0+IHtcclxuICAgICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxyXG4gICAgICAgIHN0b3AuY29vcmRpbmF0ZXMsXHJcbiAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gcm91bmRlZENvb3JkO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBvdmVydmlld0RpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge1xyXG4gICAgICBvdmVydmlldzogdHJ1ZSxcclxuICAgICAgc3RlcHM6IGZhbHNlLFxyXG4gICAgICBhbHRlcm5hdGl2ZXM6IGZhbHNlLFxyXG4gICAgICBjb250aW51ZV9zdHJhaWdodDogZmFsc2VcclxuICAgIH07XHJcbiAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5tYXAoKHUpID0+IHUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBjb25zdCByb3V0ZVJlc3BvbnNlID0gdGhpcy5kaXJlY3Rpb25zU2VydmljZS5yb3V0ZShcclxuICAgICAgcm91bmRlZENvb3JkaW5hdGVzLFxyXG4gICAgICBpc092ZXJ2aWV3ID8gb3ZlcnZpZXdEaXJlY3Rpb25zT3B0aW9ucyA6IHVuZGVmaW5lZFxyXG4gICAgKTtcclxuICAgIGlmIChyb3V0ZVJlc3BvbnNlKSB7XHJcbiAgICAgIHJvdXRlUmVzcG9uc2UubWFwKChyZXMpID0+XHJcbiAgICAgICAgdGhpcy5yb3V0ZXNRdWVyaWVzJCQucHVzaChcclxuICAgICAgICAgIHJlcy5zdWJzY3JpYmUoKGRpcmVjdGlvbnMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVsZXRlTWFueSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5hbGwoKSk7XHJcbiAgICAgICAgICAgIGRpcmVjdGlvbnMubWFwKChkaXJlY3Rpb24pID0+XHJcbiAgICAgICAgICAgICAgYWRkRGlyZWN0aW9uVG9Sb3V0ZXNGZWF0dXJlU3RvcmUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbixcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdGlvbixcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9PT0gZGlyZWN0aW9uc1swXSA/IHRydWUgOiBmYWxzZVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFN0b3BPdmVybGF5KHN0b3A6IFN0b3ApIHtcclxuICAgIGFkZFN0b3BUb1N0b3BzRmVhdHVyZVN0b3JlKFxyXG4gICAgICBzdG9wLFxyXG4gICAgICB0aGlzLnN0b3BzU3RvcmUsXHJcbiAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUsXHJcbiAgICAgIHRoaXMucHJvamVjdGlvbixcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvblRvZ2dsZURpcmVjdGlvbnNDb250cm9sKGlzQWN0aXZlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnF1ZXJ5U2VydmljZS5xdWVyeUVuYWJsZWQgPSAhaXNBY3RpdmU7XHJcbiAgICBjb25zdCBvbCA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbDtcclxuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XHJcbiAgICAgIGlzQWN0aXZlXHJcbiAgICAgICAgPyBvbC5hZGRJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcclxuICAgICAgICA6IG9sLnJlbW92ZUludGVyYWN0aW9uKGludGVyYWN0aW9uKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImRpcmVjdGlvbnMtb3B0aW9uc1wiPlxyXG4gIDxtYXQtc2xpZGUtdG9nZ2xlXHJcbiAgICBbY2hlY2tlZF09XCJkaXJlY3Rpb25Db250cm9sSXNBY3RpdmVcIlxyXG4gICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgKGNoYW5nZSk9XCJvblRvZ2dsZURpcmVjdGlvbnNDb250cm9sKCRldmVudC5jaGVja2VkKVwiXHJcbiAgPlxyXG4gICAge3sgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0udG9nZ2xlQWN0aXZlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuPC9kaXY+XHJcblxyXG48aWdvLWRpcmVjdGlvbnMtYnV0dG9uc1xyXG4gIFtzdGVwRmVhdHVyZVN0b3JlXT1cInN0ZXBGZWF0dXJlU3RvcmVcIlxyXG4gIFtjb250ZXh0VXJpXT1cImNvbnRleHRVcmlcIlxyXG4gIFt6b29tVG9BY3RpdmVSb3V0ZSRdPVwiem9vbVRvQWN0aXZlUm91dGUkXCJcclxuICBbcm91dGVzRmVhdHVyZVN0b3JlXT1cInJvdXRlc0ZlYXR1cmVTdG9yZVwiXHJcbiAgW3N0b3BzU3RvcmVdPVwic3RvcHNTdG9yZVwiXHJcbj48L2lnby1kaXJlY3Rpb25zLWJ1dHRvbnM+XHJcblxyXG48aWdvLWRpcmVjdGlvbnMtaW5wdXRzXHJcbiAgKHN0b3BJbnB1dEhhc0ZvY3VzKT1cIm9uU3RvcElucHV0SGFzRm9jdXNDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgW2Nvb3JkUm91bmRlZERlY2ltYWxzXT1cImNvb3JkUm91bmRlZERlY2ltYWxzXCJcclxuICBbcHJvamVjdGlvbl09XCJwcm9qZWN0aW9uXCJcclxuICBbc3RvcHNGZWF0dXJlU3RvcmVdPVwic3RvcHNGZWF0dXJlU3RvcmVcIlxyXG4gIFtzdG9wc1N0b3JlXT1cInN0b3BzU3RvcmVcIlxyXG4gIFtkZWJvdW5jZV09XCJkZWJvdW5jZVwiXHJcbiAgW2xlbmd0aF09XCJsZW5ndGhcIlxyXG4+PC9pZ28tZGlyZWN0aW9ucy1pbnB1dHM+XHJcblxyXG48aWdvLWRpcmVjdGlvbnMtcmVzdWx0c1xyXG4gIFtzdGVwRmVhdHVyZVN0b3JlXT1cInN0ZXBGZWF0dXJlU3RvcmVcIlxyXG4gIFtyb3V0ZXNGZWF0dXJlU3RvcmVdPVwicm91dGVzRmVhdHVyZVN0b3JlXCJcclxuPjwvaWdvLWRpcmVjdGlvbnMtcmVzdWx0cz5cclxuIl19
374
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd2RCxPQUFPLEtBQUssV0FBVyxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxhQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFHaEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFN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S0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDRyxrQkFBa0I7a0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBFbnRpdHlTdG9yZVdhdGNoZXIgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgQ2hhbmdlVXRpbHMsIE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IENvbGxlY3Rpb24gZnJvbSAnb2wvQ29sbGVjdGlvbic7XHJcbmltcG9ydCAqIGFzIG9sQ29uZGl0aW9uIGZyb20gJ29sL2V2ZW50cy9jb25kaXRpb24nO1xyXG5pbXBvcnQgKiBhcyBvbEludGVyYWN0aW9uIGZyb20gJ29sL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IHsgU2VsZWN0RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9TZWxlY3QnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL1RyYW5zbGF0ZSc7XHJcbmltcG9ydCAqIGFzIG9sUHJvaiBmcm9tICdvbC9wcm9qJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi4vZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9sb2FkaW5nJztcclxuaW1wb3J0IHsgcm91bmRDb29yZFRvLCBzdHJpbmdUb0xvbkxhdCB9IGZyb20gJy4uL21hcCc7XHJcbmltcG9ydCB7IFF1ZXJ5U2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5L3NoYXJlZC9xdWVyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzZWFyY2gsIFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaC9zaGFyZWQvc2VhcmNoLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2VhcmNoL3NoYXJlZC9zZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvblR5cGUsIFByb3Bvc2FsVHlwZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgRGlyZWN0aW9uT3B0aW9ucyxcclxuICBGZWF0dXJlV2l0aFN0b3BQcm9wZXJ0aWVzLFxyXG4gIFN0b3BcclxufSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBhZGREaXJlY3Rpb25Ub1JvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICBhZGRTdG9wVG9TdG9wc0ZlYXR1cmVTdG9yZSxcclxuICBhZGRTdG9wVG9TdG9yZSxcclxuICBpbml0Um91dGVzRmVhdHVyZVN0b3JlLFxyXG4gIGluaXRTdGVwRmVhdHVyZVN0b3JlLFxyXG4gIGluaXRTdG9wc0ZlYXR1cmVTdG9yZSxcclxuICB1cGRhdGVTdG9yZVNvcnRpbmdcclxufSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLnV0aWxzJztcclxuaW1wb3J0IHtcclxuICBSb3V0ZXNGZWF0dXJlU3RvcmUsXHJcbiAgU3RlcEZlYXR1cmVTdG9yZSxcclxuICBTdG9wc0ZlYXR1cmVTdG9yZSxcclxuICBTdG9wc1N0b3JlXHJcbn0gZnJvbSAnLi9zaGFyZWQvc3RvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tZGlyZWN0aW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RpcmVjdGlvbnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHdhdGNoZXI6IEVudGl0eVN0b3JlV2F0Y2hlcjxTdG9wPjtcclxuXHJcbiAgcHVibGljIHByb2plY3Rpb246IHN0cmluZyA9ICdFUFNHOjQzMjYnO1xyXG5cclxuICBwcml2YXRlIHpvb21Sb3V0ZSQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBzdG9yZUVtcHR5JCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHN0b3JlQ2hhbmdlJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHJvdXRlc1F1ZXJpZXMkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RTdG9wSW50ZXJhY3Rpb246IG9sSW50ZXJhY3Rpb24uU2VsZWN0O1xyXG4gIHByaXZhdGUgdHJhbnNsYXRlU3RvcDogb2xJbnRlcmFjdGlvbi5UcmFuc2xhdGU7XHJcbiAgcHJpdmF0ZSBzZWxlY3RlZFJvdXRlOiBvbEludGVyYWN0aW9uLlNlbGVjdDtcclxuICBwcml2YXRlIGZvY3VzT25TdG9wOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc1RyYW5zbGF0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBwcmV2aW91c1N0b3BzOiBTdG9wW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBzZWFyY2hzJCQ6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGNvbnRleHRVcmk6IHN0cmluZztcclxuICBASW5wdXQoKSBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlO1xyXG4gIEBJbnB1dCgpIHN0b3BzRmVhdHVyZVN0b3JlOiBTdG9wc0ZlYXR1cmVTdG9yZTtcclxuICBASW5wdXQoKSByb3V0ZXNGZWF0dXJlU3RvcmU6IFJvdXRlc0ZlYXR1cmVTdG9yZTtcclxuICBASW5wdXQoKSBzdGVwRmVhdHVyZVN0b3JlOiBTdGVwRmVhdHVyZVN0b3JlO1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlOiBudW1iZXIgPSAyMDA7XHJcbiAgQElucHV0KCkgbGVuZ3RoOiBudW1iZXIgPSAyO1xyXG4gIEBJbnB1dCgpIGNvb3JkUm91bmRlZERlY2ltYWxzOiBudW1iZXIgPSA2O1xyXG4gIEBJbnB1dCgpIHpvb21Ub0FjdGl2ZVJvdXRlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRlciBvbmUgb2YgdGhlIGRpcmVjdGlvbiBjb250cm9sIGlzIGFjdGl2ZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGdldCBkaXJlY3Rpb25Db250cm9sSXNBY3RpdmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZDtcclxuICB9XHJcblxyXG4gIGdldCBpbnRlcmFjdGlvbnMoKTogb2xJbnRlcmFjdGlvbi5JbnRlcmFjdGlvbltdIHtcclxuICAgIHJldHVybiBbdGhpcy5zZWxlY3RTdG9wSW50ZXJhY3Rpb24sIHRoaXMudHJhbnNsYXRlU3RvcCwgdGhpcy5zZWxlY3RlZFJvdXRlXTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU2VydmljZTogRGlyZWN0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHF1ZXJ5U2VydmljZTogUXVlcnlTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbml0RW50aXR5U3RvcmVzKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaW5pdFN0b3BzRmVhdHVyZVN0b3JlKHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUsIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlKTtcclxuICAgICAgaW5pdFJvdXRlc0ZlYXR1cmVTdG9yZSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZSwgdGhpcy5sYW5ndWFnZVNlcnZpY2UpO1xyXG4gICAgICBpbml0U3RlcEZlYXR1cmVTdG9yZSh0aGlzLnN0ZXBGZWF0dXJlU3RvcmUpO1xyXG4gICAgICB0aGlzLmluaXRPbEludGVyYWN0aW9uKCk7XHJcbiAgICB9LCAxKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5xdWVyeVNlcnZpY2UucXVlcnlFbmFibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuc3RvcmVFbXB0eSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN0b3JlQ2hhbmdlJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMucm91dGVzUXVlcmllcyQkLm1hcCgodSkgPT4gdS51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMuem9vbVJvdXRlJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuZnJlZXplU3RvcmVzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZyZWV6ZVN0b3JlcygpIHtcclxuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XHJcbiAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcclxuICAgICk7XHJcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmRlYWN0aXZhdGVTdHJhdGVneU9mVHlwZShcclxuICAgICAgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5XHJcbiAgICApO1xyXG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKFxyXG4gICAgICBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3lcclxuICAgICk7XHJcbiAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRFbnRpdHlTdG9yZXMoKSB7XHJcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgRW50aXR5U3RvcmVXYXRjaGVyKHRoaXMuc3RvcHNTdG9yZSwgdGhpcy5jZFJlZik7XHJcbiAgICB0aGlzLm1vbml0b3JFbXB0eUVudGl0eVN0b3JlKCk7XHJcbiAgICB0aGlzLm1vbml0b3JFbnRpdHlTdG9yZUNoYW5nZSgpO1xyXG4gICAgdGhpcy5tb25pdG9yQWN0aXZlUm91dGVab29tKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vbml0b3JBY3RpdmVSb3V0ZVpvb20oKSB7XHJcbiAgICB0aGlzLnpvb21Sb3V0ZSQkID0gdGhpcy56b29tVG9BY3RpdmVSb3V0ZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmNvdW50ID49IDEpIHtcclxuICAgICAgICBjb25zdCBhY3RpdmVSb3V0ZSA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlXHJcbiAgICAgICAgICAuYWxsKClcclxuICAgICAgICAgIC5maW5kKChyb3V0ZSkgPT4gcm91dGUucHJvcGVydGllcy5hY3RpdmUpO1xyXG5cclxuICAgICAgICBpZiAoYWN0aXZlUm91dGUpIHtcclxuICAgICAgICAgIGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCk7XHJcbiAgICAgICAgICBjb25zdCByb3V0ZUV4dGVudCA9IGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCk7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuem9vbVRvRXh0ZW50KFxyXG4gICAgICAgICAgICByb3V0ZUV4dGVudCBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0T2xJbnRlcmFjdGlvbigpIHtcclxuICAgIHRoaXMuc2VsZWN0U3RvcEludGVyYWN0aW9uID0gbmV3IG9sSW50ZXJhY3Rpb24uU2VsZWN0KHtcclxuICAgICAgbGF5ZXJzOiBbdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5vbF0sXHJcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcclxuICAgICAgY29uZGl0aW9uOiAoZXZlbnQpID0+IHtcclxuICAgICAgICByZXR1cm4gZXZlbnQudHlwZSA9PT0gJ3BvaW50ZXJtb3ZlJyAmJiAhZXZlbnQuZHJhZ2dpbmc7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlU3RvcCA9IG5ldyBvbEludGVyYWN0aW9uLlRyYW5zbGF0ZSh7XHJcbiAgICAgIGZlYXR1cmVzOiB0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbi5nZXRGZWF0dXJlcygpXHJcbiAgICB9KTtcclxuICAgIHRoaXMudHJhbnNsYXRlU3RvcC5vbigndHJhbnNsYXRpbmcnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmlzVHJhbnNsYXRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmV4ZWN1dGVTdG9wVHJhbnNsYXRpb24oZXZ0LmZlYXR1cmVzKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTdG9wLm9uKCd0cmFuc2xhdGVlbmQnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmlzVHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5leGVjdXRlU3RvcFRyYW5zbGF0aW9uKGV2dC5mZWF0dXJlcyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkUm91dGUgPSBuZXcgb2xJbnRlcmFjdGlvbi5TZWxlY3Qoe1xyXG4gICAgICBsYXllcnM6IFt0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5vbF0sXHJcbiAgICAgIGNvbmRpdGlvbjogb2xDb25kaXRpb24uY2xpY2ssXHJcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcclxuICAgICAgZmlsdGVyOiAoZmVhdHVyZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICBmZWF0dXJlLmdldCgndHlwZScpID09PSBEaXJlY3Rpb25UeXBlLlJvdXRlICYmXHJcbiAgICAgICAgICBmZWF0dXJlLmdldCgnYWN0aXZlJykgJiZcclxuICAgICAgICAgICF0aGlzLmlzVHJhbnNsYXRpbmdcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5vbignc2VsZWN0JywgKGV2dDogU2VsZWN0RXZlbnQpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9jdXNPblN0b3AgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0Q29vcmRpbmF0ZXMgPSByb3VuZENvb3JkVG8oXHJcbiAgICAgICAgICBvbFByb2oudHJhbnNmb3JtKFxyXG4gICAgICAgICAgICAoZXZ0IGFzIGFueSkubWFwQnJvd3NlckV2ZW50LmNvb3JkaW5hdGUsXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25cclxuICAgICAgICAgICkgYXMgW251bWJlciwgbnVtYmVyXSxcclxuICAgICAgICAgIHRoaXMuY29vcmRSb3VuZGVkRGVjaW1hbHNcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGFkZGVkU3RvcCA9IGFkZFN0b3BUb1N0b3JlKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgICAgICAgYWRkZWRTdG9wLnRleHQgPSBzZWxlY3RDb29yZGluYXRlcy5qb2luKCcsJyk7XHJcbiAgICAgICAgYWRkZWRTdG9wLmNvb3JkaW5hdGVzID0gW3NlbGVjdENvb3JkaW5hdGVzWzBdLCBzZWxlY3RDb29yZGluYXRlc1sxXV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XHJcbiAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5hZGRJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvblN0b3BJbnB1dEhhc0ZvY3VzQ2hhbmdlKHN0b3BJbnB1dEhhc0ZvY3VzOiBib29sZWFuKSB7XHJcbiAgICBzdG9wSW5wdXRIYXNGb2N1c1xyXG4gICAgICA/IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbihcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZVxyXG4gICAgICAgIClcclxuICAgICAgOiB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy5zZWxlY3RlZFJvdXRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhlY3V0ZVN0b3BUcmFuc2xhdGlvbihmZWF0dXJlczogQ29sbGVjdGlvbjxhbnk+KSB7XHJcbiAgICBpZiAoZmVhdHVyZXMuZ2V0TGVuZ3RoKCkgPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZmlyc3RGZWF0dXJlID0gZmVhdHVyZXMuZ2V0QXJyYXkoKVswXTtcclxuICAgIGNvbnN0IHRyYW5zbGF0ZWRTdG9wSWQgPSBmaXJzdEZlYXR1cmUuZ2V0SWQoKTtcclxuXHJcbiAgICBjb25zdCB0cmFuc2xhdGlvbkNvb3JkaW5hdGVzID0gb2xQcm9qLnRyYW5zZm9ybShcclxuICAgICAgZmlyc3RGZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0Q29vcmRpbmF0ZXMoKSxcclxuICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbixcclxuICAgICAgdGhpcy5wcm9qZWN0aW9uXHJcbiAgICApO1xyXG4gICAgY29uc3QgdHJhbnNsYXRlZFN0b3AgPSB0aGlzLnN0b3BzU3RvcmUuZ2V0KHRyYW5zbGF0ZWRTdG9wSWQpO1xyXG4gICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxyXG4gICAgICB0cmFuc2xhdGlvbkNvb3JkaW5hdGVzIGFzIFtudW1iZXIsIG51bWJlcl0sXHJcbiAgICAgIHRoaXMuY29vcmRSb3VuZGVkRGVjaW1hbHNcclxuICAgICk7XHJcbiAgICB0cmFuc2xhdGVkU3RvcC5jb29yZGluYXRlcyA9IHJvdW5kZWRDb29yZDtcclxuICAgIHRyYW5zbGF0ZWRTdG9wLnRleHQgPSByb3VuZGVkQ29vcmQuam9pbignLCcpO1xyXG4gICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZSh0cmFuc2xhdGVkU3RvcCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vbml0b3JFbXB0eUVudGl0eVN0b3JlKCkge1xyXG4gICAgLy8gV2F0Y2ggaWYgdGhlIHN0b3JlIGlzIGVtcHR5IHRvIHJlc2V0IGl0XHJcbiAgICB0aGlzLnN0b3JlRW1wdHkkJCA9IHRoaXMuc3RvcHNTdG9yZS5jb3VudCRcclxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgLnN1YnNjcmliZSgoY291bnQpID0+IHtcclxuICAgICAgICBpZiAoY291bnQgPCAyKSB7XHJcbiAgICAgICAgICBhZGRTdG9wVG9TdG9yZSh0aGlzLnN0b3BzU3RvcmUpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc3RvcHNTdG9yZS5jb3VudCA9PT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BzU3RvcmUuc3RvcmVJbml0aWFsaXplZCQubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zdG9wc1N0b3JlLnN0b3JlSW5pdGlhbGl6ZWQkLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5tYXAoKHUpID0+IHUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtb25pdG9yRW50aXR5U3RvcmVDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnN0b3JlQ2hhbmdlJCQgPSB0aGlzLnN0b3BzU3RvcmUuZW50aXRpZXMkXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlKSlcclxuICAgICAgLnN1YnNjcmliZSgoc3RvcHM6IFN0b3BbXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlU3RvcERpZmYoc3RvcHMpO1xyXG4gICAgICAgIHVwZGF0ZVN0b3JlU29ydGluZyh0aGlzLnN0b3BzU3RvcmUpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlU3RvcHNGZWF0dXJlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRSb3V0ZXModGhpcy5pc1RyYW5zbGF0aW5nKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaHMkJC5tYXAoKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVN0b3BEaWZmKHN0b3BzOiBTdG9wW10pIHtcclxuICAgIGNvbnN0IHNpbXBsaWZpZWRTdG9wcyA9IHN0b3BzLm1hcCgoc3RvcDogU3RvcCkgPT4ge1xyXG4gICAgICByZXR1cm4gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcclxuICAgICAgICAuLi57IGlkOiBzdG9wLmlkLCB0ZXh0OiBzdG9wLnRleHQsIGNvb3JkaW5hdGVzOiBzdG9wLmNvb3JkaW5hdGVzIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGRpZmYgPSBDaGFuZ2VVdGlscy5maW5kQ2hhbmdlcyh0aGlzLnByZXZpb3VzU3RvcHMsIHNpbXBsaWZpZWRTdG9wcywgW1xyXG4gICAgICAnY29vcmRpbmF0ZXMnXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IHN0b3BJZFRvUHJvY2VzcyA9IGRpZmYuYWRkZWQuY29uY2F0KGRpZmYubW9kaWZpZWQpO1xyXG4gICAgaWYgKHN0b3BJZFRvUHJvY2Vzcykge1xyXG4gICAgICBzdG9wSWRUb1Byb2Nlc3MubWFwKChjaGFuZ2UpID0+IHtcclxuICAgICAgICBjb25zdCBjaGFuZ2VkU3RvcCA9IGNoYW5nZS5uZXdWYWx1ZSBhcyBTdG9wO1xyXG4gICAgICAgIGlmIChjaGFuZ2VkU3RvcCkge1xyXG4gICAgICAgICAgY29uc3Qgc3RvcDogU3RvcCA9IHRoaXMuc3RvcHNTdG9yZS5nZXQoY2hhbmdlZFN0b3AuaWQpO1xyXG4gICAgICAgICAgY29uc3QgdGVybSA9IHN0b3AudGV4dDtcclxuICAgICAgICAgIGlmICghdGVybSB8fCB0ZXJtLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHN0cmluZ1RvTG9uTGF0KFxyXG4gICAgICAgICAgICB0ZXJtLFxyXG4gICAgICAgICAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgbGV0IHJlc2VhcmNoZXM6IFJlc2VhcmNoW107XHJcbiAgICAgICAgICBsZXQgaXNDb29yZCA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmxvbkxhdCkge1xyXG4gICAgICAgICAgICBpc0Nvb3JkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc2VhcmNoZXMgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRlcm0sIHtcclxuICAgICAgICAgICAgc2VhcmNoVHlwZTogJ0ZlYXR1cmUnXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuY2FuY2VsU2VhcmNoKCk7XHJcbiAgICAgICAgICBjb25zdCByZXF1ZXN0cyQgPSByZXNlYXJjaGVzLm1hcCgocmVzKSA9PlxyXG4gICAgICAgICAgICByZXMucmVxdWVzdC5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+XHJcbiAgICAgICAgICAgICAgICByZXN1bHRzLmZpbHRlcigocikgPT5cclxuICAgICAgICAgICAgICAgICAgaXNDb29yZFxyXG4gICAgICAgICAgICAgICAgICAgID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5XHJcbiAgICAgICAgICAgICAgICAgICAgOiByLmRhdGEuZ2VvbWV0cnlcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaHMkJCA9IHJlcXVlc3RzJC5tYXAoKHJlcXVlc3QpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RcclxuICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+XHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMuZmlsdGVyKChyKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIGlzQ29vcmRcclxuICAgICAgICAgICAgICAgICAgICAgID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICA6IHIuZGF0YS5nZW9tZXRyeVxyXG4gICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogU2VhcmNoUmVzdWx0W10pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSByZXNbMF0uc291cmNlO1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBtZXRhID0gcmVzWzBdLm1ldGE7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXMubWFwKChyKSA9PiByLmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoIXN0b3Auc2VhcmNoUHJvcG9zYWxzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC5zZWFyY2hQcm9wb3NhbHMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBzdG9wLnNlYXJjaFByb3Bvc2FscyA9IHN0b3Auc2VhcmNoUHJvcG9zYWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAoc3ApID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICBzcC50eXBlID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgKGlzQ29vcmQgPyBQcm9wb3NhbFR5cGUuQ29vcmQgOiBQcm9wb3NhbFR5cGUuVGV4dClcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHN0b3JlZFNvdXJjZSA9IHN0b3Auc2VhcmNoUHJvcG9zYWxzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgKHNwKSA9PiBzcC5zb3VyY2UgPT09IHNvdXJjZVxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoc3RvcmVkU291cmNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVkU291cmNlLnJlc3VsdHMgPSByZXN1bHRzO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0b3Auc2VhcmNoUHJvcG9zYWxzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogaXNDb29yZCA/IFByb3Bvc2FsVHlwZS5Db29yZCA6IFByb3Bvc2FsVHlwZS5UZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgc291cmNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbWV0YSxcclxuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcmV2aW91c1N0b3BzID0gc2ltcGxpZmllZFN0b3BzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVTdG9wc0ZlYXR1cmUoKSB7XHJcbiAgICBjb25zdCBzdG9wcyA9IHRoaXMuc3RvcHNTdG9yZS5hbGwoKTtcclxuICAgIGNvbnN0IHN0b3BzV2l0aENvb3JkaW5hdGVzID0gc3RvcHMuZmlsdGVyKChzdG9wKSA9PiBzdG9wLmNvb3JkaW5hdGVzKTtcclxuICAgIHN0b3BzV2l0aENvb3JkaW5hdGVzLm1hcCgoc3RvcCkgPT4gdGhpcy5hZGRTdG9wT3ZlcmxheShzdG9wKSk7XHJcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlXHJcbiAgICAgIC5hbGwoKVxyXG4gICAgICAubWFwKChzdG9wRmVhdHVyZTogRmVhdHVyZTxGZWF0dXJlV2l0aFN0b3BQcm9wZXJ0aWVzPikgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zdG9wc1N0b3JlLmdldChzdG9wRmVhdHVyZS5wcm9wZXJ0aWVzLmlkKSkge1xyXG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5kZWxldGUoc3RvcEZlYXR1cmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICBjb25zdCBzdG9wc1dpdGhvdXRDb29yZGluYXRlcyA9IHN0b3BzLmZpbHRlcigoc3RvcCkgPT4gIXN0b3AuY29vcmRpbmF0ZXMpO1xyXG4gICAgc3RvcHNXaXRob3V0Q29vcmRpbmF0ZXMubWFwKChzdG9wKSA9PiB7XHJcbiAgICAgIGNvbnN0IHN0b3BGZWF0dXJlID0gdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5nZXQoc3RvcC5pZCk7XHJcbiAgICAgIGlmIChzdG9wRmVhdHVyZSkge1xyXG4gICAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUuZGVsZXRlKHN0b3BGZWF0dXJlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvdXRlcyhpc092ZXJ2aWV3OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHN0b3BzV2l0aENvb3JkaW5hdGVzID0gdGhpcy5zdG9wc1N0b3JlLnZpZXdcclxuICAgICAgLmFsbCgpXHJcbiAgICAgIC5maWx0ZXIoKHN0b3ApID0+IHN0b3AuY29vcmRpbmF0ZXMpO1xyXG4gICAgaWYgKHN0b3BzV2l0aENvb3JkaW5hdGVzLmxlbmd0aCA8IDIpIHtcclxuICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVsZXRlTWFueSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5hbGwoKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByb3VuZGVkQ29vcmRpbmF0ZXMgPSBzdG9wc1dpdGhDb29yZGluYXRlcy5tYXAoKHN0b3ApID0+IHtcclxuICAgICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxyXG4gICAgICAgIHN0b3AuY29vcmRpbmF0ZXMsXHJcbiAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gcm91bmRlZENvb3JkO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBvdmVydmlld0RpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge1xyXG4gICAgICBvdmVydmlldzogdHJ1ZSxcclxuICAgICAgc3RlcHM6IGZhbHNlLFxyXG4gICAgICBhbHRlcm5hdGl2ZXM6IGZhbHNlLFxyXG4gICAgICBjb250aW51ZV9zdHJhaWdodDogZmFsc2VcclxuICAgIH07XHJcbiAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5tYXAoKHUpID0+IHUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBjb25zdCByb3V0ZVJlc3BvbnNlID0gdGhpcy5kaXJlY3Rpb25zU2VydmljZS5yb3V0ZShcclxuICAgICAgcm91bmRlZENvb3JkaW5hdGVzLFxyXG4gICAgICBpc092ZXJ2aWV3ID8gb3ZlcnZpZXdEaXJlY3Rpb25zT3B0aW9ucyA6IHVuZGVmaW5lZFxyXG4gICAgKTtcclxuICAgIGlmIChyb3V0ZVJlc3BvbnNlKSB7XHJcbiAgICAgIHJvdXRlUmVzcG9uc2UubWFwKChyZXMpID0+XHJcbiAgICAgICAgdGhpcy5yb3V0ZXNRdWVyaWVzJCQucHVzaChcclxuICAgICAgICAgIHJlcy5zdWJzY3JpYmUoKGRpcmVjdGlvbnMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVsZXRlTWFueSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5hbGwoKSk7XHJcbiAgICAgICAgICAgIGRpcmVjdGlvbnMubWFwKChkaXJlY3Rpb24pID0+XHJcbiAgICAgICAgICAgICAgYWRkRGlyZWN0aW9uVG9Sb3V0ZXNGZWF0dXJlU3RvcmUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbixcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdGlvbixcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9PT0gZGlyZWN0aW9uc1swXSA/IHRydWUgOiBmYWxzZVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFN0b3BPdmVybGF5KHN0b3A6IFN0b3ApIHtcclxuICAgIGFkZFN0b3BUb1N0b3BzRmVhdHVyZVN0b3JlKFxyXG4gICAgICBzdG9wLFxyXG4gICAgICB0aGlzLnN0b3BzU3RvcmUsXHJcbiAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUsXHJcbiAgICAgIHRoaXMucHJvamVjdGlvbixcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvblRvZ2dsZURpcmVjdGlvbnNDb250cm9sKGlzQWN0aXZlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnF1ZXJ5U2VydmljZS5xdWVyeUVuYWJsZWQgPSAhaXNBY3RpdmU7XHJcbiAgICBjb25zdCBvbCA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbDtcclxuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XHJcbiAgICAgIGlzQWN0aXZlXHJcbiAgICAgICAgPyBvbC5hZGRJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcclxuICAgICAgICA6IG9sLnJlbW92ZUludGVyYWN0aW9uKGludGVyYWN0aW9uKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImRpcmVjdGlvbnMtb3B0aW9uc1wiPlxyXG4gIDxtYXQtc2xpZGUtdG9nZ2xlXHJcbiAgICBbY2hlY2tlZF09XCJkaXJlY3Rpb25Db250cm9sSXNBY3RpdmVcIlxyXG4gICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgKGNoYW5nZSk9XCJvblRvZ2dsZURpcmVjdGlvbnNDb250cm9sKCRldmVudC5jaGVja2VkKVwiXHJcbiAgPlxyXG4gICAge3sgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0udG9nZ2xlQWN0aXZlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuPC9kaXY+XHJcblxyXG48aWdvLWRpcmVjdGlvbnMtYnV0dG9uc1xyXG4gIFtzdGVwRmVhdHVyZVN0b3JlXT1cInN0ZXBGZWF0dXJlU3RvcmVcIlxyXG4gIFtjb250ZXh0VXJpXT1cImNvbnRleHRVcmlcIlxyXG4gIFt6b29tVG9BY3RpdmVSb3V0ZSRdPVwiem9vbVRvQWN0aXZlUm91dGUkXCJcclxuICBbcm91dGVzRmVhdHVyZVN0b3JlXT1cInJvdXRlc0ZlYXR1cmVTdG9yZVwiXHJcbiAgW3N0b3BzU3RvcmVdPVwic3RvcHNTdG9yZVwiXHJcbj48L2lnby1kaXJlY3Rpb25zLWJ1dHRvbnM+XHJcblxyXG48aWdvLWRpcmVjdGlvbnMtaW5wdXRzXHJcbiAgKHN0b3BJbnB1dEhhc0ZvY3VzKT1cIm9uU3RvcElucHV0SGFzRm9jdXNDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgW2Nvb3JkUm91bmRlZERlY2ltYWxzXT1cImNvb3JkUm91bmRlZERlY2ltYWxzXCJcclxuICBbcHJvamVjdGlvbl09XCJwcm9qZWN0aW9uXCJcclxuICBbc3RvcHNGZWF0dXJlU3RvcmVdPVwic3RvcHNGZWF0dXJlU3RvcmVcIlxyXG4gIFtzdG9wc1N0b3JlXT1cInN0b3BzU3RvcmVcIlxyXG4gIFtkZWJvdW5jZV09XCJkZWJvdW5jZVwiXHJcbiAgW2xlbmd0aF09XCJsZW5ndGhcIlxyXG4+PC9pZ28tZGlyZWN0aW9ucy1pbnB1dHM+XHJcblxyXG48aWdvLWRpcmVjdGlvbnMtcmVzdWx0c1xyXG4gIFtzdGVwRmVhdHVyZVN0b3JlXT1cInN0ZXBGZWF0dXJlU3RvcmVcIlxyXG4gIFtyb3V0ZXNGZWF0dXJlU3RvcmVdPVwicm91dGVzRmVhdHVyZVN0b3JlXCJcclxuPjwvaWdvLWRpcmVjdGlvbnMtcmVzdWx0cz5cclxuIl19
@@ -1,5 +1,6 @@
1
- import { NgModule } from '@angular/core';
1
+ import { DragDropModule } from '@angular/cdk/drag-drop';
2
2
  import { CommonModule } from '@angular/common';
3
+ import { NgModule } from '@angular/core';
3
4
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
5
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
5
6
  import { MatButtonModule } from '@angular/material/button';
@@ -10,15 +11,14 @@ import { MatIconModule } from '@angular/material/icon';
10
11
  import { MatInputModule } from '@angular/material/input';
11
12
  import { MatListModule } from '@angular/material/list';
12
13
  import { MatSelectModule } from '@angular/material/select';
14
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
13
15
  import { MatTooltipModule } from '@angular/material/tooltip';
14
16
  import { IgoLanguageModule } from '@igo2/core';
15
- import { provideDirectionsSourceService } from './shared/directions-source.service';
16
- import { DragDropModule } from '@angular/cdk/drag-drop';
17
- import { DirectionsInputsComponent } from './directions-inputs/directions-inputs.component';
18
- import { DirectionsComponent } from './directions.component';
19
17
  import { DirectionsButtonsComponent } from './directions-buttons/directions-buttons.component';
18
+ import { DirectionsInputsComponent } from './directions-inputs/directions-inputs.component';
20
19
  import { DirectionsResultsComponent } from './directions-results/directions-results.component';
21
- import { MatSlideToggleModule } from '@angular/material/slide-toggle';
20
+ import { DirectionsComponent } from './directions.component';
21
+ import { provideDirectionsSourceService } from './shared/directions-source.service';
22
22
  import * as i0 from "@angular/core";
23
23
  export class IgoDirectionsModule {
24
24
  static forRoot() {
@@ -103,4 +103,4 @@ export class IgoDirectionsModule {
103
103
  DirectionsInputsComponent,
104
104
  DirectionsButtonsComponent,
105
105
  DirectionsResultsComponent] }); })();
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFtQ3RFLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLG1CQUFtQjtTQUM5QixDQUFDO0lBQ0osQ0FBQzs2RUFMVSxtQkFBbUI7NERBQW5CLG1CQUFtQjtpRUFGbkIsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLFlBN0IzQyxZQUFZO1lBQ1osY0FBYztZQUNkLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZUFBZTtZQUNmLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixpQkFBaUI7O3VGQWdCUixtQkFBbUI7Y0FqQy9CLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixjQUFjO29CQUNkLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGtCQUFrQjtvQkFDbEIsY0FBYztvQkFDZCxlQUFlO29CQUNmLGVBQWU7b0JBQ2Ysb0JBQW9CO29CQUNwQixnQkFBZ0I7b0JBQ2hCLHFCQUFxQjtvQkFDckIsaUJBQWlCO2lCQUNsQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsbUJBQW1CO29CQUNuQix5QkFBeUI7b0JBQ3pCLDBCQUEwQjtvQkFDMUIsMEJBQTBCO2lCQUMzQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osbUJBQW1CO29CQUNuQix5QkFBeUI7b0JBQ3pCLDBCQUEwQjtvQkFDMUIsMEJBQTBCO2lCQUMzQjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO2FBQzlDOzt3RkFDWSxtQkFBbUIsbUJBUDVCLG1CQUFtQjtRQUNuQix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLDBCQUEwQixhQTNCMUIsWUFBWTtRQUNaLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGVBQWU7UUFDZixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLGdCQUFnQjtRQUNoQixxQkFBcUI7UUFDckIsaUJBQWlCLGFBR2pCLG1CQUFtQjtRQUNuQix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IHByb3ZpZGVEaXJlY3Rpb25zU291cmNlU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGlvbnMtc291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWJ1dHRvbnMvZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLXJlc3VsdHMvZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdERpdmlkZXJNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdE9wdGlvbk1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICAgIElnb0xhbmd1YWdlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBEaXJlY3Rpb25zQ29tcG9uZW50LFxyXG4gICAgRGlyZWN0aW9uc0lucHV0c0NvbXBvbmVudCxcclxuICAgIERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50LFxyXG4gICAgRGlyZWN0aW9uc1Jlc3VsdHNDb21wb25lbnRcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRGlyZWN0aW9uc0NvbXBvbmVudCxcclxuICAgIERpcmVjdGlvbnNJbnB1dHNDb21wb25lbnQsXHJcbiAgICBEaXJlY3Rpb25zQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtwcm92aWRlRGlyZWN0aW9uc1NvdXJjZVNlcnZpY2UoKV1cclxufSlcclxuZXhwb3J0IGNsYXNzIElnb0RpcmVjdGlvbnNNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SWdvRGlyZWN0aW9uc01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IElnb0RpcmVjdGlvbnNNb2R1bGVcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFtQ3BGLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLG1CQUFtQjtTQUM5QixDQUFDO0lBQ0osQ0FBQzs2RUFMVSxtQkFBbUI7NERBQW5CLG1CQUFtQjtpRUFGbkIsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLFlBN0IzQyxZQUFZO1lBQ1osY0FBYztZQUNkLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZUFBZTtZQUNmLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixpQkFBaUI7O3VGQWdCUixtQkFBbUI7Y0FqQy9CLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixjQUFjO29CQUNkLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGtCQUFrQjtvQkFDbEIsY0FBYztvQkFDZCxlQUFlO29CQUNmLGVBQWU7b0JBQ2Ysb0JBQW9CO29CQUNwQixnQkFBZ0I7b0JBQ2hCLHFCQUFxQjtvQkFDckIsaUJBQWlCO2lCQUNsQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsbUJBQW1CO29CQUNuQix5QkFBeUI7b0JBQ3pCLDBCQUEwQjtvQkFDMUIsMEJBQTBCO2lCQUMzQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osbUJBQW1CO29CQUNuQix5QkFBeUI7b0JBQ3pCLDBCQUEwQjtvQkFDMUIsMEJBQTBCO2lCQUMzQjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO2FBQzlDOzt3RkFDWSxtQkFBbUIsbUJBUDVCLG1CQUFtQjtRQUNuQix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLDBCQUEwQixhQTNCMUIsWUFBWTtRQUNaLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGVBQWU7UUFDZixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLGdCQUFnQjtRQUNoQixxQkFBcUI7UUFDckIsaUJBQWlCLGFBR2pCLG1CQUFtQjtRQUNuQix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEaXJlY3Rpb25zQnV0dG9uc0NvbXBvbmVudCB9IGZyb20gJy4vZGlyZWN0aW9ucy1idXR0b25zL2RpcmVjdGlvbnMtYnV0dG9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zUmVzdWx0c0NvbXBvbmVudCB9IGZyb20gJy4vZGlyZWN0aW9ucy1yZXN1bHRzL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHByb3ZpZGVEaXJlY3Rpb25zU291cmNlU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGlvbnMtc291cmNlLnNlcnZpY2UnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIERpcmVjdGlvbnNDb21wb25lbnQsXHJcbiAgICBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50LFxyXG4gICAgRGlyZWN0aW9uc0J1dHRvbnNDb21wb25lbnQsXHJcbiAgICBEaXJlY3Rpb25zUmVzdWx0c0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBEaXJlY3Rpb25zQ29tcG9uZW50LFxyXG4gICAgRGlyZWN0aW9uc0lucHV0c0NvbXBvbmVudCxcclxuICAgIERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50LFxyXG4gICAgRGlyZWN0aW9uc1Jlc3VsdHNDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVEaXJlY3Rpb25zU291cmNlU2VydmljZSgpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvRGlyZWN0aW9uc01vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJZ29EaXJlY3Rpb25zTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogSWdvRGlyZWN0aW9uc01vZHVsZVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19