@igo2/geo 16.2.0 → 16.3.0

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 (298) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +3 -3
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +3 -3
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +3 -3
  4. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +3 -3
  5. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
  6. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +3 -3
  7. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
  8. package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
  9. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  10. package/esm2022/lib/catalog/shared/catalog.service.mjs +64 -26
  11. package/esm2022/lib/catalog/shared/catalogs.mjs +1 -1
  12. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +7 -1
  13. package/esm2022/lib/datasource/shared/capabilities.service.mjs +1 -1
  14. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  15. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  16. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  17. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +2 -2
  18. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +1 -1
  21. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  22. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
  23. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  24. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  25. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  26. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
  27. package/esm2022/lib/datasource/shared/datasources/index.mjs +1 -1
  28. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
  29. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
  30. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
  31. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  32. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
  33. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  34. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  35. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  36. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  37. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +1 -1
  38. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  39. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  40. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  41. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  42. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  43. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  44. package/esm2022/lib/datasource/shared/index.mjs +1 -1
  45. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +1 -1
  46. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +1 -1
  47. package/esm2022/lib/datasource/shared/options/options.service.mjs +1 -1
  48. package/esm2022/lib/datasource/utils/tilegrid.mjs +1 -1
  49. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +3 -3
  50. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +3 -3
  51. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +3 -3
  52. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  53. package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
  54. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
  55. package/esm2022/lib/directions/directions.component.mjs +3 -3
  56. package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
  57. package/esm2022/lib/directions/shared/directions.service.mjs +1 -1
  58. package/esm2022/lib/directions/shared/directions.utils.mjs +1 -1
  59. package/esm2022/lib/directions/shared/store.mjs +1 -1
  60. package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
  61. package/esm2022/lib/download/shared/download.service.mjs +1 -1
  62. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +3 -3
  63. package/esm2022/lib/draw/draw/draw-popup.component.mjs +3 -3
  64. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +3 -3
  65. package/esm2022/lib/draw/draw/draw.component.mjs +3 -3
  66. package/esm2022/lib/draw/shared/draw-icon.service.mjs +1 -1
  67. package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
  68. package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
  69. package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
  70. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  71. package/esm2022/lib/environment/index.mjs +1 -1
  72. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +3 -3
  73. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +3 -3
  74. package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
  75. package/esm2022/lib/feature/shared/index.mjs +1 -1
  76. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
  77. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  78. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +1 -1
  79. package/esm2022/lib/feature/shared/strategies/loading.mjs +1 -1
  80. package/esm2022/lib/feature/shared/strategies/selection.mjs +1 -1
  81. package/esm2022/lib/feature/shared/strategies.utils.mjs +1 -1
  82. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
  83. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +3 -3
  84. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +3 -3
  85. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +3 -3
  86. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +3 -3
  87. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +3 -3
  88. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +3 -3
  89. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +3 -3
  90. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
  91. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  92. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +1 -1
  93. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  94. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +1 -1
  95. package/esm2022/lib/filter/shared/time-filter.enum.mjs +1 -1
  96. package/esm2022/lib/filter/shared/time-filter.interface.mjs +1 -1
  97. package/esm2022/lib/filter/shared/time-filter.service.mjs +1 -1
  98. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +3 -3
  99. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +3 -3
  100. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +3 -3
  101. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +3 -3
  102. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +3 -3
  103. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +3 -3
  104. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +3 -3
  105. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +3 -3
  106. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +3 -3
  107. package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
  108. package/esm2022/lib/geometry/shared/controls/modify.mjs +1 -1
  109. package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
  110. package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
  111. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  112. package/esm2022/lib/geometry/shared/geometry.utils.mjs +1 -1
  113. package/esm2022/lib/import-export/export-button/export-button.component.mjs +3 -3
  114. package/esm2022/lib/import-export/shared/export.interface.mjs +1 -1
  115. package/esm2022/lib/import-export/shared/export.service.mjs +1 -1
  116. package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
  117. package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
  118. package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
  119. package/esm2022/lib/import-export/shared/import.interface.mjs +1 -1
  120. package/esm2022/lib/import-export/shared/import.service.mjs +1 -1
  121. package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
  122. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +3 -3
  123. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +3 -3
  124. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +3 -3
  125. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +3 -3
  126. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +3 -3
  127. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  128. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +3 -3
  129. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
  130. package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
  131. package/esm2022/lib/layer/shared/layer.service.mjs +6 -6
  132. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  133. package/esm2022/lib/layer/shared/layers/any-layer.mjs +1 -1
  134. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  135. package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
  136. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
  137. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  138. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
  139. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  140. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
  141. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  142. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  143. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +3 -3
  144. package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
  145. package/esm2022/lib/layer/utils/outputLegend.mjs +1 -1
  146. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +3 -3
  147. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +3 -3
  148. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +3 -3
  149. package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +1 -1
  150. package/esm2022/lib/map/home-extent-button/index.mjs +1 -1
  151. package/esm2022/lib/map/info-section/info-section.component.mjs +3 -3
  152. package/esm2022/lib/map/map-center/map-center.component.mjs +3 -3
  153. package/esm2022/lib/map/menu-button/menu-button.component.mjs +3 -3
  154. package/esm2022/lib/map/offline-button/offline-button.component.mjs +3 -3
  155. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +3 -3
  156. package/esm2022/lib/map/shared/controllers/controller.mjs +1 -1
  157. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +1 -1
  158. package/esm2022/lib/map/shared/controllers/index.mjs +1 -1
  159. package/esm2022/lib/map/shared/index.mjs +1 -1
  160. package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
  161. package/esm2022/lib/map/shared/map.interface.mjs +1 -1
  162. package/esm2022/lib/map/shared/map.utils.mjs +1 -1
  163. package/esm2022/lib/map/shared/projection.interfaces.mjs +1 -1
  164. package/esm2022/lib/map/shared/projection.service.mjs +1 -1
  165. package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
  166. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +3 -3
  167. package/esm2022/lib/map/utils/layer-watcher.mjs +1 -1
  168. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +3 -3
  169. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +3 -3
  170. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +3 -3
  171. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +3 -3
  172. package/esm2022/lib/measure/measurer/measurer.component.mjs +3 -3
  173. package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
  174. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  175. package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
  176. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
  177. package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
  178. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +1 -1
  179. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  180. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  181. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +1 -1
  182. package/esm2022/lib/offline/layerDB/index.mjs +1 -1
  183. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
  184. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +1 -1
  185. package/esm2022/lib/offline/shared/geo-network.service.mjs +1 -1
  186. package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
  187. package/esm2022/lib/overlay/shared/overlay.mjs +2 -2
  188. package/esm2022/lib/overlay/shared/overlay.service.mjs +1 -1
  189. package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
  190. package/esm2022/lib/print/print/print.component.mjs +3 -3
  191. package/esm2022/lib/print/print-form/print-form.component.mjs +3 -3
  192. package/esm2022/lib/print/shared/geopdf.mjs +1 -1
  193. package/esm2022/lib/print/shared/print.interface.mjs +1 -1
  194. package/esm2022/lib/print/shared/print.service.mjs +1 -1
  195. package/esm2022/lib/print/shared/print.type.mjs +1 -1
  196. package/esm2022/lib/query/shared/query-search-source.mjs +1 -1
  197. package/esm2022/lib/query/shared/query-search-source.providers.mjs +1 -1
  198. package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
  199. package/esm2022/lib/query/shared/query.utils.mjs +1 -1
  200. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +3 -3
  201. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +3 -3
  202. package/esm2022/lib/search/search-results/search-results-item.component.mjs +3 -3
  203. package/esm2022/lib/search/search-results/search-results.component.mjs +3 -3
  204. package/esm2022/lib/search/search-selector/search-selector.component.mjs +3 -3
  205. package/esm2022/lib/search/search-settings/search-settings.component.mjs +3 -3
  206. package/esm2022/lib/search/shared/search-source-service.providers.mjs +1 -1
  207. package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
  208. package/esm2022/lib/search/shared/search.enums.mjs +1 -1
  209. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  210. package/esm2022/lib/search/shared/search.service.mjs +1 -1
  211. package/esm2022/lib/search/shared/search.utils.mjs +1 -1
  212. package/esm2022/lib/search/shared/sources/cadastre.mjs +1 -1
  213. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +1 -1
  214. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  215. package/esm2022/lib/search/shared/sources/coordinates.mjs +1 -1
  216. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +1 -1
  217. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  218. package/esm2022/lib/search/shared/sources/icherche.mjs +1 -1
  219. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +1 -1
  220. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  221. package/esm2022/lib/search/shared/sources/ilayer.mjs +1 -1
  222. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +1 -1
  223. package/esm2022/lib/search/shared/sources/index.mjs +1 -1
  224. package/esm2022/lib/search/shared/sources/nominatim.mjs +2 -2
  225. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +1 -1
  226. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
  227. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  228. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  229. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
  230. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
  231. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +1 -1
  232. package/esm2022/lib/style/index.mjs +1 -1
  233. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +1 -1
  234. package/esm2022/lib/style/shared/feature/feature-style.mjs +1 -1
  235. package/esm2022/lib/style/shared/font.enum.mjs +1 -1
  236. package/esm2022/lib/style/shared/index.mjs +1 -1
  237. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +1 -1
  238. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
  239. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +1 -1
  240. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
  241. package/esm2022/lib/style/style-list/style-list.module.mjs +1 -1
  242. package/esm2022/lib/style/style-list/style-list.provider.mjs +1 -1
  243. package/esm2022/lib/style/style-list/style-list.service.mjs +1 -1
  244. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +3 -3
  245. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +3 -3
  246. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +3 -3
  247. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
  248. package/esm2022/lib/style/style-service/draw-style.service.mjs +1 -1
  249. package/esm2022/lib/style/style-service/style.service.mjs +1 -1
  250. package/esm2022/lib/toast/toast.component.mjs +3 -3
  251. package/esm2022/lib/utils/googleLinks.mjs +1 -1
  252. package/esm2022/lib/utils/id-generator.mjs +1 -1
  253. package/esm2022/lib/utils/osmLinks.mjs +1 -1
  254. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
  255. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +1 -1
  256. package/esm2022/lib/wkt/shared/wkt.service.mjs +15 -15
  257. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +3 -3
  258. package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
  259. package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
  260. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +1 -1
  261. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  262. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +1 -1
  263. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  264. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +1 -1
  265. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +1 -1
  266. package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
  267. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +3 -3
  268. package/fesm2022/igo2-geo.mjs +233 -190
  269. package/fesm2022/igo2-geo.mjs.map +1 -1
  270. package/lib/datasource/shared/capabilities.interface.d.ts +16 -0
  271. package/lib/overlay/shared/overlay.d.ts +1 -1
  272. package/package.json +5 -5
  273. package/src/geo-theme.scss +23 -23
  274. package/src/lib/catalog/catalog-browser/catalog-browser.theming.scss +22 -22
  275. package/src/lib/catalog/catalog.theming.scss +5 -5
  276. package/src/lib/directions/directions-results/directions-results.theming.scss +10 -10
  277. package/src/lib/directions/directions.theming.scss +6 -6
  278. package/src/lib/draw/draw.theming.scss +32 -32
  279. package/src/lib/feature/feature-details/feature-details.theming.scss +16 -16
  280. package/src/lib/feature/feature.theming.scss +4 -4
  281. package/src/lib/filter/filter.theming.scss +13 -13
  282. package/src/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -18
  283. package/src/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -5
  284. package/src/lib/layer/layer-item/layer-item.theme.scss +33 -33
  285. package/src/lib/layer/layer-legend/layer-legend.theming.scss +10 -10
  286. package/src/lib/layer/layer-list-tool/layer-list-tool.theming.scss +34 -34
  287. package/src/lib/layer/layer.theming.scss +10 -10
  288. package/src/lib/map/map-browser/map-browser.theming.scss +46 -46
  289. package/src/lib/map/map.theming.scss +9 -9
  290. package/src/lib/map/menu-button/menu-button.theming.scss +20 -20
  291. package/src/lib/map/zoom-button/zoom-button.theming.scss +32 -32
  292. package/src/lib/measure/measure.theming.scss +5 -5
  293. package/src/lib/measure/measurer/measurer.theming.scss +26 -26
  294. package/src/lib/search/search-results/search-results-item.theme.scss +20 -20
  295. package/src/lib/search/search.theming.scss +7 -7
  296. package/src/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
  297. package/src/lib/workspace/workspace.theming.scss +6 -6
  298. package/src/style/style.scss +1 -1
@@ -485,11 +485,11 @@ export class TimeFilterFormComponent {
485
485
  return moment.duration(step).asMilliseconds();
486
486
  }
487
487
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeFilterFormComponent, deps: [{ token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Component });
488
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeFilterFormComponent, selector: "igo-time-filter-form", inputs: { layer: "layer", options: "options", currentValue: "currentValue" }, outputs: { change: "change", yearChange: "yearChange" }, viewQueries: [{ propertyName: "mySlider", first: true, predicate: MatSlider, descendants: true }], ngImport: i0, template: "<div *ngIf=\"style === 'calendar' && type !== 'year'\">\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"datetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #datetimePicker\n type=\"{{ type }}\"\n openOnFocus=\"true\"\n timeInterval=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\n [matDatetimepicker]=\"datetimePicker\"\n [(ngModel)]=\"date\"\n [min]=\"min\"\n [max]=\"max\"\n readonly=\"readonly\"\n (dateChange)=\"handleDateChange($event)\"\n />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"isRange\">\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"minDatetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #minDatetimePicker\n type=\"{{ type }}\"\n openOnFocus=\"true\"\n timeInterval=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\n [matDatetimepicker]=\"minDatetimePicker\"\n [(ngModel)]=\"startDate\"\n [min]=\"min\"\n [max]=\"getRangeMaxDate()\"\n readonly=\"readonly\"\n (input)=\"(startDate)\"\n (dateChange)=\"handleDateChange($event)\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"maxDatetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #maxDatetimePicker\n type=\"{{ type }}\"\n openOnFocus=\"true\"\n timeInterval=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\n [matDatetimepicker]=\"maxDatetimePicker\"\n [(ngModel)]=\"endDate\"\n [min]=\"getRangeMinDate()\"\n [max]=\"max\"\n readonly=\"readonly\"\n (dateChange)=\"handleDateChange($event)\"\n />\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"style === 'calendar' && type === 'year'\">\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\n [(ngModel)]=\"year\"\n (selectionChange)=\"handleYearChange($event)\"\n >\n <mat-option [value]=\"year\" *ngFor=\"let year of listYears\">{{\n year\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"isRange\">\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\n [(ngModel)]=\"startYear\"\n (selectionChange)=\"handleYearChange($event)\"\n >\n <mat-option\n [value]=\"startYear\"\n *ngFor=\"let startYear of startListYears\"\n >{{ startYear }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\n [(ngModel)]=\"endYear\"\n (selectionChange)=\"handleYearChange($event)\"\n >\n <mat-option [value]=\"endYear\" *ngFor=\"let endYear of endListYears\">{{\n endYear\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<br />\n<div\n *ngIf=\"!isRange && style === 'slider' && type === 'year'\"\n class=\"igo-col igo-col-100 igo-col-100-m mat-typography\"\n>\n <span>{{ startYear }}</span>\n <!-- TODO: The 'tickInterval' property no longer exists -->\n <mat-slider\n id=\"time-slider\"\n step=\"{{ step }}\"\n [min]=\"startYear\"\n [max]=\"endYear\"\n [color]=\"color\"\n thumbLabel\n [disabled]=\"!options.enabled || !layer.visible\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"handleSliderValue()\"\n (input)=\"\n handleSliderYearChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n (change)=\"\n handleSliderYearChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n />\n </mat-slider>\n <span>{{ endYear }}</span>\n <p *ngIf=\"options.enabled\" class=\"date-below\">{{ year }}</p>\n <div #actions class=\"igo-layer-actions-container\">\n <mat-slide-toggle\n (change)=\"toggleFilterState()\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\n [color]=\"color\"\n [checked]=\"options.enabled\"\n [disabled]=\"!layer.visible\"\n >\n </mat-slide-toggle>\n <button\n [disabled]=\"!options.enabled || !layer.visible\"\n mat-icon-button\n color=\"primary\"\n (click)=\"playYear($event)\"\n >\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\n </button>\n <button\n [disabled]=\"!options.enabled || !layer.visible\"\n mat-icon-button\n color=\"primary\"\n (click)=\"resetFilter($event)\"\n >\n <mat-icon svgIcon=\"{{ resetIcon }}\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div\n *ngIf=\"style === 'slider' && type !== 'year'\"\n class=\"igo-col igo-col-100 igo-col-100-m\"\n>\n <!-- TODO: The 'tickInterval' property no longer exists -->\n <mat-slider\n id=\"time-slider\"\n step=\"{{ step }}\"\n [min]=\"dateToNumber(min)\"\n [max]=\"dateToNumber(max)\"\n thumbLabel\n (selectionChange)=\"handleSliderDateChange($event)\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"handleSliderValue()\"\n (input)=\"\n handleSliderDateChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n />\n </mat-slider>\n <p class=\"date-below\">{{ handleSliderTooltip() }}</p>\n <button mat-icon-button color=\"primary\" (click)=\"playFilter($event)\">\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host .igo-layer-filters-container{padding-left:5px}:host #time-slider{width:70%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host #time-slider{width:60%}}:host .date-below{margin:0}:host .igo-layer-actions-container{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatSlider, selector: "mat-slider", inputs: ["color", "disableRipple", "disabled", "discrete", "showTickMarks", "min", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i6.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "component", type: i7.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i12.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i12.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i12.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
488
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeFilterFormComponent, selector: "igo-time-filter-form", inputs: { layer: "layer", options: "options", currentValue: "currentValue" }, outputs: { change: "change", yearChange: "yearChange" }, viewQueries: [{ propertyName: "mySlider", first: true, predicate: MatSlider, descendants: true }], ngImport: i0, template: "<div *ngIf=\"style === 'calendar' && type !== 'year'\">\r\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle\r\n class=\"time-filter-mat-datetimepicker-toggle\"\r\n [for]=\"datetimePicker\"\r\n matSuffix\r\n ></mat-datetimepicker-toggle>\r\n <mat-datetimepicker\r\n #datetimePicker\r\n type=\"{{ type }}\"\r\n openOnFocus=\"true\"\r\n timeInterval=\"5\"\r\n ></mat-datetimepicker>\r\n <input\r\n matInput\r\n autocomplete=\"false\"\r\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\r\n [matDatetimepicker]=\"datetimePicker\"\r\n [(ngModel)]=\"date\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n readonly=\"readonly\"\r\n (dateChange)=\"handleDateChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngIf=\"isRange\">\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle\r\n class=\"time-filter-mat-datetimepicker-toggle\"\r\n [for]=\"minDatetimePicker\"\r\n matSuffix\r\n ></mat-datetimepicker-toggle>\r\n <mat-datetimepicker\r\n #minDatetimePicker\r\n type=\"{{ type }}\"\r\n openOnFocus=\"true\"\r\n timeInterval=\"5\"\r\n ></mat-datetimepicker>\r\n <input\r\n matInput\r\n autocomplete=\"false\"\r\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\r\n [matDatetimepicker]=\"minDatetimePicker\"\r\n [(ngModel)]=\"startDate\"\r\n [min]=\"min\"\r\n [max]=\"getRangeMaxDate()\"\r\n readonly=\"readonly\"\r\n (input)=\"(startDate)\"\r\n (dateChange)=\"handleDateChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle\r\n class=\"time-filter-mat-datetimepicker-toggle\"\r\n [for]=\"maxDatetimePicker\"\r\n matSuffix\r\n ></mat-datetimepicker-toggle>\r\n <mat-datetimepicker\r\n #maxDatetimePicker\r\n type=\"{{ type }}\"\r\n openOnFocus=\"true\"\r\n timeInterval=\"5\"\r\n ></mat-datetimepicker>\r\n <input\r\n matInput\r\n autocomplete=\"false\"\r\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\r\n [matDatetimepicker]=\"maxDatetimePicker\"\r\n [(ngModel)]=\"endDate\"\r\n [min]=\"getRangeMinDate()\"\r\n [max]=\"max\"\r\n readonly=\"readonly\"\r\n (dateChange)=\"handleDateChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"style === 'calendar' && type === 'year'\">\r\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\r\n <mat-form-field>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\r\n [(ngModel)]=\"year\"\r\n (selectionChange)=\"handleYearChange($event)\"\r\n >\r\n <mat-option [value]=\"year\" *ngFor=\"let year of listYears\">{{\r\n year\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngIf=\"isRange\">\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\r\n [(ngModel)]=\"startYear\"\r\n (selectionChange)=\"handleYearChange($event)\"\r\n >\r\n <mat-option\r\n [value]=\"startYear\"\r\n *ngFor=\"let startYear of startListYears\"\r\n >{{ startYear }}</mat-option\r\n >\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\r\n [(ngModel)]=\"endYear\"\r\n (selectionChange)=\"handleYearChange($event)\"\r\n >\r\n <mat-option [value]=\"endYear\" *ngFor=\"let endYear of endListYears\">{{\r\n endYear\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<br />\r\n<div\r\n *ngIf=\"!isRange && style === 'slider' && type === 'year'\"\r\n class=\"igo-col igo-col-100 igo-col-100-m mat-typography\"\r\n>\r\n <span>{{ startYear }}</span>\r\n <!-- TODO: The 'tickInterval' property no longer exists -->\r\n <mat-slider\r\n id=\"time-slider\"\r\n step=\"{{ step }}\"\r\n [min]=\"startYear\"\r\n [max]=\"endYear\"\r\n [color]=\"color\"\r\n thumbLabel\r\n [disabled]=\"!options.enabled || !layer.visible\"\r\n #ngSlider\r\n ><input\r\n matSliderThumb\r\n [value]=\"handleSliderValue()\"\r\n (input)=\"\r\n handleSliderYearChange({\r\n source: ngSliderThumb,\r\n parent: ngSlider,\r\n value: ngSliderThumb.value\r\n })\r\n \"\r\n #ngSliderThumb=\"matSliderThumb\"\r\n (change)=\"\r\n handleSliderYearChange({\r\n source: ngSliderThumb,\r\n parent: ngSlider,\r\n value: ngSliderThumb.value\r\n })\r\n \"\r\n />\r\n </mat-slider>\r\n <span>{{ endYear }}</span>\r\n <p *ngIf=\"options.enabled\" class=\"date-below\">{{ year }}</p>\r\n <div #actions class=\"igo-layer-actions-container\">\r\n <mat-slide-toggle\r\n (change)=\"toggleFilterState()\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\r\n [color]=\"color\"\r\n [checked]=\"options.enabled\"\r\n [disabled]=\"!layer.visible\"\r\n >\r\n </mat-slide-toggle>\r\n <button\r\n [disabled]=\"!options.enabled || !layer.visible\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"playYear($event)\"\r\n >\r\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\r\n </button>\r\n <button\r\n [disabled]=\"!options.enabled || !layer.visible\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"resetFilter($event)\"\r\n >\r\n <mat-icon svgIcon=\"{{ resetIcon }}\"></mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"style === 'slider' && type !== 'year'\"\r\n class=\"igo-col igo-col-100 igo-col-100-m\"\r\n>\r\n <!-- TODO: The 'tickInterval' property no longer exists -->\r\n <mat-slider\r\n id=\"time-slider\"\r\n step=\"{{ step }}\"\r\n [min]=\"dateToNumber(min)\"\r\n [max]=\"dateToNumber(max)\"\r\n thumbLabel\r\n (selectionChange)=\"handleSliderDateChange($event)\"\r\n #ngSlider\r\n ><input\r\n matSliderThumb\r\n [value]=\"handleSliderValue()\"\r\n (input)=\"\r\n handleSliderDateChange({\r\n source: ngSliderThumb,\r\n parent: ngSlider,\r\n value: ngSliderThumb.value\r\n })\r\n \"\r\n #ngSliderThumb=\"matSliderThumb\"\r\n />\r\n </mat-slider>\r\n <p class=\"date-below\">{{ handleSliderTooltip() }}</p>\r\n <button mat-icon-button color=\"primary\" (click)=\"playFilter($event)\">\r\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\r\n </button>\r\n</div>\r\n", styles: [":host .igo-layer-filters-container{padding-left:5px}:host #time-slider{width:70%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host #time-slider{width:60%}}:host .date-below{margin:0}:host .igo-layer-actions-container{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatSlider, selector: "mat-slider", inputs: ["color", "disableRipple", "disabled", "discrete", "showTickMarks", "min", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i6.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "component", type: i7.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i12.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i12.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i12.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
489
489
  }
490
490
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeFilterFormComponent, decorators: [{
491
491
  type: Component,
492
- args: [{ selector: 'igo-time-filter-form', template: "<div *ngIf=\"style === 'calendar' && type !== 'year'\">\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"datetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #datetimePicker\n type=\"{{ type }}\"\n openOnFocus=\"true\"\n timeInterval=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\n [matDatetimepicker]=\"datetimePicker\"\n [(ngModel)]=\"date\"\n [min]=\"min\"\n [max]=\"max\"\n readonly=\"readonly\"\n (dateChange)=\"handleDateChange($event)\"\n />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"isRange\">\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"minDatetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #minDatetimePicker\n type=\"{{ type }}\"\n openOnFocus=\"true\"\n timeInterval=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\n [matDatetimepicker]=\"minDatetimePicker\"\n [(ngModel)]=\"startDate\"\n [min]=\"min\"\n [max]=\"getRangeMaxDate()\"\n readonly=\"readonly\"\n (input)=\"(startDate)\"\n (dateChange)=\"handleDateChange($event)\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"maxDatetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #maxDatetimePicker\n type=\"{{ type }}\"\n openOnFocus=\"true\"\n timeInterval=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\n [matDatetimepicker]=\"maxDatetimePicker\"\n [(ngModel)]=\"endDate\"\n [min]=\"getRangeMinDate()\"\n [max]=\"max\"\n readonly=\"readonly\"\n (dateChange)=\"handleDateChange($event)\"\n />\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"style === 'calendar' && type === 'year'\">\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\n [(ngModel)]=\"year\"\n (selectionChange)=\"handleYearChange($event)\"\n >\n <mat-option [value]=\"year\" *ngFor=\"let year of listYears\">{{\n year\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"isRange\">\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\n [(ngModel)]=\"startYear\"\n (selectionChange)=\"handleYearChange($event)\"\n >\n <mat-option\n [value]=\"startYear\"\n *ngFor=\"let startYear of startListYears\"\n >{{ startYear }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\n [(ngModel)]=\"endYear\"\n (selectionChange)=\"handleYearChange($event)\"\n >\n <mat-option [value]=\"endYear\" *ngFor=\"let endYear of endListYears\">{{\n endYear\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<br />\n<div\n *ngIf=\"!isRange && style === 'slider' && type === 'year'\"\n class=\"igo-col igo-col-100 igo-col-100-m mat-typography\"\n>\n <span>{{ startYear }}</span>\n <!-- TODO: The 'tickInterval' property no longer exists -->\n <mat-slider\n id=\"time-slider\"\n step=\"{{ step }}\"\n [min]=\"startYear\"\n [max]=\"endYear\"\n [color]=\"color\"\n thumbLabel\n [disabled]=\"!options.enabled || !layer.visible\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"handleSliderValue()\"\n (input)=\"\n handleSliderYearChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n (change)=\"\n handleSliderYearChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n />\n </mat-slider>\n <span>{{ endYear }}</span>\n <p *ngIf=\"options.enabled\" class=\"date-below\">{{ year }}</p>\n <div #actions class=\"igo-layer-actions-container\">\n <mat-slide-toggle\n (change)=\"toggleFilterState()\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\n [color]=\"color\"\n [checked]=\"options.enabled\"\n [disabled]=\"!layer.visible\"\n >\n </mat-slide-toggle>\n <button\n [disabled]=\"!options.enabled || !layer.visible\"\n mat-icon-button\n color=\"primary\"\n (click)=\"playYear($event)\"\n >\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\n </button>\n <button\n [disabled]=\"!options.enabled || !layer.visible\"\n mat-icon-button\n color=\"primary\"\n (click)=\"resetFilter($event)\"\n >\n <mat-icon svgIcon=\"{{ resetIcon }}\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div\n *ngIf=\"style === 'slider' && type !== 'year'\"\n class=\"igo-col igo-col-100 igo-col-100-m\"\n>\n <!-- TODO: The 'tickInterval' property no longer exists -->\n <mat-slider\n id=\"time-slider\"\n step=\"{{ step }}\"\n [min]=\"dateToNumber(min)\"\n [max]=\"dateToNumber(max)\"\n thumbLabel\n (selectionChange)=\"handleSliderDateChange($event)\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"handleSliderValue()\"\n (input)=\"\n handleSliderDateChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n />\n </mat-slider>\n <p class=\"date-below\">{{ handleSliderTooltip() }}</p>\n <button mat-icon-button color=\"primary\" (click)=\"playFilter($event)\">\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host .igo-layer-filters-container{padding-left:5px}:host #time-slider{width:70%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host #time-slider{width:60%}}:host .date-below{margin:0}:host .igo-layer-actions-container{display:flex;align-items:center;justify-content:center}\n"] }]
492
+ args: [{ selector: 'igo-time-filter-form', template: "<div *ngIf=\"style === 'calendar' && type !== 'year'\">\r\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle\r\n class=\"time-filter-mat-datetimepicker-toggle\"\r\n [for]=\"datetimePicker\"\r\n matSuffix\r\n ></mat-datetimepicker-toggle>\r\n <mat-datetimepicker\r\n #datetimePicker\r\n type=\"{{ type }}\"\r\n openOnFocus=\"true\"\r\n timeInterval=\"5\"\r\n ></mat-datetimepicker>\r\n <input\r\n matInput\r\n autocomplete=\"false\"\r\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\r\n [matDatetimepicker]=\"datetimePicker\"\r\n [(ngModel)]=\"date\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n readonly=\"readonly\"\r\n (dateChange)=\"handleDateChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngIf=\"isRange\">\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle\r\n class=\"time-filter-mat-datetimepicker-toggle\"\r\n [for]=\"minDatetimePicker\"\r\n matSuffix\r\n ></mat-datetimepicker-toggle>\r\n <mat-datetimepicker\r\n #minDatetimePicker\r\n type=\"{{ type }}\"\r\n openOnFocus=\"true\"\r\n timeInterval=\"5\"\r\n ></mat-datetimepicker>\r\n <input\r\n matInput\r\n autocomplete=\"false\"\r\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\r\n [matDatetimepicker]=\"minDatetimePicker\"\r\n [(ngModel)]=\"startDate\"\r\n [min]=\"min\"\r\n [max]=\"getRangeMaxDate()\"\r\n readonly=\"readonly\"\r\n (input)=\"(startDate)\"\r\n (dateChange)=\"handleDateChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle\r\n class=\"time-filter-mat-datetimepicker-toggle\"\r\n [for]=\"maxDatetimePicker\"\r\n matSuffix\r\n ></mat-datetimepicker-toggle>\r\n <mat-datetimepicker\r\n #maxDatetimePicker\r\n type=\"{{ type }}\"\r\n openOnFocus=\"true\"\r\n timeInterval=\"5\"\r\n ></mat-datetimepicker>\r\n <input\r\n matInput\r\n autocomplete=\"false\"\r\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\r\n [matDatetimepicker]=\"maxDatetimePicker\"\r\n [(ngModel)]=\"endDate\"\r\n [min]=\"getRangeMinDate()\"\r\n [max]=\"max\"\r\n readonly=\"readonly\"\r\n (dateChange)=\"handleDateChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"style === 'calendar' && type === 'year'\">\r\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\r\n <mat-form-field>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\r\n [(ngModel)]=\"year\"\r\n (selectionChange)=\"handleYearChange($event)\"\r\n >\r\n <mat-option [value]=\"year\" *ngFor=\"let year of listYears\">{{\r\n year\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngIf=\"isRange\">\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\r\n [(ngModel)]=\"startYear\"\r\n (selectionChange)=\"handleYearChange($event)\"\r\n >\r\n <mat-option\r\n [value]=\"startYear\"\r\n *ngFor=\"let startYear of startListYears\"\r\n >{{ startYear }}</mat-option\r\n >\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\r\n [(ngModel)]=\"endYear\"\r\n (selectionChange)=\"handleYearChange($event)\"\r\n >\r\n <mat-option [value]=\"endYear\" *ngFor=\"let endYear of endListYears\">{{\r\n endYear\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<br />\r\n<div\r\n *ngIf=\"!isRange && style === 'slider' && type === 'year'\"\r\n class=\"igo-col igo-col-100 igo-col-100-m mat-typography\"\r\n>\r\n <span>{{ startYear }}</span>\r\n <!-- TODO: The 'tickInterval' property no longer exists -->\r\n <mat-slider\r\n id=\"time-slider\"\r\n step=\"{{ step }}\"\r\n [min]=\"startYear\"\r\n [max]=\"endYear\"\r\n [color]=\"color\"\r\n thumbLabel\r\n [disabled]=\"!options.enabled || !layer.visible\"\r\n #ngSlider\r\n ><input\r\n matSliderThumb\r\n [value]=\"handleSliderValue()\"\r\n (input)=\"\r\n handleSliderYearChange({\r\n source: ngSliderThumb,\r\n parent: ngSlider,\r\n value: ngSliderThumb.value\r\n })\r\n \"\r\n #ngSliderThumb=\"matSliderThumb\"\r\n (change)=\"\r\n handleSliderYearChange({\r\n source: ngSliderThumb,\r\n parent: ngSlider,\r\n value: ngSliderThumb.value\r\n })\r\n \"\r\n />\r\n </mat-slider>\r\n <span>{{ endYear }}</span>\r\n <p *ngIf=\"options.enabled\" class=\"date-below\">{{ year }}</p>\r\n <div #actions class=\"igo-layer-actions-container\">\r\n <mat-slide-toggle\r\n (change)=\"toggleFilterState()\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\r\n [color]=\"color\"\r\n [checked]=\"options.enabled\"\r\n [disabled]=\"!layer.visible\"\r\n >\r\n </mat-slide-toggle>\r\n <button\r\n [disabled]=\"!options.enabled || !layer.visible\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"playYear($event)\"\r\n >\r\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\r\n </button>\r\n <button\r\n [disabled]=\"!options.enabled || !layer.visible\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"resetFilter($event)\"\r\n >\r\n <mat-icon svgIcon=\"{{ resetIcon }}\"></mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"style === 'slider' && type !== 'year'\"\r\n class=\"igo-col igo-col-100 igo-col-100-m\"\r\n>\r\n <!-- TODO: The 'tickInterval' property no longer exists -->\r\n <mat-slider\r\n id=\"time-slider\"\r\n step=\"{{ step }}\"\r\n [min]=\"dateToNumber(min)\"\r\n [max]=\"dateToNumber(max)\"\r\n thumbLabel\r\n (selectionChange)=\"handleSliderDateChange($event)\"\r\n #ngSlider\r\n ><input\r\n matSliderThumb\r\n [value]=\"handleSliderValue()\"\r\n (input)=\"\r\n handleSliderDateChange({\r\n source: ngSliderThumb,\r\n parent: ngSlider,\r\n value: ngSliderThumb.value\r\n })\r\n \"\r\n #ngSliderThumb=\"matSliderThumb\"\r\n />\r\n </mat-slider>\r\n <p class=\"date-below\">{{ handleSliderTooltip() }}</p>\r\n <button mat-icon-button color=\"primary\" (click)=\"playFilter($event)\">\r\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\r\n </button>\r\n</div>\r\n", styles: [":host .igo-layer-filters-container{padding-left:5px}:host #time-slider{width:70%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host #time-slider{width:60%}}:host .date-below{margin:0}:host .igo-layer-actions-container{display:flex;align-items:center;justify-content:center}\n"] }]
493
493
  }], ctorParameters: function () { return [{ type: i1.DateAdapter }]; }, propDecorators: { layer: [{
494
494
  type: Input
495
495
  }], options: [{
@@ -504,4 +504,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
504
504
  type: ViewChild,
505
505
  args: [MatSlider]
506
506
  }] } });
507
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItZm9ybS90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1mb3JtL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUlyRCxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBUTdFLE1BQU0sT0FBTyx1QkFBdUI7SUFxSGQ7SUFwSFgsS0FBSyxDQUFRO0lBRWIsT0FBTyxDQUFvQjtJQUU3QixLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQ2xCLElBQUksQ0FBTztJQUNYLFNBQVMsQ0FBTztJQUNoQixPQUFPLENBQU87SUFDZCxJQUFJLENBQU07SUFDVixTQUFTLENBQU07SUFDZixPQUFPLENBQU07SUFDYixhQUFhLENBQU07SUFDbkIsV0FBVyxDQUFNO0lBQ2pCLFNBQVMsR0FBa0IsRUFBRSxDQUFDO0lBQzlCLGNBQWMsR0FBa0IsRUFBRSxDQUFDO0lBQ25DLFlBQVksR0FB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c0I7a0dBS3ZCLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBZ0JGLFlBQVk7c0JBRGYsS0FBSztnQkF1QkksTUFBTTtzQkFBZixNQUFNO2dCQUVQLFVBQVU7c0JBRFQsTUFBTTtnQkFFZSxRQUFRO3NCQUE3QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0U2xpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcclxuXHJcbmltcG9ydCBvbFNvdXJjZUltYWdlV01TIGZyb20gJ29sL3NvdXJjZS9JbWFnZVdNUyc7XHJcblxyXG5pbXBvcnQgeyBkZWZhdWx0IGFzIG1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcblxyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyU3R5bGUsIFRpbWVGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vc2hhcmVkL3RpbWUtZmlsdGVyLmVudW0nO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5pbnRlcmZhY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tdGltZS1maWx0ZXItZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGltZUZpbHRlckZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGxheWVyOiBMYXllcjtcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogVGltZUZpbHRlck9wdGlvbnM7XHJcblxyXG4gIHB1YmxpYyBjb2xvciA9ICdwcmltYXJ5JztcclxuICBwdWJsaWMgZGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgc3RhcnREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBlbmREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyB5ZWFyOiBhbnk7XHJcbiAgcHVibGljIHN0YXJ0WWVhcjogYW55O1xyXG4gIHB1YmxpYyBlbmRZZWFyOiBhbnk7XHJcbiAgcHVibGljIGluaXRTdGFydFllYXI6IGFueTtcclxuICBwdWJsaWMgaW5pdEVuZFllYXI6IGFueTtcclxuICBwdWJsaWMgbGlzdFllYXJzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgcHVibGljIHN0YXJ0TGlzdFllYXJzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgcHVibGljIGVuZExpc3RZZWFyczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBjdXJyZW50VmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IFRpbWVGaWx0ZXJUeXBlLllFQVIpIHtcclxuICAgICAgICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWUuc3BsaXQoJy8nKTtcclxuICAgICAgICBpZiAodmFsdWVBcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZSh2YWx1ZUFycmF5WzBdKTtcclxuICAgICAgICAgIGNvbnN0IGVuZERhdGUgPSBuZXcgRGF0ZSh2YWx1ZUFycmF5WzFdKTtcclxuICAgICAgICAgIGlmICghaXNOYU4oc3RhcnREYXRlLnZhbHVlT2YoKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUgPSBzdGFydERhdGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIWlzTmFOKGVuZERhdGUudmFsdWVPZigpKSkge1xyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUgPSBlbmREYXRlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGludGVydmFsOiBhbnk7XHJcbiAgcHVibGljIHBsYXlJY29uID0gJ3BsYXktY2lyY2xlJztcclxuICBwdWJsaWMgcmVzZXRJY29uID0gJ3JlcGxheSc7XHJcblxyXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlIHwgW0RhdGUsIERhdGVdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KClcclxuICB5ZWFyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZChNYXRTbGlkZXIpIG15U2xpZGVyO1xyXG5cclxuICBnZXQgdHlwZSgpOiBUaW1lRmlsdGVyVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnR5cGUgPT09IHVuZGVmaW5lZFxyXG4gICAgICA/IFRpbWVGaWx0ZXJUeXBlLkRBVEVcclxuICAgICAgOiB0aGlzLm9wdGlvbnMudHlwZTtcclxuICB9XHJcblxyXG4gIGdldCBpc1JhbmdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5yYW5nZSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgIHRoaXMub3B0aW9ucy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUlxyXG4gICAgICA/IGZhbHNlXHJcbiAgICAgIDogdGhpcy5vcHRpb25zLnJhbmdlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0eWxlKCk6IFRpbWVGaWx0ZXJTdHlsZSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnN0eWxlID09PSB1bmRlZmluZWRcclxuICAgICAgPyBUaW1lRmlsdGVyU3R5bGUuU0xJREVSXHJcbiAgICAgIDogdGhpcy5vcHRpb25zLnN0eWxlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0ZXAoKTogbnVtYmVyIHtcclxuICAgIGxldCBzdGVwID0gMTA4MDAwMDA7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLnN0ZXAgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuREFURTpcclxuICAgICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLkRBVEVUSU1FOlxyXG4gICAgICAgICAgc3RlcCA9IDEwODAwMDAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5USU1FOlxyXG4gICAgICAgICAgc3RlcCA9IDM2MDAwMDA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLllFQVI6XHJcbiAgICAgICAgICBzdGVwID0gMzE1MzYwMDAwMDA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgc3RlcCA9IDEwODAwMDAwO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdGVwID0gdGhpcy5nZXRTdGVwRGVmaW5pdGlvbih0aGlzLm9wdGlvbnMuc3RlcCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHN0ZXA7XHJcbiAgfVxyXG5cclxuICBnZXQgdGltZUludGVydmFsKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRpbWVJbnRlcnZhbCA9PT0gdW5kZWZpbmVkXHJcbiAgICAgID8gMjAwMFxyXG4gICAgICA6IHRoaXMub3B0aW9ucy50aW1lSW50ZXJ2YWw7XHJcbiAgfVxyXG5cclxuICBnZXQgbWluKCk6IERhdGUge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5taW4pIHtcclxuICAgICAgY29uc3QgbWluID0gbmV3IERhdGUodGhpcy5vcHRpb25zLm1pbik7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShtaW4uZ2V0VGltZSgpICsgbWluLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IG1heCgpOiBEYXRlIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMubWF4KSB7XHJcbiAgICAgIGNvbnN0IG1heCA9IG5ldyBEYXRlKHRoaXMub3B0aW9ucy5tYXgpO1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUobWF4LmdldFRpbWUoKSArIG1heC5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBpcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmFuZ2UgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogdGhpcy5vcHRpb25zLnJhbmdlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4pIHtcclxuICAgIHRoaXMuZGF0ZUFkYXB0ZXIuc2V0TG9jYWxlKCdmcicpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zdGFydERhdGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHRoaXMubWluKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmVuZERhdGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBuZXcgRGF0ZSh0aGlzLm1heCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdGFydFllYXIgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0YXJ0WWVhciA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICB0aGlzLmluaXRTdGFydFllYXIgPSB0aGlzLnN0YXJ0WWVhcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmVuZFllYXIgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmVuZFllYXIgPSBuZXcgRGF0ZSh0aGlzLmVuZERhdGUpLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIHRoaXMuaW5pdEVuZFllYXIgPSB0aGlzLmVuZFllYXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmlzUmFuZ2UpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhcnRZZWFyOyBpIDw9IHRoaXMuZW5kWWVhciArIDE7IGkrKykge1xyXG4gICAgICAgIHRoaXMubGlzdFllYXJzLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0WWVhcjsgaSA8IHRoaXMuZW5kWWVhcjsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydExpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0WWVhciArIDE7IGkgPD0gdGhpcy5lbmRZZWFyOyBpKyspIHtcclxuICAgICAgICB0aGlzLmVuZExpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLm9wdGlvbnMuZW5hYmxlZCA9XHJcbiAgICAgIHRoaXMub3B0aW9ucy5lbmFibGVkID09PSB1bmRlZmluZWQgPyB0cnVlIDogdGhpcy5vcHRpb25zLmVuYWJsZWQ7XHJcbiAgICB0aGlzLmNoZWNrRmlsdGVyVmFsdWUoKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuZW5hYmxlZCkge1xyXG4gICAgICBpZiAoIXRoaXMuaXNSYW5nZSAmJiB0aGlzLnN0eWxlID09PSAnc2xpZGVyJyAmJiB0aGlzLnR5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmVDdXJyZW50RmlsdGVyVmFsdWUoKTtcclxuICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQodW5kZWZpbmVkKTsgLy8gVE9ETzogRklYIFRISVMgZm9yIEFMTCBPVEhFUiBUWVBFUyBTVFlMRVMgT1IgUkFOR0UuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdG9yZUN1cnJlbnRGaWx0ZXJWYWx1ZSgpIHtcclxuICAgIC8vIFRPRE86IEZJWCBUSElTIGZvciBBTEwgT1RIRVIgVFlQRVMgU1RZTEVTIE9SIFJBTkdFLlxyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5pc1JhbmdlICYmXHJcbiAgICAgIHRoaXMuc3R5bGUgPT09IFRpbWVGaWx0ZXJTdHlsZS5TTElERVIgJiZcclxuICAgICAgdGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5vcHRpb25zLnZhbHVlID0gdGhpcy55ZWFyLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0ZpbHRlclZhbHVlKCkge1xyXG4gICAgY29uc3Qgb2xTb3VyY2UgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wgYXMgb2xTb3VyY2VJbWFnZVdNUztcclxuICAgIGNvbnN0IHRpbWVGcm9tV21zID0gb2xTb3VyY2UuZ2V0UGFyYW1zKCkuVElNRTtcclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuaXNSYW5nZSAmJlxyXG4gICAgICB0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuU0xJREVSICYmXHJcbiAgICAgIHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUlxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aW1lRnJvbVdtcykge1xyXG4gICAgICAgIHRoaXMueWVhciA9IG5ldyBEYXRlKHRpbWVGcm9tV21zLnRvU3RyaW5nKCkpLmdldEZ1bGxZZWFyKCkgKyAxO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMueWVhciA9IG5ldyBEYXRlKHRoaXMub3B0aW9ucy52YWx1ZS50b1N0cmluZygpKS5nZXRGdWxsWWVhcigpICsgMTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnllYXIgPSBuZXcgRGF0ZSh0aGlzLm1pbikuZ2V0RnVsbFllYXIoKSArIDE7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuaXNSYW5nZSAmJlxyXG4gICAgICB0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVIgJiZcclxuICAgICAgdGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRpbWVGcm9tV21zKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydFllYXIgPSBwYXJzZUludCh0aW1lRnJvbVdtcy5zdWJzdHIoMCwgNCksIDEwKTtcclxuICAgICAgICB0aGlzLmVuZFllYXIgPSBwYXJzZUludCh0aW1lRnJvbVdtcy5zdWJzdHIoNSwgNCksIDEwKTtcclxuICAgICAgICBjb25zdCBuZXdTdGFydExpc3RZZWFyczogYW55W10gPSBbXTtcclxuICAgICAgICBjb25zdCBuZXdFbmRMaXN0WWVhcnM6IGFueVtdID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuaW5pdFN0YXJ0WWVhcjsgaSA8IHRoaXMuZW5kWWVhcjsgaSsrKSB7XHJcbiAgICAgICAgICBuZXdTdGFydExpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXIgKyAxOyBpIDw9IHRoaXMuaW5pdEVuZFllYXI7IGkrKykge1xyXG4gICAgICAgICAgbmV3RW5kTGlzdFllYXJzLnB1c2goaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3RhcnRMaXN0WWVhcnMgPSBuZXdTdGFydExpc3RZZWFycztcclxuICAgICAgICB0aGlzLmVuZExpc3RZZWFycyA9IG5ld0VuZExpc3RZZWFycztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gVE9ETzogRklYIFRISVMgZm9yIEFMTCBPVEhFUiBUWVBFUyBTVFlMRVMgT1IgUkFOR0UuXHJcbiAgfVxyXG5cclxuICBoYW5kbGVEYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2V0dXBEYXRlT3V0cHV0KCk7XHJcbiAgICB0aGlzLmFwcGx5VHlwZUNoYW5nZSgpO1xyXG5cclxuICAgIC8vIE9ubHkgaWYgaXMgcmFuZ2UsIHVzZSAyIGRhdGVzIHRvIG1ha2UgdGhlIHJhbmdlXHJcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQoW3RoaXMuc3RhcnREYXRlLCB0aGlzLmVuZERhdGVdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5zdGFydERhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlWWVhckNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XHJcbiAgICAgIHRoaXMuZW5kTGlzdFllYXJzID0gW107XHJcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0WWVhciArIDE7IGkgPD0gdGhpcy5pbml0RW5kWWVhcjsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5lbmRMaXN0WWVhcnMucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXJ0TGlzdFllYXJzID0gW107XHJcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLmluaXRTdGFydFllYXIgKyAxOyBpIDwgdGhpcy5lbmRZZWFyOyBpKyspIHtcclxuICAgICAgICB0aGlzLnN0YXJ0TGlzdFllYXJzLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQoW3RoaXMuc3RhcnRZZWFyLCB0aGlzLmVuZFllYXJdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVMaXN0WWVhckNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmhhbmRsZVllYXJDaGFuZ2UoW3RoaXMuc3RhcnRZZWFyLCB0aGlzLmVuZFllYXJdKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUxpc3RZZWFyU3RhcnRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdChbdGhpcy5zdGFydERhdGUsIHRoaXMuZW5kRGF0ZV0pO1xyXG4gIH1cclxuXHJcbiAgZGF0ZVRvTnVtYmVyKGRhdGU6IERhdGUpOiBudW1iZXIge1xyXG4gICAgbGV0IG5ld0RhdGU7XHJcbiAgICBpZiAoZGF0ZSkge1xyXG4gICAgICBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdEYXRlID0gbmV3IERhdGUodGhpcy5taW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXdEYXRlLmdldFRpbWUoKTtcclxuICB9XHJcblxyXG4gIHNldFNsaWRlclRodW1iTGFiZWwobGFiZWw6IHN0cmluZykge1xyXG4gICAgY29uc3QgdGh1bWJMYWJlbCA9IHRoaXMuZmluZFRodW1iTGFiZWwoXHJcbiAgICAgIHRoaXMubXlTbGlkZXIuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzXHJcbiAgICApO1xyXG4gICAgaWYgKHRodW1iTGFiZWwpIHtcclxuICAgICAgdGh1bWJMYWJlbC50ZXh0Q29udGVudCA9IGxhYmVsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmluZFRodW1iTGFiZWwodGVzdDogYW55W10pOiBhbnkge1xyXG4gICAgbGV0IHRodW1iTGFiZWw7XHJcblxyXG4gICAgdGVzdC5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAodmFsdWUuY2xhc3NOYW1lID09PSAnbWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0Jykge1xyXG4gICAgICAgIHRodW1iTGFiZWwgPSB2YWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZhbHVlLmNoaWxkcmVuLmxlbmd0aCA+IDAgJiYgIXRodW1iTGFiZWwpIHtcclxuICAgICAgICB0aHVtYkxhYmVsID0gdGhpcy5maW5kVGh1bWJMYWJlbCh2YWx1ZS5jaGlsZE5vZGVzKTtcclxuICAgICAgfVxyXG4gICAgfSwgdGhpcyk7XHJcbiAgICByZXR1cm4gdGh1bWJMYWJlbDtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUZpbHRlclN0YXRlKCkge1xyXG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZWQgPSAhdGhpcy5vcHRpb25zLmVuYWJsZWQ7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5lbmFibGVkKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAhdGhpcy5pc1JhbmdlICYmXHJcbiAgICAgICAgVGltZUZpbHRlclN0eWxlLlNMSURFUiAmJlxyXG4gICAgICAgIHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUlxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3BGaWx0ZXIoKTtcclxuICAgICAgdGhpcy5zdG9yZUN1cnJlbnRGaWx0ZXJWYWx1ZSgpO1xyXG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHVuZGVmaW5lZCk7IC8vIFRPRE86IEZJWCBUSElTIGZvciBBTEwgT1RIRVIgVFlQRVMgU1RZTEVTIE9SIFJBTkdFLlxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRGaWx0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5kYXRlID0gbmV3IERhdGUodGhpcy5taW4pO1xyXG4gICAgdGhpcy55ZWFyID0gdGhpcy5kYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmlzUmFuZ2UgJiZcclxuICAgICAgVGltZUZpbHRlclN0eWxlLlNMSURFUiAmJlxyXG4gICAgICB0aGlzLnR5cGUgPT09IFRpbWVGaWx0ZXJUeXBlLllFQVJcclxuICAgICkge1xyXG4gICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXR1cERhdGVPdXRwdXQoKTtcclxuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh1bmRlZmluZWQpOyAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBsYXlGaWx0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcclxuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBsYXlJY29uID0gJ3BhdXNlLWNpcmNsZSc7XHJcbiAgICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChcclxuICAgICAgICAodGhhdCkgPT4ge1xyXG4gICAgICAgICAgbGV0IG5ld01pbkRhdGVOdW1iZXI7XHJcbiAgICAgICAgICBjb25zdCBtYXhEYXRlTnVtYmVyID0gbmV3IERhdGUodGhhdC5tYXgpO1xyXG5cclxuICAgICAgICAgIG5ld01pbkRhdGVOdW1iZXIgPVxyXG4gICAgICAgICAgICB0aGF0LmRhdGUgPT09IHVuZGVmaW5lZCA/IHRoYXQubWluLmdldFRpbWUoKSA6IHRoYXQuZGF0ZS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICBuZXdNaW5EYXRlTnVtYmVyICs9IHRoYXQubXlTbGlkZXIuc3RlcDtcclxuICAgICAgICAgIHRoYXQuZGF0ZSA9IG5ldyBEYXRlKG5ld01pbkRhdGVOdW1iZXIpO1xyXG5cclxuICAgICAgICAgIGlmIChuZXdNaW5EYXRlTnVtYmVyID4gbWF4RGF0ZU51bWJlci5nZXRUaW1lKCkpIHtcclxuICAgICAgICAgICAgdGhhdC5zdG9wRmlsdGVyKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhhdC5oYW5kbGVEYXRlQ2hhbmdlKHsgdmFsdWU6IHRoYXQuZGF0ZSwgZGF0ZTogdGhhdC5kYXRlIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGhpcy50aW1lSW50ZXJ2YWwsXHJcbiAgICAgICAgdGhpc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcGxheVllYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnllYXIgKyB0aGlzLm15U2xpZGVyLnN0ZXAgPlxyXG4gICAgICB0aGlzLm1heC5nZXRGdWxsWWVhcigpICsgdGhpcy5teVNsaWRlci5zdGVwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XHJcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXIoZXZlbnQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcclxuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBsYXlJY29uID0gJ3BhdXNlLWNpcmNsZSc7XHJcbiAgICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy55ZWFyICsgdGhpcy5teVNsaWRlci5zdGVwID4gdGhpcy5tYXguZ2V0RnVsbFllYXIoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BGaWx0ZXIoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMueWVhciA9IHRoaXMueWVhciArIHRoaXMubXlTbGlkZXIuc3RlcDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aGlzLnRpbWVJbnRlcnZhbCxcclxuICAgICAgICB0aGlzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdG9wRmlsdGVyKCkge1xyXG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJ2YWwgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnBsYXlJY29uID0gJ3BsYXktY2lyY2xlJztcclxuICB9XHJcblxyXG4gIGhhbmRsZVNsaWRlckRhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5kYXRlID0gbmV3IERhdGUoZXZlbnQudmFsdWUpO1xyXG4gICAgdGhpcy5zZXRTbGlkZXJUaHVtYkxhYmVsKHRoaXMuaGFuZGxlU2xpZGVyVG9vbHRpcCgpKTtcclxuICAgIHRoaXMuaGFuZGxlRGF0ZUNoYW5nZShldmVudCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTbGlkZXJZZWFyQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMueWVhciA9IGV2ZW50LnZhbHVlO1xyXG4gICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQodGhpcy55ZWFyKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNsaWRlclZhbHVlKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmN1cnJlbnQgPT09IHRydWUgfHwgIXRoaXMubWluKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgdGhpcy5kYXRlID0gdGhpcy5nZXRSb3VuZGVkRGF0ZShjdXJyZW50RGF0ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnllYXI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRlID09PSB1bmRlZmluZWQgPyB0aGlzLm1pbi5nZXRUaW1lKCkgOiB0aGlzLmRhdGUuZ2V0VGltZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2xpZGVyVG9vbHRpcCgpIHtcclxuICAgIGxldCBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XHJcbiAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuREFURTpcclxuICAgICAgICBsYWJlbCA9XHJcbiAgICAgICAgICB0aGlzLmRhdGUgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA/IHRoaXMubWluLnRvRGF0ZVN0cmluZygpXHJcbiAgICAgICAgICAgIDogdGhpcy5kYXRlLnRvRGF0ZVN0cmluZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLlRJTUU6XHJcbiAgICAgICAgbGFiZWwgPVxyXG4gICAgICAgICAgdGhpcy5kYXRlID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgPyB0aGlzLm1pbi50b1RpbWVTdHJpbmcoKVxyXG4gICAgICAgICAgICA6IHRoaXMuZGF0ZS50b1RpbWVTdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgLy8gZGF0ZXRpbWVcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBsYWJlbCA9XHJcbiAgICAgICAgICB0aGlzLmRhdGUgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA/IHRoaXMubWluLnRvVVRDU3RyaW5nKClcclxuICAgICAgICAgICAgOiB0aGlzLmRhdGUudG9VVENTdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBzZXR1cERhdGVPdXRwdXQoKSB7XHJcbiAgICBpZiAodGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUikge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGF0ZSk7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlLnNldFNlY29uZHMoLSh0aGlzLnN0ZXAgLyAxMDAwKSk7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKTtcclxuICAgICAgdGhpcy5lbmREYXRlLnNldFNlY29uZHModGhpcy5zdGVwIC8gMTAwMCk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzUmFuZ2UgJiYgISF0aGlzLmRhdGUpIHtcclxuICAgICAgdGhpcy5lbmREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlKTtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSh0aGlzLmRhdGUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzUmFuZ2UgJiYgKCEhdGhpcy5kYXRlIHx8ICF0aGlzLmRhdGUpKSB7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID1cclxuICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9PT0gdW5kZWZpbmVkID8gbmV3IERhdGUodGhpcy5taW4pIDogdGhpcy5zdGFydERhdGU7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9XHJcbiAgICAgICAgdGhpcy5lbmREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSh0aGlzLm1heCkgOiB0aGlzLmVuZERhdGU7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmRhdGUpIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPVxyXG4gICAgICAgIHRoaXMuc3RhcnREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSh0aGlzLm1pbikgOiB0aGlzLnN0YXJ0RGF0ZTtcclxuICAgICAgdGhpcy5lbmREYXRlID1cclxuICAgICAgICB0aGlzLmVuZERhdGUgPT09IHVuZGVmaW5lZCA/IG5ldyBEYXRlKHRoaXMubWF4KSA6IHRoaXMuZW5kRGF0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5VHlwZUNoYW5nZSgpIHtcclxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XHJcbiAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuREFURTpcclxuICAgICAgICBpZiAodGhpcy5zdGFydERhdGUgIT09IHVuZGVmaW5lZCB8fCB0aGlzLmVuZERhdGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0SG91cnMoMCk7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXRNaW51dGVzKDApO1xyXG4gICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0U2Vjb25kcygwKTtcclxuICAgICAgICAgIHRoaXMuZW5kRGF0ZS5zZXRIb3VycygyMyk7XHJcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0TWludXRlcyg1OSk7XHJcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0U2Vjb25kcyg1OSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLlRJTUU6XHJcbiAgICAgICAgaWYgKHRoaXMuc3R5bGUgPT09IFRpbWVGaWx0ZXJTdHlsZS5DQUxFTkRBUikge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc3RhcnREYXRlLmdldERheSgpICE9PSB0aGlzLm1pbi5nZXREYXkoKSkge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEhvdXIgPSB0aGlzLnN0YXJ0RGF0ZS5nZXRIb3VycygpO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE1pbnV0ZSA9IHRoaXMuc3RhcnREYXRlLmdldE1pbnV0ZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUgPSB0aGlzLm1pbjtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0SG91cnMoc2VsZWN0ZWRIb3VyKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0TWludXRlcyhzZWxlY3RlZE1pbnV0ZSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuZW5kRGF0ZS5nZXREYXkoKSAhPT0gdGhpcy5taW4uZ2V0RGF5KCkpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRIb3VyID0gdGhpcy5lbmREYXRlLmdldEhvdXJzKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTWludXRlID0gdGhpcy5lbmREYXRlLmdldE1pbnV0ZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gdGhpcy5taW47XHJcbiAgICAgICAgICAgIHRoaXMuZW5kRGF0ZS5zZXRIb3VycyhzZWxlY3RlZEhvdXIpO1xyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0TWludXRlcyhzZWxlY3RlZE1pbnV0ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNSYW5nZSAmJiB0aGlzLnN0ZXAgPiA2MCAqIDYwICogMTAwMCkge1xyXG4gICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0TWludXRlcygwKTtcclxuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldFNlY29uZHMoMCk7XHJcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0TWludXRlcyg1OSk7XHJcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0U2Vjb25kcyg1OSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAvLyBkYXRldGltZVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAvLyBkbyBub3RoaW5nXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSYW5nZU1pbkRhdGUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGFydERhdGUgPT09IHVuZGVmaW5lZCA/IHRoaXMubWluIDogdGhpcy5zdGFydERhdGU7XHJcbiAgfVxyXG5cclxuICBnZXRSYW5nZU1heERhdGUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmREYXRlID09PSB1bmRlZmluZWQgPyB0aGlzLm1heCA6IHRoaXMuZW5kRGF0ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJvdW5kIGRhdGUgYXQgYSBjZXJ0YWluIHRpbWUsIDEwIG1pbnV0ZXMgYnkgRGVmYXVsdFxyXG4gICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSB0byBSb3VuZFxyXG4gICAqIEBwYXJhbSBhdE1pbnV0ZSAtIHJvdW5kIHRvIGNsb3Nlc3QgJ2F0TWludXRlJyBtaW51dGUsIHJvdW5kZWQgMTAgYnkgZGVmYXVsdFxyXG4gICAqIEByZXR1cm4gdGhlIHJvdW5kZWQgZGF0ZVxyXG4gICAqL1xyXG4gIGdldFJvdW5kZWREYXRlKGRhdGUsIGF0TWludXRlID0gMTApIHtcclxuICAgIGNvbnN0IGNvZWZmID0gMTAwMCAqIDYwICogYXRNaW51dGU7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoTWF0aC5yb3VuZChkYXRlLmdldFRpbWUoKSAvIGNvZWZmKSAqIGNvZWZmKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgc3RlcCAocGVyaW9kKSBkZWZpbml0aW9uIGZyb20gdGhlIGxheWVyIGRpbWVuc2lvbiB0YWdcclxuICAgKiBAcGFyYW0gc3RlcCBUaGUgc3RlcCBhcyBJU08gODYwMSBleGFtcGxlOiBQVDEwTSBmb3IgMTAgTWludXRlc1xyXG4gICAqIEByZXR1cm4gdGhlIGR1cmF0aW9uIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqL1xyXG4gIGdldFN0ZXBEZWZpbml0aW9uKHN0ZXApIHtcclxuICAgIHJldHVybiBtb21lbnQuZHVyYXRpb24oc3RlcCkuYXNNaWxsaXNlY29uZHMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInN0eWxlID09PSAnY2FsZW5kYXInICYmIHR5cGUgIT09ICd5ZWFyJ1wiPlxuICA8ZGl2ICpuZ0lmPVwiIWlzUmFuZ2VcIiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDAgaWdvLWNvbC0xMDAtbVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXG4gICAgICAgIGNsYXNzPVwidGltZS1maWx0ZXItbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVwiXG4gICAgICAgIFtmb3JdPVwiZGF0ZXRpbWVQaWNrZXJcIlxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgID48L21hdC1kYXRldGltZXBpY2tlci10b2dnbGU+XG4gICAgICA8bWF0LWRhdGV0aW1lcGlja2VyXG4gICAgICAgICNkYXRldGltZVBpY2tlclxuICAgICAgICB0eXBlPVwie3sgdHlwZSB9fVwiXG4gICAgICAgIG9wZW5PbkZvY3VzPVwidHJ1ZVwiXG4gICAgICAgIHRpbWVJbnRlcnZhbD1cIjVcIlxuICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIGF1dG9jb21wbGV0ZT1cImZhbHNlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby50aW1lRmlsdGVyLmRhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cImRhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIHJlYWRvbmx5PVwicmVhZG9ubHlcIlxuICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiaXNSYW5nZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXG4gICAgICAgICAgY2xhc3M9XCJ0aW1lLWZpbHRlci1tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXCJcbiAgICAgICAgICBbZm9yXT1cIm1pbkRhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlclxuICAgICAgICAgICNtaW5EYXRldGltZVBpY2tlclxuICAgICAgICAgIHR5cGU9XCJ7eyB0eXBlIH19XCJcbiAgICAgICAgICBvcGVuT25Gb2N1cz1cInRydWVcIlxuICAgICAgICAgIHRpbWVJbnRlcnZhbD1cIjVcIlxuICAgICAgICA+PC9tYXQtZGF0ZXRpbWVwaWNrZXI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5zdGFydERhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBbbWF0RGF0ZXRpbWVwaWNrZXJdPVwibWluRGF0ZXRpbWVQaWNrZXJcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic3RhcnREYXRlXCJcbiAgICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgICAgW21heF09XCJnZXRSYW5nZU1heERhdGUoKVwiXG4gICAgICAgICAgcmVhZG9ubHk9XCJyZWFkb25seVwiXG4gICAgICAgICAgKGlucHV0KT1cIihzdGFydERhdGUpXCJcbiAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXG4gICAgICAgICAgY2xhc3M9XCJ0aW1lLWZpbHRlci1tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXCJcbiAgICAgICAgICBbZm9yXT1cIm1heERhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlclxuICAgICAgICAgICNtYXhEYXRldGltZVBpY2tlclxuICAgICAgICAgIHR5cGU9XCJ7eyB0eXBlIH19XCJcbiAgICAgICAgICBvcGVuT25Gb2N1cz1cInRydWVcIlxuICAgICAgICAgIHRpbWVJbnRlcnZhbD1cIjVcIlxuICAgICAgICA+PC9tYXQtZGF0ZXRpbWVwaWNrZXI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5lbmREYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cIm1heERhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImVuZERhdGVcIlxuICAgICAgICAgIFttaW5dPVwiZ2V0UmFuZ2VNaW5EYXRlKClcIlxuICAgICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgICByZWFkb25seT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInN0eWxlID09PSAnY2FsZW5kYXInICYmIHR5cGUgPT09ICd5ZWFyJ1wiPlxuICA8ZGl2ICpuZ0lmPVwiIWlzUmFuZ2VcIiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDAgaWdvLWNvbC0xMDAtbVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5kYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwieWVhclwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlWWVhckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInllYXJcIiAqbmdGb3I9XCJsZXQgeWVhciBvZiBsaXN0WWVhcnNcIj57e1xuICAgICAgICAgIHllYXJcbiAgICAgICAgfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImlzUmFuZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMFwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5zdGFydERhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0YXJ0WWVhclwiXG4gICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVZZWFyQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgIFt2YWx1ZV09XCJzdGFydFllYXJcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0YXJ0WWVhciBvZiBzdGFydExpc3RZZWFyc1wiXG4gICAgICAgICAgICA+e3sgc3RhcnRZZWFyIH19PC9tYXQtb3B0aW9uXG4gICAgICAgICAgPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDBcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuZW5kRGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZW5kWWVhclwiXG4gICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVZZWFyQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImVuZFllYXJcIiAqbmdGb3I9XCJsZXQgZW5kWWVhciBvZiBlbmRMaXN0WWVhcnNcIj57e1xuICAgICAgICAgICAgZW5kWWVhclxuICAgICAgICAgIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48YnIgLz5cbjxkaXZcbiAgKm5nSWY9XCIhaXNSYW5nZSAmJiBzdHlsZSA9PT0gJ3NsaWRlcicgJiYgdHlwZSA9PT0gJ3llYXInXCJcbiAgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwIGlnby1jb2wtMTAwLW0gbWF0LXR5cG9ncmFwaHlcIlxuPlxuICA8c3Bhbj57eyBzdGFydFllYXIgfX08L3NwYW4+XG4gIDwhLS0gVE9ETzogVGhlICd0aWNrSW50ZXJ2YWwnIHByb3BlcnR5IG5vIGxvbmdlciBleGlzdHMgLS0+XG4gIDxtYXQtc2xpZGVyXG4gICAgaWQ9XCJ0aW1lLXNsaWRlclwiXG4gICAgc3RlcD1cInt7IHN0ZXAgfX1cIlxuICAgIFttaW5dPVwic3RhcnRZZWFyXCJcbiAgICBbbWF4XT1cImVuZFllYXJcIlxuICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgdGh1bWJMYWJlbFxuICAgIFtkaXNhYmxlZF09XCIhb3B0aW9ucy5lbmFibGVkIHx8ICFsYXllci52aXNpYmxlXCJcbiAgICAjbmdTbGlkZXJcbiAgICA+PGlucHV0XG4gICAgICBtYXRTbGlkZXJUaHVtYlxuICAgICAgW3ZhbHVlXT1cImhhbmRsZVNsaWRlclZhbHVlKClcIlxuICAgICAgKGlucHV0KT1cIlxuICAgICAgICBoYW5kbGVTbGlkZXJZZWFyQ2hhbmdlKHtcbiAgICAgICAgICBzb3VyY2U6IG5nU2xpZGVyVGh1bWIsXG4gICAgICAgICAgcGFyZW50OiBuZ1NsaWRlcixcbiAgICAgICAgICB2YWx1ZTogbmdTbGlkZXJUaHVtYi52YWx1ZVxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgICNuZ1NsaWRlclRodW1iPVwibWF0U2xpZGVyVGh1bWJcIlxuICAgICAgKGNoYW5nZSk9XCJcbiAgICAgICAgaGFuZGxlU2xpZGVyWWVhckNoYW5nZSh7XG4gICAgICAgICAgc291cmNlOiBuZ1NsaWRlclRodW1iLFxuICAgICAgICAgIHBhcmVudDogbmdTbGlkZXIsXG4gICAgICAgICAgdmFsdWU6IG5nU2xpZGVyVGh1bWIudmFsdWVcbiAgICAgICAgfSlcbiAgICAgIFwiXG4gICAgLz5cbiAgPC9tYXQtc2xpZGVyPlxuICA8c3Bhbj57eyBlbmRZZWFyIH19PC9zcGFuPlxuICA8cCAqbmdJZj1cIm9wdGlvbnMuZW5hYmxlZFwiIGNsYXNzPVwiZGF0ZS1iZWxvd1wiPnt7IHllYXIgfX08L3A+XG4gIDxkaXYgI2FjdGlvbnMgY2xhc3M9XCJpZ28tbGF5ZXItYWN0aW9ucy1jb250YWluZXJcIj5cbiAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVGaWx0ZXJTdGF0ZSgpXCJcbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci50b2dnbGVGaWx0ZXJTdGF0ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgIFtjaGVja2VkXT1cIm9wdGlvbnMuZW5hYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWxheWVyLnZpc2libGVcIlxuICAgID5cbiAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPGJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cIiFvcHRpb25zLmVuYWJsZWQgfHwgIWxheWVyLnZpc2libGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cInBsYXlZZWFyKCRldmVudClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3sgcGxheUljb24gfX1cIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCIhb3B0aW9ucy5lbmFibGVkIHx8ICFsYXllci52aXNpYmxlXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJyZXNldEZpbHRlcigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInt7IHJlc2V0SWNvbiB9fVwiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXZcbiAgKm5nSWY9XCJzdHlsZSA9PT0gJ3NsaWRlcicgJiYgdHlwZSAhPT0gJ3llYXInXCJcbiAgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwIGlnby1jb2wtMTAwLW1cIlxuPlxuICA8IS0tIFRPRE86IFRoZSAndGlja0ludGVydmFsJyBwcm9wZXJ0eSBubyBsb25nZXIgZXhpc3RzIC0tPlxuICA8bWF0LXNsaWRlclxuICAgIGlkPVwidGltZS1zbGlkZXJcIlxuICAgIHN0ZXA9XCJ7eyBzdGVwIH19XCJcbiAgICBbbWluXT1cImRhdGVUb051bWJlcihtaW4pXCJcbiAgICBbbWF4XT1cImRhdGVUb051bWJlcihtYXgpXCJcbiAgICB0aHVtYkxhYmVsXG4gICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVTbGlkZXJEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICNuZ1NsaWRlclxuICAgID48aW5wdXRcbiAgICAgIG1hdFNsaWRlclRodW1iXG4gICAgICBbdmFsdWVdPVwiaGFuZGxlU2xpZGVyVmFsdWUoKVwiXG4gICAgICAoaW5wdXQpPVwiXG4gICAgICAgIGhhbmRsZVNsaWRlckRhdGVDaGFuZ2Uoe1xuICAgICAgICAgIHNvdXJjZTogbmdTbGlkZXJUaHVtYixcbiAgICAgICAgICBwYXJlbnQ6IG5nU2xpZGVyLFxuICAgICAgICAgIHZhbHVlOiBuZ1NsaWRlclRodW1iLnZhbHVlXG4gICAgICAgIH0pXG4gICAgICBcIlxuICAgICAgI25nU2xpZGVyVGh1bWI9XCJtYXRTbGlkZXJUaHVtYlwiXG4gICAgLz5cbiAgPC9tYXQtc2xpZGVyPlxuICA8cCBjbGFzcz1cImRhdGUtYmVsb3dcIj57eyBoYW5kbGVTbGlkZXJUb29sdGlwKCkgfX08L3A+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJwbGF5RmlsdGVyKCRldmVudClcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInt7IHBsYXlJY29uIH19XCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
507
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItZm9ybS90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1mb3JtL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUlyRCxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBUTdFLE1BQU0sT0FBTyx1QkFBdUI7SUFxSGQ7SUFwSFgsS0FBSyxDQUFRO0lBRWIsT0FBTyxDQUFvQjtJQUU3QixLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQ2xCLElBQUksQ0FBTztJQUNYLFNBQVMsQ0FBTztJQUNoQixPQUFPLENBQU87SUFDZCxJQUFJLENBQU07SUFDVixTQUFTLENBQU07SUFDZixPQUFPLENBQU07SUFDYixhQUFhLENBQU07SUFDbkIsV0FBVyxDQUFNO0lBQ2pCLFNBQVMsR0FBa0IsRUFBRSxDQUFDO0lBQzlCLGNBQWMsR0FBa0IsRUFBRSxDQUFDO0lBQ25DLFlBQVksR0FB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c0I7a0dBS3ZCLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBZ0JGLFlBQVk7c0JBRGYsS0FBSztnQkF1QkksTUFBTTtzQkFBZixNQUFNO2dCQUVQLFVBQVU7c0JBRFQsTUFBTTtnQkFFZSxRQUFRO3NCQUE3QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0U2xpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcclxuXHJcbmltcG9ydCBvbFNvdXJjZUltYWdlV01TIGZyb20gJ29sL3NvdXJjZS9JbWFnZVdNUyc7XHJcblxyXG5pbXBvcnQgeyBkZWZhdWx0IGFzIG1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcblxyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyU3R5bGUsIFRpbWVGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vc2hhcmVkL3RpbWUtZmlsdGVyLmVudW0nO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5pbnRlcmZhY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tdGltZS1maWx0ZXItZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGltZUZpbHRlckZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGxheWVyOiBMYXllcjtcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogVGltZUZpbHRlck9wdGlvbnM7XHJcblxyXG4gIHB1YmxpYyBjb2xvciA9ICdwcmltYXJ5JztcclxuICBwdWJsaWMgZGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgc3RhcnREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBlbmREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyB5ZWFyOiBhbnk7XHJcbiAgcHVibGljIHN0YXJ0WWVhcjogYW55O1xyXG4gIHB1YmxpYyBlbmRZZWFyOiBhbnk7XHJcbiAgcHVibGljIGluaXRTdGFydFllYXI6IGFueTtcclxuICBwdWJsaWMgaW5pdEVuZFllYXI6IGFueTtcclxuICBwdWJsaWMgbGlzdFllYXJzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgcHVibGljIHN0YXJ0TGlzdFllYXJzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgcHVibGljIGVuZExpc3RZZWFyczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBjdXJyZW50VmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IFRpbWVGaWx0ZXJUeXBlLllFQVIpIHtcclxuICAgICAgICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWUuc3BsaXQoJy8nKTtcclxuICAgICAgICBpZiAodmFsdWVBcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZSh2YWx1ZUFycmF5WzBdKTtcclxuICAgICAgICAgIGNvbnN0IGVuZERhdGUgPSBuZXcgRGF0ZSh2YWx1ZUFycmF5WzFdKTtcclxuICAgICAgICAgIGlmICghaXNOYU4oc3RhcnREYXRlLnZhbHVlT2YoKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUgPSBzdGFydERhdGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIWlzTmFOKGVuZERhdGUudmFsdWVPZigpKSkge1xyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUgPSBlbmREYXRlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGludGVydmFsOiBhbnk7XHJcbiAgcHVibGljIHBsYXlJY29uID0gJ3BsYXktY2lyY2xlJztcclxuICBwdWJsaWMgcmVzZXRJY29uID0gJ3JlcGxheSc7XHJcblxyXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlIHwgW0RhdGUsIERhdGVdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KClcclxuICB5ZWFyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZChNYXRTbGlkZXIpIG15U2xpZGVyO1xyXG5cclxuICBnZXQgdHlwZSgpOiBUaW1lRmlsdGVyVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnR5cGUgPT09IHVuZGVmaW5lZFxyXG4gICAgICA/IFRpbWVGaWx0ZXJUeXBlLkRBVEVcclxuICAgICAgOiB0aGlzLm9wdGlvbnMudHlwZTtcclxuICB9XHJcblxyXG4gIGdldCBpc1JhbmdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5yYW5nZSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgIHRoaXMub3B0aW9ucy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUlxyXG4gICAgICA/IGZhbHNlXHJcbiAgICAgIDogdGhpcy5vcHRpb25zLnJhbmdlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0eWxlKCk6IFRpbWVGaWx0ZXJTdHlsZSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnN0eWxlID09PSB1bmRlZmluZWRcclxuICAgICAgPyBUaW1lRmlsdGVyU3R5bGUuU0xJREVSXHJcbiAgICAgIDogdGhpcy5vcHRpb25zLnN0eWxlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0ZXAoKTogbnVtYmVyIHtcclxuICAgIGxldCBzdGVwID0gMTA4MDAwMDA7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLnN0ZXAgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuREFURTpcclxuICAgICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLkRBVEVUSU1FOlxyXG4gICAgICAgICAgc3RlcCA9IDEwODAwMDAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5USU1FOlxyXG4gICAgICAgICAgc3RlcCA9IDM2MDAwMDA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLllFQVI6XHJcbiAgICAgICAgICBzdGVwID0gMzE1MzYwMDAwMDA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgc3RlcCA9IDEwODAwMDAwO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdGVwID0gdGhpcy5nZXRTdGVwRGVmaW5pdGlvbih0aGlzLm9wdGlvbnMuc3RlcCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHN0ZXA7XHJcbiAgfVxyXG5cclxuICBnZXQgdGltZUludGVydmFsKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRpbWVJbnRlcnZhbCA9PT0gdW5kZWZpbmVkXHJcbiAgICAgID8gMjAwMFxyXG4gICAgICA6IHRoaXMub3B0aW9ucy50aW1lSW50ZXJ2YWw7XHJcbiAgfVxyXG5cclxuICBnZXQgbWluKCk6IERhdGUge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5taW4pIHtcclxuICAgICAgY29uc3QgbWluID0gbmV3IERhdGUodGhpcy5vcHRpb25zLm1pbik7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShtaW4uZ2V0VGltZSgpICsgbWluLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IG1heCgpOiBEYXRlIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMubWF4KSB7XHJcbiAgICAgIGNvbnN0IG1heCA9IG5ldyBEYXRlKHRoaXMub3B0aW9ucy5tYXgpO1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUobWF4LmdldFRpbWUoKSArIG1heC5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBpcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmFuZ2UgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogdGhpcy5vcHRpb25zLnJhbmdlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4pIHtcclxuICAgIHRoaXMuZGF0ZUFkYXB0ZXIuc2V0TG9jYWxlKCdmcicpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zdGFydERhdGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHRoaXMubWluKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmVuZERhdGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBuZXcgRGF0ZSh0aGlzLm1heCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdGFydFllYXIgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0YXJ0WWVhciA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICB0aGlzLmluaXRTdGFydFllYXIgPSB0aGlzLnN0YXJ0WWVhcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmVuZFllYXIgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmVuZFllYXIgPSBuZXcgRGF0ZSh0aGlzLmVuZERhdGUpLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIHRoaXMuaW5pdEVuZFllYXIgPSB0aGlzLmVuZFllYXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmlzUmFuZ2UpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhcnRZZWFyOyBpIDw9IHRoaXMuZW5kWWVhciArIDE7IGkrKykge1xyXG4gICAgICAgIHRoaXMubGlzdFllYXJzLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0WWVhcjsgaSA8IHRoaXMuZW5kWWVhcjsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydExpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0WWVhciArIDE7IGkgPD0gdGhpcy5lbmRZZWFyOyBpKyspIHtcclxuICAgICAgICB0aGlzLmVuZExpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLm9wdGlvbnMuZW5hYmxlZCA9XHJcbiAgICAgIHRoaXMub3B0aW9ucy5lbmFibGVkID09PSB1bmRlZmluZWQgPyB0cnVlIDogdGhpcy5vcHRpb25zLmVuYWJsZWQ7XHJcbiAgICB0aGlzLmNoZWNrRmlsdGVyVmFsdWUoKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuZW5hYmxlZCkge1xyXG4gICAgICBpZiAoIXRoaXMuaXNSYW5nZSAmJiB0aGlzLnN0eWxlID09PSAnc2xpZGVyJyAmJiB0aGlzLnR5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmVDdXJyZW50RmlsdGVyVmFsdWUoKTtcclxuICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQodW5kZWZpbmVkKTsgLy8gVE9ETzogRklYIFRISVMgZm9yIEFMTCBPVEhFUiBUWVBFUyBTVFlMRVMgT1IgUkFOR0UuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdG9yZUN1cnJlbnRGaWx0ZXJWYWx1ZSgpIHtcclxuICAgIC8vIFRPRE86IEZJWCBUSElTIGZvciBBTEwgT1RIRVIgVFlQRVMgU1RZTEVTIE9SIFJBTkdFLlxyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5pc1JhbmdlICYmXHJcbiAgICAgIHRoaXMuc3R5bGUgPT09IFRpbWVGaWx0ZXJTdHlsZS5TTElERVIgJiZcclxuICAgICAgdGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5vcHRpb25zLnZhbHVlID0gdGhpcy55ZWFyLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0ZpbHRlclZhbHVlKCkge1xyXG4gICAgY29uc3Qgb2xTb3VyY2UgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wgYXMgb2xTb3VyY2VJbWFnZVdNUztcclxuICAgIGNvbnN0IHRpbWVGcm9tV21zID0gb2xTb3VyY2UuZ2V0UGFyYW1zKCkuVElNRTtcclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuaXNSYW5nZSAmJlxyXG4gICAgICB0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuU0xJREVSICYmXHJcbiAgICAgIHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUlxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aW1lRnJvbVdtcykge1xyXG4gICAgICAgIHRoaXMueWVhciA9IG5ldyBEYXRlKHRpbWVGcm9tV21zLnRvU3RyaW5nKCkpLmdldEZ1bGxZZWFyKCkgKyAxO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMueWVhciA9IG5ldyBEYXRlKHRoaXMub3B0aW9ucy52YWx1ZS50b1N0cmluZygpKS5nZXRGdWxsWWVhcigpICsgMTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnllYXIgPSBuZXcgRGF0ZSh0aGlzLm1pbikuZ2V0RnVsbFllYXIoKSArIDE7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuaXNSYW5nZSAmJlxyXG4gICAgICB0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVIgJiZcclxuICAgICAgdGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRpbWVGcm9tV21zKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydFllYXIgPSBwYXJzZUludCh0aW1lRnJvbVdtcy5zdWJzdHIoMCwgNCksIDEwKTtcclxuICAgICAgICB0aGlzLmVuZFllYXIgPSBwYXJzZUludCh0aW1lRnJvbVdtcy5zdWJzdHIoNSwgNCksIDEwKTtcclxuICAgICAgICBjb25zdCBuZXdTdGFydExpc3RZZWFyczogYW55W10gPSBbXTtcclxuICAgICAgICBjb25zdCBuZXdFbmRMaXN0WWVhcnM6IGFueVtdID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuaW5pdFN0YXJ0WWVhcjsgaSA8IHRoaXMuZW5kWWVhcjsgaSsrKSB7XHJcbiAgICAgICAgICBuZXdTdGFydExpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXIgKyAxOyBpIDw9IHRoaXMuaW5pdEVuZFllYXI7IGkrKykge1xyXG4gICAgICAgICAgbmV3RW5kTGlzdFllYXJzLnB1c2goaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3RhcnRMaXN0WWVhcnMgPSBuZXdTdGFydExpc3RZZWFycztcclxuICAgICAgICB0aGlzLmVuZExpc3RZZWFycyA9IG5ld0VuZExpc3RZZWFycztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gVE9ETzogRklYIFRISVMgZm9yIEFMTCBPVEhFUiBUWVBFUyBTVFlMRVMgT1IgUkFOR0UuXHJcbiAgfVxyXG5cclxuICBoYW5kbGVEYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2V0dXBEYXRlT3V0cHV0KCk7XHJcbiAgICB0aGlzLmFwcGx5VHlwZUNoYW5nZSgpO1xyXG5cclxuICAgIC8vIE9ubHkgaWYgaXMgcmFuZ2UsIHVzZSAyIGRhdGVzIHRvIG1ha2UgdGhlIHJhbmdlXHJcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQoW3RoaXMuc3RhcnREYXRlLCB0aGlzLmVuZERhdGVdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5zdGFydERhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlWWVhckNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5pc1JhbmdlKSB7XHJcbiAgICAgIHRoaXMuZW5kTGlzdFllYXJzID0gW107XHJcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0WWVhciArIDE7IGkgPD0gdGhpcy5pbml0RW5kWWVhcjsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5lbmRMaXN0WWVhcnMucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXJ0TGlzdFllYXJzID0gW107XHJcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLmluaXRTdGFydFllYXIgKyAxOyBpIDwgdGhpcy5lbmRZZWFyOyBpKyspIHtcclxuICAgICAgICB0aGlzLnN0YXJ0TGlzdFllYXJzLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQoW3RoaXMuc3RhcnRZZWFyLCB0aGlzLmVuZFllYXJdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVMaXN0WWVhckNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmhhbmRsZVllYXJDaGFuZ2UoW3RoaXMuc3RhcnRZZWFyLCB0aGlzLmVuZFllYXJdKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUxpc3RZZWFyU3RhcnRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdChbdGhpcy5zdGFydERhdGUsIHRoaXMuZW5kRGF0ZV0pO1xyXG4gIH1cclxuXHJcbiAgZGF0ZVRvTnVtYmVyKGRhdGU6IERhdGUpOiBudW1iZXIge1xyXG4gICAgbGV0IG5ld0RhdGU7XHJcbiAgICBpZiAoZGF0ZSkge1xyXG4gICAgICBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdEYXRlID0gbmV3IERhdGUodGhpcy5taW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXdEYXRlLmdldFRpbWUoKTtcclxuICB9XHJcblxyXG4gIHNldFNsaWRlclRodW1iTGFiZWwobGFiZWw6IHN0cmluZykge1xyXG4gICAgY29uc3QgdGh1bWJMYWJlbCA9IHRoaXMuZmluZFRodW1iTGFiZWwoXHJcbiAgICAgIHRoaXMubXlTbGlkZXIuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzXHJcbiAgICApO1xyXG4gICAgaWYgKHRodW1iTGFiZWwpIHtcclxuICAgICAgdGh1bWJMYWJlbC50ZXh0Q29udGVudCA9IGxhYmVsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmluZFRodW1iTGFiZWwodGVzdDogYW55W10pOiBhbnkge1xyXG4gICAgbGV0IHRodW1iTGFiZWw7XHJcblxyXG4gICAgdGVzdC5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAodmFsdWUuY2xhc3NOYW1lID09PSAnbWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0Jykge1xyXG4gICAgICAgIHRodW1iTGFiZWwgPSB2YWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZhbHVlLmNoaWxkcmVuLmxlbmd0aCA+IDAgJiYgIXRodW1iTGFiZWwpIHtcclxuICAgICAgICB0aHVtYkxhYmVsID0gdGhpcy5maW5kVGh1bWJMYWJlbCh2YWx1ZS5jaGlsZE5vZGVzKTtcclxuICAgICAgfVxyXG4gICAgfSwgdGhpcyk7XHJcbiAgICByZXR1cm4gdGh1bWJMYWJlbDtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUZpbHRlclN0YXRlKCkge1xyXG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZWQgPSAhdGhpcy5vcHRpb25zLmVuYWJsZWQ7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5lbmFibGVkKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAhdGhpcy5pc1JhbmdlICYmXHJcbiAgICAgICAgVGltZUZpbHRlclN0eWxlLlNMSURFUiAmJlxyXG4gICAgICAgIHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUlxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3BGaWx0ZXIoKTtcclxuICAgICAgdGhpcy5zdG9yZUN1cnJlbnRGaWx0ZXJWYWx1ZSgpO1xyXG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHVuZGVmaW5lZCk7IC8vIFRPRE86IEZJWCBUSElTIGZvciBBTEwgT1RIRVIgVFlQRVMgU1RZTEVTIE9SIFJBTkdFLlxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRGaWx0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5kYXRlID0gbmV3IERhdGUodGhpcy5taW4pO1xyXG4gICAgdGhpcy55ZWFyID0gdGhpcy5kYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmlzUmFuZ2UgJiZcclxuICAgICAgVGltZUZpbHRlclN0eWxlLlNMSURFUiAmJlxyXG4gICAgICB0aGlzLnR5cGUgPT09IFRpbWVGaWx0ZXJUeXBlLllFQVJcclxuICAgICkge1xyXG4gICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXR1cERhdGVPdXRwdXQoKTtcclxuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh1bmRlZmluZWQpOyAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBsYXlGaWx0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcclxuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBsYXlJY29uID0gJ3BhdXNlLWNpcmNsZSc7XHJcbiAgICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChcclxuICAgICAgICAodGhhdCkgPT4ge1xyXG4gICAgICAgICAgbGV0IG5ld01pbkRhdGVOdW1iZXI7XHJcbiAgICAgICAgICBjb25zdCBtYXhEYXRlTnVtYmVyID0gbmV3IERhdGUodGhhdC5tYXgpO1xyXG5cclxuICAgICAgICAgIG5ld01pbkRhdGVOdW1iZXIgPVxyXG4gICAgICAgICAgICB0aGF0LmRhdGUgPT09IHVuZGVmaW5lZCA/IHRoYXQubWluLmdldFRpbWUoKSA6IHRoYXQuZGF0ZS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICBuZXdNaW5EYXRlTnVtYmVyICs9IHRoYXQubXlTbGlkZXIuc3RlcDtcclxuICAgICAgICAgIHRoYXQuZGF0ZSA9IG5ldyBEYXRlKG5ld01pbkRhdGVOdW1iZXIpO1xyXG5cclxuICAgICAgICAgIGlmIChuZXdNaW5EYXRlTnVtYmVyID4gbWF4RGF0ZU51bWJlci5nZXRUaW1lKCkpIHtcclxuICAgICAgICAgICAgdGhhdC5zdG9wRmlsdGVyKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhhdC5oYW5kbGVEYXRlQ2hhbmdlKHsgdmFsdWU6IHRoYXQuZGF0ZSwgZGF0ZTogdGhhdC5kYXRlIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGhpcy50aW1lSW50ZXJ2YWwsXHJcbiAgICAgICAgdGhpc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcGxheVllYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnllYXIgKyB0aGlzLm15U2xpZGVyLnN0ZXAgPlxyXG4gICAgICB0aGlzLm1heC5nZXRGdWxsWWVhcigpICsgdGhpcy5teVNsaWRlci5zdGVwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XHJcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXIoZXZlbnQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcclxuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBsYXlJY29uID0gJ3BhdXNlLWNpcmNsZSc7XHJcbiAgICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy55ZWFyICsgdGhpcy5teVNsaWRlci5zdGVwID4gdGhpcy5tYXguZ2V0RnVsbFllYXIoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BGaWx0ZXIoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMueWVhciA9IHRoaXMueWVhciArIHRoaXMubXlTbGlkZXIuc3RlcDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aGlzLnRpbWVJbnRlcnZhbCxcclxuICAgICAgICB0aGlzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdG9wRmlsdGVyKCkge1xyXG4gICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJ2YWwgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnBsYXlJY29uID0gJ3BsYXktY2lyY2xlJztcclxuICB9XHJcblxyXG4gIGhhbmRsZVNsaWRlckRhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5kYXRlID0gbmV3IERhdGUoZXZlbnQudmFsdWUpO1xyXG4gICAgdGhpcy5zZXRTbGlkZXJUaHVtYkxhYmVsKHRoaXMuaGFuZGxlU2xpZGVyVG9vbHRpcCgpKTtcclxuICAgIHRoaXMuaGFuZGxlRGF0ZUNoYW5nZShldmVudCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTbGlkZXJZZWFyQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMueWVhciA9IGV2ZW50LnZhbHVlO1xyXG4gICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQodGhpcy55ZWFyKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNsaWRlclZhbHVlKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmN1cnJlbnQgPT09IHRydWUgfHwgIXRoaXMubWluKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgdGhpcy5kYXRlID0gdGhpcy5nZXRSb3VuZGVkRGF0ZShjdXJyZW50RGF0ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnllYXI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRlID09PSB1bmRlZmluZWQgPyB0aGlzLm1pbi5nZXRUaW1lKCkgOiB0aGlzLmRhdGUuZ2V0VGltZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2xpZGVyVG9vbHRpcCgpIHtcclxuICAgIGxldCBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XHJcbiAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuREFURTpcclxuICAgICAgICBsYWJlbCA9XHJcbiAgICAgICAgICB0aGlzLmRhdGUgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA/IHRoaXMubWluLnRvRGF0ZVN0cmluZygpXHJcbiAgICAgICAgICAgIDogdGhpcy5kYXRlLnRvRGF0ZVN0cmluZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLlRJTUU6XHJcbiAgICAgICAgbGFiZWwgPVxyXG4gICAgICAgICAgdGhpcy5kYXRlID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgPyB0aGlzLm1pbi50b1RpbWVTdHJpbmcoKVxyXG4gICAgICAgICAgICA6IHRoaXMuZGF0ZS50b1RpbWVTdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgLy8gZGF0ZXRpbWVcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBsYWJlbCA9XHJcbiAgICAgICAgICB0aGlzLmRhdGUgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA/IHRoaXMubWluLnRvVVRDU3RyaW5nKClcclxuICAgICAgICAgICAgOiB0aGlzLmRhdGUudG9VVENTdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBzZXR1cERhdGVPdXRwdXQoKSB7XHJcbiAgICBpZiAodGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUikge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGF0ZSk7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlLnNldFNlY29uZHMoLSh0aGlzLnN0ZXAgLyAxMDAwKSk7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKTtcclxuICAgICAgdGhpcy5lbmREYXRlLnNldFNlY29uZHModGhpcy5zdGVwIC8gMTAwMCk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzUmFuZ2UgJiYgISF0aGlzLmRhdGUpIHtcclxuICAgICAgdGhpcy5lbmREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlKTtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSh0aGlzLmRhdGUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzUmFuZ2UgJiYgKCEhdGhpcy5kYXRlIHx8ICF0aGlzLmRhdGUpKSB7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID1cclxuICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9PT0gdW5kZWZpbmVkID8gbmV3IERhdGUodGhpcy5taW4pIDogdGhpcy5zdGFydERhdGU7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9XHJcbiAgICAgICAgdGhpcy5lbmREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSh0aGlzLm1heCkgOiB0aGlzLmVuZERhdGU7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmRhdGUpIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPVxyXG4gICAgICAgIHRoaXMuc3RhcnREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSh0aGlzLm1pbikgOiB0aGlzLnN0YXJ0RGF0ZTtcclxuICAgICAgdGhpcy5lbmREYXRlID1cclxuICAgICAgICB0aGlzLmVuZERhdGUgPT09IHVuZGVmaW5lZCA/IG5ldyBEYXRlKHRoaXMubWF4KSA6IHRoaXMuZW5kRGF0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5VHlwZUNoYW5nZSgpIHtcclxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XHJcbiAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuREFURTpcclxuICAgICAgICBpZiAodGhpcy5zdGFydERhdGUgIT09IHVuZGVmaW5lZCB8fCB0aGlzLmVuZERhdGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0SG91cnMoMCk7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXRNaW51dGVzKDApO1xyXG4gICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0U2Vjb25kcygwKTtcclxuICAgICAgICAgIHRoaXMuZW5kRGF0ZS5zZXRIb3VycygyMyk7XHJcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0TWludXRlcyg1OSk7XHJcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0U2Vjb25kcyg1OSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLlRJTUU6XHJcbiAgICAgICAgaWYgKHRoaXMuc3R5bGUgPT09IFRpbWVGaWx0ZXJTdHlsZS5DQUxFTkRBUikge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc3RhcnREYXRlLmdldERheSgpICE9PSB0aGlzLm1pbi5nZXREYXkoKSkge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEhvdXIgPSB0aGlzLnN0YXJ0RGF0ZS5nZXRIb3VycygpO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE1pbnV0ZSA9IHRoaXMuc3RhcnREYXRlLmdldE1pbnV0ZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUgPSB0aGlzLm1pbjtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0SG91cnMoc2VsZWN0ZWRIb3VyKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0TWludXRlcyhzZWxlY3RlZE1pbnV0ZSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuZW5kRGF0ZS5nZXREYXkoKSAhPT0gdGhpcy5taW4uZ2V0RGF5KCkpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRIb3VyID0gdGhpcy5lbmREYXRlLmdldEhvdXJzKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTWludXRlID0gdGhpcy5lbmREYXRlLmdldE1pbnV0ZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gdGhpcy5taW47XHJcbiAgICAgICAgICAgIHRoaXMuZW5kRGF0ZS5zZXRIb3VycyhzZWxlY3RlZEhvdXIpO1xyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0TWludXRlcyhzZWxlY3RlZE1pbnV0ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNSYW5nZSAmJiB0aGlzLnN0ZXAgPiA2MCAqIDYwICogMTAwMCkge1xyXG4gICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0TWludXRlcygwKTtcclxuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldFNlY29uZHMoMCk7XHJcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0TWludXRlcyg1OSk7XHJcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0U2Vjb25kcyg1OSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAvLyBkYXRldGltZVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAvLyBkbyBub3RoaW5nXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSYW5nZU1pbkRhdGUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGFydERhdGUgPT09IHVuZGVmaW5lZCA/IHRoaXMubWluIDogdGhpcy5zdGFydERhdGU7XHJcbiAgfVxyXG5cclxuICBnZXRSYW5nZU1heERhdGUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmREYXRlID09PSB1bmRlZmluZWQgPyB0aGlzLm1heCA6IHRoaXMuZW5kRGF0ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJvdW5kIGRhdGUgYXQgYSBjZXJ0YWluIHRpbWUsIDEwIG1pbnV0ZXMgYnkgRGVmYXVsdFxyXG4gICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSB0byBSb3VuZFxyXG4gICAqIEBwYXJhbSBhdE1pbnV0ZSAtIHJvdW5kIHRvIGNsb3Nlc3QgJ2F0TWludXRlJyBtaW51dGUsIHJvdW5kZWQgMTAgYnkgZGVmYXVsdFxyXG4gICAqIEByZXR1cm4gdGhlIHJvdW5kZWQgZGF0ZVxyXG4gICAqL1xyXG4gIGdldFJvdW5kZWREYXRlKGRhdGUsIGF0TWludXRlID0gMTApIHtcclxuICAgIGNvbnN0IGNvZWZmID0gMTAwMCAqIDYwICogYXRNaW51dGU7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoTWF0aC5yb3VuZChkYXRlLmdldFRpbWUoKSAvIGNvZWZmKSAqIGNvZWZmKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgc3RlcCAocGVyaW9kKSBkZWZpbml0aW9uIGZyb20gdGhlIGxheWVyIGRpbWVuc2lvbiB0YWdcclxuICAgKiBAcGFyYW0gc3RlcCBUaGUgc3RlcCBhcyBJU08gODYwMSBleGFtcGxlOiBQVDEwTSBmb3IgMTAgTWludXRlc1xyXG4gICAqIEByZXR1cm4gdGhlIGR1cmF0aW9uIGluIG1pbGxpc2Vjb25kc1xyXG4gICAqL1xyXG4gIGdldFN0ZXBEZWZpbml0aW9uKHN0ZXApIHtcclxuICAgIHJldHVybiBtb21lbnQuZHVyYXRpb24oc3RlcCkuYXNNaWxsaXNlY29uZHMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInN0eWxlID09PSAnY2FsZW5kYXInICYmIHR5cGUgIT09ICd5ZWFyJ1wiPlxyXG4gIDxkaXYgKm5nSWY9XCIhaXNSYW5nZVwiIGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMCBpZ28tY29sLTEwMC1tXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXHJcbiAgICAgICAgY2xhc3M9XCJ0aW1lLWZpbHRlci1tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXCJcclxuICAgICAgICBbZm9yXT1cImRhdGV0aW1lUGlja2VyXCJcclxuICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZT5cclxuICAgICAgPG1hdC1kYXRldGltZXBpY2tlclxyXG4gICAgICAgICNkYXRldGltZVBpY2tlclxyXG4gICAgICAgIHR5cGU9XCJ7eyB0eXBlIH19XCJcclxuICAgICAgICBvcGVuT25Gb2N1cz1cInRydWVcIlxyXG4gICAgICAgIHRpbWVJbnRlcnZhbD1cIjVcIlxyXG4gICAgICA+PC9tYXQtZGF0ZXRpbWVwaWNrZXI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5kYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cImRhdGV0aW1lUGlja2VyXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGVcIlxyXG4gICAgICAgIFttaW5dPVwibWluXCJcclxuICAgICAgICBbbWF4XT1cIm1heFwiXHJcbiAgICAgICAgcmVhZG9ubHk9XCJyZWFkb25seVwiXHJcbiAgICAgICAgKGRhdGVDaGFuZ2UpPVwiaGFuZGxlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJpc1JhbmdlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMFwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlci10b2dnbGVcclxuICAgICAgICAgIGNsYXNzPVwidGltZS1maWx0ZXItbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVwiXHJcbiAgICAgICAgICBbZm9yXT1cIm1pbkRhdGV0aW1lUGlja2VyXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgID48L21hdC1kYXRldGltZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlclxyXG4gICAgICAgICAgI21pbkRhdGV0aW1lUGlja2VyXHJcbiAgICAgICAgICB0eXBlPVwie3sgdHlwZSB9fVwiXHJcbiAgICAgICAgICBvcGVuT25Gb2N1cz1cInRydWVcIlxyXG4gICAgICAgICAgdGltZUludGVydmFsPVwiNVwiXHJcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImZhbHNlXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5zdGFydERhdGUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgIFttYXREYXRldGltZXBpY2tlcl09XCJtaW5EYXRldGltZVBpY2tlclwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICBbbWluXT1cIm1pblwiXHJcbiAgICAgICAgICBbbWF4XT1cImdldFJhbmdlTWF4RGF0ZSgpXCJcclxuICAgICAgICAgIHJlYWRvbmx5PVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgKGlucHV0KT1cIihzdGFydERhdGUpXCJcclxuICAgICAgICAgIChkYXRlQ2hhbmdlKT1cImhhbmRsZURhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVxyXG4gICAgICAgICAgY2xhc3M9XCJ0aW1lLWZpbHRlci1tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXCJcclxuICAgICAgICAgIFtmb3JdPVwibWF4RGF0ZXRpbWVQaWNrZXJcIlxyXG4gICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LWRhdGV0aW1lcGlja2VyXHJcbiAgICAgICAgICAjbWF4RGF0ZXRpbWVQaWNrZXJcclxuICAgICAgICAgIHR5cGU9XCJ7eyB0eXBlIH19XCJcclxuICAgICAgICAgIG9wZW5PbkZvY3VzPVwidHJ1ZVwiXHJcbiAgICAgICAgICB0aW1lSW50ZXJ2YWw9XCI1XCJcclxuICAgICAgICA+PC9tYXQtZGF0ZXRpbWVwaWNrZXI+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby50aW1lRmlsdGVyLmVuZERhdGUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgIFttYXREYXRldGltZXBpY2tlcl09XCJtYXhEYXRldGltZVBpY2tlclwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImVuZERhdGVcIlxyXG4gICAgICAgICAgW21pbl09XCJnZXRSYW5nZU1pbkRhdGUoKVwiXHJcbiAgICAgICAgICBbbWF4XT1cIm1heFwiXHJcbiAgICAgICAgICByZWFkb25seT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgIChkYXRlQ2hhbmdlKT1cImhhbmRsZURhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJzdHlsZSA9PT0gJ2NhbGVuZGFyJyAmJiB0eXBlID09PSAneWVhcidcIj5cclxuICA8ZGl2ICpuZ0lmPVwiIWlzUmFuZ2VcIiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDAgaWdvLWNvbC0xMDAtbVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5kYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ5ZWFyXCJcclxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImhhbmRsZVllYXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwieWVhclwiICpuZ0Zvcj1cImxldCB5ZWFyIG9mIGxpc3RZZWFyc1wiPnt7XHJcbiAgICAgICAgICB5ZWFyXHJcbiAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJpc1JhbmdlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMFwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5zdGFydERhdGUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwic3RhcnRZZWFyXCJcclxuICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlWWVhckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICBbdmFsdWVdPVwic3RhcnRZZWFyXCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0YXJ0WWVhciBvZiBzdGFydExpc3RZZWFyc1wiXHJcbiAgICAgICAgICAgID57eyBzdGFydFllYXIgfX08L21hdC1vcHRpb25cclxuICAgICAgICAgID5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMFwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5lbmREYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImVuZFllYXJcIlxyXG4gICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVZZWFyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJlbmRZZWFyXCIgKm5nRm9yPVwibGV0IGVuZFllYXIgb2YgZW5kTGlzdFllYXJzXCI+e3tcclxuICAgICAgICAgICAgZW5kWWVhclxyXG4gICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGJyIC8+XHJcbjxkaXZcclxuICAqbmdJZj1cIiFpc1JhbmdlICYmIHN0eWxlID09PSAnc2xpZGVyJyAmJiB0eXBlID09PSAneWVhcidcIlxyXG4gIGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMCBpZ28tY29sLTEwMC1tIG1hdC10eXBvZ3JhcGh5XCJcclxuPlxyXG4gIDxzcGFuPnt7IHN0YXJ0WWVhciB9fTwvc3Bhbj5cclxuICA8IS0tIFRPRE86IFRoZSAndGlja0ludGVydmFsJyBwcm9wZXJ0eSBubyBsb25nZXIgZXhpc3RzIC0tPlxyXG4gIDxtYXQtc2xpZGVyXHJcbiAgICBpZD1cInRpbWUtc2xpZGVyXCJcclxuICAgIHN0ZXA9XCJ7eyBzdGVwIH19XCJcclxuICAgIFttaW5dPVwic3RhcnRZZWFyXCJcclxuICAgIFttYXhdPVwiZW5kWWVhclwiXHJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxyXG4gICAgdGh1bWJMYWJlbFxyXG4gICAgW2Rpc2FibGVkXT1cIiFvcHRpb25zLmVuYWJsZWQgfHwgIWxheWVyLnZpc2libGVcIlxyXG4gICAgI25nU2xpZGVyXHJcbiAgICA+PGlucHV0XHJcbiAgICAgIG1hdFNsaWRlclRodW1iXHJcbiAgICAgIFt2YWx1ZV09XCJoYW5kbGVTbGlkZXJWYWx1ZSgpXCJcclxuICAgICAgKGlucHV0KT1cIlxyXG4gICAgICAgIGhhbmRsZVNsaWRlclllYXJDaGFuZ2Uoe1xyXG4gICAgICAgICAgc291cmNlOiBuZ1NsaWRlclRodW1iLFxyXG4gICAgICAgICAgcGFyZW50OiBuZ1NsaWRlcixcclxuICAgICAgICAgIHZhbHVlOiBuZ1NsaWRlclRodW1iLnZhbHVlXHJcbiAgICAgICAgfSlcclxuICAgICAgXCJcclxuICAgICAgI25nU2xpZGVyVGh1bWI9XCJtYXRTbGlkZXJUaHVtYlwiXHJcbiAgICAgIChjaGFuZ2UpPVwiXHJcbiAgICAgICAgaGFuZGxlU2xpZGVyWWVhckNoYW5nZSh7XHJcbiAgICAgICAgICBzb3VyY2U6IG5nU2xpZGVyVGh1bWIsXHJcbiAgICAgICAgICBwYXJlbnQ6IG5nU2xpZGVyLFxyXG4gICAgICAgICAgdmFsdWU6IG5nU2xpZGVyVGh1bWIudmFsdWVcclxuICAgICAgICB9KVxyXG4gICAgICBcIlxyXG4gICAgLz5cclxuICA8L21hdC1zbGlkZXI+XHJcbiAgPHNwYW4+e3sgZW5kWWVhciB9fTwvc3Bhbj5cclxuICA8cCAqbmdJZj1cIm9wdGlvbnMuZW5hYmxlZFwiIGNsYXNzPVwiZGF0ZS1iZWxvd1wiPnt7IHllYXIgfX08L3A+XHJcbiAgPGRpdiAjYWN0aW9ucyBjbGFzcz1cImlnby1sYXllci1hY3Rpb25zLWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1zbGlkZS10b2dnbGVcclxuICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVGaWx0ZXJTdGF0ZSgpXCJcclxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci50b2dnbGVGaWx0ZXJTdGF0ZScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICBbY29sb3JdPVwiY29sb3JcIlxyXG4gICAgICBbY2hlY2tlZF09XCJvcHRpb25zLmVuYWJsZWRcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiIWxheWVyLnZpc2libGVcIlxyXG4gICAgPlxyXG4gICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBbZGlzYWJsZWRdPVwiIW9wdGlvbnMuZW5hYmxlZCB8fCAhbGF5ZXIudmlzaWJsZVwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAoY2xpY2spPVwicGxheVllYXIoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3sgcGxheUljb24gfX1cIj48L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhb3B0aW9ucy5lbmFibGVkIHx8ICFsYXllci52aXNpYmxlXCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgIChjbGljayk9XCJyZXNldEZpbHRlcigkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJ7eyByZXNldEljb24gfX1cIj48L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdlxyXG4gICpuZ0lmPVwic3R5bGUgPT09ICdzbGlkZXInICYmIHR5cGUgIT09ICd5ZWFyJ1wiXHJcbiAgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwIGlnby1jb2wtMTAwLW1cIlxyXG4+XHJcbiAgPCEtLSBUT0RPOiBUaGUgJ3RpY2tJbnRlcnZhbCcgcHJvcGVydHkgbm8gbG9uZ2VyIGV4aXN0cyAtLT5cclxuICA8bWF0LXNsaWRlclxyXG4gICAgaWQ9XCJ0aW1lLXNsaWRlclwiXHJcbiAgICBzdGVwPVwie3sgc3RlcCB9fVwiXHJcbiAgICBbbWluXT1cImRhdGVUb051bWJlcihtaW4pXCJcclxuICAgIFttYXhdPVwiZGF0ZVRvTnVtYmVyKG1heClcIlxyXG4gICAgdGh1bWJMYWJlbFxyXG4gICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVTbGlkZXJEYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgI25nU2xpZGVyXHJcbiAgICA+PGlucHV0XHJcbiAgICAgIG1hdFNsaWRlclRodW1iXHJcbiAgICAgIFt2YWx1ZV09XCJoYW5kbGVTbGlkZXJWYWx1ZSgpXCJcclxuICAgICAgKGlucHV0KT1cIlxyXG4gICAgICAgIGhhbmRsZVNsaWRlckRhdGVDaGFuZ2Uoe1xyXG4gICAgICAgICAgc291cmNlOiBuZ1NsaWRlclRodW1iLFxyXG4gICAgICAgICAgcGFyZW50OiBuZ1NsaWRlcixcclxuICAgICAgICAgIHZhbHVlOiBuZ1NsaWRlclRodW1iLnZhbHVlXHJcbiAgICAgICAgfSlcclxuICAgICAgXCJcclxuICAgICAgI25nU2xpZGVyVGh1bWI9XCJtYXRTbGlkZXJUaHVtYlwiXHJcbiAgICAvPlxyXG4gIDwvbWF0LXNsaWRlcj5cclxuICA8cCBjbGFzcz1cImRhdGUtYmVsb3dcIj57eyBoYW5kbGVTbGlkZXJUb29sdGlwKCkgfX08L3A+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInBsYXlGaWx0ZXIoJGV2ZW50KVwiPlxyXG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJ7eyBwbGF5SWNvbiB9fVwiPjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -59,14 +59,14 @@ export class TimeFilterItemComponent {
59
59
  this.filtersCollapsed = !this.filtersCollapsed;
60
60
  }
61
61
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeFilterItemComponent, deps: [{ token: i1.TimeFilterService }], target: i0.ɵɵFactoryTarget.Component });
62
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeFilterItemComponent, selector: "igo-time-filter-item", inputs: { header: "header", layer: "layer" }, ngImport: i0, template: "<mat-list-item *ngIf=\"header\">\n <mat-icon\n class=\"igo-chevron\"\n matListItemIcon\n igoCollapse\n [target]=\"filters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n svgIcon=\"chevron-up\"\n >\n </mat-icon>\n\n <span\n matListItemTitle\n (click)=\"toggleLegendOnClick()\"\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\n >{{ layer.title }}</span\n >\n\n <button\n *ngIf=\"header\"\n mat-icon-button\n matListItemMeta\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"layer.visible = !layer.visible\"\n >\n <mat-icon\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\n >\n </mat-icon>\n </button>\n</mat-list-item>\n\n<div #filters class=\"igo-datasource-filters-container\">\n <div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-time-filter-form\n [layer]=\"layer\"\n [options]=\"datasource.options.timeFilter\"\n [currentValue]=\"datasource.options.params.TIME\"\n (change)=\"handleDateChange($event)\"\n (yearChange)=\"handleYearChange($event)\"\n >\n </igo-time-filter-form>\n</div>\n", styles: [":host{overflow:hidden}:host .igo-datasource-filters-container{text-align:center;width:100%;display:inline-block;padding-top:5px}:host .igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i5.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.LayerLegendComponent, selector: "igo-layer-legend", inputs: ["updateLegendOnResolutionChange", "layer"] }, { kind: "directive", type: i8.CollapseDirective, selector: "[igoCollapse]", inputs: ["target", "collapsed"], outputs: ["toggle"] }, { kind: "component", type: i9.TimeFilterFormComponent, selector: "igo-time-filter-form", inputs: ["layer", "options", "currentValue"], outputs: ["change", "yearChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
62
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeFilterItemComponent, selector: "igo-time-filter-item", inputs: { header: "header", layer: "layer" }, ngImport: i0, template: "<mat-list-item *ngIf=\"header\">\r\n <mat-icon\r\n class=\"igo-chevron\"\r\n matListItemIcon\r\n igoCollapse\r\n [target]=\"filters\"\r\n [collapsed]=\"filtersCollapsed\"\r\n (click)=\"toggleFiltersCollapsed()\"\r\n svgIcon=\"chevron-up\"\r\n >\r\n </mat-icon>\r\n\r\n <span\r\n matListItemTitle\r\n (click)=\"toggleLegendOnClick()\"\r\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\r\n >{{ layer.title }}</span\r\n >\r\n\r\n <button\r\n *ngIf=\"header\"\r\n mat-icon-button\r\n matListItemMeta\r\n [color]=\"layer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"\r\n layer.visible\r\n ? ('igo.geo.layer.hideLayer' | translate)\r\n : ('igo.geo.layer.showLayer' | translate)\r\n \"\r\n (click)=\"layer.visible = !layer.visible\"\r\n >\r\n <mat-icon\r\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\r\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\r\n >\r\n </mat-icon>\r\n </button>\r\n</mat-list-item>\r\n\r\n<div #filters class=\"igo-datasource-filters-container\">\r\n <div #legend class=\"igo-layer-legend-container\">\r\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\r\n </igo-layer-legend>\r\n </div>\r\n <igo-time-filter-form\r\n [layer]=\"layer\"\r\n [options]=\"datasource.options.timeFilter\"\r\n [currentValue]=\"datasource.options.params.TIME\"\r\n (change)=\"handleDateChange($event)\"\r\n (yearChange)=\"handleYearChange($event)\"\r\n >\r\n </igo-time-filter-form>\r\n</div>\r\n", styles: [":host{overflow:hidden}:host .igo-datasource-filters-container{text-align:center;width:100%;display:inline-block;padding-top:5px}:host .igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i5.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.LayerLegendComponent, selector: "igo-layer-legend", inputs: ["updateLegendOnResolutionChange", "layer"] }, { kind: "directive", type: i8.CollapseDirective, selector: "[igoCollapse]", inputs: ["target", "collapsed"], outputs: ["toggle"] }, { kind: "component", type: i9.TimeFilterFormComponent, selector: "igo-time-filter-form", inputs: ["layer", "options", "currentValue"], outputs: ["change", "yearChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
63
63
  }
64
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeFilterItemComponent, decorators: [{
65
65
  type: Component,
66
- args: [{ selector: 'igo-time-filter-item', template: "<mat-list-item *ngIf=\"header\">\n <mat-icon\n class=\"igo-chevron\"\n matListItemIcon\n igoCollapse\n [target]=\"filters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n svgIcon=\"chevron-up\"\n >\n </mat-icon>\n\n <span\n matListItemTitle\n (click)=\"toggleLegendOnClick()\"\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\n >{{ layer.title }}</span\n >\n\n <button\n *ngIf=\"header\"\n mat-icon-button\n matListItemMeta\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"layer.visible = !layer.visible\"\n >\n <mat-icon\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\n >\n </mat-icon>\n </button>\n</mat-list-item>\n\n<div #filters class=\"igo-datasource-filters-container\">\n <div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-time-filter-form\n [layer]=\"layer\"\n [options]=\"datasource.options.timeFilter\"\n [currentValue]=\"datasource.options.params.TIME\"\n (change)=\"handleDateChange($event)\"\n (yearChange)=\"handleYearChange($event)\"\n >\n </igo-time-filter-form>\n</div>\n", styles: [":host{overflow:hidden}:host .igo-datasource-filters-container{text-align:center;width:100%;display:inline-block;padding-top:5px}:host .igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}\n"] }]
66
+ args: [{ selector: 'igo-time-filter-item', template: "<mat-list-item *ngIf=\"header\">\r\n <mat-icon\r\n class=\"igo-chevron\"\r\n matListItemIcon\r\n igoCollapse\r\n [target]=\"filters\"\r\n [collapsed]=\"filtersCollapsed\"\r\n (click)=\"toggleFiltersCollapsed()\"\r\n svgIcon=\"chevron-up\"\r\n >\r\n </mat-icon>\r\n\r\n <span\r\n matListItemTitle\r\n (click)=\"toggleLegendOnClick()\"\r\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\r\n >{{ layer.title }}</span\r\n >\r\n\r\n <button\r\n *ngIf=\"header\"\r\n mat-icon-button\r\n matListItemMeta\r\n [color]=\"layer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"\r\n layer.visible\r\n ? ('igo.geo.layer.hideLayer' | translate)\r\n : ('igo.geo.layer.showLayer' | translate)\r\n \"\r\n (click)=\"layer.visible = !layer.visible\"\r\n >\r\n <mat-icon\r\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\r\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\r\n >\r\n </mat-icon>\r\n </button>\r\n</mat-list-item>\r\n\r\n<div #filters class=\"igo-datasource-filters-container\">\r\n <div #legend class=\"igo-layer-legend-container\">\r\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\r\n </igo-layer-legend>\r\n </div>\r\n <igo-time-filter-form\r\n [layer]=\"layer\"\r\n [options]=\"datasource.options.timeFilter\"\r\n [currentValue]=\"datasource.options.params.TIME\"\r\n (change)=\"handleDateChange($event)\"\r\n (yearChange)=\"handleYearChange($event)\"\r\n >\r\n </igo-time-filter-form>\r\n</div>\r\n", styles: [":host{overflow:hidden}:host .igo-datasource-filters-container{text-align:center;width:100%;display:inline-block;padding-top:5px}:host .igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}\n"] }]
67
67
  }], ctorParameters: function () { return [{ type: i1.TimeFilterService }]; }, propDecorators: { header: [{
68
68
  type: Input
69
69
  }], layer: [{
70
70
  type: Input
71
71
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItaXRlbS90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1pdGVtL3RpbWUtZmlsdGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT2xFLE1BQU0sT0FBTyx1QkFBdUI7SUFlZDtJQWRiLEtBQUssR0FBRyxTQUFTLENBQUM7SUFDekIsV0FBVyxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsWUFBWSxDQUFlO0lBRW5DLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUV6QixNQUFNLEdBQVksSUFBSSxDQUFDO0lBRXZCLEtBQUssQ0FBUTtJQUV0QixJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBc0MsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFBRyxDQUFDO0lBRTVELFFBQVE7UUFDTixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQzlELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQStCO1FBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBeUI7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxZQUFZLENBQUMsU0FBa0I7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pELENBQUM7d0dBckRVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDBHQ2JwQyx1aURBd0RBOzs0RkQzQ2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjt3R0FZdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgVGltZUZpbHRlcmFibGVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXRpbWUtZmlsdGVyLWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVGaWx0ZXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBjb2xvciA9ICdwcmltYXJ5JztcclxuICBzaG93TGVnZW5kJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcbiAgaW5SZXNvbHV0aW9uUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG4gIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGZpbHRlcnNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgaGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgbGF5ZXI6IExheWVyO1xyXG5cclxuICBnZXQgZGF0YXNvdXJjZSgpOiBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMubGF5ZXIuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2U7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGltZUZpbHRlclNlcnZpY2U6IFRpbWVGaWx0ZXJTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlc29sdXRpb24kID0gdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQ7XHJcbiAgICB0aGlzLnJlc29sdXRpb24kJCA9IHJlc29sdXRpb24kLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVllYXJDaGFuZ2UoeWVhcjogc3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXSkge1xyXG4gICAgdGhpcy50aW1lRmlsdGVyU2VydmljZS5maWx0ZXJCeVllYXIodGhpcy5kYXRhc291cmNlLCB5ZWFyKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZURhdGVDaGFuZ2UoZGF0ZTogRGF0ZSB8IFtEYXRlLCBEYXRlXSkge1xyXG4gICAgdGhpcy50aW1lRmlsdGVyU2VydmljZS5maWx0ZXJCeURhdGUodGhpcy5kYXRhc291cmNlLCBkYXRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpbHRlcnNDb2xsYXBzZWQpIHtcclxuICAgICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5zaG93TGVnZW5kJC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSgpIHtcclxuICAgIHRoaXMubGF5ZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKCkge1xyXG4gICAgdGhpcy5maWx0ZXJzQ29sbGFwc2VkID0gIXRoaXMuZmlsdGVyc0NvbGxhcHNlZDtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1saXN0LWl0ZW0gKm5nSWY9XCJoZWFkZXJcIj5cbiAgPG1hdC1pY29uXG4gICAgY2xhc3M9XCJpZ28tY2hldnJvblwiXG4gICAgbWF0TGlzdEl0ZW1JY29uXG4gICAgaWdvQ29sbGFwc2VcbiAgICBbdGFyZ2V0XT1cImZpbHRlcnNcIlxuICAgIFtjb2xsYXBzZWRdPVwiZmlsdGVyc0NvbGxhcHNlZFwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZUZpbHRlcnNDb2xsYXBzZWQoKVwiXG4gICAgc3ZnSWNvbj1cImNoZXZyb24tdXBcIlxuICA+XG4gIDwvbWF0LWljb24+XG5cbiAgPHNwYW5cbiAgICBtYXRMaXN0SXRlbVRpdGxlXG4gICAgKGNsaWNrKT1cInRvZ2dsZUxlZ2VuZE9uQ2xpY2soKVwiXG4gICAgW25nU3R5bGVdPVwieyBjdXJzb3I6IGZpbHRlcnNDb2xsYXBzZWQgPyAnZGVmYXVsdCcgOiAncG9pbnRlcicgfVwiXG4gICAgPnt7IGxheWVyLnRpdGxlIH19PC9zcGFuXG4gID5cblxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJoZWFkZXJcIlxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIG1hdExpc3RJdGVtTWV0YVxuICAgIFtjb2xvcl09XCJsYXllci52aXNpYmxlID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgICBjb2xsYXBzaWJsZUJ1dHRvblxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICBsYXllci52aXNpYmxlXG4gICAgICAgID8gKCdpZ28uZ2VvLmxheWVyLmhpZGVMYXllcicgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogKCdpZ28uZ2VvLmxheWVyLnNob3dMYXllcicgfCB0cmFuc2xhdGUpXG4gICAgXCJcbiAgICAoY2xpY2spPVwibGF5ZXIudmlzaWJsZSA9ICFsYXllci52aXNpYmxlXCJcbiAgPlxuICAgIDxtYXQtaWNvblxuICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKSA9PT0gZmFsc2UgfVwiXG4gICAgICBbc3ZnSWNvbl09XCJsYXllci52aXNpYmxlID8gJ2V5ZScgOiAnZXllLW9mZidcIlxuICAgID5cbiAgICA8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvbWF0LWxpc3QtaXRlbT5cblxuPGRpdiAjZmlsdGVycyBjbGFzcz1cImlnby1kYXRhc291cmNlLWZpbHRlcnMtY29udGFpbmVyXCI+XG4gIDxkaXYgI2xlZ2VuZCBjbGFzcz1cImlnby1sYXllci1sZWdlbmQtY29udGFpbmVyXCI+XG4gICAgPGlnby1sYXllci1sZWdlbmQgKm5nSWY9XCJzaG93TGVnZW5kJCB8IGFzeW5jXCIgW2xheWVyXT1cImxheWVyXCI+XG4gICAgPC9pZ28tbGF5ZXItbGVnZW5kPlxuICA8L2Rpdj5cbiAgPGlnby10aW1lLWZpbHRlci1mb3JtXG4gICAgW2xheWVyXT1cImxheWVyXCJcbiAgICBbb3B0aW9uc109XCJkYXRhc291cmNlLm9wdGlvbnMudGltZUZpbHRlclwiXG4gICAgW2N1cnJlbnRWYWx1ZV09XCJkYXRhc291cmNlLm9wdGlvbnMucGFyYW1zLlRJTUVcIlxuICAgIChjaGFuZ2UpPVwiaGFuZGxlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoeWVhckNoYW5nZSk9XCJoYW5kbGVZZWFyQ2hhbmdlKCRldmVudClcIlxuICA+XG4gIDwvaWdvLXRpbWUtZmlsdGVyLWZvcm0+XG48L2Rpdj5cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItaXRlbS90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1pdGVtL3RpbWUtZmlsdGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT2xFLE1BQU0sT0FBTyx1QkFBdUI7SUFlZDtJQWRiLEtBQUssR0FBRyxTQUFTLENBQUM7SUFDekIsV0FBVyxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsWUFBWSxDQUFlO0lBRW5DLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUV6QixNQUFNLEdBQVksSUFBSSxDQUFDO0lBRXZCLEtBQUssQ0FBUTtJQUV0QixJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBc0MsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFBRyxDQUFDO0lBRTVELFFBQVE7UUFDTixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQzlELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQStCO1FBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBeUI7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxZQUFZLENBQUMsU0FBa0I7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pELENBQUM7d0dBckRVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDBHQ2JwQyx1cERBd0RBOzs0RkQzQ2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjt3R0FZdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgVGltZUZpbHRlcmFibGVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXRpbWUtZmlsdGVyLWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVGaWx0ZXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBjb2xvciA9ICdwcmltYXJ5JztcclxuICBzaG93TGVnZW5kJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcbiAgaW5SZXNvbHV0aW9uUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG4gIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGZpbHRlcnNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgaGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgbGF5ZXI6IExheWVyO1xyXG5cclxuICBnZXQgZGF0YXNvdXJjZSgpOiBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMubGF5ZXIuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2U7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGltZUZpbHRlclNlcnZpY2U6IFRpbWVGaWx0ZXJTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlc29sdXRpb24kID0gdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQ7XHJcbiAgICB0aGlzLnJlc29sdXRpb24kJCA9IHJlc29sdXRpb24kLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVllYXJDaGFuZ2UoeWVhcjogc3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXSkge1xyXG4gICAgdGhpcy50aW1lRmlsdGVyU2VydmljZS5maWx0ZXJCeVllYXIodGhpcy5kYXRhc291cmNlLCB5ZWFyKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZURhdGVDaGFuZ2UoZGF0ZTogRGF0ZSB8IFtEYXRlLCBEYXRlXSkge1xyXG4gICAgdGhpcy50aW1lRmlsdGVyU2VydmljZS5maWx0ZXJCeURhdGUodGhpcy5kYXRhc291cmNlLCBkYXRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpbHRlcnNDb2xsYXBzZWQpIHtcclxuICAgICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5zaG93TGVnZW5kJC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSgpIHtcclxuICAgIHRoaXMubGF5ZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKCkge1xyXG4gICAgdGhpcy5maWx0ZXJzQ29sbGFwc2VkID0gIXRoaXMuZmlsdGVyc0NvbGxhcHNlZDtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1saXN0LWl0ZW0gKm5nSWY9XCJoZWFkZXJcIj5cclxuICA8bWF0LWljb25cclxuICAgIGNsYXNzPVwiaWdvLWNoZXZyb25cIlxyXG4gICAgbWF0TGlzdEl0ZW1JY29uXHJcbiAgICBpZ29Db2xsYXBzZVxyXG4gICAgW3RhcmdldF09XCJmaWx0ZXJzXCJcclxuICAgIFtjb2xsYXBzZWRdPVwiZmlsdGVyc0NvbGxhcHNlZFwiXHJcbiAgICAoY2xpY2spPVwidG9nZ2xlRmlsdGVyc0NvbGxhcHNlZCgpXCJcclxuICAgIHN2Z0ljb249XCJjaGV2cm9uLXVwXCJcclxuICA+XHJcbiAgPC9tYXQtaWNvbj5cclxuXHJcbiAgPHNwYW5cclxuICAgIG1hdExpc3RJdGVtVGl0bGVcclxuICAgIChjbGljayk9XCJ0b2dnbGVMZWdlbmRPbkNsaWNrKClcIlxyXG4gICAgW25nU3R5bGVdPVwieyBjdXJzb3I6IGZpbHRlcnNDb2xsYXBzZWQgPyAnZGVmYXVsdCcgOiAncG9pbnRlcicgfVwiXHJcbiAgICA+e3sgbGF5ZXIudGl0bGUgfX08L3NwYW5cclxuICA+XHJcblxyXG4gIDxidXR0b25cclxuICAgICpuZ0lmPVwiaGVhZGVyXCJcclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgbWF0TGlzdEl0ZW1NZXRhXHJcbiAgICBbY29sb3JdPVwibGF5ZXIudmlzaWJsZSA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXHJcbiAgICBjb2xsYXBzaWJsZUJ1dHRvblxyXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiXHJcbiAgICAgIGxheWVyLnZpc2libGVcclxuICAgICAgICA/ICgnaWdvLmdlby5sYXllci5oaWRlTGF5ZXInIHwgdHJhbnNsYXRlKVxyXG4gICAgICAgIDogKCdpZ28uZ2VvLmxheWVyLnNob3dMYXllcicgfCB0cmFuc2xhdGUpXHJcbiAgICBcIlxyXG4gICAgKGNsaWNrKT1cImxheWVyLnZpc2libGUgPSAhbGF5ZXIudmlzaWJsZVwiXHJcbiAgPlxyXG4gICAgPG1hdC1pY29uXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IChpblJlc29sdXRpb25SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlIH1cIlxyXG4gICAgICBbc3ZnSWNvbl09XCJsYXllci52aXNpYmxlID8gJ2V5ZScgOiAnZXllLW9mZidcIlxyXG4gICAgPlxyXG4gICAgPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtbGlzdC1pdGVtPlxyXG5cclxuPGRpdiAjZmlsdGVycyBjbGFzcz1cImlnby1kYXRhc291cmNlLWZpbHRlcnMtY29udGFpbmVyXCI+XHJcbiAgPGRpdiAjbGVnZW5kIGNsYXNzPVwiaWdvLWxheWVyLWxlZ2VuZC1jb250YWluZXJcIj5cclxuICAgIDxpZ28tbGF5ZXItbGVnZW5kICpuZ0lmPVwic2hvd0xlZ2VuZCQgfCBhc3luY1wiIFtsYXllcl09XCJsYXllclwiPlxyXG4gICAgPC9pZ28tbGF5ZXItbGVnZW5kPlxyXG4gIDwvZGl2PlxyXG4gIDxpZ28tdGltZS1maWx0ZXItZm9ybVxyXG4gICAgW2xheWVyXT1cImxheWVyXCJcclxuICAgIFtvcHRpb25zXT1cImRhdGFzb3VyY2Uub3B0aW9ucy50aW1lRmlsdGVyXCJcclxuICAgIFtjdXJyZW50VmFsdWVdPVwiZGF0YXNvdXJjZS5vcHRpb25zLnBhcmFtcy5USU1FXCJcclxuICAgIChjaGFuZ2UpPVwiaGFuZGxlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICh5ZWFyQ2hhbmdlKT1cImhhbmRsZVllYXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgPlxyXG4gIDwvaWdvLXRpbWUtZmlsdGVyLWZvcm0+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -18,12 +18,12 @@ export class TimeFilterListComponent {
18
18
  this.cdRef = cdRef;
19
19
  }
20
20
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeFilterListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
21
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeFilterListComponent, selector: "igo-time-filter-list", inputs: { layers: "layers" }, ngImport: i0, template: "<igo-list [navigation]=\"false\" [selection]=\"false\">\n <ng-template\n ngFor\n let-layer\n [ngForOf]=\"layers | filterableDataSource: 'time'\"\n >\n <igo-time-filter-item\n [header]=\"true\"\n igoListItem\n [layer]=\"layer\"\n ></igo-time-filter-item>\n </ng-template>\n</igo-list>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "component", type: i2.ListComponent, selector: "igo-list", inputs: ["navigation", "selection"] }, { kind: "component", type: i3.TimeFilterItemComponent, selector: "igo-time-filter-item", inputs: ["header", "layer"] }, { kind: "pipe", type: i4.FilterableDataSourcePipe, name: "filterableDataSource" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeFilterListComponent, selector: "igo-time-filter-list", inputs: { layers: "layers" }, ngImport: i0, template: "<igo-list [navigation]=\"false\" [selection]=\"false\">\r\n <ng-template\r\n ngFor\r\n let-layer\r\n [ngForOf]=\"layers | filterableDataSource: 'time'\"\r\n >\r\n <igo-time-filter-item\r\n [header]=\"true\"\r\n igoListItem\r\n [layer]=\"layer\"\r\n ></igo-time-filter-item>\r\n </ng-template>\r\n</igo-list>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "component", type: i2.ListComponent, selector: "igo-list", inputs: ["navigation", "selection"] }, { kind: "component", type: i3.TimeFilterItemComponent, selector: "igo-time-filter-item", inputs: ["header", "layer"] }, { kind: "pipe", type: i4.FilterableDataSourcePipe, name: "filterableDataSource" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeFilterListComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'igo-time-filter-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"false\" [selection]=\"false\">\n <ng-template\n ngFor\n let-layer\n [ngForOf]=\"layers | filterableDataSource: 'time'\"\n >\n <igo-time-filter-item\n [header]=\"true\"\n igoListItem\n [layer]=\"layer\"\n ></igo-time-filter-item>\n </ng-template>\n</igo-list>\n" }]
25
+ args: [{ selector: 'igo-time-filter-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"false\" [selection]=\"false\">\r\n <ng-template\r\n ngFor\r\n let-layer\r\n [ngForOf]=\"layers | filterableDataSource: 'time'\"\r\n >\r\n <igo-time-filter-item\r\n [header]=\"true\"\r\n igoListItem\r\n [layer]=\"layer\"\r\n ></igo-time-filter-item>\r\n </ng-template>\r\n</igo-list>\r\n" }]
26
26
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { layers: [{
27
27
  type: Input
28
28
  }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItbGlzdC90aW1lLWZpbHRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1saXN0L3RpbWUtZmlsdGVyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZCLE1BQU0sT0FBTyx1QkFBdUI7SUFXZDtJQVZwQixJQUNJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ08sT0FBTyxHQUFZLEVBQUUsQ0FBQztJQUU5QixZQUFvQixLQUF3QjtRQUF4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUFHLENBQUM7d0dBWHJDLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDBGQ2RwQyxnVUFhQTs7NEZEQ2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQixtQkFFZix1QkFBdUIsQ0FBQyxNQUFNO3dHQUkzQyxNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXRpbWUtZmlsdGVyLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWZpbHRlci1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGltZUZpbHRlckxpc3RDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGxheWVycygpOiBMYXllcltdIHtcclxuICAgIHJldHVybiB0aGlzLl9sYXllcnM7XHJcbiAgfVxyXG4gIHNldCBsYXllcnModmFsdWU6IExheWVyW10pIHtcclxuICAgIHRoaXMuX2xheWVycyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2xheWVyczogTGF5ZXJbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxufVxyXG4iLCI8aWdvLWxpc3QgW25hdmlnYXRpb25dPVwiZmFsc2VcIiBbc2VsZWN0aW9uXT1cImZhbHNlXCI+XG4gIDxuZy10ZW1wbGF0ZVxuICAgIG5nRm9yXG4gICAgbGV0LWxheWVyXG4gICAgW25nRm9yT2ZdPVwibGF5ZXJzIHwgZmlsdGVyYWJsZURhdGFTb3VyY2U6ICd0aW1lJ1wiXG4gID5cbiAgICA8aWdvLXRpbWUtZmlsdGVyLWl0ZW1cbiAgICAgIFtoZWFkZXJdPVwidHJ1ZVwiXG4gICAgICBpZ29MaXN0SXRlbVxuICAgICAgW2xheWVyXT1cImxheWVyXCJcbiAgICA+PC9pZ28tdGltZS1maWx0ZXItaXRlbT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvaWdvLWxpc3Q+XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItbGlzdC90aW1lLWZpbHRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1saXN0L3RpbWUtZmlsdGVyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZCLE1BQU0sT0FBTyx1QkFBdUI7SUFXZDtJQVZwQixJQUNJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ08sT0FBTyxHQUFZLEVBQUUsQ0FBQztJQUU5QixZQUFvQixLQUF3QjtRQUF4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUFHLENBQUM7d0dBWHJDLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDBGQ2RwQywwVkFhQTs7NEZEQ2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQixtQkFFZix1QkFBdUIsQ0FBQyxNQUFNO3dHQUkzQyxNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXRpbWUtZmlsdGVyLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWZpbHRlci1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGltZUZpbHRlckxpc3RDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGxheWVycygpOiBMYXllcltdIHtcclxuICAgIHJldHVybiB0aGlzLl9sYXllcnM7XHJcbiAgfVxyXG4gIHNldCBsYXllcnModmFsdWU6IExheWVyW10pIHtcclxuICAgIHRoaXMuX2xheWVycyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2xheWVyczogTGF5ZXJbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxufVxyXG4iLCI8aWdvLWxpc3QgW25hdmlnYXRpb25dPVwiZmFsc2VcIiBbc2VsZWN0aW9uXT1cImZhbHNlXCI+XHJcbiAgPG5nLXRlbXBsYXRlXHJcbiAgICBuZ0ZvclxyXG4gICAgbGV0LWxheWVyXHJcbiAgICBbbmdGb3JPZl09XCJsYXllcnMgfCBmaWx0ZXJhYmxlRGF0YVNvdXJjZTogJ3RpbWUnXCJcclxuICA+XHJcbiAgICA8aWdvLXRpbWUtZmlsdGVyLWl0ZW1cclxuICAgICAgW2hlYWRlcl09XCJ0cnVlXCJcclxuICAgICAgaWdvTGlzdEl0ZW1cclxuICAgICAgW2xheWVyXT1cImxheWVyXCJcclxuICAgID48L2lnby10aW1lLWZpbHRlci1pdGVtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvaWdvLWxpc3Q+XHJcbiJdfQ==