@pepperi-addons/ngx-lib 0.2.59-query-builder.13 → 0.2.61-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/README.md +39 -39
  2. package/address/address.component.theme.scss +5 -8
  3. package/address/pepperi-addons-ngx-lib-address.metadata.json +1 -1
  4. package/attachment/attachment.component.theme.scss +4 -3
  5. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
  6. package/bread-crumbs/bread-crumbs.component.theme.scss +9 -9
  7. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
  8. package/bundles/pepperi-addons-ngx-lib-address.umd.js +2 -2
  9. package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
  10. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +2 -2
  11. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
  12. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +2 -2
  13. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
  14. package/bundles/pepperi-addons-ngx-lib-button.umd.js +2 -2
  15. package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
  16. package/bundles/pepperi-addons-ngx-lib-carousel.umd.js.map +1 -1
  17. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +2 -2
  18. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
  19. package/bundles/pepperi-addons-ngx-lib-color.umd.js +4 -4
  20. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
  21. package/bundles/pepperi-addons-ngx-lib-date.umd.js +2 -2
  22. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
  23. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +3 -3
  24. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
  25. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +2 -2
  26. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
  27. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +2 -2
  28. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
  29. package/bundles/pepperi-addons-ngx-lib-form.umd.js +9 -9
  30. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
  31. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +2 -2
  32. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
  33. package/bundles/pepperi-addons-ngx-lib-icon.umd.js.map +1 -1
  34. package/bundles/pepperi-addons-ngx-lib-image.umd.js +2 -2
  35. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
  36. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +2 -2
  37. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
  38. package/bundles/pepperi-addons-ngx-lib-list.umd.js +9 -9
  39. package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
  40. package/bundles/pepperi-addons-ngx-lib-menu.umd.js +2 -2
  41. package/bundles/pepperi-addons-ngx-lib-menu.umd.js.map +1 -1
  42. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js +1 -1
  43. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js.map +1 -1
  44. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +2 -2
  45. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
  46. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +45 -45
  47. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -1
  48. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +2 -2
  49. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
  50. package/bundles/pepperi-addons-ngx-lib-search.umd.js +1 -1
  51. package/bundles/pepperi-addons-ngx-lib-search.umd.js.map +1 -1
  52. package/bundles/pepperi-addons-ngx-lib-select.umd.js +2 -2
  53. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
  54. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +2 -2
  55. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
  56. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +2 -2
  57. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
  58. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +2 -2
  59. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
  60. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js +1 -1
  61. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js.map +1 -1
  62. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +2 -2
  63. package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
  64. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +8 -8
  65. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  66. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +2 -2
  67. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
  68. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js +1 -1
  69. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js.map +1 -1
  70. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +2 -2
  71. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
  72. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +2 -2
  73. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
  74. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  75. package/button/button.component.theme.scss +0 -2
  76. package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
  77. package/checkbox/checkbox.component.theme.scss +0 -2
  78. package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
  79. package/color/color-picker.component.theme.scss +170 -175
  80. package/color/color.component.theme.scss +0 -7
  81. package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
  82. package/date/date.component.theme.scss +39 -45
  83. package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
  84. package/dialog/dialog.component.theme.scss +5 -5
  85. package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
  86. package/esm2015/address/address.component.js +3 -3
  87. package/esm2015/address/address.module.js +1 -1
  88. package/esm2015/address/public-api.js +1 -1
  89. package/esm2015/attachment/attachment.component.js +3 -3
  90. package/esm2015/attachment/attachment.module.js +1 -1
  91. package/esm2015/attachment/public-api.js +1 -1
  92. package/esm2015/bread-crumbs/bread-crumbs.component.js +3 -3
  93. package/esm2015/bread-crumbs/bread-crumbs.model.js +1 -1
  94. package/esm2015/bread-crumbs/bread-crumbs.module.js +1 -1
  95. package/esm2015/bread-crumbs/public-api.js +1 -1
  96. package/esm2015/button/button.component.js +3 -3
  97. package/esm2015/button/button.model.js +1 -1
  98. package/esm2015/button/button.module.js +1 -1
  99. package/esm2015/button/public-api.js +1 -1
  100. package/esm2015/carousel/carousel-item.directive.js +1 -1
  101. package/esm2015/carousel/carousel.component.js +15 -15
  102. package/esm2015/carousel/carousel.module.js +1 -1
  103. package/esm2015/carousel/public-api.js +1 -1
  104. package/esm2015/checkbox/checkbox.component.js +3 -3
  105. package/esm2015/checkbox/checkbox.module.js +1 -1
  106. package/esm2015/checkbox/public-api.js +1 -1
  107. package/esm2015/color/color-picker.component.js +29 -29
  108. package/esm2015/color/color.component.js +3 -3
  109. package/esm2015/color/color.model.js +1 -1
  110. package/esm2015/color/color.module.js +1 -1
  111. package/esm2015/color/public-api.js +1 -1
  112. package/esm2015/core/clipboard/clipboard.directive.js +1 -1
  113. package/esm2015/core/clipboard/clipboard.service.js +1 -1
  114. package/esm2015/core/clipboard/index.js +1 -1
  115. package/esm2015/core/clipboard/public-api.js +1 -1
  116. package/esm2015/core/common/directives/auto-width.directive.js +1 -1
  117. package/esm2015/core/common/directives/button-blur.directive.js +1 -1
  118. package/esm2015/core/common/directives/button-loader.directive.js +1 -1
  119. package/esm2015/core/common/directives/data-qa.directive.js +1 -1
  120. package/esm2015/core/common/directives/index.js +1 -1
  121. package/esm2015/core/common/directives/menu-blur.directive.js +1 -1
  122. package/esm2015/core/common/directives/prevent-multi-click.directive.js +1 -1
  123. package/esm2015/core/common/directives/public-api.js +1 -1
  124. package/esm2015/core/common/index.js +1 -1
  125. package/esm2015/core/common/model/index.js +1 -1
  126. package/esm2015/core/common/model/papi.model.js +1 -1
  127. package/esm2015/core/common/model/public-api.js +1 -1
  128. package/esm2015/core/common/model/utilities.model.js +1 -1
  129. package/esm2015/core/common/model/wapi.model.js +1 -1
  130. package/esm2015/core/common/pipes/common-pipes.js +1 -1
  131. package/esm2015/core/common/pipes/index.js +1 -1
  132. package/esm2015/core/common/pipes/public-api.js +1 -1
  133. package/esm2015/core/common/public-api.js +1 -1
  134. package/esm2015/core/common/services/addon.service.js +1 -1
  135. package/esm2015/core/common/services/color.service.js +1 -1
  136. package/esm2015/core/common/services/cookie.service.js +1 -1
  137. package/esm2015/core/common/services/data-convertor.service.js +1 -1
  138. package/esm2015/core/common/services/file.service.js +1 -1
  139. package/esm2015/core/common/services/index.js +1 -1
  140. package/esm2015/core/common/services/jwt-helper.service.js +1 -1
  141. package/esm2015/core/common/services/public-api.js +1 -1
  142. package/esm2015/core/common/services/session.service.js +1 -1
  143. package/esm2015/core/common/services/utilities.service.js +1 -1
  144. package/esm2015/core/common/services/validator.service.js +1 -1
  145. package/esm2015/core/common/services/window-scrolling.service.js +5 -5
  146. package/esm2015/core/customization/customization.model.js +1 -1
  147. package/esm2015/core/customization/customization.service.js +1 -1
  148. package/esm2015/core/customization/index.js +1 -1
  149. package/esm2015/core/customization/public-api.js +1 -1
  150. package/esm2015/core/http/index.js +1 -1
  151. package/esm2015/core/http/interceptors/error.interceptor.js +1 -1
  152. package/esm2015/core/http/interceptors/index.js +1 -1
  153. package/esm2015/core/http/interceptors/loader.interceptor.js +1 -1
  154. package/esm2015/core/http/interceptors/profiler.interceptor.js +1 -1
  155. package/esm2015/core/http/public-api.js +1 -1
  156. package/esm2015/core/http/services/http.service.js +1 -1
  157. package/esm2015/core/http/services/loader.service.js +1 -1
  158. package/esm2015/core/index.js +1 -1
  159. package/esm2015/core/layout/index.js +1 -1
  160. package/esm2015/core/layout/layout.service.js +1 -1
  161. package/esm2015/core/layout/public-api.js +1 -1
  162. package/esm2015/core/layout/rtl.directive.js +1 -1
  163. package/esm2015/core/portal/attach.directive.js +1 -1
  164. package/esm2015/core/portal/index.js +1 -1
  165. package/esm2015/core/portal/portal.service.js +1 -1
  166. package/esm2015/core/portal/public-api.js +1 -1
  167. package/esm2015/core/portal/target.directive.js +1 -1
  168. package/esm2015/core/public-api.js +1 -1
  169. package/esm2015/core/scroll-to/index.js +1 -1
  170. package/esm2015/core/scroll-to/public-api.js +1 -1
  171. package/esm2015/core/scroll-to/scroll-to.service.js +1 -1
  172. package/esm2015/date/date.component.js +3 -3
  173. package/esm2015/date/date.module.js +1 -1
  174. package/esm2015/date/public-api.js +1 -1
  175. package/esm2015/dialog/default-dialog.component.js +2 -2
  176. package/esm2015/dialog/dialog.component.js +3 -3
  177. package/esm2015/dialog/dialog.model.js +1 -1
  178. package/esm2015/dialog/dialog.module.js +1 -1
  179. package/esm2015/dialog/dialog.service.js +1 -1
  180. package/esm2015/dialog/public-api.js +1 -1
  181. package/esm2015/field-title/field-title.component.js +3 -3
  182. package/esm2015/field-title/field-title.module.js +1 -1
  183. package/esm2015/field-title/public-api.js +1 -1
  184. package/esm2015/files-uploader/files-uploader.component.js +3 -3
  185. package/esm2015/files-uploader/files-uploader.module.js +1 -1
  186. package/esm2015/files-uploader/public-api.js +1 -1
  187. package/esm2015/form/field-generator.component.js +2 -2
  188. package/esm2015/form/form.component.js +2 -2
  189. package/esm2015/form/form.module.js +1 -1
  190. package/esm2015/form/indicators.component.js +3 -3
  191. package/esm2015/form/internal-button.component.js +2 -2
  192. package/esm2015/form/internal-carusel.component.js +2 -2
  193. package/esm2015/form/internal-carusel.service.js +1 -1
  194. package/esm2015/form/internal-list.component.js +2 -2
  195. package/esm2015/form/internal-menu.component.js +2 -2
  196. package/esm2015/form/internal-page.component.js +2 -2
  197. package/esm2015/form/internal-page.service.js +1 -1
  198. package/esm2015/form/public-api.js +1 -1
  199. package/esm2015/group-buttons/group-buttons.component.js +3 -3
  200. package/esm2015/group-buttons/group-buttons.module.js +1 -1
  201. package/esm2015/group-buttons/public-api.js +1 -1
  202. package/esm2015/icon/icon-generated-all.model.js +1 -1
  203. package/esm2015/icon/icon-generated.model.js +1 -1
  204. package/esm2015/icon/icon-registry.service.js +2 -2
  205. package/esm2015/icon/icon.component.js +1 -1
  206. package/esm2015/icon/icon.module.js +1 -1
  207. package/esm2015/icon/public-api.js +1 -1
  208. package/esm2015/image/image.component.js +3 -3
  209. package/esm2015/image/image.module.js +1 -1
  210. package/esm2015/image/public-api.js +1 -1
  211. package/esm2015/images-filmstrip/images-filmstrip.component.js +3 -3
  212. package/esm2015/images-filmstrip/images-filmstrip.module.js +1 -1
  213. package/esm2015/images-filmstrip/public-api.js +1 -1
  214. package/esm2015/list/list-actions.component.js +2 -2
  215. package/esm2015/list/list-carousel.component.js +2 -2
  216. package/esm2015/list/list-chooser.component.js +2 -2
  217. package/esm2015/list/list-pager.component.js +2 -2
  218. package/esm2015/list/list-sorting.component.js +2 -2
  219. package/esm2015/list/list-total.component.js +3 -3
  220. package/esm2015/list/list-views.component.js +2 -2
  221. package/esm2015/list/list.component.js +2 -2
  222. package/esm2015/list/list.model.js +1 -1
  223. package/esm2015/list/list.module.js +1 -1
  224. package/esm2015/list/public-api.js +1 -1
  225. package/esm2015/menu/menu-item.component.js +2 -2
  226. package/esm2015/menu/menu.component.js +2 -2
  227. package/esm2015/menu/menu.model.js +1 -1
  228. package/esm2015/menu/menu.module.js +1 -1
  229. package/esm2015/menu/public-api.js +1 -1
  230. package/esm2015/ngx-lib.module.js +1 -1
  231. package/esm2015/page-layout/page-layout.component.js +2 -2
  232. package/esm2015/page-layout/page-layout.module.js +1 -1
  233. package/esm2015/page-layout/public-api.js +1 -1
  234. package/esm2015/public-api.js +1 -1
  235. package/esm2015/quantity-selector/public-api.js +1 -1
  236. package/esm2015/quantity-selector/quantity-selector-validation.directive.js +1 -1
  237. package/esm2015/quantity-selector/quantity-selector.component.js +3 -3
  238. package/esm2015/quantity-selector/quantity-selector.module.js +1 -1
  239. package/esm2015/quantity-selector/quantity-selector.pipes.js +1 -1
  240. package/esm2015/query-builder/common/model/field.js +2 -0
  241. package/esm2015/query-builder/common/model/filter.js +1 -1
  242. package/esm2015/query-builder/common/model/legacy.js +1 -1
  243. package/esm2015/query-builder/common/model/operator-unit.js +1 -1
  244. package/esm2015/query-builder/common/model/operator.js +1 -1
  245. package/esm2015/query-builder/common/model/structure.js +1 -1
  246. package/esm2015/query-builder/common/model/type-map.js +1 -1
  247. package/esm2015/query-builder/common/model/type.js +1 -1
  248. package/esm2015/query-builder/common/services/output-query.service.js +5 -5
  249. package/esm2015/query-builder/common/services/type-convertor.service.js +1 -1
  250. package/esm2015/query-builder/public-api.js +1 -1
  251. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +28 -20
  252. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +3 -3
  253. package/esm2015/query-builder/query-builder.component.js +2 -2
  254. package/esm2015/query-builder/query-builder.module.js +1 -1
  255. package/esm2015/query-builder/query-builder.service.js +8 -20
  256. package/esm2015/rich-html-textarea/public-api.js +1 -1
  257. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +3 -3
  258. package/esm2015/rich-html-textarea/rich-html-textarea.module.js +1 -1
  259. package/esm2015/search/public-api.js +1 -1
  260. package/esm2015/search/search.component.js +2 -2
  261. package/esm2015/search/search.model.js +1 -1
  262. package/esm2015/search/search.module.js +1 -1
  263. package/esm2015/select/public-api.js +1 -1
  264. package/esm2015/select/select.component.js +3 -3
  265. package/esm2015/select/select.module.js +1 -1
  266. package/esm2015/separator/public-api.js +1 -1
  267. package/esm2015/separator/separator.component.js +3 -3
  268. package/esm2015/separator/separator.module.js +1 -1
  269. package/esm2015/side-bar/public-api.js +1 -1
  270. package/esm2015/side-bar/side-bar.component.js +3 -3
  271. package/esm2015/side-bar/side-bar.model.js +1 -1
  272. package/esm2015/side-bar/side-bar.module.js +1 -1
  273. package/esm2015/signature/public-api.js +1 -1
  274. package/esm2015/signature/signature.component.js +3 -3
  275. package/esm2015/signature/signature.module.js +1 -1
  276. package/esm2015/size-detector/public-api.js +1 -1
  277. package/esm2015/size-detector/size-detector.component.js +2 -2
  278. package/esm2015/size-detector/size-detector.module.js +1 -1
  279. package/esm2015/slider/public-api.js +1 -1
  280. package/esm2015/slider/slider.component.js +3 -3
  281. package/esm2015/slider/slider.module.js +1 -1
  282. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +2 -2
  283. package/esm2015/smart-filters/common/filter-actions.component.js +2 -2
  284. package/esm2015/smart-filters/common/model/base-filter-component.js +1 -1
  285. package/esm2015/smart-filters/common/model/creator.js +1 -1
  286. package/esm2015/smart-filters/common/model/field.js +1 -1
  287. package/esm2015/smart-filters/common/model/filter.js +1 -1
  288. package/esm2015/smart-filters/common/model/operator.js +1 -1
  289. package/esm2015/smart-filters/common/model/type.js +1 -1
  290. package/esm2015/smart-filters/date-filter/date-filter.component.js +2 -2
  291. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +2 -2
  292. package/esm2015/smart-filters/number-filter/number-filter.component.js +2 -2
  293. package/esm2015/smart-filters/public-api.js +1 -1
  294. package/esm2015/smart-filters/smart-filters.component.js +3 -3
  295. package/esm2015/smart-filters/smart-filters.module.js +1 -1
  296. package/esm2015/smart-filters/text-filter/text-filter.component.js +2 -2
  297. package/esm2015/textarea/public-api.js +1 -1
  298. package/esm2015/textarea/textarea.component.js +3 -3
  299. package/esm2015/textarea/textarea.module.js +1 -1
  300. package/esm2015/textbox/public-api.js +1 -1
  301. package/esm2015/textbox/textbox-validation.directive.js +1 -1
  302. package/esm2015/textbox/textbox.component.js +3 -3
  303. package/esm2015/textbox/textbox.module.js +1 -1
  304. package/esm2015/textbox-icon/public-api.js +1 -1
  305. package/esm2015/textbox-icon/textbox-icon.component.js +2 -2
  306. package/esm2015/textbox-icon/textbox-icon.module.js +1 -1
  307. package/esm2015/top-bar/public-api.js +1 -1
  308. package/esm2015/top-bar/top-bar.component.js +3 -3
  309. package/esm2015/top-bar/top-bar.model.js +1 -1
  310. package/esm2015/top-bar/top-bar.module.js +1 -1
  311. package/fesm2015/pepperi-addons-ngx-lib-address.js +2 -2
  312. package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
  313. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +2 -2
  314. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
  315. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +2 -2
  316. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
  317. package/fesm2015/pepperi-addons-ngx-lib-button.js +2 -2
  318. package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
  319. package/fesm2015/pepperi-addons-ngx-lib-carousel.js +14 -14
  320. package/fesm2015/pepperi-addons-ngx-lib-carousel.js.map +1 -1
  321. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +2 -2
  322. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
  323. package/fesm2015/pepperi-addons-ngx-lib-color.js +30 -30
  324. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
  325. package/fesm2015/pepperi-addons-ngx-lib-date.js +2 -2
  326. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
  327. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +3 -3
  328. package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
  329. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +2 -2
  330. package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
  331. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +2 -2
  332. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
  333. package/fesm2015/pepperi-addons-ngx-lib-form.js +9 -9
  334. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
  335. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +2 -2
  336. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
  337. package/fesm2015/pepperi-addons-ngx-lib-icon.js +1 -1
  338. package/fesm2015/pepperi-addons-ngx-lib-icon.js.map +1 -1
  339. package/fesm2015/pepperi-addons-ngx-lib-image.js +2 -2
  340. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
  341. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +2 -2
  342. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
  343. package/fesm2015/pepperi-addons-ngx-lib-list.js +9 -9
  344. package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
  345. package/fesm2015/pepperi-addons-ngx-lib-menu.js +2 -2
  346. package/fesm2015/pepperi-addons-ngx-lib-menu.js.map +1 -1
  347. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js +1 -1
  348. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js.map +1 -1
  349. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +2 -2
  350. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
  351. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +41 -45
  352. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -1
  353. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +2 -2
  354. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
  355. package/fesm2015/pepperi-addons-ngx-lib-search.js +1 -1
  356. package/fesm2015/pepperi-addons-ngx-lib-search.js.map +1 -1
  357. package/fesm2015/pepperi-addons-ngx-lib-select.js +2 -2
  358. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
  359. package/fesm2015/pepperi-addons-ngx-lib-separator.js +2 -2
  360. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
  361. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +2 -2
  362. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
  363. package/fesm2015/pepperi-addons-ngx-lib-signature.js +2 -2
  364. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
  365. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js +1 -1
  366. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js.map +1 -1
  367. package/fesm2015/pepperi-addons-ngx-lib-slider.js +2 -2
  368. package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
  369. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +8 -8
  370. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  371. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +2 -2
  372. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
  373. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js +1 -1
  374. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js.map +1 -1
  375. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +2 -2
  376. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
  377. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +2 -2
  378. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
  379. package/fesm2015/pepperi-addons-ngx-lib.js +4 -4
  380. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  381. package/field-title/field-title.component.theme.scss +0 -2
  382. package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
  383. package/files-uploader/files-uploader.component.theme.scss +3 -2
  384. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
  385. package/form/indicators.component.theme.scss +7 -7
  386. package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
  387. package/group-buttons/group-buttons.component.theme.scss +15 -15
  388. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
  389. package/image/image.component.theme.scss +33 -35
  390. package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
  391. package/images-filmstrip/images-filmstrip.component.theme.scss +33 -32
  392. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
  393. package/list/list-total.component.theme.scss +10 -10
  394. package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
  395. package/menu/pepperi-addons-ngx-lib-menu.metadata.json +1 -1
  396. package/package.json +5 -5
  397. package/page-layout/page-layout.component.theme.scss +7 -7
  398. package/page-layout/pepperi-addons-ngx-lib-page-layout.metadata.json +1 -1
  399. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
  400. package/quantity-selector/quantity-selector.component.theme.scss +79 -77
  401. package/query-builder/common/model/field.d.ts +8 -0
  402. package/query-builder/common/model/legacy.d.ts +5 -2
  403. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -1
  404. package/query-builder/query-builder-item/query-builder-item.component.d.ts +6 -3
  405. package/query-builder/query-builder-section/query-builder-section.component.theme.scss +6 -5
  406. package/query-builder/query-builder.service.d.ts +1 -1
  407. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
  408. package/rich-html-textarea/rich-html-textarea.component.theme.scss +243 -236
  409. package/search/pepperi-addons-ngx-lib-search.metadata.json +1 -1
  410. package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
  411. package/select/select.component.theme.scss +97 -1
  412. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
  413. package/separator/separator.component.theme.scss +2 -2
  414. package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
  415. package/side-bar/side-bar.component.theme.scss +26 -25
  416. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
  417. package/signature/signature.component.theme.scss +12 -28
  418. package/size-detector/pepperi-addons-ngx-lib-size-detector.metadata.json +1 -1
  419. package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
  420. package/slider/slider.component.theme.scss +67 -65
  421. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  422. package/smart-filters/smart-filters.component.theme.scss +9 -10
  423. package/src/assets/i18n/de.ngx-lib.json +77 -77
  424. package/src/assets/i18n/en.ngx-lib.json +139 -139
  425. package/src/assets/i18n/es.ngx-lib.json +77 -77
  426. package/src/assets/i18n/fr.ngx-lib.json +78 -78
  427. package/src/assets/i18n/he.ngx-lib.json +78 -78
  428. package/src/assets/i18n/hu.ngx-lib.json +78 -78
  429. package/src/assets/i18n/it.ngx-lib.json +78 -78
  430. package/src/assets/i18n/ja.ngx-lib.json +78 -78
  431. package/src/assets/i18n/nl.ngx-lib.json +78 -78
  432. package/src/assets/i18n/pl.ngx-lib.json +78 -78
  433. package/src/assets/i18n/pt.ngx-lib.json +78 -78
  434. package/src/assets/i18n/ru.ngx-lib.json +78 -78
  435. package/src/assets/i18n/zh.ngx-lib.json +76 -76
  436. package/src/assets/images/no-image.svg +41 -41
  437. package/src/core/style/abstracts/breakpoints.scss +37 -35
  438. package/src/core/style/abstracts/functions.scss +439 -422
  439. package/src/core/style/abstracts/mixins.scss +800 -797
  440. package/src/core/style/abstracts/variables.scss +545 -545
  441. package/src/core/style/base/base.scss +874 -873
  442. package/src/core/style/base/grids.scss +4 -4
  443. package/src/core/style/base/helpers.scss +70 -70
  444. package/src/core/style/base/typography.scss +259 -255
  445. package/src/core/style/components/button.scss +346 -349
  446. package/src/core/style/components/checkbox.scss +476 -473
  447. package/src/core/style/components/datetime.scss +182 -22
  448. package/src/core/style/components/file.scss +237 -219
  449. package/src/core/style/components/general.scss +988 -1088
  450. package/src/core/style/components/input.scss +91 -94
  451. package/src/core/style/components/quantity-selector.scss +17 -14
  452. package/src/core/style/components/radio-button.scss +152 -168
  453. package/src/core/style/components/select.scss +187 -185
  454. package/src/core/style/components/signature.scss +14 -12
  455. package/src/core/style/components/splitter.scss +67 -64
  456. package/src/core/style/components/textarea.scss +206 -195
  457. package/src/core/style/themes/black-theme.scss +7 -7
  458. package/src/core/style/themes/default-theme.scss +144 -144
  459. package/src/core/style/themes/light-theme.scss +7 -7
  460. package/src/core/style/themes/nature-theme.scss +7 -7
  461. package/src/core/style/vendors/normalize.scss +497 -497
  462. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
  463. package/textarea/textarea.component.theme.scss +3 -2
  464. package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
  465. package/textbox/textbox.component.theme.scss +3 -3
  466. package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.metadata.json +1 -1
  467. package/theming.scss +126 -224
  468. package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
  469. package/top-bar/top-bar.component.theme.scss +9 -9
  470. package/form/form.component.theme.scss +0 -2
  471. package/form/internal-button.component.theme.scss +0 -2
  472. package/form/internal-menu.component.theme.scss +0 -3
  473. package/list/list-actions.component.theme.scss +0 -3
  474. package/list/list-carousel.component.theme.scss +0 -9
  475. package/list/list-chooser.component.theme.scss +0 -3
  476. package/list/list-pager.component.theme.scss +0 -3
  477. package/list/list-sorting.component.theme.scss +0 -3
  478. package/list/list-views.component.theme.scss +0 -3
  479. package/list/list.component.theme.scss +0 -5
  480. package/list/list_old.component.theme.scss +0 -5
  481. package/menu/menu.component.theme.scss +0 -2
  482. package/search/search.component.theme.scss +0 -3
  483. package/textbox-icon/textbox-icon.component.theme.scss +0 -3
@@ -209,4 +209,4 @@ PepFileService.decorators = [
209
209
  },] }
210
210
  ];
211
211
  PepFileService.ctorParameters = () => [];
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYzNDLE1BQU0sT0FBTyxjQUFjO0lBSXZCO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBOEI7UUFDcEMsTUFBTSxRQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDNUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE4QjtRQUN0QyxLQUNJLElBQUksS0FBSyxHQUFHLENBQUMsRUFDYixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU07WUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUk7WUFDakIsS0FBSyxDQUFDLEtBQUss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QUM7SUFDekQsQ0FBQztJQUVELDJCQUEyQjtRQUN2QixPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBRUQseUJBQXlCLENBQUMsWUFBWSxHQUFHLEVBQUU7UUFDdkMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUN0RCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsWUFBWSxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRTtRQUM3QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVztRQUN4QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDeEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Ozs7WUF6UEosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgUGVwRmlsZVR5cGUgPSAnc2NyaXB0JyB8ICdzdHlsZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQZXBFeHRlcm5hbEZpbGVNb2RlbCB7XHJcbiAgICBwYXRoOiBzdHJpbmc7XHJcbiAgICB0eXBlOiBQZXBGaWxlVHlwZTtcclxufVxyXG5cclxuZGVjbGFyZSBsZXQgZG9jdW1lbnQ6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBlcEZpbGVTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgc2NyaXB0czogTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+O1xyXG4gICAgcHJpdmF0ZSBzdHlsZXM6IE1hcDxzdHJpbmcsIHsgbG9hZGVkOiBib29sZWFuOyBzcmM6IHN0cmluZyB9PjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnNjcmlwdHMgPSBuZXcgTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+KCk7XHJcbiAgICAgICAgdGhpcy5zdHlsZXMgPSBuZXcgTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEZpbGVzKGZpbGVzOiBJUGVwRXh0ZXJuYWxGaWxlTW9kZWxbXSk6IFByb21pc2U8YW55W10+IHtcclxuICAgICAgICBjb25zdCBwcm9taXNlczogYW55W10gPSBbXTtcclxuICAgICAgICBmaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChmaWxlLnR5cGUgPT09ICdzdHlsZScpIHtcclxuICAgICAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5sb2FkU3R5bGUoZmlsZS5wYXRoKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsZS50eXBlID09PSAnc2NyaXB0Jykge1xyXG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmxvYWRTY3JpcHQoZmlsZS5wYXRoKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUZpbGVzKGZpbGVzOiBJUGVwRXh0ZXJuYWxGaWxlTW9kZWxbXSk6IHZvaWQge1xyXG4gICAgICAgIGZvciAoXHJcbiAgICAgICAgICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICAgICAgICAgIGluZGV4IDwgZmlsZXMubGVuZ3RoICYmXHJcbiAgICAgICAgICAgIGZpbGVzW2luZGV4XS5wYXRoICYmXHJcbiAgICAgICAgICAgIGZpbGVzW2luZGV4XS5wYXRoLnRyaW0oKSAhPT0gJyc7XHJcbiAgICAgICAgICAgIGluZGV4KytcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0RmlsZU5hbWUoZmlsZXNbaW5kZXhdLnBhdGgsIHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSk7XHJcbiAgICAgICAgICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50KTtcclxuXHJcbiAgICAgICAgICAgIGlmIChmaWxlc1tpbmRleF0udHlwZSA9PT0gJ3NjcmlwdCcgJiYgdGhpcy5zY3JpcHRzLmhhcyhuYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JpcHRzLmRlbGV0ZShuYW1lKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlc1tpbmRleF0udHlwZSA9PT0gJ3N0eWxlJyAmJiB0aGlzLnN0eWxlcy5oYXMobmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzLmRlbGV0ZShuYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsb2FkU2NyaXB0KHBhdGg6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0RmlsZU5hbWUocGF0aCwgdHJ1ZSk7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgc2NyaXB0IGlzbid0IGV4aXN0IGFkZCBpdC5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNjcmlwdHMuaGFzKG5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmlwdHMuc2V0KG5hbWUsIHsgbG9hZGVkOiBmYWxzZSwgc3JjOiBwYXRoIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBzY3JpcHRJdGVtID0gdGhpcy5zY3JpcHRzLmdldChuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlc29sdmUgaWYgYWxyZWFkeSBsb2FkZWRcclxuICAgICAgICAgICAgaWYgKHNjcmlwdEl0ZW0ubG9hZGVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcclxuICAgICAgICAgICAgICAgICAgICBzY3JpcHQ6IG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0FscmVhZHkgTG9hZGVkJyxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gTG9hZCBzY3JpcHRcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgICAgICAgICAgICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcclxuICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBzY3JpcHRJdGVtLnNyYztcclxuICAgICAgICAgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2lkJywgbmFtZSk7XHJcbiAgICAgICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoc2NyaXB0LnJlYWR5U3RhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBJRVxyXG4gICAgICAgICAgICAgICAgICAgIHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5yZWFkeVN0YXRlID09PSAnbG9hZGVkJyB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdEl0ZW0ubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0xvYWRlZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyc1xyXG4gICAgICAgICAgICAgICAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdEl0ZW0ubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdMb2FkZWQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZXJyb3I6IGFueSkgPT5cclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0xvYWRlZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkU3R5bGUocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRGaWxlTmFtZShwYXRoLCB0cnVlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBzdHlsZSBpc24ndCBleGlzdCBhZGQgaXQuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zdHlsZXMuaGFzKG5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlcy5zZXQobmFtZSwgeyBsb2FkZWQ6IGZhbHNlLCBzcmM6IHBhdGggfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlSXRlbSA9IHRoaXMuc3R5bGVzLmdldChuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlc29sdmUgaWYgYWxyZWFkeSBsb2FkZWRcclxuICAgICAgICAgICAgaWYgKHN0eWxlSXRlbS5sb2FkZWQpIHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0eWxlJyxcclxuICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnQWxyZWFkeSBMb2FkZWQnLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBMb2FkIHN0eWxlXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgICAgICAgICAgICAgIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xyXG4gICAgICAgICAgICAgICAgc3R5bGUucmVsID0gJ3N0eWxlc2hlZXQnO1xyXG4gICAgICAgICAgICAgICAgc3R5bGUuaHJlZiA9IHN0eWxlSXRlbS5zcmM7XHJcbiAgICAgICAgICAgICAgICBzdHlsZS5tZWRpYSA9ICdhbGwnO1xyXG4gICAgICAgICAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKCdpZCcsIG5hbWUpO1xyXG5cclxuICAgICAgICAgICAgICAgIHN0eWxlSXRlbS5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgcGF0aCxcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3R5bGUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdMb2FkZWQnLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzdHlsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkRm9udFN0eWxlKHN0eWxlSWQ6IHN0cmluZywgaHJlZjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XHJcblxyXG4gICAgICAgIGNvbnN0IHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxyXG4gICAgICAgICAgICBzdHlsZUlkXHJcbiAgICAgICAgKSBhcyBIVE1MTGlua0VsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmIChzdHlsZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgc3R5bGVFbGVtZW50LmhyZWYgPSBocmVmO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xyXG4gICAgICAgICAgICBzdHlsZS5pZCA9IHN0eWxlSWQ7XHJcbiAgICAgICAgICAgIHN0eWxlLnJlbCA9ICdzdHlsZXNoZWV0JztcclxuICAgICAgICAgICAgc3R5bGUuaHJlZiA9IGAke2hyZWZ9YDtcclxuXHJcbiAgICAgICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRGaWxlTmFtZShmaWxlUGF0aDogc3RyaW5nLCB3aXRoRXh0ZW5zdGlvbiA9IGZhbHNlKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBsYXN0SW5kZXggPSB3aXRoRXh0ZW5zdGlvblxyXG4gICAgICAgICAgICA/IGZpbGVQYXRoLmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgOiBmaWxlUGF0aC5sYXN0SW5kZXhPZignLicpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmlsZVBhdGguc3Vic3RyKGZpbGVQYXRoLmxhc3RJbmRleE9mKCcvJykgKyAxLCBsYXN0SW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbGVFeHRlbnNpb24oZmlsZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgZmlsZVNwbGl0ID0gZmlsZVBhdGguc3BsaXQoJy4nKTtcclxuICAgICAgICBsZXQgZmlsZUV4dCA9ICcnO1xyXG4gICAgICAgIGlmIChmaWxlU3BsaXQubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICBmaWxlRXh0ID0gZmlsZVNwbGl0W2ZpbGVTcGxpdC5sZW5ndGggLSAyXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZpbGVFeHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyogUmV0dXJucyB0cnVlIGlmIHVybCBpcyB2YWxpZCAqL1xyXG4gICAgaXNWYWxpZFVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8qIFRyeSBjcmVhdGluZyBhIHZhbGlkIFVSTCAqL1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBVUkwodXJsKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnZlcnRGcm9tYjY0dG9CbG9iKFxyXG4gICAgICAgIGI2NERhdGE6IGFueSxcclxuICAgICAgICBjb250ZW50VHlwZSA9ICcnLFxyXG4gICAgICAgIHNsaWNlU2l6ZSA9IDUxMlxyXG4gICAgKTogQmxvYiB7XHJcbiAgICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGI2NERhdGEpO1xyXG4gICAgICAgIGNvbnN0IGJ5dGVBcnJheXMgPSBbXTtcclxuXHJcbiAgICAgICAgZm9yIChcclxuICAgICAgICAgICAgbGV0IG9mZnNldCA9IDA7XHJcbiAgICAgICAgICAgIG9mZnNldCA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDtcclxuICAgICAgICAgICAgb2Zmc2V0ICs9IHNsaWNlU2l6ZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25zdCBzbGljZSA9IGJ5dGVDaGFyYWN0ZXJzLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2xpY2VTaXplKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KHNsaWNlLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpY2UubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGJ5dGVOdW1iZXJzW2ldID0gc2xpY2UuY2hhckNvZGVBdChpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xyXG4gICAgICAgICAgICBieXRlQXJyYXlzLnB1c2goYnl0ZUFycmF5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihieXRlQXJyYXlzLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pO1xyXG4gICAgICAgIHJldHVybiBibG9iO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFzc2V0c1BhdGgoYXNzZXRzRG9tYWluID0gJycpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGNvbmNhdENoYXIgPVxyXG4gICAgICAgICAgICBhc3NldHNEb21haW4gPT09ICcnIHx8IGFzc2V0c0RvbWFpbi5lbmRzV2l0aCgnLycpID8gJycgOiAnLyc7XHJcbiAgICAgICAgcmV0dXJuIGAke2Fzc2V0c0RvbWFpbn0ke2NvbmNhdENoYXJ9YXNzZXRzL25neC1saWIvYDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBc3NldHNUcmFuc2xhdGlvbnNTdWZmaXgoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJy5uZ3gtbGliLmpzb24nO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFzc2V0c1RyYW5zbGF0aW9uc1BhdGgoYXNzZXRzRG9tYWluID0gJycpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldEFzc2V0c1BhdGgoYXNzZXRzRG9tYWluKX1pMThuL2A7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXNzZXRzSW1hZ2VzUGF0aChhc3NldHNEb21haW4gPSAnJywgaW1hZ2UgPSAnJyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0QXNzZXRzUGF0aChhc3NldHNEb21haW4pfWltYWdlcy8ke2ltYWdlfWA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3ZnQXNJbWFnZVNyYyhzdmc6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtzdmddLCB7IHR5cGU6ICdpbWFnZS9zdmcreG1sJyB9KTtcclxuICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICAgIHJldHVybiB1cmw7XHJcbiAgICB9XHJcbn1cclxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYzNDLE1BQU0sT0FBTyxjQUFjO0lBSXZCO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBOEI7UUFDcEMsTUFBTSxRQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDNUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE4QjtRQUN0QyxLQUNJLElBQUksS0FBSyxHQUFHLENBQUMsRUFDYixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU07WUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUk7WUFDakIsS0FBSyxDQUFDLEtBQUss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QUM7SUFDekQsQ0FBQztJQUVELDJCQUEyQjtRQUN2QixPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBRUQseUJBQXlCLENBQUMsWUFBWSxHQUFHLEVBQUU7UUFDdkMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUN0RCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsWUFBWSxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRTtRQUM3QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVztRQUN4QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDeEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Ozs7WUF6UEosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBQZXBGaWxlVHlwZSA9ICdzY3JpcHQnIHwgJ3N0eWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBJUGVwRXh0ZXJuYWxGaWxlTW9kZWwge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICB0eXBlOiBQZXBGaWxlVHlwZTtcbn1cblxuZGVjbGFyZSBsZXQgZG9jdW1lbnQ6IGFueTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVwRmlsZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgc2NyaXB0czogTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+O1xuICAgIHByaXZhdGUgc3R5bGVzOiBNYXA8c3RyaW5nLCB7IGxvYWRlZDogYm9vbGVhbjsgc3JjOiBzdHJpbmcgfT47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zY3JpcHRzID0gbmV3IE1hcDxzdHJpbmcsIHsgbG9hZGVkOiBib29sZWFuOyBzcmM6IHN0cmluZyB9PigpO1xuICAgICAgICB0aGlzLnN0eWxlcyA9IG5ldyBNYXA8c3RyaW5nLCB7IGxvYWRlZDogYm9vbGVhbjsgc3JjOiBzdHJpbmcgfT4oKTtcbiAgICB9XG5cbiAgICBsb2FkRmlsZXMoZmlsZXM6IElQZXBFeHRlcm5hbEZpbGVNb2RlbFtdKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgICAgICBjb25zdCBwcm9taXNlczogYW55W10gPSBbXTtcbiAgICAgICAgZmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbGUudHlwZSA9PT0gJ3N0eWxlJykge1xuICAgICAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5sb2FkU3R5bGUoZmlsZS5wYXRoKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGUudHlwZSA9PT0gJ3NjcmlwdCcpIHtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMubG9hZFNjcmlwdChmaWxlLnBhdGgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRmlsZXMoZmlsZXM6IElQZXBFeHRlcm5hbEZpbGVNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICAgICAgaW5kZXggPCBmaWxlcy5sZW5ndGggJiZcbiAgICAgICAgICAgIGZpbGVzW2luZGV4XS5wYXRoICYmXG4gICAgICAgICAgICBmaWxlc1tpbmRleF0ucGF0aC50cmltKCkgIT09ICcnO1xuICAgICAgICAgICAgaW5kZXgrK1xuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZpbGVOYW1lKGZpbGVzW2luZGV4XS5wYXRoLCB0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lKTtcbiAgICAgICAgICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50KTtcblxuICAgICAgICAgICAgaWYgKGZpbGVzW2luZGV4XS50eXBlID09PSAnc2NyaXB0JyAmJiB0aGlzLnNjcmlwdHMuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JpcHRzLmRlbGV0ZShuYW1lKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsZXNbaW5kZXhdLnR5cGUgPT09ICdzdHlsZScgJiYgdGhpcy5zdHlsZXMuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZXMuZGVsZXRlKG5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbG9hZFNjcmlwdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0RmlsZU5hbWUocGF0aCwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIC8vIElmIHRoZSBzY3JpcHQgaXNuJ3QgZXhpc3QgYWRkIGl0LlxuICAgICAgICAgICAgaWYgKCF0aGlzLnNjcmlwdHMuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JpcHRzLnNldChuYW1lLCB7IGxvYWRlZDogZmFsc2UsIHNyYzogcGF0aCB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NyaXB0SXRlbSA9IHRoaXMuc2NyaXB0cy5nZXQobmFtZSk7XG5cbiAgICAgICAgICAgIC8vIFJlc29sdmUgaWYgYWxyZWFkeSBsb2FkZWRcbiAgICAgICAgICAgIGlmIChzY3JpcHRJdGVtLmxvYWRlZCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICBzY3JpcHQ6IG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnQWxyZWFkeSBMb2FkZWQnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBMb2FkIHNjcmlwdFxuICAgICAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgICAgICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICAgICAgICAgICAgc2NyaXB0LnNyYyA9IHNjcmlwdEl0ZW0uc3JjO1xuICAgICAgICAgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2lkJywgbmFtZSk7XG4gICAgICAgICAgICAgICAgc2NyaXB0LmFzeW5jID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2NyaXB0LnJlYWR5U3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSUVcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRlZCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0SXRlbS5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2NyaXB0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdMb2FkZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyc1xuICAgICAgICAgICAgICAgICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0SXRlbS5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2NyaXB0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnTG9hZGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzY3JpcHQub25lcnJvciA9IChlcnJvcjogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2NyaXB0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdMb2FkZWQnLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvYWRTdHlsZShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0RmlsZU5hbWUocGF0aCwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIC8vIElmIHRoZSBzdHlsZSBpc24ndCBleGlzdCBhZGQgaXQuXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3R5bGVzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzLnNldChuYW1lLCB7IGxvYWRlZDogZmFsc2UsIHNyYzogcGF0aCB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc3R5bGVJdGVtID0gdGhpcy5zdHlsZXMuZ2V0KG5hbWUpO1xuXG4gICAgICAgICAgICAvLyBSZXNvbHZlIGlmIGFscmVhZHkgbG9hZGVkXG4gICAgICAgICAgICBpZiAoc3R5bGVJdGVtLmxvYWRlZCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0FscmVhZHkgTG9hZGVkJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTG9hZCBzdHlsZVxuICAgICAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgICAgIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgICAgICAgICAgIHN0eWxlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgICAgICAgICBzdHlsZS5ocmVmID0gc3R5bGVJdGVtLnNyYztcbiAgICAgICAgICAgICAgICBzdHlsZS5tZWRpYSA9ICdhbGwnO1xuICAgICAgICAgICAgICAgIHN0eWxlLnNldEF0dHJpYnV0ZSgnaWQnLCBuYW1lKTtcblxuICAgICAgICAgICAgICAgIHN0eWxlSXRlbS5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0xvYWRlZCcsXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbG9hZEZvbnRTdHlsZShzdHlsZUlkOiBzdHJpbmcsIGhyZWY6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcblxuICAgICAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgIHN0eWxlSWRcbiAgICAgICAgKSBhcyBIVE1MTGlua0VsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHN0eWxlRWxlbWVudCkge1xuICAgICAgICAgICAgc3R5bGVFbGVtZW50LmhyZWYgPSBocmVmO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgICAgICBzdHlsZS5pZCA9IHN0eWxlSWQ7XG4gICAgICAgICAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgICAgICBzdHlsZS5ocmVmID0gYCR7aHJlZn1gO1xuXG4gICAgICAgICAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEZpbGVOYW1lKGZpbGVQYXRoOiBzdHJpbmcsIHdpdGhFeHRlbnN0aW9uID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBsYXN0SW5kZXggPSB3aXRoRXh0ZW5zdGlvblxuICAgICAgICAgICAgPyBmaWxlUGF0aC5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IGZpbGVQYXRoLmxhc3RJbmRleE9mKCcuJyk7XG5cbiAgICAgICAgcmV0dXJuIGZpbGVQYXRoLnN1YnN0cihmaWxlUGF0aC5sYXN0SW5kZXhPZignLycpICsgMSwgbGFzdEluZGV4KTtcbiAgICB9XG5cbiAgICBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWxlU3BsaXQgPSBmaWxlUGF0aC5zcGxpdCgnLicpO1xuICAgICAgICBsZXQgZmlsZUV4dCA9ICcnO1xuICAgICAgICBpZiAoZmlsZVNwbGl0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGZpbGVFeHQgPSBmaWxlU3BsaXRbZmlsZVNwbGl0Lmxlbmd0aCAtIDJdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWxlRXh0O1xuICAgIH1cblxuICAgIC8qIFJldHVybnMgdHJ1ZSBpZiB1cmwgaXMgdmFsaWQgKi9cbiAgICBpc1ZhbGlkVXJsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIC8qIFRyeSBjcmVhdGluZyBhIHZhbGlkIFVSTCAqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdG1wID0gbmV3IFVSTCh1cmwpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnZlcnRGcm9tYjY0dG9CbG9iKFxuICAgICAgICBiNjREYXRhOiBhbnksXG4gICAgICAgIGNvbnRlbnRUeXBlID0gJycsXG4gICAgICAgIHNsaWNlU2l6ZSA9IDUxMlxuICAgICk6IEJsb2Ige1xuICAgICAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoYjY0RGF0YSk7XG4gICAgICAgIGNvbnN0IGJ5dGVBcnJheXMgPSBbXTtcblxuICAgICAgICBmb3IgKFxuICAgICAgICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICAgICAgICBvZmZzZXQgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7XG4gICAgICAgICAgICBvZmZzZXQgKz0gc2xpY2VTaXplXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3Qgc2xpY2UgPSBieXRlQ2hhcmFjdGVycy5zbGljZShvZmZzZXQsIG9mZnNldCArIHNsaWNlU2l6ZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KHNsaWNlLmxlbmd0aCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYnl0ZU51bWJlcnNbaV0gPSBzbGljZS5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XG4gICAgICAgICAgICBieXRlQXJyYXlzLnB1c2goYnl0ZUFycmF5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihieXRlQXJyYXlzLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pO1xuICAgICAgICByZXR1cm4gYmxvYjtcbiAgICB9XG5cbiAgICBnZXRBc3NldHNQYXRoKGFzc2V0c0RvbWFpbiA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY29uY2F0Q2hhciA9XG4gICAgICAgICAgICBhc3NldHNEb21haW4gPT09ICcnIHx8IGFzc2V0c0RvbWFpbi5lbmRzV2l0aCgnLycpID8gJycgOiAnLyc7XG4gICAgICAgIHJldHVybiBgJHthc3NldHNEb21haW59JHtjb25jYXRDaGFyfWFzc2V0cy9uZ3gtbGliL2A7XG4gICAgfVxuXG4gICAgZ2V0QXNzZXRzVHJhbnNsYXRpb25zU3VmZml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnLm5neC1saWIuanNvbic7XG4gICAgfVxuXG4gICAgZ2V0QXNzZXRzVHJhbnNsYXRpb25zUGF0aChhc3NldHNEb21haW4gPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldEFzc2V0c1BhdGgoYXNzZXRzRG9tYWluKX1pMThuL2A7XG4gICAgfVxuXG4gICAgZ2V0QXNzZXRzSW1hZ2VzUGF0aChhc3NldHNEb21haW4gPSAnJywgaW1hZ2UgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldEFzc2V0c1BhdGgoYXNzZXRzRG9tYWluKX1pbWFnZXMvJHtpbWFnZX1gO1xuICAgIH1cblxuICAgIGdldFN2Z0FzSW1hZ2VTcmMoc3ZnOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3N2Z10sIHsgdHlwZTogJ2ltYWdlL3N2Zyt4bWwnIH0pO1xuICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICByZXR1cm4gdXJsO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,4 +2,4 @@
2
2
  * export from ngx-lib/core/common/services
3
3
  */
4
4
  export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogZXhwb3J0IGZyb20gbmd4LWxpYi9jb3JlL2NvbW1vbi9zZXJ2aWNlc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcclxuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIGV4cG9ydCBmcm9tIG5neC1saWIvY29yZS9jb21tb24vc2VydmljZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -101,4 +101,4 @@ PepJwtHelperService.decorators = [
101
101
  providedIn: 'root',
102
102
  },] }
103
103
  ];
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvand0LWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBS25ELE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsZUFBZSxDQUFDLEdBQVc7UUFDOUIsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RCxRQUFRLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ0osTUFBTTthQUNUO1lBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDSixNQUFNLElBQUksSUFBSSxDQUFDO2dCQUNmLE1BQU07YUFDVDtZQUNELEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ0osTUFBTSxJQUFJLEdBQUcsQ0FBQztnQkFDZCxNQUFNO2FBQ1Q7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7YUFDaEQ7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxxREFBcUQ7SUFDN0MsU0FBUyxDQUFDLEdBQVc7UUFDekIsTUFBTSxLQUFLLEdBQ1AsbUVBQW1FLENBQUM7UUFDeEUsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQyxJQUFJLEdB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QUMsS0FBYSxFQUFFLGFBQXNCO1FBQ3ZELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELGFBQWEsR0FBRyxhQUFhLElBQUksQ0FBQyxDQUFDO1FBRW5DLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUNmLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxhQUFhLENBQ2hCLFVBQW1FLEVBQ25FLE9BQXlCO1FBRXpCLElBQUksT0FBTyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ2xDLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzlCO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQzs7OztZQWhJSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXBKd3RIZWxwZXJTZXJ2aWNlIHtcclxuICAgIHB1YmxpYyB1cmxCYXNlNjREZWNvZGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBvdXRwdXQgPSBzdHIucmVwbGFjZSgvLS9nLCAnKycpLnJlcGxhY2UoL18vZywgJy8nKTtcclxuICAgICAgICBzd2l0Y2ggKG91dHB1dC5sZW5ndGggJSA0KSB7XHJcbiAgICAgICAgICAgIGNhc2UgMDoge1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAyOiB7XHJcbiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJz09JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgMzoge1xyXG4gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICc9JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSWxsZWdhbCBiYXNlNjR1cmwgc3RyaW5nIScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmI2NERlY29kZVVuaWNvZGUob3V0cHV0KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjcmVkaXRzIGZvciBkZWNvZGVyIGdvZXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL2F0a1xyXG4gICAgcHJpdmF0ZSBiNjRkZWNvZGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGNoYXJzID1cclxuICAgICAgICAgICAgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89JztcclxuICAgICAgICBsZXQgb3V0cHV0ID0gJyc7XHJcblxyXG4gICAgICAgIHN0ciA9IFN0cmluZyhzdHIpLnJlcGxhY2UoLz0rJC8sICcnKTtcclxuXHJcbiAgICAgICAgaWYgKHN0ci5sZW5ndGggJSA0ID09PSAxKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgIFwiJ2F0b2InIGZhaWxlZDogVGhlIHN0cmluZyB0byBiZSBkZWNvZGVkIGlzIG5vdCBjb3JyZWN0bHkgZW5jb2RlZC5cIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChcclxuICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSByZXN1bHQgYW5kIGNvdW50ZXJzXHJcbiAgICAgICAgICAgIGxldCBiYyA9IDAsIGJzOiBhbnksIGJ1ZmZlcjogYW55LCBpZHggPSAwO1xyXG4gICAgICAgICAgICAvLyBnZXQgbmV4dCBjaGFyYWN0ZXJcclxuICAgICAgICAgICAgKGJ1ZmZlciA9IHN0ci5jaGFyQXQoaWR4KyspKTtcclxuICAgICAgICAgICAgLy8gY2hhcmFjdGVyIGZvdW5kIGluIHRhYmxlPyBpbml0aWFsaXplIGJpdCBzdG9yYWdlIGFuZCBhZGQgaXRzIGFzY2lpIHZhbHVlO1xyXG4gICAgICAgICAgICB+YnVmZmVyICYmXHJcbiAgICAgICAgICAgICgoYnMgPSBiYyAlIDQgPyBicyAqIDY0ICsgYnVmZmVyIDogYnVmZmVyKSxcclxuICAgICAgICAgICAgLy8gYW5kIGlmIG5vdCBmaXJzdCBvZiBlYWNoIDQgY2hhcmFjdGVycyxcclxuICAgICAgICAgICAgLy8gY29udmVydCB0aGUgZmlyc3QgOCBiaXRzIHRvIG9uZSBhc2NpaSBjaGFyYWN0ZXJcclxuICAgICAgICAgICAgYmMrKyAlIDQpXHJcbiAgICAgICAgICAgICAgICA/IChvdXRwdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgyNTUgJiAoYnMgPj4gKCgtMiAqIGJjKSAmIDYpKSkpXHJcbiAgICAgICAgICAgICAgICA6IDBcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgLy8gdHJ5IHRvIGZpbmQgY2hhcmFjdGVyIGluIHRhYmxlICgwLTYzLCBub3QgZm91bmQgPT4gLTEpXHJcbiAgICAgICAgICAgIGJ1ZmZlciA9IGNoYXJzLmluZGV4T2YoYnVmZmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGI2NERlY29kZVVuaWNvZGUoc3RyOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXHJcbiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5tYXBcclxuICAgICAgICAgICAgICAgIC5jYWxsKHRoaXMuYjY0ZGVjb2RlKHN0ciksIChjOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnJScgKyAoJzAwJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLmpvaW4oJycpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGVjb2RlVG9rZW4odG9rZW46IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgaWYgKCF0b2tlbiB8fCB0b2tlbiA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYXJ0cyA9IHRva2VuLnNwbGl0KCcuJyk7XHJcblxyXG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgICAgXCJUaGUgaW5zcGVjdGVkIHRva2VuIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgSldULiBDaGVjayB0byBtYWtlIHN1cmUgaXQgaGFzIHRocmVlIHBhcnRzIGFuZCBzZWUgaHR0cHM6Ly9qd3QuaW8gZm9yIG1vcmUuXCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSB0aGlzLnVybEJhc2U2NERlY29kZShwYXJ0c1sxXSk7XHJcbiAgICAgICAgaWYgKCFkZWNvZGVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlY29kZSB0aGUgdG9rZW4uJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0VG9rZW5FeHBpcmF0aW9uRGF0ZSh0b2tlbjogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSB0aGlzLmRlY29kZVRva2VuKHRva2VuKTtcclxuXHJcbiAgICAgICAgaWYgKCFkZWNvZGVkIHx8ICFkZWNvZGVkLmhhc093blByb3BlcnR5KCdleHAnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgwKTtcclxuICAgICAgICBkYXRlLnNldFVUQ1NlY29uZHMoZGVjb2RlZC5leHApO1xyXG5cclxuICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNUb2tlbkV4cGlyZWQodG9rZW46IHN0cmluZywgb2Zmc2V0U2Vjb25kcz86IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdG9rZW4gfHwgdG9rZW4gPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5nZXRUb2tlbkV4cGlyYXRpb25EYXRlKHRva2VuKTtcclxuICAgICAgICBvZmZzZXRTZWNvbmRzID0gb2Zmc2V0U2Vjb25kcyB8fCAwO1xyXG5cclxuICAgICAgICBpZiAoZGF0ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gIShkYXRlLnZhbHVlT2YoKSA+IG5ldyBEYXRlKCkudmFsdWVPZigpICsgb2Zmc2V0U2Vjb25kcyAqIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRBdXRoU2NoZW1lKFxyXG4gICAgICAgIGF1dGhTY2hlbWU6IChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KSA9PiBhbnkgfCBzdHJpbmcgfCB1bmRlZmluZWQsXHJcbiAgICAgICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PlxyXG4gICAgKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodHlwZW9mIGF1dGhTY2hlbWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF1dGhTY2hlbWUocmVxdWVzdCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYXV0aFNjaGVtZTtcclxuICAgIH1cclxufVxyXG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvand0LWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBS25ELE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsZUFBZSxDQUFDLEdBQVc7UUFDOUIsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RCxRQUFRLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ0osTUFBTTthQUNUO1lBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDSixNQUFNLElBQUksSUFBSSxDQUFDO2dCQUNmLE1BQU07YUFDVDtZQUNELEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ0osTUFBTSxJQUFJLEdBQUcsQ0FBQztnQkFDZCxNQUFNO2FBQ1Q7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7YUFDaEQ7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxxREFBcUQ7SUFDN0MsU0FBUyxDQUFDLEdBQVc7UUFDekIsTUFBTSxLQUFLLEdBQ1AsbUVBQW1FLENBQUM7UUFDeEUsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQyxJQUFJLEdB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QUMsS0FBYSxFQUFFLGFBQXNCO1FBQ3ZELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELGFBQWEsR0FBRyxhQUFhLElBQUksQ0FBQyxDQUFDO1FBRW5DLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUNmLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxhQUFhLENBQ2hCLFVBQW1FLEVBQ25FLE9BQXlCO1FBRXpCLElBQUksT0FBTyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ2xDLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzlCO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQzs7OztZQWhJSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBKd3RIZWxwZXJTZXJ2aWNlIHtcbiAgICBwdWJsaWMgdXJsQmFzZTY0RGVjb2RlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG91dHB1dCA9IHN0ci5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpO1xuICAgICAgICBzd2l0Y2ggKG91dHB1dC5sZW5ndGggJSA0KSB7XG4gICAgICAgICAgICBjYXNlIDA6IHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgMjoge1xuICAgICAgICAgICAgICAgIG91dHB1dCArPSAnPT0nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAzOiB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICc9JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgYmFzZTY0dXJsIHN0cmluZyEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5iNjREZWNvZGVVbmljb2RlKG91dHB1dCk7XG4gICAgfVxuXG4gICAgLy8gY3JlZGl0cyBmb3IgZGVjb2RlciBnb2VzIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hdGtcbiAgICBwcml2YXRlIGI2NGRlY29kZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNoYXJzID1cbiAgICAgICAgICAgICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XG4gICAgICAgIGxldCBvdXRwdXQgPSAnJztcblxuICAgICAgICBzdHIgPSBTdHJpbmcoc3RyKS5yZXBsYWNlKC89KyQvLCAnJyk7XG5cbiAgICAgICAgaWYgKHN0ci5sZW5ndGggJSA0ID09PSAxKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCInYXRvYicgZmFpbGVkOiBUaGUgc3RyaW5nIHRvIGJlIGRlY29kZWQgaXMgbm90IGNvcnJlY3RseSBlbmNvZGVkLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChcbiAgICAgICAgICAgIC8vIGluaXRpYWxpemUgcmVzdWx0IGFuZCBjb3VudGVyc1xuICAgICAgICAgICAgbGV0IGJjID0gMCwgYnM6IGFueSwgYnVmZmVyOiBhbnksIGlkeCA9IDA7XG4gICAgICAgICAgICAvLyBnZXQgbmV4dCBjaGFyYWN0ZXJcbiAgICAgICAgICAgIChidWZmZXIgPSBzdHIuY2hhckF0KGlkeCsrKSk7XG4gICAgICAgICAgICAvLyBjaGFyYWN0ZXIgZm91bmQgaW4gdGFibGU/IGluaXRpYWxpemUgYml0IHN0b3JhZ2UgYW5kIGFkZCBpdHMgYXNjaWkgdmFsdWU7XG4gICAgICAgICAgICB+YnVmZmVyICYmXG4gICAgICAgICAgICAoKGJzID0gYmMgJSA0ID8gYnMgKiA2NCArIGJ1ZmZlciA6IGJ1ZmZlciksXG4gICAgICAgICAgICAvLyBhbmQgaWYgbm90IGZpcnN0IG9mIGVhY2ggNCBjaGFyYWN0ZXJzLFxuICAgICAgICAgICAgLy8gY29udmVydCB0aGUgZmlyc3QgOCBiaXRzIHRvIG9uZSBhc2NpaSBjaGFyYWN0ZXJcbiAgICAgICAgICAgIGJjKysgJSA0KVxuICAgICAgICAgICAgICAgID8gKG91dHB1dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSAmIChicyA+PiAoKC0yICogYmMpICYgNikpKSlcbiAgICAgICAgICAgICAgICA6IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyB0cnkgdG8gZmluZCBjaGFyYWN0ZXIgaW4gdGFibGUgKDAtNjMsIG5vdCBmb3VuZCA9PiAtMSlcbiAgICAgICAgICAgIGJ1ZmZlciA9IGNoYXJzLmluZGV4T2YoYnVmZmVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH1cblxuICAgIHByaXZhdGUgYjY0RGVjb2RlVW5pY29kZShzdHI6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUubWFwXG4gICAgICAgICAgICAgICAgLmNhbGwodGhpcy5iNjRkZWNvZGUoc3RyKSwgKGM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWNvZGVUb2tlbih0b2tlbjogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKCF0b2tlbiB8fCB0b2tlbiA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFydHMgPSB0b2tlbi5zcGxpdCgnLicpO1xuXG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBcIlRoZSBpbnNwZWN0ZWQgdG9rZW4gZG9lc24ndCBhcHBlYXIgdG8gYmUgYSBKV1QuIENoZWNrIHRvIG1ha2Ugc3VyZSBpdCBoYXMgdGhyZWUgcGFydHMgYW5kIHNlZSBodHRwczovL2p3dC5pbyBmb3IgbW9yZS5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSB0aGlzLnVybEJhc2U2NERlY29kZShwYXJ0c1sxXSk7XG4gICAgICAgIGlmICghZGVjb2RlZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVjb2RlIHRoZSB0b2tlbi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb2tlbkV4cGlyYXRpb25EYXRlKHRva2VuOiBzdHJpbmcpOiBEYXRlIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSB0aGlzLmRlY29kZVRva2VuKHRva2VuKTtcblxuICAgICAgICBpZiAoIWRlY29kZWQgfHwgIWRlY29kZWQuaGFzT3duUHJvcGVydHkoJ2V4cCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgwKTtcbiAgICAgICAgZGF0ZS5zZXRVVENTZWNvbmRzKGRlY29kZWQuZXhwKTtcblxuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNUb2tlbkV4cGlyZWQodG9rZW46IHN0cmluZywgb2Zmc2V0U2Vjb25kcz86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRva2VuIHx8IHRva2VuID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZ2V0VG9rZW5FeHBpcmF0aW9uRGF0ZSh0b2tlbik7XG4gICAgICAgIG9mZnNldFNlY29uZHMgPSBvZmZzZXRTZWNvbmRzIHx8IDA7XG5cbiAgICAgICAgaWYgKGRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhKGRhdGUudmFsdWVPZigpID4gbmV3IERhdGUoKS52YWx1ZU9mKCkgKyBvZmZzZXRTZWNvbmRzICogMTAwMCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEF1dGhTY2hlbWUoXG4gICAgICAgIGF1dGhTY2hlbWU6IChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KSA9PiBhbnkgfCBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT5cbiAgICApOiBzdHJpbmcge1xuICAgICAgICBpZiAodHlwZW9mIGF1dGhTY2hlbWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBhdXRoU2NoZW1lKHJlcXVlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGF1dGhTY2hlbWU7XG4gICAgfVxufVxuIl19
@@ -12,4 +12,4 @@ export * from './translate.service';
12
12
  export * from './utilities.service';
13
13
  export * from './validator.service';
14
14
  export * from './window-scrolling.service';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWxpYi9jb3JlL2NvbW1vbi9zZXJ2aWNlc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9hZGRvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb29raWUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1jb252ZXJ0b3Iuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9qd3QtaGVscGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWxpdGllcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0b3Iuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2luZG93LXNjcm9sbGluZy5zZXJ2aWNlJztcclxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1saWIvY29yZS9jb21tb24vc2VydmljZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9hZGRvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29sb3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Nvb2tpZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1jb252ZXJ0b3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2p3dC1oZWxwZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbGl0aWVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0b3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3dpbmRvdy1zY3JvbGxpbmcuc2VydmljZSc7XG4iXX0=
@@ -70,4 +70,4 @@ PepSessionService.decorators = [
70
70
  PepSessionService.ctorParameters = () => [
71
71
  { type: PepJwtHelperService }
72
72
  ];
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUszRCxNQUFNLE9BQU8saUJBQWlCO0lBSzFCLCtFQUErRTtJQUUvRSxZQUFvQixTQUE4QjtRQUE5QixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQU5qQyxrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQUM1QixzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN2RCxrREFBa0Q7UUFDakMsc0JBQWlCLEdBQUcsZUFBZSxDQUFDLENBQUMsd0JBQXdCO0lBR3pCLENBQUM7SUFFOUMsYUFBYTtRQUNqQixZQUFZO1FBQ1osMnVEQUEydUQ7UUFDM3VELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyw4QkFBOEI7UUFFOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsdUVBQXVFO1FBQ3ZFLDBEQUEwRDtRQUUxRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxDQUFJLEdBQVcsRUFBRSxNQUFTO1FBQy9CLE1BQU0saUJBQWlCLEdBQ25CLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLFlBQVksTUFBTTtZQUNsRCxDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFNBQVMsQ0FBVSxHQUFXO1FBQzFCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXpDLElBQUk7WUFDQSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDbEQ7UUFBQyxXQUFNO1lBQ0osTUFBTSxHQUFHLElBQUksQ0FBQztTQUNqQjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsMENBQTBDO0lBQzFDLElBQUk7SUFFSiwwQ0FBMEM7SUFDMUMsMENBQTBDO0lBQzFDLElBQUk7SUFFSixZQUFZLENBQUMsR0FBVztRQUNwQixjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCwyQkFBMkI7SUFDM0Isa0RBQWtEO0lBQ2xELElBQUk7SUFFSixjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYztRQUNWLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUQsQ0FBQzs7OztZQTFFSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQUpRLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGVwSnd0SGVscGVyU2VydmljZSB9IGZyb20gJy4vand0LWhlbHBlci5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBlcFNlc3Npb25TZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgSURQX1RPS0VOX0tFWSA9ICdpZHBfdG9rZW4nO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBQQVBJX0JBU0VfVVJMX0tFWSA9ICdwZXBwZXJpLmJhc2V1cmwnO1xyXG4gICAgLy8gcHJpdmF0ZSByZWFkb25seSBXQVBJX1RPS0VOX0tFWSA9ICdhdXRoX3Rva2VuJztcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgV0FQSV9CQVNFX1VSTF9LRVkgPSAnc2VydmVySG9zdFVSTCc7IC8vIHBlcHBlcmkud2ViYXBpYmFzZXVybFxyXG4gICAgLy8gcHJpdmF0ZSByZWFkb25seSBQRVBQRVJJX0NPTlNVTUVSX1RPS0VOOiAnWVkycEF3eDZFeG8yTFdYclVsbEY5eHpTZldGNTN3cWMnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgand0SGVscGVyOiBQZXBKd3RIZWxwZXJTZXJ2aWNlKSB7fVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UGFyc2VUb2tlbigpOiBhbnkge1xyXG4gICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgIC8vIGNvbnN0IHRva2VuVGVzdCA9IFwiZXlKaGJHY2lPaUpTVXpJMU5pSXNJbXRwWkNJNklqUmlZVEZqTnpKbU1USTNOVGhqWXpFek16ZzNaV1EzWVRCaVpqTmxPRGczSWl3aWRIbHdJam9pU2xkVUluMC5leUp1WW1ZaU9qRTFPVFkzTWpVNU5qa3NJbVY0Y0NJNk1UVTVOamN5TmpJMk9Td2lhWE56SWpvaWFIUjBjSE02THk5cFpIQXVjMkZ1WkdKdmVDNXdaWEJ3WlhKcExtTnZiU0lzSW1GMVpDSTZJbkJsY0hCbGNta3VkMlZpWVhCd0xtRndjQzV6WVc1a1ltOTRMbkJsY0hCbGNta3VZMjl0SWl3aWFXRjBJam94TlRrMk56STFPVFk1TENKaGRGOW9ZWE5vSWpvaVNHdG1SWEowUTJKelEzTnpPVFZLVW0wNVZtSlRkeUlzSW5OcFpDSTZJakprTnpGaU0ySmlOV1V5TmpSaU5EazJZMkptWkRrek5tWXlOVE5oTldJeklpd2ljM1ZpSWpvaVpUSmtabVEwTURZdFpETTRZeTAwWm1Zd0xUaGhaR0l0TVdSbE1qSTNPREl6WVdFeUlpd2lZWFYwYUY5MGFXMWxJam94TlRrMk56RTRPREE1TENKcFpIQWlPaUpzYjJOaGJDSXNJbTVoYldVaU9pSmtZVzVwWld3Z1pHRjJhV1J2Wm1ZaUxDSmxiV0ZwYkNJNkltUmhibWxsYkM1a1FIQmxjSEJsY21sMFpYTjBMbU52YlNJc0luQmxjSEJsY21rdWFXUWlPamcyT1RBek1EUXNJbkJsY0hCbGNta3VkWE5sY25WMWFXUWlPaUpsTW1SbVpEUXdOaTFrTXpoakxUUm1aakF0T0dGa1lpMHhaR1V5TWpjNE1qTmhZVElpTENKd1pYQndaWEpwTG1ScGMzUnlhV0oxZEc5eWFXUWlPak13TURFeU16VXhMQ0p3WlhCd1pYSnBMbVJwYzNSeWFXSjFkRzl5ZFhWcFpDSTZJakJpWkRCbFpEYzVMVGhsT1dVdE5EUm1ZaTA1Tm1ZMExUaGxOVE5sWkRsalpUZ3lZaUlzSW5CbGNIQmxjbWt1WkdGMFlXTmxiblJsY2lJNkluTmhibVJpYjNnaUxDSndaWEJ3WlhKcExtdGxaWEJzYjJkcGJpSTZabUZzYzJVc0luQmxjSEJsY21rdWFXUnNaWFJwYldWM1pXSWlPakV5TUN3aWRYQmtZWFJsWkY5aGRDSTZNVFU1Tmpjd01qZ3dNQ3dpWjJsMlpXNWZibUZ0WlNJNkltUmhibWxsYkNJc0ltWmhiV2xzZVY5dVlXMWxJam9pWkdGMmFXUnZabVlpTENKd1pYQndaWEpwTG1Gd2FXNTBZbUZ6WlhWeWJDSTZJbWgwZEhCek9pOHZjbVZ6ZEdGd2FTNXpZVzVrWW05NExuQmxjSEJsY21rdVkyOXRJaXdpY0dWd2NHVnlhUzUzWldKaGNHbGlZWE5sZFhKc0lqb2lhSFIwY0hNNkx5OTNaV0poY0drdWMyRnVaR0p2ZUM1d1pYQndaWEpwTG1OdmJTOVdNVFpmTlRBdlYyVmlRWEJ3WHpZaUxDSndaWEJ3WlhKcExuQjFZbXhwWTJGd2FXSmhjMlYxY213aU9pSm9kSFJ3Y3pvdkwyRndhUzF6WVc1a1ltOTRMbkJsY0hCbGNta3VZMjl0SWl3aWNHVndjR1Z5YVM1aVlYTmxkWEpzSWpvaWFIUjBjSE02THk5d1lYQnBMbk5oYm1SaWIzZ3VjR1Z3Y0dWeWFTNWpiMjB2VmpFdU1DSXNJbkJsY0hCbGNta3VaVzF3Ykc5NVpXVjBlWEJsSWpveExDSmhiWElpT2xzaWNIZGtJbDE5LnROdFpUM0NsNGRNbVRRZnRvYU8yS1A1QnZIT2xXR0lQLTVHcEhyQWhab3ltQmt4QlN4cEtwclFHcXIwQVR0UWxOSGpYM2dEVjFXNmtfYXZhU2t5SmdEaUIyaGN3cjF0TlJpbGFzTnVNek5WOTNneExDOU9oX0hka0lONGNaMGhhaEljSnZmXzE3UEhwUzh6RF9NUnd2R0dfaTQ1d1JZSkF0aUdYQ2h4Q016b29ldGhSc0xPcTVURXd1TmJFM014ZGpaT3BJbUdZeXl0bXNmZHNkSlJXUW4xTFF3UUJ0OTVzc3V5cGNVekJzVkIzNFA1WHVGdHRqQWU5ZGhUd0hJZmdzUEctVmRmQVdIX3ItaFZlODM0d0twS3JwbFNXbENfTXVjZ1MwWDRYUF90TjRDdExuSE8yd1hLUHNvanFTVEgyTlF5Y2ZxaDZZdlQ2cnpSREJFZFFJUVwiO1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5nZXRJZHBUb2tlbigpO1xyXG4gICAgICAgIC8vIHRva2VuID0gdG9rZW4gfHwgdG9rZW5UZXN0O1xyXG5cclxuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmp3dEhlbHBlci5kZWNvZGVUb2tlbih0b2tlbik7XHJcbiAgICAgICAgLy8gY29uc3QgZXhwaXJhdGlvbkRhdGUgPSB0aGlzLmp3dEhlbHBlci5nZXRUb2tlbkV4cGlyYXRpb25EYXRlKHRva2VuKTtcclxuICAgICAgICAvLyBjb25zdCBpc0V4cGlyZWQgPSB0aGlzLmp3dEhlbHBlci5pc1Rva2VuRXhwaXJlZCh0b2tlbik7XHJcblxyXG4gICAgICAgIHJldHVybiBkZWNvZGVkVG9rZW47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0T2JqZWN0PFQ+KGtleTogc3RyaW5nLCBvYmplY3Q6IFQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzdHJpbmdpZmllZE9iamVjdCA9XHJcbiAgICAgICAgICAgIHR5cGVvZiBvYmplY3QgPT09ICdzdHJpbmcnIHx8IG9iamVjdCBpbnN0YW5jZW9mIFN0cmluZ1xyXG4gICAgICAgICAgICAgICAgPyBvYmplY3RcclxuICAgICAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkob2JqZWN0KTtcclxuXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXksIHN0cmluZ2lmaWVkT2JqZWN0LnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE9iamVjdDxUID0gYW55PihrZXk6IHN0cmluZyk6IFQge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSk7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW0gPyAoSlNPTi5wYXJzZShpdGVtKSBhcyBUKSA6IGl0ZW07XHJcbiAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHNldE9iamVjdChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgLy8gICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gZ2V0T2JqZWN0KGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAvLyAgICAgcmV0dXJuIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5KTtcclxuICAgIC8vIH1cclxuXHJcbiAgICByZW1vdmVPYmplY3Qoa2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZ2V0V2FwaVRva2VuKCk6IHN0cmluZyB7XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZ2V0T2JqZWN0KHRoaXMuV0FQSV9UT0tFTl9LRVkpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGdldFdhcGlCYXNlVXJsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T2JqZWN0KHRoaXMuV0FQSV9CQVNFX1VSTF9LRVkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldElkcFRva2VuKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T2JqZWN0KHRoaXMuSURQX1RPS0VOX0tFWSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGFwaUJhc2VVcmwoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB0b2tlbk9iaiA9IHRoaXMuZ2V0UGFyc2VUb2tlbigpO1xyXG4gICAgICAgIHJldHVybiB0b2tlbk9iaiA/IHRva2VuT2JqW3RoaXMuUEFQSV9CQVNFX1VSTF9LRVldIDogbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUszRCxNQUFNLE9BQU8saUJBQWlCO0lBSzFCLCtFQUErRTtJQUUvRSxZQUFvQixTQUE4QjtRQUE5QixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQU5qQyxrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQUM1QixzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN2RCxrREFBa0Q7UUFDakMsc0JBQWlCLEdBQUcsZUFBZSxDQUFDLENBQUMsd0JBQXdCO0lBR3pCLENBQUM7SUFFOUMsYUFBYTtRQUNqQixZQUFZO1FBQ1osMnVEQUEydUQ7UUFDM3VELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyw4QkFBOEI7UUFFOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsdUVBQXVFO1FBQ3ZFLDBEQUEwRDtRQUUxRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxDQUFJLEdBQVcsRUFBRSxNQUFTO1FBQy9CLE1BQU0saUJBQWlCLEdBQ25CLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLFlBQVksTUFBTTtZQUNsRCxDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFNBQVMsQ0FBVSxHQUFXO1FBQzFCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXpDLElBQUk7WUFDQSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDbEQ7UUFBQyxXQUFNO1lBQ0osTUFBTSxHQUFHLElBQUksQ0FBQztTQUNqQjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsMENBQTBDO0lBQzFDLElBQUk7SUFFSiwwQ0FBMEM7SUFDMUMsMENBQTBDO0lBQzFDLElBQUk7SUFFSixZQUFZLENBQUMsR0FBVztRQUNwQixjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCwyQkFBMkI7SUFDM0Isa0RBQWtEO0lBQ2xELElBQUk7SUFFSixjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYztRQUNWLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUQsQ0FBQzs7OztZQTFFSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQUpRLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBlcEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICcuL2p3dC1oZWxwZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcFNlc3Npb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IElEUF9UT0tFTl9LRVkgPSAnaWRwX3Rva2VuJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IFBBUElfQkFTRV9VUkxfS0VZID0gJ3BlcHBlcmkuYmFzZXVybCc7XG4gICAgLy8gcHJpdmF0ZSByZWFkb25seSBXQVBJX1RPS0VOX0tFWSA9ICdhdXRoX3Rva2VuJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IFdBUElfQkFTRV9VUkxfS0VZID0gJ3NlcnZlckhvc3RVUkwnOyAvLyBwZXBwZXJpLndlYmFwaWJhc2V1cmxcbiAgICAvLyBwcml2YXRlIHJlYWRvbmx5IFBFUFBFUklfQ09OU1VNRVJfVE9LRU46ICdZWTJwQXd4NkV4bzJMV1hyVWxsRjl4elNmV0Y1M3dxYyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGp3dEhlbHBlcjogUGVwSnd0SGVscGVyU2VydmljZSkge31cblxuICAgIHByaXZhdGUgZ2V0UGFyc2VUb2tlbigpOiBhbnkge1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgLy8gY29uc3QgdG9rZW5UZXN0ID0gXCJleUpoYkdjaU9pSlNVekkxTmlJc0ltdHBaQ0k2SWpSaVlURmpOekptTVRJM05UaGpZekV6TXpnM1pXUTNZVEJpWmpObE9EZzNJaXdpZEhsd0lqb2lTbGRVSW4wLmV5SnVZbVlpT2pFMU9UWTNNalU1Tmprc0ltVjRjQ0k2TVRVNU5qY3lOakkyT1N3aWFYTnpJam9pYUhSMGNITTZMeTlwWkhBdWMyRnVaR0p2ZUM1d1pYQndaWEpwTG1OdmJTSXNJbUYxWkNJNkluQmxjSEJsY21rdWQyVmlZWEJ3TG1Gd2NDNXpZVzVrWW05NExuQmxjSEJsY21rdVkyOXRJaXdpYVdGMElqb3hOVGsyTnpJMU9UWTVMQ0poZEY5b1lYTm9Jam9pU0d0bVJYSjBRMkp6UTNOek9UVktVbTA1Vm1KVGR5SXNJbk5wWkNJNklqSmtOekZpTTJKaU5XVXlOalJpTkRrMlkySm1aRGt6Tm1ZeU5UTmhOV0l6SWl3aWMzVmlJam9pWlRKa1ptUTBNRFl0WkRNNFl5MDBabVl3TFRoaFpHSXRNV1JsTWpJM09ESXpZV0V5SWl3aVlYVjBhRjkwYVcxbElqb3hOVGsyTnpFNE9EQTVMQ0pwWkhBaU9pSnNiMk5oYkNJc0ltNWhiV1VpT2lKa1lXNXBaV3dnWkdGMmFXUnZabVlpTENKbGJXRnBiQ0k2SW1SaGJtbGxiQzVrUUhCbGNIQmxjbWwwWlhOMExtTnZiU0lzSW5CbGNIQmxjbWt1YVdRaU9qZzJPVEF6TURRc0luQmxjSEJsY21rdWRYTmxjblYxYVdRaU9pSmxNbVJtWkRRd05pMWtNemhqTFRSbVpqQXRPR0ZrWWkweFpHVXlNamM0TWpOaFlUSWlMQ0p3WlhCd1pYSnBMbVJwYzNSeWFXSjFkRzl5YVdRaU9qTXdNREV5TXpVeExDSndaWEJ3WlhKcExtUnBjM1J5YVdKMWRHOXlkWFZwWkNJNklqQmlaREJsWkRjNUxUaGxPV1V0TkRSbVlpMDVObVkwTFRobE5UTmxaRGxqWlRneVlpSXNJbkJsY0hCbGNta3VaR0YwWVdObGJuUmxjaUk2SW5OaGJtUmliM2dpTENKd1pYQndaWEpwTG10bFpYQnNiMmRwYmlJNlptRnNjMlVzSW5CbGNIQmxjbWt1YVdSc1pYUnBiV1YzWldJaU9qRXlNQ3dpZFhCa1lYUmxaRjloZENJNk1UVTVOamN3TWpnd01Dd2laMmwyWlc1ZmJtRnRaU0k2SW1SaGJtbGxiQ0lzSW1aaGJXbHNlVjl1WVcxbElqb2laR0YyYVdSdlptWWlMQ0p3WlhCd1pYSnBMbUZ3YVc1MFltRnpaWFZ5YkNJNkltaDBkSEJ6T2k4dmNtVnpkR0Z3YVM1ellXNWtZbTk0TG5CbGNIQmxjbWt1WTI5dElpd2ljR1Z3Y0dWeWFTNTNaV0poY0dsaVlYTmxkWEpzSWpvaWFIUjBjSE02THk5M1pXSmhjR2t1YzJGdVpHSnZlQzV3WlhCd1pYSnBMbU52YlM5V01UWmZOVEF2VjJWaVFYQndYellpTENKd1pYQndaWEpwTG5CMVlteHBZMkZ3YVdKaGMyVjFjbXdpT2lKb2RIUndjem92TDJGd2FTMXpZVzVrWW05NExuQmxjSEJsY21rdVkyOXRJaXdpY0dWd2NHVnlhUzVpWVhObGRYSnNJam9pYUhSMGNITTZMeTl3WVhCcExuTmhibVJpYjNndWNHVndjR1Z5YVM1amIyMHZWakV1TUNJc0luQmxjSEJsY21rdVpXMXdiRzk1WldWMGVYQmxJam94TENKaGJYSWlPbHNpY0hka0lsMTkudE50WlQzQ2w0ZE1tVFFmdG9hTzJLUDVCdkhPbFdHSVAtNUdwSHJBaFpveW1Ca3hCU3hwS3ByUUdxcjBBVHRRbE5IalgzZ0RWMVc2a19hdmFTa3lKZ0RpQjJoY3dyMXROUmlsYXNOdU16TlY5M2d4TEM5T2hfSGRrSU40Y1owaGFoSWNKdmZfMTdQSHBTOHpEX01Sd3ZHR19pNDV3UllKQXRpR1hDaHhDTXpvb2V0aFJzTE9xNVRFd3VOYkUzTXhkalpPcEltR1l5eXRtc2Zkc2RKUldRbjFMUXdRQnQ5NXNzdXlwY1V6QnNWQjM0UDVYdUZ0dGpBZTlkaFR3SElmZ3NQRy1WZGZBV0hfci1oVmU4MzR3S3BLcnBsU1dsQ19NdWNnUzBYNFhQX3RONEN0TG5ITzJ3WEtQc29qcVNUSDJOUXljZnFoNll2VDZyelJEQkVkUUlRXCI7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5nZXRJZHBUb2tlbigpO1xuICAgICAgICAvLyB0b2tlbiA9IHRva2VuIHx8IHRva2VuVGVzdDtcblxuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmp3dEhlbHBlci5kZWNvZGVUb2tlbih0b2tlbik7XG4gICAgICAgIC8vIGNvbnN0IGV4cGlyYXRpb25EYXRlID0gdGhpcy5qd3RIZWxwZXIuZ2V0VG9rZW5FeHBpcmF0aW9uRGF0ZSh0b2tlbik7XG4gICAgICAgIC8vIGNvbnN0IGlzRXhwaXJlZCA9IHRoaXMuand0SGVscGVyLmlzVG9rZW5FeHBpcmVkKHRva2VuKTtcblxuICAgICAgICByZXR1cm4gZGVjb2RlZFRva2VuO1xuICAgIH1cblxuICAgIHNldE9iamVjdDxUPihrZXk6IHN0cmluZywgb2JqZWN0OiBUKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0cmluZ2lmaWVkT2JqZWN0ID1cbiAgICAgICAgICAgIHR5cGVvZiBvYmplY3QgPT09ICdzdHJpbmcnIHx8IG9iamVjdCBpbnN0YW5jZW9mIFN0cmluZ1xuICAgICAgICAgICAgICAgID8gb2JqZWN0XG4gICAgICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShvYmplY3QpO1xuXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCBzdHJpbmdpZmllZE9iamVjdC50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBnZXRPYmplY3Q8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBUIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW0gPyAoSlNPTi5wYXJzZShpdGVtKSBhcyBUKSA6IGl0ZW07XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gc2V0T2JqZWN0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAgLy8gfVxuXG4gICAgLy8gZ2V0T2JqZWN0KGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgLy8gICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgLy8gfVxuXG4gICAgcmVtb3ZlT2JqZWN0KGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICB9XG5cbiAgICAvLyBnZXRXYXBpVG9rZW4oKTogc3RyaW5nIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZ2V0T2JqZWN0KHRoaXMuV0FQSV9UT0tFTl9LRVkpO1xuICAgIC8vIH1cblxuICAgIGdldFdhcGlCYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE9iamVjdCh0aGlzLldBUElfQkFTRV9VUkxfS0VZKTtcbiAgICB9XG5cbiAgICBnZXRJZHBUb2tlbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPYmplY3QodGhpcy5JRFBfVE9LRU5fS0VZKTtcbiAgICB9XG5cbiAgICBnZXRQYXBpQmFzZVVybCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0b2tlbk9iaiA9IHRoaXMuZ2V0UGFyc2VUb2tlbigpO1xuICAgICAgICByZXR1cm4gdG9rZW5PYmogPyB0b2tlbk9ialt0aGlzLlBBUElfQkFTRV9VUkxfS0VZXSA6IG51bGw7XG4gICAgfVxufVxuIl19
@@ -140,4 +140,4 @@ PepUtilitiesService.decorators = [
140
140
  PepUtilitiesService.ctorParameters = () => [
141
141
  { type: TranslateService, decorators: [{ type: Optional }] }
142
142
  ];
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy91dGlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxtQkFBbUI7SUFJNUIsWUFBZ0MsWUFBOEIsSUFBSTs7UUFBbEMsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFGMUQsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUd0QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxxQkFBcUIsRUFBRSxLQUFJLE9BQU8sQ0FBQztRQUNsRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3ZELHFCQUFxQixFQUFFLENBQUM7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWEsRUFBRSxPQUFPLEdBQUcsS0FBSztRQUN6RCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxHQUFHLEVBQUU7WUFDcEMscUVBQXFFO1lBQ3JFLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN2RTtRQUVELE9BQU8sS0FBSyxDQUFD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LFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUN6QyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQzFCLElBQUksQ0FDUCxDQUFDO1FBRUYsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQVUsRUFBRSxhQUFhLEdBQUcsQ0FBQztRQUM5QyxtREFBbUQ7UUFDbkQsS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQyxPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7O1lBbktKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBSlEsZ0JBQWdCLHVCQVNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBlcFV0aWxpdGllc1NlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBudW1iZXJGb3JtYXR0ZXI6IEludGwuTnVtYmVyRm9ybWF0O1xyXG4gICAgcHJpdmF0ZSBjdWx0dXJlID0gJ2VuLVVTJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSA9IG51bGwpIHtcclxuICAgICAgICB0aGlzLmN1bHR1cmUgPSB0aGlzLnRyYW5zbGF0ZT8uZ2V0QnJvd3NlckN1bHR1cmVMYW5nKCkgfHwgJ2VuLVVTJztcclxuICAgICAgICB0aGlzLm51bWJlckZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCh0aGlzLmN1bHR1cmUsIHtcclxuICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hhbmdlRGVjaW1hbFNlcGVyYXRvcih2YWx1ZTogc3RyaW5nLCByZXZlcnNlID0gZmFsc2UpOiBzdHJpbmcge1xyXG4gICAgICAgIC8vIElmIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBpcyAnLCdcclxuICAgICAgICBpZiAodGhpcy5nZXREZWNpbWFsU2VwYXJhdG9yKCkgPT09ICcsJykge1xyXG4gICAgICAgICAgICAvLyBJZiByZXZlcnNlIGNoYW5nZSB0aGUgbnVtYmVyIGZyb20gJy4nIHRvICcsJyBlbHNlIGRvIHRoZSBvcHBvc2l0ZS5cclxuICAgICAgICAgICAgdmFsdWUgPSByZXZlcnNlID8gdmFsdWUucmVwbGFjZSgnLicsICcsJykgOiB2YWx1ZS5yZXBsYWNlKCcsJywgJy4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERlY2ltYWxTZXBhcmF0b3IoKSB7XHJcbiAgICAgICAgY29uc3QgbnVtYmVyV2l0aERlY2ltYWxTZXBhcmF0b3IgPSAxLjE7XHJcblxyXG4gICAgICAgIHJldHVybiBudW1iZXJXaXRoRGVjaW1hbFNlcGFyYXRvclxyXG4gICAgICAgICAgICAudG9Mb2NhbGVTdHJpbmcodGhpcy5jdWx0dXJlKVxyXG4gICAgICAgICAgICAuc3Vic3RyaW5nKDEsIDIpO1xyXG4gICAgfVxyXG5cclxuICAgIHBhcnNlRGF0ZShkYXRlU3RyOiBzdHJpbmcsIHNob3dUaW1lID0gZmFsc2UpOiBEYXRlIHtcclxuICAgICAgICBsZXQgcmV0VmFsOiBEYXRlID0gbnVsbDtcclxuICAgICAgICBpZiAoZGF0ZVN0ciAhPT0gJycpIHtcclxuICAgICAgICAgICAgcmV0VmFsID0gbmV3IERhdGUoZGF0ZVN0cik7XHJcblxyXG4gICAgICAgICAgICAvLyBDb252ZXJ0IHRvIGRhdGUgd2l0aCBubyBvZmZzZXQuXHJcbiAgICAgICAgICAgIGlmICghc2hvd1RpbWUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZGF0ZVN0ci5pbmRleE9mKCdUJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGVTdHIgPSBkYXRlU3RyLnN1YnN0cmluZygwLCBpbmRleCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVRleHQgPSBkYXRlU3RyLnNwbGl0KCctJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZVRleHQubGVuZ3RoID09PSAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeWVhciA9IE51bWJlcihkYXRlVGV4dFswXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9udGggPSBOdW1iZXIoZGF0ZVRleHRbMV0pIC0gMTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXkgPSBOdW1iZXIoZGF0ZVRleHRbMl0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldFZhbCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXksIDAsIHJldFZhbC5nZXRUaW1lem9uZU9mZnNldCgpICogLTEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXRWYWwgJiYgaXNOYU4ocmV0VmFsLmdldFRpbWUoKSkpIHtcclxuICAgICAgICAgICAgcmV0VmFsID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldFZhbDtcclxuICAgIH1cclxuXHJcbiAgICBzdHJpbmdpZnlEYXRlKGRhdGU6IERhdGUsIHNob3dUaW1lID0gZmFsc2UpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChkYXRlKSB7XHJcbiAgICAgICAgICAgIGlmIChzaG93VGltZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKTsgLy8gaW5jbHVkZSAtIG9mZnNldFxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVRleHQgPSBbXTtcclxuICAgICAgICAgICAgICAgIGRhdGVUZXh0LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgICAgICAgICAgICAgICctJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICAgICAgICAgICAgICAgICctJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRlLmdldERhdGUoKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlVGV4dC5qb2luKCcnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGlmIChkYXRlKSB7XHJcbiAgICAgICAgLy8gICAgIGNvbnN0IGRhdGVUZXh0ID0gW107XHJcbiAgICAgICAgLy8gICAgIGRhdGVUZXh0LnB1c2goXHJcbiAgICAgICAgLy8gICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgLy8gICAgICAgICAnLScsXHJcbiAgICAgICAgLy8gICAgICAgICBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICAgIC8vICAgICAgICAgJy0nLFxyXG4gICAgICAgIC8vICAgICAgICAgZGF0ZS5nZXREYXRlKClcclxuICAgICAgICAvLyAgICAgKTtcclxuXHJcbiAgICAgICAgLy8gICAgIGlmIChzaG93VGltZSkge1xyXG4gICAgICAgIC8vICAgICAgICAgZGF0ZVRleHQucHVzaChcclxuICAgICAgICAvLyAgICAgICAgICAgICAnVCcsXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgKGRhdGUuZ2V0SG91cnMoKSA8IDEwID8gJzAnIDogJycpICsgZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICAgIC8vICAgICAgICAgICAgICc6JyxcclxuICAgICAgICAvLyAgICAgICAgICAgICAoZGF0ZS5nZXRNaW51dGVzKCkgPCAxMCA/ICcwJyA6ICcnKSArIGRhdGUuZ2V0TWludXRlcygpLFxyXG4gICAgICAgIC8vICAgICAgICAgICAgICc6JyxcclxuICAgICAgICAvLyAgICAgICAgICAgICAoZGF0ZS5nZXRTZWNvbmRzKCkgPCAxMCA/ICcwJyA6ICcnKSArIGRhdGUuZ2V0U2Vjb25kcygpLFxyXG4gICAgICAgIC8vICAgICAgICAgICAgICdaJ1xyXG4gICAgICAgIC8vICAgICAgICAgKTtcclxuICAgICAgICAvLyAgICAgfVxyXG5cclxuICAgICAgICAvLyAgICAgcmV0dXJuIGRhdGVUZXh0LmpvaW4oJycpO1xyXG4gICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgIHJldHVybiAnJztcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNWYWx1ZUh0bWwodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCByZXMgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBSRUdFWFAgPSAvPFxcLz9bYS16XVtcXHNcXFNdKj4vaTtcclxuICAgICAgICByZXMgPSBSRUdFWFAudGVzdCh2YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXM7XHJcbiAgICB9XHJcblxyXG4gICAgaXNKc29uU3RyaW5nKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgSlNPTi5wYXJzZShzdHIpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdmdFbGVtZW50RnJvbVN0cmluZyhkb2N1bWVudCwgc3ZnQ29udGVudDogc3RyaW5nKTogU1ZHRWxlbWVudCB7XHJcbiAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XHJcbiAgICAgICAgZGl2LmlubmVySFRNTCA9IHN2Z0NvbnRlbnQ7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgZGl2LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpIHx8XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAncGF0aCcpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtYXROdW1iZXIodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgbnVtYmVyID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVyRm9ybWF0dGVyLmZvcm1hdChudW1iZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGluY3JlbWVudE51bWJlcih2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgbnVtYmVyVmFsdWUgPSB0aGlzLmNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcclxuICAgICAgICBjb25zdCBuZXdOdW1iZXIgPSB0aGlzLmNoYW5nZURlY2ltYWxTZXBlcmF0b3IoXHJcbiAgICAgICAgICAgICgrK251bWJlclZhbHVlKS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICB0cnVlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ld051bWJlcjtcclxuICAgIH1cclxuXHJcbiAgICBkZWNyZW1lbnROdW1iZXIodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IG51bWJlclZhbHVlID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICAgICAgY29uc3QgbmV3TnVtYmVyID0gdGhpcy5jaGFuZ2VEZWNpbWFsU2VwZXJhdG9yKFxyXG4gICAgICAgICAgICAoLS1udW1iZXJWYWx1ZSkudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXdOdW1iZXI7XHJcbiAgICB9XHJcblxyXG4gICAgY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWU6IGFueSwgZmFsbGJhY2tWYWx1ZSA9IDApOiBudW1iZXIge1xyXG4gICAgICAgIC8vIElmIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBpcyAnLCcgY2hhbmdlIGl0IHRvICcuJ1xyXG4gICAgICAgIHZhbHVlID0gdGhpcy5jaGFuZ2VEZWNpbWFsU2VwZXJhdG9yKHZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlLCBmYWxsYmFja1ZhbHVlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy91dGlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxtQkFBbUI7SUFJNUIsWUFBZ0MsWUFBOEIsSUFBSTs7UUFBbEMsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFGMUQsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUd0QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxxQkFBcUIsRUFBRSxLQUFJLE9BQU8sQ0FBQztRQUNsRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3ZELHFCQUFxQixFQUFFLENBQUM7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWEsRUFBRSxPQUFPLEdBQUcsS0FBSztRQUN6RCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxHQUFHLEVBQUU7WUFDcEMscUVBQXFFO1lBQ3JFLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN2RTtRQUVELE9BQU8sS0FBSyxDQUFD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LFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUN6QyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQzFCLElBQUksQ0FDUCxDQUFDO1FBRUYsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQVUsRUFBRSxhQUFhLEdBQUcsQ0FBQztRQUM5QyxtREFBbUQ7UUFDbkQsS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQyxPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7O1lBbktKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBSlEsZ0JBQWdCLHVCQVNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBVdGlsaXRpZXNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIG51bWJlckZvcm1hdHRlcjogSW50bC5OdW1iZXJGb3JtYXQ7XG4gICAgcHJpdmF0ZSBjdWx0dXJlID0gJ2VuLVVTJztcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlID0gbnVsbCkge1xuICAgICAgICB0aGlzLmN1bHR1cmUgPSB0aGlzLnRyYW5zbGF0ZT8uZ2V0QnJvd3NlckN1bHR1cmVMYW5nKCkgfHwgJ2VuLVVTJztcbiAgICAgICAgdGhpcy5udW1iZXJGb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5jdWx0dXJlLCB7XG4gICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlRGVjaW1hbFNlcGVyYXRvcih2YWx1ZTogc3RyaW5nLCByZXZlcnNlID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICAvLyBJZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgJywnXG4gICAgICAgIGlmICh0aGlzLmdldERlY2ltYWxTZXBhcmF0b3IoKSA9PT0gJywnKSB7XG4gICAgICAgICAgICAvLyBJZiByZXZlcnNlIGNoYW5nZSB0aGUgbnVtYmVyIGZyb20gJy4nIHRvICcsJyBlbHNlIGRvIHRoZSBvcHBvc2l0ZS5cbiAgICAgICAgICAgIHZhbHVlID0gcmV2ZXJzZSA/IHZhbHVlLnJlcGxhY2UoJy4nLCAnLCcpIDogdmFsdWUucmVwbGFjZSgnLCcsICcuJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWNpbWFsU2VwYXJhdG9yKCkge1xuICAgICAgICBjb25zdCBudW1iZXJXaXRoRGVjaW1hbFNlcGFyYXRvciA9IDEuMTtcblxuICAgICAgICByZXR1cm4gbnVtYmVyV2l0aERlY2ltYWxTZXBhcmF0b3JcbiAgICAgICAgICAgIC50b0xvY2FsZVN0cmluZyh0aGlzLmN1bHR1cmUpXG4gICAgICAgICAgICAuc3Vic3RyaW5nKDEsIDIpO1xuICAgIH1cblxuICAgIHBhcnNlRGF0ZShkYXRlU3RyOiBzdHJpbmcsIHNob3dUaW1lID0gZmFsc2UpOiBEYXRlIHtcbiAgICAgICAgbGV0IHJldFZhbDogRGF0ZSA9IG51bGw7XG4gICAgICAgIGlmIChkYXRlU3RyICE9PSAnJykge1xuICAgICAgICAgICAgcmV0VmFsID0gbmV3IERhdGUoZGF0ZVN0cik7XG5cbiAgICAgICAgICAgIC8vIENvbnZlcnQgdG8gZGF0ZSB3aXRoIG5vIG9mZnNldC5cbiAgICAgICAgICAgIGlmICghc2hvd1RpbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGRhdGVTdHIuaW5kZXhPZignVCcpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlU3RyID0gZGF0ZVN0ci5zdWJzdHJpbmcoMCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVUZXh0ID0gZGF0ZVN0ci5zcGxpdCgnLScpO1xuICAgICAgICAgICAgICAgIGlmIChkYXRlVGV4dC5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeWVhciA9IE51bWJlcihkYXRlVGV4dFswXSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbnRoID0gTnVtYmVyKGRhdGVUZXh0WzFdKSAtIDE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRheSA9IE51bWJlcihkYXRlVGV4dFsyXSk7XG4gICAgICAgICAgICAgICAgICAgIHJldFZhbCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXksIDAsIHJldFZhbC5nZXRUaW1lem9uZU9mZnNldCgpICogLTEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocmV0VmFsICYmIGlzTmFOKHJldFZhbC5nZXRUaW1lKCkpKSB7XG4gICAgICAgICAgICByZXRWYWwgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXRWYWw7XG4gICAgfVxuXG4gICAgc3RyaW5naWZ5RGF0ZShkYXRlOiBEYXRlLCBzaG93VGltZSA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgIGlmIChzaG93VGltZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7IC8vIGluY2x1ZGUgLSBvZmZzZXRcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVRleHQgPSBbXTtcbiAgICAgICAgICAgICAgICBkYXRlVGV4dC5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgICAgICAgICctJyxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAgICAgICAgICAgICAgICAgJy0nLFxuICAgICAgICAgICAgICAgICAgICBkYXRlLmdldERhdGUoKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGVUZXh0LmpvaW4oJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWYgKGRhdGUpIHtcbiAgICAgICAgLy8gICAgIGNvbnN0IGRhdGVUZXh0ID0gW107XG4gICAgICAgIC8vICAgICBkYXRlVGV4dC5wdXNoKFxuICAgICAgICAvLyAgICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgLy8gICAgICAgICAnLScsXG4gICAgICAgIC8vICAgICAgICAgZGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAgICAgLy8gICAgICAgICAnLScsXG4gICAgICAgIC8vICAgICAgICAgZGF0ZS5nZXREYXRlKClcbiAgICAgICAgLy8gICAgICk7XG5cbiAgICAgICAgLy8gICAgIGlmIChzaG93VGltZSkge1xuICAgICAgICAvLyAgICAgICAgIGRhdGVUZXh0LnB1c2goXG4gICAgICAgIC8vICAgICAgICAgICAgICdUJyxcbiAgICAgICAgLy8gICAgICAgICAgICAgKGRhdGUuZ2V0SG91cnMoKSA8IDEwID8gJzAnIDogJycpICsgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICAvLyAgICAgICAgICAgICAnOicsXG4gICAgICAgIC8vICAgICAgICAgICAgIChkYXRlLmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnIDogJycpICsgZGF0ZS5nZXRNaW51dGVzKCksXG4gICAgICAgIC8vICAgICAgICAgICAgICc6JyxcbiAgICAgICAgLy8gICAgICAgICAgICAgKGRhdGUuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgOiAnJykgKyBkYXRlLmdldFNlY29uZHMoKSxcbiAgICAgICAgLy8gICAgICAgICAgICAgJ1onXG4gICAgICAgIC8vICAgICAgICAgKTtcbiAgICAgICAgLy8gICAgIH1cblxuICAgICAgICAvLyAgICAgcmV0dXJuIGRhdGVUZXh0LmpvaW4oJycpO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgcmV0dXJuICcnO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgaXNWYWx1ZUh0bWwodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgcmVzID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IFJFR0VYUCA9IC88XFwvP1thLXpdW1xcc1xcU10qPi9pO1xuICAgICAgICByZXMgPSBSRUdFWFAudGVzdCh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBpc0pzb25TdHJpbmcoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGdldFN2Z0VsZW1lbnRGcm9tU3RyaW5nKGRvY3VtZW50LCBzdmdDb250ZW50OiBzdHJpbmcpOiBTVkdFbGVtZW50IHtcbiAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XG4gICAgICAgIGRpdi5pbm5lckhUTUwgPSBzdmdDb250ZW50O1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZGl2LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3BhdGgnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvcm1hdE51bWJlcih2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbnVtYmVyID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzLm51bWJlckZvcm1hdHRlci5mb3JtYXQobnVtYmVyKTtcbiAgICB9XG5cbiAgICBpbmNyZW1lbnROdW1iZXIodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBudW1iZXJWYWx1ZSA9IHRoaXMuY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdOdW1iZXIgPSB0aGlzLmNoYW5nZURlY2ltYWxTZXBlcmF0b3IoXG4gICAgICAgICAgICAoKytudW1iZXJWYWx1ZSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gbmV3TnVtYmVyO1xuICAgIH1cblxuICAgIGRlY3JlbWVudE51bWJlcih2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG51bWJlclZhbHVlID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IG5ld051bWJlciA9IHRoaXMuY2hhbmdlRGVjaW1hbFNlcGVyYXRvcihcbiAgICAgICAgICAgICgtLW51bWJlclZhbHVlKS50b1N0cmluZygpLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBuZXdOdW1iZXI7XG4gICAgfVxuXG4gICAgY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWU6IGFueSwgZmFsbGJhY2tWYWx1ZSA9IDApOiBudW1iZXIge1xuICAgICAgICAvLyBJZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgJywnIGNoYW5nZSBpdCB0byAnLidcbiAgICAgICAgdmFsdWUgPSB0aGlzLmNoYW5nZURlY2ltYWxTZXBlcmF0b3IodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgZmFsbGJhY2tWYWx1ZSk7XG4gICAgfVxufVxuIl19
@@ -270,4 +270,4 @@ PepValidatorService.decorators = [
270
270
  PepValidatorService.ctorParameters = () => [
271
271
  { type: TranslateService, decorators: [{ type: Optional }] }
272
272
  ];
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy92YWxpZGF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBR0gsV0FBVyxFQUNYLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDOzs7QUFLeEIsTUFBTSxPQUFPLG1CQUFtQjtJQVU1QixZQUFnQyxZQUE4QixJQUFJOztRQUFsQyxjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQVRsRSx1QkFBdUI7UUFDZCxvQkFBZSxHQUFHLFVBQVUsQ0FBQztRQUM3QixrQkFBYSxHQUFHLFlBQVksQ0FBQztRQUN0QyxvQkFBZSxHQUFHLG9CQUFvQixDQUFDO1FBQ3ZDLGtCQUFhLEdBQUcsc0JBQXNCLENBQUM7UUFDOUIsVUFBSyxHQUFHLDRDQUE0QyxDQUFDO1FBRTlELHFCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUduQixNQUFNLFdBQVcsR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsV0FBVyxLQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFFdEUsc0dBQXNHO1FBQ3RHLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUU7WUFDM0Msd0JBQXdCLEVBQUUsQ0FBQztTQUM5QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxL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LENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDckQsSUFBSSxDQUFDLFVBQVUsSUFBSSx5QkFBeUIsSUFBSSxjQUFjLElBQUksQ0FBQyxFQUFFO1lBQ2pFLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7UUFFRCxvQ0FBb0M7UUFDcEMsSUFDSSxJQUFJLENBQUMsaUNBQWlDLENBQ2xDLFdBQVcsRUFDWCxHQUFHLEVBQ0gsZ0JBQWdCLENBQ25CLEVBQ0g7WUFDRSxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsK0JBQStCO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzs7OztZQWpUSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQVZRLGdCQUFnQix1QkFxQlIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQWJzdHJhY3RDb250cm9sLFxyXG4gICAgVmFsaWRhdG9yRm4sXHJcbiAgICBGb3JtQ29udHJvbCxcclxuICAgIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVwVmFsaWRhdG9yU2VydmljZSB7XHJcbiAgICAvLyAgUmVndWxhciBleHByZXNzaW9uc1xyXG4gICAgcmVhZG9ubHkgaW50ZWdlclVuc2lnbmVkID0gJ15bMC05XSokJztcclxuICAgIHJlYWRvbmx5IGludGVnZXJTaWduZWQgPSAnXi0/WzAtOV0rJCc7XHJcbiAgICBkZWNpbWFsVW5zaWduZWQgPSAnXlswLTldKyguWzAtOV0rKT8kJztcclxuICAgIGRlY2ltYWxTaWduZWQgPSAnXi0/WzAtOV0rKC5bMC05XSspPyQnO1xyXG4gICAgcmVhZG9ubHkgcGhvbmUgPSAnXlsrXSpbKF17MCwxfVswLTldezEsNH1bKV17MCwxfVstcy4vMC05XSokJztcclxuXHJcbiAgICBkZWNpbWFsU2VwYXJhdG9yID0gJy4nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlID0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xhdGU/LmN1cnJlbnRMYW5nIHx8IG5hdmlnYXRvci5sYW5ndWFnZTtcclxuXHJcbiAgICAgICAgLy8gQ2hlY2sgZm9yIG51bWJlciB3aXRoIHRob3VzYW5kcyBzZXBlcmF0b3IgYW5kIGlmID09PSAnLCcgdGhlbiB0aGUgZGVjaW1hbCBzZXBlcmF0b3IgaXMgJy4nIGVsc2UgJywnXHJcbiAgICAgICAgY29uc3QgdG1wID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KGN1cnJlbnRMYW5nLCB7XHJcbiAgICAgICAgICAgIG1heGltdW1TaWduaWZpY2FudERpZ2l0czogMixcclxuICAgICAgICB9KS5mb3JtYXQoMTAwMCk7XHJcbiAgICAgICAgdGhpcy5kZWNpbWFsU2VwYXJhdG9yID0gdG1wLmluZGV4T2YoJywnKSA9PT0gMSA/ICcuJyA6ICcsJztcclxuXHJcbiAgICAgICAgdGhpcy5kZWNpbWFsVW5zaWduZWQgPSBgXlswLTldKygke3RoaXMuZGVjaW1hbFNlcGFyYXRvcn1bMC05XSspPyRgO1xyXG4gICAgICAgIHRoaXMuZGVjaW1hbFNpZ25lZCA9IGBeLT9bMC05XSsoJHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9WzAtOV0rKT8kYDtcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgICAgIFZhbGlkYXRvckZuIGZ1bmN0aW9uc1xyXG4gICAgKi9cclxuICAgIGlzRXF1YWwodGFyZ2V0OiBGb3JtQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWUgIT09IGNvbnRyb2wudmFsdWVcclxuICAgICAgICAgICAgICAgICAgICA/IHsgZXF1YWw6IHsgdmFsdWU6IHRydWUgfSB9XHJcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGlzR3JlYXRlclRoYW4odGFyZ2V0OiBGb3JtQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIHRhcmdldC52YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWUgPiBjb250cm9sLnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgPyB7IGdyZWF0ZXI6IHsgdmFsdWU6IHRydWUgfSB9XHJcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIHRhcmdldC52YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZU51bWVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkoY29udHJvbC52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRWYWx1ZU51bWVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkodGFyZ2V0LnZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0VmFsdWVOdW1lciA+IGNvbnRyb2xWYWx1ZU51bWVyXHJcbiAgICAgICAgICAgICAgICAgICAgPyB7IGdyZWF0ZXI6IHsgdmFsdWU6IHRydWUgfSB9XHJcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGlzTGVzc1RoYW4odGFyZ2V0OiBGb3JtQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIHRhcmdldC52YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWUgPCBjb250cm9sLnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgPyB7IGxlc3M6IHsgdmFsdWU6IHRydWUgfSB9XHJcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIHRhcmdldC52YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZU51bWVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkoY29udHJvbC52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRWYWx1ZU51bWVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkodGFyZ2V0LnZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0VmFsdWVOdW1lciA8IGNvbnRyb2xWYWx1ZU51bWVyXHJcbiAgICAgICAgICAgICAgICAgICAgPyB7IGxlc3M6IHsgdmFsdWU6IHRydWUgfSB9XHJcbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrRW1haWxzKHNlcGFyYXRvcj86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVtYWlscyA9IGNvbnRyb2wudmFsdWUuc3BsaXQoc2VwYXJhdG9yID8gc2VwYXJhdG9yIDogJywnKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGN0cmwgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtcclxuICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMuZW1haWwsXHJcbiAgICAgICAgICAgICAgICBdKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGVtYWlscy5ldmVyeSgodmFsOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjdHJsLnNldFZhbHVlKHZhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0cmwudmFsaWQ7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIXJlc3VsdCA/IHsgZW1haWxzOiB7IHZhbHVlOiB0cnVlIH0gfSA6IG51bGw7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgemlwQ29kZVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIFZhbGlkYXRvcnMucGF0dGVybigvXihcXGR7NX0oLVxcZHs0fSk/fFtBLVpdXFxkW0EtWl0gKlxcZFtBLVpdXFxkKSQvKTtcclxuICAgIH1cclxuXHJcbiAgICBhbGxvd2FibGVDaGFyYWN0ZXJzVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKFxyXG4gICAgICAgICAgICAvXlthLXpBLVowLTlgfiFAIyQlXiYqKClfK317fFwiOj8+PCwuLzsnXFxcXFxcXVxcWz1cXC0gXSskL1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYWxsb3dhYmxlQ2hhcmFjdGVyc1dpdGhvdXROdW1iZXJWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBWYWxpZGF0b3JzLnBhdHRlcm4oXHJcbiAgICAgICAgICAgIC9eW2EtekEtWmB+IUAjJCVeJiooKV8rfXt8XCI6Pz48LC4vOydcXFxcXFxdXFxbPVxcLSBdKyQvXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBhbGxvd2FibGVDaGFyYWN0ZXJzV2l0aG91dFNwZWNpYWxWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBWYWxpZGF0b3JzLnBhdHRlcm4oL15bYS16QS1aMC05IF0rJC8pO1xyXG4gICAgfVxyXG5cclxuICAgIGRhdGVWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBWYWxpZGF0b3JzLnBhdHRlcm4oXHJcbiAgICAgICAgICAgIC9eKD86KDBbMS05XXwxWzAxMl0pW1xcLy5dKDBbMS05XXxbMTJdWzAtOV18M1swMV0pW1xcLy5dKDE5fDIwKVswLTldezJ9KSQvXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBudW1iZXJWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBWYWxpZGF0b3JzLnBhdHRlcm4oL15bMC05XSokLyk7XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgICAgICBSZWdFeHAgZnVuY3Rpb25zXHJcbiAgICAqL1xyXG4gICAgdmFsaWRhdGVOdW1iZXIodmFsdWU6IHN0cmluZywgYWxsb3dEZWNpbWFsOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgICAgICAvLyBjaG9vc2UgdGhlIGFwcHJvcGlhdGUgcmVndWxhciBleHByZXNzaW9uXHJcbiAgICAgICAgbGV0IHJlZ2V4OiBzdHJpbmc7XHJcblxyXG4gICAgICAgIGlmIChhbGxvd0RlY2ltYWwpIHtcclxuICAgICAgICAgICAgcmVnZXggPSB0aGlzLmRlY2ltYWxTaWduZWQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVnZXggPSB0aGlzLmludGVnZXJTaWduZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB3aGVuIGEgbnVtYmVycyBiZWdpbnMgd2l0aCBhIGRlY2ltYWwgc2VwYXJhdG9yLFxyXG4gICAgICAgIC8vIGZpeCBpdCBhZGRpbmcgYSB6ZXJvIGluIHRoZSBiZWdpbm5pbmdcclxuICAgICAgICBjb25zdCBmaXJzdENoYXJhY3RlciA9IHZhbHVlLmNoYXJBdCgwKTtcclxuICAgICAgICBpZiAoZmlyc3RDaGFyYWN0ZXIgPT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB2YWx1ZSA9IDAgKyB2YWx1ZTtcclxuXHJcbiAgICAgICAgLy8gd2hlbiBhIG51bWJlcnMgZW5kcyB3aXRoIGEgZGVjaW1hbCBzZXBhcmF0b3IsXHJcbiAgICAgICAgLy8gZml4IGl0IGFkZGluZyBhIHplcm8gaW4gdGhlIGVuZFxyXG4gICAgICAgIGNvbnN0IGxhc3RDaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQodmFsdWUubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgaWYgKGxhc3RDaGFyYWN0ZXIgPT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB2YWx1ZSA9IHZhbHVlICsgMDtcclxuXHJcbiAgICAgICAgLy8gdGVzdCBudW1iZXIgd2l0aCByZWd1bGFyIGV4cHJlc3Npb24sIHdoZW5cclxuICAgICAgICAvLyBudW1iZXIgaXMgaW52YWxpZCwgcmVwbGFjZSBpdCB3aXRoIGEgemVyb1xyXG4gICAgICAgIGNvbnN0IHZhbGlkOiBib29sZWFuID0gbmV3IFJlZ0V4cChyZWdleCkudGVzdCh2YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB2YWxpZCA/IHZhbHVlIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGF0ZVBob25lKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICAvLyB0ZXN0IHBob25lIHdpdGggcmVndWxhciBleHByZXNzaW9uLCB3aGVuXHJcbiAgICAgICAgLy8gcGhvbmUgaXMgaW52YWxpZCwgcmVwbGFjZSBpdCB3aXRoIHRoZSBwcmV2aW91c1ZhbHVlXHJcbiAgICAgICAgY29uc3QgdmFsaWQ6IGJvb2xlYW4gPSBuZXcgUmVnRXhwKHRoaXMucGhvbmUpLnRlc3QodmFsdWUpO1xyXG4gICAgICAgIHJldHVybiB2YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE5hbWUoZSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKGUua2V5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlLmtleTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBmb3Igb2xkIGJyb3dzZXJzXHJcbiAgICAgICAgICAgIGlmIChlLmtleUNvZGUgJiYgU3RyaW5nLmZyb21DaGFyQ29kZSkge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChlLmtleUNvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDg6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnQmFja3NwYWNlJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDk6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnVGFiJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI3OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0VzY2FwZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzNzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdBcnJvd0xlZnQnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzk6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnQXJyb3dSaWdodCc7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxODg6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnLCc7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOTA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnLic7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxMDk6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnLSc7IC8vIG1pbnVzIGluIG51bWJwYWRcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDE3MzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICctJzsgLy8gbWludXMgaW4gYWxwaGFiZXQga2V5Ym9hcmQgaW4gZmlyZWZveFxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTg5OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJy0nOyAvLyBtaW51cyBpbiBhbHBoYWJldCBrZXlib2FyZCBpbiBjaHJvbWVcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlLmtleUNvZGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWxsb3dLZXlib2FyZE5vbk51bWVyaWNDaGFyYWN0ZXJzKFxyXG4gICAgICAgIGFsbG93ZWRLZXlzOiBBcnJheTxzdHJpbmc+LFxyXG4gICAgICAgIGtleTogc3RyaW5nLFxyXG4gICAgICAgIGNvbnRyb2xPckNvbW1hbmQ6IGJvb2xlYW5cclxuICAgICk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRBbGxvd2VkS2V5cyA9IFtcclxuICAgICAgICAgICAgJ0JhY2tzcGFjZScsXHJcbiAgICAgICAgICAgICdBcnJvd0xlZnQnLFxyXG4gICAgICAgICAgICAnQXJyb3dSaWdodCcsXHJcbiAgICAgICAgICAgICdFc2NhcGUnLFxyXG4gICAgICAgICAgICAnVGFiJyxcclxuICAgICAgICAgICAgJ0hvbWUnLFxyXG4gICAgICAgICAgICAnRW5kJyxcclxuICAgICAgICAgICAgJ0RlbGV0ZScsXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgLy8gYWxsb3cgc29tZSBub24tbnVtZXJpYyBjaGFyYWN0ZXJzXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBkZWZhdWx0QWxsb3dlZEtleXMuaW5kZXhPZihrZXkpICE9IC0xIHx8XHJcbiAgICAgICAgICAgIGFsbG93ZWRLZXlzLmluZGV4T2Yoa2V5KSAhPSAtMSB8fFxyXG4gICAgICAgICAgICAvLyBBbGxvdzogQ3RybCtBIGFuZCBDb21tYW5kK0FcclxuICAgICAgICAgICAgKGtleSA9PSAnYScgJiYgY29udHJvbE9yQ29tbWFuZCkgfHxcclxuICAgICAgICAgICAgLy8gQWxsb3c6IEN0cmwrQyBhbmQgQ29tbWFuZCtDXHJcbiAgICAgICAgICAgIChrZXkgPT0gJ2MnICYmIGNvbnRyb2xPckNvbW1hbmQpIHx8XHJcbiAgICAgICAgICAgIC8vIEFsbG93OiBDdHJsK1YgYW5kIENvbW1hbmQrVlxyXG4gICAgICAgICAgICAoa2V5ID09ICd2JyAmJiBjb250cm9sT3JDb21tYW5kKSB8fFxyXG4gICAgICAgICAgICAvLyBBbGxvdzogQ3RybCtYIGFuZCBDb21tYW5kK1hcclxuICAgICAgICAgICAgKGtleSA9PSAneCcgJiYgY29udHJvbE9yQ29tbWFuZCkgfHxcclxuICAgICAgICAgICAga2V5LnN0YXJ0c1dpdGgoJ0YnKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICAvLyBsZXQgaXQgaGFwcGVuLCBkb24ndCBkbyBhbnl0aGluZ1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlzUGhvbmUoZTogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGtleTogc3RyaW5nID0gdGhpcy5nZXROYW1lKGUpO1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xPckNvbW1hbmQgPSBlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBhbGxvd2VkIGtleXMgYXBhcnQgZnJvbSBudW1lcmljIGNoYXJhY3RlcnNcclxuICAgICAgICBjb25zdCBhbGxvd2VkS2V5cyA9IFsnLicsICctJywgJysnLCAnKCcsICcpJywgJyonLCAnIyddO1xyXG5cclxuICAgICAgICAvLyBhbGxvdyBzb21lIG5vbi1udW1lcmljIGNoYXJhY3RlcnNcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuYWxsb3dLZXlib2FyZE5vbk51bWVyaWNDaGFyYWN0ZXJzKFxyXG4gICAgICAgICAgICAgICAgYWxsb3dlZEtleXMsXHJcbiAgICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgICBjb250cm9sT3JDb21tYW5kXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhbGxvdyBwaG9uZSBjaGFyYWN0ZXJzIG9ubHlcclxuICAgICAgICBjb25zdCBpc1Bob25lID0gbmV3IFJlZ0V4cCh0aGlzLnBob25lKS50ZXN0KGtleSk7XHJcbiAgICAgICAgcmV0dXJuIGlzUGhvbmU7XHJcbiAgICB9XHJcblxyXG4gICAgaXNOdW1iZXIoZTogS2V5Ym9hcmRFdmVudCwgYWxsb3dEZWNpbWFsOiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgY3Vyc29yUG9zaXRpb246IG51bWJlciA9IGUudGFyZ2V0WydzZWxlY3Rpb25TdGFydCddO1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsVmFsdWU6IHN0cmluZyA9IGUudGFyZ2V0Wyd2YWx1ZSddO1xyXG4gICAgICAgIGNvbnN0IGtleTogc3RyaW5nID0gdGhpcy5nZXROYW1lKGUpO1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xPckNvbW1hbmQgPSBlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IHNpZ25FeGlzdHMgPSBvcmlnaW5hbFZhbHVlLmluY2x1ZGVzKCctJyk7XHJcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yRXhpc3RzID0gb3JpZ2luYWxWYWx1ZS5pbmNsdWRlcyh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xyXG5cclxuICAgICAgICAvLyBhbGxvd2VkIGtleXMgYXBhcnQgZnJvbSBudW1lcmljIGNoYXJhY3RlcnNcclxuICAgICAgICBjb25zdCBhbGxvd2VkS2V5cyA9IFtdO1xyXG5cclxuICAgICAgICAvLyB3aGVuIGRlY2ltYWxzIGFyZSBhbGxvd2VkLCBhZGRcclxuICAgICAgICAvLyBkZWNpbWFsIHNlcGFyYXRvciB0byBhbGxvd2VkIGNvZGVzIHdoZW5cclxuICAgICAgICAvLyBpdHMgcG9zaXRpb24gaXMgbm90IGNsb3NlIHRvIHRoZSB0aGUgc2lnbiAoLS4gYW5kIC4tKVxyXG4gICAgICAgIGNvbnN0IHNlcGFyYXRvcklzQ2xvc2VUb1NpZ24gPSBzaWduRXhpc3RzICYmIGN1cnNvclBvc2l0aW9uIDw9IDE7XHJcbiAgICAgICAgaWYgKGFsbG93RGVjaW1hbCAmJiAhc2VwYXJhdG9ySXNDbG9zZVRvU2lnbiAmJiAhc2VwYXJhdG9yRXhpc3RzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPT0gJy4nKSBhbGxvd2VkS2V5cy5wdXNoKCcuJyk7XHJcbiAgICAgICAgICAgIGVsc2UgYWxsb3dlZEtleXMucHVzaCgnLCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gd2hlbiBtaW51cyBzaWduIGlzIGFsbG93ZWQsIGFkZCBpdHNcclxuICAgICAgICAvLyBrZXkgdG8gYWxsb3dlZCBrZXkgb25seSB3aGVuIHRoZVxyXG4gICAgICAgIC8vIGN1cnNvciBpcyBpbiB0aGUgZmlyc3QgcG9zaXRpb24sIGFuZFxyXG4gICAgICAgIC8vIGZpcnN0IGNoYXJhY3RlciBpcyBkaWZmZXJlbnQgZnJvbVxyXG4gICAgICAgIC8vIGRlY2ltYWwgc2VwYXJhdG9yXHJcbiAgICAgICAgY29uc3QgZmlyc3RDaGFyYWN0ZXJJc1NlcGFyYXRvciA9XHJcbiAgICAgICAgICAgIG9yaWdpbmFsVmFsdWUuY2hhckF0KDApICE9IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcclxuICAgICAgICBpZiAoIXNpZ25FeGlzdHMgJiYgZmlyc3RDaGFyYWN0ZXJJc1NlcGFyYXRvciAmJiBjdXJzb3JQb3NpdGlvbiA9PSAwKSB7XHJcbiAgICAgICAgICAgIGFsbG93ZWRLZXlzLnB1c2goJy0nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGFsbG93IHNvbWUgbm9uLW51bWVyaWMgY2hhcmFjdGVyc1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5hbGxvd0tleWJvYXJkTm9uTnVtZXJpY0NoYXJhY3RlcnMoXHJcbiAgICAgICAgICAgICAgICBhbGxvd2VkS2V5cyxcclxuICAgICAgICAgICAgICAgIGtleSxcclxuICAgICAgICAgICAgICAgIGNvbnRyb2xPckNvbW1hbmRcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGFsbG93IG51bWJlciBjaGFyYWN0ZXJzIG9ubHlcclxuICAgICAgICBjb25zdCBpc051bWJlciA9IG5ldyBSZWdFeHAodGhpcy5pbnRlZ2VyVW5zaWduZWQpLnRlc3Qoa2V5KTtcclxuICAgICAgICByZXR1cm4gaXNOdW1iZXI7XHJcbiAgICB9XHJcbn1cclxuIl19
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy92YWxpZGF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBR0gsV0FBVyxFQUNYLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDOzs7QUFLeEIsTUFBTSxPQUFPLG1CQUFtQjtJQVU1QixZQUFnQyxZQUE4QixJQUFJOztRQUFsQyxjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQVRsRSx1QkFBdUI7UUFDZCxvQkFBZSxHQUFHLFVBQVUsQ0FBQztRQUM3QixrQkFBYSxHQUFHLFlBQVksQ0FBQztRQUN0QyxvQkFBZSxHQUFHLG9CQUFvQixDQUFDO1FBQ3ZDLGtCQUFhLEdBQUcsc0JBQXNCLENBQUM7UUFDOUIsVUFBSyxHQUFHLDRDQUE0QyxDQUFDO1FBRTlELHFCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUduQixNQUFNLFdBQVcsR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsV0FBVyxLQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFFdEUsc0dBQXNHO1FBQ3RHLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUU7WUFDM0Msd0JBQXdCLEVBQUUsQ0FBQztTQUM5QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxL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LENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDckQsSUFBSSxDQUFDLFVBQVUsSUFBSSx5QkFBeUIsSUFBSSxjQUFjLElBQUksQ0FBQyxFQUFFO1lBQ2pFLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7UUFFRCxvQ0FBb0M7UUFDcEMsSUFDSSxJQUFJLENBQUMsaUNBQWlDLENBQ2xDLFdBQVcsRUFDWCxHQUFHLEVBQ0gsZ0JBQWdCLENBQ25CLEVBQ0g7WUFDRSxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsK0JBQStCO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzs7OztZQWpUSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQVZRLGdCQUFnQix1QkFxQlIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBWYWxpZGF0b3JGbixcbiAgICBGb3JtQ29udHJvbCxcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcFZhbGlkYXRvclNlcnZpY2Uge1xuICAgIC8vICBSZWd1bGFyIGV4cHJlc3Npb25zXG4gICAgcmVhZG9ubHkgaW50ZWdlclVuc2lnbmVkID0gJ15bMC05XSokJztcbiAgICByZWFkb25seSBpbnRlZ2VyU2lnbmVkID0gJ14tP1swLTldKyQnO1xuICAgIGRlY2ltYWxVbnNpZ25lZCA9ICdeWzAtOV0rKC5bMC05XSspPyQnO1xuICAgIGRlY2ltYWxTaWduZWQgPSAnXi0/WzAtOV0rKC5bMC05XSspPyQnO1xuICAgIHJlYWRvbmx5IHBob25lID0gJ15bK10qWyhdezAsMX1bMC05XXsxLDR9WyldezAsMX1bLXMuLzAtOV0qJCc7XG5cbiAgICBkZWNpbWFsU2VwYXJhdG9yID0gJy4nO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UgPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xhdGU/LmN1cnJlbnRMYW5nIHx8IG5hdmlnYXRvci5sYW5ndWFnZTtcblxuICAgICAgICAvLyBDaGVjayBmb3IgbnVtYmVyIHdpdGggdGhvdXNhbmRzIHNlcGVyYXRvciBhbmQgaWYgPT09ICcsJyB0aGVuIHRoZSBkZWNpbWFsIHNlcGVyYXRvciBpcyAnLicgZWxzZSAnLCdcbiAgICAgICAgY29uc3QgdG1wID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KGN1cnJlbnRMYW5nLCB7XG4gICAgICAgICAgICBtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHM6IDIsXG4gICAgICAgIH0pLmZvcm1hdCgxMDAwKTtcbiAgICAgICAgdGhpcy5kZWNpbWFsU2VwYXJhdG9yID0gdG1wLmluZGV4T2YoJywnKSA9PT0gMSA/ICcuJyA6ICcsJztcblxuICAgICAgICB0aGlzLmRlY2ltYWxVbnNpZ25lZCA9IGBeWzAtOV0rKCR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfVswLTldKyk/JGA7XG4gICAgICAgIHRoaXMuZGVjaW1hbFNpZ25lZCA9IGBeLT9bMC05XSsoJHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9WzAtOV0rKT8kYDtcbiAgICB9XG5cbiAgICAvKlxuICAgICAgICBWYWxpZGF0b3JGbiBmdW5jdGlvbnNcbiAgICAqL1xuICAgIGlzRXF1YWwodGFyZ2V0OiBGb3JtQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWUgIT09IGNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgPyB7IGVxdWFsOiB7IHZhbHVlOiB0cnVlIH0gfVxuICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGlzR3JlYXRlclRoYW4odGFyZ2V0OiBGb3JtQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiB0eXBlb2YgdGFyZ2V0LnZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWUgPiBjb250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8geyBncmVhdGVyOiB7IHZhbHVlOiB0cnVlIH0gfVxuICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIHRhcmdldC52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sVmFsdWVOdW1lciA9IGNvZXJjZU51bWJlclByb3BlcnR5KGNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldFZhbHVlTnVtZXIgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh0YXJnZXQudmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFZhbHVlTnVtZXIgPiBjb250cm9sVmFsdWVOdW1lclxuICAgICAgICAgICAgICAgICAgICA/IHsgZ3JlYXRlcjogeyB2YWx1ZTogdHJ1ZSB9IH1cbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpc0xlc3NUaGFuKHRhcmdldDogRm9ybUNvbnRyb2wgfCBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIHRhcmdldC52YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnZhbHVlIDwgY29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IHsgbGVzczogeyB2YWx1ZTogdHJ1ZSB9IH1cbiAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sLnZhbHVlICYmIHR5cGVvZiB0YXJnZXQudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbFZhbHVlTnVtZXIgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eShjb250cm9sLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRWYWx1ZU51bWVyID0gY29lcmNlTnVtYmVyUHJvcGVydHkodGFyZ2V0LnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXRWYWx1ZU51bWVyIDwgY29udHJvbFZhbHVlTnVtZXJcbiAgICAgICAgICAgICAgICAgICAgPyB7IGxlc3M6IHsgdmFsdWU6IHRydWUgfSB9XG4gICAgICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY2hlY2tFbWFpbHMoc2VwYXJhdG9yPzogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcbiAgICAgICAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW1haWxzID0gY29udHJvbC52YWx1ZS5zcGxpdChzZXBhcmF0b3IgPyBzZXBhcmF0b3IgOiAnLCcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN0cmwgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtcbiAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5lbWFpbCxcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBlbWFpbHMuZXZlcnkoKHZhbDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGN0cmwuc2V0VmFsdWUodmFsKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN0cmwudmFsaWQ7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gIXJlc3VsdCA/IHsgZW1haWxzOiB7IHZhbHVlOiB0cnVlIH0gfSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHppcENvZGVWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKFxcZHs1fSgtXFxkezR9KT98W0EtWl1cXGRbQS1aXSAqXFxkW0EtWl1cXGQpJC8pO1xuICAgIH1cblxuICAgIGFsbG93YWJsZUNoYXJhY3RlcnNWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKFxuICAgICAgICAgICAgL15bYS16QS1aMC05YH4hQCMkJV4mKigpXyt9e3xcIjo/PjwsLi87J1xcXFxcXF1cXFs9XFwtIF0rJC9cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBhbGxvd2FibGVDaGFyYWN0ZXJzV2l0aG91dE51bWJlclZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBWYWxpZGF0b3JzLnBhdHRlcm4oXG4gICAgICAgICAgICAvXlthLXpBLVpgfiFAIyQlXiYqKClfK317fFwiOj8+PCwuLzsnXFxcXFxcXVxcWz1cXC0gXSskL1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGFsbG93YWJsZUNoYXJhY3RlcnNXaXRob3V0U3BlY2lhbFZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiBWYWxpZGF0b3JzLnBhdHRlcm4oL15bYS16QS1aMC05IF0rJC8pO1xuICAgIH1cblxuICAgIGRhdGVWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKFxuICAgICAgICAgICAgL14oPzooMFsxLTldfDFbMDEyXSlbXFwvLl0oMFsxLTldfFsxMl1bMC05XXwzWzAxXSlbXFwvLl0oMTl8MjApWzAtOV17Mn0pJC9cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBudW1iZXJWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5wYXR0ZXJuKC9eWzAtOV0qJC8pO1xuICAgIH1cblxuICAgIC8qXG4gICAgICAgIFJlZ0V4cCBmdW5jdGlvbnNcbiAgICAqL1xuICAgIHZhbGlkYXRlTnVtYmVyKHZhbHVlOiBzdHJpbmcsIGFsbG93RGVjaW1hbDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIC8vIGNob29zZSB0aGUgYXBwcm9waWF0ZSByZWd1bGFyIGV4cHJlc3Npb25cbiAgICAgICAgbGV0IHJlZ2V4OiBzdHJpbmc7XG5cbiAgICAgICAgaWYgKGFsbG93RGVjaW1hbCkge1xuICAgICAgICAgICAgcmVnZXggPSB0aGlzLmRlY2ltYWxTaWduZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWdleCA9IHRoaXMuaW50ZWdlclNpZ25lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdoZW4gYSBudW1iZXJzIGJlZ2lucyB3aXRoIGEgZGVjaW1hbCBzZXBhcmF0b3IsXG4gICAgICAgIC8vIGZpeCBpdCBhZGRpbmcgYSB6ZXJvIGluIHRoZSBiZWdpbm5pbmdcbiAgICAgICAgY29uc3QgZmlyc3RDaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoMCk7XG4gICAgICAgIGlmIChmaXJzdENoYXJhY3RlciA9PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHZhbHVlID0gMCArIHZhbHVlO1xuXG4gICAgICAgIC8vIHdoZW4gYSBudW1iZXJzIGVuZHMgd2l0aCBhIGRlY2ltYWwgc2VwYXJhdG9yLFxuICAgICAgICAvLyBmaXggaXQgYWRkaW5nIGEgemVybyBpbiB0aGUgZW5kXG4gICAgICAgIGNvbnN0IGxhc3RDaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQodmFsdWUubGVuZ3RoIC0gMSk7XG4gICAgICAgIGlmIChsYXN0Q2hhcmFjdGVyID09IHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgdmFsdWUgPSB2YWx1ZSArIDA7XG5cbiAgICAgICAgLy8gdGVzdCBudW1iZXIgd2l0aCByZWd1bGFyIGV4cHJlc3Npb24sIHdoZW5cbiAgICAgICAgLy8gbnVtYmVyIGlzIGludmFsaWQsIHJlcGxhY2UgaXQgd2l0aCBhIHplcm9cbiAgICAgICAgY29uc3QgdmFsaWQ6IGJvb2xlYW4gPSBuZXcgUmVnRXhwKHJlZ2V4KS50ZXN0KHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gdmFsaWQgPyB2YWx1ZSA6IG51bGw7XG4gICAgfVxuXG4gICAgdmFsaWRhdGVQaG9uZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIHRlc3QgcGhvbmUgd2l0aCByZWd1bGFyIGV4cHJlc3Npb24sIHdoZW5cbiAgICAgICAgLy8gcGhvbmUgaXMgaW52YWxpZCwgcmVwbGFjZSBpdCB3aXRoIHRoZSBwcmV2aW91c1ZhbHVlXG4gICAgICAgIGNvbnN0IHZhbGlkOiBib29sZWFuID0gbmV3IFJlZ0V4cCh0aGlzLnBob25lKS50ZXN0KHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmFtZShlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGUua2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gZS5rZXk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBmb3Igb2xkIGJyb3dzZXJzXG4gICAgICAgICAgICBpZiAoZS5rZXlDb2RlICYmIFN0cmluZy5mcm9tQ2hhckNvZGUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGUua2V5Q29kZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0JhY2tzcGFjZSc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnVGFiJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnRXNjYXBlJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzNzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnQXJyb3dMZWZ0JztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnQXJyb3dSaWdodCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTg4OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcsJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOTA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJy4nO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDEwOTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnLSc7IC8vIG1pbnVzIGluIG51bWJwYWRcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxNzM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJy0nOyAvLyBtaW51cyBpbiBhbHBoYWJldCBrZXlib2FyZCBpbiBmaXJlZm94XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTg5OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICctJzsgLy8gbWludXMgaW4gYWxwaGFiZXQga2V5Ym9hcmQgaW4gY2hyb21lXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlLmtleUNvZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWxsb3dLZXlib2FyZE5vbk51bWVyaWNDaGFyYWN0ZXJzKFxuICAgICAgICBhbGxvd2VkS2V5czogQXJyYXk8c3RyaW5nPixcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGNvbnRyb2xPckNvbW1hbmQ6IGJvb2xlYW5cbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdEFsbG93ZWRLZXlzID0gW1xuICAgICAgICAgICAgJ0JhY2tzcGFjZScsXG4gICAgICAgICAgICAnQXJyb3dMZWZ0JyxcbiAgICAgICAgICAgICdBcnJvd1JpZ2h0JyxcbiAgICAgICAgICAgICdFc2NhcGUnLFxuICAgICAgICAgICAgJ1RhYicsXG4gICAgICAgICAgICAnSG9tZScsXG4gICAgICAgICAgICAnRW5kJyxcbiAgICAgICAgICAgICdEZWxldGUnLFxuICAgICAgICBdO1xuXG4gICAgICAgIC8vIGFsbG93IHNvbWUgbm9uLW51bWVyaWMgY2hhcmFjdGVyc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBkZWZhdWx0QWxsb3dlZEtleXMuaW5kZXhPZihrZXkpICE9IC0xIHx8XG4gICAgICAgICAgICBhbGxvd2VkS2V5cy5pbmRleE9mKGtleSkgIT0gLTEgfHxcbiAgICAgICAgICAgIC8vIEFsbG93OiBDdHJsK0EgYW5kIENvbW1hbmQrQVxuICAgICAgICAgICAgKGtleSA9PSAnYScgJiYgY29udHJvbE9yQ29tbWFuZCkgfHxcbiAgICAgICAgICAgIC8vIEFsbG93OiBDdHJsK0MgYW5kIENvbW1hbmQrQ1xuICAgICAgICAgICAgKGtleSA9PSAnYycgJiYgY29udHJvbE9yQ29tbWFuZCkgfHxcbiAgICAgICAgICAgIC8vIEFsbG93OiBDdHJsK1YgYW5kIENvbW1hbmQrVlxuICAgICAgICAgICAgKGtleSA9PSAndicgJiYgY29udHJvbE9yQ29tbWFuZCkgfHxcbiAgICAgICAgICAgIC8vIEFsbG93OiBDdHJsK1ggYW5kIENvbW1hbmQrWFxuICAgICAgICAgICAgKGtleSA9PSAneCcgJiYgY29udHJvbE9yQ29tbWFuZCkgfHxcbiAgICAgICAgICAgIGtleS5zdGFydHNXaXRoKCdGJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBsZXQgaXQgaGFwcGVuLCBkb24ndCBkbyBhbnl0aGluZ1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1Bob25lKGU6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qga2V5OiBzdHJpbmcgPSB0aGlzLmdldE5hbWUoZSk7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xPckNvbW1hbmQgPSBlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlO1xuXG4gICAgICAgIC8vIGFsbG93ZWQga2V5cyBhcGFydCBmcm9tIG51bWVyaWMgY2hhcmFjdGVyc1xuICAgICAgICBjb25zdCBhbGxvd2VkS2V5cyA9IFsnLicsICctJywgJysnLCAnKCcsICcpJywgJyonLCAnIyddO1xuXG4gICAgICAgIC8vIGFsbG93IHNvbWUgbm9uLW51bWVyaWMgY2hhcmFjdGVyc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmFsbG93S2V5Ym9hcmROb25OdW1lcmljQ2hhcmFjdGVycyhcbiAgICAgICAgICAgICAgICBhbGxvd2VkS2V5cyxcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgY29udHJvbE9yQ29tbWFuZFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWxsb3cgcGhvbmUgY2hhcmFjdGVycyBvbmx5XG4gICAgICAgIGNvbnN0IGlzUGhvbmUgPSBuZXcgUmVnRXhwKHRoaXMucGhvbmUpLnRlc3Qoa2V5KTtcbiAgICAgICAgcmV0dXJuIGlzUGhvbmU7XG4gICAgfVxuXG4gICAgaXNOdW1iZXIoZTogS2V5Ym9hcmRFdmVudCwgYWxsb3dEZWNpbWFsOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGN1cnNvclBvc2l0aW9uOiBudW1iZXIgPSBlLnRhcmdldFsnc2VsZWN0aW9uU3RhcnQnXTtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZTogc3RyaW5nID0gZS50YXJnZXRbJ3ZhbHVlJ107XG4gICAgICAgIGNvbnN0IGtleTogc3RyaW5nID0gdGhpcy5nZXROYW1lKGUpO1xuICAgICAgICBjb25zdCBjb250cm9sT3JDb21tYW5kID0gZS5jdHJsS2V5ID09PSB0cnVlIHx8IGUubWV0YUtleSA9PT0gdHJ1ZTtcbiAgICAgICAgY29uc3Qgc2lnbkV4aXN0cyA9IG9yaWdpbmFsVmFsdWUuaW5jbHVkZXMoJy0nKTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yRXhpc3RzID0gb3JpZ2luYWxWYWx1ZS5pbmNsdWRlcyh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuXG4gICAgICAgIC8vIGFsbG93ZWQga2V5cyBhcGFydCBmcm9tIG51bWVyaWMgY2hhcmFjdGVyc1xuICAgICAgICBjb25zdCBhbGxvd2VkS2V5cyA9IFtdO1xuXG4gICAgICAgIC8vIHdoZW4gZGVjaW1hbHMgYXJlIGFsbG93ZWQsIGFkZFxuICAgICAgICAvLyBkZWNpbWFsIHNlcGFyYXRvciB0byBhbGxvd2VkIGNvZGVzIHdoZW5cbiAgICAgICAgLy8gaXRzIHBvc2l0aW9uIGlzIG5vdCBjbG9zZSB0byB0aGUgdGhlIHNpZ24gKC0uIGFuZCAuLSlcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9ySXNDbG9zZVRvU2lnbiA9IHNpZ25FeGlzdHMgJiYgY3Vyc29yUG9zaXRpb24gPD0gMTtcbiAgICAgICAgaWYgKGFsbG93RGVjaW1hbCAmJiAhc2VwYXJhdG9ySXNDbG9zZVRvU2lnbiAmJiAhc2VwYXJhdG9yRXhpc3RzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZWNpbWFsU2VwYXJhdG9yID09ICcuJykgYWxsb3dlZEtleXMucHVzaCgnLicpO1xuICAgICAgICAgICAgZWxzZSBhbGxvd2VkS2V5cy5wdXNoKCcsJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3aGVuIG1pbnVzIHNpZ24gaXMgYWxsb3dlZCwgYWRkIGl0c1xuICAgICAgICAvLyBrZXkgdG8gYWxsb3dlZCBrZXkgb25seSB3aGVuIHRoZVxuICAgICAgICAvLyBjdXJzb3IgaXMgaW4gdGhlIGZpcnN0IHBvc2l0aW9uLCBhbmRcbiAgICAgICAgLy8gZmlyc3QgY2hhcmFjdGVyIGlzIGRpZmZlcmVudCBmcm9tXG4gICAgICAgIC8vIGRlY2ltYWwgc2VwYXJhdG9yXG4gICAgICAgIGNvbnN0IGZpcnN0Q2hhcmFjdGVySXNTZXBhcmF0b3IgPVxuICAgICAgICAgICAgb3JpZ2luYWxWYWx1ZS5jaGFyQXQoMCkgIT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yO1xuICAgICAgICBpZiAoIXNpZ25FeGlzdHMgJiYgZmlyc3RDaGFyYWN0ZXJJc1NlcGFyYXRvciAmJiBjdXJzb3JQb3NpdGlvbiA9PSAwKSB7XG4gICAgICAgICAgICBhbGxvd2VkS2V5cy5wdXNoKCctJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhbGxvdyBzb21lIG5vbi1udW1lcmljIGNoYXJhY3RlcnNcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5hbGxvd0tleWJvYXJkTm9uTnVtZXJpY0NoYXJhY3RlcnMoXG4gICAgICAgICAgICAgICAgYWxsb3dlZEtleXMsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGNvbnRyb2xPckNvbW1hbmRcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFsbG93IG51bWJlciBjaGFyYWN0ZXJzIG9ubHlcbiAgICAgICAgY29uc3QgaXNOdW1iZXIgPSBuZXcgUmVnRXhwKHRoaXMuaW50ZWdlclVuc2lnbmVkKS50ZXN0KGtleSk7XG4gICAgICAgIHJldHVybiBpc051bWJlcjtcbiAgICB9XG59XG4iXX0=
@@ -17,10 +17,10 @@ export class PepWindowScrollingService {
17
17
  const style = document.createElement('style');
18
18
  style.type = 'text/css';
19
19
  style.setAttribute('data-debug', 'Injected by WindowScrolling service.');
20
- style.textContent = `
21
- body {
22
- overflow: hidden !important ;
23
- }
20
+ style.textContent = `
21
+ body {
22
+ overflow: hidden !important ;
23
+ }
24
24
  `;
25
25
  return style;
26
26
  }
@@ -32,4 +32,4 @@ PepWindowScrollingService.decorators = [
32
32
  },] }
33
33
  ];
34
34
  PepWindowScrollingService.ctorParameters = () => [];
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXNjcm9sbGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvd2luZG93LXNjcm9sbGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyx5QkFBeUI7SUFJbEM7UUFDSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxzREFBc0Q7SUFDL0MsT0FBTztRQUNWLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsd0RBQXdEO0lBQ2pELE1BQU07UUFDVCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtFQUFrRTtJQUMxRCxpQkFBaUI7UUFDckIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5QyxLQUFLLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN4QixLQUFLLENBQUMsWUFBWSxDQUNkLFlBQVksRUFDWixzQ0FBc0MsQ0FDekMsQ0FBQztRQUNGLEtBQUssQ0FBQyxXQUFXLEdBQUc7Ozs7U0FJbkIsQ0FBQztRQUVGLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Ozs7WUFyQ0osVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVwV2luZG93U2Nyb2xsaW5nU2VydmljZSB7XHJcbiAgICAvLyBJbmplY3QgYSBTVFlMRSBlbGVtZW50IGZvciBvdmVycmlkZXMgdGhlIHNjcm9sbCBiZWhhdmlvciwgdGhpcyB3YXkgd2UgY2FuIGFkZCB8IHJlbW92ZSBpdCBpbiBvcmRlciB0byB0aGUgYmVoYXZpb3IuXHJcbiAgICBwcml2YXRlIHN0eWxlVGFnOiBIVE1MU3R5bGVFbGVtZW50O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuc3R5bGVUYWcgPSB0aGlzLmJ1aWxkU3R5bGVFbGVtZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRGlzYWJsZSB0aGUgc2Nyb2xsaW5nIGZlYXR1cmUgb24gdGhlIG1haW4gdmlld3BvcnQuXHJcbiAgICBwdWJsaWMgZGlzYWJsZSgpOiB2b2lkIHtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuc3R5bGVUYWcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlLWVuYWJsZSB0aGUgc2Nyb2xsaW5nIGZlYXR1cmUgb24gdGhlIG1haW4gdmlld3BvcnQuXHJcbiAgICBwdWJsaWMgZW5hYmxlKCk6IHZvaWQge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5zdHlsZVRhZyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmV0dXJuIGEgU3R5bGUgZWxlbWVudCB0aGF0IHdpbGwgcHJldmVudCBzY3JvbGxpbmcgb24gdGhlIGJvZHkuXHJcbiAgICBwcml2YXRlIGJ1aWxkU3R5bGVFbGVtZW50KCk6IEhUTUxTdHlsZUVsZW1lbnQge1xyXG4gICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcclxuXHJcbiAgICAgICAgc3R5bGUudHlwZSA9ICd0ZXh0L2Nzcyc7XHJcbiAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICAnZGF0YS1kZWJ1ZycsXHJcbiAgICAgICAgICAgICdJbmplY3RlZCBieSBXaW5kb3dTY3JvbGxpbmcgc2VydmljZS4nXHJcbiAgICAgICAgKTtcclxuICAgICAgICBzdHlsZS50ZXh0Q29udGVudCA9IGBcclxuICAgICAgICAgICAgYm9keSB7XHJcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHN0eWxlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXNjcm9sbGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvd2luZG93LXNjcm9sbGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyx5QkFBeUI7SUFJbEM7UUFDSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxzREFBc0Q7SUFDL0MsT0FBTztRQUNWLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsd0RBQXdEO0lBQ2pELE1BQU07UUFDVCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtFQUFrRTtJQUMxRCxpQkFBaUI7UUFDckIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5QyxLQUFLLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN4QixLQUFLLENBQUMsWUFBWSxDQUNkLFlBQVksRUFDWixzQ0FBc0MsQ0FDekMsQ0FBQztRQUNGLEtBQUssQ0FBQyxXQUFXLEdBQUc7Ozs7U0FJbkIsQ0FBQztRQUVGLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Ozs7WUFyQ0osVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBXaW5kb3dTY3JvbGxpbmdTZXJ2aWNlIHtcbiAgICAvLyBJbmplY3QgYSBTVFlMRSBlbGVtZW50IGZvciBvdmVycmlkZXMgdGhlIHNjcm9sbCBiZWhhdmlvciwgdGhpcyB3YXkgd2UgY2FuIGFkZCB8IHJlbW92ZSBpdCBpbiBvcmRlciB0byB0aGUgYmVoYXZpb3IuXG4gICAgcHJpdmF0ZSBzdHlsZVRhZzogSFRNTFN0eWxlRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnN0eWxlVGFnID0gdGhpcy5idWlsZFN0eWxlRWxlbWVudCgpO1xuICAgIH1cblxuICAgIC8vIERpc2FibGUgdGhlIHNjcm9sbGluZyBmZWF0dXJlIG9uIHRoZSBtYWluIHZpZXdwb3J0LlxuICAgIHB1YmxpYyBkaXNhYmxlKCk6IHZvaWQge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuc3R5bGVUYWcpO1xuICAgIH1cblxuICAgIC8vIFJlLWVuYWJsZSB0aGUgc2Nyb2xsaW5nIGZlYXR1cmUgb24gdGhlIG1haW4gdmlld3BvcnQuXG4gICAgcHVibGljIGVuYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLnN0eWxlVGFnKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gYSBTdHlsZSBlbGVtZW50IHRoYXQgd2lsbCBwcmV2ZW50IHNjcm9sbGluZyBvbiB0aGUgYm9keS5cbiAgICBwcml2YXRlIGJ1aWxkU3R5bGVFbGVtZW50KCk6IEhUTUxTdHlsZUVsZW1lbnQge1xuICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG5cbiAgICAgICAgc3R5bGUudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICAgIHN0eWxlLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICdkYXRhLWRlYnVnJyxcbiAgICAgICAgICAgICdJbmplY3RlZCBieSBXaW5kb3dTY3JvbGxpbmcgc2VydmljZS4nXG4gICAgICAgICk7XG4gICAgICAgIHN0eWxlLnRleHRDb250ZW50ID0gYFxuICAgICAgICAgICAgYm9keSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50IDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYDtcblxuICAgICAgICByZXR1cm4gc3R5bGU7XG4gICAgfVxufVxuIl19
@@ -271,4 +271,4 @@ export class PepInternalMenuField extends PepFieldBase {
271
271
  // this.hasSubMenu = options['hasSubMenu'];
272
272
  }
273
273
  }
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXphdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY3VzdG9taXphdGlvbi9jdXN0b21pemF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCekQsb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUEyQixNQUFNLENBQUM7QUFJM0Usb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF5QixLQUFLLENBQUM7QUFvQ3RFLE1BQU0sT0FBTyxZQUFZO0lBMkJyQix1QkFBdUI7SUFFdkIsWUFBWSxVQUFnQyxFQUFFOztRQUMxQyxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRXJDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBQSxPQUFPLENBQUMsS0FBSyxtQ0FBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRS9CLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBQSxPQUFPLENBQUMs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O0lBQ3pCLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBd0M7UUFDbEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQztDQUNKO0FBTUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFlBQVk7SUFHbEQsK0JBQStCO0lBRS9CLFlBQVksVUFBd0MsRUFBRTtRQUNsRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFMbkIsZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFDckIsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFLdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNyQywyQ0FBMkM7SUFDL0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKiogQWxsb3dlZCBsYXlvdXQgb3B0aW9ucyAqL1xyXG5leHBvcnQgdHlwZSBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nIHwgJ2NhcmQnIHwgJ3RhYmxlJztcclxuXHJcbi8qKiBBbGxvd2VkIHN0eWxlIG9wdGlvbnMgKi9cclxuZXhwb3J0IHR5cGUgUGVwU3R5bGVUeXBlID0gJ3dlYWsnIHwgJ3dlYWstaW52ZXJ0JyB8ICdyZWd1bGFyJyB8ICdzdHJvbmcnO1xyXG5cclxuLyoqIEFsbG93ZWQgc3R5bGUgc3RhdGUgb3B0aW9ucyAqL1xyXG5leHBvcnQgdHlwZSBQZXBTdHlsZVN0YXRlVHlwZSA9ICdzeXN0ZW0nIHwgJ2NhdXRpb24nIHwgJ3N1Y2Nlc3MnO1xyXG5cclxuLyoqIEFsbG93ZWQgc2l6ZSBvcHRpb25zICovXHJcbmV4cG9ydCB0eXBlIFBlcFNpemVUeXBlID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc7XHJcblxyXG4vKiogQWxsb3dlZCBob3Jpem9udGFsIGFsaWdubWVudCBvcHRpb25zICovXHJcbmV4cG9ydCB0eXBlIFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCc7XHJcbi8qKiBEZWZhdWx0IGhvcml6b250YWwgYWxpZ25tZW50LiAqL1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9ICdsZWZ0JztcclxuXHJcbi8qKiBBbGxvd2VkIHZlcnRpY2FsIGFsaWdubWVudCBvcHRpb25zICovXHJcbmV4cG9ydCB0eXBlIFBlcFZlcnRpY2FsQWxpZ25tZW50ID0gJ3RvcCcgfCAnbWlkZGxlJyB8ICdib3R0b20nO1xyXG4vKiogRGVmYXVsdCBob3Jpem9udGFsIGFsaWdubWVudC4gKi9cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVkVSVElDQUxfQUxJR05NRU5UOiBQZXBWZXJ0aWNhbEFsaWdubWVudCA9ICd0b3AnO1xyXG5leHBvcnQgaW50ZXJmYWNlIElQZXBPcHRpb24ge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG4vLyBleHBvcnQgdHlwZSBQZXBGaWVsZEJhc2VUeXBlID0gJycgfCBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkVHlwZSB8IFBlcFRleHRib3hGaWVsZFR5cGUgfFxyXG4vLyAgICAgUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZSB8IFBlcERhdGVGaWVsZFR5cGUgfCBQZXBDaGVja2JveEZpZWxkVHlwZSB8IFBlcFNlbGVjdEZpZWxkVHlwZTtcclxuaW50ZXJmYWNlIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcclxuICAgIHZhbHVlPzogYW55O1xyXG4gICAgZm9ybWF0dGVkVmFsdWU/OiBhbnk7XHJcbiAgICBhZGRpdGlvbmFsVmFsdWU/OiBzdHJpbmc7XHJcbiAgICBrZXk/OiBzdHJpbmc7XHJcbiAgICBsYWJlbD86IHN0cmluZztcclxuICAgIGFjY2Vzc29yeT86IHN0cmluZztcclxuICAgIG1hbmRhdG9yeT86IGJvb2xlYW47XHJcbiAgICByZWFkb25seT86IGJvb2xlYW47XHJcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgICBvcmRlcj86IG51bWJlcjtcclxuICAgIGNvbnRyb2xUeXBlPzogc3RyaW5nO1xyXG4gICAgLy8gdHlwZT86IFBlcEZpZWxkQmFzZVR5cGU7XHJcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAgIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgICByb3c/OiBudW1iZXI7XHJcbiAgICByb3dTcGFuPzogbnVtYmVyO1xyXG4gICAgY29sPzogbnVtYmVyO1xyXG4gICAgY29sU3Bhbj86IG51bWJlcjtcclxuICAgIHhBbGlnbm1lbnQ/OiBQZXBIb3Jpem9udGFsQWxpZ25tZW50O1xyXG4gICAgeUFsaWdubWVudD86IFBlcFZlcnRpY2FsQWxpZ25tZW50O1xyXG4gICAgbWF4RmllbGRDaGFyYWN0ZXJzPzogbnVtYmVyO1xyXG4gICAgbWluVmFsdWU/OiBudW1iZXI7XHJcbiAgICBtYXhWYWx1ZT86IG51bWJlcjtcclxuICAgIHRleHRDb2xvcj86IHN0cmluZztcclxuICAgIHZpc2libGU/OiBib29sZWFuO1xyXG4gICAgLy8gbGFzdEZvY3VzRmllbGQ/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBlcEZpZWxkQmFzZSB7XHJcbiAgICB2YWx1ZTogYW55O1xyXG4gICAgZm9ybWF0dGVkVmFsdWU6IGFueTtcclxuICAgIGFkZGl0aW9uYWxWYWx1ZTogc3RyaW5nO1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgYWNjZXNzb3J5OiBzdHJpbmc7XHJcbiAgICBtYW5kYXRvcnk6IGJvb2xlYW47XHJcbiAgICByZWFkb25seTogYm9vbGVhbjtcclxuICAgIGRpc2FibGVkOiBib29sZWFuO1xyXG4gICAgb3JkZXI6IG51bWJlcjtcclxuICAgIC8vIHR5cGU6IHN0cmluZztcclxuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmc7XHJcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gICAgaGlkZGVuOiBib29sZWFuO1xyXG4gICAgcm93OiBudW1iZXI7XHJcbiAgICByb3dTcGFuOiBudW1iZXI7XHJcbiAgICBjb2w6IG51bWJlcjtcclxuICAgIGNvbFNwYW46IG51bWJlcjtcclxuICAgIHhBbGlnbm1lbnQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQ7XHJcbiAgICB5QWxpZ25tZW50OiBQZXBWZXJ0aWNhbEFsaWdubWVudDtcclxuICAgIGdyb3VwRmllbGRzOiBQZXBGaWVsZEJhc2VbXTtcclxuICAgIG1heEZpZWxkQ2hhcmFjdGVyczogbnVtYmVyO1xyXG4gICAgbWluVmFsdWU6IG51bWJlcjtcclxuICAgIG1heFZhbHVlOiBudW1iZXI7XHJcbiAgICB0ZXh0Q29sb3I6IHN0cmluZztcclxuICAgIHZpc2libGU6IGJvb2xlYW47XHJcbiAgICAvLyBsYXN0Rm9jdXNGaWVsZDogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcclxuICAgICAgICB0aGlzLmtleSA9IG9wdGlvbnMua2V5IHx8ICcnO1xyXG4gICAgICAgIHRoaXMubGFiZWwgPSBvcHRpb25zLmxhYmVsIHx8ICcnO1xyXG4gICAgICAgIHRoaXMuYWNjZXNzb3J5ID0gb3B0aW9ucy5hY2Nlc3NvcnkgfHwgJyc7XHJcbiAgICAgICAgdGhpcy5tYW5kYXRvcnkgPSAhIW9wdGlvbnMubWFuZGF0b3J5O1xyXG5cclxuICAgICAgICB0aGlzLm9yZGVyID0gb3B0aW9ucy5vcmRlciA/PyAxO1xyXG4gICAgICAgIHRoaXMuY29udHJvbFR5cGUgPSBvcHRpb25zLmNvbnRyb2xUeXBlIHx8ICcnO1xyXG4gICAgICAgIC8vIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnJztcclxuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gb3B0aW9ucy5wbGFjZWhvbGRlciB8fCAnJztcclxuICAgICAgICB0aGlzLmhpZGRlbiA9ICEhb3B0aW9ucy5oaWRkZW47XHJcblxyXG4gICAgICAgIHRoaXMucm93ID0gb3B0aW9ucy5yb3cgPz8gMTtcclxuICAgICAgICB0aGlzLnJvd1NwYW4gPSBvcHRpb25zLnJvd1NwYW4gPz8gMTtcclxuICAgICAgICB0aGlzLmNvbCA9IG9wdGlvbnMuY29sID8/IDE7XHJcbiAgICAgICAgdGhpcy5jb2xTcGFuID0gb3B0aW9ucy5jb2xTcGFuID8/IDE7XHJcblxyXG4gICAgICAgIHRoaXMueEFsaWdubWVudCA9IG9wdGlvbnMueEFsaWdubWVudCA/PyBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UO1xyXG4gICAgICAgIHRoaXMueUFsaWdubWVudCA9IG9wdGlvbnMueUFsaWdubWVudCA/PyBERUZBVUxUX1ZFUlRJQ0FMX0FMSUdOTUVOVDtcclxuXHJcbiAgICAgICAgdGhpcy5tYXhGaWVsZENoYXJhY3RlcnMgPSBvcHRpb25zLm1heEZpZWxkQ2hhcmFjdGVycyA/PyAwO1xyXG4gICAgICAgIHRoaXMubWluVmFsdWUgPSBvcHRpb25zLm1pblZhbHVlID8/IDA7XHJcbiAgICAgICAgdGhpcy5tYXhWYWx1ZSA9IG9wdGlvbnMubWF4VmFsdWUgPz8gMDtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEJhc2VWYWxpZGF0b3JzKGlzQ2hlY2tib3ggPSBmYWxzZSk6IFZhbGlkYXRvckZuW10ge1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWFuZGF0b3J5ICYmICF0aGlzLnJlYWRvbmx5ICYmICF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0NoZWNrYm94KSB7XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5tYXhGaWVsZENoYXJhY3RlcnMgPiAwKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heEZpZWxkQ2hhcmFjdGVycykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XHJcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IHRoaXMuZ2V0QmFzZVZhbGlkYXRvcnMoKTtcclxuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG9wdGlvbnMudmFsdWU7XHJcbiAgICAgICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IG9wdGlvbnMuZm9ybWF0dGVkVmFsdWU7XHJcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsVmFsdWUgPSBvcHRpb25zLmFkZGl0aW9uYWxWYWx1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5yZWFkb25seSA9ICEhb3B0aW9ucy5yZWFkb25seTtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gISFvcHRpb25zLmRpc2FibGVkO1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9ICEhb3B0aW9ucy52aXNpYmxlO1xyXG4gICAgICAgIHRoaXMudGV4dENvbG9yID0gb3B0aW9ucy50ZXh0Q29sb3IgfHwgJyc7XHJcbiAgICAgICAgLy8gdGhpcy5sYXN0Rm9jdXNGaWVsZCA9IG9wdGlvbnMubGFzdEZvY3VzRmllbGQgfHwgbnVsbDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcFBsYWNlaG9sZGVyRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAncGxhY2Vob2xkZXInO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcFNlcGFyYXRvckZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ3NlcGFyYXRvcic7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwQXR0YWNobWVudEZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2F0dGFjaG1lbnQnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcEluZGljYXRvcnNGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdpbmRpY2F0b3JzJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFBlcFRleHRib3hGaWVsZFR5cGUgPVxyXG4gICAgfCAndGV4dCdcclxuICAgIHwgJ2xpbmsnXHJcbiAgICB8ICdlbWFpbCdcclxuICAgIHwgJ3Bob25lJ1xyXG4gICAgfCAnZHVyYXRpb24nXHJcbiAgICB8ICdpbnQnXHJcbiAgICB8ICdwZXJjZW50YWdlJ1xyXG4gICAgfCAnY3VycmVuY3knXHJcbiAgICB8ICdyZWFsJztcclxuaW50ZXJmYWNlIElQZXBUZXh0Ym94RmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xyXG4gICAgdHlwZT86IFBlcFRleHRib3hGaWVsZFR5cGU7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBlcFRleHRib3hGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICd0ZXh0Ym94JztcclxuICAgIHR5cGU6IFBlcFRleHRib3hGaWVsZFR5cGUgPSAndGV4dCc7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcFRleHRib3hGaWVsZE9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG5cclxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ3RleHQnO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZShvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBUZXh0Ym94RmllbGRPcHRpb25zKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIudXBkYXRlKG9wdGlvbnMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnbGluaycpIHtcclxuICAgICAgICAgICAgLy8gREktMTEyOTIgLSBhZGQgY2hhbmdlcyBmb3IgbGluayBmaWVsZCBmb3IgdGhlIFwiUmVhZCBPbmx5IGRpc3BsYXkgdmFsdWVcIiBwcm9wXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmZvcm1hdHRlZFZhbHVlICYmIHRoaXMudmFsdWVcclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0dGVkVmFsdWVcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMudmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRWYWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBzdXBlci5nZXRCYXNlVmFsaWRhdG9ycygpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnZW1haWwnKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcclxuICAgICAgICAgICAgICAgICAgICAvXigoW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31dKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkL1xyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAncGhvbmUnKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oL15bXFxkXFwuXFwtXFwrXFwoXFwpXFwqXFwjXSskLykpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnaW50JyB8fCB0aGlzLnR5cGUgPT09ICdyZWFsJykge1xyXG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKC9eW1xcLixcXC1cXCtcXGRdKyQvKSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWlzTmFOKHRoaXMubWluVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4odGhpcy5taW5WYWx1ZSkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIWlzTmFOKHRoaXMubWF4VmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhWYWx1ZSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcFRleHRhcmVhRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAndGV4dGFyZWEnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICAvLyB0aGlzLnR5cGUgPSAndGV4dGFyZWEnO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwUmljaEh0bWxUZXh0YXJlYUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ3JpY2hodG1sdGV4dGFyZWEnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICAvLyB0aGlzLnR5cGUgPSAncmljaGh0bWx0ZXh0YXJlYSc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBJUGVwU2lnbmF0dXJlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xyXG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcclxufVxyXG5leHBvcnQgY2xhc3MgUGVwU2lnbmF0dXJlRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAnc2lnbmF0dXJlJztcclxuICAgIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBTaWduYXR1cmVGaWVsZE9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIElQZXBJbWFnZUZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcclxuICAgIGhhc0NhbXBhaWduRmllbGQ/OiBhbnk7XHJcbiAgICBpbmRpY2F0b3JzRmllbGQ/OiBhbnk7XHJcbiAgICBtZW51RmllbGQ/OiBhbnk7XHJcbiAgICBvcHRpb25zPzogSVBlcE9wdGlvbltdO1xyXG4gICAgc2l6ZUxpbWl0TUI/OiBudW1iZXI7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBlcEltYWdlRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAnaW1hZ2UnO1xyXG4gICAgaGFzQ2FtcGFpZ25GaWVsZCA9IG51bGw7XHJcbiAgICBpbmRpY2F0b3JzRmllbGQgPSBudWxsO1xyXG4gICAgbWVudUZpZWxkID0gbnVsbDtcclxuICAgIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xyXG4gICAgc2l6ZUxpbWl0TUIgPSA1O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbWFnZUZpZWxkT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5oYXNDYW1wYWlnbkZpZWxkID0gb3B0aW9ucy5oYXNDYW1wYWlnbkZpZWxkIHx8IG51bGw7XHJcbiAgICAgICAgdGhpcy5pbmRpY2F0b3JzRmllbGQgPSBvcHRpb25zLmluZGljYXRvcnNGaWVsZCB8fCBudWxsO1xyXG4gICAgICAgIHRoaXMubWVudUZpZWxkID0gb3B0aW9ucy5tZW51RmllbGQgfHwgbnVsbDtcclxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XHJcbiAgICAgICAgdGhpcy5zaXplTGltaXRNQiA9IG9wdGlvbnMuc2l6ZUxpbWl0TUIgfHwgNTtcclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIElQZXBJbWFnZXNGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XHJcbiAgICBvcHRpb25zPzogSVBlcE9wdGlvbltdO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBQZXBJbWFnZXNGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZXMnO1xyXG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEltYWdlc0ZpZWxkT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRUeXBlID1cclxuICAgIHwgJ2J1dHRvbidcclxuICAgIHwgJ3BhY2thZ2VCdXR0b24nXHJcbiAgICB8ICdxcydcclxuICAgIHwgJ3FzRm9yTWF0cml4JztcclxuaW50ZXJmYWNlIElQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xyXG4gICAgYWxsb3dEZWNpbWFsPzogYm9vbGVhbjtcclxuICAgIG5vdGlmaWNhdGlvbkluZm8/OiBhbnk7XHJcbiAgICB0eXBlPzogUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZTtcclxufVxyXG5leHBvcnQgY2xhc3MgUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ3FzJztcclxuICAgIGFsbG93RGVjaW1hbDogYm9vbGVhbjtcclxuICAgIG5vdGlmaWNhdGlvbkluZm86IGFueSA9IHt9O1xyXG4gICAgdXBkYXRlZERhdGFDb3VudDogbnVtYmVyO1xyXG4gICAgdHlwZTogUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlZERhdGFDb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy5hbGxvd0RlY2ltYWwgPSBvcHRpb25zLmFsbG93RGVjaW1hbCB8fCBmYWxzZTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ3FzJztcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkT3B0aW9ucyk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcclxuXHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25JbmZvID0gb3B0aW9ucy5ub3RpZmljYXRpb25JbmZvO1xyXG4gICAgICAgIHRoaXMudXBkYXRlZERhdGFDb3VudCArPSAxO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQZXBEYXRlRmllbGRUeXBlID0gJ2RhdGV0aW1lJyB8ICdkYXRlJztcclxuaW50ZXJmYWNlIElQZXBEYXRlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xyXG4gICAgdHlwZT86IFBlcERhdGVGaWVsZFR5cGU7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBlcERhdGVGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdkYXRlJztcclxuICAgIHR5cGU6IFBlcERhdGVGaWVsZFR5cGU7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcERhdGVGaWVsZE9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG5cclxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ2RhdGUnO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQZXBDaGVja2JveEZpZWxkVHlwZSA9ICdjaGVja2JveCcgfCAnYm9vbGVhblRleHQnO1xyXG5pbnRlcmZhY2UgSVBlcENoZWNrYm94RmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xyXG4gICAgdHlwZT86IFBlcENoZWNrYm94RmllbGRUeXBlO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBQZXBDaGVja2JveEZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2NoZWNrYm94JztcclxuICAgIHR5cGU6IFBlcENoZWNrYm94RmllbGRUeXBlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBDaGVja2JveEZpZWxkT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcblxyXG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnY2hlY2tib3gnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRWYWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBzdXBlci5nZXRCYXNlVmFsaWRhdG9ycyh0cnVlKTtcclxuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGVwU2VsZWN0RmllbGRUeXBlID0gJ3NlbGVjdCcgfCAnbXVsdGknO1xyXG5pbnRlcmZhY2UgSVBlcFNlbGVjdEZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcclxuICAgIG9wdGlvbnM/OiBJUGVwT3B0aW9uW107XHJcbiAgICB0eXBlPzogUGVwU2VsZWN0RmllbGRUeXBlO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBQZXBTZWxlY3RGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdzZWxlY3QnO1xyXG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XHJcbiAgICB0eXBlOiBQZXBTZWxlY3RGaWVsZFR5cGU7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcFNlbGVjdEZpZWxkT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICdzZWxlY3QnO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZShvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBTZWxlY3RGaWVsZE9wdGlvbnMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci51cGRhdGUob3B0aW9ucyk7XHJcblxyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcclxuICAgIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIElQZXBBZGRyZXNzRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xyXG4gICAgZ3JvdXBGaWVsZHM/OiBQZXBGaWVsZEJhc2VbXTtcclxufVxyXG5leHBvcnQgY2xhc3MgUGVwQWRkcmVzc0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2FkZHJlc3MnO1xyXG4gICAgZ3JvdXBGaWVsZHM6IFBlcEZpZWxkQmFzZVtdID0gbnVsbDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwQWRkcmVzc0ZpZWxkT3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5ncm91cEZpZWxkcyA9IG9wdGlvbnMuZ3JvdXBGaWVsZHMgfHwgbnVsbDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGVwSW50ZXJuYWxCdXR0b25GaWVsZFR5cGUgPVxyXG4gICAgfCAnYnV0dG9uJ1xyXG4gICAgfCAncmVmZXJlbmNlJ1xyXG4gICAgfCAnbGlzdG9mb2JqZWN0cyc7XHJcbmludGVyZmFjZSBJUGVwSW50ZXJuYWxCdXR0b25GaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XHJcbiAgICByZWZlcmVuY2VPYmplY3RUeXBlPzogYW55O1xyXG4gICAgcmVmZXJlbmNlT2JqZWN0U3ViVHlwZT86IHN0cmluZztcclxuICAgIHJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZT86IHN0cmluZztcclxuICAgIHR5cGU/OiBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkVHlwZTtcclxufVxyXG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxCdXR0b25GaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdidXR0b24nO1xyXG4gICAgcmVmZXJlbmNlT2JqZWN0VHlwZTtcclxuICAgIHJlZmVyZW5jZU9iamVjdFN1YlR5cGUgPSAnJztcclxuICAgIHJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSA9ICcnO1xyXG4gICAgdHlwZTogUGVwSW50ZXJuYWxCdXR0b25GaWVsZFR5cGU7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsQnV0dG9uRmllbGRPcHRpb25zID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RUeXBlID0gb3B0aW9ucy5yZWZlcmVuY2VPYmplY3RUeXBlIHx8IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RTdWJUeXBlID0gb3B0aW9ucy5yZWZlcmVuY2VPYmplY3RTdWJUeXBlIHx8IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGUgPVxyXG4gICAgICAgICAgICBvcHRpb25zLnJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSB8fCBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ2J1dHRvbic7XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBJUGVwSW50ZXJuYWxQYWdlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xyXG4gICAgb2JqZWN0SWQ/OiBzdHJpbmc7XHJcbiAgICBwYXJlbnRJZD86IHN0cmluZztcclxuICAgIHNlYXJjaENvZGU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBlcEludGVybmFsUGFnZUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2ludGVybmFsUGFnZSc7XHJcbiAgICBvYmplY3RJZCA9ICcnO1xyXG4gICAgcGFyZW50SWQgPSAnJztcclxuICAgIHNlYXJjaENvZGUgPSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwSW50ZXJuYWxQYWdlRmllbGRPcHRpb25zID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLm9iamVjdElkID0gb3B0aW9ucy5vYmplY3RJZCB8fCAnJztcclxuICAgICAgICB0aGlzLnBhcmVudElkID0gb3B0aW9ucy5wYXJlbnRJZCB8fCAnJztcclxuICAgICAgICB0aGlzLnNlYXJjaENvZGUgPSBvcHRpb25zLnNlYXJjaENvZGUgfHwgJyc7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5pbnRlcmZhY2UgSVBlcEludGVybmFsQ2FydXNlbEZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcclxuICAgIHNlYXJjaENvZGU/OiBzdHJpbmc7XHJcbiAgICBwYWdlSW5mbz86IGFueTtcclxufVxyXG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAnaW50ZXJuYWxDYXJ1c2VsJztcclxuICAgIHNlYXJjaENvZGUgPSAnJztcclxuICAgIHBhZ2VJbmZvO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbnRlcm5hbENhcnVzZWxGaWVsZE9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoQ29kZSA9IG9wdGlvbnMuc2VhcmNoQ29kZSB8fCAnJztcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGRPcHRpb25zKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIudXBkYXRlKG9wdGlvbnMpO1xyXG5cclxuICAgICAgICB0aGlzLnBhZ2VJbmZvID0gb3B0aW9ucy5wYWdlSW5mbztcclxuICAgIH1cclxufVxyXG5cclxuXHJcbmludGVyZmFjZSBJUGVwSW50ZXJuYWxNZW51RmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xyXG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcclxufVxyXG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxNZW51RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAnbWVudSc7XHJcbiAgICBvcHRpb25zOiBJUGVwT3B0aW9uW10gPSBbXTtcclxuICAgIC8vIGhhc1N1Yk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwSW50ZXJuYWxNZW51RmllbGRPcHRpb25zID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XHJcbiAgICAgICAgLy8gdGhpcy5oYXNTdWJNZW51ID0gb3B0aW9uc1snaGFzU3ViTWVudSddO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQZXBGaWVsZFZhbHVlQ2hhbmdlRXZlbnQge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogc3RyaW5nO1xyXG4gICAgY29udHJvbFR5cGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEZpZWxkQ2xpY2tFdmVudCB7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIHZhbHVlPzogc3RyaW5nO1xyXG4gICAgY29udHJvbFR5cGU/OiBzdHJpbmc7XHJcbiAgICBldmVudFdoaWNoPzogYW55O1xyXG4gICAgb3RoZXJEYXRhPzogYW55O1xyXG59XHJcbiJdfQ==
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXphdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY3VzdG9taXphdGlvbi9jdXN0b21pemF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWdCekQsb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUEyQixNQUFNLENBQUM7QUFJM0Usb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF5QixLQUFLLENBQUM7QUFvQ3RFLE1BQU0sT0FBTyxZQUFZO0lBMkJyQix1QkFBdUI7SUFFdkIsWUFBWSxVQUFnQyxFQUFFOztRQUMxQyxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRXJDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBQSxPQUFPLENBQUMsS0FBSyxtQ0FBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRS9CLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBQSxPQUFPLENBQUMs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O0lBQ3pCLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBd0M7UUFDbEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQztDQUNKO0FBTUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFlBQVk7SUFHbEQsK0JBQStCO0lBRS9CLFlBQVksVUFBd0MsRUFBRTtRQUNsRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFMbkIsZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFDckIsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFLdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNyQywyQ0FBMkM7SUFDL0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKiBBbGxvd2VkIGxheW91dCBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nIHwgJ2NhcmQnIHwgJ3RhYmxlJztcblxuLyoqIEFsbG93ZWQgc3R5bGUgb3B0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUGVwU3R5bGVUeXBlID0gJ3dlYWsnIHwgJ3dlYWstaW52ZXJ0JyB8ICdyZWd1bGFyJyB8ICdzdHJvbmcnO1xuXG4vKiogQWxsb3dlZCBzdHlsZSBzdGF0ZSBvcHRpb25zICovXG5leHBvcnQgdHlwZSBQZXBTdHlsZVN0YXRlVHlwZSA9ICdzeXN0ZW0nIHwgJ2NhdXRpb24nIHwgJ3N1Y2Nlc3MnO1xuXG4vKiogQWxsb3dlZCBzaXplIG9wdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFBlcFNpemVUeXBlID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc7XG5cbi8qKiBBbGxvd2VkIGhvcml6b250YWwgYWxpZ25tZW50IG9wdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCc7XG4vKiogRGVmYXVsdCBob3Jpem9udGFsIGFsaWdubWVudC4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UOiBQZXBIb3Jpem9udGFsQWxpZ25tZW50ID0gJ2xlZnQnO1xuXG4vKiogQWxsb3dlZCB2ZXJ0aWNhbCBhbGlnbm1lbnQgb3B0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUGVwVmVydGljYWxBbGlnbm1lbnQgPSAndG9wJyB8ICdtaWRkbGUnIHwgJ2JvdHRvbSc7XG4vKiogRGVmYXVsdCBob3Jpem9udGFsIGFsaWdubWVudC4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1ZFUlRJQ0FMX0FMSUdOTUVOVDogUGVwVmVydGljYWxBbGlnbm1lbnQgPSAndG9wJztcbmV4cG9ydCBpbnRlcmZhY2UgSVBlcE9wdGlvbiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuLy8gZXhwb3J0IHR5cGUgUGVwRmllbGRCYXNlVHlwZSA9ICcnIHwgUGVwSW50ZXJuYWxCdXR0b25GaWVsZFR5cGUgfCBQZXBUZXh0Ym94RmllbGRUeXBlIHxcbi8vICAgICBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRUeXBlIHwgUGVwRGF0ZUZpZWxkVHlwZSB8IFBlcENoZWNrYm94RmllbGRUeXBlIHwgUGVwU2VsZWN0RmllbGRUeXBlO1xuaW50ZXJmYWNlIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICB2YWx1ZT86IGFueTtcbiAgICBmb3JtYXR0ZWRWYWx1ZT86IGFueTtcbiAgICBhZGRpdGlvbmFsVmFsdWU/OiBzdHJpbmc7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGFjY2Vzc29yeT86IHN0cmluZztcbiAgICBtYW5kYXRvcnk/OiBib29sZWFuO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgb3JkZXI/OiBudW1iZXI7XG4gICAgY29udHJvbFR5cGU/OiBzdHJpbmc7XG4gICAgLy8gdHlwZT86IFBlcEZpZWxkQmFzZVR5cGU7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICByb3c/OiBudW1iZXI7XG4gICAgcm93U3Bhbj86IG51bWJlcjtcbiAgICBjb2w/OiBudW1iZXI7XG4gICAgY29sU3Bhbj86IG51bWJlcjtcbiAgICB4QWxpZ25tZW50PzogUGVwSG9yaXpvbnRhbEFsaWdubWVudDtcbiAgICB5QWxpZ25tZW50PzogUGVwVmVydGljYWxBbGlnbm1lbnQ7XG4gICAgbWF4RmllbGRDaGFyYWN0ZXJzPzogbnVtYmVyO1xuICAgIG1pblZhbHVlPzogbnVtYmVyO1xuICAgIG1heFZhbHVlPzogbnVtYmVyO1xuICAgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgICAvLyBsYXN0Rm9jdXNGaWVsZD86IGFueTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBGaWVsZEJhc2Uge1xuICAgIHZhbHVlOiBhbnk7XG4gICAgZm9ybWF0dGVkVmFsdWU6IGFueTtcbiAgICBhZGRpdGlvbmFsVmFsdWU6IHN0cmluZztcbiAgICBrZXk6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGFjY2Vzc29yeTogc3RyaW5nO1xuICAgIG1hbmRhdG9yeTogYm9vbGVhbjtcbiAgICByZWFkb25seTogYm9vbGVhbjtcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBvcmRlcjogbnVtYmVyO1xuICAgIC8vIHR5cGU6IHN0cmluZztcbiAgICBjb250cm9sVHlwZTogc3RyaW5nO1xuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgaGlkZGVuOiBib29sZWFuO1xuICAgIHJvdzogbnVtYmVyO1xuICAgIHJvd1NwYW46IG51bWJlcjtcbiAgICBjb2w6IG51bWJlcjtcbiAgICBjb2xTcGFuOiBudW1iZXI7XG4gICAgeEFsaWdubWVudDogUGVwSG9yaXpvbnRhbEFsaWdubWVudDtcbiAgICB5QWxpZ25tZW50OiBQZXBWZXJ0aWNhbEFsaWdubWVudDtcbiAgICBncm91cEZpZWxkczogUGVwRmllbGRCYXNlW107XG4gICAgbWF4RmllbGRDaGFyYWN0ZXJzOiBudW1iZXI7XG4gICAgbWluVmFsdWU6IG51bWJlcjtcbiAgICBtYXhWYWx1ZTogbnVtYmVyO1xuICAgIHRleHRDb2xvcjogc3RyaW5nO1xuICAgIHZpc2libGU6IGJvb2xlYW47XG4gICAgLy8gbGFzdEZvY3VzRmllbGQ6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5rZXkgPSBvcHRpb25zLmtleSB8fCAnJztcbiAgICAgICAgdGhpcy5sYWJlbCA9IG9wdGlvbnMubGFiZWwgfHwgJyc7XG4gICAgICAgIHRoaXMuYWNjZXNzb3J5ID0gb3B0aW9ucy5hY2Nlc3NvcnkgfHwgJyc7XG4gICAgICAgIHRoaXMubWFuZGF0b3J5ID0gISFvcHRpb25zLm1hbmRhdG9yeTtcblxuICAgICAgICB0aGlzLm9yZGVyID0gb3B0aW9ucy5vcmRlciA/PyAxO1xuICAgICAgICB0aGlzLmNvbnRyb2xUeXBlID0gb3B0aW9ucy5jb250cm9sVHlwZSB8fCAnJztcbiAgICAgICAgLy8gdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICcnO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gb3B0aW9ucy5wbGFjZWhvbGRlciB8fCAnJztcbiAgICAgICAgdGhpcy5oaWRkZW4gPSAhIW9wdGlvbnMuaGlkZGVuO1xuXG4gICAgICAgIHRoaXMucm93ID0gb3B0aW9ucy5yb3cgPz8gMTtcbiAgICAgICAgdGhpcy5yb3dTcGFuID0gb3B0aW9ucy5yb3dTcGFuID8/IDE7XG4gICAgICAgIHRoaXMuY29sID0gb3B0aW9ucy5jb2wgPz8gMTtcbiAgICAgICAgdGhpcy5jb2xTcGFuID0gb3B0aW9ucy5jb2xTcGFuID8/IDE7XG5cbiAgICAgICAgdGhpcy54QWxpZ25tZW50ID0gb3B0aW9ucy54QWxpZ25tZW50ID8/IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG4gICAgICAgIHRoaXMueUFsaWdubWVudCA9IG9wdGlvbnMueUFsaWdubWVudCA/PyBERUZBVUxUX1ZFUlRJQ0FMX0FMSUdOTUVOVDtcblxuICAgICAgICB0aGlzLm1heEZpZWxkQ2hhcmFjdGVycyA9IG9wdGlvbnMubWF4RmllbGRDaGFyYWN0ZXJzID8/IDA7XG4gICAgICAgIHRoaXMubWluVmFsdWUgPSBvcHRpb25zLm1pblZhbHVlID8/IDA7XG4gICAgICAgIHRoaXMubWF4VmFsdWUgPSBvcHRpb25zLm1heFZhbHVlID8/IDA7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEJhc2VWYWxpZGF0b3JzKGlzQ2hlY2tib3ggPSBmYWxzZSk6IFZhbGlkYXRvckZuW10ge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMubWFuZGF0b3J5ICYmICF0aGlzLnJlYWRvbmx5ICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBpZiAoaXNDaGVja2JveCkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubWF4RmllbGRDaGFyYWN0ZXJzID4gMCkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4RmllbGRDaGFyYWN0ZXJzKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IHRoaXMuZ2V0QmFzZVZhbGlkYXRvcnMoKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwRmllbGRCYXNlT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gb3B0aW9ucy52YWx1ZTtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IG9wdGlvbnMuZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgIHRoaXMuYWRkaXRpb25hbFZhbHVlID0gb3B0aW9ucy5hZGRpdGlvbmFsVmFsdWU7XG5cbiAgICAgICAgdGhpcy5yZWFkb25seSA9ICEhb3B0aW9ucy5yZWFkb25seTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICEhb3B0aW9ucy5kaXNhYmxlZDtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gISFvcHRpb25zLnZpc2libGU7XG4gICAgICAgIHRoaXMudGV4dENvbG9yID0gb3B0aW9ucy50ZXh0Q29sb3IgfHwgJyc7XG4gICAgICAgIC8vIHRoaXMubGFzdEZvY3VzRmllbGQgPSBvcHRpb25zLmxhc3RGb2N1c0ZpZWxkIHx8IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwUGxhY2Vob2xkZXJGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAncGxhY2Vob2xkZXInO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBTZXBhcmF0b3JGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnc2VwYXJhdG9yJztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwQXR0YWNobWVudEZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdhdHRhY2htZW50JztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwSW5kaWNhdG9yc0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdpbmRpY2F0b3JzJztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBGaWVsZEJhc2VPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBQZXBUZXh0Ym94RmllbGRUeXBlID1cbiAgICB8ICd0ZXh0J1xuICAgIHwgJ2xpbmsnXG4gICAgfCAnZW1haWwnXG4gICAgfCAncGhvbmUnXG4gICAgfCAnZHVyYXRpb24nXG4gICAgfCAnaW50J1xuICAgIHwgJ3BlcmNlbnRhZ2UnXG4gICAgfCAnY3VycmVuY3knXG4gICAgfCAncmVhbCc7XG5pbnRlcmZhY2UgSVBlcFRleHRib3hGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgdHlwZT86IFBlcFRleHRib3hGaWVsZFR5cGU7XG59XG5leHBvcnQgY2xhc3MgUGVwVGV4dGJveEZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICd0ZXh0Ym94JztcbiAgICB0eXBlOiBQZXBUZXh0Ym94RmllbGRUeXBlID0gJ3RleHQnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcFRleHRib3hGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ3RleHQnO1xuXG4gICAgICAgIHRoaXMudXBkYXRlKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUob3B0aW9uczogSVBlcFRleHRib3hGaWVsZE9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIudXBkYXRlKG9wdGlvbnMpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdsaW5rJykge1xuICAgICAgICAgICAgLy8gREktMTEyOTIgLSBhZGQgY2hhbmdlcyBmb3IgbGluayBmaWVsZCBmb3IgdGhlIFwiUmVhZCBPbmx5IGRpc3BsYXkgdmFsdWVcIiBwcm9wXG4gICAgICAgICAgICB0aGlzLmZvcm1hdHRlZFZhbHVlID1cbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkICYmIHRoaXMuZm9ybWF0dGVkVmFsdWUgJiYgdGhpcy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBzdXBlci5nZXRCYXNlVmFsaWRhdG9ycygpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdlbWFpbCcpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oXG4gICAgICAgICAgICAgICAgICAgIC9eKChbXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdwaG9uZScpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oL15bXFxkXFwuXFwtXFwrXFwoXFwpXFwqXFwjXSskLykpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2ludCcgfHwgdGhpcy50eXBlID09PSAncmVhbCcpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oL15bXFwuLFxcLVxcK1xcZF0rJC8pKTtcblxuICAgICAgICAgICAgaWYgKCFpc05hTih0aGlzLm1pblZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbih0aGlzLm1pblZhbHVlKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXNOYU4odGhpcy5tYXhWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhWYWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVwVGV4dGFyZWFGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAndGV4dGFyZWEnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgLy8gdGhpcy50eXBlID0gJ3RleHRhcmVhJztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXBSaWNoSHRtbFRleHRhcmVhRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ3JpY2hodG1sdGV4dGFyZWEnO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEZpZWxkQmFzZU9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgLy8gdGhpcy50eXBlID0gJ3JpY2hodG1sdGV4dGFyZWEnO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElQZXBTaWduYXR1cmVGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBTaWduYXR1cmVGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnc2lnbmF0dXJlJztcbiAgICBvcHRpb25zOiBJUGVwT3B0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBTaWduYXR1cmVGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElQZXBJbWFnZUZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBoYXNDYW1wYWlnbkZpZWxkPzogYW55O1xuICAgIGluZGljYXRvcnNGaWVsZD86IGFueTtcbiAgICBtZW51RmllbGQ/OiBhbnk7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbiAgICBzaXplTGltaXRNQj86IG51bWJlcjtcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbWFnZUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZSc7XG4gICAgaGFzQ2FtcGFpZ25GaWVsZCA9IG51bGw7XG4gICAgaW5kaWNhdG9yc0ZpZWxkID0gbnVsbDtcbiAgICBtZW51RmllbGQgPSBudWxsO1xuICAgIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuICAgIHNpemVMaW1pdE1CID0gNTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbWFnZUZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmhhc0NhbXBhaWduRmllbGQgPSBvcHRpb25zLmhhc0NhbXBhaWduRmllbGQgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5pbmRpY2F0b3JzRmllbGQgPSBvcHRpb25zLmluZGljYXRvcnNGaWVsZCB8fCBudWxsO1xuICAgICAgICB0aGlzLm1lbnVGaWVsZCA9IG9wdGlvbnMubWVudUZpZWxkIHx8IG51bGw7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICAgICAgdGhpcy5zaXplTGltaXRNQiA9IG9wdGlvbnMuc2l6ZUxpbWl0TUIgfHwgNTtcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwSW1hZ2VzRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIG9wdGlvbnM/OiBJUGVwT3B0aW9uW107XG59XG5leHBvcnQgY2xhc3MgUGVwSW1hZ2VzRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2ltYWdlcyc7XG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBJUGVwSW1hZ2VzRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZFR5cGUgPVxuICAgIHwgJ2J1dHRvbidcbiAgICB8ICdwYWNrYWdlQnV0dG9uJ1xuICAgIHwgJ3FzJ1xuICAgIHwgJ3FzRm9yTWF0cml4JztcbmludGVyZmFjZSBJUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICBhbGxvd0RlY2ltYWw/OiBib29sZWFuO1xuICAgIG5vdGlmaWNhdGlvbkluZm8/OiBhbnk7XG4gICAgdHlwZT86IFBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZFR5cGU7XG59XG5leHBvcnQgY2xhc3MgUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdxcyc7XG4gICAgYWxsb3dEZWNpbWFsOiBib29sZWFuO1xuICAgIG5vdGlmaWNhdGlvbkluZm86IGFueSA9IHt9O1xuICAgIHVwZGF0ZWREYXRhQ291bnQ6IG51bWJlcjtcbiAgICB0eXBlOiBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRUeXBlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZWREYXRhQ291bnQgPSAwO1xuICAgICAgICB0aGlzLmFsbG93RGVjaW1hbCA9IG9wdGlvbnMuYWxsb3dEZWNpbWFsIHx8IGZhbHNlO1xuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ3FzJztcblxuICAgICAgICB0aGlzLnVwZGF0ZShvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKG9wdGlvbnM6IElQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcblxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkluZm8gPSBvcHRpb25zLm5vdGlmaWNhdGlvbkluZm87XG4gICAgICAgIHRoaXMudXBkYXRlZERhdGFDb3VudCArPSAxO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGVwRGF0ZUZpZWxkVHlwZSA9ICdkYXRldGltZScgfCAnZGF0ZSc7XG5pbnRlcmZhY2UgSVBlcERhdGVGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgdHlwZT86IFBlcERhdGVGaWVsZFR5cGU7XG59XG5leHBvcnQgY2xhc3MgUGVwRGF0ZUZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdkYXRlJztcbiAgICB0eXBlOiBQZXBEYXRlRmllbGRUeXBlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcERhdGVGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgJ2RhdGUnO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGVwQ2hlY2tib3hGaWVsZFR5cGUgPSAnY2hlY2tib3gnIHwgJ2Jvb2xlYW5UZXh0JztcbmludGVyZmFjZSBJUGVwQ2hlY2tib3hGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgdHlwZT86IFBlcENoZWNrYm94RmllbGRUeXBlO1xufVxuZXhwb3J0IGNsYXNzIFBlcENoZWNrYm94RmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2NoZWNrYm94JztcbiAgICB0eXBlOiBQZXBDaGVja2JveEZpZWxkVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBDaGVja2JveEZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnY2hlY2tib3gnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gc3VwZXIuZ2V0QmFzZVZhbGlkYXRvcnModHJ1ZSk7XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGVwU2VsZWN0RmllbGRUeXBlID0gJ3NlbGVjdCcgfCAnbXVsdGknO1xuaW50ZXJmYWNlIElQZXBTZWxlY3RGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbiAgICB0eXBlPzogUGVwU2VsZWN0RmllbGRUeXBlO1xufVxuZXhwb3J0IGNsYXNzIFBlcFNlbGVjdEZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdzZWxlY3QnO1xuICAgIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuICAgIHR5cGU6IFBlcFNlbGVjdEZpZWxkVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBTZWxlY3RGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICdzZWxlY3QnO1xuXG4gICAgICAgIHRoaXMudXBkYXRlKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUob3B0aW9uczogSVBlcFNlbGVjdEZpZWxkT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBzdXBlci51cGRhdGUob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElQZXBBZGRyZXNzRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIGdyb3VwRmllbGRzPzogUGVwRmllbGRCYXNlW107XG59XG5leHBvcnQgY2xhc3MgUGVwQWRkcmVzc0ZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdhZGRyZXNzJztcbiAgICBncm91cEZpZWxkczogUGVwRmllbGRCYXNlW10gPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEFkZHJlc3NGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5ncm91cEZpZWxkcyA9IG9wdGlvbnMuZ3JvdXBGaWVsZHMgfHwgbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlID1cbiAgICB8ICdidXR0b24nXG4gICAgfCAncmVmZXJlbmNlJ1xuICAgIHwgJ2xpc3RvZm9iamVjdHMnO1xuaW50ZXJmYWNlIElQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkT3B0aW9ucyBleHRlbmRzIElQZXBGaWVsZEJhc2VPcHRpb25zIHtcbiAgICByZWZlcmVuY2VPYmplY3RUeXBlPzogYW55O1xuICAgIHJlZmVyZW5jZU9iamVjdFN1YlR5cGU/OiBzdHJpbmc7XG4gICAgcmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlPzogc3RyaW5nO1xuICAgIHR5cGU/OiBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkVHlwZTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkIGV4dGVuZHMgUGVwRmllbGRCYXNlIHtcbiAgICBjb250cm9sVHlwZSA9ICdidXR0b24nO1xuICAgIHJlZmVyZW5jZU9iamVjdFR5cGU7XG4gICAgcmVmZXJlbmNlT2JqZWN0U3ViVHlwZSA9ICcnO1xuICAgIHJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSA9ICcnO1xuICAgIHR5cGU6IFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsQnV0dG9uRmllbGRPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RUeXBlID0gb3B0aW9ucy5yZWZlcmVuY2VPYmplY3RUeXBlIHx8IG51bGw7XG4gICAgICAgIHRoaXMucmVmZXJlbmNlT2JqZWN0U3ViVHlwZSA9IG9wdGlvbnMucmVmZXJlbmNlT2JqZWN0U3ViVHlwZSB8fCBudWxsO1xuICAgICAgICB0aGlzLnJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSA9XG4gICAgICAgICAgICBvcHRpb25zLnJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSB8fCBudWxsO1xuXG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnYnV0dG9uJztcbiAgICB9XG59XG5cbmludGVyZmFjZSBJUGVwSW50ZXJuYWxQYWdlRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIG9iamVjdElkPzogc3RyaW5nO1xuICAgIHBhcmVudElkPzogc3RyaW5nO1xuICAgIHNlYXJjaENvZGU/OiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxQYWdlRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2ludGVybmFsUGFnZSc7XG4gICAgb2JqZWN0SWQgPSAnJztcbiAgICBwYXJlbnRJZCA9ICcnO1xuICAgIHNlYXJjaENvZGUgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElQZXBJbnRlcm5hbFBhZ2VGaWVsZE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgdGhpcy5vYmplY3RJZCA9IG9wdGlvbnMub2JqZWN0SWQgfHwgJyc7XG4gICAgICAgIHRoaXMucGFyZW50SWQgPSBvcHRpb25zLnBhcmVudElkIHx8ICcnO1xuICAgICAgICB0aGlzLnNlYXJjaENvZGUgPSBvcHRpb25zLnNlYXJjaENvZGUgfHwgJyc7XG4gICAgfVxufVxuXG5cbmludGVyZmFjZSBJUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGRPcHRpb25zIGV4dGVuZHMgSVBlcEZpZWxkQmFzZU9wdGlvbnMge1xuICAgIHNlYXJjaENvZGU/OiBzdHJpbmc7XG4gICAgcGFnZUluZm8/OiBhbnk7XG59XG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGQgZXh0ZW5kcyBQZXBGaWVsZEJhc2Uge1xuICAgIGNvbnRyb2xUeXBlID0gJ2ludGVybmFsQ2FydXNlbCc7XG4gICAgc2VhcmNoQ29kZSA9ICcnO1xuICAgIHBhZ2VJbmZvO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsQ2FydXNlbEZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnNlYXJjaENvZGUgPSBvcHRpb25zLnNlYXJjaENvZGUgfHwgJyc7XG5cbiAgICAgICAgdGhpcy51cGRhdGUob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBJUGVwSW50ZXJuYWxDYXJ1c2VsRmllbGRPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZShvcHRpb25zKTtcblxuICAgICAgICB0aGlzLnBhZ2VJbmZvID0gb3B0aW9ucy5wYWdlSW5mbztcbiAgICB9XG59XG5cblxuaW50ZXJmYWNlIElQZXBJbnRlcm5hbE1lbnVGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJUGVwRmllbGRCYXNlT3B0aW9ucyB7XG4gICAgb3B0aW9ucz86IElQZXBPcHRpb25bXTtcbn1cbmV4cG9ydCBjbGFzcyBQZXBJbnRlcm5hbE1lbnVGaWVsZCBleHRlbmRzIFBlcEZpZWxkQmFzZSB7XG4gICAgY29udHJvbFR5cGUgPSAnbWVudSc7XG4gICAgb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XG4gICAgLy8gaGFzU3ViTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogSVBlcEludGVybmFsTWVudUZpZWxkT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XG4gICAgICAgIC8vIHRoaXMuaGFzU3ViTWVudSA9IG9wdGlvbnNbJ2hhc1N1Yk1lbnUnXTtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEZpZWxkVmFsdWVDaGFuZ2VFdmVudCB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBjb250cm9sVHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVwRmllbGRDbGlja0V2ZW50IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgICBjb250cm9sVHlwZT86IHN0cmluZztcbiAgICBldmVudFdoaWNoPzogYW55O1xuICAgIG90aGVyRGF0YT86IGFueTtcbn1cbiJdfQ==