@igo2/geo 1.13.0 → 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. package/assets/icons/cross_black_18px.svg +88 -88
  2. package/assets/icons/place_blue_36px.svg +55 -55
  3. package/assets/icons/place_green_36px.svg +55 -55
  4. package/assets/icons/place_red_36px.svg +55 -55
  5. package/assets/icons/place_yellow_36px.svg +55 -55
  6. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +2 -2
  7. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +2 -2
  8. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +2 -2
  9. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +1 -1
  10. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +2 -2
  11. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
  12. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +2 -2
  13. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +1 -1
  14. package/esm2020/lib/catalog/catalog.module.mjs +1 -1
  15. package/esm2020/lib/catalog/index.mjs +1 -1
  16. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +1 -1
  17. package/esm2020/lib/catalog/shared/catalog.enum.mjs +1 -1
  18. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  19. package/esm2020/lib/catalog/shared/catalog.service.mjs +1 -1
  20. package/esm2020/lib/catalog/shared/index.mjs +1 -1
  21. package/esm2020/lib/datasource/datasource.module.mjs +1 -1
  22. package/esm2020/lib/datasource/index.mjs +1 -1
  23. package/esm2020/lib/datasource/shared/capabilities.service.mjs +22 -17
  24. package/esm2020/lib/datasource/shared/datasource.service.mjs +1 -1
  25. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  26. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  27. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  29. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  30. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  32. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +1 -1
  34. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  35. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +1 -1
  36. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  37. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  39. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/index.mjs +1 -1
  41. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  42. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
  43. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  44. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
  45. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  46. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
  47. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  48. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
  49. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  50. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  52. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  53. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +1 -1
  54. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  55. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
  57. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  58. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  59. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  60. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  61. package/esm2020/lib/datasource/shared/index.mjs +1 -1
  62. package/esm2020/lib/datasource/shared/options/index.mjs +1 -1
  63. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
  64. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +1 -1
  65. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +1 -1
  66. package/esm2020/lib/datasource/shared/options/options.service.mjs +1 -1
  67. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +1 -1
  68. package/esm2020/lib/datasource/utils/index.mjs +1 -1
  69. package/esm2020/lib/datasource/utils/tilegrid.mjs +1 -1
  70. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +2 -2
  71. package/esm2020/lib/directions/directions-buttons/index.mjs +1 -1
  72. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +2 -2
  73. package/esm2020/lib/directions/directions-inputs/index.mjs +1 -1
  74. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +2 -2
  75. package/esm2020/lib/directions/directions-results/index.mjs +1 -1
  76. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  77. package/esm2020/lib/directions/directions-sources/directions-source.mjs +1 -1
  78. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
  79. package/esm2020/lib/directions/directions-sources/index.mjs +1 -1
  80. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
  81. package/esm2020/lib/directions/directions.component.mjs +2 -2
  82. package/esm2020/lib/directions/directions.module.mjs +1 -1
  83. package/esm2020/lib/directions/index.mjs +1 -1
  84. package/esm2020/lib/directions/shared/directions-source.service.mjs +1 -1
  85. package/esm2020/lib/directions/shared/directions.enum.mjs +1 -1
  86. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  87. package/esm2020/lib/directions/shared/directions.service.mjs +1 -1
  88. package/esm2020/lib/directions/shared/directions.utils.mjs +1 -1
  89. package/esm2020/lib/directions/shared/index.mjs +1 -1
  90. package/esm2020/lib/directions/shared/store.mjs +1 -1
  91. package/esm2020/lib/download/download-button/download-button.component.mjs +2 -2
  92. package/esm2020/lib/download/download-button/index.mjs +1 -1
  93. package/esm2020/lib/download/download.module.mjs +1 -1
  94. package/esm2020/lib/download/index.mjs +1 -1
  95. package/esm2020/lib/download/shared/download.interface.mjs +1 -1
  96. package/esm2020/lib/download/shared/download.service.mjs +1 -1
  97. package/esm2020/lib/download/shared/index.mjs +1 -1
  98. package/esm2020/lib/draw/draw/draw-popup.component.mjs +5 -5
  99. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
  100. package/esm2020/lib/draw/draw/draw.component.mjs +384 -273
  101. package/esm2020/lib/draw/draw/draw.module.mjs +19 -15
  102. package/esm2020/lib/draw/drawingTool.module.mjs +1 -1
  103. package/esm2020/lib/draw/index.mjs +1 -1
  104. package/esm2020/lib/draw/shared/draw-icon.service.mjs +1 -1
  105. package/esm2020/lib/draw/shared/draw-style.service.mjs +35 -18
  106. package/esm2020/lib/draw/shared/draw.enum.mjs +1 -1
  107. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  108. package/esm2020/lib/draw/shared/draw.utils.mjs +1 -1
  109. package/esm2020/lib/draw/shared/index.mjs +1 -1
  110. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +52 -27
  111. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +1 -1
  112. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +1 -1
  113. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +2 -2
  114. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +1 -1
  115. package/esm2020/lib/feature/feature.module.mjs +1 -1
  116. package/esm2020/lib/feature/index.mjs +1 -1
  117. package/esm2020/lib/feature/shared/feature.enums.mjs +1 -1
  118. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  119. package/esm2020/lib/feature/shared/feature.utils.mjs +4 -5
  120. package/esm2020/lib/feature/shared/index.mjs +1 -1
  121. package/esm2020/lib/feature/shared/store.mjs +14 -2
  122. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  123. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
  124. package/esm2020/lib/feature/shared/strategies/index.mjs +1 -1
  125. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +1 -1
  126. package/esm2020/lib/feature/shared/strategies/loading.mjs +1 -1
  127. package/esm2020/lib/feature/shared/strategies/selection.mjs +1 -1
  128. package/esm2020/lib/feature/shared/strategies.utils.mjs +1 -1
  129. package/esm2020/lib/filter/filter.module.mjs +2 -2
  130. package/esm2020/lib/filter/index.mjs +1 -1
  131. package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
  132. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
  133. package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
  134. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +3 -3
  135. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
  136. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +3 -3
  137. package/esm2020/lib/filter/ogc-filter-time/index.mjs +1 -1
  138. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
  139. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +3 -3
  140. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
  141. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  142. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
  143. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +44 -39
  144. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +1 -1
  145. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
  146. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +23 -10
  147. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
  148. package/esm2020/lib/filter/shared/index.mjs +1 -1
  149. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
  150. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  151. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  152. package/esm2020/lib/filter/shared/ogc-filter.mjs +1 -1
  153. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +1 -1
  154. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  155. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
  156. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +1 -1
  157. package/esm2020/lib/filter/shared/time-filter.enum.mjs +1 -1
  158. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  159. package/esm2020/lib/filter/shared/time-filter.service.mjs +1 -1
  160. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
  161. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +2 -2
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
  163. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +2 -2
  164. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
  165. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
  166. package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
  167. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  168. package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
  169. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
  170. package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
  171. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  172. package/esm2020/lib/filter/time-filter-list/index.mjs +1 -1
  173. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
  174. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  175. package/esm2020/lib/geo.module.mjs +1 -1
  176. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +1 -1
  177. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
  178. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +1 -1
  179. package/esm2020/lib/geometry/geometry.module.mjs +1 -1
  180. package/esm2020/lib/geometry/index.mjs +1 -1
  181. package/esm2020/lib/geometry/shared/controls/draw.mjs +1 -1
  182. package/esm2020/lib/geometry/shared/controls/index.mjs +1 -1
  183. package/esm2020/lib/geometry/shared/controls/modify.mjs +1 -1
  184. package/esm2020/lib/geometry/shared/controls/slice.mjs +1 -1
  185. package/esm2020/lib/geometry/shared/geometry.errors.mjs +1 -1
  186. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  187. package/esm2020/lib/geometry/shared/geometry.utils.mjs +1 -1
  188. package/esm2020/lib/geometry/shared/index.mjs +1 -1
  189. package/esm2020/lib/import-export/export-button/export-button.component.mjs +2 -2
  190. package/esm2020/lib/import-export/export-button/index.mjs +1 -1
  191. package/esm2020/lib/import-export/import-export/import-export.component.mjs +98 -68
  192. package/esm2020/lib/import-export/import-export/index.mjs +1 -1
  193. package/esm2020/lib/import-export/import-export.module.mjs +6 -3
  194. package/esm2020/lib/import-export/index.mjs +1 -1
  195. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +1 -1
  196. package/esm2020/lib/import-export/shared/export.errors.mjs +1 -1
  197. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  198. package/esm2020/lib/import-export/shared/export.service.mjs +1 -1
  199. package/esm2020/lib/import-export/shared/export.type.mjs +1 -1
  200. package/esm2020/lib/import-export/shared/export.utils.mjs +1 -1
  201. package/esm2020/lib/import-export/shared/import.errors.mjs +1 -1
  202. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  203. package/esm2020/lib/import-export/shared/import.service.mjs +1 -1
  204. package/esm2020/lib/import-export/shared/import.utils.mjs +3 -2
  205. package/esm2020/lib/import-export/shared/index.mjs +1 -1
  206. package/esm2020/lib/import-export/style-list/index.mjs +1 -1
  207. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +1 -1
  208. package/esm2020/lib/import-export/style-list/style-list.module.mjs +1 -1
  209. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +1 -1
  210. package/esm2020/lib/import-export/style-list/style-list.service.mjs +1 -1
  211. package/esm2020/lib/layer/index.mjs +2 -1
  212. package/esm2020/lib/layer/layer-item/index.mjs +1 -1
  213. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +2 -2
  214. package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
  215. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +28 -22
  216. package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
  217. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
  218. package/esm2020/lib/layer/layer-legend-list/index.mjs +1 -1
  219. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +1 -1
  220. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
  221. package/esm2020/lib/layer/layer-list/index.mjs +1 -1
  222. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +1 -1
  223. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +47 -28
  224. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  225. package/esm2020/lib/layer/layer-list-tool/index.mjs +1 -1
  226. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +5 -5
  227. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +1 -1
  228. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  229. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
  230. package/esm2020/lib/layer/layer.module.mjs +19 -7
  231. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  232. package/esm2020/lib/layer/shared/index.mjs +1 -1
  233. package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
  234. package/esm2020/lib/layer/shared/layer.service.mjs +1 -1
  235. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  236. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  237. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  238. package/esm2020/lib/layer/shared/layers/image-layer.mjs +1 -1
  239. package/esm2020/lib/layer/shared/layers/index.mjs +1 -1
  240. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
  241. package/esm2020/lib/layer/shared/layers/layer.mjs +1 -1
  242. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  243. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +1 -1
  244. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  245. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +4 -1
  246. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  247. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  248. package/esm2020/lib/layer/shared/style.service.mjs +1 -1
  249. package/esm2020/lib/layer/shared/vector-style.interface.mjs +1 -1
  250. package/esm2020/lib/layer/style-modal/index.mjs +2 -0
  251. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +288 -0
  252. package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
  253. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
  254. package/esm2020/lib/layer/utils/image-watcher.mjs +1 -1
  255. package/esm2020/lib/layer/utils/index.mjs +1 -1
  256. package/esm2020/lib/layer/utils/layer.utils.mjs +1 -1
  257. package/esm2020/lib/layer/utils/outputLegend.mjs +1 -1
  258. package/esm2020/lib/layer/utils/tile-watcher.mjs +1 -1
  259. package/esm2020/lib/layer/utils/vector-watcher.mjs +1 -1
  260. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +1 -1
  261. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +2 -2
  262. package/esm2020/lib/map/baselayers-switcher/index.mjs +1 -1
  263. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +2 -2
  264. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +21 -18
  265. package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
  266. package/esm2020/lib/map/index.mjs +1 -1
  267. package/esm2020/lib/map/info-section/index.mjs +1 -1
  268. package/esm2020/lib/map/info-section/info-section.component.mjs +2 -2
  269. package/esm2020/lib/map/map-browser/index.mjs +1 -1
  270. package/esm2020/lib/map/map-browser/map-browser.component.mjs +2 -2
  271. package/esm2020/lib/map/map-center/index.mjs +1 -1
  272. package/esm2020/lib/map/map-center/map-center.component.mjs +2 -2
  273. package/esm2020/lib/map/map.module.mjs +1 -1
  274. package/esm2020/lib/map/menu-button/index.mjs +1 -1
  275. package/esm2020/lib/map/menu-button/menu-button.component.mjs +2 -2
  276. package/esm2020/lib/map/offline-button/index.mjs +1 -1
  277. package/esm2020/lib/map/offline-button/offline-button.component.mjs +2 -2
  278. package/esm2020/lib/map/rotation-button/index.mjs +1 -1
  279. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +41 -62
  280. package/esm2020/lib/map/shared/controllers/controller.mjs +1 -1
  281. package/esm2020/lib/map/shared/controllers/geolocation.mjs +1 -1
  282. package/esm2020/lib/map/shared/controllers/index.mjs +1 -1
  283. package/esm2020/lib/map/shared/controllers/view.mjs +11 -2
  284. package/esm2020/lib/map/shared/hover-feature.directive.mjs +10 -13
  285. package/esm2020/lib/map/shared/index.mjs +1 -1
  286. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +3 -3
  287. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +1 -1
  288. package/esm2020/lib/map/shared/map.enums.mjs +1 -1
  289. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  290. package/esm2020/lib/map/shared/map.mjs +2 -1
  291. package/esm2020/lib/map/shared/map.service.mjs +1 -1
  292. package/esm2020/lib/map/shared/map.utils.mjs +1 -1
  293. package/esm2020/lib/map/shared/mapOffline.directive.mjs +1 -1
  294. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  295. package/esm2020/lib/map/shared/projection.service.mjs +1 -1
  296. package/esm2020/lib/map/shared/projection.utils.mjs +1 -1
  297. package/esm2020/lib/map/swipe-control/index.mjs +1 -1
  298. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +2 -2
  299. package/esm2020/lib/map/utils/layer-watcher.mjs +1 -1
  300. package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
  301. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +2 -2
  302. package/esm2020/lib/map/zoom-button/index.mjs +1 -1
  303. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +2 -2
  304. package/esm2020/lib/measure/index.mjs +1 -1
  305. package/esm2020/lib/measure/measure.module.mjs +1 -1
  306. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +1 -1
  307. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
  308. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +2 -2
  309. package/esm2020/lib/measure/measurer/measurer.component.mjs +2 -2
  310. package/esm2020/lib/measure/measurer/measurer.module.mjs +1 -1
  311. package/esm2020/lib/measure/shared/index.mjs +1 -1
  312. package/esm2020/lib/measure/shared/measure.enum.mjs +1 -1
  313. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  314. package/esm2020/lib/measure/shared/measure.utils.mjs +1 -1
  315. package/esm2020/lib/metadata/index.mjs +1 -1
  316. package/esm2020/lib/metadata/metadata-button/index.mjs +1 -1
  317. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
  318. package/esm2020/lib/metadata/metadata.module.mjs +1 -1
  319. package/esm2020/lib/metadata/shared/index.mjs +1 -1
  320. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  321. package/esm2020/lib/metadata/shared/metadata.service.mjs +1 -1
  322. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +76 -0
  323. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  324. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  325. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +7 -1
  326. package/esm2020/lib/offline/geoDB/index.mjs +2 -1
  327. package/esm2020/lib/offline/index.mjs +1 -1
  328. package/esm2020/lib/offline/shared/geo-network.service.mjs +1 -1
  329. package/esm2020/lib/offline/shared/index.mjs +1 -1
  330. package/esm2020/lib/overlay/index.mjs +1 -1
  331. package/esm2020/lib/overlay/overlay.module.mjs +1 -1
  332. package/esm2020/lib/overlay/shared/index.mjs +1 -1
  333. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +1 -1
  334. package/esm2020/lib/overlay/shared/overlay.directive.mjs +1 -1
  335. package/esm2020/lib/overlay/shared/overlay.enum.mjs +1 -1
  336. package/esm2020/lib/overlay/shared/overlay.mjs +1 -1
  337. package/esm2020/lib/overlay/shared/overlay.service.mjs +1 -1
  338. package/esm2020/lib/overlay/shared/overlay.utils.mjs +1 -1
  339. package/esm2020/lib/print/index.mjs +1 -1
  340. package/esm2020/lib/print/print/print.component.mjs +2 -2
  341. package/esm2020/lib/print/print-form/index.mjs +1 -1
  342. package/esm2020/lib/print/print-form/print-form.component.mjs +2 -2
  343. package/esm2020/lib/print/print.module.mjs +1 -1
  344. package/esm2020/lib/print/shared/index.mjs +1 -1
  345. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  346. package/esm2020/lib/print/shared/print.service.mjs +1 -1
  347. package/esm2020/lib/print/shared/print.type.mjs +1 -1
  348. package/esm2020/lib/query/index.mjs +1 -1
  349. package/esm2020/lib/query/query.module.mjs +1 -1
  350. package/esm2020/lib/query/shared/index.mjs +1 -1
  351. package/esm2020/lib/query/shared/query-search-source.mjs +1 -1
  352. package/esm2020/lib/query/shared/query-search-source.providers.mjs +1 -1
  353. package/esm2020/lib/query/shared/query.directive.mjs +1 -1
  354. package/esm2020/lib/query/shared/query.enums.mjs +1 -1
  355. package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
  356. package/esm2020/lib/query/shared/query.service.mjs +4 -1
  357. package/esm2020/lib/query/shared/query.utils.mjs +1 -1
  358. package/esm2020/lib/search/index.mjs +1 -1
  359. package/esm2020/lib/search/search-bar/search-bar.component.mjs +16 -14
  360. package/esm2020/lib/search/search-bar/search-bar.module.mjs +1 -1
  361. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +1 -1
  362. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +2 -2
  363. package/esm2020/lib/search/search-results/search-results-item.component.mjs +2 -2
  364. package/esm2020/lib/search/search-results/search-results.component.mjs +2 -2
  365. package/esm2020/lib/search/search-results/search-results.module.mjs +1 -1
  366. package/esm2020/lib/search/search-selector/search-selector.component.mjs +2 -2
  367. package/esm2020/lib/search/search-selector/search-selector.module.mjs +1 -1
  368. package/esm2020/lib/search/search-settings/search-settings.component.mjs +2 -2
  369. package/esm2020/lib/search/search-settings/search-settings.module.mjs +1 -1
  370. package/esm2020/lib/search/search.module.mjs +1 -1
  371. package/esm2020/lib/search/shared/index.mjs +1 -1
  372. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +1 -1
  373. package/esm2020/lib/search/shared/search-source-service.providers.mjs +1 -1
  374. package/esm2020/lib/search/shared/search-source.service.mjs +1 -1
  375. package/esm2020/lib/search/shared/search.enums.mjs +1 -1
  376. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  377. package/esm2020/lib/search/shared/search.service.mjs +1 -1
  378. package/esm2020/lib/search/shared/search.utils.mjs +13 -1
  379. package/esm2020/lib/search/shared/sources/cadastre.mjs +1 -1
  380. package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +1 -1
  381. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  382. package/esm2020/lib/search/shared/sources/coordinates.mjs +1 -1
  383. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +1 -1
  384. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  385. package/esm2020/lib/search/shared/sources/icherche.mjs +1 -1
  386. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +1 -1
  387. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  388. package/esm2020/lib/search/shared/sources/ilayer.mjs +1 -1
  389. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +1 -1
  390. package/esm2020/lib/search/shared/sources/index.mjs +1 -1
  391. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  392. package/esm2020/lib/search/shared/sources/nominatim.mjs +2 -2
  393. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +1 -1
  394. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  395. package/esm2020/lib/search/shared/sources/source.mjs +1 -1
  396. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  397. package/esm2020/lib/search/shared/sources/storedqueries.mjs +1 -1
  398. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
  399. package/esm2020/lib/toast/index.mjs +1 -1
  400. package/esm2020/lib/toast/toast.component.mjs +2 -2
  401. package/esm2020/lib/toast/toast.module.mjs +1 -1
  402. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +1 -1
  403. package/esm2020/lib/utils/commonVectorStyle.mjs +1 -1
  404. package/esm2020/lib/utils/googleLinks.mjs +1 -1
  405. package/esm2020/lib/utils/id-generator.mjs +1 -1
  406. package/esm2020/lib/utils/index.mjs +1 -1
  407. package/esm2020/lib/utils/osmLinks.mjs +1 -1
  408. package/esm2020/lib/wkt/index.mjs +1 -1
  409. package/esm2020/lib/wkt/shared/index.mjs +1 -1
  410. package/esm2020/lib/wkt/shared/wkt.service.mjs +15 -15
  411. package/esm2020/lib/wkt/wkt.module.mjs +1 -1
  412. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
  413. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +1 -1
  414. package/esm2020/lib/workspace/confirmation-popup/index.mjs +1 -1
  415. package/esm2020/lib/workspace/index.mjs +1 -1
  416. package/esm2020/lib/workspace/shared/edition-workspace.mjs +8 -6
  417. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +9 -4
  418. package/esm2020/lib/workspace/shared/feature-workspace.mjs +1 -1
  419. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +1 -1
  420. package/esm2020/lib/workspace/shared/index.mjs +1 -1
  421. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +1 -1
  422. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +1 -1
  423. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +1 -1
  424. package/esm2020/lib/workspace/shared/workspace.utils.mjs +1 -1
  425. package/esm2020/lib/workspace/widgets/index.mjs +1 -1
  426. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  427. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +1 -1
  428. package/esm2020/lib/workspace/widgets/widgets.mjs +1 -1
  429. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +1 -1
  430. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +1 -1
  431. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
  432. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +1 -1
  433. package/esm2020/lib/workspace/workspace.module.mjs +1 -1
  434. package/esm2020/public_api.mjs +1 -1
  435. package/fesm2015/igo2-geo.mjs +4313 -3672
  436. package/fesm2015/igo2-geo.mjs.map +1 -1
  437. package/fesm2020/igo2-geo.mjs +4530 -3916
  438. package/fesm2020/igo2-geo.mjs.map +1 -1
  439. package/lib/draw/draw/draw-popup.component.d.ts +0 -3
  440. package/lib/draw/draw/draw.component.d.ts +71 -50
  441. package/lib/draw/draw/draw.module.d.ts +13 -10
  442. package/lib/draw/shared/draw-style.service.d.ts +7 -1
  443. package/lib/draw/shared/draw.interface.d.ts +4 -0
  444. package/lib/feature/feature-details/feature-details.component.d.ts +4 -0
  445. package/lib/feature/shared/store.d.ts +1 -0
  446. package/lib/import-export/import-export/import-export.component.d.ts +2 -0
  447. package/lib/import-export/import-export.module.d.ts +1 -1
  448. package/lib/layer/index.d.ts +1 -0
  449. package/lib/layer/layer-list/layer-list.component.d.ts +3 -4
  450. package/lib/layer/layer.module.d.ts +20 -18
  451. package/lib/layer/shared/layers/layer.interface.d.ts +1 -0
  452. package/lib/layer/shared/layers/vector-layer.d.ts +2 -1
  453. package/lib/layer/style-modal/index.d.ts +1 -0
  454. package/lib/layer/style-modal/style-modal.component.d.ts +42 -0
  455. package/lib/map/geolocate-button/geolocate-button.component.d.ts +3 -1
  456. package/lib/map/rotation-button/rotation-button.component.d.ts +11 -12
  457. package/lib/map/shared/controllers/view.d.ts +6 -1
  458. package/lib/map/shared/hover-feature.directive.d.ts +0 -5
  459. package/lib/map/shared/map.interface.d.ts +2 -1
  460. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +13 -0
  461. package/lib/offline/geoDB/geoDB.interface.d.ts +10 -1
  462. package/lib/offline/geoDB/geoDB.service.d.ts +3 -1
  463. package/lib/offline/geoDB/index.d.ts +1 -0
  464. package/ngcc.config.js +3 -3
  465. package/package.json +8 -8
  466. package/style/geo.theming.scss +12 -12
@@ -288,7 +288,7 @@ DirectionsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Directi
288
288
  } }, dependencies: [i5.DirectionsInputsComponent, i6.DirectionsButtonsComponent, i7.DirectionsResultsComponent] });
289
289
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectionsComponent, [{
290
290
  type: Component,
291
- args: [{ selector: 'igo-directions', template: "<igo-directions-buttons [contextUri]=\"contextUri\" [zoomToActiveRoute$]=\"zoomToActiveRoute$\" [routesFeatureStore]=\"routesFeatureStore\" [stopsStore]=\"stopsStore\"></igo-directions-buttons>\n\n<igo-directions-inputs (stopInputHasFocus)=\"onStopInputHasFocusChange($event)\" [coordRoundedDecimals]=\"coordRoundedDecimals\" [projection]=\"projection\" [stopsFeatureStore]=\"stopsFeatureStore\" [stopsStore]=\"stopsStore\" [debounce]=\"debounce\" [length]=\"length\"></igo-directions-inputs>\n<br>\n<igo-directions-results [stepFeatureStore]=\"stepFeatureStore\" [routesFeatureStore]=\"routesFeatureStore\"></igo-directions-results>" }]
291
+ args: [{ selector: 'igo-directions', template: "<igo-directions-buttons [contextUri]=\"contextUri\" [zoomToActiveRoute$]=\"zoomToActiveRoute$\" [routesFeatureStore]=\"routesFeatureStore\" [stopsStore]=\"stopsStore\"></igo-directions-buttons>\r\n\r\n<igo-directions-inputs (stopInputHasFocus)=\"onStopInputHasFocusChange($event)\" [coordRoundedDecimals]=\"coordRoundedDecimals\" [projection]=\"projection\" [stopsFeatureStore]=\"stopsFeatureStore\" [stopsStore]=\"stopsStore\" [debounce]=\"debounce\" [length]=\"length\"></igo-directions-inputs>\r\n<br>\r\n<igo-directions-results [stepFeatureStore]=\"stepFeatureStore\" [routesFeatureStore]=\"routesFeatureStore\"></igo-directions-results>" }]
292
292
  }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.LanguageService }, { type: i2.DirectionsService }, { type: i3.SearchService }, { type: i4.QueryService }]; }, { contextUri: [{
293
293
  type: Input
294
294
  }], stopsStore: [{
@@ -308,4 +308,4 @@ DirectionsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Directi
308
308
  }], zoomToActiveRoute$: [{
309
309
  type: Input
310
310
  }] }); })();
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbEQsT0FBTyxLQUFLLFdBQVcsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssYUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBTWxDLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSwwQkFBMEIsRUFBRSxjQUFjLEVBQ25GLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHN0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7O0FBU25GLE1BQU0sT0FBTyxt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QWtCO2tCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZVdhdGNoZXIgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuXG5pbXBvcnQgKiBhcyBvbENvbmRpdGlvbiBmcm9tICdvbC9ldmVudHMvY29uZGl0aW9uJztcbmltcG9ydCAqIGFzIG9sSW50ZXJhY3Rpb24gZnJvbSAnb2wvaW50ZXJhY3Rpb24nO1xuaW1wb3J0ICogYXMgb2xQcm9qIGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IHsgVHJhbnNsYXRlRXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9UcmFuc2xhdGUnO1xuaW1wb3J0IENvbGxlY3Rpb24gZnJvbSAnb2wvQ29sbGVjdGlvbic7XG5pbXBvcnQgeyBTZWxlY3RFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL1NlbGVjdCc7XG5cbmltcG9ydCB7IERpcmVjdGlvbk9wdGlvbnMsIEZlYXR1cmVXaXRoU3RvcFByb3BlcnRpZXMsIFN0b3AgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkZERpcmVjdGlvblRvUm91dGVzRmVhdHVyZVN0b3JlLCBhZGRTdG9wVG9TdG9wc0ZlYXR1cmVTdG9yZSwgYWRkU3RvcFRvU3RvcmUsXG4gIGluaXRSb3V0ZXNGZWF0dXJlU3RvcmUsIGluaXRTdGVwRmVhdHVyZVN0b3JlLCBpbml0U3RvcHNGZWF0dXJlU3RvcmUsIHVwZGF0ZVN0b3JlU29ydGluZyB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMnO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25zU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25UeXBlLCBQcm9wb3NhbFR5cGUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xuaW1wb3J0IHsgcm91bmRDb29yZFRvLCBzdHJpbmdUb0xvbkxhdCB9IGZyb20gJy4uL21hcCc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2VhcmNoL3NoYXJlZC9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBDaGFuZ2VVdGlscywgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5pbXBvcnQgeyBSb3V0ZXNGZWF0dXJlU3RvcmUsIFN0ZXBGZWF0dXJlU3RvcmUsIFN0b3BzRmVhdHVyZVN0b3JlLCBTdG9wc1N0b3JlIH0gZnJvbSAnLi9zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi4vZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9sb2FkaW5nJztcbmltcG9ydCB7IFJlc2VhcmNoLCBTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi9zZWFyY2gvc2hhcmVkL3NlYXJjaC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFF1ZXJ5U2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5L3NoYXJlZC9xdWVyeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlyZWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpcmVjdGlvbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgd2F0Y2hlcjogRW50aXR5U3RvcmVXYXRjaGVyPFN0b3A+O1xuXG4gIHB1YmxpYyBwcm9qZWN0aW9uOiBzdHJpbmcgPSAnRVBTRzo0MzI2JztcblxuICBwcml2YXRlIHpvb21Sb3V0ZSQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc3RvcmVFbXB0eSQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc3RvcmVDaGFuZ2UkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJvdXRlc1F1ZXJpZXMkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBwcml2YXRlIHNlbGVjdFN0b3BJbnRlcmFjdGlvbjogb2xJbnRlcmFjdGlvbi5TZWxlY3Q7XG4gIHByaXZhdGUgdHJhbnNsYXRlU3RvcDogb2xJbnRlcmFjdGlvbi5UcmFuc2xhdGU7XG4gIHByaXZhdGUgc2VsZWN0ZWRSb3V0ZTtcbiAgcHJpdmF0ZSBmb2N1c09uU3RvcDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGlzVHJhbnNsYXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgcHJldmlvdXNTdG9wczogU3RvcFtdID0gW107XG5cbiAgcHJpdmF0ZSBzZWFyY2hzJCQ6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgQElucHV0KCkgY29udGV4dFVyaTogc3RyaW5nO1xuICBASW5wdXQoKSBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlO1xuICBASW5wdXQoKSBzdG9wc0ZlYXR1cmVTdG9yZTogU3RvcHNGZWF0dXJlU3RvcmU7XG4gIEBJbnB1dCgpIHJvdXRlc0ZlYXR1cmVTdG9yZTogUm91dGVzRmVhdHVyZVN0b3JlO1xuICBASW5wdXQoKSBzdGVwRmVhdHVyZVN0b3JlOiBTdGVwRmVhdHVyZVN0b3JlO1xuICBASW5wdXQoKSBkZWJvdW5jZTogbnVtYmVyID0gMjAwO1xuICBASW5wdXQoKSBsZW5ndGg6IG51bWJlciA9IDI7XG4gIEBJbnB1dCgpIGNvb3JkUm91bmRlZERlY2ltYWxzOiBudW1iZXIgPSA2O1xuICBASW5wdXQoKSB6b29tVG9BY3RpdmVSb3V0ZSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU2VydmljZTogRGlyZWN0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVlcnlTZXJ2aWNlOiBRdWVyeVNlcnZpY2VcbiAgKSB7IH1cblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuaW5pdEVudGl0eVN0b3JlcygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaW5pdFN0b3BzRmVhdHVyZVN0b3JlKHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUsIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlKTtcbiAgICAgIGluaXRSb3V0ZXNGZWF0dXJlU3RvcmUodGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUsIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlKTtcbiAgICAgIGluaXRTdGVwRmVhdHVyZVN0b3JlKHRoaXMuc3RlcEZlYXR1cmVTdG9yZSk7XG4gICAgICB0aGlzLmluaXRPbEludGVyYWN0aW9uKCk7XG4gICAgfSwgMSk7XG5cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5zdG9yZUVtcHR5JCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN0b3JlQ2hhbmdlJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5tYXAoKHUpID0+IHUudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy56b29tUm91dGUkJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZnJlZXplU3RvcmVzKCk7XG4gIH1cblxuICBwcml2YXRlIGZyZWV6ZVN0b3JlcygpIHtcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbik7XG4gICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy50cmFuc2xhdGVTdG9wKTtcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5zZWxlY3RlZFJvdXRlKTtcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmRlYWN0aXZhdGVTdHJhdGVneU9mVHlwZShGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3kpO1xuICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmRlYWN0aXZhdGVTdHJhdGVneU9mVHlwZShGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3kpO1xuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5kZWFjdGl2YXRlU3RyYXRlZ3lPZlR5cGUoRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEVudGl0eVN0b3JlcygpIHtcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgRW50aXR5U3RvcmVXYXRjaGVyKHRoaXMuc3RvcHNTdG9yZSwgdGhpcy5jZFJlZik7XG4gICAgdGhpcy5tb25pdG9yRW1wdHlFbnRpdHlTdG9yZSgpO1xuICAgIHRoaXMubW9uaXRvckVudGl0eVN0b3JlQ2hhbmdlKCk7XG4gICAgdGhpcy5tb25pdG9yQWN0aXZlUm91dGVab29tKCk7XG4gIH1cblxuICBwcml2YXRlIG1vbml0b3JBY3RpdmVSb3V0ZVpvb20oKSB7XG4gICAgdGhpcy56b29tUm91dGUkJCA9IHRoaXMuem9vbVRvQWN0aXZlUm91dGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuY291bnQgPj0gMSkge1xuICAgICAgICBjb25zdCBhY3RpdmVSb3V0ZSA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmFsbCgpLmZpbmQocm91dGUgPT4gcm91dGUucHJvcGVydGllcy5hY3RpdmUpO1xuXG4gICAgICAgIGlmIChhY3RpdmVSb3V0ZSkge1xuICAgICAgICAgIGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCk7XG4gICAgICAgICAgY29uc3Qgcm91dGVFeHRlbnQgPSBhY3RpdmVSb3V0ZS5vbC5nZXRHZW9tZXRyeSgpLmdldEV4dGVudCgpO1xuICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci56b29tVG9FeHRlbnQocm91dGVFeHRlbnQgYXMgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRPbEludGVyYWN0aW9uKCkge1xuICAgIHRoaXMuc2VsZWN0U3RvcEludGVyYWN0aW9uID0gbmV3IG9sSW50ZXJhY3Rpb24uU2VsZWN0KHtcbiAgICAgIGxheWVyczogW3RoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIub2xdLFxuICAgICAgaGl0VG9sZXJhbmNlOiA3LFxuICAgICAgY29uZGl0aW9uOiAoZXZlbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LnR5cGUgPT09ICdwb2ludGVybW92ZScgJiYgIWV2ZW50LmRyYWdnaW5nO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy50cmFuc2xhdGVTdG9wID0gbmV3IG9sSW50ZXJhY3Rpb24uVHJhbnNsYXRlKHtcbiAgICAgIGZlYXR1cmVzOiB0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbi5nZXRGZWF0dXJlcygpXG4gICAgfSk7XG4gICAgdGhpcy50cmFuc2xhdGVTdG9wLm9uKCd0cmFuc2xhdGluZycsIChldnQ6IFRyYW5zbGF0ZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmlzVHJhbnNsYXRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5leGVjdXRlU3RvcFRyYW5zbGF0aW9uKGV2dC5mZWF0dXJlcyk7XG4gICAgfSk7XG4gICAgdGhpcy50cmFuc2xhdGVTdG9wLm9uKCd0cmFuc2xhdGVlbmQnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xuICAgICAgdGhpcy5pc1RyYW5zbGF0aW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmV4ZWN1dGVTdG9wVHJhbnNsYXRpb24oZXZ0LmZlYXR1cmVzKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZSA9IG5ldyBvbEludGVyYWN0aW9uLlNlbGVjdCh7XG4gICAgICBsYXllcnM6IFt0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5vbF0sXG4gICAgICBjb25kaXRpb246IG9sQ29uZGl0aW9uLmNsaWNrLFxuICAgICAgaGl0VG9sZXJhbmNlOiA3LFxuICAgICAgZmlsdGVyOiBmZWF0dXJlID0+IHtcbiAgICAgICAgcmV0dXJuIGZlYXR1cmUuZ2V0KCd0eXBlJykgPT09IERpcmVjdGlvblR5cGUuUm91dGUgJiZcbiAgICAgICAgICBmZWF0dXJlLmdldCgnYWN0aXZlJykgJiZcbiAgICAgICAgICAhdGhpcy5pc1RyYW5zbGF0aW5nO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5vbignc2VsZWN0JywgKGV2dDogU2VsZWN0RXZlbnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvY3VzT25TdG9wID09PSBmYWxzZSkge1xuICAgICAgICBjb25zdCBzZWxlY3RDb29yZGluYXRlcyA9IHJvdW5kQ29vcmRUbyhcbiAgICAgICAgICBvbFByb2oudHJhbnNmb3JtKFxuICAgICAgICAgICAgKGV2dCBhcyBhbnkpLm1hcEJyb3dzZXJFdmVudC5jb29yZGluYXRlLFxuICAgICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb24sXG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25cbiAgICAgICAgICApIGFzIFtudW1iZXIsIG51bWJlcl0sIHRoaXMuY29vcmRSb3VuZGVkRGVjaW1hbHMpO1xuICAgICAgICBjb25zdCBhZGRlZFN0b3AgPSBhZGRTdG9wVG9TdG9yZSh0aGlzLnN0b3BzU3RvcmUpO1xuICAgICAgICBhZGRlZFN0b3AudGV4dCA9IHNlbGVjdENvb3JkaW5hdGVzLmpvaW4oJywnKTtcbiAgICAgICAgYWRkZWRTdG9wLmNvb3JkaW5hdGVzID0gW3NlbGVjdENvb3JkaW5hdGVzWzBdLCBzZWxlY3RDb29yZGluYXRlc1sxXV07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5hZGRJbnRlcmFjdGlvbih0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbik7XG4gICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy50cmFuc2xhdGVTdG9wKTtcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy5zZWxlY3RlZFJvdXRlKTtcbiAgfVxuXG4gIG9uU3RvcElucHV0SGFzRm9jdXNDaGFuZ2Uoc3RvcElucHV0SGFzRm9jdXM6IGJvb2xlYW4pIHtcbiAgICBzdG9wSW5wdXRIYXNGb2N1cyA/XG4gICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5zZWxlY3RlZFJvdXRlKSA6XG4gICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy5zZWxlY3RlZFJvdXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZVN0b3BUcmFuc2xhdGlvbihcbiAgICBmZWF0dXJlczogQ29sbGVjdGlvbjxhbnk+XG4gICkge1xuICAgIGlmIChmZWF0dXJlcy5nZXRMZW5ndGgoKSA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmaXJzdEZlYXR1cmUgPSBmZWF0dXJlcy5nZXRBcnJheSgpWzBdO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRTdG9wSWQgPSBmaXJzdEZlYXR1cmUuZ2V0SWQoKTtcblxuICAgIGNvbnN0IHRyYW5zbGF0aW9uQ29vcmRpbmF0ZXMgPSBvbFByb2oudHJhbnNmb3JtKFxuICAgICAgZmlyc3RGZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0Q29vcmRpbmF0ZXMoKSxcbiAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb24sXG4gICAgICB0aGlzLnByb2plY3Rpb25cbiAgICApO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRTdG9wID0gdGhpcy5zdG9wc1N0b3JlLmdldCh0cmFuc2xhdGVkU3RvcElkKTtcbiAgICBjb25zdCByb3VuZGVkQ29vcmQgPSByb3VuZENvb3JkVG8odHJhbnNsYXRpb25Db29yZGluYXRlcyBhcyBbbnVtYmVyLCBudW1iZXJdLCB0aGlzLmNvb3JkUm91bmRlZERlY2ltYWxzKTtcbiAgICB0cmFuc2xhdGVkU3RvcC5jb29yZGluYXRlcyA9IHJvdW5kZWRDb29yZDtcbiAgICB0cmFuc2xhdGVkU3RvcC50ZXh0ID0gcm91bmRlZENvb3JkLmpvaW4oJywnKTtcbiAgICB0aGlzLnN0b3BzU3RvcmUudXBkYXRlKHRyYW5zbGF0ZWRTdG9wKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBtb25pdG9yRW1wdHlFbnRpdHlTdG9yZSgpIHtcbiAgICAvLyBXYXRjaCBpZiB0aGUgc3RvcmUgaXMgZW1wdHkgdG8gcmVzZXQgaXRcbiAgICB0aGlzLnN0b3JlRW1wdHkkJCA9IHRoaXMuc3RvcHNTdG9yZS5jb3VudCRcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApLnN1YnNjcmliZSgoY291bnQpID0+IHtcbiAgICAgICAgaWYgKGNvdW50IDwgMikge1xuICAgICAgICAgIGFkZFN0b3BUb1N0b3JlKHRoaXMuc3RvcHNTdG9yZSk7XG4gICAgICAgICAgaWYgKHRoaXMuc3RvcHNTdG9yZS5jb3VudCA9PT0gMikge1xuICAgICAgICAgICAgdGhpcy5zdG9wc1N0b3JlLnN0b3JlSW5pdGlhbGl6ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc3RvcHNTdG9yZS5zdG9yZUluaXRpYWxpemVkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5tYXAoKHUpID0+IHUudW5zdWJzY3JpYmUoKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbW9uaXRvckVudGl0eVN0b3JlQ2hhbmdlKCkge1xuICAgIHRoaXMuc3RvcmVDaGFuZ2UkJCA9IHRoaXMuc3RvcHNTdG9yZS5lbnRpdGllcyRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0b3BzOiBTdG9wW10pID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVTdG9wRGlmZihzdG9wcyk7XG4gICAgICAgIHVwZGF0ZVN0b3JlU29ydGluZyh0aGlzLnN0b3BzU3RvcmUpO1xuICAgICAgICB0aGlzLmhhbmRsZVN0b3BzRmVhdHVyZSgpO1xuICAgICAgICB0aGlzLmdldFJvdXRlcyh0aGlzLmlzVHJhbnNsYXRpbmcpO1xuICAgICAgfSk7XG4gIH1cblxuICBjYW5jZWxTZWFyY2goKSB7XG4gICAgdGhpcy5zZWFyY2hzJCQubWFwKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3RvcERpZmYoc3RvcHM6IFN0b3BbXSkge1xuICAgIGNvbnN0IHNpbXBsaWZpZWRTdG9wcyA9IHN0b3BzLm1hcCgoc3RvcDogU3RvcCkgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7IC4uLnsgaWQ6IHN0b3AuaWQsIHRleHQ6IHN0b3AudGV4dCwgY29vcmRpbmF0ZXM6IHN0b3AuY29vcmRpbmF0ZXMgfSB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBkaWZmID0gQ2hhbmdlVXRpbHMuZmluZENoYW5nZXModGhpcy5wcmV2aW91c1N0b3BzLCBzaW1wbGlmaWVkU3RvcHMsIFsnY29vcmRpbmF0ZXMnXSk7XG4gICAgY29uc3Qgc3RvcElkVG9Qcm9jZXNzID0gZGlmZi5hZGRlZC5jb25jYXQoZGlmZi5tb2RpZmllZCk7XG4gICAgaWYgKHN0b3BJZFRvUHJvY2Vzcykge1xuICAgICAgc3RvcElkVG9Qcm9jZXNzLm1hcCgoY2hhbmdlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRTdG9wID0gKGNoYW5nZS5uZXdWYWx1ZSBhcyBTdG9wKTtcbiAgICAgICAgaWYgKGNoYW5nZWRTdG9wKSB7XG4gICAgICAgICAgY29uc3Qgc3RvcDogU3RvcCA9IHRoaXMuc3RvcHNTdG9yZS5nZXQoY2hhbmdlZFN0b3AuaWQpO1xuICAgICAgICAgIGNvbnN0IHRlcm0gPSBzdG9wLnRleHQ7XG4gICAgICAgICAgaWYgKCF0ZXJtIHx8IHRlcm0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gc3RyaW5nVG9Mb25MYXQodGVybSwgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbik7XG4gICAgICAgICAgbGV0IHJlc2VhcmNoZXM6IFJlc2VhcmNoW107XG4gICAgICAgICAgbGV0IGlzQ29vcmQgPSBmYWxzZTtcbiAgICAgICAgICBpZiAocmVzcG9uc2UubG9uTGF0KSB7XG4gICAgICAgICAgICBpc0Nvb3JkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzZWFyY2hlcyA9IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2godGVybSwgeyBzZWFyY2hUeXBlOiAnRmVhdHVyZScgfSk7XG4gICAgICAgICAgdGhpcy5jYW5jZWxTZWFyY2goKTtcbiAgICAgICAgICBjb25zdCByZXF1ZXN0cyQgPSByZXNlYXJjaGVzLm1hcChyZXMgPT4gcmVzLnJlcXVlc3RcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+IHJlc3VsdHMuZmlsdGVyKHIgPT5cbiAgICAgICAgICAgICAgaXNDb29yZCA/IHIuZGF0YS5nZW9tZXRyeS50eXBlID09PSAnUG9pbnQnICYmIHIuZGF0YS5nZW9tZXRyeSA6IHIuZGF0YS5nZW9tZXRyeSkpKVxuXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnNlYXJjaHMkJCA9IHJlcXVlc3RzJC5tYXAoKHJlcXVlc3QpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBpcGUobWFwKChyZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSkgPT4gcmVzdWx0cy5maWx0ZXIociA9PlxuICAgICAgICAgICAgICBpc0Nvb3JkID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5IDogci5kYXRhLmdlb21ldHJ5KSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogU2VhcmNoUmVzdWx0W10pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IHJlc1swXS5zb3VyY2U7XG4gICAgICAgICAgICAgICAgICBjb25zdCBtZXRhID0gcmVzWzBdLm1ldGE7XG4gICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gcmVzLm1hcChyID0+IHIuZGF0YSk7XG4gICAgICAgICAgICAgICAgICBpZiAoIXN0b3Auc2VhcmNoUHJvcG9zYWxzKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3Auc2VhcmNoUHJvcG9zYWxzID0gW107XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBzdG9wLnNlYXJjaFByb3Bvc2FscyA9IHN0b3Auc2VhcmNoUHJvcG9zYWxzLmZpbHRlcihzcCA9PiBzcC50eXBlID09PSAoaXNDb29yZCA/IFByb3Bvc2FsVHlwZS5Db29yZCA6IFByb3Bvc2FsVHlwZS5UZXh0KSk7XG4gICAgICAgICAgICAgICAgICBsZXQgc3RvcmVkU291cmNlID0gc3RvcC5zZWFyY2hQcm9wb3NhbHMuZmluZChzcCA9PiBzcC5zb3VyY2UgPT09IHNvdXJjZSk7XG4gICAgICAgICAgICAgICAgICBpZiAoc3RvcmVkU291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlZFNvdXJjZS5yZXN1bHRzID0gcmVzdWx0cztcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3Auc2VhcmNoUHJvcG9zYWxzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGlzQ29vcmQgPyBQcm9wb3NhbFR5cGUuQ29vcmQgOiBQcm9wb3NhbFR5cGUuVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgbWV0YSxcbiAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnByZXZpb3VzU3RvcHMgPSBzaW1wbGlmaWVkU3RvcHM7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVN0b3BzRmVhdHVyZSgpIHtcbiAgICBjb25zdCBzdG9wcyA9IHRoaXMuc3RvcHNTdG9yZS5hbGwoKTtcbiAgICBjb25zdCBzdG9wc1dpdGhDb29yZGluYXRlcyA9IHN0b3BzLmZpbHRlcihzdG9wID0+IHN0b3AuY29vcmRpbmF0ZXMpO1xuICAgIHN0b3BzV2l0aENvb3JkaW5hdGVzLm1hcChzdG9wID0+IHRoaXMuYWRkU3RvcE92ZXJsYXkoc3RvcCkpO1xuICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUuYWxsKCkubWFwKFxuICAgICAgKHN0b3BGZWF0dXJlOiBGZWF0dXJlPEZlYXR1cmVXaXRoU3RvcFByb3BlcnRpZXM+KSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zdG9wc1N0b3JlLmdldChzdG9wRmVhdHVyZS5wcm9wZXJ0aWVzLmlkKSkge1xuICAgICAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUuZGVsZXRlKHN0b3BGZWF0dXJlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgY29uc3Qgc3RvcHNXaXRob3V0Q29vcmRpbmF0ZXMgPSBzdG9wcy5maWx0ZXIoc3RvcCA9PiAhc3RvcC5jb29yZGluYXRlcyk7XG4gICAgc3RvcHNXaXRob3V0Q29vcmRpbmF0ZXMubWFwKHN0b3AgPT4ge1xuICAgICAgY29uc3Qgc3RvcEZlYXR1cmUgPSB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmdldChzdG9wLmlkKTtcbiAgICAgIGlmIChzdG9wRmVhdHVyZSkge1xuICAgICAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmRlbGV0ZShzdG9wRmVhdHVyZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFJvdXRlcyhpc092ZXJ2aWV3OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBzdG9wc1dpdGhDb29yZGluYXRlcyA9IHRoaXMuc3RvcHNTdG9yZS52aWV3XG4gICAgICAuYWxsKClcbiAgICAgIC5maWx0ZXIoc3RvcCA9PiBzdG9wLmNvb3JkaW5hdGVzKTtcbiAgICBpZiAoc3RvcHNXaXRoQ29vcmRpbmF0ZXMubGVuZ3RoIDwgMikge1xuICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVsZXRlTWFueSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5hbGwoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgcm91bmRlZENvb3JkaW5hdGVzID0gc3RvcHNXaXRoQ29vcmRpbmF0ZXMubWFwKChzdG9wKSA9PiB7XG4gICAgICBjb25zdCByb3VuZGVkQ29vcmQgPSByb3VuZENvb3JkVG8oc3RvcC5jb29yZGluYXRlcywgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFscyk7XG4gICAgICByZXR1cm4gcm91bmRlZENvb3JkO1xuICAgIH0pO1xuICAgIGNvbnN0IG92ZXJ2aWV3RGlyZWN0aW9uc09wdGlvbnM6IERpcmVjdGlvbk9wdGlvbnMgPSB7XG4gICAgICBvdmVydmlldzogdHJ1ZSxcbiAgICAgIHN0ZXBzOiBmYWxzZSxcbiAgICAgIGFsdGVybmF0aXZlczogZmFsc2UsXG4gICAgICBjb250aW51ZV9zdHJhaWdodDogZmFsc2VcbiAgICB9O1xuICAgIHRoaXMucm91dGVzUXVlcmllcyQkLm1hcCgodSkgPT4gdS51bnN1YnNjcmliZSgpKTtcbiAgICBjb25zdCByb3V0ZVJlc3BvbnNlID0gdGhpcy5kaXJlY3Rpb25zU2VydmljZS5yb3V0ZShcbiAgICAgIHJvdW5kZWRDb29yZGluYXRlcyxcbiAgICAgIGlzT3ZlcnZpZXcgPyBvdmVydmlld0RpcmVjdGlvbnNPcHRpb25zIDogdW5kZWZpbmVkXG4gICAgKTtcbiAgICBpZiAocm91dGVSZXNwb25zZSkge1xuICAgICAgcm91dGVSZXNwb25zZS5tYXAocmVzID0+XG4gICAgICAgIHRoaXMucm91dGVzUXVlcmllcyQkLnB1c2goXG4gICAgICAgICAgcmVzLnN1YnNjcmliZShkaXJlY3Rpb25zID0+IHtcbiAgICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmRlbGV0ZU1hbnkodGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuYWxsKCkpO1xuICAgICAgICAgICAgZGlyZWN0aW9ucy5tYXAoZGlyZWN0aW9uID0+XG4gICAgICAgICAgICAgIGFkZERpcmVjdGlvblRvUm91dGVzRmVhdHVyZVN0b3JlKFxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLFxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICB0aGlzLnByb2plY3Rpb24sXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uID09PSBkaXJlY3Rpb25zWzBdID8gdHJ1ZSA6IGZhbHNlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRTdG9wT3ZlcmxheShzdG9wOiBTdG9wKSB7XG4gICAgYWRkU3RvcFRvU3RvcHNGZWF0dXJlU3RvcmUoc3RvcCwgdGhpcy5zdG9wc1N0b3JlLCB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLCB0aGlzLnByb2plY3Rpb24sIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlKTtcbiAgfVxufVxuIiwiPGlnby1kaXJlY3Rpb25zLWJ1dHRvbnMgW2NvbnRleHRVcmldPVwiY29udGV4dFVyaVwiIFt6b29tVG9BY3RpdmVSb3V0ZSRdPVwiem9vbVRvQWN0aXZlUm91dGUkXCIgW3JvdXRlc0ZlYXR1cmVTdG9yZV09XCJyb3V0ZXNGZWF0dXJlU3RvcmVcIiBbc3RvcHNTdG9yZV09XCJzdG9wc1N0b3JlXCI+PC9pZ28tZGlyZWN0aW9ucy1idXR0b25zPlxuXG48aWdvLWRpcmVjdGlvbnMtaW5wdXRzIChzdG9wSW5wdXRIYXNGb2N1cyk9XCJvblN0b3BJbnB1dEhhc0ZvY3VzQ2hhbmdlKCRldmVudClcIiBbY29vcmRSb3VuZGVkRGVjaW1hbHNdPVwiY29vcmRSb3VuZGVkRGVjaW1hbHNcIiBbcHJvamVjdGlvbl09XCJwcm9qZWN0aW9uXCIgW3N0b3BzRmVhdHVyZVN0b3JlXT1cInN0b3BzRmVhdHVyZVN0b3JlXCIgW3N0b3BzU3RvcmVdPVwic3RvcHNTdG9yZVwiIFtkZWJvdW5jZV09XCJkZWJvdW5jZVwiIFtsZW5ndGhdPVwibGVuZ3RoXCI+PC9pZ28tZGlyZWN0aW9ucy1pbnB1dHM+XG48YnI+XG48aWdvLWRpcmVjdGlvbnMtcmVzdWx0cyBbc3RlcEZlYXR1cmVTdG9yZV09XCJzdGVwRmVhdHVyZVN0b3JlXCIgW3JvdXRlc0ZlYXR1cmVTdG9yZV09XCJyb3V0ZXNGZWF0dXJlU3RvcmVcIj48L2lnby1kaXJlY3Rpb25zLXJlc3VsdHM+Il19
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbEQsT0FBTyxLQUFLLFdBQVcsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssYUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBTWxDLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSwwQkFBMEIsRUFBRSxjQUFjLEVBQ25GLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHN0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7O0FBU25GLE1BQU0sT0FBTyxt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QWtCO2tCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgRW50aXR5U3RvcmVXYXRjaGVyIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuXHJcbmltcG9ydCAqIGFzIG9sQ29uZGl0aW9uIGZyb20gJ29sL2V2ZW50cy9jb25kaXRpb24nO1xyXG5pbXBvcnQgKiBhcyBvbEludGVyYWN0aW9uIGZyb20gJ29sL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgb2xQcm9qIGZyb20gJ29sL3Byb2onO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL1RyYW5zbGF0ZSc7XHJcbmltcG9ydCBDb2xsZWN0aW9uIGZyb20gJ29sL0NvbGxlY3Rpb24nO1xyXG5pbXBvcnQgeyBTZWxlY3RFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL1NlbGVjdCc7XHJcblxyXG5pbXBvcnQgeyBEaXJlY3Rpb25PcHRpb25zLCBGZWF0dXJlV2l0aFN0b3BQcm9wZXJ0aWVzLCBTdG9wIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgYWRkRGlyZWN0aW9uVG9Sb3V0ZXNGZWF0dXJlU3RvcmUsIGFkZFN0b3BUb1N0b3BzRmVhdHVyZVN0b3JlLCBhZGRTdG9wVG9TdG9yZSxcclxuICBpbml0Um91dGVzRmVhdHVyZVN0b3JlLCBpbml0U3RlcEZlYXR1cmVTdG9yZSwgaW5pdFN0b3BzRmVhdHVyZVN0b3JlLCB1cGRhdGVTdG9yZVNvcnRpbmcgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLnV0aWxzJztcclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uVHlwZSwgUHJvcG9zYWxUeXBlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy5lbnVtJztcclxuaW1wb3J0IHsgcm91bmRDb29yZFRvLCBzdHJpbmdUb0xvbkxhdCB9IGZyb20gJy4uL21hcCc7XHJcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi9zZWFyY2gvc2hhcmVkL3NlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hhbmdlVXRpbHMsIE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5pbXBvcnQgeyBSb3V0ZXNGZWF0dXJlU3RvcmUsIFN0ZXBGZWF0dXJlU3RvcmUsIFN0b3BzRmVhdHVyZVN0b3JlLCBTdG9wc1N0b3JlIH0gZnJvbSAnLi9zaGFyZWQvc3RvcmUnO1xyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi9mZWF0dXJlL3NoYXJlZC9zdHJhdGVnaWVzL2xvYWRpbmcnO1xyXG5pbXBvcnQgeyBSZXNlYXJjaCwgU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vc2VhcmNoL3NoYXJlZC9zZWFyY2guaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFF1ZXJ5U2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5L3NoYXJlZC9xdWVyeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaXJlY3Rpb25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIHByaXZhdGUgd2F0Y2hlcjogRW50aXR5U3RvcmVXYXRjaGVyPFN0b3A+O1xyXG5cclxuICBwdWJsaWMgcHJvamVjdGlvbjogc3RyaW5nID0gJ0VQU0c6NDMyNic7XHJcblxyXG4gIHByaXZhdGUgem9vbVJvdXRlJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHN0b3JlRW1wdHkkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgc3RvcmVDaGFuZ2UkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgcm91dGVzUXVlcmllcyQkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIHNlbGVjdFN0b3BJbnRlcmFjdGlvbjogb2xJbnRlcmFjdGlvbi5TZWxlY3Q7XHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTdG9wOiBvbEludGVyYWN0aW9uLlRyYW5zbGF0ZTtcclxuICBwcml2YXRlIHNlbGVjdGVkUm91dGU7XHJcbiAgcHJpdmF0ZSBmb2N1c09uU3RvcDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgaXNUcmFuc2xhdGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgcHJldmlvdXNTdG9wczogU3RvcFtdID0gW107XHJcblxyXG4gIHByaXZhdGUgc2VhcmNocyQkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBjb250ZXh0VXJpOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3RvcHNTdG9yZTogU3RvcHNTdG9yZTtcclxuICBASW5wdXQoKSBzdG9wc0ZlYXR1cmVTdG9yZTogU3RvcHNGZWF0dXJlU3RvcmU7XHJcbiAgQElucHV0KCkgcm91dGVzRmVhdHVyZVN0b3JlOiBSb3V0ZXNGZWF0dXJlU3RvcmU7XHJcbiAgQElucHV0KCkgc3RlcEZlYXR1cmVTdG9yZTogU3RlcEZlYXR1cmVTdG9yZTtcclxuICBASW5wdXQoKSBkZWJvdW5jZTogbnVtYmVyID0gMjAwO1xyXG4gIEBJbnB1dCgpIGxlbmd0aDogbnVtYmVyID0gMjtcclxuICBASW5wdXQoKSBjb29yZFJvdW5kZWREZWNpbWFsczogbnVtYmVyID0gNjtcclxuICBASW5wdXQoKSB6b29tVG9BY3RpdmVSb3V0ZSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlyZWN0aW9uc1NlcnZpY2U6IERpcmVjdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBxdWVyeVNlcnZpY2U6IFF1ZXJ5U2VydmljZVxyXG4gICkgeyB9XHJcblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbml0RW50aXR5U3RvcmVzKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaW5pdFN0b3BzRmVhdHVyZVN0b3JlKHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUsIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlKTtcclxuICAgICAgaW5pdFJvdXRlc0ZlYXR1cmVTdG9yZSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZSwgdGhpcy5sYW5ndWFnZVNlcnZpY2UpO1xyXG4gICAgICBpbml0U3RlcEZlYXR1cmVTdG9yZSh0aGlzLnN0ZXBGZWF0dXJlU3RvcmUpO1xyXG4gICAgICB0aGlzLmluaXRPbEludGVyYWN0aW9uKCk7XHJcbiAgICB9LCAxKTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZCA9IHRydWU7XHJcbiAgICB0aGlzLnN0b3JlRW1wdHkkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zdG9yZUNoYW5nZSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5tYXAoKHUpID0+IHUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLnpvb21Sb3V0ZSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmZyZWV6ZVN0b3JlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmcmVlemVTdG9yZXMoKSB7XHJcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbik7XHJcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLnRyYW5zbGF0ZVN0b3ApO1xyXG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMuc2VsZWN0ZWRSb3V0ZSk7XHJcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmRlYWN0aXZhdGVTdHJhdGVneU9mVHlwZShGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3kpO1xyXG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSk7XHJcbiAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRFbnRpdHlTdG9yZXMoKSB7XHJcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgRW50aXR5U3RvcmVXYXRjaGVyKHRoaXMuc3RvcHNTdG9yZSwgdGhpcy5jZFJlZik7XHJcbiAgICB0aGlzLm1vbml0b3JFbXB0eUVudGl0eVN0b3JlKCk7XHJcbiAgICB0aGlzLm1vbml0b3JFbnRpdHlTdG9yZUNoYW5nZSgpO1xyXG4gICAgdGhpcy5tb25pdG9yQWN0aXZlUm91dGVab29tKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vbml0b3JBY3RpdmVSb3V0ZVpvb20oKSB7XHJcbiAgICB0aGlzLnpvb21Sb3V0ZSQkID0gdGhpcy56b29tVG9BY3RpdmVSb3V0ZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmNvdW50ID49IDEpIHtcclxuICAgICAgICBjb25zdCBhY3RpdmVSb3V0ZSA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmFsbCgpLmZpbmQocm91dGUgPT4gcm91dGUucHJvcGVydGllcy5hY3RpdmUpO1xyXG5cclxuICAgICAgICBpZiAoYWN0aXZlUm91dGUpIHtcclxuICAgICAgICAgIGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCk7XHJcbiAgICAgICAgICBjb25zdCByb3V0ZUV4dGVudCA9IGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCk7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuem9vbVRvRXh0ZW50KHJvdXRlRXh0ZW50IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0T2xJbnRlcmFjdGlvbigpIHtcclxuICAgIHRoaXMuc2VsZWN0U3RvcEludGVyYWN0aW9uID0gbmV3IG9sSW50ZXJhY3Rpb24uU2VsZWN0KHtcclxuICAgICAgbGF5ZXJzOiBbdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5vbF0sXHJcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcclxuICAgICAgY29uZGl0aW9uOiAoZXZlbnQpID0+IHtcclxuICAgICAgICByZXR1cm4gZXZlbnQudHlwZSA9PT0gJ3BvaW50ZXJtb3ZlJyAmJiAhZXZlbnQuZHJhZ2dpbmc7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlU3RvcCA9IG5ldyBvbEludGVyYWN0aW9uLlRyYW5zbGF0ZSh7XHJcbiAgICAgIGZlYXR1cmVzOiB0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbi5nZXRGZWF0dXJlcygpXHJcbiAgICB9KTtcclxuICAgIHRoaXMudHJhbnNsYXRlU3RvcC5vbigndHJhbnNsYXRpbmcnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmlzVHJhbnNsYXRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmV4ZWN1dGVTdG9wVHJhbnNsYXRpb24oZXZ0LmZlYXR1cmVzKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTdG9wLm9uKCd0cmFuc2xhdGVlbmQnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmlzVHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5leGVjdXRlU3RvcFRyYW5zbGF0aW9uKGV2dC5mZWF0dXJlcyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkUm91dGUgPSBuZXcgb2xJbnRlcmFjdGlvbi5TZWxlY3Qoe1xyXG4gICAgICBsYXllcnM6IFt0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5vbF0sXHJcbiAgICAgIGNvbmRpdGlvbjogb2xDb25kaXRpb24uY2xpY2ssXHJcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcclxuICAgICAgZmlsdGVyOiBmZWF0dXJlID0+IHtcclxuICAgICAgICByZXR1cm4gZmVhdHVyZS5nZXQoJ3R5cGUnKSA9PT0gRGlyZWN0aW9uVHlwZS5Sb3V0ZSAmJlxyXG4gICAgICAgICAgZmVhdHVyZS5nZXQoJ2FjdGl2ZScpICYmXHJcbiAgICAgICAgICAhdGhpcy5pc1RyYW5zbGF0aW5nO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5vbignc2VsZWN0JywgKGV2dDogU2VsZWN0RXZlbnQpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9jdXNPblN0b3AgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0Q29vcmRpbmF0ZXMgPSByb3VuZENvb3JkVG8oXHJcbiAgICAgICAgICBvbFByb2oudHJhbnNmb3JtKFxyXG4gICAgICAgICAgICAoZXZ0IGFzIGFueSkubWFwQnJvd3NlckV2ZW50LmNvb3JkaW5hdGUsXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25cclxuICAgICAgICAgICkgYXMgW251bWJlciwgbnVtYmVyXSwgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFscyk7XHJcbiAgICAgICAgY29uc3QgYWRkZWRTdG9wID0gYWRkU3RvcFRvU3RvcmUodGhpcy5zdG9wc1N0b3JlKTtcclxuICAgICAgICBhZGRlZFN0b3AudGV4dCA9IHNlbGVjdENvb3JkaW5hdGVzLmpvaW4oJywnKTtcclxuICAgICAgICBhZGRlZFN0b3AuY29vcmRpbmF0ZXMgPSBbc2VsZWN0Q29vcmRpbmF0ZXNbMF0sIHNlbGVjdENvb3JkaW5hdGVzWzFdXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy5zZWxlY3RTdG9wSW50ZXJhY3Rpb24pO1xyXG4gICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy50cmFuc2xhdGVTdG9wKTtcclxuICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5hZGRJbnRlcmFjdGlvbih0aGlzLnNlbGVjdGVkUm91dGUpO1xyXG4gIH1cclxuXHJcbiAgb25TdG9wSW5wdXRIYXNGb2N1c0NoYW5nZShzdG9wSW5wdXRIYXNGb2N1czogYm9vbGVhbikge1xyXG4gICAgc3RvcElucHV0SGFzRm9jdXMgP1xyXG4gICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5zZWxlY3RlZFJvdXRlKSA6XHJcbiAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5hZGRJbnRlcmFjdGlvbih0aGlzLnNlbGVjdGVkUm91dGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleGVjdXRlU3RvcFRyYW5zbGF0aW9uKFxyXG4gICAgZmVhdHVyZXM6IENvbGxlY3Rpb248YW55PlxyXG4gICkge1xyXG4gICAgaWYgKGZlYXR1cmVzLmdldExlbmd0aCgpID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGZpcnN0RmVhdHVyZSA9IGZlYXR1cmVzLmdldEFycmF5KClbMF07XHJcbiAgICBjb25zdCB0cmFuc2xhdGVkU3RvcElkID0gZmlyc3RGZWF0dXJlLmdldElkKCk7XHJcblxyXG4gICAgY29uc3QgdHJhbnNsYXRpb25Db29yZGluYXRlcyA9IG9sUHJvai50cmFuc2Zvcm0oXHJcbiAgICAgIGZpcnN0RmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldENvb3JkaW5hdGVzKCksXHJcbiAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb24sXHJcbiAgICAgIHRoaXMucHJvamVjdGlvblxyXG4gICAgKTtcclxuICAgIGNvbnN0IHRyYW5zbGF0ZWRTdG9wID0gdGhpcy5zdG9wc1N0b3JlLmdldCh0cmFuc2xhdGVkU3RvcElkKTtcclxuICAgIGNvbnN0IHJvdW5kZWRDb29yZCA9IHJvdW5kQ29vcmRUbyh0cmFuc2xhdGlvbkNvb3JkaW5hdGVzIGFzIFtudW1iZXIsIG51bWJlcl0sIHRoaXMuY29vcmRSb3VuZGVkRGVjaW1hbHMpO1xyXG4gICAgdHJhbnNsYXRlZFN0b3AuY29vcmRpbmF0ZXMgPSByb3VuZGVkQ29vcmQ7XHJcbiAgICB0cmFuc2xhdGVkU3RvcC50ZXh0ID0gcm91bmRlZENvb3JkLmpvaW4oJywnKTtcclxuICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUodHJhbnNsYXRlZFN0b3ApO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgbW9uaXRvckVtcHR5RW50aXR5U3RvcmUoKSB7XHJcbiAgICAvLyBXYXRjaCBpZiB0aGUgc3RvcmUgaXMgZW1wdHkgdG8gcmVzZXQgaXRcclxuICAgIHRoaXMuc3RvcmVFbXB0eSQkID0gdGhpcy5zdG9wc1N0b3JlLmNvdW50JFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXHJcbiAgICAgICkuc3Vic2NyaWJlKChjb3VudCkgPT4ge1xyXG4gICAgICAgIGlmIChjb3VudCA8IDIpIHtcclxuICAgICAgICAgIGFkZFN0b3BUb1N0b3JlKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdG9wc1N0b3JlLmNvdW50ID09PSAyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcHNTdG9yZS5zdG9yZUluaXRpYWxpemVkJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnN0b3BzU3RvcmUuc3RvcmVJbml0aWFsaXplZCQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucm91dGVzUXVlcmllcyQkLm1hcCgodSkgPT4gdS51bnN1YnNjcmliZSgpKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vbml0b3JFbnRpdHlTdG9yZUNoYW5nZSgpIHtcclxuICAgIHRoaXMuc3RvcmVDaGFuZ2UkJCA9IHRoaXMuc3RvcHNTdG9yZS5lbnRpdGllcyRcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UpKVxyXG4gICAgICAuc3Vic2NyaWJlKChzdG9wczogU3RvcFtdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVTdG9wRGlmZihzdG9wcyk7XHJcbiAgICAgICAgdXBkYXRlU3RvcmVTb3J0aW5nKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVTdG9wc0ZlYXR1cmUoKTtcclxuICAgICAgICB0aGlzLmdldFJvdXRlcyh0aGlzLmlzVHJhbnNsYXRpbmcpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhbmNlbFNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNocyQkLm1hcChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVN0b3BEaWZmKHN0b3BzOiBTdG9wW10pIHtcclxuICAgIGNvbnN0IHNpbXBsaWZpZWRTdG9wcyA9IHN0b3BzLm1hcCgoc3RvcDogU3RvcCkgPT4ge1xyXG4gICAgICByZXR1cm4gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHsgLi4ueyBpZDogc3RvcC5pZCwgdGV4dDogc3RvcC50ZXh0LCBjb29yZGluYXRlczogc3RvcC5jb29yZGluYXRlcyB9IH0pO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBkaWZmID0gQ2hhbmdlVXRpbHMuZmluZENoYW5nZXModGhpcy5wcmV2aW91c1N0b3BzLCBzaW1wbGlmaWVkU3RvcHMsIFsnY29vcmRpbmF0ZXMnXSk7XHJcbiAgICBjb25zdCBzdG9wSWRUb1Byb2Nlc3MgPSBkaWZmLmFkZGVkLmNvbmNhdChkaWZmLm1vZGlmaWVkKTtcclxuICAgIGlmIChzdG9wSWRUb1Byb2Nlc3MpIHtcclxuICAgICAgc3RvcElkVG9Qcm9jZXNzLm1hcCgoY2hhbmdlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2hhbmdlZFN0b3AgPSAoY2hhbmdlLm5ld1ZhbHVlIGFzIFN0b3ApO1xyXG4gICAgICAgIGlmIChjaGFuZ2VkU3RvcCkge1xyXG4gICAgICAgICAgY29uc3Qgc3RvcDogU3RvcCA9IHRoaXMuc3RvcHNTdG9yZS5nZXQoY2hhbmdlZFN0b3AuaWQpO1xyXG4gICAgICAgICAgY29uc3QgdGVybSA9IHN0b3AudGV4dDtcclxuICAgICAgICAgIGlmICghdGVybSB8fCB0ZXJtLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHN0cmluZ1RvTG9uTGF0KHRlcm0sIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb24pO1xyXG4gICAgICAgICAgbGV0IHJlc2VhcmNoZXM6IFJlc2VhcmNoW107XHJcbiAgICAgICAgICBsZXQgaXNDb29yZCA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmxvbkxhdCkge1xyXG4gICAgICAgICAgICBpc0Nvb3JkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc2VhcmNoZXMgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRlcm0sIHsgc2VhcmNoVHlwZTogJ0ZlYXR1cmUnIH0pO1xyXG4gICAgICAgICAgdGhpcy5jYW5jZWxTZWFyY2goKTtcclxuICAgICAgICAgIGNvbnN0IHJlcXVlc3RzJCA9IHJlc2VhcmNoZXMubWFwKHJlcyA9PiByZXMucmVxdWVzdFxyXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdKSA9PiByZXN1bHRzLmZpbHRlcihyID0+XHJcbiAgICAgICAgICAgICAgaXNDb29yZCA/IHIuZGF0YS5nZW9tZXRyeS50eXBlID09PSAnUG9pbnQnICYmIHIuZGF0YS5nZW9tZXRyeSA6IHIuZGF0YS5nZW9tZXRyeSkpKVxyXG5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaHMkJCA9IHJlcXVlc3RzJC5tYXAoKHJlcXVlc3QpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGlwZShtYXAoKHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdKSA9PiByZXN1bHRzLmZpbHRlcihyID0+XHJcbiAgICAgICAgICAgICAgaXNDb29yZCA/IHIuZGF0YS5nZW9tZXRyeS50eXBlID09PSAnUG9pbnQnICYmIHIuZGF0YS5nZW9tZXRyeSA6IHIuZGF0YS5nZW9tZXRyeSkpKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogU2VhcmNoUmVzdWx0W10pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSByZXNbMF0uc291cmNlO1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBtZXRhID0gcmVzWzBdLm1ldGE7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXMubWFwKHIgPT4gci5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKCFzdG9wLnNlYXJjaFByb3Bvc2Fscykge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0b3Auc2VhcmNoUHJvcG9zYWxzID0gW107XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgc3RvcC5zZWFyY2hQcm9wb3NhbHMgPSBzdG9wLnNlYXJjaFByb3Bvc2Fscy5maWx0ZXIoc3AgPT4gc3AudHlwZSA9PT0gKGlzQ29vcmQgPyBQcm9wb3NhbFR5cGUuQ29vcmQgOiBQcm9wb3NhbFR5cGUuVGV4dCkpO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgc3RvcmVkU291cmNlID0gc3RvcC5zZWFyY2hQcm9wb3NhbHMuZmluZChzcCA9PiBzcC5zb3VyY2UgPT09IHNvdXJjZSk7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChzdG9yZWRTb3VyY2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdG9yZWRTb3VyY2UucmVzdWx0cyA9IHJlc3VsdHM7XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC5zZWFyY2hQcm9wb3NhbHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpc0Nvb3JkID8gUHJvcG9zYWxUeXBlLkNvb3JkIDogUHJvcG9zYWxUeXBlLlRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBtZXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0c1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnByZXZpb3VzU3RvcHMgPSBzaW1wbGlmaWVkU3RvcHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVN0b3BzRmVhdHVyZSgpIHtcclxuICAgIGNvbnN0IHN0b3BzID0gdGhpcy5zdG9wc1N0b3JlLmFsbCgpO1xyXG4gICAgY29uc3Qgc3RvcHNXaXRoQ29vcmRpbmF0ZXMgPSBzdG9wcy5maWx0ZXIoc3RvcCA9PiBzdG9wLmNvb3JkaW5hdGVzKTtcclxuICAgIHN0b3BzV2l0aENvb3JkaW5hdGVzLm1hcChzdG9wID0+IHRoaXMuYWRkU3RvcE92ZXJsYXkoc3RvcCkpO1xyXG4gICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5hbGwoKS5tYXAoXHJcbiAgICAgIChzdG9wRmVhdHVyZTogRmVhdHVyZTxGZWF0dXJlV2l0aFN0b3BQcm9wZXJ0aWVzPikgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zdG9wc1N0b3JlLmdldChzdG9wRmVhdHVyZS5wcm9wZXJ0aWVzLmlkKSkge1xyXG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5kZWxldGUoc3RvcEZlYXR1cmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICBjb25zdCBzdG9wc1dpdGhvdXRDb29yZGluYXRlcyA9IHN0b3BzLmZpbHRlcihzdG9wID0+ICFzdG9wLmNvb3JkaW5hdGVzKTtcclxuICAgIHN0b3BzV2l0aG91dENvb3JkaW5hdGVzLm1hcChzdG9wID0+IHtcclxuICAgICAgY29uc3Qgc3RvcEZlYXR1cmUgPSB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmdldChzdG9wLmlkKTtcclxuICAgICAgaWYgKHN0b3BGZWF0dXJlKSB7XHJcbiAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5kZWxldGUoc3RvcEZlYXR1cmUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Um91dGVzKGlzT3ZlcnZpZXc6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgY29uc3Qgc3RvcHNXaXRoQ29vcmRpbmF0ZXMgPSB0aGlzLnN0b3BzU3RvcmUudmlld1xyXG4gICAgICAuYWxsKClcclxuICAgICAgLmZpbHRlcihzdG9wID0+IHN0b3AuY29vcmRpbmF0ZXMpO1xyXG4gICAgaWYgKHN0b3BzV2l0aENvb3JkaW5hdGVzLmxlbmd0aCA8IDIpIHtcclxuICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVsZXRlTWFueSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5hbGwoKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByb3VuZGVkQ29vcmRpbmF0ZXMgPSBzdG9wc1dpdGhDb29yZGluYXRlcy5tYXAoKHN0b3ApID0+IHtcclxuICAgICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKHN0b3AuY29vcmRpbmF0ZXMsIHRoaXMuY29vcmRSb3VuZGVkRGVjaW1hbHMpO1xyXG4gICAgICByZXR1cm4gcm91bmRlZENvb3JkO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBvdmVydmlld0RpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge1xyXG4gICAgICBvdmVydmlldzogdHJ1ZSxcclxuICAgICAgc3RlcHM6IGZhbHNlLFxyXG4gICAgICBhbHRlcm5hdGl2ZXM6IGZhbHNlLFxyXG4gICAgICBjb250aW51ZV9zdHJhaWdodDogZmFsc2VcclxuICAgIH07XHJcbiAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5tYXAoKHUpID0+IHUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBjb25zdCByb3V0ZVJlc3BvbnNlID0gdGhpcy5kaXJlY3Rpb25zU2VydmljZS5yb3V0ZShcclxuICAgICAgcm91bmRlZENvb3JkaW5hdGVzLFxyXG4gICAgICBpc092ZXJ2aWV3ID8gb3ZlcnZpZXdEaXJlY3Rpb25zT3B0aW9ucyA6IHVuZGVmaW5lZFxyXG4gICAgKTtcclxuICAgIGlmIChyb3V0ZVJlc3BvbnNlKSB7XHJcbiAgICAgIHJvdXRlUmVzcG9uc2UubWFwKHJlcyA9PlxyXG4gICAgICAgIHRoaXMucm91dGVzUXVlcmllcyQkLnB1c2goXHJcbiAgICAgICAgICByZXMuc3Vic2NyaWJlKGRpcmVjdGlvbnMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5kZWxldGVNYW55KHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmFsbCgpKTtcclxuICAgICAgICAgICAgZGlyZWN0aW9ucy5tYXAoZGlyZWN0aW9uID0+XHJcbiAgICAgICAgICAgICAgYWRkRGlyZWN0aW9uVG9Sb3V0ZXNGZWF0dXJlU3RvcmUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbixcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdGlvbixcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9PT0gZGlyZWN0aW9uc1swXSA/IHRydWUgOiBmYWxzZSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFN0b3BPdmVybGF5KHN0b3A6IFN0b3ApIHtcclxuICAgIGFkZFN0b3BUb1N0b3BzRmVhdHVyZVN0b3JlKHN0b3AsIHRoaXMuc3RvcHNTdG9yZSwgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZSwgdGhpcy5wcm9qZWN0aW9uLCB0aGlzLmxhbmd1YWdlU2VydmljZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxpZ28tZGlyZWN0aW9ucy1idXR0b25zIFtjb250ZXh0VXJpXT1cImNvbnRleHRVcmlcIiBbem9vbVRvQWN0aXZlUm91dGUkXT1cInpvb21Ub0FjdGl2ZVJvdXRlJFwiIFtyb3V0ZXNGZWF0dXJlU3RvcmVdPVwicm91dGVzRmVhdHVyZVN0b3JlXCIgW3N0b3BzU3RvcmVdPVwic3RvcHNTdG9yZVwiPjwvaWdvLWRpcmVjdGlvbnMtYnV0dG9ucz5cclxuXHJcbjxpZ28tZGlyZWN0aW9ucy1pbnB1dHMgKHN0b3BJbnB1dEhhc0ZvY3VzKT1cIm9uU3RvcElucHV0SGFzRm9jdXNDaGFuZ2UoJGV2ZW50KVwiIFtjb29yZFJvdW5kZWREZWNpbWFsc109XCJjb29yZFJvdW5kZWREZWNpbWFsc1wiIFtwcm9qZWN0aW9uXT1cInByb2plY3Rpb25cIiBbc3RvcHNGZWF0dXJlU3RvcmVdPVwic3RvcHNGZWF0dXJlU3RvcmVcIiBbc3RvcHNTdG9yZV09XCJzdG9wc1N0b3JlXCIgW2RlYm91bmNlXT1cImRlYm91bmNlXCIgW2xlbmd0aF09XCJsZW5ndGhcIj48L2lnby1kaXJlY3Rpb25zLWlucHV0cz5cclxuPGJyPlxyXG48aWdvLWRpcmVjdGlvbnMtcmVzdWx0cyBbc3RlcEZlYXR1cmVTdG9yZV09XCJzdGVwRmVhdHVyZVN0b3JlXCIgW3JvdXRlc0ZlYXR1cmVTdG9yZV09XCJyb3V0ZXNGZWF0dXJlU3RvcmVcIj48L2lnby1kaXJlY3Rpb25zLXJlc3VsdHM+Il19
@@ -99,4 +99,4 @@ IgoDirectionsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [pr
99
99
  DirectionsInputsComponent,
100
100
  DirectionsButtonsComponent,
101
101
  DirectionsResultsComponent] }); })();
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFrQy9GLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLG1CQUFtQjtTQUM5QixDQUFDO0lBQ0osQ0FBQzs7c0ZBTFUsbUJBQW1CO3FFQUFuQixtQkFBbUI7MEVBRm5CLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxZQTVCM0MsWUFBWTtRQUNaLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGVBQWU7UUFDZixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixpQkFBaUI7dUZBZ0JSLG1CQUFtQjtjQWhDL0IsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGNBQWM7b0JBQ2QsV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixhQUFhO29CQUNiLGdCQUFnQjtvQkFDaEIsa0JBQWtCO29CQUNsQixjQUFjO29CQUNkLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixnQkFBZ0I7b0JBQ2hCLHFCQUFxQjtvQkFDckIsaUJBQWlCO2lCQUNsQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsbUJBQW1CO29CQUNuQix5QkFBeUI7b0JBQ3pCLDBCQUEwQjtvQkFDMUIsMEJBQTBCO2lCQUMzQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1gsbUJBQW1CO29CQUNwQix5QkFBeUI7b0JBQ3pCLDBCQUEwQjtvQkFDMUIsMEJBQTBCO2lCQUMzQjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO2FBQzlDOzt3RkFDWSxtQkFBbUIsbUJBUDNCLG1CQUFtQjtRQUNwQix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLDBCQUEwQixhQTFCMUIsWUFBWTtRQUNaLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGVBQWU7UUFDZixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixpQkFBaUIsYUFHakIsbUJBQW1CO1FBQ25CLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuXG5pbXBvcnQgeyBwcm92aWRlRGlyZWN0aW9uc1NvdXJjZVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlyZWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vZGlyZWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlyZWN0aW9uc0J1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtYnV0dG9ucy9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLXJlc3VsdHMvZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIERpcmVjdGlvbnNDb21wb25lbnQsXG4gICAgRGlyZWN0aW9uc0lucHV0c0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zQnV0dG9uc0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zUmVzdWx0c0NvbXBvbmVudFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgRGlyZWN0aW9uc0NvbXBvbmVudCxcbiAgICBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50LFxuICAgIERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50LFxuICAgIERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVEaXJlY3Rpb25zU291cmNlU2VydmljZSgpXVxufSlcbmV4cG9ydCBjbGFzcyBJZ29EaXJlY3Rpb25zTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJZ29EaXJlY3Rpb25zTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBJZ29EaXJlY3Rpb25zTW9kdWxlXG4gICAgfTtcbiAgfVxufVxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFrQy9GLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLG1CQUFtQjtTQUM5QixDQUFDO0lBQ0osQ0FBQzs7c0ZBTFUsbUJBQW1CO3FFQUFuQixtQkFBbUI7MEVBRm5CLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxZQTVCM0MsWUFBWTtRQUNaLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGVBQWU7UUFDZixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixpQkFBaUI7dUZBZ0JSLG1CQUFtQjtjQWhDL0IsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGNBQWM7b0JBQ2QsV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixhQUFhO29CQUNiLGdCQUFnQjtvQkFDaEIsa0JBQWtCO29CQUNsQixjQUFjO29CQUNkLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixnQkFBZ0I7b0JBQ2hCLHFCQUFxQjtvQkFDckIsaUJBQWlCO2lCQUNsQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsbUJBQW1CO29CQUNuQix5QkFBeUI7b0JBQ3pCLDBCQUEwQjtvQkFDMUIsMEJBQTBCO2lCQUMzQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1gsbUJBQW1CO29CQUNwQix5QkFBeUI7b0JBQ3pCLDBCQUEwQjtvQkFDMUIsMEJBQTBCO2lCQUMzQjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO2FBQzlDOzt3RkFDWSxtQkFBbUIsbUJBUDNCLG1CQUFtQjtRQUNwQix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLDBCQUEwQixhQTFCMUIsWUFBWTtRQUNaLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGVBQWU7UUFDZixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixpQkFBaUIsYUFHakIsbUJBQW1CO1FBQ25CLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgcHJvdmlkZURpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy1zb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNJbnB1dHNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtaW5wdXRzL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlyZWN0aW9uc0J1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtYnV0dG9ucy9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlyZWN0aW9uc1Jlc3VsdHNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtcmVzdWx0cy9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdERpdmlkZXJNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdE9wdGlvbk1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICBJZ29MYW5ndWFnZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRGlyZWN0aW9uc0NvbXBvbmVudCxcclxuICAgIERpcmVjdGlvbnNJbnB1dHNDb21wb25lbnQsXHJcbiAgICBEaXJlY3Rpb25zQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50XHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICBEaXJlY3Rpb25zQ29tcG9uZW50LFxyXG4gICAgRGlyZWN0aW9uc0lucHV0c0NvbXBvbmVudCxcclxuICAgIERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50LFxyXG4gICAgRGlyZWN0aW9uc1Jlc3VsdHNDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVEaXJlY3Rpb25zU291cmNlU2VydmljZSgpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvRGlyZWN0aW9uc01vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJZ29EaXJlY3Rpb25zTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogSWdvRGlyZWN0aW9uc01vZHVsZVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -4,4 +4,4 @@ export * from './directions-sources';
4
4
  export * from './directions-inputs';
5
5
  export * from './directions-buttons';
6
6
  export * from './directions-results';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2hhcmVkJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLWlucHV0cyc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGlvbnMtYnV0dG9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGlvbnMtcmVzdWx0cyc7XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2hhcmVkJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9ucy1zb3VyY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLWlucHV0cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9ucy1idXR0b25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLXJlc3VsdHMnO1xyXG4iXX0=
@@ -14,4 +14,4 @@ export function provideDirectionsSourceService() {
14
14
  deps: [DirectionsSource]
15
15
  };
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1zb3VyY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvc2hhcmVkL2RpcmVjdGlvbnMtc291cmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFM0UsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFtQixPQUEyQjtRQUEzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtJQUFHLENBQUM7Q0FDbkQ7QUFFRCxNQUFNLFVBQVUsOEJBQThCLENBQUMsT0FBMkI7SUFDeEUsT0FBTyxJQUFJLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUsOEJBQThCO0lBQzVDLE9BQU87UUFDTCxPQUFPLEVBQUUsdUJBQXVCO1FBQ2hDLFVBQVUsRUFBRSw4QkFBOEI7UUFDMUMsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7S0FDekIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25zU291cmNlIH0gZnJvbSAnLi4vZGlyZWN0aW9ucy1zb3VyY2VzL2RpcmVjdGlvbnMtc291cmNlJztcblxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHNvdXJjZXM6IERpcmVjdGlvbnNTb3VyY2VbXSkge31cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlRmFjdG9yeShzb3VyY2VzOiBEaXJlY3Rpb25zU291cmNlW10pIHtcbiAgcmV0dXJuIG5ldyBEaXJlY3Rpb25zU291cmNlU2VydmljZShzb3VyY2VzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEaXJlY3Rpb25zU291cmNlU2VydmljZSgpIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBEaXJlY3Rpb25zU291cmNlU2VydmljZSxcbiAgICB1c2VGYWN0b3J5OiBkaXJlY3Rpb25zU291cmNlU2VydmljZUZhY3RvcnksXG4gICAgZGVwczogW0RpcmVjdGlvbnNTb3VyY2VdXG4gIH07XG59XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1zb3VyY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvc2hhcmVkL2RpcmVjdGlvbnMtc291cmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFM0UsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFtQixPQUEyQjtRQUEzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtJQUFHLENBQUM7Q0FDbkQ7QUFFRCxNQUFNLFVBQVUsOEJBQThCLENBQUMsT0FBMkI7SUFDeEUsT0FBTyxJQUFJLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUsOEJBQThCO0lBQzVDLE9BQU87UUFDTCxPQUFPLEVBQUUsdUJBQXVCO1FBQ2hDLFVBQVUsRUFBRSw4QkFBOEI7UUFDMUMsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7S0FDekIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25zU291cmNlIH0gZnJvbSAnLi4vZGlyZWN0aW9ucy1zb3VyY2VzL2RpcmVjdGlvbnMtc291cmNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zU291cmNlU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNvdXJjZXM6IERpcmVjdGlvbnNTb3VyY2VbXSkge31cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlRmFjdG9yeShzb3VyY2VzOiBEaXJlY3Rpb25zU291cmNlW10pIHtcclxuICByZXR1cm4gbmV3IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlKHNvdXJjZXMpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlKCkge1xyXG4gIHJldHVybiB7XHJcbiAgICBwcm92aWRlOiBEaXJlY3Rpb25zU291cmNlU2VydmljZSxcclxuICAgIHVzZUZhY3Rvcnk6IGRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlRmFjdG9yeSxcclxuICAgIGRlcHM6IFtEaXJlY3Rpb25zU291cmNlXVxyXG4gIH07XHJcbn1cclxuIl19
@@ -25,4 +25,4 @@ export var DirectionRelativePositionType;
25
25
  DirectionRelativePositionType["Intermediate"] = "intermediate";
26
26
  DirectionRelativePositionType["End"] = "end";
27
27
  })(DirectionRelativePositionType || (DirectionRelativePositionType = {}));
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9zaGFyZWQvZGlyZWN0aW9ucy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDMUIsNkRBQU8sQ0FBQTtJQUNQLHVEQUFJLENBQUE7QUFDTixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQUNELE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDOUIsdUNBQWUsQ0FBQTtJQUNmLHFDQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUcvQjtBQUVELE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDdEIsK0JBQWUsQ0FBQTtJQUNmLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLDhCQUFhLENBQUE7SUFDYixnQ0FBZSxDQUFBO0lBQ2Ysa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBRUQsTUFBTSxDQUFOLElBQVksNkJBSVg7QUFKRCxXQUFZLDZCQUE2QjtJQUN2QyxnREFBZSxDQUFBO0lBQ2YsOERBQTZCLENBQUE7SUFDN0IsNENBQVcsQ0FBQTtBQUNiLENBQUMsRUFKVyw2QkFBNkIsS0FBN0IsNkJBQTZCLFFBSXhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRGlyZWN0aW9uc0Zvcm1hdCB7XG4gIEdlb0pTT04sXG4gIEpTT05cbn1cbmV4cG9ydCBlbnVtIFNvdXJjZURpcmVjdGlvbnNUeXBlIHtcbiAgUm91dGUgPSAncm91dGUnLFxuICBUcmlwID0gJ3RyaXAnXG59XG5cbmV4cG9ydCBlbnVtIFByb3Bvc2FsVHlwZSB7XG4gIENvb3JkID0gJ2Nvb3JkJyxcbiAgVGV4dCA9ICd0ZXh0J1xufVxuXG5leHBvcnQgZW51bSBEaXJlY3Rpb25UeXBlIHtcbiAgU3RvcCA9ICdzdG9wJyxcbiAgUm91dGUgPSAncm91dGUnLFxuICBWZXJ0ZXggPSAndmVydGV4J1xufVxuXG5leHBvcnQgZW51bSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZSB7XG4gIFN0YXJ0ID0gJ3N0YXJ0JyxcbiAgSW50ZXJtZWRpYXRlID0gJ2ludGVybWVkaWF0ZScsXG4gIEVuZCA9ICdlbmQnXG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9zaGFyZWQvZGlyZWN0aW9ucy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDMUIsNkRBQU8sQ0FBQTtJQUNQLHVEQUFJLENBQUE7QUFDTixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQUNELE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDOUIsdUNBQWUsQ0FBQTtJQUNmLHFDQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUcvQjtBQUVELE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDdEIsK0JBQWUsQ0FBQTtJQUNmLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLDhCQUFhLENBQUE7SUFDYixnQ0FBZSxDQUFBO0lBQ2Ysa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBRUQsTUFBTSxDQUFOLElBQVksNkJBSVg7QUFKRCxXQUFZLDZCQUE2QjtJQUN2QyxnREFBZSxDQUFBO0lBQ2YsOERBQTZCLENBQUE7SUFDN0IsNENBQVcsQ0FBQTtBQUNiLENBQUMsRUFKVyw2QkFBNkIsS0FBN0IsNkJBQTZCLFFBSXhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRGlyZWN0aW9uc0Zvcm1hdCB7XHJcbiAgR2VvSlNPTixcclxuICBKU09OXHJcbn1cclxuZXhwb3J0IGVudW0gU291cmNlRGlyZWN0aW9uc1R5cGUge1xyXG4gIFJvdXRlID0gJ3JvdXRlJyxcclxuICBUcmlwID0gJ3RyaXAnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFByb3Bvc2FsVHlwZSB7XHJcbiAgQ29vcmQgPSAnY29vcmQnLFxyXG4gIFRleHQgPSAndGV4dCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGlyZWN0aW9uVHlwZSB7XHJcbiAgU3RvcCA9ICdzdG9wJyxcclxuICBSb3V0ZSA9ICdyb3V0ZScsXHJcbiAgVmVydGV4ID0gJ3ZlcnRleCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUge1xyXG4gIFN0YXJ0ID0gJ3N0YXJ0JyxcclxuICBJbnRlcm1lZGlhdGUgPSAnaW50ZXJtZWRpYXRlJyxcclxuICBFbmQgPSAnZW5kJ1xyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VvSnNvbkdlb21ldHJ5VHlwZXMgfSBmcm9tICdnZW9qc29uJztcbmltcG9ydCB7IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlLCBEaXJlY3Rpb25zRm9ybWF0LCBEaXJlY3Rpb25UeXBlLCBQcm9wb3NhbFR5cGUsIFNvdXJjZURpcmVjdGlvbnNUeXBlIH0gZnJvbSAnLi9kaXJlY3Rpb25zLmVudW0nO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSB9IGZyb20gJy4uLy4uL3NlYXJjaC9zaGFyZWQvc291cmNlcy9zb3VyY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGlvbk9wdGlvbnMge1xuICBvdmVydmlldz86IGJvb2xlYW47XG4gIHN0ZXBzPzogYm9vbGVhbjtcbiAgZ2VvbWV0cmllcz86IHN0cmluZztcbiAgYWx0ZXJuYXRpdmVzPzogYm9vbGVhbjtcbiAgY29udGludWVfc3RyYWlnaHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVXaXRoU3RvcCBleHRlbmRzIEZlYXR1cmU8RmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcz4ge31cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhEaXJlY3Rpb24gZXh0ZW5kcyBGZWF0dXJlPEZlYXR1cmVXaXRoRGlyZWN0aW9uUHJvcGVydGllcz4geyB9XG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVXaXRoU3RlcCBleHRlbmRzIEZlYXR1cmU8RmVhdHVyZVdpdGhTdGVwUHJvcGVydGllcz4ge31cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlV2l0aFN0ZXBQcm9wZXJ0aWVzIHtcbiAgaWQ6IHN0cmluZztcbiAgc3RlcDogSWdvU3RlcDtcbiAgdHlwZTogRGlyZWN0aW9uVHlwZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhEaXJlY3Rpb25Qcm9wZXJ0aWVzIHtcbiAgaWQ6IHN0cmluZztcbiAgZGlyZWN0aW9uOiBEaXJlY3Rpb247XG4gIHR5cGU6IERpcmVjdGlvblR5cGU7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcyB7XG4gIGlkOiBzdHJpbmc7XG4gIHN0b3A6IFN0b3A7XG4gIHR5cGU6IERpcmVjdGlvblR5cGU7XG4gIHN0b3BUZXh0OiBzdHJpbmc7XG4gIHN0b3BDb2xvcjogc3RyaW5nO1xuICBzdG9wT3BhY2l0eTogMTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdG9wIHtcbiAgaWQ6IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbiAgc2VhcmNoUHJvcG9zYWxzPzogU291cmNlUHJvcG9zYWxbXTtcbiAgY29vcmRpbmF0ZXM/OiBbbnVtYmVyLCBudW1iZXJdO1xuICBwb3NpdGlvbjogbnVtYmVyO1xuICByZWxhdGl2ZVBvc2l0aW9uOiBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZTtcbiAgc3RvcFBvaW50Pzogc3RyaW5nO1xuICBzdG9wUHJvcG9zYWxzPzogW107XG4gIGRpcmVjdGlvbnNUZXh0Pzogc3RyaW5nO1xuICBzdG9wQ29vcmRpbmF0ZXM/OiBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVByb3Bvc2FsIHtcbiAgdHlwZTogUHJvcG9zYWxUeXBlO1xuICBzb3VyY2U6IFNlYXJjaFNvdXJjZTtcbiAgcmVzdWx0czogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdO1xuICBtZXRhOiB7XG4gICAgZGF0YVR5cGU6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdGl0bGVIdG1sPzogc3RyaW5nO1xuICAgIGljb246IHN0cmluZztcbiAgICBzY29yZT86IG51bWJlcjtcbiAgICBuZXh0UGFnZT86IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIHNvdXJjZVR5cGU/OiBTb3VyY2VEaXJlY3Rpb25zVHlwZTtcbiAgb3JkZXI/OiBudW1iZXI7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBmb3JtYXQ/OiBEaXJlY3Rpb25zRm9ybWF0O1xuICBpY29uPzogc3RyaW5nO1xuICBwcm9qZWN0aW9uPzogc3RyaW5nO1xuICB3YXlwb2ludHM/OiBhbnk7XG4gIGRpc3RhbmNlPzogbnVtYmVyO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgZ2VvbWV0cnk/OiBEaXJlY3Rpb25zR2VvbWV0cnk7XG4gIGxlZ3M/OiBPc3JtTGVnW107XG4gIHN0ZXBzPzogSWdvU3RlcFtdO1xuICB3ZWlnaHQ/OiBudW1iZXI7XG4gIHdlaWdodF9uYW1lPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3Rpb25zR2VvbWV0cnkge1xuICB0eXBlOiBHZW9Kc29uR2VvbWV0cnlUeXBlcztcbiAgY29vcmRpbmF0ZXM6IFthbnldO1xufVxuZXhwb3J0IGludGVyZmFjZSBPc3JtTGVnIHtcbiAgZGlzdGFuY2U/OiBudW1iZXI7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBzdGVwcz86IE9zcm1TdGVwW107XG4gIHN1bW1hcnk6IHN0cmluZztcbiAgd2VpZ2h0PzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBJZ29TdGVwIHtcbiAgLy8gUkVGRVIgVE8gVEhJUyBJTlRFUkZBQ0UgRk9SIFZBUklPVVMgU09VUkNFXG4gIGRpc3RhbmNlPzogbnVtYmVyO1xuICBkcml2aW5nX3NpZGU/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBnZW9tZXRyeT86IERpcmVjdGlvbnNHZW9tZXRyeTtcbiAgaW50ZXJzZWN0aW9ucz86IE9zcm1JbnRlcnNlY3Rpb25bXTtcbiAgbWFuZXV2ZXI/OiBPc3JtTWFuZXV2ZXI7XG4gIG1vZGU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIE9zcm1TdGVwIHtcbiAgZGlzdGFuY2U/OiBudW1iZXI7XG4gIGRyaXZpbmdfc2lkZT86IHN0cmluZztcbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIGdlb21ldHJ5PzogRGlyZWN0aW9uc0dlb21ldHJ5O1xuICBpbnRlcnNlY3Rpb25zPzogT3NybUludGVyc2VjdGlvbltdO1xuICBtYW5ldXZlcj86IE9zcm1NYW5ldXZlcjtcbiAgbW9kZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgT3NybUludGVyc2VjdGlvbiB7XG4gIGJlYXJpbmc/OiBbYW55XTtcbiAgZW50cnk/OiBbYm9vbGVhbl07XG4gIGxvY2F0aW9uPzogW251bWJlciwgbnVtYmVyXTtcbiAgb3V0PzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBPc3JtTWFuZXV2ZXIge1xuICBiZWFyaW5nX2FmdGVyPzogbnVtYmVyO1xuICBiZWFyaW5nX2JlZm9yZT86IG51bWJlcjtcbiAgbG9jYXRpb24/OiBbbnVtYmVyLCBudW1iZXJdO1xuICBtb2RpZmllcj86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VvSnNvbkdlb21ldHJ5VHlwZXMgfSBmcm9tICdnZW9qc29uJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUsIERpcmVjdGlvbnNGb3JtYXQsIERpcmVjdGlvblR5cGUsIFByb3Bvc2FsVHlwZSwgU291cmNlRGlyZWN0aW9uc1R5cGUgfSBmcm9tICcuL2RpcmVjdGlvbnMuZW51bSc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgU2VhcmNoU291cmNlIH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NoYXJlZC9zb3VyY2VzL3NvdXJjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGlvbk9wdGlvbnMge1xyXG4gIG92ZXJ2aWV3PzogYm9vbGVhbjtcclxuICBzdGVwcz86IGJvb2xlYW47XHJcbiAgZ2VvbWV0cmllcz86IHN0cmluZztcclxuICBhbHRlcm5hdGl2ZXM/OiBib29sZWFuO1xyXG4gIGNvbnRpbnVlX3N0cmFpZ2h0PzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlV2l0aFN0b3AgZXh0ZW5kcyBGZWF0dXJlPEZlYXR1cmVXaXRoU3RvcFByb3BlcnRpZXM+IHt9XHJcbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhEaXJlY3Rpb24gZXh0ZW5kcyBGZWF0dXJlPEZlYXR1cmVXaXRoRGlyZWN0aW9uUHJvcGVydGllcz4geyB9XHJcbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhTdGVwIGV4dGVuZHMgRmVhdHVyZTxGZWF0dXJlV2l0aFN0ZXBQcm9wZXJ0aWVzPiB7fVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlV2l0aFN0ZXBQcm9wZXJ0aWVzIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHN0ZXA6IElnb1N0ZXA7XHJcbiAgdHlwZTogRGlyZWN0aW9uVHlwZTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVXaXRoRGlyZWN0aW9uUHJvcGVydGllcyB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBkaXJlY3Rpb246IERpcmVjdGlvbjtcclxuICB0eXBlOiBEaXJlY3Rpb25UeXBlO1xyXG4gIGFjdGl2ZTogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVXaXRoU3RvcFByb3BlcnRpZXMge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgc3RvcDogU3RvcDtcclxuICB0eXBlOiBEaXJlY3Rpb25UeXBlO1xyXG4gIHN0b3BUZXh0OiBzdHJpbmc7XHJcbiAgc3RvcENvbG9yOiBzdHJpbmc7XHJcbiAgc3RvcE9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RvcCB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHNlYXJjaFByb3Bvc2Fscz86IFNvdXJjZVByb3Bvc2FsW107XHJcbiAgY29vcmRpbmF0ZXM/OiBbbnVtYmVyLCBudW1iZXJdO1xyXG4gIHBvc2l0aW9uOiBudW1iZXI7XHJcbiAgcmVsYXRpdmVQb3NpdGlvbjogRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGU7XHJcbiAgc3RvcFBvaW50Pzogc3RyaW5nO1xyXG4gIHN0b3BQcm9wb3NhbHM/OiBbXTtcclxuICBkaXJlY3Rpb25zVGV4dD86IHN0cmluZztcclxuICBzdG9wQ29vcmRpbmF0ZXM/OiBbbnVtYmVyLCBudW1iZXJdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVByb3Bvc2FsIHtcclxuICB0eXBlOiBQcm9wb3NhbFR5cGU7XHJcbiAgc291cmNlOiBTZWFyY2hTb3VyY2U7XHJcbiAgcmVzdWx0czogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdO1xyXG4gIG1ldGE6IHtcclxuICAgIGRhdGFUeXBlOiBzdHJpbmc7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHRpdGxlSHRtbD86IHN0cmluZztcclxuICAgIGljb246IHN0cmluZztcclxuICAgIHNjb3JlPzogbnVtYmVyO1xyXG4gICAgbmV4dFBhZ2U/OiBib29sZWFuO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0aW9uIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHNvdXJjZTogc3RyaW5nO1xyXG4gIHNvdXJjZVR5cGU/OiBTb3VyY2VEaXJlY3Rpb25zVHlwZTtcclxuICBvcmRlcj86IG51bWJlcjtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBmb3JtYXQ/OiBEaXJlY3Rpb25zRm9ybWF0O1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgcHJvamVjdGlvbj86IHN0cmluZztcclxuICB3YXlwb2ludHM/OiBhbnk7XHJcbiAgZGlzdGFuY2U/OiBudW1iZXI7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgZ2VvbWV0cnk/OiBEaXJlY3Rpb25zR2VvbWV0cnk7XHJcbiAgbGVncz86IE9zcm1MZWdbXTtcclxuICBzdGVwcz86IElnb1N0ZXBbXTtcclxuICB3ZWlnaHQ/OiBudW1iZXI7XHJcbiAgd2VpZ2h0X25hbWU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3Rpb25zR2VvbWV0cnkge1xyXG4gIHR5cGU6IEdlb0pzb25HZW9tZXRyeVR5cGVzO1xyXG4gIGNvb3JkaW5hdGVzOiBbYW55XTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE9zcm1MZWcge1xyXG4gIGRpc3RhbmNlPzogbnVtYmVyO1xyXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gIHN0ZXBzPzogT3NybVN0ZXBbXTtcclxuICBzdW1tYXJ5OiBzdHJpbmc7XHJcbiAgd2VpZ2h0PzogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSWdvU3RlcCB7XHJcbiAgLy8gUkVGRVIgVE8gVEhJUyBJTlRFUkZBQ0UgRk9SIFZBUklPVVMgU09VUkNFXHJcbiAgZGlzdGFuY2U/OiBudW1iZXI7XHJcbiAgZHJpdmluZ19zaWRlPzogc3RyaW5nO1xyXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gIGdlb21ldHJ5PzogRGlyZWN0aW9uc0dlb21ldHJ5O1xyXG4gIGludGVyc2VjdGlvbnM/OiBPc3JtSW50ZXJzZWN0aW9uW107XHJcbiAgbWFuZXV2ZXI/OiBPc3JtTWFuZXV2ZXI7XHJcbiAgbW9kZT86IHN0cmluZztcclxuICBuYW1lPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgT3NybVN0ZXAge1xyXG4gIGRpc3RhbmNlPzogbnVtYmVyO1xyXG4gIGRyaXZpbmdfc2lkZT86IHN0cmluZztcclxuICBkdXJhdGlvbj86IG51bWJlcjtcclxuICBnZW9tZXRyeT86IERpcmVjdGlvbnNHZW9tZXRyeTtcclxuICBpbnRlcnNlY3Rpb25zPzogT3NybUludGVyc2VjdGlvbltdO1xyXG4gIG1hbmV1dmVyPzogT3NybU1hbmV1dmVyO1xyXG4gIG1vZGU/OiBzdHJpbmc7XHJcbiAgbmFtZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE9zcm1JbnRlcnNlY3Rpb24ge1xyXG4gIGJlYXJpbmc/OiBbYW55XTtcclxuICBlbnRyeT86IFtib29sZWFuXTtcclxuICBsb2NhdGlvbj86IFtudW1iZXIsIG51bWJlcl07XHJcbiAgb3V0PzogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgT3NybU1hbmV1dmVyIHtcclxuICBiZWFyaW5nX2FmdGVyPzogbnVtYmVyO1xyXG4gIGJlYXJpbmdfYmVmb3JlPzogbnVtYmVyO1xyXG4gIGxvY2F0aW9uPzogW251bWJlciwgbnVtYmVyXTtcclxuICBtb2RpZmllcj86IHN0cmluZztcclxuICB0eXBlPzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -26,4 +26,4 @@ DirectionsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Direct
26
26
  providedIn: 'root'
27
27
  }]
28
28
  }], function () { return [{ type: i1.DirectionsSourceService }]; }, null); })();
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVczQyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQW9CLHVCQUFnRDtRQUFoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO0lBQUcsQ0FBQztJQUV4RSxLQUFLLENBQUMsV0FBK0IsRUFBRSxvQkFBc0MsRUFBRTtRQUM3RSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVCLE9BQU87U0FDUjtRQUNELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU87YUFDeEMsTUFBTSxDQUFDLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNwRCxHQUFHLENBQUMsQ0FBQyxNQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBd0IsRUFDeEIsV0FBK0IsRUFDL0Isb0JBQXNDLEVBQUU7UUFFeEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUUsQ0FBQztRQUM5RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOztrRkFuQlUsaUJBQWlCO3VFQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCLG1CQUZoQixNQUFNO3VGQUVQLGlCQUFpQjtjQUg3QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cblxuaW1wb3J0IHsgRGlyZWN0aW9uLCBEaXJlY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuLi9kaXJlY3Rpb25zLXNvdXJjZXMvZGlyZWN0aW9ucy1zb3VyY2UnO1xuaW1wb3J0IHsgRGlyZWN0aW9uc1NvdXJjZVNlcnZpY2UgfSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlyZWN0aW9uc1NvdXJjZVNlcnZpY2U6IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlKSB7fVxuXG4gIHJvdXRlKGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdW10sIGRpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPERpcmVjdGlvbltdPltdIHtcbiAgICBpZiAoY29vcmRpbmF0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlLnNvdXJjZXNcbiAgICAgIC5maWx0ZXIoKHNvdXJjZTogRGlyZWN0aW9uc1NvdXJjZSkgPT4gc291cmNlLmVuYWJsZWQpXG4gICAgICAubWFwKChzb3VyY2U6IERpcmVjdGlvbnNTb3VyY2UpID0+IHRoaXMucm91dGVTb3VyY2Uoc291cmNlLCBjb29yZGluYXRlcywgZGlyZWN0aW9uc09wdGlvbnMpKTtcbiAgfVxuXG4gIHJvdXRlU291cmNlKFxuICAgIHNvdXJjZTogRGlyZWN0aW9uc1NvdXJjZSxcbiAgICBjb29yZGluYXRlczogW251bWJlciwgbnVtYmVyXVtdLFxuICAgIGRpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxEaXJlY3Rpb25bXT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBzb3VyY2Uucm91dGUoY29vcmRpbmF0ZXMsIGRpcmVjdGlvbnNPcHRpb25zICk7XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cbn1cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVczQyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQW9CLHVCQUFnRDtRQUFoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO0lBQUcsQ0FBQztJQUV4RSxLQUFLLENBQUMsV0FBK0IsRUFBRSxvQkFBc0MsRUFBRTtRQUM3RSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVCLE9BQU87U0FDUjtRQUNELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU87YUFDeEMsTUFBTSxDQUFDLENBQUMsTUFBd0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNwRCxHQUFHLENBQUMsQ0FBQyxNQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBd0IsRUFDeEIsV0FBK0IsRUFDL0Isb0JBQXNDLEVBQUU7UUFFeEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUUsQ0FBQztRQUM5RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOztrRkFuQlUsaUJBQWlCO3VFQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCLG1CQUZoQixNQUFNO3VGQUVQLGlCQUFpQjtjQUg3QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5pbXBvcnQgeyBEaXJlY3Rpb24sIERpcmVjdGlvbk9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zU291cmNlIH0gZnJvbSAnLi4vZGlyZWN0aW9ucy1zb3VyY2VzL2RpcmVjdGlvbnMtc291cmNlJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uc1NvdXJjZVNlcnZpY2UgfSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlyZWN0aW9uc1NvdXJjZVNlcnZpY2U6IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlKSB7fVxyXG5cclxuICByb3V0ZShjb29yZGluYXRlczogW251bWJlciwgbnVtYmVyXVtdLCBkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxEaXJlY3Rpb25bXT5bXSB7XHJcbiAgICBpZiAoY29vcmRpbmF0ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlLnNvdXJjZXNcclxuICAgICAgLmZpbHRlcigoc291cmNlOiBEaXJlY3Rpb25zU291cmNlKSA9PiBzb3VyY2UuZW5hYmxlZClcclxuICAgICAgLm1hcCgoc291cmNlOiBEaXJlY3Rpb25zU291cmNlKSA9PiB0aGlzLnJvdXRlU291cmNlKHNvdXJjZSwgY29vcmRpbmF0ZXMsIGRpcmVjdGlvbnNPcHRpb25zKSk7XHJcbiAgfVxyXG5cclxuICByb3V0ZVNvdXJjZShcclxuICAgIHNvdXJjZTogRGlyZWN0aW9uc1NvdXJjZSxcclxuICAgIGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdW10sXHJcbiAgICBkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9XHJcbiAgKTogT2JzZXJ2YWJsZTxEaXJlY3Rpb25bXT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHNvdXJjZS5yb3V0ZShjb29yZGluYXRlcywgZGlyZWN0aW9uc09wdGlvbnMgKTtcclxuICAgIHJldHVybiByZXF1ZXN0O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -506,4 +506,4 @@ export function translateBearing(bearing, languageService) {
506
506
  return;
507
507
  }
508
508
  }
509
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBRXBDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRjs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFzQixFQUFFLFlBQTRCLEtBQUssRUFBRSxLQUFLLEdBQUcsVUFBVTtJQUM5RyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuQixTQUFT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Q0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQ3REO1NBQU0sSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ3hCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQ3ZEO1NBQU07UUFDTCxPQUFPO0tBQ1I7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCAqIGFzIG9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcbmltcG9ydCAqIGFzIG9sR2VvbSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuaW1wb3J0ICogYXMgb2xQcm9qIGZyb20gJ29sL3Byb2onO1xuXG5pbXBvcnQgeyB1dWlkLCBOdW1iZXJVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgRGlyZWN0aW9uLCBGZWF0dXJlV2l0aERpcmVjdGlvbiwgRmVhdHVyZVdpdGhTdG9wLCBTdG9wIH0gZnJvbSAnLi9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBjcmVhdGVPdmVybGF5TWFya2VyU3R5bGUgfSBmcm9tICcuLi8uLi9vdmVybGF5L3NoYXJlZC9vdmVybGF5LW1hcmtlci1zdHlsZS51dGlscyc7XG5pbXBvcnQgeyBWZWN0b3JMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9yLWxheWVyJztcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlJztcbmltcG9ydCB7IHRyeUJpbmRTdG9yZUxheWVyIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS51dGlscyc7XG5pbXBvcnQgeyB0cnlBZGRMb2FkaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9zdHJhdGVnaWVzLnV0aWxzJztcbmltcG9ydCB7IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvbG9hZGluZyc7XG5pbXBvcnQgeyBGRUFUVVJFLCBGZWF0dXJlTW90aW9uIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5lbnVtcyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IEZlYXR1cmVHZW9tZXRyeSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZSwgRGlyZWN0aW9uVHlwZSB9IGZyb20gJy4vZGlyZWN0aW9ucy5lbnVtJztcbmltcG9ydCB7IFJvdXRlc0ZlYXR1cmVTdG9yZSwgU3RlcEZlYXR1cmVTdG9yZSwgU3RvcHNGZWF0dXJlU3RvcmUsIFN0b3BzU3RvcmUgfSBmcm9tICcuL3N0b3JlJztcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IHVwZGF0IHRoZSBzb3J0IG9mIHRoZSBsaXN0IGJhc2Ugb24gdGhlIHByb3ZpZGVkIGZpZWxkLlxuICogQHBhcmFtIHNvdXJjZSBzdG9wIHN0b3JlXG4gKiBAcGFyYW0gZGlyZWN0aW9uIGFzYyAvIGRlc2Mgc29ydCBvcmRlclxuICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCB0byB1c2UgdG8gc29ydCB0aGUgdmlld1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlU3RvcmVTb3J0aW5nKHN0b3BzU3RvcmU6IFN0b3BzU3RvcmUsIGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycgPSAnYXNjJywgZmllbGQgPSAncG9zaXRpb24nKSB7XG4gIHN0b3BzU3RvcmUudmlldy5zb3J0KHtcbiAgICBkaXJlY3Rpb24sXG4gICAgdmFsdWVBY2Nlc3NvcjogKGVudGl0eTogU3RvcCkgPT4gZW50aXR5W2ZpZWxkXVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKGluZGV4OiBudW1iZXIsIHRvdGFsTGVuZ3RoKTogRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUge1xuICBsZXQgcmVsYXRpdmVQb3NpdGlvbiA9IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlLkludGVybWVkaWF0ZTtcbiAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgcmVsYXRpdmVQb3NpdGlvbiA9IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlLlN0YXJ0O1xuICB9IGVsc2UgaWYgKGluZGV4ID09PSB0b3RhbExlbmd0aCAtIDEpIHtcbiAgICByZWxhdGl2ZVBvc2l0aW9uID0gRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUuRW5kO1xuICB9XG4gIHJldHVybiByZWxhdGl2ZVBvc2l0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZVN0b3BzUG9zaXRpb24oc3RvcHNTdG9yZTogU3RvcHNTdG9yZSkge1xuXG4gIGNvbnN0IHN0b3BzVG9Db21wdXRlUG9zaXRpb24gPSBbLi4uc3RvcHNTdG9yZS5hbGwoKV07XG4gIHN0b3BzVG9Db21wdXRlUG9zaXRpb24uc29ydCgoYSwgYikgPT4gYS5wb3NpdGlvbiAtIGIucG9zaXRpb24pO1xuICBzdG9wc1RvQ29tcHV0ZVBvc2l0aW9uLm1hcCgoc3RvcCwgaSkgPT4ge1xuICAgIHN0b3AucG9zaXRpb24gPSBpO1xuICAgIHN0b3AucmVsYXRpdmVQb3NpdGlvbiA9IGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKHN0b3AucG9zaXRpb24sIHN0b3BzVG9Db21wdXRlUG9zaXRpb24ubGVuZ3RoKTtcbiAgfSk7XG4gIGlmIChzdG9wc1RvQ29tcHV0ZVBvc2l0aW9uKSB7XG4gICAgc3RvcHNTdG9yZS51cGRhdGVNYW55KHN0b3BzVG9Db21wdXRlUG9zaXRpb24pO1xuICB9XG59XG5cbi8qKlxuICogRnVuY3Rpb24gdGhhdCBhZGQgYSBzdG9wIHRvIHRoZSBzdG9wIHN0b3JlLiBTdG9wIGFyZSBhbHdheXMgYWRkZWQgYmVmb3JlIHRoZSBsYXN0IHN0b3AuXG4gKiBAcGFyYW0gc3RvcHNTdG9yZSBzdG9wIHN0b3JlIGFzIGFuIEVudGl0eVN0b3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRTdG9wVG9TdG9yZShzdG9wc1N0b3JlOiBTdG9wc1N0b3JlKTogU3RvcCB7XG5cbiAgY29uc3QgaWQgPSB1dWlkKCk7XG4gIGNvbnN0IHN0b3BzID0gc3RvcHNTdG9yZS5hbGwoKTtcbiAgbGV0IHBvc2l0aW9uczogbnVtYmVyW107XG4gIGlmIChzdG9wc1N0b3JlLmNvdW50ID09PSAwKSB7XG4gICAgcG9zaXRpb25zID0gWzBdO1xuICB9IGVsc2Uge1xuICAgIHBvc2l0aW9ucyA9IHN0b3BzLm1hcChzdG9wID0+IHN0b3AucG9zaXRpb24pO1xuICB9XG4gIGNvbnN0IG1heFBvc2l0aW9uOiBudW1iZXIgPSBNYXRoLm1heCguLi5wb3NpdGlvbnMpO1xuICBjb25zdCBpbnNlcnRQb3NpdGlvbjogbnVtYmVyID0gbWF4UG9zaXRpb247XG4gIGNvbnN0IGxhc3RQb3NpdGlvbjogbnVtYmVyID0gbWF4UG9zaXRpb24gKyAxO1xuXG4gIGNvbnN0IHN0b3BUb1VwZGF0ZSA9IHN0b3BzU3RvcmUuYWxsKCkuZmluZChzdG9wID0+IHN0b3AucG9zaXRpb24gPT09IG1heFBvc2l0aW9uKTtcbiAgaWYgKHN0b3BUb1VwZGF0ZSkge1xuICAgIHN0b3BUb1VwZGF0ZS5wb3NpdGlvbiA9IGxhc3RQb3NpdGlvbjtcbiAgICBzdG9wVG9VcGRhdGUucmVsYXRpdmVQb3NpdGlvbiA9IGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKGxhc3RQb3NpdGlvbiwgc3RvcHNTdG9yZS5jb3VudCArIDEpO1xuICB9XG5cbiAgc3RvcHNTdG9yZS5pbnNlcnQoeyBpZCwgcG9zaXRpb246IGluc2VydFBvc2l0aW9uLCByZWxhdGl2ZVBvc2l0aW9uOiBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbihpbnNlcnRQb3NpdGlvbiwgc3RvcHNTdG9yZS5jb3VudCArIDEpIH0pO1xuXG4gIHVwZGF0ZVN0b3JlU29ydGluZyhzdG9wc1N0b3JlKTtcbiAgcmV0dXJuIHN0b3BzU3RvcmUuZ2V0KGlkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVN0b3BGcm9tU3RvcmUoc3RvcHNTdG9yZTogU3RvcHNTdG9yZSwgc3RvcDogU3RvcCkge1xuICBzdG9wc1N0b3JlLmRlbGV0ZShzdG9wKTtcbiAgY29tcHV0ZVN0b3BzUG9zaXRpb24oc3RvcHNTdG9yZSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgc3R5bGUgZm9yIHRoZSBkaXJlY3Rpb25zIHN0b3BzIGFuZCByb3V0ZXNcbiAqIEBwYXJhbSBmZWF0dXJlIE9sRmVhdHVyZVxuICogQHJldHVybnMgT0wgc3R5bGUgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpcmVjdGlvbnNTdHlsZShcbiAgZmVhdHVyZTogb2xGZWF0dXJlPE9sR2VvbWV0cnk+LFxuICByZXNvbHV0aW9uOiBudW1iZXJcbik6IG9sU3R5bGUuU3R5bGUgfCBvbFN0eWxlLlN0eWxlW10ge1xuICBjb25zdCB2ZXJ0ZXhTdHlsZSA9IFtcbiAgICBuZXcgb2xTdHlsZS5TdHlsZSh7XG4gICAgICBnZW9tZXRyeTogZmVhdHVyZS5nZXRHZW9tZXRyeSgpLFxuICAgICAgaW1hZ2U6IG5ldyBvbFN0eWxlLkNpcmNsZSh7XG4gICAgICAgIHJhZGl1czogNyxcbiAgICAgICAgc3Ryb2tlOiBuZXcgb2xTdHlsZS5TdHJva2UoeyBjb2xvcjogJyNGRjAwMDAnLCB3aWR0aDogMyB9KVxuICAgICAgfSlcbiAgICB9KVxuICBdO1xuXG4gIGNvbnN0IHN0b3BTdHlsZSA9IGNyZWF0ZU92ZXJsYXlNYXJrZXJTdHlsZSh7XG4gICAgdGV4dDogZmVhdHVyZS5nZXQoJ3N0b3BUZXh0JyksXG4gICAgb3BhY2l0eTogZmVhdHVyZS5nZXQoJ3N0b3BPcGFjaXR5JyksXG4gICAgbWFya2VyQ29sb3I6IGZlYXR1cmUuZ2V0KCdzdG9wQ29sb3InKSxcbiAgICBtYXJrZXJPdXRsaW5lQ29sb3I6IFsyNTUsIDI1NSwgMjU1XVxuICB9KTtcblxuICBjb25zdCByb3V0ZVN0eWxlID0gW1xuICAgIG5ldyBvbFN0eWxlLlN0eWxlKHtcbiAgICAgIHN0cm9rZTogbmV3IG9sU3R5bGUuU3Ryb2tlKHsgY29sb3I6IGByZ2JhKDEwNiwgMTIxLCAxMzAsICR7ZmVhdHVyZS5nZXQoJ2FjdGl2ZScpID8gMC43NSA6IDB9KWAsIHdpZHRoOiAxMCB9KVxuICAgIH0pLFxuICAgIG5ldyBvbFN0eWxlLlN0eWxlKHtcbiAgICAgIHN0cm9rZTogbmV3IG9sU3R5bGUuU3Ryb2tlKHsgY29sb3I6IGByZ2JhKDc5LCAxNjksIDIyMSwgJHtmZWF0dXJlLmdldCgnYWN0aXZlJykgPyAwLjc1IDogMH0pYCwgd2lkdGg6IDYgfSlcbiAgICB9KVxuICBdO1xuXG4gIGlmIChmZWF0dXJlLmdldCgndHlwZScpID09PSBEaXJlY3Rpb25UeXBlLlN0b3ApIHtcbiAgICByZXR1cm4gc3RvcFN0eWxlO1xuICB9XG4gIGlmIChmZWF0dXJlLmdldCgndHlwZScpID09PSAndmVydGV4Jykge1xuICAgIHJldHVybiB2ZXJ0ZXhTdHlsZTtcbiAgfVxuICBpZiAoZmVhdHVyZS5nZXQoJ3R5cGUnKSA9PT0gRGlyZWN0aW9uVHlwZS5Sb3V0ZSkge1xuICAgIHJldHVybiByb3V0ZVN0eWxlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0U3RvcHNGZWF0dXJlU3RvcmUoc3RvcHNGZWF0dXJlU3RvcmU6IFN0b3BzRmVhdHVyZVN0b3JlLCBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge1xuICBjb25zdCBsb2FkaW5nU3RyYXRlZ3kgPSBuZXcgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KHtcbiAgICBtb3Rpb246IEZlYXR1cmVNb3Rpb24uTm9uZVxuICB9KTtcblxuICBjb25zdCBzdG9wc0xheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXG4gICAgaWQ6ICdpZ28tZGlyZWN0aW9uLXN0b3BzLWxheWVyJyxcbiAgICB0aXRsZTogbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnN0b3BMYXllcicpLFxuICAgIHpJbmRleDogOTExLFxuICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXG4gICAgc2hvd0luTGF5ZXJMaXN0OiB0cnVlLFxuICAgIHdvcmtzcGFjZToge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSxcbiAgICBsaW5rZWRMYXllcnM6IHtcbiAgICAgIGxpbmtJZDogJ2lnby1kaXJlY3Rpb24tc3RvcHMtbGF5ZXInLFxuICAgICAgbGlua3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHN5bmNlZERlbGV0ZTogdHJ1ZSxcbiAgICAgICAgICBsaW5rZWRJZHM6IFsnaWdvLWRpcmVjdGlvbi1yb3V0ZS1sYXllciddLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIGV4cG9ydGFibGU6IHRydWUsXG4gICAgYnJvd3NhYmxlOiBmYWxzZSxcbiAgICBzdHlsZTogZGlyZWN0aW9uc1N0eWxlXG4gIH0pO1xuICB0cnlCaW5kU3RvcmVMYXllcihzdG9wc0ZlYXR1cmVTdG9yZSwgc3RvcHNMYXllcik7XG4gIHN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLnZpc2libGUgPSB0cnVlO1xuICB0cnlBZGRMb2FkaW5nU3RyYXRlZ3koc3RvcHNGZWF0dXJlU3RvcmUsIGxvYWRpbmdTdHJhdGVneSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0Um91dGVzRmVhdHVyZVN0b3JlKHJvdXRlc0ZlYXR1cmVTdG9yZTogUm91dGVzRmVhdHVyZVN0b3JlLCBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge1xuICBjb25zdCBsb2FkaW5nU3RyYXRlZ3kgPSBuZXcgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KHtcbiAgICBtb3Rpb246IEZlYXR1cmVNb3Rpb24uTm9uZVxuICB9KTtcblxuICBjb25zdCByb3V0ZUxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXG4gICAgaWQ6ICdpZ28tZGlyZWN0aW9uLXJvdXRlLWxheWVyJyxcbiAgICB0aXRsZTogbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnJvdXRlTGF5ZXInKSxcbiAgICB6SW5kZXg6IDkxMCxcbiAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxuICAgIHNob3dJbkxheWVyTGlzdDogdHJ1ZSxcbiAgICB3b3Jrc3BhY2U6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgbGlua2VkTGF5ZXJzOiB7XG4gICAgICBsaW5rSWQ6ICdpZ28tZGlyZWN0aW9uLXJvdXRlLWxheWVyJ1xuICAgIH0sXG4gICAgZXhwb3J0YWJsZTogdHJ1ZSxcbiAgICBicm93c2FibGU6IGZhbHNlLFxuICAgIHN0eWxlOiBkaXJlY3Rpb25zU3R5bGVcbiAgfSk7XG4gIHRyeUJpbmRTdG9yZUxheWVyKHJvdXRlc0ZlYXR1cmVTdG9yZSwgcm91dGVMYXllcik7XG4gIHJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci52aXNpYmxlID0gdHJ1ZTtcbiAgdHJ5QWRkTG9hZGluZ1N0cmF0ZWd5KHJvdXRlc0ZlYXR1cmVTdG9yZSwgbG9hZGluZ1N0cmF0ZWd5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRTdGVwRmVhdHVyZVN0b3JlKHN0ZXBGZWF0dXJlU3RvcmU6IFN0ZXBGZWF0dXJlU3RvcmUpIHtcbiAgY29uc3QgbG9hZGluZ1N0cmF0ZWd5ID0gbmV3IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSh7XG4gICAgbW90aW9uOiBGZWF0dXJlTW90aW9uLk5vbmVcbiAgfSk7XG5cbiAgY29uc3Qgc3RlcExheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXG4gICAgaWQ6ICdpZ28tZGlyZWN0aW9uLXN0ZXAtbGF5ZXInLFxuICAgIHRpdGxlOiAnJyxcbiAgICB6SW5kZXg6IDkxMCxcbiAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxuICAgIHNob3dJbkxheWVyTGlzdDogZmFsc2UsXG4gICAgd29ya3NwYWNlOiB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICB9LFxuICAgIGxpbmtlZExheWVyczoge1xuICAgICAgbGlua0lkOiAnaWdvLWRpcmVjdGlvbi1yb3V0ZS1sYXllcidcbiAgICB9LFxuICAgIGV4cG9ydGFibGU6IGZhbHNlLFxuICAgIGJyb3dzYWJsZTogZmFsc2UsXG4gICAgc3R5bGU6IGRpcmVjdGlvbnNTdHlsZVxuICB9KTtcbiAgdHJ5QmluZFN0b3JlTGF5ZXIoc3RlcEZlYXR1cmVTdG9yZSwgc3RlcExheWVyKTtcbiAgc3RlcEZlYXR1cmVTdG9yZS5sYXllci52aXNpYmxlID0gdHJ1ZTtcbiAgdHJ5QWRkTG9hZGluZ1N0cmF0ZWd5KHN0ZXBGZWF0dXJlU3RvcmUsIGxvYWRpbmdTdHJhdGVneSk7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFN0b3BUb1N0b3BzRmVhdHVyZVN0b3JlKFxuICBzdG9wOiBTdG9wLFxuICBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlLFxuICBzdG9wc0ZlYXR1cmVTdG9yZTogU3RvcHNGZWF0dXJlU3RvcmUsXG4gIHByb2plY3Rpb246IHN0cmluZyxcbiAgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UpIHtcbiAgbGV0IHN0b3BDb2xvcjtcbiAgbGV0IHN0b3BUZXh0O1xuXG5cbiAgc3dpdGNoIChzdG9wLnJlbGF0aXZlUG9zaXRpb24pIHtcbiAgICBjYXNlIERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlLlN0YXJ0OlxuICAgICAgc3RvcENvbG9yID0gJyMwMDgwMDAnO1xuICAgICAgc3RvcFRleHQgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uc3RhcnQnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUuRW5kOlxuICAgICAgc3RvcENvbG9yID0gJyNmNjQxMzknO1xuICAgICAgc3RvcFRleHQgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZW5kJyk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgc3RvcENvbG9yID0gJyNmZmQ3MDAnO1xuICAgICAgc3RvcFRleHQgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uaW50ZXJtZWRpYXRlJykgKyAnICMnICsgc3RvcC5wb3NpdGlvbjtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgb2xHZW9tLlBvaW50KFxuICAgIG9sUHJvai50cmFuc2Zvcm0oc3RvcC5jb29yZGluYXRlcywgcHJvamVjdGlvbiwgc3RvcHNGZWF0dXJlU3RvcmUubWFwLnByb2plY3Rpb24pXG4gICk7XG5cbiAgY29uc3QgZ2VvanNvbkdlb20gPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChnZW9tZXRyeSwge1xuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBzdG9wc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvbixcbiAgICBkYXRhUHJvamVjdGlvbjogc3RvcHNGZWF0dXJlU3RvcmUubWFwLnByb2plY3Rpb25cbiAgfSkgYXMgRmVhdHVyZUdlb21ldHJ5O1xuXG4gIGNvbnN0IHByZXZpb3VzU3RvcCA9IHN0b3BzRmVhdHVyZVN0b3JlLmdldChzdG9wLmlkKTtcbiAgY29uc3QgcHJldmlvdXNTdG9wUmV2aXNpb24gPSBwcmV2aW91c1N0b3AgPyBwcmV2aW91c1N0b3AubWV0YS5yZXZpc2lvbiA6IDA7XG5cbiAgY29uc3Qgc3RvcEZlYXR1cmVTdG9yZTogRmVhdHVyZVdpdGhTdG9wID0ge1xuICAgIHR5cGU6IEZFQVRVUkUsXG4gICAgZ2VvbWV0cnk6IGdlb2pzb25HZW9tLFxuICAgIHByb2plY3Rpb246IHN0b3BzRmVhdHVyZVN0b3JlLm1hcC5wcm9qZWN0aW9uLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGlkOiBzdG9wLmlkLFxuICAgICAgdHlwZTogRGlyZWN0aW9uVHlwZS5TdG9wLFxuICAgICAgc3RvcFRleHQsXG4gICAgICBzdG9wQ29sb3IsXG4gICAgICBzdG9wT3BhY2l0eTogMSxcbiAgICAgIHN0b3BcbiAgICB9LFxuICAgIG1ldGE6IHtcbiAgICAgIGlkOiBzdG9wLmlkLFxuICAgICAgcmV2aXNpb246IHByZXZpb3VzU3RvcFJldmlzaW9uICsgMVxuICAgIH0sXG4gICAgb2w6IG5ldyBvbEZlYXR1cmUoeyBnZW9tZXRyeSB9KVxuICB9O1xuICBzdG9wc0ZlYXR1cmVTdG9yZS51cGRhdGUoc3RvcEZlYXR1cmVTdG9yZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGREaXJlY3Rpb25Ub1JvdXRlc0ZlYXR1cmVTdG9yZShcbiAgcm91dGVzRmVhdHVyZVN0b3JlOiBSb3V0ZXNGZWF0dXJlU3RvcmUsXG4gIGRpcmVjdGlvbjogRGlyZWN0aW9uLFxuICBwcm9qZWN0aW9uOiBzdHJpbmcsXG4gIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlLFxuICBtb3ZlVG9FeHRlbnQgPSBmYWxzZSkge1xuICBjb25zdCBnZW9tID0gZGlyZWN0aW9uLmdlb21ldHJ5LmNvb3JkaW5hdGVzO1xuICBjb25zdCBnZW9tZXRyeTQzMjYgPSBuZXcgb2xHZW9tLkxpbmVTdHJpbmcoZ2VvbSk7XG4gIGNvbnN0IGdlb21ldHJ5ID0gZ2VvbWV0cnk0MzI2LnRyYW5zZm9ybShcbiAgICBwcm9qZWN0aW9uLFxuICAgIHJvdXRlc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvblxuICApO1xuXG4gIGNvbnN0IGdlb2pzb25HZW9tID0gbmV3IE9sR2VvSlNPTigpLndyaXRlR2VvbWV0cnlPYmplY3QoZ2VvbWV0cnksIHtcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogcm91dGVzRmVhdHVyZVN0b3JlLm1hcC5wcm9qZWN0aW9uLFxuICAgIGRhdGFQcm9qZWN0aW9uOiByb3V0ZXNGZWF0dXJlU3RvcmUubWFwLnByb2plY3Rpb25cbiAgfSkgYXMgRmVhdHVyZUdlb21ldHJ5O1xuXG5cbiAgY29uc3QgcHJldmlvdXNSb3V0ZSA9IHJvdXRlc0ZlYXR1cmVTdG9yZS5nZXQoZGlyZWN0aW9uLmlkKTtcbiAgY29uc3QgcHJldmlvdXNSb3V0ZVJldmlzaW9uID0gcHJldmlvdXNSb3V0ZVxuICAgID8gcHJldmlvdXNSb3V0ZS5tZXRhLnJldmlzaW9uXG4gICAgOiAwO1xuXG4gIGNvbnN0IHJvdXRlRmVhdHVyZVN0b3JlOiBGZWF0dXJlV2l0aERpcmVjdGlvbiA9IHtcbiAgICB0eXBlOiBGRUFUVVJFLFxuICAgIGdlb21ldHJ5OiBnZW9qc29uR2VvbSxcbiAgICBwcm9qZWN0aW9uOiByb3V0ZXNGZWF0dXJlU3RvcmUubWFwLnByb2plY3Rpb24sXG4gICAgcHJvcGVydGllczoge1xuICAgICAgaWQ6IGRpcmVjdGlvbi5pZCxcbiAgICAgIHR5cGU6IERpcmVjdGlvblR5cGUuUm91dGUsXG4gICAgICBhY3RpdmUsXG4gICAgICBkaXJlY3Rpb25cbiAgICB9LFxuICAgIG1ldGE6IHtcbiAgICAgIGlkOiBkaXJlY3Rpb24uaWQsXG4gICAgICByZXZpc2lvbjogcHJldmlvdXNSb3V0ZVJldmlzaW9uICsgMVxuICAgIH0sXG4gICAgb2w6IG5ldyBvbEZlYXR1cmUoeyBnZW9tZXRyeSB9KVxuICB9O1xuICByb3V0ZXNGZWF0dXJlU3RvcmUudXBkYXRlKHJvdXRlRmVhdHVyZVN0b3JlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERpc3RhbmNlKGRpc3RhbmNlOiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAoZGlzdGFuY2UgPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGRpc3RhbmNlID49IDEwMDAwMCkge1xuICAgIHJldHVybiBOdW1iZXJVdGlscy5yb3VuZFRvTkRlY2ltYWwoTWF0aC5yb3VuZChkaXN0YW5jZSkgLyAxMDAwLCAxKSArICcga20nO1xuICB9XG4gIGlmIChkaXN0YW5jZSA+PSAxMDAwMCkge1xuICAgIHJldHVybiBOdW1iZXJVdGlscy5yb3VuZFRvTkRlY2ltYWwoTWF0aC5yb3VuZChkaXN0YW5jZSkgLyAxMDAgLyAxMCwgMSkgKyAnIGttJztcbiAgfVxuICBpZiAoZGlzdGFuY2UgPj0gMTAwMCkge1xuICAgIHJldHVybiBOdW1iZXJVdGlscy5yb3VuZFRvTkRlY2ltYWwoTWF0aC5yb3VuZChkaXN0YW5jZSkgLyAxMDAgLyAxMCwgMSkgKyAnIGttJztcbiAgfVxuICByZXR1cm4gTnVtYmVyVXRpbHMucm91bmRUb05EZWNpbWFsKGRpc3RhbmNlLCAwKSArICcgbSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREdXJhdGlvbihkdXJhdGlvbjogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKGR1cmF0aW9uID49IDM2MDApIHtcbiAgICBjb25zdCBob3VyID0gTWF0aC5mbG9vcihkdXJhdGlvbiAvIDM2MDApO1xuICAgIGNvbnN0IG1pbnV0ZSA9IE1hdGgucm91bmQoKGR1cmF0aW9uIC8gMzYwMCAtIGhvdXIpICogNjApO1xuICAgIGlmIChtaW51dGUgPT09IDYwKSB7XG4gICAgICByZXR1cm4gaG91ciArIDEgKyAnIGgnO1xuICAgIH1cbiAgICByZXR1cm4gaG91ciArICcgaCAnICsgbWludXRlICsgJyBtaW4nO1xuICB9XG5cbiAgaWYgKGR1cmF0aW9uID49IDYwKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoZHVyYXRpb24gLyA2MCkgKyAnIG1pbic7XG4gIH1cbiAgcmV0dXJuIGR1cmF0aW9uICsgJyBzJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEluc3RydWN0aW9uKFxuICB0eXBlLFxuICBtb2RpZmllcixcbiAgcm91dGUsXG4gIGRpcmVjdGlvbixcbiAgc3RlcFBvc2l0aW9uLFxuICBleGl0LFxuICBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgbGFzdFN0ZXAgPSBmYWxzZVxuKSB7XG4gIGNvbnN0IHRyYW5zbGF0ZSA9IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGU7XG4gIGxldCBkaXJlY3RpdmU7XG4gIGxldCBpbWFnZSA9ICdmb3J3YXJkJztcbiAgbGV0IGNzc0NsYXNzID0gJ3JvdGF0ZS0yNzAnO1xuICBjb25zdCB0cmFuc2xhdGVkRGlyZWN0aW9uID0gdHJhbnNsYXRlQmVhcmluZyhkaXJlY3Rpb24sIGxhbmd1YWdlU2VydmljZSk7XG4gIGNvbnN0IHRyYW5zbGF0ZWRNb2RpZmllciA9IHRyYW5zbGF0ZU1vZGlmaWVyKG1vZGlmaWVyLCBsYW5ndWFnZVNlcnZpY2UpO1xuICBjb25zdCBwcmVmaXggPSBtb2RpZmllciA9PT0gJ3N0cmFpZ2h0JyA/ICcnIDogdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5tb2RpZmllci5wcmVmaXgnKTtcblxuICBsZXQgYWdncmVnYXRlZERpcmVjdGlvbiA9IHByZWZpeCArIHRyYW5zbGF0ZWRNb2RpZmllcjtcblxuXG4gIGlmIChtb2RpZmllcj8uc2VhcmNoKCdzbGlnaHQnKSA+PSAwKSB7XG4gICAgYWdncmVnYXRlZERpcmVjdGlvbiA9IHRyYW5zbGF0ZWRNb2RpZmllcjtcbiAgfVxuXG4gIGlmIChtb2RpZmllciA9PT0gJ3V0dXJuJykge1xuICAgIGltYWdlID0gJ2ZvcndhcmQnO1xuICAgIGNzc0NsYXNzID0gJ3JvdGF0ZS05MCc7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzaGFycCByaWdodCcpIHtcbiAgICBpbWFnZSA9ICdzdWJkaXJlY3RvcnktYXJyb3ctcmlnaHQnO1xuICAgIGNzc0NsYXNzID0gJ2ljb24tZmxpcHBlZCc7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdyaWdodCcpIHtcbiAgICBpbWFnZSA9ICdzdWJkaXJlY3RvcnktYXJyb3ctcmlnaHQnO1xuICAgIGNzc0NsYXNzID0gJ2ljb24tZmxpcHBlZCc7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzbGlnaHQgcmlnaHQnKSB7XG4gICAgaW1hZ2UgPSAnZm9yd2FyZCc7XG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTI5MCc7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzdHJhaWdodCcpIHtcbiAgICBpbWFnZSA9ICdmb3J3YXJkJztcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NsaWdodCBsZWZ0Jykge1xuICAgIGltYWdlID0gJ2ZvcndhcmQnO1xuICAgIGNzc0NsYXNzID0gJ3JvdGF0ZS0yNTAnO1xuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnbGVmdCcpIHtcbiAgICBpbWFnZSA9ICdzdWJkaXJlY3RvcnktYXJyb3ctbGVmdCc7XG4gICAgY3NzQ2xhc3MgPSAnaWNvbi1mbGlwcGVkJztcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NoYXJwIGxlZnQnKSB7XG4gICAgaW1hZ2UgPSAnc3ViZGlyZWN0b3J5LWFycm93LWxlZnQnO1xuICAgIGNzc0NsYXNzID0gJ2ljb24tZmxpcHBlZCc7XG4gIH1cblxuICBpZiAodHlwZSA9PT0gJ3R1cm4nKSB7XG4gICAgaWYgKG1vZGlmaWVyID09PSAnc3RyYWlnaHQnKSB7XG4gICAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnR1cm4uc3RyYWlnaHQnLCB7IHJvdXRlIH0pO1xuICAgIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICd1dHVybicpIHtcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMudHVybi51dHVybicsIHsgcm91dGUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMudHVybi5lbHNlJywgeyByb3V0ZSwgYWdncmVnYXRlZERpcmVjdGlvbiwgdHJhbnNsYXRlZE1vZGlmaWVyIH0pO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlID09PSAnbmV3IG5hbWUnKSB7XG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5uZXcgbmFtZScsIHsgcm91dGUsIHRyYW5zbGF0ZWREaXJlY3Rpb24gfSk7XG4gICAgaW1hZ2UgPSAnY29tcGFzcyc7XG4gICAgY3NzQ2xhc3MgPSAnJztcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnZGVwYXJ0Jykge1xuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuZGVwYXJ0JywgeyByb3V0ZSwgdHJhbnNsYXRlZERpcmVjdGlvbiB9KTtcbiAgICBpbWFnZSA9ICdjb21wYXNzJztcbiAgICBjc3NDbGFzcyA9ICcnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJpdmUnKSB7XG4gICAgaWYgKGxhc3RTdGVwKSB7XG4gICAgICBjb25zdCBjb21hID0gIXRyYW5zbGF0ZWRNb2RpZmllciA/ICcnIDogJywgJztcbiAgICAgIGFnZ3JlZ2F0ZWREaXJlY3Rpb24gPSAhdHJhbnNsYXRlZE1vZGlmaWVyID8gJycgOiBhZ2dyZWdhdGVkRGlyZWN0aW9uO1xuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5hcnJpdmUubGFzdFN0ZXAnLCB7IGNvbWEsIGFnZ3JlZ2F0ZWREaXJlY3Rpb24gfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuYXJyaXZlLmludGVybWVkaWF0ZScsIHsgcm91dGUgfSk7XG4gICAgICBpbWFnZSA9ICdtYXAtbWFya2VyJztcbiAgICAgIGNzc0NsYXNzID0gJyc7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdtZXJnZScpIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLm1lcmdlJywgeyByb3V0ZSB9KTtcbiAgICBpbWFnZSA9ICdmb3J3YXJkJztcbiAgICBjc3NDbGFzcyA9ICdyb3RhdGUtMjcwJztcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnb24gcmFtcCcpIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLm9uIHJhbXAnLCB7IGFnZ3JlZ2F0ZWREaXJlY3Rpb24gfSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29mZiByYW1wJykge1xuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMub2ZmIHJhbXAnLCB7IGFnZ3JlZ2F0ZWREaXJlY3Rpb24gfSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ZvcmsnKSB7XG4gICAgaWYgKG1vZGlmaWVyLnNlYXJjaCgnbGVmdCcpID49IDApIHtcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuZm9yay5sZWZ0JywgeyByb3V0ZSB9KTtcbiAgICB9IGVsc2UgaWYgKG1vZGlmaWVyLnNlYXJjaCgncmlnaHQnKSA+PSAwKSB7XG4gICAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmZvcmsucmlnaHQnLCB7IHJvdXRlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmZvcmsuZWxzZScsIHsgcm91dGUgfSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdlbmQgb2Ygcm9hZCcpIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmVuZCBvZiByb2FkJywgeyB0cmFuc2xhdGVkTW9kaWZpZXIsIHJvdXRlIH0pO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICd1c2UgbGFuZScpIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnVzZSBsYW5lJyk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2NvbnRpbnVlJyAmJiBtb2RpZmllciAhPT0gJ3V0dXJuJykge1xuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuY29udGludWUubm90VXR1cm4nLCB7IHJvdXRlIH0pO1xuICAgIGltYWdlID0gJ2ZvcndhcmQnO1xuICAgIGNzc0NsYXNzID0gJ3JvdGF0ZS0yNzAnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyb3VuZGFib3V0Jykge1xuICAgIGNvbnN0IGNudFN1ZmZpeCA9IGV4aXQgPT09IDEgP1xuICAgICAgdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5jbnRTdWZmaXguZmlyc3QnKSA6XG4gICAgICB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmNudFN1ZmZpeC5zZWNvbmRBbmRNb3JlJyk7XG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5yb3VuZGFib3V0JywgeyBleGl0LCBjbnRTdWZmaXgsIHJvdXRlIH0pO1xuICAgIGltYWdlID0gJ2NoYXJ0LWRvbnV0JztcbiAgICBjc3NDbGFzcyA9ICcnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyb3RhcnknKSB7XG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5yb3RhcnknKTtcbiAgICBpbWFnZSA9ICdjaGFydC1kb251dCc7XG4gICAgY3NzQ2xhc3MgPSAnJztcbiAgfSBlbHNlIGlmICh0eXBlID09PSAncm91bmRhYm91dCB0dXJuJykge1xuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMucm91bmRhYm91dCB0dXJuJyk7XG4gICAgaW1hZ2UgPSAnY2hhcnQtZG9udXQnO1xuICAgIGNzc0NsYXNzID0gJyc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2V4aXQgcm91bmRhYm91dCcpIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmV4aXQgcm91bmRhYm91dCcsIHsgcm91dGUgfSk7XG4gICAgaW1hZ2UgPSAnZm9yd2FyZCc7XG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTI3MCc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ25vdGlmaWNhdGlvbicpIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLm5vdGlmaWNhdGlvbicpO1xuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAndXR1cm4nKSB7XG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy51dHVyblRleHQnLCB7IHRyYW5zbGF0ZWREaXJlY3Rpb24sIHJvdXRlIH0pO1xuICB9IGVsc2Uge1xuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMudW5rbm93bicpO1xuICB9XG5cbiAgaW1hZ2UgPSBsYXN0U3RlcCA/ICdmbGFnLXZhcmlhbnQnIDogaW1hZ2U7XG4gIGNzc0NsYXNzID0gbGFzdFN0ZXAgPyAnJyA6IGNzc0NsYXNzO1xuICBpbWFnZSA9IHN0ZXBQb3NpdGlvbiA9PT0gMCA/ICdjb21wYXNzJyA6IGltYWdlO1xuICBjc3NDbGFzcyA9IHN0ZXBQb3NpdGlvbiA9PT0gMCA/ICcnIDogY3NzQ2xhc3M7XG5cbiAgcmV0dXJuIHsgaW5zdHJ1Y3Rpb246IGRpcmVjdGl2ZSwgaW1hZ2UsIGNzc0NsYXNzIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVNb2RpZmllcihtb2RpZmllciwgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UpIHtcbiAgY29uc3QgdHJhbnNsYXRlID0gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZTtcbiAgaWYgKG1vZGlmaWVyID09PSAndXR1cm4nKSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMudXR1cm4nKTtcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NoYXJwIHJpZ2h0Jykge1xuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnNoYXJwIHJpZ2h0Jyk7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdyaWdodCcpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5yaWdodCcpO1xuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2xpZ2h0IHJpZ2h0Jykge1xuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnNsaWdodCByaWdodCcpO1xuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2hhcnAgbGVmdCcpIHtcbiAgICByZXR1cm4gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuc2hhcnAgbGVmdCcpO1xuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnbGVmdCcpIHtcbiAgICByZXR1cm4gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMubGVmdCcpO1xuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2xpZ2h0IGxlZnQnKSB7XG4gICAgcmV0dXJuIGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnNsaWdodCBsZWZ0Jyk7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzdHJhaWdodCcpIHtcbiAgICByZXR1cm4gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuc3RyYWlnaHQnKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbW9kaWZpZXI7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZUJlYXJpbmcoYmVhcmluZzogbnVtYmVyLCBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge1xuICBjb25zdCB0cmFuc2xhdGUgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xuICBpZiAoYmVhcmluZyA+PSAzMzcgfHwgYmVhcmluZyA8IDIzKSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLm4nKTtcbiAgfSBlbHNlIGlmIChiZWFyaW5nIDwgNjcpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uY2FyZGluYWxQb2ludHMubmUnKTtcbiAgfSBlbHNlIGlmIChiZWFyaW5nIDwgMTEzKSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLmUnKTtcbiAgfSBlbHNlIGlmIChiZWFyaW5nIDwgMTU3KSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLnNlJyk7XG4gIH0gZWxzZSBpZiAoYmVhcmluZyA8IDIwMykge1xuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXJkaW5hbFBvaW50cy5zJyk7XG4gIH0gZWxzZSBpZiAoYmVhcmluZyA8IDI0Nykge1xuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXJkaW5hbFBvaW50cy5zdycpO1xuICB9IGVsc2UgaWYgKGJlYXJpbmcgPCAyOTMpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uY2FyZGluYWxQb2ludHMudycpO1xuICB9IGVsc2UgaWYgKGJlYXJpbmcgPCAzMzcpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uY2FyZGluYWxQb2ludHMubncnKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm47XG4gIH1cbn1cblxuXG4iXX0=
509
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBRXBDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRjs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFzQixFQUFFLFlBQTRCLEtBQUssRUFBRSxLQUFLLEdBQUcsVUFBVTtJQUM5RyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuQixTQUFT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Q0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQ3REO1NBQU0sSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ3hCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQ3ZEO1NBQU07UUFDTCxPQUFPO0tBQ1I7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcclxuaW1wb3J0ICogYXMgb2xTdHlsZSBmcm9tICdvbC9zdHlsZSc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCAqIGFzIG9sR2VvbSBmcm9tICdvbC9nZW9tJztcclxuaW1wb3J0IE9sR2VvSlNPTiBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTic7XHJcbmltcG9ydCAqIGFzIG9sUHJvaiBmcm9tICdvbC9wcm9qJztcclxuXHJcbmltcG9ydCB7IHV1aWQsIE51bWJlclV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgRGlyZWN0aW9uLCBGZWF0dXJlV2l0aERpcmVjdGlvbiwgRmVhdHVyZVdpdGhTdG9wLCBTdG9wIH0gZnJvbSAnLi9kaXJlY3Rpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IGNyZWF0ZU92ZXJsYXlNYXJrZXJTdHlsZSB9IGZyb20gJy4uLy4uL292ZXJsYXkvc2hhcmVkL292ZXJsYXktbWFya2VyLXN0eWxlLnV0aWxzJztcclxuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllcic7XHJcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgdHJ5QmluZFN0b3JlTGF5ZXIgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLnV0aWxzJztcclxuaW1wb3J0IHsgdHJ5QWRkTG9hZGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy51dGlscyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvbG9hZGluZyc7XHJcbmltcG9ydCB7IEZFQVRVUkUsIEZlYXR1cmVNb3Rpb24gfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmVudW1zJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVHZW9tZXRyeSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlLCBEaXJlY3Rpb25UeXBlIH0gZnJvbSAnLi9kaXJlY3Rpb25zLmVudW0nO1xyXG5pbXBvcnQgeyBSb3V0ZXNGZWF0dXJlU3RvcmUsIFN0ZXBGZWF0dXJlU3RvcmUsIFN0b3BzRmVhdHVyZVN0b3JlLCBTdG9wc1N0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XHJcblxyXG4vKipcclxuICogRnVuY3Rpb24gdGhhdCB1cGRhdCB0aGUgc29ydCBvZiB0aGUgbGlzdCBiYXNlIG9uIHRoZSBwcm92aWRlZCBmaWVsZC5cclxuICogQHBhcmFtIHNvdXJjZSBzdG9wIHN0b3JlXHJcbiAqIEBwYXJhbSBkaXJlY3Rpb24gYXNjIC8gZGVzYyBzb3J0IG9yZGVyXHJcbiAqIEBwYXJhbSBmaWVsZCB0aGUgZmllbGQgdG8gdXNlIHRvIHNvcnQgdGhlIHZpZXdcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVTdG9yZVNvcnRpbmcoc3RvcHNTdG9yZTogU3RvcHNTdG9yZSwgZGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyA9ICdhc2MnLCBmaWVsZCA9ICdwb3NpdGlvbicpIHtcclxuICBzdG9wc1N0b3JlLnZpZXcuc29ydCh7XHJcbiAgICBkaXJlY3Rpb24sXHJcbiAgICB2YWx1ZUFjY2Vzc29yOiAoZW50aXR5OiBTdG9wKSA9PiBlbnRpdHlbZmllbGRdXHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbihpbmRleDogbnVtYmVyLCB0b3RhbExlbmd0aCk6IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlIHtcclxuICBsZXQgcmVsYXRpdmVQb3NpdGlvbiA9IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlLkludGVybWVkaWF0ZTtcclxuICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgIHJlbGF0aXZlUG9zaXRpb24gPSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5TdGFydDtcclxuICB9IGVsc2UgaWYgKGluZGV4ID09PSB0b3RhbExlbmd0aCAtIDEpIHtcclxuICAgIHJlbGF0aXZlUG9zaXRpb24gPSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5FbmQ7XHJcbiAgfVxyXG4gIHJldHVybiByZWxhdGl2ZVBvc2l0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZVN0b3BzUG9zaXRpb24oc3RvcHNTdG9yZTogU3RvcHNTdG9yZSkge1xyXG5cclxuICBjb25zdCBzdG9wc1RvQ29tcHV0ZVBvc2l0aW9uID0gWy4uLnN0b3BzU3RvcmUuYWxsKCldO1xyXG4gIHN0b3BzVG9Db21wdXRlUG9zaXRpb24uc29ydCgoYSwgYikgPT4gYS5wb3NpdGlvbiAtIGIucG9zaXRpb24pO1xyXG4gIHN0b3BzVG9Db21wdXRlUG9zaXRpb24ubWFwKChzdG9wLCBpKSA9PiB7XHJcbiAgICBzdG9wLnBvc2l0aW9uID0gaTtcclxuICAgIHN0b3AucmVsYXRpdmVQb3NpdGlvbiA9IGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKHN0b3AucG9zaXRpb24sIHN0b3BzVG9Db21wdXRlUG9zaXRpb24ubGVuZ3RoKTtcclxuICB9KTtcclxuICBpZiAoc3RvcHNUb0NvbXB1dGVQb3NpdGlvbikge1xyXG4gICAgc3RvcHNTdG9yZS51cGRhdGVNYW55KHN0b3BzVG9Db21wdXRlUG9zaXRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRoYXQgYWRkIGEgc3RvcCB0byB0aGUgc3RvcCBzdG9yZS4gU3RvcCBhcmUgYWx3YXlzIGFkZGVkIGJlZm9yZSB0aGUgbGFzdCBzdG9wLlxyXG4gKiBAcGFyYW0gc3RvcHNTdG9yZSBzdG9wIHN0b3JlIGFzIGFuIEVudGl0eVN0b3JlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkU3RvcFRvU3RvcmUoc3RvcHNTdG9yZTogU3RvcHNTdG9yZSk6IFN0b3Age1xyXG5cclxuICBjb25zdCBpZCA9IHV1aWQoKTtcclxuICBjb25zdCBzdG9wcyA9IHN0b3BzU3RvcmUuYWxsKCk7XHJcbiAgbGV0IHBvc2l0aW9uczogbnVtYmVyW107XHJcbiAgaWYgKHN0b3BzU3RvcmUuY291bnQgPT09IDApIHtcclxuICAgIHBvc2l0aW9ucyA9IFswXTtcclxuICB9IGVsc2Uge1xyXG4gICAgcG9zaXRpb25zID0gc3RvcHMubWFwKHN0b3AgPT4gc3RvcC5wb3NpdGlvbik7XHJcbiAgfVxyXG4gIGNvbnN0IG1heFBvc2l0aW9uOiBudW1iZXIgPSBNYXRoLm1heCguLi5wb3NpdGlvbnMpO1xyXG4gIGNvbnN0IGluc2VydFBvc2l0aW9uOiBudW1iZXIgPSBtYXhQb3NpdGlvbjtcclxuICBjb25zdCBsYXN0UG9zaXRpb246IG51bWJlciA9IG1heFBvc2l0aW9uICsgMTtcclxuXHJcbiAgY29uc3Qgc3RvcFRvVXBkYXRlID0gc3RvcHNTdG9yZS5hbGwoKS5maW5kKHN0b3AgPT4gc3RvcC5wb3NpdGlvbiA9PT0gbWF4UG9zaXRpb24pO1xyXG4gIGlmIChzdG9wVG9VcGRhdGUpIHtcclxuICAgIHN0b3BUb1VwZGF0ZS5wb3NpdGlvbiA9IGxhc3RQb3NpdGlvbjtcclxuICAgIHN0b3BUb1VwZGF0ZS5yZWxhdGl2ZVBvc2l0aW9uID0gY29tcHV0ZVJlbGF0aXZlUG9zaXRpb24obGFzdFBvc2l0aW9uLCBzdG9wc1N0b3JlLmNvdW50ICsgMSk7XHJcbiAgfVxyXG5cclxuICBzdG9wc1N0b3JlLmluc2VydCh7IGlkLCBwb3NpdGlvbjogaW5zZXJ0UG9zaXRpb24sIHJlbGF0aXZlUG9zaXRpb246IGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKGluc2VydFBvc2l0aW9uLCBzdG9wc1N0b3JlLmNvdW50ICsgMSkgfSk7XHJcblxyXG4gIHVwZGF0ZVN0b3JlU29ydGluZyhzdG9wc1N0b3JlKTtcclxuICByZXR1cm4gc3RvcHNTdG9yZS5nZXQoaWQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlU3RvcEZyb21TdG9yZShzdG9wc1N0b3JlOiBTdG9wc1N0b3JlLCBzdG9wOiBTdG9wKSB7XHJcbiAgc3RvcHNTdG9yZS5kZWxldGUoc3RvcCk7XHJcbiAgY29tcHV0ZVN0b3BzUG9zaXRpb24oc3RvcHNTdG9yZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGUgYSBzdHlsZSBmb3IgdGhlIGRpcmVjdGlvbnMgc3RvcHMgYW5kIHJvdXRlc1xyXG4gKiBAcGFyYW0gZmVhdHVyZSBPbEZlYXR1cmVcclxuICogQHJldHVybnMgT0wgc3R5bGUgZnVuY3Rpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkaXJlY3Rpb25zU3R5bGUoXHJcbiAgZmVhdHVyZTogb2xGZWF0dXJlPE9sR2VvbWV0cnk+LFxyXG4gIHJlc29sdXRpb246IG51bWJlclxyXG4pOiBvbFN0eWxlLlN0eWxlIHwgb2xTdHlsZS5TdHlsZVtdIHtcclxuICBjb25zdCB2ZXJ0ZXhTdHlsZSA9IFtcclxuICAgIG5ldyBvbFN0eWxlLlN0eWxlKHtcclxuICAgICAgZ2VvbWV0cnk6IGZlYXR1cmUuZ2V0R2VvbWV0cnkoKSxcclxuICAgICAgaW1hZ2U6IG5ldyBvbFN0eWxlLkNpcmNsZSh7XHJcbiAgICAgICAgcmFkaXVzOiA3LFxyXG4gICAgICAgIHN0cm9rZTogbmV3IG9sU3R5bGUuU3Ryb2tlKHsgY29sb3I6ICcjRkYwMDAwJywgd2lkdGg6IDMgfSlcclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgXTtcclxuXHJcbiAgY29uc3Qgc3RvcFN0eWxlID0gY3JlYXRlT3ZlcmxheU1hcmtlclN0eWxlKHtcclxuICAgIHRleHQ6IGZlYXR1cmUuZ2V0KCdzdG9wVGV4dCcpLFxyXG4gICAgb3BhY2l0eTogZmVhdHVyZS5nZXQoJ3N0b3BPcGFjaXR5JyksXHJcbiAgICBtYXJrZXJDb2xvcjogZmVhdHVyZS5nZXQoJ3N0b3BDb2xvcicpLFxyXG4gICAgbWFya2VyT3V0bGluZUNvbG9yOiBbMjU1LCAyNTUsIDI1NV1cclxuICB9KTtcclxuXHJcbiAgY29uc3Qgcm91dGVTdHlsZSA9IFtcclxuICAgIG5ldyBvbFN0eWxlLlN0eWxlKHtcclxuICAgICAgc3Ryb2tlOiBuZXcgb2xTdHlsZS5TdHJva2UoeyBjb2xvcjogYHJnYmEoMTA2LCAxMjEsIDEzMCwgJHtmZWF0dXJlLmdldCgnYWN0aXZlJykgPyAwLjc1IDogMH0pYCwgd2lkdGg6IDEwIH0pXHJcbiAgICB9KSxcclxuICAgIG5ldyBvbFN0eWxlLlN0eWxlKHtcclxuICAgICAgc3Ryb2tlOiBuZXcgb2xTdHlsZS5TdHJva2UoeyBjb2xvcjogYHJnYmEoNzksIDE2OSwgMjIxLCAke2ZlYXR1cmUuZ2V0KCdhY3RpdmUnKSA/IDAuNzUgOiAwfSlgLCB3aWR0aDogNiB9KVxyXG4gICAgfSlcclxuICBdO1xyXG5cclxuICBpZiAoZmVhdHVyZS5nZXQoJ3R5cGUnKSA9PT0gRGlyZWN0aW9uVHlwZS5TdG9wKSB7XHJcbiAgICByZXR1cm4gc3RvcFN0eWxlO1xyXG4gIH1cclxuICBpZiAoZmVhdHVyZS5nZXQoJ3R5cGUnKSA9PT0gJ3ZlcnRleCcpIHtcclxuICAgIHJldHVybiB2ZXJ0ZXhTdHlsZTtcclxuICB9XHJcbiAgaWYgKGZlYXR1cmUuZ2V0KCd0eXBlJykgPT09IERpcmVjdGlvblR5cGUuUm91dGUpIHtcclxuICAgIHJldHVybiByb3V0ZVN0eWxlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGluaXRTdG9wc0ZlYXR1cmVTdG9yZShzdG9wc0ZlYXR1cmVTdG9yZTogU3RvcHNGZWF0dXJlU3RvcmUsIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlKSB7XHJcbiAgY29uc3QgbG9hZGluZ1N0cmF0ZWd5ID0gbmV3IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSh7XHJcbiAgICBtb3Rpb246IEZlYXR1cmVNb3Rpb24uTm9uZVxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBzdG9wc0xheWVyID0gbmV3IFZlY3RvckxheWVyKHtcclxuICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcclxuICAgIGlkOiAnaWdvLWRpcmVjdGlvbi1zdG9wcy1sYXllcicsXHJcbiAgICB0aXRsZTogbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnN0b3BMYXllcicpLFxyXG4gICAgekluZGV4OiA5MTEsXHJcbiAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxyXG4gICAgc2hvd0luTGF5ZXJMaXN0OiB0cnVlLFxyXG4gICAgd29ya3NwYWNlOiB7XHJcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIGxpbmtlZExheWVyczoge1xyXG4gICAgICBsaW5rSWQ6ICdpZ28tZGlyZWN0aW9uLXN0b3BzLWxheWVyJyxcclxuICAgICAgbGlua3M6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBzeW5jZWREZWxldGU6IHRydWUsXHJcbiAgICAgICAgICBsaW5rZWRJZHM6IFsnaWdvLWRpcmVjdGlvbi1yb3V0ZS1sYXllciddLFxyXG4gICAgICAgICAgcHJvcGVydGllczogW11cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICBleHBvcnRhYmxlOiB0cnVlLFxyXG4gICAgYnJvd3NhYmxlOiBmYWxzZSxcclxuICAgIHN0eWxlOiBkaXJlY3Rpb25zU3R5bGVcclxuICB9KTtcclxuICB0cnlCaW5kU3RvcmVMYXllcihzdG9wc0ZlYXR1cmVTdG9yZSwgc3RvcHNMYXllcik7XHJcbiAgc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgdHJ5QWRkTG9hZGluZ1N0cmF0ZWd5KHN0b3BzRmVhdHVyZVN0b3JlLCBsb2FkaW5nU3RyYXRlZ3kpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5pdFJvdXRlc0ZlYXR1cmVTdG9yZShyb3V0ZXNGZWF0dXJlU3RvcmU6IFJvdXRlc0ZlYXR1cmVTdG9yZSwgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UpIHtcclxuICBjb25zdCBsb2FkaW5nU3RyYXRlZ3kgPSBuZXcgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KHtcclxuICAgIG1vdGlvbjogRmVhdHVyZU1vdGlvbi5Ob25lXHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0IHJvdXRlTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxyXG4gICAgaWQ6ICdpZ28tZGlyZWN0aW9uLXJvdXRlLWxheWVyJyxcclxuICAgIHRpdGxlOiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ucm91dGVMYXllcicpLFxyXG4gICAgekluZGV4OiA5MTAsXHJcbiAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxyXG4gICAgc2hvd0luTGF5ZXJMaXN0OiB0cnVlLFxyXG4gICAgd29ya3NwYWNlOiB7XHJcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIGxpbmtlZExheWVyczoge1xyXG4gICAgICBsaW5rSWQ6ICdpZ28tZGlyZWN0aW9uLXJvdXRlLWxheWVyJ1xyXG4gICAgfSxcclxuICAgIGV4cG9ydGFibGU6IHRydWUsXHJcbiAgICBicm93c2FibGU6IGZhbHNlLFxyXG4gICAgc3R5bGU6IGRpcmVjdGlvbnNTdHlsZVxyXG4gIH0pO1xyXG4gIHRyeUJpbmRTdG9yZUxheWVyKHJvdXRlc0ZlYXR1cmVTdG9yZSwgcm91dGVMYXllcik7XHJcbiAgcm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLnZpc2libGUgPSB0cnVlO1xyXG4gIHRyeUFkZExvYWRpbmdTdHJhdGVneShyb3V0ZXNGZWF0dXJlU3RvcmUsIGxvYWRpbmdTdHJhdGVneSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbml0U3RlcEZlYXR1cmVTdG9yZShzdGVwRmVhdHVyZVN0b3JlOiBTdGVwRmVhdHVyZVN0b3JlKSB7XHJcbiAgY29uc3QgbG9hZGluZ1N0cmF0ZWd5ID0gbmV3IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSh7XHJcbiAgICBtb3Rpb246IEZlYXR1cmVNb3Rpb24uTm9uZVxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBzdGVwTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxyXG4gICAgaWQ6ICdpZ28tZGlyZWN0aW9uLXN0ZXAtbGF5ZXInLFxyXG4gICAgdGl0bGU6ICcnLFxyXG4gICAgekluZGV4OiA5MTAsXHJcbiAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxyXG4gICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcclxuICAgIHdvcmtzcGFjZToge1xyXG4gICAgICBlbmFibGVkOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICBsaW5rZWRMYXllcnM6IHtcclxuICAgICAgbGlua0lkOiAnaWdvLWRpcmVjdGlvbi1yb3V0ZS1sYXllcidcclxuICAgIH0sXHJcbiAgICBleHBvcnRhYmxlOiBmYWxzZSxcclxuICAgIGJyb3dzYWJsZTogZmFsc2UsXHJcbiAgICBzdHlsZTogZGlyZWN0aW9uc1N0eWxlXHJcbiAgfSk7XHJcbiAgdHJ5QmluZFN0b3JlTGF5ZXIoc3RlcEZlYXR1cmVTdG9yZSwgc3RlcExheWVyKTtcclxuICBzdGVwRmVhdHVyZVN0b3JlLmxheWVyLnZpc2libGUgPSB0cnVlO1xyXG4gIHRyeUFkZExvYWRpbmdTdHJhdGVneShzdGVwRmVhdHVyZVN0b3JlLCBsb2FkaW5nU3RyYXRlZ3kpO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFN0b3BUb1N0b3BzRmVhdHVyZVN0b3JlKFxyXG4gIHN0b3A6IFN0b3AsXHJcbiAgc3RvcHNTdG9yZTogU3RvcHNTdG9yZSxcclxuICBzdG9wc0ZlYXR1cmVTdG9yZTogU3RvcHNGZWF0dXJlU3RvcmUsXHJcbiAgcHJvamVjdGlvbjogc3RyaW5nLFxyXG4gIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlKSB7XHJcbiAgbGV0IHN0b3BDb2xvcjtcclxuICBsZXQgc3RvcFRleHQ7XHJcblxyXG5cclxuICBzd2l0Y2ggKHN0b3AucmVsYXRpdmVQb3NpdGlvbikge1xyXG4gICAgY2FzZSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5TdGFydDpcclxuICAgICAgc3RvcENvbG9yID0gJyMwMDgwMDAnO1xyXG4gICAgICBzdG9wVGV4dCA9IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5zdGFydCcpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUuRW5kOlxyXG4gICAgICBzdG9wQ29sb3IgPSAnI2Y2NDEzOSc7XHJcbiAgICAgIHN0b3BUZXh0ID0gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmVuZCcpO1xyXG4gICAgICBicmVhaztcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHN0b3BDb2xvciA9ICcjZmZkNzAwJztcclxuICAgICAgc3RvcFRleHQgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uaW50ZXJtZWRpYXRlJykgKyAnICMnICsgc3RvcC5wb3NpdGlvbjtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG5cclxuICBjb25zdCBnZW9tZXRyeSA9IG5ldyBvbEdlb20uUG9pbnQoXHJcbiAgICBvbFByb2oudHJhbnNmb3JtKHN0b3AuY29vcmRpbmF0ZXMsIHByb2plY3Rpb24sIHN0b3BzRmVhdHVyZVN0b3JlLm1hcC5wcm9qZWN0aW9uKVxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGdlb2pzb25HZW9tID0gbmV3IE9sR2VvSlNPTigpLndyaXRlR2VvbWV0cnlPYmplY3QoZ2VvbWV0cnksIHtcclxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBzdG9wc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvbixcclxuICAgIGRhdGFQcm9qZWN0aW9uOiBzdG9wc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvblxyXG4gIH0pIGFzIEZlYXR1cmVHZW9tZXRyeTtcclxuXHJcbiAgY29uc3QgcHJldmlvdXNTdG9wID0gc3RvcHNGZWF0dXJlU3RvcmUuZ2V0KHN0b3AuaWQpO1xyXG4gIGNvbnN0IHByZXZpb3VzU3RvcFJldmlzaW9uID0gcHJldmlvdXNTdG9wID8gcHJldmlvdXNTdG9wLm1ldGEucmV2aXNpb24gOiAwO1xyXG5cclxuICBjb25zdCBzdG9wRmVhdHVyZVN0b3JlOiBGZWF0dXJlV2l0aFN0b3AgPSB7XHJcbiAgICB0eXBlOiBGRUFUVVJFLFxyXG4gICAgZ2VvbWV0cnk6IGdlb2pzb25HZW9tLFxyXG4gICAgcHJvamVjdGlvbjogc3RvcHNGZWF0dXJlU3RvcmUubWFwLnByb2plY3Rpb24sXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgIGlkOiBzdG9wLmlkLFxyXG4gICAgICB0eXBlOiBEaXJlY3Rpb25UeXBlLlN0b3AsXHJcbiAgICAgIHN0b3BUZXh0LFxyXG4gICAgICBzdG9wQ29sb3IsXHJcbiAgICAgIHN0b3BPcGFjaXR5OiAxLFxyXG4gICAgICBzdG9wXHJcbiAgICB9LFxyXG4gICAgbWV0YToge1xyXG4gICAgICBpZDogc3RvcC5pZCxcclxuICAgICAgcmV2aXNpb246IHByZXZpb3VzU3RvcFJldmlzaW9uICsgMVxyXG4gICAgfSxcclxuICAgIG9sOiBuZXcgb2xGZWF0dXJlKHsgZ2VvbWV0cnkgfSlcclxuICB9O1xyXG4gIHN0b3BzRmVhdHVyZVN0b3JlLnVwZGF0ZShzdG9wRmVhdHVyZVN0b3JlKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZERpcmVjdGlvblRvUm91dGVzRmVhdHVyZVN0b3JlKFxyXG4gIHJvdXRlc0ZlYXR1cmVTdG9yZTogUm91dGVzRmVhdHVyZVN0b3JlLFxyXG4gIGRpcmVjdGlvbjogRGlyZWN0aW9uLFxyXG4gIHByb2plY3Rpb246IHN0cmluZyxcclxuICBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZSxcclxuICBtb3ZlVG9FeHRlbnQgPSBmYWxzZSkge1xyXG4gIGNvbnN0IGdlb20gPSBkaXJlY3Rpb24uZ2VvbWV0cnkuY29vcmRpbmF0ZXM7XHJcbiAgY29uc3QgZ2VvbWV0cnk0MzI2ID0gbmV3IG9sR2VvbS5MaW5lU3RyaW5nKGdlb20pO1xyXG4gIGNvbnN0IGdlb21ldHJ5ID0gZ2VvbWV0cnk0MzI2LnRyYW5zZm9ybShcclxuICAgIHByb2plY3Rpb24sXHJcbiAgICByb3V0ZXNGZWF0dXJlU3RvcmUubWFwLnByb2plY3Rpb25cclxuICApO1xyXG5cclxuICBjb25zdCBnZW9qc29uR2VvbSA9IG5ldyBPbEdlb0pTT04oKS53cml0ZUdlb21ldHJ5T2JqZWN0KGdlb21ldHJ5LCB7XHJcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogcm91dGVzRmVhdHVyZVN0b3JlLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgZGF0YVByb2plY3Rpb246IHJvdXRlc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvblxyXG4gIH0pIGFzIEZlYXR1cmVHZW9tZXRyeTtcclxuXHJcblxyXG4gIGNvbnN0IHByZXZpb3VzUm91dGUgPSByb3V0ZXNGZWF0dXJlU3RvcmUuZ2V0KGRpcmVjdGlvbi5pZCk7XHJcbiAgY29uc3QgcHJldmlvdXNSb3V0ZVJldmlzaW9uID0gcHJldmlvdXNSb3V0ZVxyXG4gICAgPyBwcmV2aW91c1JvdXRlLm1ldGEucmV2aXNpb25cclxuICAgIDogMDtcclxuXHJcbiAgY29uc3Qgcm91dGVGZWF0dXJlU3RvcmU6IEZlYXR1cmVXaXRoRGlyZWN0aW9uID0ge1xyXG4gICAgdHlwZTogRkVBVFVSRSxcclxuICAgIGdlb21ldHJ5OiBnZW9qc29uR2VvbSxcclxuICAgIHByb2plY3Rpb246IHJvdXRlc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvbixcclxuICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgaWQ6IGRpcmVjdGlvbi5pZCxcclxuICAgICAgdHlwZTogRGlyZWN0aW9uVHlwZS5Sb3V0ZSxcclxuICAgICAgYWN0aXZlLFxyXG4gICAgICBkaXJlY3Rpb25cclxuICAgIH0sXHJcbiAgICBtZXRhOiB7XHJcbiAgICAgIGlkOiBkaXJlY3Rpb24uaWQsXHJcbiAgICAgIHJldmlzaW9uOiBwcmV2aW91c1JvdXRlUmV2aXNpb24gKyAxXHJcbiAgICB9LFxyXG4gICAgb2w6IG5ldyBvbEZlYXR1cmUoeyBnZW9tZXRyeSB9KVxyXG4gIH07XHJcbiAgcm91dGVzRmVhdHVyZVN0b3JlLnVwZGF0ZShyb3V0ZUZlYXR1cmVTdG9yZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREaXN0YW5jZShkaXN0YW5jZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICBpZiAoZGlzdGFuY2UgPT09IDApIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgaWYgKGRpc3RhbmNlID49IDEwMDAwMCkge1xyXG4gICAgcmV0dXJuIE51bWJlclV0aWxzLnJvdW5kVG9ORGVjaW1hbChNYXRoLnJvdW5kKGRpc3RhbmNlKSAvIDEwMDAsIDEpICsgJyBrbSc7XHJcbiAgfVxyXG4gIGlmIChkaXN0YW5jZSA+PSAxMDAwMCkge1xyXG4gICAgcmV0dXJuIE51bWJlclV0aWxzLnJvdW5kVG9ORGVjaW1hbChNYXRoLnJvdW5kKGRpc3RhbmNlKSAvIDEwMCAvIDEwLCAxKSArICcga20nO1xyXG4gIH1cclxuICBpZiAoZGlzdGFuY2UgPj0gMTAwMCkge1xyXG4gICAgcmV0dXJuIE51bWJlclV0aWxzLnJvdW5kVG9ORGVjaW1hbChNYXRoLnJvdW5kKGRpc3RhbmNlKSAvIDEwMCAvIDEwLCAxKSArICcga20nO1xyXG4gIH1cclxuICByZXR1cm4gTnVtYmVyVXRpbHMucm91bmRUb05EZWNpbWFsKGRpc3RhbmNlLCAwKSArICcgbSc7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREdXJhdGlvbihkdXJhdGlvbjogbnVtYmVyKTogc3RyaW5nIHtcclxuICBpZiAoZHVyYXRpb24gPj0gMzYwMCkge1xyXG4gICAgY29uc3QgaG91ciA9IE1hdGguZmxvb3IoZHVyYXRpb24gLyAzNjAwKTtcclxuICAgIGNvbnN0IG1pbnV0ZSA9IE1hdGgucm91bmQoKGR1cmF0aW9uIC8gMzYwMCAtIGhvdXIpICogNjApO1xyXG4gICAgaWYgKG1pbnV0ZSA9PT0gNjApIHtcclxuICAgICAgcmV0dXJuIGhvdXIgKyAxICsgJyBoJztcclxuICAgIH1cclxuICAgIHJldHVybiBob3VyICsgJyBoICcgKyBtaW51dGUgKyAnIG1pbic7XHJcbiAgfVxyXG5cclxuICBpZiAoZHVyYXRpb24gPj0gNjApIHtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKGR1cmF0aW9uIC8gNjApICsgJyBtaW4nO1xyXG4gIH1cclxuICByZXR1cm4gZHVyYXRpb24gKyAnIHMnO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SW5zdHJ1Y3Rpb24oXHJcbiAgdHlwZSxcclxuICBtb2RpZmllcixcclxuICByb3V0ZSxcclxuICBkaXJlY3Rpb24sXHJcbiAgc3RlcFBvc2l0aW9uLFxyXG4gIGV4aXQsXHJcbiAgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgbGFzdFN0ZXAgPSBmYWxzZVxyXG4pIHtcclxuICBjb25zdCB0cmFuc2xhdGUgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xyXG4gIGxldCBkaXJlY3RpdmU7XHJcbiAgbGV0IGltYWdlID0gJ2ZvcndhcmQnO1xyXG4gIGxldCBjc3NDbGFzcyA9ICdyb3RhdGUtMjcwJztcclxuICBjb25zdCB0cmFuc2xhdGVkRGlyZWN0aW9uID0gdHJhbnNsYXRlQmVhcmluZyhkaXJlY3Rpb24sIGxhbmd1YWdlU2VydmljZSk7XHJcbiAgY29uc3QgdHJhbnNsYXRlZE1vZGlmaWVyID0gdHJhbnNsYXRlTW9kaWZpZXIobW9kaWZpZXIsIGxhbmd1YWdlU2VydmljZSk7XHJcbiAgY29uc3QgcHJlZml4ID0gbW9kaWZpZXIgPT09ICdzdHJhaWdodCcgPyAnJyA6IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMubW9kaWZpZXIucHJlZml4Jyk7XHJcblxyXG4gIGxldCBhZ2dyZWdhdGVkRGlyZWN0aW9uID0gcHJlZml4ICsgdHJhbnNsYXRlZE1vZGlmaWVyO1xyXG5cclxuXHJcbiAgaWYgKG1vZGlmaWVyPy5zZWFyY2goJ3NsaWdodCcpID49IDApIHtcclxuICAgIGFnZ3JlZ2F0ZWREaXJlY3Rpb24gPSB0cmFuc2xhdGVkTW9kaWZpZXI7XHJcbiAgfVxyXG5cclxuICBpZiAobW9kaWZpZXIgPT09ICd1dHVybicpIHtcclxuICAgIGltYWdlID0gJ2ZvcndhcmQnO1xyXG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTkwJztcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2hhcnAgcmlnaHQnKSB7XHJcbiAgICBpbWFnZSA9ICdzdWJkaXJlY3RvcnktYXJyb3ctcmlnaHQnO1xyXG4gICAgY3NzQ2xhc3MgPSAnaWNvbi1mbGlwcGVkJztcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAncmlnaHQnKSB7XHJcbiAgICBpbWFnZSA9ICdzdWJkaXJlY3RvcnktYXJyb3ctcmlnaHQnO1xyXG4gICAgY3NzQ2xhc3MgPSAnaWNvbi1mbGlwcGVkJztcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2xpZ2h0IHJpZ2h0Jykge1xyXG4gICAgaW1hZ2UgPSAnZm9yd2FyZCc7XHJcbiAgICBjc3NDbGFzcyA9ICdyb3RhdGUtMjkwJztcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICBpbWFnZSA9ICdmb3J3YXJkJztcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2xpZ2h0IGxlZnQnKSB7XHJcbiAgICBpbWFnZSA9ICdmb3J3YXJkJztcclxuICAgIGNzc0NsYXNzID0gJ3JvdGF0ZS0yNTAnO1xyXG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdsZWZ0Jykge1xyXG4gICAgaW1hZ2UgPSAnc3ViZGlyZWN0b3J5LWFycm93LWxlZnQnO1xyXG4gICAgY3NzQ2xhc3MgPSAnaWNvbi1mbGlwcGVkJztcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2hhcnAgbGVmdCcpIHtcclxuICAgIGltYWdlID0gJ3N1YmRpcmVjdG9yeS1hcnJvdy1sZWZ0JztcclxuICAgIGNzc0NsYXNzID0gJ2ljb24tZmxpcHBlZCc7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZSA9PT0gJ3R1cm4nKSB7XHJcbiAgICBpZiAobW9kaWZpZXIgPT09ICdzdHJhaWdodCcpIHtcclxuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy50dXJuLnN0cmFpZ2h0JywgeyByb3V0ZSB9KTtcclxuICAgIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICd1dHVybicpIHtcclxuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy50dXJuLnV0dXJuJywgeyByb3V0ZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMudHVybi5lbHNlJywgeyByb3V0ZSwgYWdncmVnYXRlZERpcmVjdGlvbiwgdHJhbnNsYXRlZE1vZGlmaWVyIH0pO1xyXG4gICAgfVxyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ25ldyBuYW1lJykge1xyXG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5uZXcgbmFtZScsIHsgcm91dGUsIHRyYW5zbGF0ZWREaXJlY3Rpb24gfSk7XHJcbiAgICBpbWFnZSA9ICdjb21wYXNzJztcclxuICAgIGNzc0NsYXNzID0gJyc7XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnZGVwYXJ0Jykge1xyXG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5kZXBhcnQnLCB7IHJvdXRlLCB0cmFuc2xhdGVkRGlyZWN0aW9uIH0pO1xyXG4gICAgaW1hZ2UgPSAnY29tcGFzcyc7XHJcbiAgICBjc3NDbGFzcyA9ICcnO1xyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2Fycml2ZScpIHtcclxuICAgIGlmIChsYXN0U3RlcCkge1xyXG4gICAgICBjb25zdCBjb21hID0gIXRyYW5zbGF0ZWRNb2RpZmllciA/ICcnIDogJywgJztcclxuICAgICAgYWdncmVnYXRlZERpcmVjdGlvbiA9ICF0cmFuc2xhdGVkTW9kaWZpZXIgPyAnJyA6IGFnZ3JlZ2F0ZWREaXJlY3Rpb247XHJcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuYXJyaXZlLmxhc3RTdGVwJywgeyBjb21hLCBhZ2dyZWdhdGVkRGlyZWN0aW9uIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5hcnJpdmUuaW50ZXJtZWRpYXRlJywgeyByb3V0ZSB9KTtcclxuICAgICAgaW1hZ2UgPSAnbWFwLW1hcmtlcic7XHJcbiAgICAgIGNzc0NsYXNzID0gJyc7XHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnbWVyZ2UnKSB7XHJcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLm1lcmdlJywgeyByb3V0ZSB9KTtcclxuICAgIGltYWdlID0gJ2ZvcndhcmQnO1xyXG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTI3MCc7XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnb24gcmFtcCcpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMub24gcmFtcCcsIHsgYWdncmVnYXRlZERpcmVjdGlvbiB9KTtcclxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdvZmYgcmFtcCcpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMub2ZmIHJhbXAnLCB7IGFnZ3JlZ2F0ZWREaXJlY3Rpb24gfSk7XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnZm9yaycpIHtcclxuICAgIGlmIChtb2RpZmllci5zZWFyY2goJ2xlZnQnKSA+PSAwKSB7XHJcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuZm9yay5sZWZ0JywgeyByb3V0ZSB9KTtcclxuICAgIH0gZWxzZSBpZiAobW9kaWZpZXIuc2VhcmNoKCdyaWdodCcpID49IDApIHtcclxuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5mb3JrLnJpZ2h0JywgeyByb3V0ZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuZm9yay5lbHNlJywgeyByb3V0ZSB9KTtcclxuICAgIH1cclxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdlbmQgb2Ygcm9hZCcpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuZW5kIG9mIHJvYWQnLCB7IHRyYW5zbGF0ZWRNb2RpZmllciwgcm91dGUgfSk7XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSAndXNlIGxhbmUnKSB7XHJcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnVzZSBsYW5lJyk7XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnY29udGludWUnICYmIG1vZGlmaWVyICE9PSAndXR1cm4nKSB7XHJcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmNvbnRpbnVlLm5vdFV0dXJuJywgeyByb3V0ZSB9KTtcclxuICAgIGltYWdlID0gJ2ZvcndhcmQnO1xyXG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTI3MCc7XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSAncm91bmRhYm91dCcpIHtcclxuICAgIGNvbnN0IGNudFN1ZmZpeCA9IGV4aXQgPT09IDEgP1xyXG4gICAgICB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmNudFN1ZmZpeC5maXJzdCcpIDpcclxuICAgICAgdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5jbnRTdWZmaXguc2Vjb25kQW5kTW9yZScpO1xyXG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5yb3VuZGFib3V0JywgeyBleGl0LCBjbnRTdWZmaXgsIHJvdXRlIH0pO1xyXG4gICAgaW1hZ2UgPSAnY2hhcnQtZG9udXQnO1xyXG4gICAgY3NzQ2xhc3MgPSAnJztcclxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyb3RhcnknKSB7XHJcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnJvdGFyeScpO1xyXG4gICAgaW1hZ2UgPSAnY2hhcnQtZG9udXQnO1xyXG4gICAgY3NzQ2xhc3MgPSAnJztcclxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyb3VuZGFib3V0IHR1cm4nKSB7XHJcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnJvdW5kYWJvdXQgdHVybicpO1xyXG4gICAgaW1hZ2UgPSAnY2hhcnQtZG9udXQnO1xyXG4gICAgY3NzQ2xhc3MgPSAnJztcclxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdleGl0IHJvdW5kYWJvdXQnKSB7XHJcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmV4aXQgcm91bmRhYm91dCcsIHsgcm91dGUgfSk7XHJcbiAgICBpbWFnZSA9ICdmb3J3YXJkJztcclxuICAgIGNzc0NsYXNzID0gJ3JvdGF0ZS0yNzAnO1xyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ25vdGlmaWNhdGlvbicpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMubm90aWZpY2F0aW9uJyk7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3V0dXJuJykge1xyXG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy51dHVyblRleHQnLCB7IHRyYW5zbGF0ZWREaXJlY3Rpb24sIHJvdXRlIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnVua25vd24nKTtcclxuICB9XHJcblxyXG4gIGltYWdlID0gbGFzdFN0ZXAgPyAnZmxhZy12YXJpYW50JyA6IGltYWdlO1xyXG4gIGNzc0NsYXNzID0gbGFzdFN0ZXAgPyAnJyA6IGNzc0NsYXNzO1xyXG4gIGltYWdlID0gc3RlcFBvc2l0aW9uID09PSAwID8gJ2NvbXBhc3MnIDogaW1hZ2U7XHJcbiAgY3NzQ2xhc3MgPSBzdGVwUG9zaXRpb24gPT09IDAgPyAnJyA6IGNzc0NsYXNzO1xyXG5cclxuICByZXR1cm4geyBpbnN0cnVjdGlvbjogZGlyZWN0aXZlLCBpbWFnZSwgY3NzQ2xhc3MgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZU1vZGlmaWVyKG1vZGlmaWVyLCBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge1xyXG4gIGNvbnN0IHRyYW5zbGF0ZSA9IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGU7XHJcbiAgaWYgKG1vZGlmaWVyID09PSAndXR1cm4nKSB7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy51dHVybicpO1xyXG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzaGFycCByaWdodCcpIHtcclxuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnNoYXJwIHJpZ2h0Jyk7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMucmlnaHQnKTtcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2xpZ2h0IHJpZ2h0Jykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuc2xpZ2h0IHJpZ2h0Jyk7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NoYXJwIGxlZnQnKSB7XHJcbiAgICByZXR1cm4gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuc2hhcnAgbGVmdCcpO1xyXG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdsZWZ0Jykge1xyXG4gICAgcmV0dXJuIGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmxlZnQnKTtcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2xpZ2h0IGxlZnQnKSB7XHJcbiAgICByZXR1cm4gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuc2xpZ2h0IGxlZnQnKTtcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICByZXR1cm4gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuc3RyYWlnaHQnKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG1vZGlmaWVyO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZUJlYXJpbmcoYmVhcmluZzogbnVtYmVyLCBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge1xyXG4gIGNvbnN0IHRyYW5zbGF0ZSA9IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGU7XHJcbiAgaWYgKGJlYXJpbmcgPj0gMzM3IHx8IGJlYXJpbmcgPCAyMykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLm4nKTtcclxuICB9IGVsc2UgaWYgKGJlYXJpbmcgPCA2Nykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLm5lJyk7XHJcbiAgfSBlbHNlIGlmIChiZWFyaW5nIDwgMTEzKSB7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uY2FyZGluYWxQb2ludHMuZScpO1xyXG4gIH0gZWxzZSBpZiAoYmVhcmluZyA8IDE1Nykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLnNlJyk7XHJcbiAgfSBlbHNlIGlmIChiZWFyaW5nIDwgMjAzKSB7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uY2FyZGluYWxQb2ludHMucycpO1xyXG4gIH0gZWxzZSBpZiAoYmVhcmluZyA8IDI0Nykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLnN3Jyk7XHJcbiAgfSBlbHNlIGlmIChiZWFyaW5nIDwgMjkzKSB7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uY2FyZGluYWxQb2ludHMudycpO1xyXG4gIH0gZWxzZSBpZiAoYmVhcmluZyA8IDMzNykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLm53Jyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -3,4 +3,4 @@ export * from './directions.enum';
3
3
  export * from './directions.interface';
4
4
  export * from './directions.utils';
5
5
  export * from './store';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGlvbnMudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZSc7XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGlvbnMuZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGlvbnMudXRpbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0b3JlJztcclxuIl19
@@ -21,4 +21,4 @@ export class RoutesFeatureStore extends FeatureStore {
21
21
  }
22
22
  export class StepFeatureStore extends FeatureStore {
23
23
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzFEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFXLFNBQVEsV0FBaUI7SUFBakQ7O1FBRVcsc0JBQWlCLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBT3BGLENBQUM7SUFMVSxVQUFVO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUVKO0FBRUQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFlBQTZCO0NBRW5FO0FBQ0QsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFlBQWtDO0NBRXpFO0FBQ0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQTZCO0NBRWxFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBGZWF0dXJlV2l0aERpcmVjdGlvbiwgRmVhdHVyZVdpdGhTdGVwLCBGZWF0dXJlV2l0aFN0b3AsIFN0b3AgfSBmcm9tICcuL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBUaGUgY2xhc3MgaXMgYSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGFuIEVudGl0eVN0b3JlIHRoYXQgc3RvcmVzXG4gKiBzdG9wcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0b3BzU3RvcmUgZXh0ZW5kcyBFbnRpdHlTdG9yZTxTdG9wPiB7XG5cbiAgICBwdWJsaWMgc3RvcmVJbml0aWFsaXplZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgcHVibGljIGNsZWFyU3RvcHMoKSB7XG4gICAgICAgIHRoaXMuc3RvcmVJbml0aWFsaXplZCQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIFN0b3BzRmVhdHVyZVN0b3JlIGV4dGVuZHMgRmVhdHVyZVN0b3JlPEZlYXR1cmVXaXRoU3RvcD4ge1xuXG59XG5leHBvcnQgY2xhc3MgUm91dGVzRmVhdHVyZVN0b3JlIGV4dGVuZHMgRmVhdHVyZVN0b3JlPEZlYXR1cmVXaXRoRGlyZWN0aW9uPiB7XG5cbn1cbmV4cG9ydCBjbGFzcyBTdGVwRmVhdHVyZVN0b3JlIGV4dGVuZHMgRmVhdHVyZVN0b3JlPEZlYXR1cmVXaXRoU3RlcD4ge1xuXG59XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzFEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFXLFNBQVEsV0FBaUI7SUFBakQ7O1FBRVcsc0JBQWlCLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBT3BGLENBQUM7SUFMVSxVQUFVO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUVKO0FBRUQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFlBQTZCO0NBRW5FO0FBQ0QsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFlBQWtDO0NBRXpFO0FBQ0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQTZCO0NBRWxFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvc3RvcmUnO1xyXG5pbXBvcnQgeyBGZWF0dXJlV2l0aERpcmVjdGlvbiwgRmVhdHVyZVdpdGhTdGVwLCBGZWF0dXJlV2l0aFN0b3AsIFN0b3AgfSBmcm9tICcuL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgY2xhc3MgaXMgYSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGFuIEVudGl0eVN0b3JlIHRoYXQgc3RvcmVzXHJcbiAqIHN0b3BzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFN0b3BzU3RvcmUgZXh0ZW5kcyBFbnRpdHlTdG9yZTxTdG9wPiB7XHJcblxyXG4gICAgcHVibGljIHN0b3JlSW5pdGlhbGl6ZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgICBwdWJsaWMgY2xlYXJTdG9wcygpIHtcclxuICAgICAgICB0aGlzLnN0b3JlSW5pdGlhbGl6ZWQkLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTdG9wc0ZlYXR1cmVTdG9yZSBleHRlbmRzIEZlYXR1cmVTdG9yZTxGZWF0dXJlV2l0aFN0b3A+IHtcclxuXHJcbn1cclxuZXhwb3J0IGNsYXNzIFJvdXRlc0ZlYXR1cmVTdG9yZSBleHRlbmRzIEZlYXR1cmVTdG9yZTxGZWF0dXJlV2l0aERpcmVjdGlvbj4ge1xyXG5cclxufVxyXG5leHBvcnQgY2xhc3MgU3RlcEZlYXR1cmVTdG9yZSBleHRlbmRzIEZlYXR1cmVTdG9yZTxGZWF0dXJlV2l0aFN0ZXA+IHtcclxuXHJcbn1cclxuIl19
@@ -52,10 +52,10 @@ DownloadButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Dow
52
52
  } }, dependencies: [i2.NgIf, i3.MatIcon, i4.MatButton, i5.MatTooltip, i6.TranslatePipe], changeDetection: 0 });
53
53
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DownloadButtonComponent, [{
54
54
  type: Component,
55
- args: [{ selector: 'igo-download-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n *ngIf=\"options && options.download && (options.download['dynamicUrl'] || options.download['url']) \"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.download.action' | translate\"\n [color]=\"color\"\n (click)=\"openDownload(layer)\">\n <mat-icon svgIcon=\"download\"></mat-icon>\n</button>\n" }]
55
+ args: [{ selector: 'igo-download-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n *ngIf=\"options && options.download && (options.download['dynamicUrl'] || options.download['url']) \"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.download.action' | translate\"\r\n [color]=\"color\"\r\n (click)=\"openDownload(layer)\">\r\n <mat-icon svgIcon=\"download\"></mat-icon>\r\n</button>\r\n" }]
56
56
  }], function () { return [{ type: i1.DownloadService }]; }, { layer: [{
57
57
  type: Input
58
58
  }], color: [{
59
59
  type: Input
60
60
  }] }); })();
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2Rvd25sb2FkL2Rvd25sb2FkLWJ1dHRvbi9kb3dubG9hZC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZG93bmxvYWQvZG93bmxvYWQtYnV0dG9uL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztJQ0ExRSxpQ0FPZ0M7SUFBOUIsdUtBQVMsZUFBQSxpQ0FBbUIsQ0FBQSxJQUFDOztJQUM3Qiw4QkFBd0M7SUFDMUMsaUJBQVM7OztJQUpQLDRFQUFvRCx1QkFBQTs7QURRdEQsTUFBTSxPQUFPLHVCQUF1QjtJQW1CbEMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRjVDLFdBQU0sR0FBRyxTQUFTLENBQUM7SUFFNEIsQ0FBQztJQWxCeEQsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFHRCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUtELFlBQVksQ0FBQyxLQUFZO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU87U0FDUjtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7OzhGQTlCVSx1QkFBdUI7MEVBQXZCLHVCQUF1QjtRQ2JwQyw4RUFTUzs7UUFSTixpSUFBZ0c7O3VGRFl0Rix1QkFBdUI7Y0FObkMsU0FBUzsyQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTTtrRUFJM0MsS0FBSztrQkFEUixLQUFLO1lBVUYsS0FBSztrQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcblxuaW1wb3J0IHsgRG93bmxvYWREYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9kb3dubG9hZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRG93bmxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Rvd25sb2FkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tZG93bmxvYWQtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEb3dubG9hZEJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGdldCBsYXllcigpOiBMYXllciB7XG4gICAgcmV0dXJuIHRoaXMuX2xheWVyO1xuICB9XG4gIHNldCBsYXllcih2YWx1ZTogTGF5ZXIpIHtcbiAgICB0aGlzLl9sYXllciA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX2xheWVyOiBMYXllcjtcblxuICBASW5wdXQoKVxuICBnZXQgY29sb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICB9XG4gIHNldCBjb2xvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29sb3IgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9jb2xvciA9ICdwcmltYXJ5JztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRvd25sb2FkU2VydmljZTogRG93bmxvYWRTZXJ2aWNlKSB7fVxuXG4gIG9wZW5Eb3dubG9hZChsYXllcjogTGF5ZXIpIHtcbiAgICB0aGlzLmRvd25sb2FkU2VydmljZS5vcGVuKGxheWVyKTtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IERvd25sb2FkRGF0YVNvdXJjZU9wdGlvbnMge1xuICAgIGlmICghdGhpcy5sYXllcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnM7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgKm5nSWY9XCJvcHRpb25zICYmIG9wdGlvbnMuZG93bmxvYWQgJiYgKG9wdGlvbnMuZG93bmxvYWRbJ2R5bmFtaWNVcmwnXSB8fCBvcHRpb25zLmRvd25sb2FkWyd1cmwnXSkgXCJcbiAgbWF0LWljb24tYnV0dG9uXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kb3dubG9hZC5hY3Rpb24nIHwgdHJhbnNsYXRlXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbiAgKGNsaWNrKT1cIm9wZW5Eb3dubG9hZChsYXllcilcIj5cbiAgPG1hdC1pY29uIHN2Z0ljb249XCJkb3dubG9hZFwiPjwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2Rvd25sb2FkL2Rvd25sb2FkLWJ1dHRvbi9kb3dubG9hZC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZG93bmxvYWQvZG93bmxvYWQtYnV0dG9uL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztJQ0ExRSxpQ0FPZ0M7SUFBOUIsdUtBQVMsZUFBQSxpQ0FBbUIsQ0FBQSxJQUFDOztJQUM3Qiw4QkFBd0M7SUFDMUMsaUJBQVM7OztJQUpQLDRFQUFvRCx1QkFBQTs7QURRdEQsTUFBTSxPQUFPLHVCQUF1QjtJQW1CbEMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRjVDLFdBQU0sR0FBRyxTQUFTLENBQUM7SUFFNEIsQ0FBQztJQWxCeEQsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFHRCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUtELFlBQVksQ0FBQyxLQUFZO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU87U0FDUjtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7OzhGQTlCVSx1QkFBdUI7MEVBQXZCLHVCQUF1QjtRQ2JwQyw4RUFTUzs7UUFSTixpSUFBZ0c7O3VGRFl0Rix1QkFBdUI7Y0FObkMsU0FBUzsyQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTTtrRUFJM0MsS0FBSztrQkFEUixLQUFLO1lBVUYsS0FBSztrQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XHJcblxyXG5pbXBvcnQgeyBEb3dubG9hZERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2Rvd25sb2FkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IERvd25sb2FkU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9kb3dubG9hZC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWRvd25sb2FkLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIERvd25sb2FkQnV0dG9uQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIGdldCBsYXllcigpOiBMYXllciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGF5ZXI7XHJcbiAgfVxyXG4gIHNldCBsYXllcih2YWx1ZTogTGF5ZXIpIHtcclxuICAgIHRoaXMuX2xheWVyID0gdmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2xheWVyOiBMYXllcjtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgY29sb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XHJcbiAgfVxyXG4gIHNldCBjb2xvcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb2xvciA9IHZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb2xvciA9ICdwcmltYXJ5JztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkb3dubG9hZFNlcnZpY2U6IERvd25sb2FkU2VydmljZSkge31cclxuXHJcbiAgb3BlbkRvd25sb2FkKGxheWVyOiBMYXllcikge1xyXG4gICAgdGhpcy5kb3dubG9hZFNlcnZpY2Uub3BlbihsYXllcik7XHJcbiAgfVxyXG5cclxuICBnZXQgb3B0aW9ucygpOiBEb3dubG9hZERhdGFTb3VyY2VPcHRpb25zIHtcclxuICAgIGlmICghdGhpcy5sYXllcikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnM7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b25cclxuICAqbmdJZj1cIm9wdGlvbnMgJiYgb3B0aW9ucy5kb3dubG9hZCAmJiAob3B0aW9ucy5kb3dubG9hZFsnZHluYW1pY1VybCddIHx8IG9wdGlvbnMuZG93bmxvYWRbJ3VybCddKSBcIlxyXG4gIG1hdC1pY29uLWJ1dHRvblxyXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZG93bmxvYWQuYWN0aW9uJyB8IHRyYW5zbGF0ZVwiXHJcbiAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAoY2xpY2spPVwib3BlbkRvd25sb2FkKGxheWVyKVwiPlxyXG4gIDxtYXQtaWNvbiBzdmdJY29uPVwiZG93bmxvYWRcIj48L21hdC1pY29uPlxyXG48L2J1dHRvbj5cclxuIl19