@igo2/geo 16.0.2 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +28 -132
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +22 -86
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +22 -65
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +42 -47
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +13 -129
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +14 -55
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +27 -57
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +46 -54
  9. package/esm2022/lib/catalog/catalog.module.mjs +28 -29
  10. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
  11. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  12. package/esm2022/lib/catalog/shared/catalog.service.mjs +14 -14
  13. package/esm2022/lib/datasource/datasource.module.mjs +12 -12
  14. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +9 -0
  15. package/esm2022/lib/datasource/shared/capabilities.service.mjs +10 -17
  16. package/esm2022/lib/datasource/shared/datasource.service.mjs +11 -11
  17. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +9 -9
  18. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/index.mjs +2 -1
  21. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +12 -12
  22. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +19 -102
  23. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +21 -122
  24. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +11 -103
  25. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
  26. package/esm2022/lib/directions/directions.component.mjs +25 -47
  27. package/esm2022/lib/directions/directions.module.mjs +61 -62
  28. package/esm2022/lib/directions/shared/directions.service.mjs +15 -14
  29. package/esm2022/lib/download/download-button/download-button.component.mjs +11 -26
  30. package/esm2022/lib/download/download.module.mjs +22 -23
  31. package/esm2022/lib/download/shared/download.service.mjs +9 -9
  32. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +9 -35
  33. package/esm2022/lib/draw/draw/draw-popup.component.mjs +20 -299
  34. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -40
  35. package/esm2022/lib/draw/draw/draw.component.mjs +56 -322
  36. package/esm2022/lib/draw/draw/draw.module.mjs +64 -65
  37. package/esm2022/lib/draw/drawingTool.module.mjs +12 -13
  38. package/esm2022/lib/draw/shared/draw-icon.service.mjs +9 -9
  39. package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
  40. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  41. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +21 -171
  42. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +17 -19
  43. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +22 -23
  44. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +16 -34
  45. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +12 -13
  46. package/esm2022/lib/feature/feature.module.mjs +13 -14
  47. package/esm2022/lib/feature/shared/feature-store.utils.mjs +2 -2
  48. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  49. package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
  50. package/esm2022/lib/feature/shared/store.mjs +1 -1
  51. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
  52. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  53. package/esm2022/lib/feature/shared/strategies/selection.mjs +2 -2
  54. package/esm2022/lib/filter/filter.module.mjs +158 -197
  55. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +24 -49
  56. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +32 -397
  57. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +39 -625
  58. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +20 -47
  59. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +44 -340
  60. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +36 -58
  61. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +26 -126
  62. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +11 -11
  63. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +17 -40
  64. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +9 -9
  65. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +6 -6
  66. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +6 -6
  67. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -9
  68. package/esm2022/lib/filter/shared/time-filter.service.mjs +6 -6
  69. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +73 -386
  70. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +23 -87
  71. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +37 -86
  72. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +24 -49
  73. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +20 -268
  74. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +20 -72
  75. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +11 -11
  76. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +13 -24
  77. package/esm2022/lib/geo.module.mjs +54 -55
  78. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +36 -39
  79. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +32 -97
  80. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +30 -31
  81. package/esm2022/lib/geometry/geometry.module.mjs +13 -14
  82. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  83. package/esm2022/lib/import-export/export-button/export-button.component.mjs +11 -24
  84. package/esm2022/lib/import-export/import-export/import-export.component.mjs +25 -434
  85. package/esm2022/lib/import-export/import-export.module.mjs +54 -55
  86. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +20 -22
  87. package/esm2022/lib/import-export/shared/export.service.mjs +10 -10
  88. package/esm2022/lib/import-export/shared/import.service.mjs +9 -9
  89. package/esm2022/lib/layer/index.mjs +1 -1
  90. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +47 -127
  91. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +16 -183
  92. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +16 -26
  93. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +11 -11
  94. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +26 -130
  95. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +13 -13
  96. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +50 -272
  97. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +21 -72
  98. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +9 -9
  99. package/esm2022/lib/layer/layer.module.mjs +94 -114
  100. package/esm2022/lib/layer/shared/layer.service.mjs +12 -12
  101. package/esm2022/lib/layer/shared/layers/image-layer.mjs +2 -2
  102. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  103. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +2 -2
  104. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +2 -2
  105. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
  106. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +12 -27
  107. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +18 -60
  108. package/esm2022/lib/map/baselayers-switcher/index.mjs +1 -1
  109. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +20 -48
  110. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +11 -31
  111. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +17 -26
  112. package/esm2022/lib/map/index.mjs +1 -1
  113. package/esm2022/lib/map/info-section/info-section.component.mjs +9 -22
  114. package/esm2022/lib/map/map-browser/index.mjs +1 -1
  115. package/esm2022/lib/map/map-browser/map-browser.component.mjs +11 -18
  116. package/esm2022/lib/map/map-center/map-center.component.mjs +9 -13
  117. package/esm2022/lib/map/map.module.mjs +88 -96
  118. package/esm2022/lib/map/menu-button/menu-button.component.mjs +11 -19
  119. package/esm2022/lib/map/offline-button/offline-button.component.mjs +13 -24
  120. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +13 -39
  121. package/esm2022/lib/map/shared/hover-feature.directive.mjs +18 -20
  122. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
  123. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +15 -15
  124. package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
  125. package/esm2022/lib/map/shared/map.service.mjs +9 -9
  126. package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -9
  127. package/esm2022/lib/map/shared/projection.service.mjs +9 -9
  128. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +9 -16
  129. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +11 -24
  130. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +11 -28
  131. package/esm2022/lib/measure/measure.module.mjs +12 -13
  132. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +9 -9
  133. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +13 -166
  134. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +19 -51
  135. package/esm2022/lib/measure/measurer/measurer.component.mjs +74 -241
  136. package/esm2022/lib/measure/measurer/measurer.module.mjs +46 -59
  137. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  138. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +20 -69
  139. package/esm2022/lib/metadata/metadata.module.mjs +24 -25
  140. package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
  141. package/esm2022/lib/metadata/shared/metadata.service.mjs +9 -9
  142. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +9 -9
  143. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +9 -9
  144. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +9 -9
  145. package/esm2022/lib/offline/shared/geo-network.service.mjs +9 -9
  146. package/esm2022/lib/overlay/overlay.module.mjs +12 -13
  147. package/esm2022/lib/overlay/shared/overlay.directive.mjs +11 -11
  148. package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
  149. package/esm2022/lib/overlay/shared/overlay.service.mjs +9 -9
  150. package/esm2022/lib/overlay/shared/overlay.utils.mjs +2 -2
  151. package/esm2022/lib/print/print/print.component.mjs +21 -27
  152. package/esm2022/lib/print/print-form/print-form.component.mjs +56 -349
  153. package/esm2022/lib/print/print.module.mjs +36 -37
  154. package/esm2022/lib/print/shared/print.service.mjs +14 -14
  155. package/esm2022/lib/print/shared/print.type.mjs +2 -2
  156. package/esm2022/lib/query/query.module.mjs +13 -14
  157. package/esm2022/lib/query/shared/query-search-source.mjs +9 -9
  158. package/esm2022/lib/query/shared/query.directive.mjs +21 -21
  159. package/esm2022/lib/query/shared/query.service.mjs +10 -10
  160. package/esm2022/lib/search/search-bar/search-bar.component.mjs +66 -165
  161. package/esm2022/lib/search/search-bar/search-bar.module.mjs +38 -39
  162. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +13 -13
  163. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +12 -68
  164. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +23 -66
  165. package/esm2022/lib/search/search-results/search-results-item.component.mjs +18 -74
  166. package/esm2022/lib/search/search-results/search-results.component.mjs +41 -238
  167. package/esm2022/lib/search/search-results/search-results.module.mjs +58 -59
  168. package/esm2022/lib/search/search-selector/search-selector.component.mjs +13 -43
  169. package/esm2022/lib/search/search-selector/search-selector.module.mjs +30 -31
  170. package/esm2022/lib/search/search-settings/search-settings.component.mjs +24 -233
  171. package/esm2022/lib/search/search-settings/search-settings.module.mjs +32 -33
  172. package/esm2022/lib/search/search.module.mjs +32 -33
  173. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +18 -20
  174. package/esm2022/lib/search/shared/search.enums.mjs +3 -3
  175. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  176. package/esm2022/lib/search/shared/search.service.mjs +10 -10
  177. package/esm2022/lib/search/shared/sources/cadastre.mjs +10 -10
  178. package/esm2022/lib/search/shared/sources/coordinates.mjs +19 -19
  179. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  180. package/esm2022/lib/search/shared/sources/icherche.mjs +37 -26
  181. package/esm2022/lib/search/shared/sources/ilayer.mjs +19 -19
  182. package/esm2022/lib/search/shared/sources/nominatim.mjs +10 -10
  183. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  184. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  185. package/esm2022/lib/search/shared/sources/storedqueries.mjs +18 -18
  186. package/esm2022/lib/search/shared/sources/workspace.mjs +10 -10
  187. package/esm2022/lib/style/style-list/style-list.module.mjs +12 -12
  188. package/esm2022/lib/style/style-list/style-list.service.mjs +9 -9
  189. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +12 -121
  190. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +13 -59
  191. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +9 -17
  192. package/esm2022/lib/style/style-service/draw-style.service.mjs +9 -9
  193. package/esm2022/lib/style/style-service/style.service.mjs +9 -9
  194. package/esm2022/lib/style/style.module.mjs +51 -52
  195. package/esm2022/lib/toast/toast.component.mjs +15 -44
  196. package/esm2022/lib/toast/toast.module.mjs +24 -25
  197. package/esm2022/lib/utils/id-generator.mjs +1 -1
  198. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +9 -9
  199. package/esm2022/lib/wkt/shared/wkt.service.mjs +9 -9
  200. package/esm2022/lib/wkt/wkt.module.mjs +12 -12
  201. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +10 -27
  202. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +20 -21
  203. package/esm2022/lib/workspace/shared/edition-workspace.mjs +4 -4
  204. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +10 -10
  205. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  206. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +14 -13
  207. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  208. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +14 -13
  209. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +12 -12
  210. package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
  211. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +15 -19
  212. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +12 -13
  213. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +21 -21
  214. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +12 -13
  215. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +15 -15
  216. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +12 -13
  217. package/esm2022/lib/workspace/workspace.module.mjs +35 -36
  218. package/fesm2022/igo2-geo.mjs +16547 -23425
  219. package/fesm2022/igo2-geo.mjs.map +1 -1
  220. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  221. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  222. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  223. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  224. package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -2
  225. package/lib/catalog/shared/catalog.abstract.d.ts +3 -3
  226. package/lib/catalog/shared/catalog.interface.d.ts +2 -2
  227. package/lib/catalog/shared/catalog.service.d.ts +1 -1
  228. package/lib/datasource/shared/capabilities.interface.d.ts +8 -0
  229. package/lib/datasource/shared/capabilities.service.d.ts +1 -8
  230. package/lib/datasource/shared/datasources/wms-datasource.d.ts +1 -1
  231. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -1
  232. package/lib/datasource/shared/index.d.ts +1 -0
  233. package/lib/directions/shared/directions.service.d.ts +2 -2
  234. package/lib/download/shared/download.service.d.ts +1 -1
  235. package/lib/draw/shared/draw.interface.d.ts +1 -1
  236. package/lib/environment/environment.interface.d.ts +8 -6
  237. package/lib/feature/shared/feature.interfaces.d.ts +3 -3
  238. package/lib/feature/shared/feature.utils.d.ts +2 -1
  239. package/lib/feature/shared/store.d.ts +1 -1
  240. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  241. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
  242. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
  243. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -0
  244. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
  245. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  246. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
  247. package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
  248. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +1 -1
  249. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +2 -2
  250. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  251. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  252. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
  253. package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
  254. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  255. package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
  256. package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
  257. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  258. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  259. package/lib/layer/shared/layers/image-layer.d.ts +1 -1
  260. package/lib/layer/shared/layers/layer.d.ts +2 -1
  261. package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
  262. package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
  263. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  264. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  265. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  266. package/lib/map/shared/map.abstract.d.ts +5 -4
  267. package/lib/measure/measurer/measurer.component.d.ts +8 -4
  268. package/lib/measure/shared/measure.interfaces.d.ts +2 -2
  269. package/lib/metadata/shared/metadata.interface.d.ts +1 -1
  270. package/lib/overlay/shared/overlay.d.ts +1 -1
  271. package/lib/print/print-form/print-form.component.d.ts +4 -6
  272. package/lib/print/shared/print.service.d.ts +2 -1
  273. package/lib/print/shared/print.type.d.ts +2 -6
  274. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  275. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  276. package/lib/search/search-results/search-results.component.d.ts +1 -1
  277. package/lib/search/shared/search.interfaces.d.ts +1 -1
  278. package/lib/search/shared/sources/cadastre.d.ts +1 -1
  279. package/lib/search/shared/sources/coordinates.d.ts +1 -1
  280. package/lib/search/shared/sources/icherche.d.ts +1 -1
  281. package/lib/search/shared/sources/icherche.interfaces.d.ts +1 -1
  282. package/lib/search/shared/sources/nominatim.d.ts +1 -1
  283. package/lib/search/shared/sources/source.d.ts +1 -1
  284. package/lib/search/shared/sources/storedqueries.d.ts +1 -1
  285. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +1 -1
  286. package/lib/search/shared/sources/workspace.d.ts +1 -1
  287. package/lib/utils/id-generator.d.ts +1 -1
  288. package/lib/workspace/shared/edition-workspace.d.ts +3 -3
  289. package/lib/workspace/shared/edition-workspace.service.d.ts +1 -1
  290. package/lib/workspace/shared/feature-workspace.d.ts +1 -1
  291. package/lib/workspace/shared/feature-workspace.service.d.ts +2 -2
  292. package/lib/workspace/shared/wfs-workspace.d.ts +1 -1
  293. package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -2
  294. package/lib/workspace/shared/wms-workspace.service.d.ts +2 -2
  295. package/lib/workspace/shared/workspace.utils.d.ts +1 -1
  296. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  297. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  298. package/locale/en.geo.json +5 -3
  299. package/locale/fr.geo.json +5 -3
  300. package/package.json +26 -29
  301. package/{lib → src/lib}/search/search-bar/search-bar.theming.scss +1 -0
  302. package/src/style/style.scss +1 -0
  303. /package/{geo-theme.scss → src/geo-theme.scss} +0 -0
  304. /package/{lib → src/lib}/catalog/catalog-browser/catalog-browser.theming.scss +0 -0
  305. /package/{lib → src/lib}/catalog/catalog.theming.scss +0 -0
  306. /package/{lib → src/lib}/directions/directions-results/directions-results.theming.scss +0 -0
  307. /package/{lib → src/lib}/directions/directions.theming.scss +0 -0
  308. /package/{lib → src/lib}/draw/draw.theming.scss +0 -0
  309. /package/{lib → src/lib}/feature/feature-details/feature-details.theming.scss +0 -0
  310. /package/{lib → src/lib}/feature/feature.theming.scss +0 -0
  311. /package/{lib → src/lib}/filter/filter.theming.scss +0 -0
  312. /package/{lib → src/lib}/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +0 -0
  313. /package/{lib → src/lib}/filter/time-filter-form/time-filter-form.theming.scss +0 -0
  314. /package/{lib → src/lib}/layer/layer-item/layer-item.theme.scss +0 -0
  315. /package/{lib → src/lib}/layer/layer-legend/layer-legend.theming.scss +0 -0
  316. /package/{lib → src/lib}/layer/layer-list-tool/layer-list-tool.theming.scss +0 -0
  317. /package/{lib → src/lib}/layer/layer.theming.scss +0 -0
  318. /package/{lib → src/lib}/map/map-browser/map-browser.theming.scss +0 -0
  319. /package/{lib → src/lib}/map/map.theming.scss +0 -0
  320. /package/{lib → src/lib}/map/menu-button/menu-button.theming.scss +0 -0
  321. /package/{lib → src/lib}/map/zoom-button/zoom-button.theming.scss +0 -0
  322. /package/{lib → src/lib}/measure/measure.theming.scss +0 -0
  323. /package/{lib → src/lib}/measure/measurer/measurer.theming.scss +0 -0
  324. /package/{lib → src/lib}/search/search-results/search-results-item.theme.scss +0 -0
  325. /package/{lib → src/lib}/search/search.theming.scss +0 -0
  326. /package/{lib → src/lib}/workspace/confirmation-popup/confirmation-popup.theming.scss +0 -0
  327. /package/{lib → src/lib}/workspace/workspace.theming.scss +0 -0
@@ -1,145 +1,28 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { UntypedFormBuilder, Validators } from '@angular/forms';
3
+ import { MediaService } from '@igo2/core';
3
4
  import { BehaviorSubject } from 'rxjs';
4
5
  import { PrintLegendPosition, PrintOrientation, PrintOutputFormat, PrintPaperFormat, PrintResolution, PrintSaveImageFormat } from '../shared/print.type';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/forms";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@angular/material/button";
9
- import * as i4 from "@angular/material/form-field";
10
- import * as i5 from "@angular/material/select";
11
- import * as i6 from "@angular/material/core";
12
- import * as i7 from "@angular/material/input";
13
- import * as i8 from "@angular/material/slide-toggle";
14
- import * as i9 from "@ngx-translate/core";
15
- import * as i10 from "@igo2/common";
16
- const _c0 = function (a0) { return { column: a0, value: 130 }; };
17
- function PrintFormComponent_mat_error_8_Template(rf, ctx) { if (rf & 1) {
18
- i0.ɵɵelementStart(0, "mat-error");
19
- i0.ɵɵtext(1);
20
- i0.ɵɵpipe(2, "translate");
21
- i0.ɵɵpipe(3, "translate");
22
- i0.ɵɵelementEnd();
23
- } if (rf & 2) {
24
- i0.ɵɵadvance(1);
25
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, "igo.geo.formValidation.maxLength", i0.ɵɵpureFunction1(6, _c0, i0.ɵɵpipeBind1(3, 4, "igo.geo.printForm.title"))));
26
- } }
27
- const _c1 = function (a0) { return { column: a0, value: 120 }; };
28
- function PrintFormComponent_mat_error_16_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelementStart(0, "mat-error");
30
- i0.ɵɵtext(1);
31
- i0.ɵɵpipe(2, "translate");
32
- i0.ɵɵpipe(3, "translate");
33
- i0.ɵɵelementEnd();
34
- } if (rf & 2) {
35
- i0.ɵɵadvance(1);
36
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, "igo.geo.formValidation.maxLength", i0.ɵɵpureFunction1(6, _c1, i0.ɵɵpipeBind1(3, 4, "igo.geo.printForm.subtitle"))));
37
- } }
38
- const _c2 = function (a0, a1) { return { column: a0, value: a1 }; };
39
- function PrintFormComponent_mat_error_24_Template(rf, ctx) { if (rf & 1) {
40
- i0.ɵɵelementStart(0, "mat-error");
41
- i0.ɵɵtext(1);
42
- i0.ɵɵpipe(2, "translate");
43
- i0.ɵɵpipe(3, "translate");
44
- i0.ɵɵelementEnd();
45
- } if (rf & 2) {
46
- const ctx_r2 = i0.ɵɵnextContext();
47
- i0.ɵɵadvance(1);
48
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, "igo.geo.formValidation.maxLength", i0.ɵɵpureFunction2(6, _c2, i0.ɵɵpipeBind1(3, 4, "igo.geo.printForm.comment"), ctx_r2.maxLength)));
49
- } }
50
- function PrintFormComponent_mat_option_43_ng_container_1_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵelementContainerStart(0);
52
- i0.ɵɵtext(1);
53
- i0.ɵɵpipe(2, "translate");
54
- i0.ɵɵelementContainerEnd();
55
- } if (rf & 2) {
56
- const legendPosition_r9 = i0.ɵɵnextContext().$implicit;
57
- i0.ɵɵadvance(1);
58
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.geo.printForm.legendPositions." + legendPosition_r9.value), " ");
59
- } }
60
- function PrintFormComponent_mat_option_43_ng_container_2_Template(rf, ctx) { if (rf & 1) {
61
- i0.ɵɵelementContainerStart(0);
62
- i0.ɵɵtext(1);
63
- i0.ɵɵpipe(2, "translate");
64
- i0.ɵɵelementContainerEnd();
65
- } if (rf & 2) {
66
- const ctx_r11 = i0.ɵɵnextContext(2);
67
- i0.ɵɵadvance(1);
68
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, ctx_r11.outputFormat === "Pdf" ? "igo.geo.printForm.legendPositions.newpage" : "igo.geo.printForm.legendPositions.newimage"), " ");
69
- } }
70
- const _c3 = function () { return ["newpage", "newimage"]; };
71
- function PrintFormComponent_mat_option_43_Template(rf, ctx) { if (rf & 1) {
72
- i0.ɵɵelementStart(0, "mat-option", 20);
73
- i0.ɵɵtemplate(1, PrintFormComponent_mat_option_43_ng_container_1_Template, 3, 3, "ng-container", 3);
74
- i0.ɵɵtemplate(2, PrintFormComponent_mat_option_43_ng_container_2_Template, 3, 3, "ng-container", 3);
75
- i0.ɵɵelementEnd();
76
- } if (rf & 2) {
77
- const legendPosition_r9 = ctx.$implicit;
78
- i0.ɵɵproperty("value", legendPosition_r9.key);
79
- i0.ɵɵadvance(1);
80
- i0.ɵɵproperty("ngIf", !i0.ɵɵpureFunction0(3, _c3).includes(legendPosition_r9.value));
81
- i0.ɵɵadvance(1);
82
- i0.ɵɵproperty("ngIf", i0.ɵɵpureFunction0(4, _c3).includes(legendPosition_r9.value));
83
- } }
84
- function PrintFormComponent_mat_option_52_Template(rf, ctx) { if (rf & 1) {
85
- i0.ɵɵelementStart(0, "mat-option", 20);
86
- i0.ɵɵtext(1);
87
- i0.ɵɵelementEnd();
88
- } if (rf & 2) {
89
- const outputFormat_r13 = ctx.$implicit;
90
- i0.ɵɵproperty("value", outputFormat_r13.key);
91
- i0.ɵɵadvance(1);
92
- i0.ɵɵtextInterpolate1(" ", outputFormat_r13.value, " ");
93
- } }
94
- function PrintFormComponent_mat_option_61_Template(rf, ctx) { if (rf & 1) {
95
- i0.ɵɵelementStart(0, "mat-option", 20);
96
- i0.ɵɵtext(1);
97
- i0.ɵɵpipe(2, "translate");
98
- i0.ɵɵelementEnd();
99
- } if (rf & 2) {
100
- const paperFormat_r14 = ctx.$implicit;
101
- i0.ɵɵproperty("value", paperFormat_r14.key);
102
- i0.ɵɵadvance(1);
103
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm.paperFormats." + paperFormat_r14.value), " ");
104
- } }
105
- function PrintFormComponent_mat_option_70_Template(rf, ctx) { if (rf & 1) {
106
- i0.ɵɵelementStart(0, "mat-option", 20);
107
- i0.ɵɵtext(1);
108
- i0.ɵɵelementEnd();
109
- } if (rf & 2) {
110
- const imageFormat_r15 = ctx.$implicit;
111
- i0.ɵɵproperty("value", imageFormat_r15.key);
112
- i0.ɵɵadvance(1);
113
- i0.ɵɵtextInterpolate1(" ", imageFormat_r15.value, " ");
114
- } }
115
- function PrintFormComponent_mat_option_80_Template(rf, ctx) { if (rf & 1) {
116
- i0.ɵɵelementStart(0, "mat-option", 20);
117
- i0.ɵɵtext(1);
118
- i0.ɵɵelementEnd();
119
- } if (rf & 2) {
120
- const resolution_r16 = ctx.$implicit;
121
- i0.ɵɵproperty("value", resolution_r16.key);
122
- i0.ɵɵadvance(1);
123
- i0.ɵɵtextInterpolate1(" ", resolution_r16.value, " ");
124
- } }
125
- function PrintFormComponent_mat_option_89_Template(rf, ctx) { if (rf & 1) {
126
- i0.ɵɵelementStart(0, "mat-option", 20);
127
- i0.ɵɵtext(1);
128
- i0.ɵɵpipe(2, "translate");
129
- i0.ɵɵelementEnd();
130
- } if (rf & 2) {
131
- const orientation_r17 = ctx.$implicit;
132
- i0.ɵɵproperty("value", orientation_r17.key);
133
- i0.ɵɵadvance(1);
134
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm." + orientation_r17.value), " ");
135
- } }
8
+ import * as i2 from "@igo2/core";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "@angular/material/button";
11
+ import * as i5 from "@angular/material/form-field";
12
+ import * as i6 from "@angular/material/select";
13
+ import * as i7 from "@angular/material/core";
14
+ import * as i8 from "@angular/material/input";
15
+ import * as i9 from "@angular/material/slide-toggle";
16
+ import * as i10 from "@ngx-translate/core";
17
+ import * as i11 from "@igo2/common";
136
18
  export class PrintFormComponent {
137
19
  formBuilder;
20
+ mediaService;
138
21
  form;
139
22
  outputFormats = PrintOutputFormat;
140
23
  paperFormats = PrintPaperFormat;
141
24
  orientations = PrintOrientation;
142
- resolutions = PrintResolution;
25
+ resolutions = [...PrintResolution];
143
26
  imageFormats = PrintSaveImageFormat;
144
27
  legendPositions = PrintLegendPosition;
145
28
  isPrintService = true;
@@ -180,7 +63,7 @@ export class PrintFormComponent {
180
63
  return this.resolutionField.value;
181
64
  }
182
65
  set resolution(value) {
183
- this.resolutionField.setValue(value || PrintResolution['96'], {
66
+ this.resolutionField.setValue(value || ('96'), {
184
67
  onlySelf: true
185
68
  });
186
69
  }
@@ -275,8 +158,9 @@ export class PrintFormComponent {
275
158
  }
276
159
  submit = new EventEmitter();
277
160
  maxLength = 180;
278
- constructor(formBuilder) {
161
+ constructor(formBuilder, mediaService) {
279
162
  this.formBuilder = formBuilder;
163
+ this.mediaService = mediaService;
280
164
  this.form = this.formBuilder.group({
281
165
  title: ['', [Validators.minLength(0), Validators.maxLength(130)]],
282
166
  subtitle: ['', [Validators.minLength(0), Validators.maxLength(120)]],
@@ -298,6 +182,9 @@ export class PrintFormComponent {
298
182
  }
299
183
  ngOnInit() {
300
184
  this.doZipFileField.setValue(false);
185
+ if (this.mediaService.isMobile()) {
186
+ this.resolutions = this.resolutions.filter((resolution) => resolution !== '300');
187
+ }
301
188
  }
302
189
  handleFormSubmit(data, isValid) {
303
190
  data.isPrintService = this.isPrintService;
@@ -361,221 +248,41 @@ export class PrintFormComponent {
361
248
  this.commentField.setValidators([Validators.maxLength(this.maxLength)]);
362
249
  this.commentField.updateValueAndValidity();
363
250
  }
364
- static ɵfac = function PrintFormComponent_Factory(t) { return new (t || PrintFormComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder)); };
365
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFormComponent, selectors: [["igo-print-form"]], inputs: { disabled$: "disabled$", imageFormat: "imageFormat", outputFormat: "outputFormat", paperFormat: "paperFormat", orientation: "orientation", resolution: "resolution", legendPosition: "legendPosition", title: "title", subtitle: "subtitle", comment: "comment", showProjection: "showProjection", showScale: "showScale", showLegend: "showLegend", doZipFile: "doZipFile" }, outputs: { submit: "submit" }, decls: 96, vars: 105, consts: [[1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], ["matInput", "", "formControlName", "title", 3, "placeholder"], [4, "ngIf"], ["matInput", "", "formControlName", "subtitle", 3, "placeholder"], ["matInput", "", "formControlName", "comment", 3, "placeholder"], [1, "igo-input-container", "slide-toggle-container"], [1, "print-slide-toggle-container"], ["formControlName", "showProjection", 1, "print-option", 3, "labelPosition"], ["formControlName", "showScale", 1, "print-option", 3, "labelPosition"], ["formControlName", "doZipFile", 1, "print-option", 3, "labelPosition"], ["formControlName", "legendPosition", 3, "placeholder"], [3, "value", 4, "ngFor", "ngForOf"], ["formControlName", "outputFormat", 3, "placeholder", "selectionChange"], ["formControlName", "paperFormat", 3, "placeholder", "selectionChange"], ["formControlName", "imageFormat", 3, "placeholder"], ["formControlName", "resolution", 3, "placeholder"], ["formControlName", "orientation", 3, "placeholder", "selectionChange"], [1, "igo-form-button-group", "print-button-top-padding"], ["mat-raised-button", "", "type", "button", 3, "disabled", "click"], [3, "value"]], template: function PrintFormComponent_Template(rf, ctx) { if (rf & 1) {
366
- i0.ɵɵelementStart(0, "form", 0)(1, "div", 1)(2, "mat-form-field")(3, "mat-label");
367
- i0.ɵɵtext(4);
368
- i0.ɵɵpipe(5, "translate");
369
- i0.ɵɵelementEnd();
370
- i0.ɵɵelement(6, "input", 2);
371
- i0.ɵɵpipe(7, "translate");
372
- i0.ɵɵtemplate(8, PrintFormComponent_mat_error_8_Template, 4, 8, "mat-error", 3);
373
- i0.ɵɵelementEnd()();
374
- i0.ɵɵelementStart(9, "div", 1)(10, "mat-form-field")(11, "mat-label");
375
- i0.ɵɵtext(12);
376
- i0.ɵɵpipe(13, "translate");
377
- i0.ɵɵelementEnd();
378
- i0.ɵɵelement(14, "input", 4);
379
- i0.ɵɵpipe(15, "translate");
380
- i0.ɵɵtemplate(16, PrintFormComponent_mat_error_16_Template, 4, 8, "mat-error", 3);
381
- i0.ɵɵelementEnd()();
382
- i0.ɵɵelementStart(17, "div", 1)(18, "mat-form-field")(19, "mat-label");
383
- i0.ɵɵtext(20);
384
- i0.ɵɵpipe(21, "translate");
385
- i0.ɵɵelementEnd();
386
- i0.ɵɵelement(22, "input", 5);
387
- i0.ɵɵpipe(23, "translate");
388
- i0.ɵɵtemplate(24, PrintFormComponent_mat_error_24_Template, 4, 9, "mat-error", 3);
389
- i0.ɵɵelementEnd()();
390
- i0.ɵɵelementStart(25, "div", 6)(26, "div", 7)(27, "mat-slide-toggle", 8);
391
- i0.ɵɵtext(28);
392
- i0.ɵɵpipe(29, "translate");
393
- i0.ɵɵelementEnd();
394
- i0.ɵɵelementStart(30, "mat-slide-toggle", 9);
395
- i0.ɵɵtext(31);
396
- i0.ɵɵpipe(32, "translate");
397
- i0.ɵɵelementEnd();
398
- i0.ɵɵelementStart(33, "mat-slide-toggle", 10);
399
- i0.ɵɵtext(34);
400
- i0.ɵɵpipe(35, "translate");
401
- i0.ɵɵelementEnd()()();
402
- i0.ɵɵelementStart(36, "div", 1)(37, "mat-form-field")(38, "mat-label");
403
- i0.ɵɵtext(39);
404
- i0.ɵɵpipe(40, "translate");
405
- i0.ɵɵelementEnd();
406
- i0.ɵɵelementStart(41, "mat-select", 11);
407
- i0.ɵɵpipe(42, "translate");
408
- i0.ɵɵtemplate(43, PrintFormComponent_mat_option_43_Template, 3, 5, "mat-option", 12);
409
- i0.ɵɵpipe(44, "keyvalue");
410
- i0.ɵɵelementEnd()()();
411
- i0.ɵɵelementStart(45, "div", 1)(46, "mat-form-field")(47, "mat-label");
412
- i0.ɵɵtext(48);
413
- i0.ɵɵpipe(49, "translate");
414
- i0.ɵɵelementEnd();
415
- i0.ɵɵelementStart(50, "mat-select", 13);
416
- i0.ɵɵlistener("selectionChange", function PrintFormComponent_Template_mat_select_selectionChange_50_listener() { return ctx.toggleImageSaveProp(); });
417
- i0.ɵɵpipe(51, "translate");
418
- i0.ɵɵtemplate(52, PrintFormComponent_mat_option_52_Template, 2, 2, "mat-option", 12);
419
- i0.ɵɵpipe(53, "keyvalue");
420
- i0.ɵɵelementEnd()()();
421
- i0.ɵɵelementStart(54, "div", 1)(55, "mat-form-field")(56, "mat-label");
422
- i0.ɵɵtext(57);
423
- i0.ɵɵpipe(58, "translate");
424
- i0.ɵɵelementEnd();
425
- i0.ɵɵelementStart(59, "mat-select", 14);
426
- i0.ɵɵlistener("selectionChange", function PrintFormComponent_Template_mat_select_selectionChange_59_listener() { return ctx.changeCommentLength(); });
427
- i0.ɵɵpipe(60, "translate");
428
- i0.ɵɵtemplate(61, PrintFormComponent_mat_option_61_Template, 3, 4, "mat-option", 12);
429
- i0.ɵɵpipe(62, "keyvalue");
430
- i0.ɵɵelementEnd()()();
431
- i0.ɵɵelementStart(63, "div", 1)(64, "mat-form-field")(65, "mat-label");
432
- i0.ɵɵtext(66);
433
- i0.ɵɵpipe(67, "translate");
434
- i0.ɵɵelementEnd();
435
- i0.ɵɵelementStart(68, "mat-select", 15);
436
- i0.ɵɵpipe(69, "translate");
437
- i0.ɵɵtemplate(70, PrintFormComponent_mat_option_70_Template, 2, 2, "mat-option", 12);
438
- i0.ɵɵpipe(71, "keyvalue");
439
- i0.ɵɵelementEnd()()();
440
- i0.ɵɵelementStart(72, "div", 1)(73, "mat-form-field")(74, "mat-label");
441
- i0.ɵɵtext(75);
442
- i0.ɵɵpipe(76, "translate");
443
- i0.ɵɵpipe(77, "translate");
444
- i0.ɵɵelementEnd();
445
- i0.ɵɵelementStart(78, "mat-select", 16);
446
- i0.ɵɵpipe(79, "translate");
447
- i0.ɵɵtemplate(80, PrintFormComponent_mat_option_80_Template, 2, 2, "mat-option", 12);
448
- i0.ɵɵpipe(81, "keyvalue");
449
- i0.ɵɵelementEnd()()();
450
- i0.ɵɵelementStart(82, "div", 1)(83, "mat-form-field")(84, "mat-label");
451
- i0.ɵɵtext(85);
452
- i0.ɵɵpipe(86, "translate");
453
- i0.ɵɵelementEnd();
454
- i0.ɵɵelementStart(87, "mat-select", 17);
455
- i0.ɵɵlistener("selectionChange", function PrintFormComponent_Template_mat_select_selectionChange_87_listener() { return ctx.changeCommentLength(); });
456
- i0.ɵɵpipe(88, "translate");
457
- i0.ɵɵtemplate(89, PrintFormComponent_mat_option_89_Template, 3, 4, "mat-option", 12);
458
- i0.ɵɵpipe(90, "keyvalue");
459
- i0.ɵɵelementEnd()()();
460
- i0.ɵɵelementStart(91, "div", 18)(92, "button", 19);
461
- i0.ɵɵlistener("click", function PrintFormComponent_Template_button_click_92_listener() { return ctx.handleFormSubmit(ctx.form.value, ctx.form.valid); });
462
- i0.ɵɵpipe(93, "async");
463
- i0.ɵɵtext(94);
464
- i0.ɵɵpipe(95, "translate");
465
- i0.ɵɵelementEnd()()();
466
- } if (rf & 2) {
467
- i0.ɵɵproperty("formGroup", ctx.form);
468
- i0.ɵɵadvance(4);
469
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 45, "igo.geo.printForm.title"));
470
- i0.ɵɵadvance(2);
471
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(7, 47, "igo.geo.printForm.title"));
472
- i0.ɵɵadvance(2);
473
- i0.ɵɵproperty("ngIf", ctx.titleField.errors == null ? null : ctx.titleField.errors.maxlength);
474
- i0.ɵɵadvance(4);
475
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 49, "igo.geo.printForm.subtitle"));
476
- i0.ɵɵadvance(2);
477
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(15, 51, "igo.geo.printForm.subtitle"));
478
- i0.ɵɵadvance(2);
479
- i0.ɵɵproperty("ngIf", ctx.subtitleField.errors == null ? null : ctx.subtitleField.errors.maxlength);
480
- i0.ɵɵadvance(4);
481
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(21, 53, "igo.geo.printForm.comment"));
482
- i0.ɵɵadvance(2);
483
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(23, 55, "igo.geo.printForm.comment"));
484
- i0.ɵɵadvance(2);
485
- i0.ɵɵproperty("ngIf", ctx.commentField.errors == null ? null : ctx.commentField.errors.maxlength);
486
- i0.ɵɵadvance(3);
487
- i0.ɵɵproperty("labelPosition", "before");
488
- i0.ɵɵadvance(1);
489
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(29, 57, "igo.geo.printForm.showProjection"), " ");
490
- i0.ɵɵadvance(2);
491
- i0.ɵɵproperty("labelPosition", "before");
492
- i0.ɵɵadvance(1);
493
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(32, 59, "igo.geo.printForm.showScale"), " ");
494
- i0.ɵɵadvance(2);
495
- i0.ɵɵstyleProp("display", ctx.isPrintService ? "none" : "");
496
- i0.ɵɵproperty("labelPosition", "before");
497
- i0.ɵɵadvance(1);
498
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(35, 61, "igo.geo.printForm.doZipFile"), " ");
499
- i0.ɵɵadvance(5);
500
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(40, 63, "igo.geo.printForm.legendPosition"));
501
- i0.ɵɵadvance(2);
502
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(42, 65, "igo.geo.printForm.legendPosition"));
503
- i0.ɵɵadvance(2);
504
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(44, 67, ctx.legendPositions));
505
- i0.ɵɵadvance(5);
506
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(49, 69, "igo.geo.printForm.outputFormat"));
507
- i0.ɵɵadvance(2);
508
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(51, 71, "igo.geo.printForm.outputFormat"));
509
- i0.ɵɵadvance(2);
510
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(53, 73, ctx.outputFormats));
511
- i0.ɵɵadvance(2);
512
- i0.ɵɵstyleProp("display", ctx.isPrintService ? "block" : "none");
513
- i0.ɵɵadvance(3);
514
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(58, 75, "igo.geo.printForm.paperFormat"));
515
- i0.ɵɵadvance(2);
516
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(60, 77, "igo.geo.printForm.paperFormat"));
517
- i0.ɵɵadvance(2);
518
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(62, 79, ctx.paperFormats));
519
- i0.ɵɵadvance(2);
520
- i0.ɵɵstyleProp("display", ctx.isPrintService ? "none" : "block");
521
- i0.ɵɵadvance(3);
522
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(67, 81, "igo.geo.printForm.imageFormat"));
523
- i0.ɵɵadvance(2);
524
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(69, 83, "igo.geo.printForm.imageFormat"));
525
- i0.ɵɵadvance(2);
526
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(71, 85, ctx.imageFormats));
527
- i0.ɵɵadvance(5);
528
- i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(76, 87, "igo.geo.printForm.resolution"), " (", i0.ɵɵpipeBind1(77, 89, "igo.geo.printForm.resolutionUnit"), ")");
529
- i0.ɵɵadvance(3);
530
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(79, 91, "igo.geo.printForm.resolution"));
531
- i0.ɵɵadvance(2);
532
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(81, 93, ctx.resolutions));
533
- i0.ɵɵadvance(2);
534
- i0.ɵɵstyleProp("display", ctx.isPrintService ? "block" : "none");
535
- i0.ɵɵadvance(3);
536
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(86, 95, "igo.geo.printForm.orientation"));
537
- i0.ɵɵadvance(2);
538
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(88, 97, "igo.geo.printForm.orientation"));
539
- i0.ɵɵadvance(2);
540
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(90, 99, ctx.orientations));
541
- i0.ɵɵadvance(3);
542
- i0.ɵɵproperty("disabled", !ctx.form.valid || i0.ɵɵpipeBind1(93, 101, ctx.disabled$));
543
- i0.ɵɵadvance(2);
544
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(95, 103, "igo.geo.printForm.saveBtn"), " ");
545
- } }, dependencies: [i2.NgForOf, i2.NgIf, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i3.MatButton, i4.MatFormField, i4.MatLabel, i4.MatError, i5.MatSelect, i6.MatOption, i7.MatInput, i8.MatSlideToggle, i2.AsyncPipe, i9.TranslatePipe, i10.KeyValuePipe], styles: ["[_nghost-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .slide-toggle-container[_ngcontent-%COMP%]{margin-bottom:16px}[_nghost-%COMP%] .print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;padding:0 8px}[_nghost-%COMP%] .print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mdc-form-field{width:100%}[_nghost-%COMP%] .print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mdc-label{margin-left:0;width:calc(100% - 60px)}[_nghost-%COMP%] .print-option[_ngcontent-%COMP%]{display:block;margin-bottom:12px}[_nghost-%COMP%] .igo-form[_ngcontent-%COMP%]{padding:10px 5px 5px}[_nghost-%COMP%] .igo-form-button-group[_ngcontent-%COMP%]{text-align:center}"] });
251
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrintFormComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.MediaService }], target: i0.ɵɵFactoryTarget.Component });
252
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PrintFormComponent, selector: "igo-print-form", inputs: { disabled$: "disabled$", imageFormat: "imageFormat", outputFormat: "outputFormat", paperFormat: "paperFormat", orientation: "orientation", resolution: "resolution", legendPosition: "legendPosition", title: "title", subtitle: "subtitle", comment: "comment", showProjection: "showProjection", showScale: "showScale", showLegend: "showLegend", doZipFile: "doZipFile" }, outputs: { submit: "submit" }, ngImport: i0, template: "<form class=\"igo-form\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.title' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"title\"\r\n placeholder=\"{{ 'igo.geo.printForm.title' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"titleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.title' | translate,\r\n value: 130\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.subtitle' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"subtitle\"\r\n placeholder=\"{{ 'igo.geo.printForm.subtitle' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"subtitleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.subtitle' | translate,\r\n value: 120\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.comment' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"comment\"\r\n placeholder=\"{{ 'igo.geo.printForm.comment' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"commentField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.comment' | translate,\r\n value: maxLength\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container slide-toggle-container\">\r\n <div class=\"print-slide-toggle-container\">\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showProjection\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showProjection' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showScale\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showScale' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"doZipFile\"\r\n [labelPosition]=\"'before'\"\r\n [style.display]=\"isPrintService ? 'none' : ''\"\r\n >\r\n {{ 'igo.geo.printForm.doZipFile' | translate }}\r\n </mat-slide-toggle>\r\n </div>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'igo.geo.printForm.legendPosition' | translate\r\n }}</mat-label>\r\n <mat-select\r\n formControlName=\"legendPosition\"\r\n placeholder=\"{{ 'igo.geo.printForm.legendPosition' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let legendPosition of legendPositions | keyvalue\"\r\n [value]=\"legendPosition.key\"\r\n >\r\n <ng-container\r\n *ngIf=\"!['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n 'igo.geo.printForm.legendPositions.' + legendPosition.value\r\n | translate\r\n }}\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n (outputFormat === 'Pdf'\r\n ? 'igo.geo.printForm.legendPositions.newpage'\r\n : 'igo.geo.printForm.legendPositions.newimage'\r\n ) | translate\r\n }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.outputFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"toggleImageSaveProp()\"\r\n formControlName=\"outputFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.outputFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let outputFormat of outputFormats | keyvalue\"\r\n [value]=\"outputFormat.key\"\r\n >\r\n {{ outputFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.paperFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"paperFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.paperFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let paperFormat of paperFormats | keyvalue\"\r\n [value]=\"paperFormat.key\"\r\n >\r\n {{\r\n 'igo.geo.printForm.paperFormats.' + paperFormat.value | translate\r\n }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'none' : 'block'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.imageFormat' | translate }}</mat-label>\r\n <mat-select\r\n formControlName=\"imageFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.imageFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let imageFormat of imageFormats | keyvalue\"\r\n [value]=\"imageFormat.key\"\r\n >\r\n {{ imageFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label\r\n >{{ 'igo.geo.printForm.resolution' | translate }} ({{\r\n 'igo.geo.printForm.resolutionUnit' | translate\r\n }})</mat-label\r\n >\r\n <mat-select\r\n formControlName=\"resolution\"\r\n placeholder=\"{{ 'igo.geo.printForm.resolution' | translate }}\"\r\n >\r\n <mat-option *ngFor=\"let resolution of resolutions\" [value]=\"resolution\">\r\n {{ resolution }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.orientation' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"orientation\"\r\n placeholder=\"{{ 'igo.geo.printForm.orientation' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let orientation of orientations | keyvalue\"\r\n [value]=\"orientation.key\"\r\n >\r\n {{ 'igo.geo.printForm.' + orientation.value | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group print-button-top-padding\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (disabled$ | async)\"\r\n (click)=\"handleFormSubmit(form.value, form.valid)\"\r\n >\r\n {{ 'igo.geo.printForm.saveBtn' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n", styles: [":host mat-form-field{width:100%}:host .slide-toggle-container{margin-bottom:16px}:host .print-slide-toggle-container mat-slide-toggle{width:100%;padding:0 8px}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .print-option{display:block;margin-bottom:12px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: i11.KeyValuePipe, name: "keyvalue" }] });
546
253
  }
547
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrintFormComponent, [{
548
- type: Component,
549
- args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.title' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"title\"\r\n placeholder=\"{{ 'igo.geo.printForm.title' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"titleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.title' | translate,\r\n value: 130\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.subtitle' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"subtitle\"\r\n placeholder=\"{{ 'igo.geo.printForm.subtitle' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"subtitleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.subtitle' | translate,\r\n value: 120\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.comment' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"comment\"\r\n placeholder=\"{{ 'igo.geo.printForm.comment' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"commentField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.comment' | translate,\r\n value: maxLength\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container slide-toggle-container\">\r\n <div class=\"print-slide-toggle-container\">\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showProjection\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showProjection' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showScale\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showScale' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"doZipFile\"\r\n [labelPosition]=\"'before'\"\r\n [style.display]=\"isPrintService ? 'none' : ''\"\r\n >\r\n {{ 'igo.geo.printForm.doZipFile' | translate }}\r\n </mat-slide-toggle>\r\n </div>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'igo.geo.printForm.legendPosition' | translate\r\n }}</mat-label>\r\n <mat-select\r\n formControlName=\"legendPosition\"\r\n placeholder=\"{{ 'igo.geo.printForm.legendPosition' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let legendPosition of legendPositions | keyvalue\"\r\n [value]=\"legendPosition.key\"\r\n >\r\n <ng-container\r\n *ngIf=\"!['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n 'igo.geo.printForm.legendPositions.' + legendPosition.value\r\n | translate\r\n }}\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n (outputFormat === 'Pdf'\r\n ? 'igo.geo.printForm.legendPositions.newpage'\r\n : 'igo.geo.printForm.legendPositions.newimage'\r\n ) | translate\r\n }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.outputFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"toggleImageSaveProp()\"\r\n formControlName=\"outputFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.outputFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let outputFormat of outputFormats | keyvalue\"\r\n [value]=\"outputFormat.key\"\r\n >\r\n {{ outputFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.paperFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"paperFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.paperFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let paperFormat of paperFormats | keyvalue\"\r\n [value]=\"paperFormat.key\"\r\n >\r\n {{\r\n 'igo.geo.printForm.paperFormats.' + paperFormat.value | translate\r\n }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'none' : 'block'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.imageFormat' | translate }}</mat-label>\r\n <mat-select\r\n formControlName=\"imageFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.imageFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let imageFormat of imageFormats | keyvalue\"\r\n [value]=\"imageFormat.key\"\r\n >\r\n {{ imageFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label\r\n >{{ 'igo.geo.printForm.resolution' | translate }} ({{\r\n 'igo.geo.printForm.resolutionUnit' | translate\r\n }})</mat-label\r\n >\r\n <mat-select\r\n formControlName=\"resolution\"\r\n placeholder=\"{{ 'igo.geo.printForm.resolution' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let resolution of resolutions | keyvalue\"\r\n [value]=\"resolution.key\"\r\n >\r\n {{ resolution.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.orientation' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"orientation\"\r\n placeholder=\"{{ 'igo.geo.printForm.orientation' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let orientation of orientations | keyvalue\"\r\n [value]=\"orientation.key\"\r\n >\r\n {{ 'igo.geo.printForm.' + orientation.value | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group print-button-top-padding\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (disabled$ | async)\"\r\n (click)=\"handleFormSubmit(form.value, form.valid)\"\r\n >\r\n {{ 'igo.geo.printForm.saveBtn' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n", styles: [":host mat-form-field{width:100%}:host .slide-toggle-container{margin-bottom:16px}:host .print-slide-toggle-container mat-slide-toggle{width:100%;padding:0 8px}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .print-option{display:block;margin-bottom:12px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}\n"] }]
550
- }], function () { return [{ type: i1.UntypedFormBuilder }]; }, { disabled$: [{
551
- type: Input
552
- }], imageFormat: [{
553
- type: Input
554
- }], outputFormat: [{
555
- type: Input
556
- }], paperFormat: [{
557
- type: Input
558
- }], orientation: [{
559
- type: Input
560
- }], resolution: [{
561
- type: Input
562
- }], legendPosition: [{
563
- type: Input
564
- }], title: [{
565
- type: Input
566
- }], subtitle: [{
567
- type: Input
568
- }], comment: [{
569
- type: Input
570
- }], showProjection: [{
571
- type: Input
572
- }], showScale: [{
573
- type: Input
574
- }], showLegend: [{
575
- type: Input
576
- }], doZipFile: [{
577
- type: Input
578
- }], submit: [{
579
- type: Output
580
- }] }); })();
581
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9wcmludC9wcmludC1mb3JtL3ByaW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvcHJpbnQtZm9ybS9wcmludC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUNMLGtCQUFrQixFQUdsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG9CQUFvQixFQUNyQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ1R4QixpQ0FBZ0Q7SUFBQSxZQU85Qzs7O0lBQUEsaUJBQVk7O0lBUGtDLGVBTzlDO0lBUDhDLDJKQU85Qzs7OztJQVdGLGlDQUFtRDtJQUFBLFlBT2pEOzs7SUFBQSxpQkFBWTs7SUFQcUMsZUFPakQ7SUFQaUQsOEpBT2pEOzs7O0lBV0YsaUNBQWtEO0lBQUEsWUFPaEQ7OztJQUFBLGlCQUFZOzs7SUFQb0MsZUFPaEQ7SUFQZ0QsK0tBT2hEOzs7SUE0Q0UsNkJBRUM7SUFDQyxZQUlGOztJQUFBLDBCQUFlOzs7SUFKYixlQUlGO0lBSkUscUhBSUY7OztJQUVBLDZCQUVDO0lBQ0MsWUFNRjs7SUFBQSwwQkFBZTs7O0lBTmIsZUFNRjtJQU5FLGtMQU1GOzs7O0lBdEJGLHNDQUdDO0lBQ0MsbUdBT2U7SUFFZixtR0FTZTtJ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STFELGVBQStEO1lBQS9ELGdHQUErRDtZQUdyQyxlQUEwQjtZQUExQixrRUFBMEI7WUFheEQsZUFBbUQ7WUFBbkQsZ0VBQW1EO1lBR3RDLGVBQWlEO1lBQWpELDZFQUFpRDtZQUcxRCxlQUErRDtZQUEvRCxnR0FBK0Q7WUFHckMsZUFBMEI7WUFBMUIsa0VBQTBCO1lBWW5ELGVBRUU7WUFGRix3SkFFRTtZQUlILGVBQThEO1lBQTlELCtGQUE4RDtZQUdyQyxlQUF5QjtZQUF6QixpRUFBeUI7WUFXdEQsZUFBbUQ7WUFBbkQsZ0VBQW1EO1lBR3RDLGVBQWlEO1lBQWpELDZFQUFpRDtZQUkxRCxlQUErRDtZQUEvRCxnR0FBK0Q7WUFHckMsZUFBMEI7WUFBMUIsa0VBQTBCO1lBYXRELGVBQStDO1lBQS9DLG9GQUErQztZQUcvQyxlQUNGO1lBREUscUZBQ0Y7Ozt1RkQ5TVMsa0JBQWtCO2NBTDlCLFNBQVM7MkJBQ0UsZ0JBQWdCO3FFQWNqQixTQUFTO2tCQUFqQixLQUFLO1lBR0YsV0FBVztrQkFEZCxLQUFLO1lBV0YsWUFBWTtrQkFEZixLQUFLO1lBV0YsV0FBVztrQkFEZCxLQUFLO1lBV0YsV0FBVztrQkFEZCxLQUFLO1lBV0YsVUFBVTtrQkFEYixLQUFLO1lBV0YsY0FBYztrQkFEakIsS0FBSztZQVdGLEtBQUs7a0JBRFIsS0FBSztZQVFGLFFBQVE7a0JBRFgsS0FBSztZQVFGLE9BQU87a0JBRFYsS0FBSztZQVFGLGNBQWM7a0JBRGpCLEtBQUs7WUFRRixTQUFTO2tCQURaLEtBQUs7WUFRRixVQUFVO2tCQURiLEtBQUs7WUFTRixTQUFTO2tCQURaLEtBQUs7WUE0REksTUFBTTtrQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbiAgVW50eXBlZEZvcm1Hcm91cCxcclxuICBWYWxpZGF0b3JzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBQcmludE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvcHJpbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBQcmludExlZ2VuZFBvc2l0aW9uLFxyXG4gIFByaW50T3JpZW50YXRpb24sXHJcbiAgUHJpbnRPdXRwdXRGb3JtYXQsXHJcbiAgUHJpbnRQYXBlckZvcm1hdCxcclxuICBQcmludFJlc29sdXRpb24sXHJcbiAgUHJpbnRTYXZlSW1hZ2VGb3JtYXRcclxufSBmcm9tICcuLi9zaGFyZWQvcHJpbnQudHlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1wcmludC1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJpbnQtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJpbnQtZm9ybS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcmludEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBvdXRwdXRGb3JtYXRzID0gUHJpbnRPdXRwdXRGb3JtYXQ7XHJcbiAgcHVibGljIHBhcGVyRm9ybWF0cyA9IFByaW50UGFwZXJGb3JtYXQ7XHJcbiAgcHVibGljIG9yaWVudGF0aW9ucyA9IFByaW50T3JpZW50YXRpb247XHJcbiAgcHVibGljIHJlc29sdXRpb25zID0gUHJpbnRSZXNvbHV0aW9uO1xyXG4gIHB1YmxpYyBpbWFnZUZvcm1hdHMgPSBQcmludFNhdmVJbWFnZUZvcm1hdDtcclxuICBwdWJsaWMgbGVnZW5kUG9zaXRpb25zID0gUHJpbnRMZWdlbmRQb3NpdGlvbjtcclxuICBwdWJsaWMgaXNQcmludFNlcnZpY2UgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgaW1hZ2VGb3JtYXQoKTogUHJpbnRTYXZlSW1hZ2VGb3JtYXQge1xyXG4gICAgcmV0dXJuIHRoaXMuaW1hZ2VGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGltYWdlRm9ybWF0KHZhbHVlOiBQcmludFNhdmVJbWFnZUZvcm1hdCkge1xyXG4gICAgdGhpcy5pbWFnZUZvcm1hdEZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50U2F2ZUltYWdlRm9ybWF0LkpwZWcsIHtcclxuICAgICAgb25seVNlbGY6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgb3V0cHV0Rm9ybWF0KCk6IFByaW50T3V0cHV0Rm9ybWF0IHtcclxuICAgIHJldHVybiB0aGlzLm91dHB1dEZvcm1hdEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgb3V0cHV0Rm9ybWF0KHZhbHVlOiBQcmludE91dHB1dEZvcm1hdCkge1xyXG4gICAgdGhpcy5vdXRwdXRGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludE91dHB1dEZvcm1hdC5QZGYsIHtcclxuICAgICAgb25seVNlbGY6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgcGFwZXJGb3JtYXQoKTogUHJpbnRQYXBlckZvcm1hdCB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXBlckZvcm1hdEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgcGFwZXJGb3JtYXQodmFsdWU6IFByaW50UGFwZXJGb3JtYXQpIHtcclxuICAgIHRoaXMucGFwZXJGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludFBhcGVyRm9ybWF0LkxldHRlciwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBvcmllbnRhdGlvbigpOiBQcmludE9yaWVudGF0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLm9yaWVudGF0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBvcmllbnRhdGlvbih2YWx1ZTogUHJpbnRPcmllbnRhdGlvbikge1xyXG4gICAgdGhpcy5vcmllbnRhdGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlc29sdXRpb24oKTogUHJpbnRSZXNvbHV0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLnJlc29sdXRpb25GaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHJlc29sdXRpb24odmFsdWU6IFByaW50UmVzb2x1dGlvbikge1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRSZXNvbHV0aW9uWyc5NiddLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGxlZ2VuZFBvc2l0aW9uKCk6IFByaW50TGVnZW5kUG9zaXRpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMubGVnZW5kUG9zaXRpb25GaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGxlZ2VuZFBvc2l0aW9uKHZhbHVlOiBQcmludExlZ2VuZFBvc2l0aW9uKSB7XHJcbiAgICB0aGlzLmxlZ2VuZFBvc2l0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRMZWdlbmRQb3NpdGlvbi5ub25lLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50aXRsZUZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy50aXRsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBzdWJ0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc3VidGl0bGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHN1YnRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc3VidGl0bGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgY29tbWVudCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tbWVudEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgY29tbWVudCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNvbW1lbnRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgc2hvd1Byb2plY3Rpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93UHJvamVjdGlvbkZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd1Byb2plY3Rpb24odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2hvd1Byb2plY3Rpb25GaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgc2hvd1NjYWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd1NjYWxlRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBzaG93U2NhbGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2hvd1NjYWxlRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dMZWdlbmQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93TGVnZW5kRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBzaG93TGVnZW5kKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dMZWdlbmRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRvWmlwRmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRvWmlwRmlsZUZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgZG9aaXBGaWxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRvWmlwRmlsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG91dHB1dEZvcm1hdEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5vdXRwdXRGb3JtYXQgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhcGVyRm9ybWF0RmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnBhcGVyRm9ybWF0IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBpbWFnZUZvcm1hdEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5pbWFnZUZvcm1hdCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgb3JpZW50YXRpb25GaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkub3JpZW50YXRpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlc29sdXRpb25GaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkucmVzb2x1dGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgY29tbWVudEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5jb21tZW50IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBzaG93UHJvamVjdGlvbkZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93UHJvamVjdGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1NjYWxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnNob3dTY2FsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd0xlZ2VuZEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93TGVnZW5kIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBkb1ppcEZpbGVGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuZG9aaXBGaWxlIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCB0aXRsZUZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS50aXRsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc3VidGl0bGVGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc3VidGl0bGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxlZ2VuZFBvc2l0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLmxlZ2VuZFBvc2l0aW9uIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBzdWJtaXQ6IEV2ZW50RW1pdHRlcjxQcmludE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBtYXhMZW5ndGg6IG51bWJlciA9IDE4MDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgdGl0bGU6IFsnJywgW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDApLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMzApXV0sXHJcbiAgICAgIHN1YnRpdGxlOiBbJycsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKV1dLFxyXG4gICAgICBjb21tZW50OiBbXHJcbiAgICAgICAgJycsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDApLCBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heExlbmd0aCldXHJcbiAgICAgIF0sXHJcbiAgICAgIG91dHB1dEZvcm1hdDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBwYXBlckZvcm1hdDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBpbWFnZUZvcm1hdDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICByZXNvbHV0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIG9yaWVudGF0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIGxlZ2VuZFBvc2l0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHNob3dQcm9qZWN0aW9uOiBmYWxzZSxcclxuICAgICAgc2hvd1NjYWxlOiBmYWxzZSxcclxuICAgICAgc2hvd0xlZ2VuZDogZmFsc2UsXHJcbiAgICAgIGRvWmlwRmlsZTogW3sgaGlkZGVuOiB0aGlzLmlzUHJpbnRTZXJ2aWNlIH1dXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kb1ppcEZpbGVGaWVsZC5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGb3JtU3VibWl0KGRhdGE6IFByaW50T3B0aW9ucywgaXNWYWxpZDogYm9vbGVhbikge1xyXG4gICAgZGF0YS5pc1ByaW50U2VydmljZSA9IHRoaXMuaXNQcmludFNlcnZpY2U7XHJcbiAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICB0aGlzLnN1Ym1pdC5lbWl0KGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlSW1hZ2VTYXZlUHJvcCgpIHtcclxuICAgIGlmICh0aGlzLm91dHB1dEZvcm1hdEZpZWxkLnZhbHVlID09PSAnSW1hZ2UnKSB7XHJcbiAgICAgIHRoaXMuaXNQcmludFNlcnZpY2UgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jb21tZW50RmllbGQuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIHRoaXMuY29tbWVudEZpZWxkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNQcmludFNlcnZpY2UgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlQ29tbWVudExlbmd0aCgpIHtcclxuICAgIHN3aXRjaCAodGhpcy5wYXBlckZvcm1hdCkge1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTA6XHJcbiAgICAgICAgLy8gQTAsIGxhbmRzY2FwZSwgbGVuZ3RoIDkwMCB8IEEwLCBwb3J0cmFpdCwgY29tbWVudCBsZW5ndGg6ICA2MDBcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDkwMCA6IDYwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkExOlxyXG4gICAgICAgIC8vIEExLCBsYW5kc2NhcGUsIGxlbmd0aCA2MDAgfCBBMSwgcG9ydHJhaXQsIGxlbmd0aCA0MDA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyA2MDAgOiA0MDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJpbnRQYXBlckZvcm1hdC5BMjpcclxuICAgICAgICAvLyBBMiwgbGFuZHNjYXBlLCBsZW5ndGggNDAwIHwgQTIsIHBvcnRyYWl0LCBsZW5ndGggMzAwO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gNDAwIDogMzAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTM6XHJcbiAgICAgICAgLy8gQTMsIGxhbmRzY2FwZSwgbGVuZ3RoIDMwMCB8IEEzLCBwb3J0cmFpdCwgbGVuZ3RoIDIwMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDMwMCA6IDIwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkE0OlxyXG4gICAgICAgIC8vIEE0LCBsYW5kc2NhcGUgbGVuZ3RoIDIwMCB8IEE0LCBwb3J0cmFpdCBsZW5ndGggMTIwO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gMjAwIDogMTAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTU6XHJcbiAgICAgICAgLy8gQTUsIGxhbmRzY2FwZSBsZW5ndGggMTIwIHwgQTUsIHBvcnRyYWl0IGxlbmd0aCA4MDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDEyMCA6IDgwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuTGV0dGVyOlxyXG4gICAgICAgIC8vIGxldHRyZSwgbGFuZHNjYXBlLCAxODAgfCBsZXR0cmUsIHBvcnRyYWl0LCAxNDBcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDE4MCA6IDE0MDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICAvLyBsZWdhbCwgbGFuZHNjYXBlLCAyMDAgfCBsZWdhbCwgcG9ydHJhaXQsIDE0MFxyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gMjAwIDogMTQwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29tbWVudEZpZWxkLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4TGVuZ3RoKV0pO1xyXG4gICAgdGhpcy5jb21tZW50RmllbGQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBjbGFzcz1cImlnby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0udGl0bGUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJ0aXRsZUZpZWxkLmVycm9ycz8ubWF4bGVuZ3RoXCI+e3tcclxuICAgICAgICAnaWdvLmdlby5mb3JtVmFsaWRhdGlvbi5tYXhMZW5ndGgnXHJcbiAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgIGNvbHVtbjogJ2lnby5nZW8ucHJpbnRGb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiAxMzBcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgIH19PC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLnN1YnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN1YnRpdGxlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zdWJ0aXRsZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAvPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwic3VidGl0bGVGaWVsZC5lcnJvcnM/Lm1heGxlbmd0aFwiPnt7XHJcbiAgICAgICAgJ2lnby5nZW8uZm9ybVZhbGlkYXRpb24ubWF4TGVuZ3RoJ1xyXG4gICAgICAgICAgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW46ICdpZ28uZ2VvLnByaW50Rm9ybS5zdWJ0aXRsZScgfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogMTIwXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5jb21tZW50JyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbW1lbnRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLmNvbW1lbnQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgLz5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbW1lbnRGaWVsZC5lcnJvcnM/Lm1heGxlbmd0aFwiPnt7XHJcbiAgICAgICAgJ2lnby5nZW8uZm9ybVZhbGlkYXRpb24ubWF4TGVuZ3RoJ1xyXG4gICAgICAgICAgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW46ICdpZ28uZ2VvLnByaW50Rm9ybS5jb21tZW50JyB8IHRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBtYXhMZW5ndGhcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgIH19PC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lciBzbGlkZS10b2dnbGUtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJpbnQtc2xpZGUtdG9nZ2xlLWNvbnRhaW5lclwiPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzaG93UHJvamVjdGlvblwiXHJcbiAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgJ2lnby5nZW8ucHJpbnRGb3JtLnNob3dQcm9qZWN0aW9uJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgY2xhc3M9XCJwcmludC1vcHRpb25cIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNob3dTY2FsZVwiXHJcbiAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgJ2lnby5nZW8ucHJpbnRGb3JtLnNob3dTY2FsZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkb1ppcEZpbGVcIlxyXG4gICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcclxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdub25lJyA6ICcnXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5kb1ppcEZpbGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7XHJcbiAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLmxlZ2VuZFBvc2l0aW9uJyB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2VuZFBvc2l0aW9uXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBsZWdlbmRQb3NpdGlvbiBvZiBsZWdlbmRQb3NpdGlvbnMgfCBrZXl2YWx1ZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwibGVnZW5kUG9zaXRpb24ua2V5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIVsnbmV3cGFnZScsICduZXdpbWFnZSddLmluY2x1ZGVzKGxlZ2VuZFBvc2l0aW9uLnZhbHVlKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLmxlZ2VuZFBvc2l0aW9ucy4nICsgbGVnZW5kUG9zaXRpb24udmFsdWVcclxuICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwiWyduZXdwYWdlJywgJ25ld2ltYWdlJ10uaW5jbHVkZXMobGVnZW5kUG9zaXRpb24udmFsdWUpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAob3V0cHV0Rm9ybWF0ID09PSAnUGRmJ1xyXG4gICAgICAgICAgICAgICAgPyAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLm5ld3BhZ2UnXHJcbiAgICAgICAgICAgICAgICA6ICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbnMubmV3aW1hZ2UnXHJcbiAgICAgICAgICAgICAgKSB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5vdXRwdXRGb3JtYXQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJ0b2dnbGVJbWFnZVNhdmVQcm9wKClcIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm91dHB1dEZvcm1hdFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0ub3V0cHV0Rm9ybWF0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG91dHB1dEZvcm1hdCBvZiBvdXRwdXRGb3JtYXRzIHwga2V5dmFsdWVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIm91dHB1dEZvcm1hdC5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IG91dHB1dEZvcm1hdC52YWx1ZSB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ2Jsb2NrJyA6ICdub25lJ1wiXHJcbiAgPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUNvbW1lbnRMZW5ndGgoKVwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFwZXJGb3JtYXRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLnBhcGVyRm9ybWF0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHBhcGVyRm9ybWF0IG9mIHBhcGVyRm9ybWF0cyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJwYXBlckZvcm1hdC5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICdpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdHMuJyArIHBhcGVyRm9ybWF0LnZhbHVlIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ25vbmUnIDogJ2Jsb2NrJ1wiXHJcbiAgPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5pbWFnZUZvcm1hdCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZUZvcm1hdFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0uaW1hZ2VGb3JtYXQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaW1hZ2VGb3JtYXQgb2YgaW1hZ2VGb3JtYXRzIHwga2V5dmFsdWVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cImltYWdlRm9ybWF0LmtleVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgaW1hZ2VGb3JtYXQudmFsdWUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWxcclxuICAgICAgICA+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLnJlc29sdXRpb24nIHwgdHJhbnNsYXRlIH19ICh7e1xyXG4gICAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLnJlc29sdXRpb25Vbml0JyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgIH19KTwvbWF0LWxhYmVsXHJcbiAgICAgID5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXNvbHV0aW9uXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5yZXNvbHV0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHJlc29sdXRpb24gb2YgcmVzb2x1dGlvbnMgfCBrZXl2YWx1ZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwicmVzb2x1dGlvbi5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IHJlc29sdXRpb24udmFsdWUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiXHJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdibG9jaycgOiAnbm9uZSdcIlxyXG4gID5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0ub3JpZW50YXRpb24nIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VDb21tZW50TGVuZ3RoKClcIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9yaWVudGF0aW9uXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5vcmllbnRhdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcmllbnRhdGlvbiBvZiBvcmllbnRhdGlvbnMgfCBrZXl2YWx1ZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwib3JpZW50YXRpb24ua2V5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyAnaWdvLmdlby5wcmludEZvcm0uJyArIG9yaWVudGF0aW9uLnZhbHVlIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwIHByaW50LWJ1dHRvbi10b3AtcGFkZGluZ1wiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkIHx8IChkaXNhYmxlZCQgfCBhc3luYylcIlxyXG4gICAgICAoY2xpY2spPVwiaGFuZGxlRm9ybVN1Ym1pdChmb3JtLnZhbHVlLCBmb3JtLnZhbGlkKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zYXZlQnRuJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrintFormComponent, decorators: [{
255
+ type: Component,
256
+ args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.title' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"title\"\r\n placeholder=\"{{ 'igo.geo.printForm.title' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"titleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.title' | translate,\r\n value: 130\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.subtitle' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"subtitle\"\r\n placeholder=\"{{ 'igo.geo.printForm.subtitle' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"subtitleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.subtitle' | translate,\r\n value: 120\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.comment' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"comment\"\r\n placeholder=\"{{ 'igo.geo.printForm.comment' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"commentField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.comment' | translate,\r\n value: maxLength\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container slide-toggle-container\">\r\n <div class=\"print-slide-toggle-container\">\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showProjection\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showProjection' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showScale\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showScale' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"doZipFile\"\r\n [labelPosition]=\"'before'\"\r\n [style.display]=\"isPrintService ? 'none' : ''\"\r\n >\r\n {{ 'igo.geo.printForm.doZipFile' | translate }}\r\n </mat-slide-toggle>\r\n </div>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'igo.geo.printForm.legendPosition' | translate\r\n }}</mat-label>\r\n <mat-select\r\n formControlName=\"legendPosition\"\r\n placeholder=\"{{ 'igo.geo.printForm.legendPosition' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let legendPosition of legendPositions | keyvalue\"\r\n [value]=\"legendPosition.key\"\r\n >\r\n <ng-container\r\n *ngIf=\"!['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n 'igo.geo.printForm.legendPositions.' + legendPosition.value\r\n | translate\r\n }}\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n (outputFormat === 'Pdf'\r\n ? 'igo.geo.printForm.legendPositions.newpage'\r\n : 'igo.geo.printForm.legendPositions.newimage'\r\n ) | translate\r\n }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.outputFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"toggleImageSaveProp()\"\r\n formControlName=\"outputFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.outputFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let outputFormat of outputFormats | keyvalue\"\r\n [value]=\"outputFormat.key\"\r\n >\r\n {{ outputFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.paperFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"paperFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.paperFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let paperFormat of paperFormats | keyvalue\"\r\n [value]=\"paperFormat.key\"\r\n >\r\n {{\r\n 'igo.geo.printForm.paperFormats.' + paperFormat.value | translate\r\n }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'none' : 'block'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.imageFormat' | translate }}</mat-label>\r\n <mat-select\r\n formControlName=\"imageFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.imageFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let imageFormat of imageFormats | keyvalue\"\r\n [value]=\"imageFormat.key\"\r\n >\r\n {{ imageFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label\r\n >{{ 'igo.geo.printForm.resolution' | translate }} ({{\r\n 'igo.geo.printForm.resolutionUnit' | translate\r\n }})</mat-label\r\n >\r\n <mat-select\r\n formControlName=\"resolution\"\r\n placeholder=\"{{ 'igo.geo.printForm.resolution' | translate }}\"\r\n >\r\n <mat-option *ngFor=\"let resolution of resolutions\" [value]=\"resolution\">\r\n {{ resolution }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.orientation' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"orientation\"\r\n placeholder=\"{{ 'igo.geo.printForm.orientation' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let orientation of orientations | keyvalue\"\r\n [value]=\"orientation.key\"\r\n >\r\n {{ 'igo.geo.printForm.' + orientation.value | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group print-button-top-padding\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (disabled$ | async)\"\r\n (click)=\"handleFormSubmit(form.value, form.valid)\"\r\n >\r\n {{ 'igo.geo.printForm.saveBtn' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n", styles: [":host mat-form-field{width:100%}:host .slide-toggle-container{margin-bottom:16px}:host .print-slide-toggle-container mat-slide-toggle{width:100%;padding:0 8px}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .print-option{display:block;margin-bottom:12px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}\n"] }]
257
+ }], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }, { type: i2.MediaService }]; }, propDecorators: { disabled$: [{
258
+ type: Input
259
+ }], imageFormat: [{
260
+ type: Input
261
+ }], outputFormat: [{
262
+ type: Input
263
+ }], paperFormat: [{
264
+ type: Input
265
+ }], orientation: [{
266
+ type: Input
267
+ }], resolution: [{
268
+ type: Input
269
+ }], legendPosition: [{
270
+ type: Input
271
+ }], title: [{
272
+ type: Input
273
+ }], subtitle: [{
274
+ type: Input
275
+ }], comment: [{
276
+ type: Input
277
+ }], showProjection: [{
278
+ type: Input
279
+ }], showScale: [{
280
+ type: Input
281
+ }], showLegend: [{
282
+ type: Input
283
+ }], doZipFile: [{
284
+ type: Input
285
+ }], submit: [{
286
+ type: Output
287
+ }] } });
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9wcmludC9wcmludC1mb3JtL3ByaW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvcHJpbnQtZm9ybS9wcmludC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUNMLGtCQUFrQixFQUdsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3JCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPOUIsTUFBTSxPQUFPLGtCQUFrQjtJQW9MbkI7SUFDQTtJQXBMSCxJQUFJLENBQW1CO0lBQ3ZCLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQztJQUNsQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUM7SUFDaEMsWUFBWSxHQUFHLGdCQUFnQixDQUFDO0lBQ2hDLFdBQVcsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDbkMsWUFBWSxHQUFHLG9CQUFvQixDQUFDO0lBQ3BDLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztJQUN0QyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBRXBCLFNBQVMsQ0FBMkI7SUFFN0MsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUEyQjtRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUU7WUFDakUsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFDSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxLQUF3QjtRQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDOUQsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUF1QjtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDL0QsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUF1QjtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUU7WUFDbEUsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFDSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsS0FBc0I7UUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBOEIsQ0FBQyxFQUFFO1lBQ3ZFLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQ0ksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLEtBQTBCO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRTtZQUNuRSxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFhO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQ0ksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQWM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFnQixDQUFDLFlBQWtDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFnQixDQUFDLFdBQWlDLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFnQixDQUFDLFdBQWlDLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFnQixDQUFDLFdBQWlDLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxVQUFnQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxPQUE2QixDQUFDO0lBQ25FLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxjQUFvQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQWdCLENBQUMsU0FBK0IsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFnQixDQUFDLFVBQWdDLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxTQUErQixDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxLQUEyQixDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxRQUE4QixDQUFDO0lBQ3BFLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxjQUFvQyxDQUFDO0lBQzFFLENBQUM7SUFFUyxNQUFNLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbEUsU0FBUyxHQUFXLEdBQUcsQ0FBQztJQUV4QixZQUNVLFdBQStCLEVBQy9CLFlBQTBCO1FBRDFCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUVsQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2pDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLE9BQU8sRUFBRTtnQkFDUCxFQUFFO2dCQUNGLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNoRTtZQUNELFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsY0FBYyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUM3QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUN4QyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FDckMsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWtCLEVBQUUsT0FBZ0I7UUFDbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFDLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssS0FBSyxPQUFPLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDNUM7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixRQUFRLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDeEIsS0FBSyxnQkFBZ0IsQ0FBQyxFQUFFO2dCQUN0QixpRUFBaUU7Z0JBQ2pFLElBQUksQ0FBQyxTQUFTO29CQUNaLElBQUksQ0FBQyxXQUFXLEtBQUssZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDOUQsTUFBTTtZQUNSLEtBQUssZ0JBQWdCLENBQUMsRUFBRTtnQkFDdEIsd0RBQXdEO2dCQUN4RCxJQUFJLENBQUMsU0FBUztvQkFDWixJQUFJLENBQUMsV0FBVyxLQUFLLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQzlELE1BQU07WUFDUixLQUFLLGdCQUFnQixDQUFDLEVBQUU7Z0JBQ3RCLHdEQUF3RDtnQkFDeEQsSUFBSSxDQUFDLFNBQVM7b0JBQ1osSUFBSSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO2dCQUM5RCxNQUFNO1lBQ1IsS0FBSyxnQkFBZ0IsQ0FBQyxFQUFFO2dCQUN0Qix3REFBd0Q7Z0JBQ3hELElBQUksQ0FBQyxTQUFTO29CQUNaLElBQUksQ0FBQyxXQUFXLEtBQUssZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDOUQsTUFBTTtZQUNSLEtBQUssZ0JBQWdCLENBQUMsRUFBRTtnQkFDdEIsc0RBQXNEO2dCQUN0RCxJQUFJLENBQUMsU0FBUztvQkFDWixJQUFJLENBQUMsV0FBVyxLQUFLLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQzlELE1BQU07WUFDUixLQUFLLGdCQUFnQixDQUFDLEVBQUU7Z0JBQ3RCLHFEQUFxRDtnQkFDckQsSUFBSSxDQUFDLFNBQVM7b0JBQ1osSUFBSSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxNQUFNO1lBQ1IsS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNO2dCQUMxQixpREFBaUQ7Z0JBQ2pELElBQUksQ0FBQyxTQUFTO29CQUNaLElBQUksQ0FBQyxXQUFXLEtBQUssZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDOUQsTUFBTTtZQUNSO2dCQUNFLCtDQUErQztnQkFDL0MsSUFBSSxDQUFDLFNBQVM7b0JBQ1osSUFBSSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO2dCQUM5RCxNQUFNO1NBQ1Q7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDN0MsQ0FBQzt3R0FuUlUsa0JBQWtCOzRGQUFsQixrQkFBa0IsNmNDM0IvQixrdVBBdU9BOzs0RkQ1TWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGdCQUFnQjtvSUFjakIsU0FBUztzQkFBakIsS0FBSztnQkFHRixXQUFXO3NCQURkLEtBQUs7Z0JBV0YsWUFBWTtzQkFEZixLQUFLO2dCQVdGLFdBQVc7c0JBRGQsS0FBSztnQkFXRixXQUFXO3NCQURkLEtBQUs7Z0JBV0YsVUFBVTtzQkFEYixLQUFLO2dCQVdGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBV0YsS0FBSztzQkFEUixLQUFLO2dCQVFGLFFBQVE7c0JBRFgsS0FBSztnQkFRRixPQUFPO3NCQURWLEtBQUs7Z0JBUUYsY0FBYztzQkFEakIsS0FBSztnQkFRRixTQUFTO3NCQURaLEtBQUs7Z0JBUUYsVUFBVTtzQkFEYixLQUFLO2dCQVNGLFNBQVM7c0JBRFosS0FBSztnQkE0REksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbiAgVW50eXBlZEZvcm1Hcm91cCxcclxuICBWYWxpZGF0b3JzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFByaW50T3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9wcmludC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIFByaW50TGVnZW5kUG9zaXRpb24sXHJcbiAgUHJpbnRPcmllbnRhdGlvbixcclxuICBQcmludE91dHB1dEZvcm1hdCxcclxuICBQcmludFBhcGVyRm9ybWF0LFxyXG4gIFByaW50UmVzb2x1dGlvbixcclxuICBQcmludFNhdmVJbWFnZUZvcm1hdFxyXG59IGZyb20gJy4uL3NoYXJlZC9wcmludC50eXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXByaW50LWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmludC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcmludC1mb3JtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFByaW50Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIG91dHB1dEZvcm1hdHMgPSBQcmludE91dHB1dEZvcm1hdDtcclxuICBwdWJsaWMgcGFwZXJGb3JtYXRzID0gUHJpbnRQYXBlckZvcm1hdDtcclxuICBwdWJsaWMgb3JpZW50YXRpb25zID0gUHJpbnRPcmllbnRhdGlvbjtcclxuICBwdWJsaWMgcmVzb2x1dGlvbnMgPSBbLi4uUHJpbnRSZXNvbHV0aW9uXTtcclxuICBwdWJsaWMgaW1hZ2VGb3JtYXRzID0gUHJpbnRTYXZlSW1hZ2VGb3JtYXQ7XHJcbiAgcHVibGljIGxlZ2VuZFBvc2l0aW9ucyA9IFByaW50TGVnZW5kUG9zaXRpb247XHJcbiAgcHVibGljIGlzUHJpbnRTZXJ2aWNlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGltYWdlRm9ybWF0KCk6IFByaW50U2F2ZUltYWdlRm9ybWF0IHtcclxuICAgIHJldHVybiB0aGlzLmltYWdlRm9ybWF0RmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBpbWFnZUZvcm1hdCh2YWx1ZTogUHJpbnRTYXZlSW1hZ2VGb3JtYXQpIHtcclxuICAgIHRoaXMuaW1hZ2VGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludFNhdmVJbWFnZUZvcm1hdC5KcGVnLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG91dHB1dEZvcm1hdCgpOiBQcmludE91dHB1dEZvcm1hdCB7XHJcbiAgICByZXR1cm4gdGhpcy5vdXRwdXRGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IG91dHB1dEZvcm1hdCh2YWx1ZTogUHJpbnRPdXRwdXRGb3JtYXQpIHtcclxuICAgIHRoaXMub3V0cHV0Rm9ybWF0RmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRPdXRwdXRGb3JtYXQuUGRmLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBhcGVyRm9ybWF0KCk6IFByaW50UGFwZXJGb3JtYXQge1xyXG4gICAgcmV0dXJuIHRoaXMucGFwZXJGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHBhcGVyRm9ybWF0KHZhbHVlOiBQcmludFBhcGVyRm9ybWF0KSB7XHJcbiAgICB0aGlzLnBhcGVyRm9ybWF0RmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRQYXBlckZvcm1hdC5MZXR0ZXIsIHtcclxuICAgICAgb25seVNlbGY6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgb3JpZW50YXRpb24oKTogUHJpbnRPcmllbnRhdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbkZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgb3JpZW50YXRpb24odmFsdWU6IFByaW50T3JpZW50YXRpb24pIHtcclxuICAgIHRoaXMub3JpZW50YXRpb25GaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXNvbHV0aW9uKCk6IFByaW50UmVzb2x1dGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNvbHV0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCByZXNvbHV0aW9uKHZhbHVlOiBQcmludFJlc29sdXRpb24pIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8ICgnOTYnIHNhdGlzZmllcyBQcmludFJlc29sdXRpb24pLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGxlZ2VuZFBvc2l0aW9uKCk6IFByaW50TGVnZW5kUG9zaXRpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMubGVnZW5kUG9zaXRpb25GaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGxlZ2VuZFBvc2l0aW9uKHZhbHVlOiBQcmludExlZ2VuZFBvc2l0aW9uKSB7XHJcbiAgICB0aGlzLmxlZ2VuZFBvc2l0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRMZWdlbmRQb3NpdGlvbi5ub25lLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50aXRsZUZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy50aXRsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBzdWJ0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc3VidGl0bGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHN1YnRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc3VidGl0bGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgY29tbWVudCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tbWVudEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgY29tbWVudCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNvbW1lbnRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgc2hvd1Byb2plY3Rpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93UHJvamVjdGlvbkZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd1Byb2plY3Rpb24odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2hvd1Byb2plY3Rpb25GaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgc2hvd1NjYWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd1NjYWxlRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBzaG93U2NhbGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2hvd1NjYWxlRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dMZWdlbmQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93TGVnZW5kRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBzaG93TGVnZW5kKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dMZWdlbmRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRvWmlwRmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRvWmlwRmlsZUZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgZG9aaXBGaWxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRvWmlwRmlsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG91dHB1dEZvcm1hdEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5vdXRwdXRGb3JtYXQgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhcGVyRm9ybWF0RmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnBhcGVyRm9ybWF0IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBpbWFnZUZvcm1hdEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5pbWFnZUZvcm1hdCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgb3JpZW50YXRpb25GaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkub3JpZW50YXRpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlc29sdXRpb25GaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkucmVzb2x1dGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgY29tbWVudEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5jb21tZW50IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBzaG93UHJvamVjdGlvbkZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93UHJvamVjdGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1NjYWxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnNob3dTY2FsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd0xlZ2VuZEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93TGVnZW5kIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBkb1ppcEZpbGVGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuZG9aaXBGaWxlIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCB0aXRsZUZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS50aXRsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc3VidGl0bGVGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc3VidGl0bGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxlZ2VuZFBvc2l0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLmxlZ2VuZFBvc2l0aW9uIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBzdWJtaXQ6IEV2ZW50RW1pdHRlcjxQcmludE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBtYXhMZW5ndGg6IG51bWJlciA9IDE4MDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgdGl0bGU6IFsnJywgW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDApLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMzApXV0sXHJcbiAgICAgIHN1YnRpdGxlOiBbJycsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKV1dLFxyXG4gICAgICBjb21tZW50OiBbXHJcbiAgICAgICAgJycsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDApLCBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heExlbmd0aCldXHJcbiAgICAgIF0sXHJcbiAgICAgIG91dHB1dEZvcm1hdDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBwYXBlckZvcm1hdDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBpbWFnZUZvcm1hdDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICByZXNvbHV0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIG9yaWVudGF0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIGxlZ2VuZFBvc2l0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHNob3dQcm9qZWN0aW9uOiBmYWxzZSxcclxuICAgICAgc2hvd1NjYWxlOiBmYWxzZSxcclxuICAgICAgc2hvd0xlZ2VuZDogZmFsc2UsXHJcbiAgICAgIGRvWmlwRmlsZTogW3sgaGlkZGVuOiB0aGlzLmlzUHJpbnRTZXJ2aWNlIH1dXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kb1ppcEZpbGVGaWVsZC5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICBpZiAodGhpcy5tZWRpYVNlcnZpY2UuaXNNb2JpbGUoKSkge1xyXG4gICAgICB0aGlzLnJlc29sdXRpb25zID0gdGhpcy5yZXNvbHV0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgKHJlc29sdXRpb24pID0+IHJlc29sdXRpb24gIT09ICczMDAnXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGb3JtU3VibWl0KGRhdGE6IFByaW50T3B0aW9ucywgaXNWYWxpZDogYm9vbGVhbikge1xyXG4gICAgZGF0YS5pc1ByaW50U2VydmljZSA9IHRoaXMuaXNQcmludFNlcnZpY2U7XHJcbiAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICB0aGlzLnN1Ym1pdC5lbWl0KGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlSW1hZ2VTYXZlUHJvcCgpIHtcclxuICAgIGlmICh0aGlzLm91dHB1dEZvcm1hdEZpZWxkLnZhbHVlID09PSAnSW1hZ2UnKSB7XHJcbiAgICAgIHRoaXMuaXNQcmludFNlcnZpY2UgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jb21tZW50RmllbGQuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIHRoaXMuY29tbWVudEZpZWxkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNQcmludFNlcnZpY2UgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlQ29tbWVudExlbmd0aCgpIHtcclxuICAgIHN3aXRjaCAodGhpcy5wYXBlckZvcm1hdCkge1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTA6XHJcbiAgICAgICAgLy8gQTAsIGxhbmRzY2FwZSwgbGVuZ3RoIDkwMCB8IEEwLCBwb3J0cmFpdCwgY29tbWVudCBsZW5ndGg6ICA2MDBcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDkwMCA6IDYwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkExOlxyXG4gICAgICAgIC8vIEExLCBsYW5kc2NhcGUsIGxlbmd0aCA2MDAgfCBBMSwgcG9ydHJhaXQsIGxlbmd0aCA0MDA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyA2MDAgOiA0MDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJpbnRQYXBlckZvcm1hdC5BMjpcclxuICAgICAgICAvLyBBMiwgbGFuZHNjYXBlLCBsZW5ndGggNDAwIHwgQTIsIHBvcnRyYWl0LCBsZW5ndGggMzAwO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gNDAwIDogMzAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTM6XHJcbiAgICAgICAgLy8gQTMsIGxhbmRzY2FwZSwgbGVuZ3RoIDMwMCB8IEEzLCBwb3J0cmFpdCwgbGVuZ3RoIDIwMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDMwMCA6IDIwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkE0OlxyXG4gICAgICAgIC8vIEE0LCBsYW5kc2NhcGUgbGVuZ3RoIDIwMCB8IEE0LCBwb3J0cmFpdCBsZW5ndGggMTIwO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gMjAwIDogMTAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTU6XHJcbiAgICAgICAgLy8gQTUsIGxhbmRzY2FwZSBsZW5ndGggMTIwIHwgQTUsIHBvcnRyYWl0IGxlbmd0aCA4MDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDEyMCA6IDgwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuTGV0dGVyOlxyXG4gICAgICAgIC8vIGxldHRyZSwgbGFuZHNjYXBlLCAxODAgfCBsZXR0cmUsIHBvcnRyYWl0LCAxNDBcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDE4MCA6IDE0MDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICAvLyBsZWdhbCwgbGFuZHNjYXBlLCAyMDAgfCBsZWdhbCwgcG9ydHJhaXQsIDE0MFxyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gMjAwIDogMTQwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29tbWVudEZpZWxkLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4TGVuZ3RoKV0pO1xyXG4gICAgdGhpcy5jb21tZW50RmllbGQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBjbGFzcz1cImlnby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0udGl0bGUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJ0aXRsZUZpZWxkLmVycm9ycz8ubWF4bGVuZ3RoXCI+e3tcclxuICAgICAgICAnaWdvLmdlby5mb3JtVmFsaWRhdGlvbi5tYXhMZW5ndGgnXHJcbiAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgIGNvbHVtbjogJ2lnby5nZW8ucHJpbnRGb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiAxMzBcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgIH19PC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLnN1YnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN1YnRpdGxlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zdWJ0aXRsZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAvPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwic3VidGl0bGVGaWVsZC5lcnJvcnM/Lm1heGxlbmd0aFwiPnt7XHJcbiAgICAgICAgJ2lnby5nZW8uZm9ybVZhbGlkYXRpb24ubWF4TGVuZ3RoJ1xyXG4gICAgICAgICAgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW46ICdpZ28uZ2VvLnByaW50Rm9ybS5zdWJ0aXRsZScgfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogMTIwXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5jb21tZW50JyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbW1lbnRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLmNvbW1lbnQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgLz5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbW1lbnRGaWVsZC5lcnJvcnM/Lm1heGxlbmd0aFwiPnt7XHJcbiAgICAgICAgJ2lnby5nZW8uZm9ybVZhbGlkYXRpb24ubWF4TGVuZ3RoJ1xyXG4gICAgICAgICAgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW46ICdpZ28uZ2VvLnByaW50Rm9ybS5jb21tZW50JyB8IHRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBtYXhMZW5ndGhcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgIH19PC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lciBzbGlkZS10b2dnbGUtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJpbnQtc2xpZGUtdG9nZ2xlLWNvbnRhaW5lclwiPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzaG93UHJvamVjdGlvblwiXHJcbiAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgJ2lnby5nZW8ucHJpbnRGb3JtLnNob3dQcm9qZWN0aW9uJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgY2xhc3M9XCJwcmludC1vcHRpb25cIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNob3dTY2FsZVwiXHJcbiAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgJ2lnby5nZW8ucHJpbnRGb3JtLnNob3dTY2FsZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkb1ppcEZpbGVcIlxyXG4gICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcclxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdub25lJyA6ICcnXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5kb1ppcEZpbGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7XHJcbiAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLmxlZ2VuZFBvc2l0aW9uJyB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2VuZFBvc2l0aW9uXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBsZWdlbmRQb3NpdGlvbiBvZiBsZWdlbmRQb3NpdGlvbnMgfCBrZXl2YWx1ZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwibGVnZW5kUG9zaXRpb24ua2V5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIVsnbmV3cGFnZScsICduZXdpbWFnZSddLmluY2x1ZGVzKGxlZ2VuZFBvc2l0aW9uLnZhbHVlKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLmxlZ2VuZFBvc2l0aW9ucy4nICsgbGVnZW5kUG9zaXRpb24udmFsdWVcclxuICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwiWyduZXdwYWdlJywgJ25ld2ltYWdlJ10uaW5jbHVkZXMobGVnZW5kUG9zaXRpb24udmFsdWUpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAob3V0cHV0Rm9ybWF0ID09PSAnUGRmJ1xyXG4gICAgICAgICAgICAgICAgPyAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLm5ld3BhZ2UnXHJcbiAgICAgICAgICAgICAgICA6ICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbnMubmV3aW1hZ2UnXHJcbiAgICAgICAgICAgICAgKSB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5vdXRwdXRGb3JtYXQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJ0b2dnbGVJbWFnZVNhdmVQcm9wKClcIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm91dHB1dEZvcm1hdFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0ub3V0cHV0Rm9ybWF0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG91dHB1dEZvcm1hdCBvZiBvdXRwdXRGb3JtYXRzIHwga2V5dmFsdWVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIm91dHB1dEZvcm1hdC5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IG91dHB1dEZvcm1hdC52YWx1ZSB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ2Jsb2NrJyA6ICdub25lJ1wiXHJcbiAgPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUNvbW1lbnRMZW5ndGgoKVwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFwZXJGb3JtYXRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLnBhcGVyRm9ybWF0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHBhcGVyRm9ybWF0IG9mIHBhcGVyRm9ybWF0cyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJwYXBlckZvcm1hdC5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICdpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdHMuJyArIHBhcGVyRm9ybWF0LnZhbHVlIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ25vbmUnIDogJ2Jsb2NrJ1wiXHJcbiAgPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5pbWFnZUZvcm1hdCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZUZvcm1hdFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0uaW1hZ2VGb3JtYXQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaW1hZ2VGb3JtYXQgb2YgaW1hZ2VGb3JtYXRzIHwga2V5dmFsdWVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cImltYWdlRm9ybWF0LmtleVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgaW1hZ2VGb3JtYXQudmFsdWUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWxcclxuICAgICAgICA+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLnJlc29sdXRpb24nIHwgdHJhbnNsYXRlIH19ICh7e1xyXG4gICAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLnJlc29sdXRpb25Vbml0JyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgIH19KTwvbWF0LWxhYmVsXHJcbiAgICAgID5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXNvbHV0aW9uXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5yZXNvbHV0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgcmVzb2x1dGlvbiBvZiByZXNvbHV0aW9uc1wiIFt2YWx1ZV09XCJyZXNvbHV0aW9uXCI+XHJcbiAgICAgICAgICB7eyByZXNvbHV0aW9uIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIlxyXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiaXNQcmludFNlcnZpY2UgPyAnYmxvY2snIDogJ25vbmUnXCJcclxuICA+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLm9yaWVudGF0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlQ29tbWVudExlbmd0aCgpXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcmllbnRhdGlvblwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0ub3JpZW50YXRpb24nIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3JpZW50YXRpb24gb2Ygb3JpZW50YXRpb25zIHwga2V5dmFsdWVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIm9yaWVudGF0aW9uLmtleVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgJ2lnby5nZW8ucHJpbnRGb3JtLicgKyBvcmllbnRhdGlvbi52YWx1ZSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlnby1mb3JtLWJ1dHRvbi1ncm91cCBwcmludC1idXR0b24tdG9wLXBhZGRpbmdcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCAoZGlzYWJsZWQkIHwgYXN5bmMpXCJcclxuICAgICAgKGNsaWNrKT1cImhhbmRsZUZvcm1TdWJtaXQoZm9ybS52YWx1ZSwgZm9ybS52YWxpZClcIlxyXG4gICAgPlxyXG4gICAgICB7eyAnaWdvLmdlby5wcmludEZvcm0uc2F2ZUJ0bicgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==