@sd-angular/core 1.2.87 → 1.2.88

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 (786) hide show
  1. package/api/package.json +1 -12
  2. package/api/sd-angular-core-api.d.ts +0 -2
  3. package/autocomplete/package.json +1 -12
  4. package/autocomplete/sd-angular-core-autocomplete.d.ts +0 -2
  5. package/badge/package.json +1 -12
  6. package/badge/sd-angular-core-badge.d.ts +0 -2
  7. package/bundles/sd-angular-core-api.umd.js +1 -2
  8. package/bundles/sd-angular-core-api.umd.js.map +1 -1
  9. package/bundles/sd-angular-core-autocomplete.umd.js +1 -2
  10. package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
  11. package/bundles/sd-angular-core-badge.umd.js +1 -2
  12. package/bundles/sd-angular-core-badge.umd.js.map +1 -1
  13. package/bundles/sd-angular-core-button.umd.js +1 -2
  14. package/bundles/sd-angular-core-button.umd.js.map +1 -1
  15. package/bundles/sd-angular-core-cache.umd.js +1 -2
  16. package/bundles/sd-angular-core-cache.umd.js.map +1 -1
  17. package/bundles/sd-angular-core-chart.umd.js +1 -2
  18. package/bundles/sd-angular-core-chart.umd.js.map +1 -1
  19. package/bundles/sd-angular-core-checkbox.umd.js +1 -2
  20. package/bundles/sd-angular-core-checkbox.umd.js.map +1 -1
  21. package/bundles/sd-angular-core-chip.umd.js +1 -2
  22. package/bundles/sd-angular-core-chip.umd.js.map +1 -1
  23. package/bundles/sd-angular-core-comment.umd.js +2 -3
  24. package/bundles/sd-angular-core-comment.umd.js.map +1 -1
  25. package/bundles/sd-angular-core-comment.umd.min.js +1 -1
  26. package/bundles/sd-angular-core-comment.umd.min.js.map +1 -1
  27. package/bundles/sd-angular-core-common.umd.js +1 -2
  28. package/bundles/sd-angular-core-common.umd.js.map +1 -1
  29. package/bundles/sd-angular-core-confirm.umd.js +1 -2
  30. package/bundles/sd-angular-core-confirm.umd.js.map +1 -1
  31. package/bundles/sd-angular-core-date-month.umd.js +1 -2
  32. package/bundles/sd-angular-core-date-month.umd.js.map +1 -1
  33. package/bundles/sd-angular-core-date-range.umd.js +1 -2
  34. package/bundles/sd-angular-core-date-range.umd.js.map +1 -1
  35. package/bundles/sd-angular-core-date-time.umd.js +1 -2
  36. package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
  37. package/bundles/sd-angular-core-db.umd.js +1 -2
  38. package/bundles/sd-angular-core-db.umd.js.map +1 -1
  39. package/bundles/sd-angular-core-dynamic-report.umd.js +1 -2
  40. package/bundles/sd-angular-core-dynamic-report.umd.js.map +1 -1
  41. package/bundles/sd-angular-core-editor.umd.js +164 -118
  42. package/bundles/sd-angular-core-editor.umd.js.map +1 -1
  43. package/bundles/sd-angular-core-editor.umd.min.js +2 -2
  44. package/bundles/sd-angular-core-editor.umd.min.js.map +1 -1
  45. package/bundles/sd-angular-core-excel.umd.js +1 -2
  46. package/bundles/sd-angular-core-excel.umd.js.map +1 -1
  47. package/bundles/sd-angular-core-export.umd.js +1 -2
  48. package/bundles/sd-angular-core-export.umd.js.map +1 -1
  49. package/bundles/sd-angular-core-form.umd.js +1 -2
  50. package/bundles/sd-angular-core-form.umd.js.map +1 -1
  51. package/bundles/sd-angular-core-grid-material.umd.js +1 -2
  52. package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
  53. package/bundles/sd-angular-core-group.umd.js +1 -2
  54. package/bundles/sd-angular-core-group.umd.js.map +1 -1
  55. package/bundles/sd-angular-core-header-title.umd.js +1 -2
  56. package/bundles/sd-angular-core-header-title.umd.js.map +1 -1
  57. package/bundles/sd-angular-core-image-preview.umd.js +1 -2
  58. package/bundles/sd-angular-core-image-preview.umd.js.map +1 -1
  59. package/bundles/sd-angular-core-input-currency.umd.js +1 -2
  60. package/bundles/sd-angular-core-input-currency.umd.js.map +1 -1
  61. package/bundles/sd-angular-core-input-dropdown.umd.js +1 -2
  62. package/bundles/sd-angular-core-input-dropdown.umd.js.map +1 -1
  63. package/bundles/sd-angular-core-input-number.umd.js +1 -2
  64. package/bundles/sd-angular-core-input-number.umd.js.map +1 -1
  65. package/bundles/sd-angular-core-input-upload-file.umd.js +1 -2
  66. package/bundles/sd-angular-core-input-upload-file.umd.js.map +1 -1
  67. package/bundles/sd-angular-core-input.umd.js +1 -2
  68. package/bundles/sd-angular-core-input.umd.js.map +1 -1
  69. package/bundles/sd-angular-core-json-editor.umd.js +1 -2
  70. package/bundles/sd-angular-core-json-editor.umd.js.map +1 -1
  71. package/bundles/sd-angular-core-konva.umd.js +1 -2
  72. package/bundles/sd-angular-core-konva.umd.js.map +1 -1
  73. package/bundles/sd-angular-core-label.umd.js +1 -2
  74. package/bundles/sd-angular-core-label.umd.js.map +1 -1
  75. package/bundles/sd-angular-core-loading.umd.js +1 -2
  76. package/bundles/sd-angular-core-loading.umd.js.map +1 -1
  77. package/bundles/sd-angular-core-modal-resizable.umd.js +1 -2
  78. package/bundles/sd-angular-core-modal-resizable.umd.js.map +1 -1
  79. package/bundles/sd-angular-core-modal.umd.js +1 -2
  80. package/bundles/sd-angular-core-modal.umd.js.map +1 -1
  81. package/bundles/sd-angular-core-notify.umd.js +1 -2
  82. package/bundles/sd-angular-core-notify.umd.js.map +1 -1
  83. package/bundles/sd-angular-core-popover.umd.js +1 -2
  84. package/bundles/sd-angular-core-popover.umd.js.map +1 -1
  85. package/bundles/sd-angular-core-quick-action.umd.js +1 -2
  86. package/bundles/sd-angular-core-quick-action.umd.js.map +1 -1
  87. package/bundles/sd-angular-core-radio.umd.js +1 -2
  88. package/bundles/sd-angular-core-radio.umd.js.map +1 -1
  89. package/bundles/sd-angular-core-select-badge.umd.js +1 -2
  90. package/bundles/sd-angular-core-select-badge.umd.js.map +1 -1
  91. package/bundles/sd-angular-core-select-editor.umd.js +1 -2
  92. package/bundles/sd-angular-core-select-editor.umd.js.map +1 -1
  93. package/bundles/sd-angular-core-select.umd.js +1 -2
  94. package/bundles/sd-angular-core-select.umd.js.map +1 -1
  95. package/bundles/sd-angular-core-service.umd.js +1 -2
  96. package/bundles/sd-angular-core-service.umd.js.map +1 -1
  97. package/bundles/sd-angular-core-setting.umd.js +1 -2
  98. package/bundles/sd-angular-core-setting.umd.js.map +1 -1
  99. package/bundles/sd-angular-core-side-drawer.umd.js +1 -2
  100. package/bundles/sd-angular-core-side-drawer.umd.js.map +1 -1
  101. package/bundles/sd-angular-core-switch.umd.js +1 -2
  102. package/bundles/sd-angular-core-switch.umd.js.map +1 -1
  103. package/bundles/sd-angular-core-tab-router.umd.js +1 -2
  104. package/bundles/sd-angular-core-tab-router.umd.js.map +1 -1
  105. package/bundles/sd-angular-core-textarea.umd.js +1 -2
  106. package/bundles/sd-angular-core-textarea.umd.js.map +1 -1
  107. package/bundles/sd-angular-core-time.umd.js +1 -2
  108. package/bundles/sd-angular-core-time.umd.js.map +1 -1
  109. package/bundles/sd-angular-core-timeline.umd.js +1 -2
  110. package/bundles/sd-angular-core-timeline.umd.js.map +1 -1
  111. package/bundles/sd-angular-core-translate.umd.js +1 -2
  112. package/bundles/sd-angular-core-translate.umd.js.map +1 -1
  113. package/bundles/sd-angular-core-upload-excel.umd.js +1 -2
  114. package/bundles/sd-angular-core-upload-excel.umd.js.map +1 -1
  115. package/bundles/sd-angular-core-upload-file.umd.js +1 -2
  116. package/bundles/sd-angular-core-upload-file.umd.js.map +1 -1
  117. package/bundles/sd-angular-core-utility.umd.js +1 -2
  118. package/bundles/sd-angular-core-utility.umd.js.map +1 -1
  119. package/bundles/sd-angular-core-view.umd.js +1 -2
  120. package/bundles/sd-angular-core-view.umd.js.map +1 -1
  121. package/button/package.json +1 -12
  122. package/button/sd-angular-core-button.d.ts +0 -2
  123. package/cache/package.json +1 -12
  124. package/cache/sd-angular-core-cache.d.ts +0 -2
  125. package/chart/package.json +1 -12
  126. package/chart/sd-angular-core-chart.d.ts +0 -2
  127. package/checkbox/package.json +1 -12
  128. package/checkbox/sd-angular-core-checkbox.d.ts +0 -2
  129. package/chip/package.json +1 -12
  130. package/chip/sd-angular-core-chip.d.ts +0 -2
  131. package/comment/package.json +1 -12
  132. package/comment/sd-angular-core-comment.d.ts +0 -2
  133. package/comment/sd-angular-core-comment.metadata.json +1 -1
  134. package/comment/src/lib/comment.model.d.ts +1 -2
  135. package/common/package.json +1 -12
  136. package/common/sd-angular-core-common.d.ts +0 -2
  137. package/confirm/package.json +1 -12
  138. package/confirm/sd-angular-core-confirm.d.ts +0 -2
  139. package/date-month/package.json +1 -12
  140. package/date-month/sd-angular-core-date-month.d.ts +0 -2
  141. package/date-range/package.json +1 -12
  142. package/date-range/sd-angular-core-date-range.d.ts +0 -2
  143. package/date-time/package.json +1 -12
  144. package/date-time/sd-angular-core-date-time.d.ts +0 -2
  145. package/db/package.json +1 -12
  146. package/db/sd-angular-core-db.d.ts +0 -2
  147. package/dynamic-report/package.json +1 -12
  148. package/dynamic-report/sd-angular-core-dynamic-report.d.ts +0 -2
  149. package/editor/package.json +1 -12
  150. package/editor/sd-angular-core-editor.d.ts +0 -2
  151. package/editor/sd-angular-core-editor.metadata.json +1 -1
  152. package/editor/src/lib/editor.component.d.ts +0 -3
  153. package/editor/src/lib/editor.model.d.ts +12 -2
  154. package/esm2015/api/sd-angular-core-api.js +1 -1
  155. package/esm2015/autocomplete/sd-angular-core-autocomplete.js +1 -1
  156. package/esm2015/badge/sd-angular-core-badge.js +1 -1
  157. package/esm2015/button/sd-angular-core-button.js +1 -1
  158. package/esm2015/cache/sd-angular-core-cache.js +1 -1
  159. package/esm2015/chart/sd-angular-core-chart.js +1 -1
  160. package/esm2015/checkbox/sd-angular-core-checkbox.js +1 -1
  161. package/esm2015/chip/sd-angular-core-chip.js +1 -1
  162. package/esm2015/comment/sd-angular-core-comment.js +1 -1
  163. package/esm2015/comment/src/lib/comment.component.js +2 -2
  164. package/esm2015/comment/src/lib/comment.model.js +1 -1
  165. package/esm2015/common/sd-angular-core-common.js +1 -1
  166. package/esm2015/confirm/sd-angular-core-confirm.js +1 -1
  167. package/esm2015/date-month/sd-angular-core-date-month.js +1 -1
  168. package/esm2015/date-range/sd-angular-core-date-range.js +1 -1
  169. package/esm2015/date-time/sd-angular-core-date-time.js +1 -1
  170. package/esm2015/db/sd-angular-core-db.js +1 -1
  171. package/esm2015/dynamic-report/sd-angular-core-dynamic-report.js +1 -1
  172. package/esm2015/editor/sd-angular-core-editor.js +1 -1
  173. package/esm2015/editor/src/lib/editor.component.js +149 -116
  174. package/esm2015/editor/src/lib/editor.model.js +1 -1
  175. package/esm2015/excel/sd-angular-core-excel.js +1 -1
  176. package/esm2015/export/sd-angular-core-export.js +1 -1
  177. package/esm2015/form/sd-angular-core-form.js +1 -1
  178. package/esm2015/grid-material/sd-angular-core-grid-material.js +1 -1
  179. package/esm2015/group/sd-angular-core-group.js +1 -1
  180. package/esm2015/header-title/sd-angular-core-header-title.js +1 -1
  181. package/esm2015/image-preview/sd-angular-core-image-preview.js +1 -1
  182. package/esm2015/input/sd-angular-core-input.js +1 -1
  183. package/esm2015/input-currency/sd-angular-core-input-currency.js +1 -1
  184. package/esm2015/input-dropdown/sd-angular-core-input-dropdown.js +1 -1
  185. package/esm2015/input-number/sd-angular-core-input-number.js +1 -1
  186. package/esm2015/input-upload-file/sd-angular-core-input-upload-file.js +1 -1
  187. package/esm2015/json-editor/sd-angular-core-json-editor.js +1 -1
  188. package/esm2015/konva/sd-angular-core-konva.js +1 -1
  189. package/esm2015/label/sd-angular-core-label.js +1 -1
  190. package/esm2015/loading/sd-angular-core-loading.js +1 -1
  191. package/esm2015/modal/sd-angular-core-modal.js +1 -1
  192. package/esm2015/modal-resizable/sd-angular-core-modal-resizable.js +1 -1
  193. package/esm2015/notify/sd-angular-core-notify.js +1 -1
  194. package/esm2015/popover/sd-angular-core-popover.js +1 -1
  195. package/esm2015/quick-action/sd-angular-core-quick-action.js +1 -1
  196. package/esm2015/radio/sd-angular-core-radio.js +1 -1
  197. package/esm2015/select/sd-angular-core-select.js +1 -1
  198. package/esm2015/select-badge/sd-angular-core-select-badge.js +1 -1
  199. package/esm2015/select-editor/sd-angular-core-select-editor.js +1 -1
  200. package/esm2015/service/sd-angular-core-service.js +1 -1
  201. package/esm2015/setting/sd-angular-core-setting.js +1 -1
  202. package/esm2015/side-drawer/sd-angular-core-side-drawer.js +1 -1
  203. package/esm2015/switch/sd-angular-core-switch.js +1 -1
  204. package/esm2015/tab-router/sd-angular-core-tab-router.js +1 -1
  205. package/esm2015/textarea/sd-angular-core-textarea.js +1 -1
  206. package/esm2015/time/sd-angular-core-time.js +1 -1
  207. package/esm2015/timeline/sd-angular-core-timeline.js +1 -1
  208. package/esm2015/translate/sd-angular-core-translate.js +1 -1
  209. package/esm2015/upload-excel/sd-angular-core-upload-excel.js +1 -1
  210. package/esm2015/upload-file/sd-angular-core-upload-file.js +1 -1
  211. package/esm2015/utility/sd-angular-core-utility.js +1 -1
  212. package/esm2015/view/sd-angular-core-view.js +1 -1
  213. package/excel/package.json +1 -12
  214. package/excel/sd-angular-core-excel.d.ts +0 -2
  215. package/export/package.json +1 -12
  216. package/export/sd-angular-core-export.d.ts +0 -2
  217. package/fesm2015/sd-angular-core-api.js +1 -2
  218. package/fesm2015/sd-angular-core-api.js.map +1 -1
  219. package/fesm2015/sd-angular-core-autocomplete.js +1 -2
  220. package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
  221. package/fesm2015/sd-angular-core-badge.js +1 -2
  222. package/fesm2015/sd-angular-core-badge.js.map +1 -1
  223. package/fesm2015/sd-angular-core-button.js +1 -2
  224. package/fesm2015/sd-angular-core-button.js.map +1 -1
  225. package/fesm2015/sd-angular-core-cache.js +1 -2
  226. package/fesm2015/sd-angular-core-cache.js.map +1 -1
  227. package/fesm2015/sd-angular-core-chart.js +1 -2
  228. package/fesm2015/sd-angular-core-chart.js.map +1 -1
  229. package/fesm2015/sd-angular-core-checkbox.js +1 -2
  230. package/fesm2015/sd-angular-core-checkbox.js.map +1 -1
  231. package/fesm2015/sd-angular-core-chip.js +1 -2
  232. package/fesm2015/sd-angular-core-chip.js.map +1 -1
  233. package/fesm2015/sd-angular-core-comment.js +2 -3
  234. package/fesm2015/sd-angular-core-comment.js.map +1 -1
  235. package/fesm2015/sd-angular-core-common.js +1 -2
  236. package/fesm2015/sd-angular-core-common.js.map +1 -1
  237. package/fesm2015/sd-angular-core-confirm.js +1 -2
  238. package/fesm2015/sd-angular-core-confirm.js.map +1 -1
  239. package/fesm2015/sd-angular-core-date-month.js +1 -2
  240. package/fesm2015/sd-angular-core-date-month.js.map +1 -1
  241. package/fesm2015/sd-angular-core-date-range.js +1 -2
  242. package/fesm2015/sd-angular-core-date-range.js.map +1 -1
  243. package/fesm2015/sd-angular-core-date-time.js +1 -2
  244. package/fesm2015/sd-angular-core-date-time.js.map +1 -1
  245. package/fesm2015/sd-angular-core-db.js +1 -2
  246. package/fesm2015/sd-angular-core-db.js.map +1 -1
  247. package/fesm2015/sd-angular-core-dynamic-report.js +1 -2
  248. package/fesm2015/sd-angular-core-dynamic-report.js.map +1 -1
  249. package/fesm2015/sd-angular-core-editor.js +149 -117
  250. package/fesm2015/sd-angular-core-editor.js.map +1 -1
  251. package/fesm2015/sd-angular-core-excel.js +1 -2
  252. package/fesm2015/sd-angular-core-excel.js.map +1 -1
  253. package/fesm2015/sd-angular-core-export.js +1 -2
  254. package/fesm2015/sd-angular-core-export.js.map +1 -1
  255. package/fesm2015/sd-angular-core-form.js +1 -2
  256. package/fesm2015/sd-angular-core-form.js.map +1 -1
  257. package/fesm2015/sd-angular-core-grid-material.js +1 -2
  258. package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
  259. package/fesm2015/sd-angular-core-group.js +1 -2
  260. package/fesm2015/sd-angular-core-group.js.map +1 -1
  261. package/fesm2015/sd-angular-core-header-title.js +1 -2
  262. package/fesm2015/sd-angular-core-header-title.js.map +1 -1
  263. package/fesm2015/sd-angular-core-image-preview.js +1 -2
  264. package/fesm2015/sd-angular-core-image-preview.js.map +1 -1
  265. package/fesm2015/sd-angular-core-input-currency.js +1 -2
  266. package/fesm2015/sd-angular-core-input-currency.js.map +1 -1
  267. package/fesm2015/sd-angular-core-input-dropdown.js +1 -2
  268. package/fesm2015/sd-angular-core-input-dropdown.js.map +1 -1
  269. package/fesm2015/sd-angular-core-input-number.js +1 -2
  270. package/fesm2015/sd-angular-core-input-number.js.map +1 -1
  271. package/fesm2015/sd-angular-core-input-upload-file.js +1 -2
  272. package/fesm2015/sd-angular-core-input-upload-file.js.map +1 -1
  273. package/fesm2015/sd-angular-core-input.js +1 -2
  274. package/fesm2015/sd-angular-core-input.js.map +1 -1
  275. package/fesm2015/sd-angular-core-json-editor.js +1 -2
  276. package/fesm2015/sd-angular-core-json-editor.js.map +1 -1
  277. package/fesm2015/sd-angular-core-konva.js +1 -2
  278. package/fesm2015/sd-angular-core-konva.js.map +1 -1
  279. package/fesm2015/sd-angular-core-label.js +1 -2
  280. package/fesm2015/sd-angular-core-label.js.map +1 -1
  281. package/fesm2015/sd-angular-core-loading.js +1 -2
  282. package/fesm2015/sd-angular-core-loading.js.map +1 -1
  283. package/fesm2015/sd-angular-core-modal-resizable.js +1 -2
  284. package/fesm2015/sd-angular-core-modal-resizable.js.map +1 -1
  285. package/fesm2015/sd-angular-core-modal.js +1 -2
  286. package/fesm2015/sd-angular-core-modal.js.map +1 -1
  287. package/fesm2015/sd-angular-core-notify.js +1 -2
  288. package/fesm2015/sd-angular-core-notify.js.map +1 -1
  289. package/fesm2015/sd-angular-core-popover.js +1 -2
  290. package/fesm2015/sd-angular-core-popover.js.map +1 -1
  291. package/fesm2015/sd-angular-core-quick-action.js +1 -2
  292. package/fesm2015/sd-angular-core-quick-action.js.map +1 -1
  293. package/fesm2015/sd-angular-core-radio.js +1 -2
  294. package/fesm2015/sd-angular-core-radio.js.map +1 -1
  295. package/fesm2015/sd-angular-core-select-badge.js +1 -2
  296. package/fesm2015/sd-angular-core-select-badge.js.map +1 -1
  297. package/fesm2015/sd-angular-core-select-editor.js +1 -2
  298. package/fesm2015/sd-angular-core-select-editor.js.map +1 -1
  299. package/fesm2015/sd-angular-core-select.js +1 -2
  300. package/fesm2015/sd-angular-core-select.js.map +1 -1
  301. package/fesm2015/sd-angular-core-service.js +1 -2
  302. package/fesm2015/sd-angular-core-service.js.map +1 -1
  303. package/fesm2015/sd-angular-core-setting.js +1 -2
  304. package/fesm2015/sd-angular-core-setting.js.map +1 -1
  305. package/fesm2015/sd-angular-core-side-drawer.js +1 -2
  306. package/fesm2015/sd-angular-core-side-drawer.js.map +1 -1
  307. package/fesm2015/sd-angular-core-switch.js +1 -2
  308. package/fesm2015/sd-angular-core-switch.js.map +1 -1
  309. package/fesm2015/sd-angular-core-tab-router.js +1 -2
  310. package/fesm2015/sd-angular-core-tab-router.js.map +1 -1
  311. package/fesm2015/sd-angular-core-textarea.js +1 -2
  312. package/fesm2015/sd-angular-core-textarea.js.map +1 -1
  313. package/fesm2015/sd-angular-core-time.js +1 -2
  314. package/fesm2015/sd-angular-core-time.js.map +1 -1
  315. package/fesm2015/sd-angular-core-timeline.js +1 -2
  316. package/fesm2015/sd-angular-core-timeline.js.map +1 -1
  317. package/fesm2015/sd-angular-core-translate.js +1 -2
  318. package/fesm2015/sd-angular-core-translate.js.map +1 -1
  319. package/fesm2015/sd-angular-core-upload-excel.js +1 -2
  320. package/fesm2015/sd-angular-core-upload-excel.js.map +1 -1
  321. package/fesm2015/sd-angular-core-upload-file.js +1 -2
  322. package/fesm2015/sd-angular-core-upload-file.js.map +1 -1
  323. package/fesm2015/sd-angular-core-utility.js +1 -2
  324. package/fesm2015/sd-angular-core-utility.js.map +1 -1
  325. package/fesm2015/sd-angular-core-view.js +1 -2
  326. package/fesm2015/sd-angular-core-view.js.map +1 -1
  327. package/form/package.json +1 -12
  328. package/form/sd-angular-core-form.d.ts +0 -2
  329. package/grid-material/package.json +1 -12
  330. package/grid-material/sd-angular-core-grid-material.d.ts +0 -2
  331. package/group/package.json +1 -12
  332. package/group/sd-angular-core-group.d.ts +0 -2
  333. package/header-title/package.json +1 -12
  334. package/header-title/sd-angular-core-header-title.d.ts +0 -2
  335. package/image-preview/package.json +1 -12
  336. package/image-preview/sd-angular-core-image-preview.d.ts +0 -2
  337. package/input/package.json +1 -12
  338. package/input/sd-angular-core-input.d.ts +0 -2
  339. package/input-currency/package.json +1 -12
  340. package/input-currency/sd-angular-core-input-currency.d.ts +0 -2
  341. package/input-dropdown/package.json +1 -12
  342. package/input-dropdown/sd-angular-core-input-dropdown.d.ts +0 -2
  343. package/input-number/package.json +1 -12
  344. package/input-number/sd-angular-core-input-number.d.ts +0 -2
  345. package/input-upload-file/package.json +1 -12
  346. package/input-upload-file/sd-angular-core-input-upload-file.d.ts +0 -2
  347. package/json-editor/package.json +1 -12
  348. package/json-editor/sd-angular-core-json-editor.d.ts +0 -2
  349. package/konva/package.json +1 -12
  350. package/konva/sd-angular-core-konva.d.ts +0 -2
  351. package/label/package.json +1 -12
  352. package/label/sd-angular-core-label.d.ts +0 -2
  353. package/loading/package.json +1 -12
  354. package/loading/sd-angular-core-loading.d.ts +0 -2
  355. package/modal/package.json +1 -12
  356. package/modal/sd-angular-core-modal.d.ts +0 -2
  357. package/modal-resizable/package.json +1 -12
  358. package/modal-resizable/sd-angular-core-modal-resizable.d.ts +0 -2
  359. package/notify/package.json +1 -12
  360. package/notify/sd-angular-core-notify.d.ts +0 -2
  361. package/package.json +1 -1
  362. package/popover/package.json +1 -12
  363. package/popover/sd-angular-core-popover.d.ts +0 -2
  364. package/quick-action/package.json +1 -12
  365. package/quick-action/sd-angular-core-quick-action.d.ts +0 -2
  366. package/radio/package.json +1 -12
  367. package/radio/sd-angular-core-radio.d.ts +0 -2
  368. package/sd-angular-core-1.2.88.tgz +0 -0
  369. package/select/package.json +1 -12
  370. package/select/sd-angular-core-select.d.ts +0 -2
  371. package/select-badge/package.json +1 -12
  372. package/select-badge/sd-angular-core-select-badge.d.ts +0 -2
  373. package/select-editor/package.json +1 -12
  374. package/select-editor/sd-angular-core-select-editor.d.ts +0 -2
  375. package/service/package.json +1 -12
  376. package/service/sd-angular-core-service.d.ts +0 -2
  377. package/setting/package.json +1 -12
  378. package/setting/sd-angular-core-setting.d.ts +0 -2
  379. package/side-drawer/package.json +1 -12
  380. package/side-drawer/sd-angular-core-side-drawer.d.ts +0 -2
  381. package/switch/package.json +1 -12
  382. package/switch/sd-angular-core-switch.d.ts +0 -2
  383. package/tab-router/package.json +1 -12
  384. package/tab-router/sd-angular-core-tab-router.d.ts +0 -2
  385. package/textarea/package.json +1 -12
  386. package/textarea/sd-angular-core-textarea.d.ts +0 -2
  387. package/time/package.json +1 -12
  388. package/time/sd-angular-core-time.d.ts +0 -2
  389. package/timeline/package.json +1 -12
  390. package/timeline/sd-angular-core-timeline.d.ts +0 -2
  391. package/translate/package.json +1 -12
  392. package/translate/sd-angular-core-translate.d.ts +0 -2
  393. package/upload-excel/package.json +1 -12
  394. package/upload-excel/sd-angular-core-upload-excel.d.ts +0 -2
  395. package/upload-file/package.json +1 -12
  396. package/upload-file/sd-angular-core-upload-file.d.ts +0 -2
  397. package/utility/package.json +1 -12
  398. package/utility/sd-angular-core-utility.d.ts +0 -2
  399. package/view/package.json +1 -12
  400. package/view/sd-angular-core-view.d.ts +0 -2
  401. package/api/sd-angular-core-api.d.ts.__ivy_ngcc_bak +0 -4
  402. package/api/sd-angular-core-api.d.ts.map +0 -1
  403. package/autocomplete/sd-angular-core-autocomplete.d.ts.__ivy_ngcc_bak +0 -4
  404. package/autocomplete/sd-angular-core-autocomplete.d.ts.map +0 -1
  405. package/badge/sd-angular-core-badge.d.ts.__ivy_ngcc_bak +0 -4
  406. package/badge/sd-angular-core-badge.d.ts.map +0 -1
  407. package/bundles/sd-angular-core-api.umd.js.__ivy_ngcc_bak +0 -876
  408. package/bundles/sd-angular-core-api.umd.js.map.__ivy_ngcc_bak +0 -1
  409. package/bundles/sd-angular-core-autocomplete.umd.js.__ivy_ngcc_bak +0 -791
  410. package/bundles/sd-angular-core-autocomplete.umd.js.map.__ivy_ngcc_bak +0 -1
  411. package/bundles/sd-angular-core-badge.umd.js.__ivy_ngcc_bak +0 -89
  412. package/bundles/sd-angular-core-badge.umd.js.map.__ivy_ngcc_bak +0 -1
  413. package/bundles/sd-angular-core-button.umd.js.__ivy_ngcc_bak +0 -444
  414. package/bundles/sd-angular-core-button.umd.js.map.__ivy_ngcc_bak +0 -1
  415. package/bundles/sd-angular-core-cache.umd.js.__ivy_ngcc_bak +0 -623
  416. package/bundles/sd-angular-core-cache.umd.js.map.__ivy_ngcc_bak +0 -1
  417. package/bundles/sd-angular-core-chart.umd.js.__ivy_ngcc_bak +0 -1106
  418. package/bundles/sd-angular-core-chart.umd.js.map.__ivy_ngcc_bak +0 -1
  419. package/bundles/sd-angular-core-checkbox.umd.js.__ivy_ngcc_bak +0 -461
  420. package/bundles/sd-angular-core-checkbox.umd.js.map.__ivy_ngcc_bak +0 -1
  421. package/bundles/sd-angular-core-chip.umd.js.__ivy_ngcc_bak +0 -1051
  422. package/bundles/sd-angular-core-chip.umd.js.map.__ivy_ngcc_bak +0 -1
  423. package/bundles/sd-angular-core-comment.umd.js.__ivy_ngcc_bak +0 -456
  424. package/bundles/sd-angular-core-comment.umd.js.map.__ivy_ngcc_bak +0 -1
  425. package/bundles/sd-angular-core-common.umd.js.__ivy_ngcc_bak +0 -962
  426. package/bundles/sd-angular-core-common.umd.js.map.__ivy_ngcc_bak +0 -1
  427. package/bundles/sd-angular-core-confirm.umd.js.__ivy_ngcc_bak +0 -159
  428. package/bundles/sd-angular-core-confirm.umd.js.map.__ivy_ngcc_bak +0 -1
  429. package/bundles/sd-angular-core-date-month.umd.js.__ivy_ngcc_bak +0 -650
  430. package/bundles/sd-angular-core-date-month.umd.js.map.__ivy_ngcc_bak +0 -1
  431. package/bundles/sd-angular-core-date-range.umd.js.__ivy_ngcc_bak +0 -660
  432. package/bundles/sd-angular-core-date-range.umd.js.map.__ivy_ngcc_bak +0 -1
  433. package/bundles/sd-angular-core-date-time.umd.js.__ivy_ngcc_bak +0 -734
  434. package/bundles/sd-angular-core-date-time.umd.js.map.__ivy_ngcc_bak +0 -1
  435. package/bundles/sd-angular-core-db.umd.js.__ivy_ngcc_bak +0 -464
  436. package/bundles/sd-angular-core-db.umd.js.map.__ivy_ngcc_bak +0 -1
  437. package/bundles/sd-angular-core-dynamic-report.umd.js.__ivy_ngcc_bak +0 -96
  438. package/bundles/sd-angular-core-dynamic-report.umd.js.map.__ivy_ngcc_bak +0 -1
  439. package/bundles/sd-angular-core-editor.umd.js.__ivy_ngcc_bak +0 -888
  440. package/bundles/sd-angular-core-editor.umd.js.map.__ivy_ngcc_bak +0 -1
  441. package/bundles/sd-angular-core-excel.umd.js.__ivy_ngcc_bak +0 -500
  442. package/bundles/sd-angular-core-excel.umd.js.map.__ivy_ngcc_bak +0 -1
  443. package/bundles/sd-angular-core-export.umd.js.__ivy_ngcc_bak +0 -712
  444. package/bundles/sd-angular-core-export.umd.js.map.__ivy_ngcc_bak +0 -1
  445. package/bundles/sd-angular-core-form.umd.js.__ivy_ngcc_bak +0 -88
  446. package/bundles/sd-angular-core-form.umd.js.map.__ivy_ngcc_bak +0 -1
  447. package/bundles/sd-angular-core-grid-material.umd.js.__ivy_ngcc_bak +0 -5029
  448. package/bundles/sd-angular-core-grid-material.umd.js.map.__ivy_ngcc_bak +0 -1
  449. package/bundles/sd-angular-core-group.umd.js.__ivy_ngcc_bak +0 -93
  450. package/bundles/sd-angular-core-group.umd.js.map.__ivy_ngcc_bak +0 -1
  451. package/bundles/sd-angular-core-header-title.umd.js.__ivy_ngcc_bak +0 -56
  452. package/bundles/sd-angular-core-header-title.umd.js.map.__ivy_ngcc_bak +0 -1
  453. package/bundles/sd-angular-core-image-preview.umd.js.__ivy_ngcc_bak +0 -121
  454. package/bundles/sd-angular-core-image-preview.umd.js.map.__ivy_ngcc_bak +0 -1
  455. package/bundles/sd-angular-core-input-currency.umd.js.__ivy_ngcc_bak +0 -737
  456. package/bundles/sd-angular-core-input-currency.umd.js.map.__ivy_ngcc_bak +0 -1
  457. package/bundles/sd-angular-core-input-dropdown.umd.js.__ivy_ngcc_bak +0 -634
  458. package/bundles/sd-angular-core-input-dropdown.umd.js.map.__ivy_ngcc_bak +0 -1
  459. package/bundles/sd-angular-core-input-number.umd.js.__ivy_ngcc_bak +0 -792
  460. package/bundles/sd-angular-core-input-number.umd.js.map.__ivy_ngcc_bak +0 -1
  461. package/bundles/sd-angular-core-input-upload-file.umd.js.__ivy_ngcc_bak +0 -648
  462. package/bundles/sd-angular-core-input-upload-file.umd.js.map.__ivy_ngcc_bak +0 -1
  463. package/bundles/sd-angular-core-input.umd.js.__ivy_ngcc_bak +0 -798
  464. package/bundles/sd-angular-core-input.umd.js.map.__ivy_ngcc_bak +0 -1
  465. package/bundles/sd-angular-core-json-editor.umd.js.__ivy_ngcc_bak +0 -523
  466. package/bundles/sd-angular-core-json-editor.umd.js.map.__ivy_ngcc_bak +0 -1
  467. package/bundles/sd-angular-core-konva.umd.js.__ivy_ngcc_bak +0 -605
  468. package/bundles/sd-angular-core-konva.umd.js.map.__ivy_ngcc_bak +0 -1
  469. package/bundles/sd-angular-core-label.umd.js.__ivy_ngcc_bak +0 -60
  470. package/bundles/sd-angular-core-label.umd.js.map.__ivy_ngcc_bak +0 -1
  471. package/bundles/sd-angular-core-loading.umd.js.__ivy_ngcc_bak +0 -413
  472. package/bundles/sd-angular-core-loading.umd.js.map.__ivy_ngcc_bak +0 -1
  473. package/bundles/sd-angular-core-modal-resizable.umd.js.__ivy_ngcc_bak +0 -487
  474. package/bundles/sd-angular-core-modal-resizable.umd.js.map.__ivy_ngcc_bak +0 -1
  475. package/bundles/sd-angular-core-modal.umd.js.__ivy_ngcc_bak +0 -307
  476. package/bundles/sd-angular-core-modal.umd.js.map.__ivy_ngcc_bak +0 -1
  477. package/bundles/sd-angular-core-notify.umd.js.__ivy_ngcc_bak +0 -719
  478. package/bundles/sd-angular-core-notify.umd.js.map.__ivy_ngcc_bak +0 -1
  479. package/bundles/sd-angular-core-popover.umd.js.__ivy_ngcc_bak +0 -752
  480. package/bundles/sd-angular-core-popover.umd.js.map.__ivy_ngcc_bak +0 -1
  481. package/bundles/sd-angular-core-quick-action.umd.js.__ivy_ngcc_bak +0 -66
  482. package/bundles/sd-angular-core-quick-action.umd.js.map.__ivy_ngcc_bak +0 -1
  483. package/bundles/sd-angular-core-radio.umd.js.__ivy_ngcc_bak +0 -535
  484. package/bundles/sd-angular-core-radio.umd.js.map.__ivy_ngcc_bak +0 -1
  485. package/bundles/sd-angular-core-select-badge.umd.js.__ivy_ngcc_bak +0 -486
  486. package/bundles/sd-angular-core-select-badge.umd.js.map.__ivy_ngcc_bak +0 -1
  487. package/bundles/sd-angular-core-select-editor.umd.js.__ivy_ngcc_bak +0 -431
  488. package/bundles/sd-angular-core-select-editor.umd.js.map.__ivy_ngcc_bak +0 -1
  489. package/bundles/sd-angular-core-select.umd.js.__ivy_ngcc_bak +0 -921
  490. package/bundles/sd-angular-core-select.umd.js.map.__ivy_ngcc_bak +0 -1
  491. package/bundles/sd-angular-core-service.umd.js.__ivy_ngcc_bak +0 -42
  492. package/bundles/sd-angular-core-service.umd.js.map.__ivy_ngcc_bak +0 -1
  493. package/bundles/sd-angular-core-setting.umd.js.__ivy_ngcc_bak +0 -664
  494. package/bundles/sd-angular-core-setting.umd.js.map.__ivy_ngcc_bak +0 -1
  495. package/bundles/sd-angular-core-side-drawer.umd.js.__ivy_ngcc_bak +0 -438
  496. package/bundles/sd-angular-core-side-drawer.umd.js.map.__ivy_ngcc_bak +0 -1
  497. package/bundles/sd-angular-core-switch.umd.js.__ivy_ngcc_bak +0 -454
  498. package/bundles/sd-angular-core-switch.umd.js.map.__ivy_ngcc_bak +0 -1
  499. package/bundles/sd-angular-core-tab-router.umd.js.__ivy_ngcc_bak +0 -941
  500. package/bundles/sd-angular-core-tab-router.umd.js.map.__ivy_ngcc_bak +0 -1
  501. package/bundles/sd-angular-core-textarea.umd.js.__ivy_ngcc_bak +0 -642
  502. package/bundles/sd-angular-core-textarea.umd.js.map.__ivy_ngcc_bak +0 -1
  503. package/bundles/sd-angular-core-time.umd.js.__ivy_ngcc_bak +0 -497
  504. package/bundles/sd-angular-core-time.umd.js.map.__ivy_ngcc_bak +0 -1
  505. package/bundles/sd-angular-core-timeline.umd.js.__ivy_ngcc_bak +0 -102
  506. package/bundles/sd-angular-core-timeline.umd.js.map.__ivy_ngcc_bak +0 -1
  507. package/bundles/sd-angular-core-translate.umd.js.__ivy_ngcc_bak +0 -119
  508. package/bundles/sd-angular-core-translate.umd.js.map.__ivy_ngcc_bak +0 -1
  509. package/bundles/sd-angular-core-upload-excel.umd.js.__ivy_ngcc_bak +0 -1114
  510. package/bundles/sd-angular-core-upload-excel.umd.js.map.__ivy_ngcc_bak +0 -1
  511. package/bundles/sd-angular-core-upload-file.umd.js.__ivy_ngcc_bak +0 -880
  512. package/bundles/sd-angular-core-upload-file.umd.js.map.__ivy_ngcc_bak +0 -1
  513. package/bundles/sd-angular-core-utility.umd.js.__ivy_ngcc_bak +0 -708
  514. package/bundles/sd-angular-core-utility.umd.js.map.__ivy_ngcc_bak +0 -1
  515. package/bundles/sd-angular-core-view.umd.js.__ivy_ngcc_bak +0 -32
  516. package/bundles/sd-angular-core-view.umd.js.map.__ivy_ngcc_bak +0 -1
  517. package/button/sd-angular-core-button.d.ts.__ivy_ngcc_bak +0 -4
  518. package/button/sd-angular-core-button.d.ts.map +0 -1
  519. package/cache/sd-angular-core-cache.d.ts.__ivy_ngcc_bak +0 -4
  520. package/cache/sd-angular-core-cache.d.ts.map +0 -1
  521. package/chart/sd-angular-core-chart.d.ts.__ivy_ngcc_bak +0 -4
  522. package/chart/sd-angular-core-chart.d.ts.map +0 -1
  523. package/checkbox/sd-angular-core-checkbox.d.ts.__ivy_ngcc_bak +0 -5
  524. package/checkbox/sd-angular-core-checkbox.d.ts.map +0 -1
  525. package/chip/sd-angular-core-chip.d.ts.__ivy_ngcc_bak +0 -5
  526. package/chip/sd-angular-core-chip.d.ts.map +0 -1
  527. package/comment/sd-angular-core-comment.d.ts.__ivy_ngcc_bak +0 -4
  528. package/comment/sd-angular-core-comment.d.ts.map +0 -1
  529. package/common/sd-angular-core-common.d.ts.__ivy_ngcc_bak +0 -4
  530. package/common/sd-angular-core-common.d.ts.map +0 -1
  531. package/confirm/sd-angular-core-confirm.d.ts.__ivy_ngcc_bak +0 -4
  532. package/confirm/sd-angular-core-confirm.d.ts.map +0 -1
  533. package/date-month/sd-angular-core-date-month.d.ts.__ivy_ngcc_bak +0 -5
  534. package/date-month/sd-angular-core-date-month.d.ts.map +0 -1
  535. package/date-range/sd-angular-core-date-range.d.ts.__ivy_ngcc_bak +0 -4
  536. package/date-range/sd-angular-core-date-range.d.ts.map +0 -1
  537. package/date-time/sd-angular-core-date-time.d.ts.__ivy_ngcc_bak +0 -4
  538. package/date-time/sd-angular-core-date-time.d.ts.map +0 -1
  539. package/db/sd-angular-core-db.d.ts.__ivy_ngcc_bak +0 -4
  540. package/db/sd-angular-core-db.d.ts.map +0 -1
  541. package/dynamic-report/sd-angular-core-dynamic-report.d.ts.__ivy_ngcc_bak +0 -4
  542. package/dynamic-report/sd-angular-core-dynamic-report.d.ts.map +0 -1
  543. package/editor/sd-angular-core-editor.d.ts.__ivy_ngcc_bak +0 -4
  544. package/editor/sd-angular-core-editor.d.ts.map +0 -1
  545. package/esm2015/api/sd-angular-core-api.js.__ivy_ngcc_bak +0 -5
  546. package/esm2015/autocomplete/sd-angular-core-autocomplete.js.__ivy_ngcc_bak +0 -5
  547. package/esm2015/badge/sd-angular-core-badge.js.__ivy_ngcc_bak +0 -5
  548. package/esm2015/button/sd-angular-core-button.js.__ivy_ngcc_bak +0 -5
  549. package/esm2015/cache/sd-angular-core-cache.js.__ivy_ngcc_bak +0 -5
  550. package/esm2015/chart/sd-angular-core-chart.js.__ivy_ngcc_bak +0 -5
  551. package/esm2015/checkbox/sd-angular-core-checkbox.js.__ivy_ngcc_bak +0 -6
  552. package/esm2015/chip/sd-angular-core-chip.js.__ivy_ngcc_bak +0 -6
  553. package/esm2015/comment/sd-angular-core-comment.js.__ivy_ngcc_bak +0 -5
  554. package/esm2015/common/sd-angular-core-common.js.__ivy_ngcc_bak +0 -5
  555. package/esm2015/confirm/sd-angular-core-confirm.js.__ivy_ngcc_bak +0 -5
  556. package/esm2015/date-month/sd-angular-core-date-month.js.__ivy_ngcc_bak +0 -6
  557. package/esm2015/date-range/sd-angular-core-date-range.js.__ivy_ngcc_bak +0 -5
  558. package/esm2015/date-time/sd-angular-core-date-time.js.__ivy_ngcc_bak +0 -5
  559. package/esm2015/db/sd-angular-core-db.js.__ivy_ngcc_bak +0 -5
  560. package/esm2015/dynamic-report/sd-angular-core-dynamic-report.js.__ivy_ngcc_bak +0 -5
  561. package/esm2015/editor/sd-angular-core-editor.js.__ivy_ngcc_bak +0 -5
  562. package/esm2015/excel/sd-angular-core-excel.js.__ivy_ngcc_bak +0 -5
  563. package/esm2015/export/sd-angular-core-export.js.__ivy_ngcc_bak +0 -5
  564. package/esm2015/form/sd-angular-core-form.js.__ivy_ngcc_bak +0 -5
  565. package/esm2015/grid-material/sd-angular-core-grid-material.js.__ivy_ngcc_bak +0 -47
  566. package/esm2015/group/sd-angular-core-group.js.__ivy_ngcc_bak +0 -6
  567. package/esm2015/header-title/sd-angular-core-header-title.js.__ivy_ngcc_bak +0 -6
  568. package/esm2015/image-preview/sd-angular-core-image-preview.js.__ivy_ngcc_bak +0 -7
  569. package/esm2015/input/sd-angular-core-input.js.__ivy_ngcc_bak +0 -6
  570. package/esm2015/input-currency/sd-angular-core-input-currency.js.__ivy_ngcc_bak +0 -5
  571. package/esm2015/input-dropdown/sd-angular-core-input-dropdown.js.__ivy_ngcc_bak +0 -5
  572. package/esm2015/input-number/sd-angular-core-input-number.js.__ivy_ngcc_bak +0 -5
  573. package/esm2015/input-upload-file/sd-angular-core-input-upload-file.js.__ivy_ngcc_bak +0 -5
  574. package/esm2015/json-editor/sd-angular-core-json-editor.js.__ivy_ngcc_bak +0 -5
  575. package/esm2015/konva/sd-angular-core-konva.js.__ivy_ngcc_bak +0 -5
  576. package/esm2015/label/sd-angular-core-label.js.__ivy_ngcc_bak +0 -6
  577. package/esm2015/loading/sd-angular-core-loading.js.__ivy_ngcc_bak +0 -5
  578. package/esm2015/modal/sd-angular-core-modal.js.__ivy_ngcc_bak +0 -5
  579. package/esm2015/modal-resizable/sd-angular-core-modal-resizable.js.__ivy_ngcc_bak +0 -5
  580. package/esm2015/notify/sd-angular-core-notify.js.__ivy_ngcc_bak +0 -5
  581. package/esm2015/popover/sd-angular-core-popover.js.__ivy_ngcc_bak +0 -5
  582. package/esm2015/quick-action/sd-angular-core-quick-action.js.__ivy_ngcc_bak +0 -5
  583. package/esm2015/radio/sd-angular-core-radio.js.__ivy_ngcc_bak +0 -5
  584. package/esm2015/select/sd-angular-core-select.js.__ivy_ngcc_bak +0 -5
  585. package/esm2015/select-badge/sd-angular-core-select-badge.js.__ivy_ngcc_bak +0 -5
  586. package/esm2015/select-editor/sd-angular-core-select-editor.js.__ivy_ngcc_bak +0 -5
  587. package/esm2015/service/sd-angular-core-service.js.__ivy_ngcc_bak +0 -5
  588. package/esm2015/setting/sd-angular-core-setting.js.__ivy_ngcc_bak +0 -5
  589. package/esm2015/side-drawer/sd-angular-core-side-drawer.js.__ivy_ngcc_bak +0 -5
  590. package/esm2015/switch/sd-angular-core-switch.js.__ivy_ngcc_bak +0 -5
  591. package/esm2015/tab-router/sd-angular-core-tab-router.js.__ivy_ngcc_bak +0 -7
  592. package/esm2015/textarea/sd-angular-core-textarea.js.__ivy_ngcc_bak +0 -5
  593. package/esm2015/time/sd-angular-core-time.js.__ivy_ngcc_bak +0 -6
  594. package/esm2015/timeline/sd-angular-core-timeline.js.__ivy_ngcc_bak +0 -6
  595. package/esm2015/translate/sd-angular-core-translate.js.__ivy_ngcc_bak +0 -5
  596. package/esm2015/upload-excel/sd-angular-core-upload-excel.js.__ivy_ngcc_bak +0 -7
  597. package/esm2015/upload-file/sd-angular-core-upload-file.js.__ivy_ngcc_bak +0 -5
  598. package/esm2015/utility/sd-angular-core-utility.js.__ivy_ngcc_bak +0 -5
  599. package/esm2015/view/sd-angular-core-view.js.__ivy_ngcc_bak +0 -5
  600. package/excel/sd-angular-core-excel.d.ts.__ivy_ngcc_bak +0 -4
  601. package/excel/sd-angular-core-excel.d.ts.map +0 -1
  602. package/export/sd-angular-core-export.d.ts.__ivy_ngcc_bak +0 -4
  603. package/export/sd-angular-core-export.d.ts.map +0 -1
  604. package/fesm2015/sd-angular-core-api.js.__ivy_ngcc_bak +0 -496
  605. package/fesm2015/sd-angular-core-api.js.map.__ivy_ngcc_bak +0 -1
  606. package/fesm2015/sd-angular-core-autocomplete.js.__ivy_ngcc_bak +0 -427
  607. package/fesm2015/sd-angular-core-autocomplete.js.map.__ivy_ngcc_bak +0 -1
  608. package/fesm2015/sd-angular-core-badge.js.__ivy_ngcc_bak +0 -70
  609. package/fesm2015/sd-angular-core-badge.js.map.__ivy_ngcc_bak +0 -1
  610. package/fesm2015/sd-angular-core-button.js.__ivy_ngcc_bak +0 -115
  611. package/fesm2015/sd-angular-core-button.js.map.__ivy_ngcc_bak +0 -1
  612. package/fesm2015/sd-angular-core-cache.js.__ivy_ngcc_bak +0 -259
  613. package/fesm2015/sd-angular-core-cache.js.map.__ivy_ngcc_bak +0 -1
  614. package/fesm2015/sd-angular-core-chart.js.__ivy_ngcc_bak +0 -727
  615. package/fesm2015/sd-angular-core-chart.js.map.__ivy_ngcc_bak +0 -1
  616. package/fesm2015/sd-angular-core-checkbox.js.__ivy_ngcc_bak +0 -120
  617. package/fesm2015/sd-angular-core-checkbox.js.map.__ivy_ngcc_bak +0 -1
  618. package/fesm2015/sd-angular-core-chip.js.__ivy_ngcc_bak +0 -632
  619. package/fesm2015/sd-angular-core-chip.js.map.__ivy_ngcc_bak +0 -1
  620. package/fesm2015/sd-angular-core-comment.js.__ivy_ngcc_bak +0 -118
  621. package/fesm2015/sd-angular-core-comment.js.map.__ivy_ngcc_bak +0 -1
  622. package/fesm2015/sd-angular-core-common.js.__ivy_ngcc_bak +0 -562
  623. package/fesm2015/sd-angular-core-common.js.map.__ivy_ngcc_bak +0 -1
  624. package/fesm2015/sd-angular-core-confirm.js.__ivy_ngcc_bak +0 -154
  625. package/fesm2015/sd-angular-core-confirm.js.map.__ivy_ngcc_bak +0 -1
  626. package/fesm2015/sd-angular-core-date-month.js.__ivy_ngcc_bak +0 -289
  627. package/fesm2015/sd-angular-core-date-month.js.map.__ivy_ngcc_bak +0 -1
  628. package/fesm2015/sd-angular-core-date-range.js.__ivy_ngcc_bak +0 -297
  629. package/fesm2015/sd-angular-core-date-range.js.map.__ivy_ngcc_bak +0 -1
  630. package/fesm2015/sd-angular-core-date-time.js.__ivy_ngcc_bak +0 -367
  631. package/fesm2015/sd-angular-core-date-time.js.map.__ivy_ngcc_bak +0 -1
  632. package/fesm2015/sd-angular-core-db.js.__ivy_ngcc_bak +0 -91
  633. package/fesm2015/sd-angular-core-db.js.map.__ivy_ngcc_bak +0 -1
  634. package/fesm2015/sd-angular-core-dynamic-report.js.__ivy_ngcc_bak +0 -82
  635. package/fesm2015/sd-angular-core-dynamic-report.js.map.__ivy_ngcc_bak +0 -1
  636. package/fesm2015/sd-angular-core-editor.js.__ivy_ngcc_bak +0 -536
  637. package/fesm2015/sd-angular-core-editor.js.map.__ivy_ngcc_bak +0 -1
  638. package/fesm2015/sd-angular-core-excel.js.__ivy_ngcc_bak +0 -100
  639. package/fesm2015/sd-angular-core-excel.js.map.__ivy_ngcc_bak +0 -1
  640. package/fesm2015/sd-angular-core-export.js.__ivy_ngcc_bak +0 -272
  641. package/fesm2015/sd-angular-core-export.js.map.__ivy_ngcc_bak +0 -1
  642. package/fesm2015/sd-angular-core-form.js.__ivy_ngcc_bak +0 -104
  643. package/fesm2015/sd-angular-core-form.js.map.__ivy_ngcc_bak +0 -1
  644. package/fesm2015/sd-angular-core-grid-material.js.__ivy_ngcc_bak +0 -3740
  645. package/fesm2015/sd-angular-core-grid-material.js.map.__ivy_ngcc_bak +0 -1
  646. package/fesm2015/sd-angular-core-group.js.__ivy_ngcc_bak +0 -74
  647. package/fesm2015/sd-angular-core-group.js.map.__ivy_ngcc_bak +0 -1
  648. package/fesm2015/sd-angular-core-header-title.js.__ivy_ngcc_bak +0 -45
  649. package/fesm2015/sd-angular-core-header-title.js.map.__ivy_ngcc_bak +0 -1
  650. package/fesm2015/sd-angular-core-image-preview.js.__ivy_ngcc_bak +0 -107
  651. package/fesm2015/sd-angular-core-image-preview.js.map.__ivy_ngcc_bak +0 -1
  652. package/fesm2015/sd-angular-core-input-currency.js.__ivy_ngcc_bak +0 -330
  653. package/fesm2015/sd-angular-core-input-currency.js.map.__ivy_ngcc_bak +0 -1
  654. package/fesm2015/sd-angular-core-input-dropdown.js.__ivy_ngcc_bak +0 -268
  655. package/fesm2015/sd-angular-core-input-dropdown.js.map.__ivy_ngcc_bak +0 -1
  656. package/fesm2015/sd-angular-core-input-number.js.__ivy_ngcc_bak +0 -415
  657. package/fesm2015/sd-angular-core-input-number.js.map.__ivy_ngcc_bak +0 -1
  658. package/fesm2015/sd-angular-core-input-upload-file.js.__ivy_ngcc_bak +0 -274
  659. package/fesm2015/sd-angular-core-input-upload-file.js.map.__ivy_ngcc_bak +0 -1
  660. package/fesm2015/sd-angular-core-input.js.__ivy_ngcc_bak +0 -398
  661. package/fesm2015/sd-angular-core-input.js.map.__ivy_ngcc_bak +0 -1
  662. package/fesm2015/sd-angular-core-json-editor.js.__ivy_ngcc_bak +0 -180
  663. package/fesm2015/sd-angular-core-json-editor.js.map.__ivy_ngcc_bak +0 -1
  664. package/fesm2015/sd-angular-core-konva.js.__ivy_ngcc_bak +0 -237
  665. package/fesm2015/sd-angular-core-konva.js.map.__ivy_ngcc_bak +0 -1
  666. package/fesm2015/sd-angular-core-label.js.__ivy_ngcc_bak +0 -49
  667. package/fesm2015/sd-angular-core-label.js.map.__ivy_ngcc_bak +0 -1
  668. package/fesm2015/sd-angular-core-loading.js.__ivy_ngcc_bak +0 -83
  669. package/fesm2015/sd-angular-core-loading.js.map.__ivy_ngcc_bak +0 -1
  670. package/fesm2015/sd-angular-core-modal-resizable.js.__ivy_ngcc_bak +0 -161
  671. package/fesm2015/sd-angular-core-modal-resizable.js.map.__ivy_ngcc_bak +0 -1
  672. package/fesm2015/sd-angular-core-modal.js.__ivy_ngcc_bak +0 -284
  673. package/fesm2015/sd-angular-core-modal.js.map.__ivy_ngcc_bak +0 -1
  674. package/fesm2015/sd-angular-core-notify.js.__ivy_ngcc_bak +0 -402
  675. package/fesm2015/sd-angular-core-notify.js.map.__ivy_ngcc_bak +0 -1
  676. package/fesm2015/sd-angular-core-popover.js.__ivy_ngcc_bak +0 -415
  677. package/fesm2015/sd-angular-core-popover.js.map.__ivy_ngcc_bak +0 -1
  678. package/fesm2015/sd-angular-core-quick-action.js.__ivy_ngcc_bak +0 -53
  679. package/fesm2015/sd-angular-core-quick-action.js.map.__ivy_ngcc_bak +0 -1
  680. package/fesm2015/sd-angular-core-radio.js.__ivy_ngcc_bak +0 -188
  681. package/fesm2015/sd-angular-core-radio.js.map.__ivy_ngcc_bak +0 -1
  682. package/fesm2015/sd-angular-core-select-badge.js.__ivy_ngcc_bak +0 -156
  683. package/fesm2015/sd-angular-core-select-badge.js.map.__ivy_ngcc_bak +0 -1
  684. package/fesm2015/sd-angular-core-select-editor.js.__ivy_ngcc_bak +0 -110
  685. package/fesm2015/sd-angular-core-select-editor.js.map.__ivy_ngcc_bak +0 -1
  686. package/fesm2015/sd-angular-core-select.js.__ivy_ngcc_bak +0 -487
  687. package/fesm2015/sd-angular-core-select.js.map.__ivy_ngcc_bak +0 -1
  688. package/fesm2015/sd-angular-core-service.js.__ivy_ngcc_bak +0 -36
  689. package/fesm2015/sd-angular-core-service.js.map.__ivy_ngcc_bak +0 -1
  690. package/fesm2015/sd-angular-core-setting.js.__ivy_ngcc_bak +0 -290
  691. package/fesm2015/sd-angular-core-setting.js.map.__ivy_ngcc_bak +0 -1
  692. package/fesm2015/sd-angular-core-side-drawer.js.__ivy_ngcc_bak +0 -115
  693. package/fesm2015/sd-angular-core-side-drawer.js.map.__ivy_ngcc_bak +0 -1
  694. package/fesm2015/sd-angular-core-switch.js.__ivy_ngcc_bak +0 -116
  695. package/fesm2015/sd-angular-core-switch.js.map.__ivy_ngcc_bak +0 -1
  696. package/fesm2015/sd-angular-core-tab-router.js.__ivy_ngcc_bak +0 -531
  697. package/fesm2015/sd-angular-core-tab-router.js.map.__ivy_ngcc_bak +0 -1
  698. package/fesm2015/sd-angular-core-textarea.js.__ivy_ngcc_bak +0 -266
  699. package/fesm2015/sd-angular-core-textarea.js.map.__ivy_ngcc_bak +0 -1
  700. package/fesm2015/sd-angular-core-time.js.__ivy_ngcc_bak +0 -143
  701. package/fesm2015/sd-angular-core-time.js.map.__ivy_ngcc_bak +0 -1
  702. package/fesm2015/sd-angular-core-timeline.js.__ivy_ngcc_bak +0 -87
  703. package/fesm2015/sd-angular-core-timeline.js.map.__ivy_ngcc_bak +0 -1
  704. package/fesm2015/sd-angular-core-translate.js.__ivy_ngcc_bak +0 -101
  705. package/fesm2015/sd-angular-core-translate.js.map.__ivy_ngcc_bak +0 -1
  706. package/fesm2015/sd-angular-core-upload-excel.js.__ivy_ngcc_bak +0 -638
  707. package/fesm2015/sd-angular-core-upload-excel.js.map.__ivy_ngcc_bak +0 -1
  708. package/fesm2015/sd-angular-core-upload-file.js.__ivy_ngcc_bak +0 -462
  709. package/fesm2015/sd-angular-core-upload-file.js.map.__ivy_ngcc_bak +0 -1
  710. package/fesm2015/sd-angular-core-utility.js.__ivy_ngcc_bak +0 -364
  711. package/fesm2015/sd-angular-core-utility.js.map.__ivy_ngcc_bak +0 -1
  712. package/fesm2015/sd-angular-core-view.js.__ivy_ngcc_bak +0 -23
  713. package/fesm2015/sd-angular-core-view.js.map.__ivy_ngcc_bak +0 -1
  714. package/form/sd-angular-core-form.d.ts.__ivy_ngcc_bak +0 -4
  715. package/form/sd-angular-core-form.d.ts.map +0 -1
  716. package/grid-material/sd-angular-core-grid-material.d.ts.__ivy_ngcc_bak +0 -46
  717. package/grid-material/sd-angular-core-grid-material.d.ts.map +0 -1
  718. package/group/sd-angular-core-group.d.ts.__ivy_ngcc_bak +0 -5
  719. package/group/sd-angular-core-group.d.ts.map +0 -1
  720. package/header-title/sd-angular-core-header-title.d.ts.__ivy_ngcc_bak +0 -5
  721. package/header-title/sd-angular-core-header-title.d.ts.map +0 -1
  722. package/image-preview/sd-angular-core-image-preview.d.ts.__ivy_ngcc_bak +0 -6
  723. package/image-preview/sd-angular-core-image-preview.d.ts.map +0 -1
  724. package/input/sd-angular-core-input.d.ts.__ivy_ngcc_bak +0 -5
  725. package/input/sd-angular-core-input.d.ts.map +0 -1
  726. package/input-currency/sd-angular-core-input-currency.d.ts.__ivy_ngcc_bak +0 -4
  727. package/input-currency/sd-angular-core-input-currency.d.ts.map +0 -1
  728. package/input-dropdown/sd-angular-core-input-dropdown.d.ts.__ivy_ngcc_bak +0 -4
  729. package/input-dropdown/sd-angular-core-input-dropdown.d.ts.map +0 -1
  730. package/input-number/sd-angular-core-input-number.d.ts.__ivy_ngcc_bak +0 -4
  731. package/input-number/sd-angular-core-input-number.d.ts.map +0 -1
  732. package/input-upload-file/sd-angular-core-input-upload-file.d.ts.__ivy_ngcc_bak +0 -4
  733. package/input-upload-file/sd-angular-core-input-upload-file.d.ts.map +0 -1
  734. package/json-editor/sd-angular-core-json-editor.d.ts.__ivy_ngcc_bak +0 -4
  735. package/json-editor/sd-angular-core-json-editor.d.ts.map +0 -1
  736. package/konva/sd-angular-core-konva.d.ts.__ivy_ngcc_bak +0 -4
  737. package/konva/sd-angular-core-konva.d.ts.map +0 -1
  738. package/label/sd-angular-core-label.d.ts.__ivy_ngcc_bak +0 -5
  739. package/label/sd-angular-core-label.d.ts.map +0 -1
  740. package/loading/sd-angular-core-loading.d.ts.__ivy_ngcc_bak +0 -4
  741. package/loading/sd-angular-core-loading.d.ts.map +0 -1
  742. package/modal/sd-angular-core-modal.d.ts.__ivy_ngcc_bak +0 -4
  743. package/modal/sd-angular-core-modal.d.ts.map +0 -1
  744. package/modal-resizable/sd-angular-core-modal-resizable.d.ts.__ivy_ngcc_bak +0 -4
  745. package/modal-resizable/sd-angular-core-modal-resizable.d.ts.map +0 -1
  746. package/notify/sd-angular-core-notify.d.ts.__ivy_ngcc_bak +0 -4
  747. package/notify/sd-angular-core-notify.d.ts.map +0 -1
  748. package/popover/sd-angular-core-popover.d.ts.__ivy_ngcc_bak +0 -4
  749. package/popover/sd-angular-core-popover.d.ts.map +0 -1
  750. package/quick-action/sd-angular-core-quick-action.d.ts.__ivy_ngcc_bak +0 -4
  751. package/quick-action/sd-angular-core-quick-action.d.ts.map +0 -1
  752. package/radio/sd-angular-core-radio.d.ts.__ivy_ngcc_bak +0 -4
  753. package/radio/sd-angular-core-radio.d.ts.map +0 -1
  754. package/sd-angular-core-1.2.87.tgz +0 -0
  755. package/select/sd-angular-core-select.d.ts.__ivy_ngcc_bak +0 -4
  756. package/select/sd-angular-core-select.d.ts.map +0 -1
  757. package/select-badge/sd-angular-core-select-badge.d.ts.__ivy_ngcc_bak +0 -4
  758. package/select-badge/sd-angular-core-select-badge.d.ts.map +0 -1
  759. package/select-editor/sd-angular-core-select-editor.d.ts.__ivy_ngcc_bak +0 -4
  760. package/select-editor/sd-angular-core-select-editor.d.ts.map +0 -1
  761. package/service/sd-angular-core-service.d.ts.__ivy_ngcc_bak +0 -4
  762. package/service/sd-angular-core-service.d.ts.map +0 -1
  763. package/setting/sd-angular-core-setting.d.ts.__ivy_ngcc_bak +0 -4
  764. package/setting/sd-angular-core-setting.d.ts.map +0 -1
  765. package/side-drawer/sd-angular-core-side-drawer.d.ts.__ivy_ngcc_bak +0 -4
  766. package/side-drawer/sd-angular-core-side-drawer.d.ts.map +0 -1
  767. package/switch/sd-angular-core-switch.d.ts.__ivy_ngcc_bak +0 -4
  768. package/switch/sd-angular-core-switch.d.ts.map +0 -1
  769. package/tab-router/sd-angular-core-tab-router.d.ts.__ivy_ngcc_bak +0 -6
  770. package/tab-router/sd-angular-core-tab-router.d.ts.map +0 -1
  771. package/textarea/sd-angular-core-textarea.d.ts.__ivy_ngcc_bak +0 -4
  772. package/textarea/sd-angular-core-textarea.d.ts.map +0 -1
  773. package/time/sd-angular-core-time.d.ts.__ivy_ngcc_bak +0 -5
  774. package/time/sd-angular-core-time.d.ts.map +0 -1
  775. package/timeline/sd-angular-core-timeline.d.ts.__ivy_ngcc_bak +0 -5
  776. package/timeline/sd-angular-core-timeline.d.ts.map +0 -1
  777. package/translate/sd-angular-core-translate.d.ts.__ivy_ngcc_bak +0 -4
  778. package/translate/sd-angular-core-translate.d.ts.map +0 -1
  779. package/upload-excel/sd-angular-core-upload-excel.d.ts.__ivy_ngcc_bak +0 -6
  780. package/upload-excel/sd-angular-core-upload-excel.d.ts.map +0 -1
  781. package/upload-file/sd-angular-core-upload-file.d.ts.__ivy_ngcc_bak +0 -4
  782. package/upload-file/sd-angular-core-upload-file.d.ts.map +0 -1
  783. package/utility/sd-angular-core-utility.d.ts.__ivy_ngcc_bak +0 -4
  784. package/utility/sd-angular-core-utility.d.ts.map +0 -1
  785. package/view/sd-angular-core-view.d.ts.__ivy_ngcc_bak +0 -4
  786. package/view/sd-angular-core-view.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- var _name, _subscription, _model, _form, _updateValidator, _initUploadImage, _uploadImage, _uploadFile;
1
+ var _name, _subscription, _model, _form, _updateValidator, _initUploadImage;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, Inject, Input, NgZone, Optional, Output, ViewChild } from '@angular/core';
4
4
  import * as uuid from 'uuid';
@@ -96,34 +96,6 @@ export class SdEditor {
96
96
  this.customButtonFileSVG = '<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><g><rect fill="none" height="24" width="24"/><path d="M20.41,8.41l-4.83-4.83C15.21,3.21,14.7,3,14.17,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V9.83 C21,9.3,20.79,8.79,20.41,8.41z M7,7h7v2H7V7z M17,17H7v-2h10V17z M17,13H7v-2h10V13z"/></g></svg>';
97
97
  this.sdChange = new EventEmitter();
98
98
  this.timerLoadQuillToolbar = null;
99
- this.customFileHandler = (e) => {
100
- const customButton = e.currentTarget;
101
- const quillToolbar = customButton.closest('.ql-formats').closest('.ql-toolbar');
102
- const quillBox = quillToolbar.closest('.ql-formats');
103
- let fileInput = quillToolbar.querySelector('input.ql-customFile[type=file]');
104
- if (fileInput == null) {
105
- fileInput = document.createElement('input');
106
- fileInput.setAttribute('type', Constants.FILE);
107
- fileInput.setAttribute('accept', '*');
108
- fileInput.classList.add('ql-customFile');
109
- fileInput.addEventListener('change', () => {
110
- const files = fileInput.files;
111
- if (!files || !files.length) {
112
- return;
113
- }
114
- const formData = new FormData();
115
- formData.append(Constants.FILE, files[0]);
116
- let range = localStorage.getItem('quillRange');
117
- if (range) {
118
- range = JSON.parse(range);
119
- }
120
- this.quillEvent.enable(false);
121
- __classPrivateFieldGet(this, _uploadFile).call(this, formData, this.quillEvent, range, fileInput, quillToolbar.closest('quill-editor').id);
122
- });
123
- quillToolbar.appendChild(fileInput);
124
- }
125
- fileInput.click();
126
- };
127
99
  _updateValidator.set(this, () => {
128
100
  this.formControl.clearValidators();
129
101
  this.formControl.clearAsyncValidators();
@@ -162,30 +134,31 @@ export class SdEditor {
162
134
  // // this.formControl.setValue(html);
163
135
  // });
164
136
  const self = this;
165
- this.ngZone.runOutsideAngular(() => {
166
- quill.getModule('toolbar').addHandler('image', function () {
167
- let fileInput = this.container.querySelector('input.ql-image[type=file]');
168
- if (fileInput == null) {
169
- fileInput = document.createElement('input');
170
- fileInput.setAttribute('type', Constants.FILE);
171
- fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');
172
- fileInput.classList.add('ql-image');
173
- fileInput.addEventListener('change', () => {
174
- const files = fileInput.files;
175
- const range = this.quill.getSelection(true);
176
- if (!files || !files.length) {
177
- return;
178
- }
179
- const formData = new FormData();
180
- formData.append(Constants.FILE, files[0]);
181
- this.quill.enable(false);
182
- __classPrivateFieldGet(self, _uploadImage).call(self, formData, quill, range, fileInput);
183
- });
184
- this.container.appendChild(fileInput);
185
- }
186
- fileInput.click();
187
- });
188
- });
137
+ __classPrivateFieldGet(this, _initUploadImage).call(this, quill);
138
+ // this.ngZone.runOutsideAngular(() => {
139
+ // quill.getModule('toolbar').addHandler('image', function () {
140
+ // let fileInput = this.container.querySelector('input.ql-image[type=file]');
141
+ // if (fileInput == null) {
142
+ // fileInput = document.createElement('input');
143
+ // fileInput.setAttribute('type', Constants.FILE);
144
+ // fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');
145
+ // fileInput.classList.add('ql-image');
146
+ // fileInput.addEventListener('change', () => {
147
+ // const files = fileInput.files;
148
+ // const range = this.quill.getSelection(true);
149
+ // if (!files || !files.length) {
150
+ // return;
151
+ // }
152
+ // const formData = new FormData();
153
+ // formData.append(Constants.FILE, files[0]);
154
+ // this.quill.enable(false);
155
+ // self.#uploadImage(formData, quill, range, fileInput);
156
+ // });
157
+ // this.container.appendChild(fileInput);
158
+ // }
159
+ // fileInput.click();
160
+ // });
161
+ // });
189
162
  this.ref.markForCheck();
190
163
  };
191
164
  _initUploadImage.set(this, (quill) => {
@@ -199,6 +172,7 @@ export class SdEditor {
199
172
  fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');
200
173
  fileInput.classList.add('ql-image');
201
174
  fileInput.addEventListener('change', () => {
175
+ var _a;
202
176
  const files = fileInput.files;
203
177
  const range = this.quill.getSelection(true);
204
178
  if (!files || !files.length) {
@@ -207,7 +181,20 @@ export class SdEditor {
207
181
  const formData = new FormData();
208
182
  formData.append(Constants.FILE, files[0]);
209
183
  this.quill.enable(false);
210
- __classPrivateFieldGet(self, _uploadImage).call(self, formData, quill, range, fileInput);
184
+ // self.#uploadImage(formData, quill, range, fileInput);
185
+ (_a = self.configuration) === null || _a === void 0 ? void 0 : _a.uploadImage(formData, self.args).then(url => {
186
+ self.ngZone.runOutsideAngular(() => {
187
+ quill.enable(true);
188
+ // quill.editor.insertEmbed(range.index, 'image', resp?.data?.imageUrl || resp?.data?.publish_url || resp?.url || '');
189
+ quill.getModule('clipboard').dangerouslyPasteHTML(range.index, '<a target="_blank" href="' + (url || '')
190
+ + '"><img src="' + (url || '') + '" alt="c-image-editor-quill"></a>', 'user');
191
+ // quill.insertText();
192
+ const content = quill.getContents();
193
+ quill.setContents(content);
194
+ quill.setSelection(range.index + 1, 'user');
195
+ fileInput.value = '';
196
+ });
197
+ });
211
198
  });
212
199
  this.container.appendChild(fileInput);
213
200
  }
@@ -224,52 +211,6 @@ export class SdEditor {
224
211
  this.showHtmlEditor = !this.showHtmlEditor;
225
212
  this.ref.markForCheck();
226
213
  };
227
- _uploadImage.set(this, (formData, quill, range, fileInput) => {
228
- if (!this.urlUploadImage) {
229
- this.urlUploadImage = '/partner/v2/merchandise/file/uploaduserfile';
230
- }
231
- // this.domain = 'https://api-commerce-qc.vinid.dev';
232
- this.sdApiService.post(this.urlUploadImage, formData).then((resp) => {
233
- this.ngZone.runOutsideAngular(() => {
234
- var _a, _b, _c, _d;
235
- quill.enable(true);
236
- // quill.editor.insertEmbed(range.index, 'image', resp?.data?.imageUrl || resp?.data?.publish_url || resp?.url || '');
237
- quill.getModule('clipboard').dangerouslyPasteHTML(range.index, '<a target="_blank" href="' + (((_a = resp === null || resp === void 0 ? void 0 : resp.data) === null || _a === void 0 ? void 0 : _a.imageUrl) || ((_b = resp === null || resp === void 0 ? void 0 : resp.data) === null || _b === void 0 ? void 0 : _b.publish_url) || (resp === null || resp === void 0 ? void 0 : resp.url) || '')
238
- + '"><img src="' + (((_c = resp === null || resp === void 0 ? void 0 : resp.data) === null || _c === void 0 ? void 0 : _c.imageUrl) || ((_d = resp === null || resp === void 0 ? void 0 : resp.data) === null || _d === void 0 ? void 0 : _d.publish_url) || (resp === null || resp === void 0 ? void 0 : resp.url) || '') + '" alt="c-image-editor-quill"></a>', 'user');
239
- // quill.insertText();
240
- const content = quill.getContents();
241
- quill.setContents(content);
242
- quill.setSelection(range.index + 1, 'user');
243
- fileInput.value = '';
244
- });
245
- });
246
- this.ref.markForCheck();
247
- });
248
- _uploadFile.set(this, (formData, quill, range, fileInput, loadingID) => {
249
- if (!this.urlUploadFile) {
250
- this.urlUploadFile = '/partner/v2/merchandise/file/uploaduserfile';
251
- }
252
- // this.domain = 'https://api-commerce-qc.vinid.dev';
253
- this.loadingService.start('#box-' + loadingID);
254
- this.sdApiService.post(this.urlUploadFile, formData).then((resp) => {
255
- this.ngZone.runOutsideAngular(() => {
256
- var _a, _b, _c, _d;
257
- quill.enable(true);
258
- // quill.editor.insertEmbed(range.index, 'image', resp?.data?.imageUrl || resp?.data?.publish_url || resp?.url || '');
259
- quill.getModule('clipboard').dangerouslyPasteHTML(range.index, '<a target="_blank" href="' + (((_a = resp === null || resp === void 0 ? void 0 : resp.data) === null || _a === void 0 ? void 0 : _a.imageUrl) || ((_b = resp === null || resp === void 0 ? void 0 : resp.data) === null || _b === void 0 ? void 0 : _b.publish_url) || (resp === null || resp === void 0 ? void 0 : resp.url) || '')
260
- + '">' + (((_c = resp === null || resp === void 0 ? void 0 : resp.data) === null || _c === void 0 ? void 0 : _c.imageUrl) || ((_d = resp === null || resp === void 0 ? void 0 : resp.data) === null || _d === void 0 ? void 0 : _d.publish_url) || (resp === null || resp === void 0 ? void 0 : resp.url) || '') + '</a>', 'user');
261
- // quill.insertText();
262
- const content = quill.getContents();
263
- quill.setContents(content);
264
- quill.setSelection(range.index + 1, 'user');
265
- fileInput.value = '';
266
- });
267
- this.loadingService.stop('#box-' + loadingID);
268
- }).catch((er) => {
269
- this.loadingService.stop('#box-' + loadingID);
270
- });
271
- this.ref.markForCheck();
272
- });
273
214
  }
274
215
  set model(val) {
275
216
  __classPrivateFieldSet(this, _model, val);
@@ -311,26 +252,76 @@ export class SdEditor {
311
252
  }
312
253
  }
313
254
  ngOnInit() {
314
- var _a;
255
+ var _a, _b;
315
256
  (_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.addControl(__classPrivateFieldGet(this, _name), this.formControl);
316
257
  if (this.toolbar) {
317
258
  this.quillConfig.toolbar.container = this.toolbar;
318
259
  }
319
- if (this.quillConfig.toolbar.container.toString().includes('customFile')) {
320
- this.timerLoadQuillToolbar = setInterval(() => {
321
- if (document.querySelector('button.ql-customFile')) {
322
- clearInterval(this.timerLoadQuillToolbar);
323
- document.querySelector('button.ql-customFile').innerHTML = this.customButtonFileSVG;
324
- const customButton = document.querySelector('button.ql-customFile');
325
- if (customButton.getAttribute('listener') !== '1') {
326
- customButton.setAttribute('listener', '1');
327
- customButton.addEventListener('click', this.customFileHandler);
260
+ for (const action of (((_b = this.configuration) === null || _b === void 0 ? void 0 : _b.actions) || [])) {
261
+ if (this.quillConfig.toolbar.container.toString().includes(action.key)) {
262
+ const qlKey = `button.ql-${action.key}`;
263
+ const interval = setInterval(() => {
264
+ if (document.querySelector(qlKey)) {
265
+ clearInterval(interval);
266
+ document.querySelector(qlKey).innerHTML = this.customButtonFileSVG;
267
+ const customButton = document.querySelector(qlKey);
268
+ if (customButton.getAttribute('listener') !== '1') {
269
+ customButton.setAttribute('listener', '1');
270
+ customButton.addEventListener('click', (e) => {
271
+ const cursorPosition = localStorage.getItem('quillRange');
272
+ action.click(e, {
273
+ cursorPosition: JSON.parse(cursorPosition),
274
+ args: this.args
275
+ });
276
+ });
277
+ }
328
278
  }
329
- }
330
- }, 1000);
279
+ }, 1000);
280
+ }
331
281
  }
282
+ // if (this.quillConfig.toolbar.container.toString().includes('customFile')) {
283
+ // this.timerLoadQuillToolbar = setInterval(() => {
284
+ // if (document.querySelector('button.ql-customFile')) {
285
+ // clearInterval(this.timerLoadQuillToolbar);
286
+ // document.querySelector('button.ql-customFile').innerHTML = this.customButtonFileSVG;
287
+ // const customButton = document.querySelector('button.ql-customFile');
288
+ // if (customButton.getAttribute('listener') !== '1') {
289
+ // customButton.setAttribute('listener', '1');
290
+ // customButton.addEventListener('click', this.customFileHandler);
291
+ // }
292
+ // }
293
+ // }, 1000);
294
+ // }
332
295
  this.ref.markForCheck();
333
296
  }
297
+ // customFileHandler = (e) => {
298
+ // const customButton = e.currentTarget;
299
+ // const quillToolbar = customButton.closest('.ql-formats').closest('.ql-toolbar');
300
+ // const quillBox = quillToolbar.closest('.ql-formats')
301
+ // let fileInput: HTMLInputElement = quillToolbar.querySelector('input.ql-customFile[type=file]');
302
+ // if (fileInput == null) {
303
+ // fileInput = document.createElement('input');
304
+ // fileInput.setAttribute('type', Constants.FILE);
305
+ // fileInput.setAttribute('accept', '*');
306
+ // fileInput.classList.add('ql-customFile');
307
+ // fileInput.addEventListener('change', () => {
308
+ // const files = fileInput.files;
309
+ // if (!files || !files.length) {
310
+ // return;
311
+ // }
312
+ // const formData = new FormData();
313
+ // formData.append(Constants.FILE, files[0]);
314
+ // let range = localStorage.getItem('quillRange');
315
+ // if (range) {
316
+ // range = JSON.parse(range);
317
+ // }
318
+ // this.quillEvent.enable(false);
319
+ // this.#uploadFile(formData, this.quillEvent, range, fileInput, quillToolbar.closest('quill-editor').id);
320
+ // });
321
+ // quillToolbar.appendChild(fileInput);
322
+ // }
323
+ // fileInput.click();
324
+ // }
334
325
  ngAfterViewInit() {
335
326
  __classPrivateFieldGet(this, _subscription).add(this.formControl.valueChanges.subscribe((val) => {
336
327
  this.modelChange.emit(val);
@@ -342,6 +333,50 @@ export class SdEditor {
342
333
  (_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.removeControl(__classPrivateFieldGet(this, _name));
343
334
  __classPrivateFieldGet(this, _subscription).unsubscribe();
344
335
  }
336
+ // #uploadImage = (formData, quill, range, fileInput) => {
337
+ // if (!this.urlUploadImage) {
338
+ // this.urlUploadImage = '/partner/v2/merchandise/file/uploaduserfile';
339
+ // }
340
+ // // this.domain = 'https://api-commerce-qc.vinid.dev';
341
+ // this.sdApiService.post(this.urlUploadImage, formData).then((resp: any) => {
342
+ // this.ngZone.runOutsideAngular(() => {
343
+ // quill.enable(true);
344
+ // // quill.editor.insertEmbed(range.index, 'image', resp?.data?.imageUrl || resp?.data?.publish_url || resp?.url || '');
345
+ // quill.getModule('clipboard').dangerouslyPasteHTML(range.index, '<a target="_blank" href="' + (resp?.data?.imageUrl || resp?.data?.publish_url || resp?.url || '')
346
+ // + '"><img src="' + (resp?.data?.imageUrl || resp?.data?.publish_url || resp?.url || '') + '" alt="c-image-editor-quill"></a>', 'user');
347
+ // // quill.insertText();
348
+ // const content = quill.getContents();
349
+ // quill.setContents(content);
350
+ // quill.setSelection(range.index + 1, 'user');
351
+ // fileInput.value = '';
352
+ // });
353
+ // });
354
+ // this.ref.markForCheck();
355
+ // }
356
+ // #uploadFile = (formData, quill, range, fileInput, loadingID) => {
357
+ // if (!this.urlUploadFile) {
358
+ // this.urlUploadFile = '/partner/v2/merchandise/file/uploaduserfile';
359
+ // }
360
+ // // this.domain = 'https://api-commerce-qc.vinid.dev';
361
+ // this.loadingService.start('#box-' + loadingID);
362
+ // this.sdApiService.post(this.urlUploadFile, formData).then((resp: any) => {
363
+ // this.ngZone.runOutsideAngular(() => {
364
+ // quill.enable(true);
365
+ // // quill.editor.insertEmbed(range.index, 'image', resp?.data?.imageUrl || resp?.data?.publish_url || resp?.url || '');
366
+ // quill.getModule('clipboard').dangerouslyPasteHTML(range.index, '<a target="_blank" href="' + (resp?.data?.imageUrl || resp?.data?.publish_url || resp?.url || '')
367
+ // + '">' + (resp?.data?.imageUrl || resp?.data?.publish_url || resp?.url || '') + '</a>', 'user');
368
+ // // quill.insertText();
369
+ // const content = quill.getContents();
370
+ // quill.setContents(content);
371
+ // quill.setSelection(range.index + 1, 'user');
372
+ // fileInput.value = '';
373
+ // });
374
+ // this.loadingService.stop('#box-' + loadingID);
375
+ // }).catch((er) => {
376
+ // this.loadingService.stop('#box-' + loadingID);
377
+ // });
378
+ // this.ref.markForCheck();
379
+ // }
345
380
  onSelectionChanged(e) {
346
381
  // localStorage.setItem('quillRange', e.range ? JSON.stringify(e.range) : (e.oldRange ? JSON.stringify(e.oldRange) : null));
347
382
  localStorage.setItem('quillRange', e.editor.getSelection() ? JSON.stringify(e.editor.getSelection()) : null);
@@ -353,7 +388,7 @@ export class SdEditor {
353
388
  }));
354
389
  }
355
390
  }
356
- _name = new WeakMap(), _subscription = new WeakMap(), _model = new WeakMap(), _form = new WeakMap(), _updateValidator = new WeakMap(), _initUploadImage = new WeakMap(), _uploadImage = new WeakMap(), _uploadFile = new WeakMap();
391
+ _name = new WeakMap(), _subscription = new WeakMap(), _model = new WeakMap(), _form = new WeakMap(), _updateValidator = new WeakMap(), _initUploadImage = new WeakMap();
357
392
  SdEditor.decorators = [
358
393
  { type: Component, args: [{
359
394
  selector: 'sd-editor',
@@ -382,8 +417,6 @@ SdEditor.propDecorators = {
382
417
  styles: [{ type: Input }],
383
418
  args: [{ type: Input }],
384
419
  domain: [{ type: Input }],
385
- urlUploadImage: [{ type: Input }],
386
- urlUploadFile: [{ type: Input }],
387
420
  form: [{ type: Input }],
388
421
  toolbar: [{ type: Input }],
389
422
  enableHTMLButton: [{ type: Input }],
@@ -392,4 +425,4 @@ SdEditor.propDecorators = {
392
425
  sdLabelDef: [{ type: ContentChild, args: [SdLabelDefDirective,] }],
393
426
  sdChange: [{ type: Output }]
394
427
  };
395
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZWRpdG9yLyIsInNvdXJjZXMiOlsic3JjL2xpYi9lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLFdBQVcsRUFBYSxNQUFNLEVBQWUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBU3JFLE1BQU0sT0FBTyxRQUFRO0lBcUpuQixZQUNVLE1BQWMsRUFDZCxHQUFzQixFQUN0QixZQUEwQixFQUMxQixjQUFnQyxFQUNHLGFBQW1DO1FBSnRFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxH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QyxRQUFRO29CQUNsQixLQUFLO29CQUVMLEtBQUs7dUJBU0wsS0FBSzt3QkFXTCxLQUFLO3lCQU9MLEtBQUssU0FBQyxXQUFXO3lCQU9qQixLQUFLLFNBQUMsV0FBVzswQkFLakIsTUFBTTswQkFFTixLQUFLO3FCQUVMLEtBQUs7bUJBRUwsS0FBSztxQkFJTCxLQUFLOzZCQUNMLEtBQUs7NEJBQ0wsS0FBSzttQkFFTCxLQUFLO3NCQVVMLEtBQUs7K0JBQ0wsS0FBSzs0QkFLTCxLQUFLOzRCQUNMLEtBQUs7eUJBQ0wsWUFBWSxTQUFDLG1CQUFtQjt1QkFvRWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb250ZW50Q2hhbmdlLCBRdWlsbEVkaXRvckNvbXBvbmVudCwgU2VsZWN0aW9uQ2hhbmdlfSBmcm9tICduZ3gtcXVpbGwnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtDb25zdGFudHN9IGZyb20gJy4vY29uc3RhbnQnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7U2RBcGlTZXJ2aWNlfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2FwaSc7XHJcbmltcG9ydCAncXVpbGwtbWVudGlvbic7XHJcbmltcG9ydCB7U2RMYWJlbERlZkRpcmVjdGl2ZX0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQge1NkTG9hZGluZ1NlcnZpY2V9IGZyb20gXCJAc2QtYW5ndWxhci9jb3JlL2xvYWRpbmdcIjtcclxuaW1wb3J0IHsgRURJVE9SX0NPTkZJRywgSUVkaXRvckNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2VkaXRvci5tb2RlbCc7XHJcbmltcG9ydCBRdWlsbCBmcm9tICdxdWlsbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkRWRpdG9yIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICNuYW1lID0gYE4ke3V1aWQudjQoKX1gO1xyXG4gIGlkOiBzdHJpbmcgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAVmlld0NoaWxkKCdlZGl0b3InKSBlZGl0b3I6IFF1aWxsRWRpdG9yQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgI21vZGVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLiNtb2RlbCA9IHZhbDtcclxuICAgIHRoaXMubW9kZWxIVE1MID0gdmFsO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLiNtb2RlbCwge1xyXG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHBSZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5yZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIG1pbmxlbmd0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoJ21pbmxlbmd0aCcpIHNldCBfbWlubGVuZ3RoKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1pbmxlbmd0aCA9ICt2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIG1heGxlbmd0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoJ21heGxlbmd0aCcpIHNldCBfbWF4bGVuZ3RoKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1heGxlbmd0aCA9ICt2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHN0eWxlczogYW55ID0ge2hlaWdodDogJzI1MHB4J307XHJcblxyXG4gIEBJbnB1dCgpIGFyZ3M6IGFueTtcclxuXHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuXHJcbiAgQElucHV0KCkgZG9tYWluID0gJyc7XHJcbiAgQElucHV0KCkgdXJsVXBsb2FkSW1hZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSB1cmxVcGxvYWRGaWxlOiBzdHJpbmc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHRvb2xiYXI6IGFueTtcclxuICBASW5wdXQoKSBlbmFibGVIVE1MQnV0dG9uID0gZmFsc2U7XHJcbiAgc2hvd0h0bWxFZGl0b3IgPSBmYWxzZTtcclxuICBtb2RlbEhUTUw6IHN0cmluZztcclxuXHJcbiAgcXVpbGxFdmVudDogYW55O1xyXG4gIEBJbnB1dCgpIG1lbnRpb25WYWx1ZXM6IHsgaWQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgbGluaz86IHN0cmluZyB9W107XHJcbiAgQElucHV0KCkgaGFzaFRhZ1ZhbHVlczogeyBpZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBsaW5rPzogc3RyaW5nIH1bXTtcclxuICBAQ29udGVudENoaWxkKFNkTGFiZWxEZWZEaXJlY3RpdmUpIHNkTGFiZWxEZWY6IFNkTGFiZWxEZWZEaXJlY3RpdmU7XHJcbiAgcXVpbGxDb25maWcgPSB7XHJcbiAgICAvLyB0b29sYmFyOiAnLnRvb2xiYXInLFxyXG4gICAgdG9vbGJhcjoge1xyXG4gICAgICBjb250YWluZXI6IFtcclxuICAgICAgICBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdzdHJpa2UnXSwgICAgICAgIC8vIHRvZ2dsZWQgYnV0dG9uc1xyXG4gICAgICAgIFsnYmxvY2txdW90ZScsICdjb2RlLWJsb2NrJ10sXHJcblxyXG4gICAgICAgIFt7J2hlYWRlcic6IDF9LCB7J2hlYWRlcic6IDJ9XSwgICAgICAgICAgICAgICAvLyBjdXN0b20gYnV0dG9uIHZhbHVlc1xyXG4gICAgICAgIFt7J2xpc3QnOiAnb3JkZXJlZCd9LCB7J2xpc3QnOiAnYnVsbGV0J31dLFxyXG4gICAgICAgIFt7J3NjcmlwdCc6ICdzdWInfSwgeydzY3JpcHQnOiAnc3VwZXInfV0sICAgICAgLy8gc3VwZXJzY3JpcHQvc3Vic2NyaXB0XHJcbiAgICAgICAgW3snaW5kZW50JzogJy0xJ30sIHsnaW5kZW50JzogJysxJ31dLCAgICAgICAgICAvLyBvdXRkZW50L2luZGVudFxyXG4gICAgICAgIFt7J2RpcmVjdGlvbic6ICdydGwnfV0sICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRleHQgZGlyZWN0aW9uXHJcblxyXG4gICAgICAgIFt7J3NpemUnOiBbJ3NtYWxsJywgZmFsc2UsICdsYXJnZScsICdodWdlJ119XSwgIC8vIGN1c3RvbSBkcm9wZG93blxyXG4gICAgICAgIFt7J2hlYWRlcic6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV19XSxcclxuXHJcbiAgICAgICAgW3snY29sb3InOiBbXX0sIHsnYmFja2dyb3VuZCc6IFtdfV0sICAgICAgICAgIC8vIGRyb3Bkb3duIHdpdGggZGVmYXVsdHMgZnJvbSB0aGVtZVxyXG4gICAgICAgIFt7J2ZvbnQnOiBbXX1dLFxyXG4gICAgICAgIFt7J2FsaWduJzogW119XSxcclxuXHJcbiAgICAgICAgWydjbGVhbiddLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGZvcm1hdHRpbmcgYnV0dG9uXHJcblxyXG4gICAgICAgIFsnbGluaycsICdpbWFnZScsICd2aWRlbyddICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxpbmsgYW5kIGltYWdlLCB2aWRlb1xyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAgbWVudGlvbjoge1xyXG4gICAgICBhbGxvd2VkQ2hhcnM6IC9eW0EtWmEtejAtOVxcc8OFw4TDlsOlw6TDti5fLV0qJC8sXHJcbiAgICAgIG1lbnRpb25EZW5vdGF0aW9uQ2hhcnM6IFsnQCcsICcjJ10sXHJcbiAgICAgIHNvdXJjZTogKHNlYXJjaFRlcm0sIHJlbmRlckxpc3QsIG1lbnRpb25DaGFyKSA9PiB7XHJcbiAgICAgICAgaWYgKCh0aGlzLm1lbnRpb25WYWx1ZXMgJiYgbWVudGlvbkNoYXIgPT09ICdAJykgfHwgKHRoaXMuaGFzaFRhZ1ZhbHVlcyAmJiBtZW50aW9uQ2hhciA9PT0gJyMnKSkge1xyXG4gICAgICAgICAgbGV0IHZhbHVlcztcclxuICAgICAgICAgIGlmIChtZW50aW9uQ2hhciA9PT0gJ0AnKSB7XHJcbiAgICAgICAgICAgIHZhbHVlcyA9IHRoaXMubWVudGlvblZhbHVlcztcclxuICAgICAgICAgIH0gZWxzZSBpZiAobWVudGlvbkNoYXIgPT09ICcjJykge1xyXG4gICAgICAgICAgICB2YWx1ZXMgPSB0aGlzLmhhc2hUYWdWYWx1ZXM7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZXMgPSBbXTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoc2VhcmNoVGVybS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmVuZGVyTGlzdCh2YWx1ZXMsIHNlYXJjaFRlcm0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IFtdO1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICAgICAgICAgICAgaWYgKH52YWx1ZXNbaV0udmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaCh2YWx1ZXNbaV0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZW5kZXJMaXN0KG1hdGNoZXMsIHNlYXJjaFRlcm0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBrZXlib2FyZDoge1xyXG4gICAgICBiaW5kaW5nczoge1xyXG4gICAgICAgIGVudGVyOiB7XHJcbiAgICAgICAgICBrZXk6IDEzLFxyXG4gICAgICAgICAgaGFuZGxlcjogKHJhbmdlLCBjb250ZXh0KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcbiAgY3VzdG9tQnV0dG9uRmlsZVNWRyA9ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBlbmFibGUtYmFja2dyb3VuZD1cIm5ldyAwIDAgMjQgMjRcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRweFwiIGZpbGw9XCIjMDAwMDAwXCI+PGc+PHJlY3QgZmlsbD1cIm5vbmVcIiBoZWlnaHQ9XCIyNFwiIHdpZHRoPVwiMjRcIi8+PHBhdGggZD1cIk0yMC40MSw4LjQxbC00LjgzLTQuODNDMTUuMjEsMy4yMSwxNC43LDMsMTQuMTcsM0g1QzMuOSwzLDMsMy45LDMsNXYxNGMwLDEuMSwwLjksMiwyLDJoMTRjMS4xLDAsMi0wLjksMi0yVjkuODMgQzIxLDkuMywyMC43OSw4Ljc5LDIwLjQxLDguNDF6IE03LDdoN3YySDdWN3ogTTE3LDE3SDd2LTJoMTBWMTd6IE0xNywxM0g3di0yaDEwVjEzelwiLz48L2c+PC9zdmc+JztcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICB0aW1lckxvYWRRdWlsbFRvb2xiYXIgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHNkQXBpU2VydmljZTogU2RBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2FkaW5nU2VydmljZTogU2RMb2FkaW5nU2VydmljZSxcclxuICAgIEBJbmplY3QoRURJVE9SX0NPTkZJRykgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWd1cmF0aW9uOiBJRWRpdG9yQ29uZmlndXJhdGlvbixcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcblxyXG4gICAgaWYgKHRoaXMudG9vbGJhcikge1xyXG4gICAgICB0aGlzLnF1aWxsQ29uZmlnLnRvb2xiYXIuY29udGFpbmVyID0gdGhpcy50b29sYmFyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucXVpbGxDb25maWcudG9vbGJhci5jb250YWluZXIudG9TdHJpbmcoKS5pbmNsdWRlcygnY3VzdG9tRmlsZScpKSB7XHJcbiAgICAgIHRoaXMudGltZXJMb2FkUXVpbGxUb29sYmFyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b24ucWwtY3VzdG9tRmlsZScpKSB7XHJcbiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXJMb2FkUXVpbGxUb29sYmFyKTtcclxuICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi5xbC1jdXN0b21GaWxlJykuaW5uZXJIVE1MID0gdGhpcy5jdXN0b21CdXR0b25GaWxlU1ZHO1xyXG4gICAgICAgICAgY29uc3QgY3VzdG9tQnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uLnFsLWN1c3RvbUZpbGUnKTtcclxuICAgICAgICAgIGlmIChjdXN0b21CdXR0b24uZ2V0QXR0cmlidXRlKCdsaXN0ZW5lcicpICE9PSAnMScpIHtcclxuICAgICAgICAgICAgY3VzdG9tQnV0dG9uLnNldEF0dHJpYnV0ZSgnbGlzdGVuZXInLCAnMScpO1xyXG4gICAgICAgICAgICBjdXN0b21CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmN1c3RvbUZpbGVIYW5kbGVyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgY3VzdG9tRmlsZUhhbmRsZXIgPSAoZSkgPT4ge1xyXG4gICAgY29uc3QgY3VzdG9tQnV0dG9uID0gZS5jdXJyZW50VGFyZ2V0O1xyXG4gICAgY29uc3QgcXVpbGxUb29sYmFyID0gY3VzdG9tQnV0dG9uLmNsb3Nlc3QoJy5xbC1mb3JtYXRzJykuY2xvc2VzdCgnLnFsLXRvb2xiYXInKTtcclxuICAgIGNvbnN0IHF1aWxsQm94ID0gcXVpbGxUb29sYmFyLmNsb3Nlc3QoJy5xbC1mb3JtYXRzJylcclxuICAgIGxldCBmaWxlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBxdWlsbFRvb2xiYXIucXVlcnlTZWxlY3RvcignaW5wdXQucWwtY3VzdG9tRmlsZVt0eXBlPWZpbGVdJyk7XHJcbiAgICBpZiAoZmlsZUlucHV0ID09IG51bGwpIHtcclxuICAgICAgZmlsZUlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgICAgZmlsZUlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsIENvbnN0YW50cy5GSUxFKTtcclxuICAgICAgZmlsZUlucHV0LnNldEF0dHJpYnV0ZSgnYWNjZXB0JywgJyonKTtcclxuICAgICAgZmlsZUlucHV0LmNsYXNzTGlzdC5hZGQoJ3FsLWN1c3RvbUZpbGUnKTtcclxuICAgICAgZmlsZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHtcclxuICAgICAgICBjb25zdCBmaWxlcyA9IGZpbGVJbnB1dC5maWxlcztcclxuICAgICAgICBpZiAoIWZpbGVzIHx8ICFmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKENvbnN0YW50cy5GSUxFLCBmaWxlc1swXSk7XHJcblxyXG4gICAgICAgIGxldCByYW5nZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdxdWlsbFJhbmdlJyk7XHJcbiAgICAgICAgaWYgKHJhbmdlKSB7XHJcbiAgICAgICAgICByYW5nZSA9IEpTT04ucGFyc2UocmFuZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnF1aWxsRXZlbnQuZW5hYmxlKGZhbHNlKTtcclxuICAgICAgICB0aGlzLiN1cGxvYWRGaWxlKGZvcm1EYXRhLCB0aGlzLnF1aWxsRXZlbnQsIHJhbmdlLCBmaWxlSW5wdXQsIHF1aWxsVG9vbGJhci5jbG9zZXN0KCdxdWlsbC1lZGl0b3InKS5pZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBxdWlsbFRvb2xiYXIuYXBwZW5kQ2hpbGQoZmlsZUlucHV0KTtcclxuICAgIH1cclxuICAgIGZpbGVJbnB1dC5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gICN1cGRhdGVWYWxpZGF0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhckFzeW5jVmFsaWRhdG9ycygpO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubWlubGVuZ3RoID4gMCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5taW5sZW5ndGgpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1heGxlbmd0aCA+IDApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4bGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgZWRpdG9ySW5pdCA9IChxdWlsbCkgPT4ge1xyXG4gICAgdGhpcy5xdWlsbEV2ZW50ID0gcXVpbGw7XHJcbiAgICAvLyBjb25zdCB0eHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgIC8vIHR4dEFyZWEuc3R5bGUuY3NzVGV4dCA9XHJcbiAgICAvLyAgICd3aWR0aDogMTAwJTttYXJnaW46IDBweDtiYWNrZ3JvdW5kOiByZ2IoMjksIDI5LCAyOSk7JyArXHJcbiAgICAvLyAgICdib3gtc2l6aW5nOiBib3JkZXItYm94O2NvbG9yOiByZ2IoMjA0LCAyMDQsIDIwNCk7JyArXHJcbiAgICAvLyAgICdmb250LXNpemU6IDE1cHg7b3V0bGluZTogbm9uZTtwYWRkaW5nOiAyMHB4OycgK1xyXG4gICAgLy8gICAnbGluZS1oZWlnaHQ6IDI0cHg7Zm9udC1mYW1pbHk6IENvbnNvbGFzLCBNZW5sbywgTW9uYWNvLCAmcXVvdDtDb3VyaWVyIE5ldyZxdW90OywgbW9ub3NwYWNlOycgK1xyXG4gICAgLy8gICAncG9zaXRpb246IGFic29sdXRlO3RvcDogMDtib3R0b206IDA7Ym9yZGVyOiBub25lO2Rpc3BsYXk6bm9uZSc7XHJcblxyXG4gICAgLy8gY29uc3QgaHRtbEVkaXRvciA9IHF1aWxsLmFkZENvbnRhaW5lcigncWwtY3VzdG9tJyk7XHJcbiAgICAvLyBodG1sRWRpdG9yLmFwcGVuZENoaWxkKHR4dEFyZWEpO1xyXG5cclxuICAgIC8vIGNvbnN0IG15RWRpdG9yID0gcXVpbGwuY29udGFpbmVyO1xyXG4gICAgLy8gcXVpbGwub24oJ3RleHQtY2hhbmdlJywgKGRlbHRhLCBvbGREZWx0YSwgc291cmNlKSA9PiB7XHJcbiAgICAvLyAgIGNvbnN0IGh0bWwgPSBteUVkaXRvci5jaGlsZHJlblswXS5pbm5lckhUTUw7XHJcbiAgICAvLyAgIHR4dEFyZWEudmFsdWUgPSBodG1sO1xyXG4gICAgLy8gICAvLyBpZiAocXVpbGwuZ2V0TGVuZ3RoKCkgPiB0aGlzLm1heGxlbmd0aCkge1xyXG4gICAgLy8gICAvLyAgIHF1aWxsLmRlbGV0ZVRleHQodGhpcy5tYXhsZW5ndGgsIHF1aWxsLmdldExlbmd0aCgpKTtcclxuICAgIC8vICAgLy8gfVxyXG4gICAgLy8gICAvLyB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGh0bWwpO1xyXG4gICAgLy8gfSk7XHJcbiAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgcXVpbGwuZ2V0TW9kdWxlKCd0b29sYmFyJykuYWRkSGFuZGxlcignaW1hZ2UnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbGV0IGZpbGVJbnB1dCA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0LnFsLWltYWdlW3R5cGU9ZmlsZV0nKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVJbnB1dCA9PSBudWxsKSB7XHJcbiAgICAgICAgICBmaWxlSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgICAgICAgZmlsZUlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsIENvbnN0YW50cy5GSUxFKTtcclxuICAgICAgICAgIGZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsICdpbWFnZS9wbmcsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgaW1hZ2UvYm1wLCBpbWFnZS94LWljb24nKTtcclxuICAgICAgICAgIGZpbGVJbnB1dC5jbGFzc0xpc3QuYWRkKCdxbC1pbWFnZScpO1xyXG4gICAgICAgICAgZmlsZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBmaWxlSW5wdXQuZmlsZXM7XHJcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24odHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmICghZmlsZXMgfHwgIWZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKENvbnN0YW50cy5GSUxFLCBmaWxlc1swXSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnF1aWxsLmVuYWJsZShmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICBzZWxmLiN1cGxvYWRJbWFnZShmb3JtRGF0YSwgcXVpbGwsIHJhbmdlLCBmaWxlSW5wdXQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChmaWxlSW5wdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaWxlSW5wdXQuY2xpY2soKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gICNpbml0VXBsb2FkSW1hZ2UgPSAocXVpbGw6IFF1aWxsKSA9PiB7XHJcbiAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgcXVpbGwuZ2V0TW9kdWxlKCd0b29sYmFyJykuYWRkSGFuZGxlcignaW1hZ2UnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbGV0IGZpbGVJbnB1dCA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0LnFsLWltYWdlW3R5cGU9ZmlsZV0nKTtcclxuICAgICAgICBpZiAoZmlsZUlucHV0ID09IG51bGwpIHtcclxuICAgICAgICAgIGZpbGVJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICAgICAgICBmaWxlSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgQ29uc3RhbnRzLkZJTEUpO1xyXG4gICAgICAgICAgZmlsZUlucHV0LnNldEF0dHJpYnV0ZSgnYWNjZXB0JywgJ2ltYWdlL3BuZywgaW1hZ2UvZ2lmLCBpbWFnZS9qcGVnLCBpbWFnZS9ibXAsIGltYWdlL3gtaWNvbicpO1xyXG4gICAgICAgICAgZmlsZUlucHV0LmNsYXNzTGlzdC5hZGQoJ3FsLWltYWdlJyk7XHJcbiAgICAgICAgICBmaWxlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlcyA9IGZpbGVJbnB1dC5maWxlcztcclxuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbih0cnVlKTtcclxuICAgICAgICAgICAgaWYgKCFmaWxlcyB8fCAhZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoQ29uc3RhbnRzLkZJTEUsIGZpbGVzWzBdKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucXVpbGwuZW5hYmxlKGZhbHNlKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHNlbGYuI3VwbG9hZEltYWdlKGZvcm1EYXRhLCBxdWlsbCwgcmFuZ2UsIGZpbGVJbnB1dCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKGZpbGVJbnB1dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbGVJbnB1dC5jbGljaygpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uTW9kZWxDaGFuZ2UgPSAodmFsOiBzdHJpbmcpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsKTtcclxuICAgIHRoaXMubW9kZWxIVE1MID0gdmFsO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrU2hvd0h0bWxFZGl0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnNob3dIdG1sRWRpdG9yID0gIXRoaXMuc2hvd0h0bWxFZGl0b3I7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gICN1cGxvYWRJbWFnZSA9IChmb3JtRGF0YSwgcXVpbGwsIHJhbmdlLCBmaWxlSW5wdXQpID0+IHtcclxuICAgIGlmICghdGhpcy51cmxVcGxvYWRJbWFnZSkge1xyXG4gICAgICB0aGlzLnVybFVwbG9hZEltYWdlID0gJy9wYXJ0bmVyL3YyL21lcmNoYW5kaXNlL2ZpbGUvdXBsb2FkdXNlcmZpbGUnO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5kb21haW4gPSAnaHR0cHM6Ly9hcGktY29tbWVyY2UtcWMudmluaWQuZGV2JztcclxuICAgIHRoaXMuc2RBcGlTZXJ2aWNlLnBvc3QodGhpcy51cmxVcGxvYWRJbWFnZSwgZm9ybURhdGEpLnRoZW4oKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgcXVpbGwuZW5hYmxlKHRydWUpO1xyXG4gICAgICAgIC8vIHF1aWxsLmVkaXRvci5pbnNlcnRFbWJlZChyYW5nZS5pbmRleCwgJ2ltYWdlJywgcmVzcD8uZGF0YT8uaW1hZ2VVcmwgfHwgcmVzcD8uZGF0YT8ucHVibGlzaF91cmwgfHwgcmVzcD8udXJsIHx8ICcnKTtcclxuICAgICAgICBxdWlsbC5nZXRNb2R1bGUoJ2NsaXBib2FyZCcpLmRhbmdlcm91c2x5UGFzdGVIVE1MKHJhbmdlLmluZGV4LCAnPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIicgKyAocmVzcD8uZGF0YT8uaW1hZ2VVcmwgfHwgcmVzcD8uZGF0YT8ucHVibGlzaF91cmwgfHwgcmVzcD8udXJsIHx8ICcnKVxyXG4gICAgICAgICAgKyAnXCI+PGltZyBzcmM9XCInICsgKHJlc3A/LmRhdGE/LmltYWdlVXJsIHx8IHJlc3A/LmRhdGE/LnB1Ymxpc2hfdXJsIHx8IHJlc3A/LnVybCB8fCAnJykgKyAnXCIgYWx0PVwiYy1pbWFnZS1lZGl0b3ItcXVpbGxcIj48L2E+JywgJ3VzZXInKTtcclxuICAgICAgICAvLyBxdWlsbC5pbnNlcnRUZXh0KCk7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHF1aWxsLmdldENvbnRlbnRzKCk7XHJcbiAgICAgICAgcXVpbGwuc2V0Q29udGVudHMoY29udGVudCk7XHJcbiAgICAgICAgcXVpbGwuc2V0U2VsZWN0aW9uKHJhbmdlLmluZGV4ICsgMSwgJ3VzZXInKTtcclxuICAgICAgICBmaWxlSW5wdXQudmFsdWUgPSAnJztcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgI3VwbG9hZEZpbGUgPSAoZm9ybURhdGEsIHF1aWxsLCByYW5nZSwgZmlsZUlucHV0LCBsb2FkaW5nSUQpID0+IHtcclxuICAgIGlmICghdGhpcy51cmxVcGxvYWRGaWxlKSB7XHJcbiAgICAgIHRoaXMudXJsVXBsb2FkRmlsZSA9ICcvcGFydG5lci92Mi9tZXJjaGFuZGlzZS9maWxlL3VwbG9hZHVzZXJmaWxlJztcclxuICAgIH1cclxuICAgIC8vIHRoaXMuZG9tYWluID0gJ2h0dHBzOi8vYXBpLWNvbW1lcmNlLXFjLnZpbmlkLmRldic7XHJcbiAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnN0YXJ0KCcjYm94LScgKyBsb2FkaW5nSUQpO1xyXG4gICAgdGhpcy5zZEFwaVNlcnZpY2UucG9zdCh0aGlzLnVybFVwbG9hZEZpbGUsIGZvcm1EYXRhKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgIHF1aWxsLmVuYWJsZSh0cnVlKTtcclxuICAgICAgICAvLyBxdWlsbC5lZGl0b3IuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIHJlc3A/LmRhdGE/LmltYWdlVXJsIHx8IHJlc3A/LmRhdGE/LnB1Ymxpc2hfdXJsIHx8IHJlc3A/LnVybCB8fCAnJyk7XHJcbiAgICAgICAgcXVpbGwuZ2V0TW9kdWxlKCdjbGlwYm9hcmQnKS5kYW5nZXJvdXNseVBhc3RlSFRNTChyYW5nZS5pbmRleCwgJzxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCInICsgKHJlc3A/LmRhdGE/LmltYWdlVXJsIHx8IHJlc3A/LmRhdGE/LnB1Ymxpc2hfdXJsIHx8IHJlc3A/LnVybCB8fCAnJylcclxuICAgICAgICAgICsgJ1wiPicgKyAocmVzcD8uZGF0YT8uaW1hZ2VVcmwgfHwgcmVzcD8uZGF0YT8ucHVibGlzaF91cmwgfHwgcmVzcD8udXJsIHx8ICcnKSArICc8L2E+JywgJ3VzZXInKTtcclxuICAgICAgICAvLyBxdWlsbC5pbnNlcnRUZXh0KCk7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHF1aWxsLmdldENvbnRlbnRzKCk7XHJcbiAgICAgICAgcXVpbGwuc2V0Q29udGVudHMoY29udGVudCk7XHJcbiAgICAgICAgcXVpbGwuc2V0U2VsZWN0aW9uKHJhbmdlLmluZGV4ICsgMSwgJ3VzZXInKTtcclxuICAgICAgICBmaWxlSW5wdXQudmFsdWUgPSAnJztcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2Uuc3RvcCgnI2JveC0nICsgbG9hZGluZ0lEKTtcclxuICAgIH0pLmNhdGNoKChlcikgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnN0b3AoJyNib3gtJyArIGxvYWRpbmdJRCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2VkKGU6IFNlbGVjdGlvbkNoYW5nZSkge1xyXG4gICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3F1aWxsUmFuZ2UnLCBlLnJhbmdlID8gSlNPTi5zdHJpbmdpZnkoZS5yYW5nZSkgOiAoZS5vbGRSYW5nZSA/IEpTT04uc3RyaW5naWZ5KGUub2xkUmFuZ2UpIDogbnVsbCkpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3F1aWxsUmFuZ2UnLCBlLmVkaXRvci5nZXRTZWxlY3Rpb24oKSA/IEpTT04uc3RyaW5naWZ5KGUuZWRpdG9yLmdldFNlbGVjdGlvbigpKSA6IG51bGwpO1xyXG4gIH1cclxuXHJcbiAgb25Db250ZW50Q2hhbmdlZChlOiBDb250ZW50Q2hhbmdlKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncXVpbGxSYW5nZScsIEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgaW5kZXg6IChlLmVkaXRvci5nZXRMZW5ndGgoKSA/IGUuZWRpdG9yLmdldExlbmd0aCgpIC0gMSA6IDApLFxyXG4gICAgICBsZW5ndGg6IDBcclxuICAgIH0pKTtcclxuICB9XHJcbn1cclxuIl19
428
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZWRpdG9yLyIsInNvdXJjZXMiOlsic3JjL2xpYi9lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBU3JFLE1BQU0sT0FBTyxRQUFRO0lBa0puQixZQUNVLE1BQWMsRUFDZCxHQUFzQixFQUN0QixZQUEwQixFQUMxQixjQUFnQyxFQUNHLGFBQW1DO1FBSnRFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxH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QUFRLEVBQUUsV0FBVztnQkFDckIsNGtFQUFzQztnQkFFdEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUF4QkMsTUFBTTtZQU5OLGlCQUFpQjtZQWtCVixZQUFZO1lBR1osZ0JBQWdCOzRDQWlLcEIsTUFBTSxTQUFDLGFBQWEsY0FBRyxRQUFROzs7cUJBbkpqQyxTQUFTLFNBQUMsUUFBUTtvQkFDbEIsS0FBSztvQkFFTCxLQUFLO3VCQVNMLEtBQUs7d0JBV0wsS0FBSzt5QkFPTCxLQUFLLFNBQUMsV0FBVzt5QkFPakIsS0FBSyxTQUFDLFdBQVc7MEJBS2pCLE1BQU07MEJBRU4sS0FBSztxQkFFTCxLQUFLO21CQUVMLEtBQUs7cUJBSUwsS0FBSzttQkFFTCxLQUFLO3NCQVVMLEtBQUs7K0JBQ0wsS0FBSzs0QkFLTCxLQUFLOzRCQUNMLEtBQUs7eUJBQ0wsWUFBWSxTQUFDLG1CQUFtQjt1QkFvRWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udGVudENoYW5nZSwgUXVpbGxFZGl0b3JDb21wb25lbnQsIFNlbGVjdGlvbkNoYW5nZSB9IGZyb20gJ25neC1xdWlsbCc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4vY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RBcGlTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9hcGknO1xyXG5pbXBvcnQgJ3F1aWxsLW1lbnRpb24nO1xyXG5pbXBvcnQgeyBTZExhYmVsRGVmRGlyZWN0aXZlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTZExvYWRpbmdTZXJ2aWNlIH0gZnJvbSBcIkBzZC1hbmd1bGFyL2NvcmUvbG9hZGluZ1wiO1xyXG5pbXBvcnQgeyBFRElUT1JfQ09ORklHLCBJRWRpdG9yQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vZWRpdG9yLm1vZGVsJztcclxuaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RFZGl0b3IgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgI25hbWUgPSBgTiR7dXVpZC52NCgpfWA7XHJcbiAgaWQ6IHN0cmluZyA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicpIGVkaXRvcjogUXVpbGxFZGl0b3JDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICAjbW9kZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuI21vZGVsID0gdmFsO1xyXG4gICAgdGhpcy5tb2RlbEhUTUwgPSB2YWw7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuI21vZGVsLCB7XHJcbiAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXF1aXJlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzZXQgcFJlcXVpcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLnJlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgbWlubGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgnbWlubGVuZ3RoJykgc2V0IF9taW5sZW5ndGgodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMubWlubGVuZ3RoID0gK3ZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgbWF4bGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgnbWF4bGVuZ3RoJykgc2V0IF9tYXhsZW5ndGgodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMubWF4bGVuZ3RoID0gK3ZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgc3R5bGVzOiBhbnkgPSB7IGhlaWdodDogJzI1MHB4JyB9O1xyXG5cclxuICBASW5wdXQoKSBhcmdzOiBhbnk7XHJcblxyXG4gIGZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gIEBJbnB1dCgpIGRvbWFpbiA9ICcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSB0b29sYmFyOiBhbnk7XHJcbiAgQElucHV0KCkgZW5hYmxlSFRNTEJ1dHRvbiA9IGZhbHNlO1xyXG4gIHNob3dIdG1sRWRpdG9yID0gZmFsc2U7XHJcbiAgbW9kZWxIVE1MOiBzdHJpbmc7XHJcblxyXG4gIHF1aWxsRXZlbnQ6IGFueTtcclxuICBASW5wdXQoKSBtZW50aW9uVmFsdWVzOiB7IGlkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGxpbms/OiBzdHJpbmcgfVtdO1xyXG4gIEBJbnB1dCgpIGhhc2hUYWdWYWx1ZXM6IHsgaWQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgbGluaz86IHN0cmluZyB9W107XHJcbiAgQENvbnRlbnRDaGlsZChTZExhYmVsRGVmRGlyZWN0aXZlKSBzZExhYmVsRGVmOiBTZExhYmVsRGVmRGlyZWN0aXZlO1xyXG4gIHF1aWxsQ29uZmlnID0ge1xyXG4gICAgLy8gdG9vbGJhcjogJy50b29sYmFyJyxcclxuICAgIHRvb2xiYXI6IHtcclxuICAgICAgY29udGFpbmVyOiBbXHJcbiAgICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnLCAnc3RyaWtlJ10sICAgICAgICAvLyB0b2dnbGVkIGJ1dHRvbnNcclxuICAgICAgICBbJ2Jsb2NrcXVvdGUnLCAnY29kZS1ibG9jayddLFxyXG5cclxuICAgICAgICBbeyAnaGVhZGVyJzogMSB9LCB7ICdoZWFkZXInOiAyIH1dLCAgICAgICAgICAgICAgIC8vIGN1c3RvbSBidXR0b24gdmFsdWVzXHJcbiAgICAgICAgW3sgJ2xpc3QnOiAnb3JkZXJlZCcgfSwgeyAnbGlzdCc6ICdidWxsZXQnIH1dLFxyXG4gICAgICAgIFt7ICdzY3JpcHQnOiAnc3ViJyB9LCB7ICdzY3JpcHQnOiAnc3VwZXInIH1dLCAgICAgIC8vIHN1cGVyc2NyaXB0L3N1YnNjcmlwdFxyXG4gICAgICAgIFt7ICdpbmRlbnQnOiAnLTEnIH0sIHsgJ2luZGVudCc6ICcrMScgfV0sICAgICAgICAgIC8vIG91dGRlbnQvaW5kZW50XHJcbiAgICAgICAgW3sgJ2RpcmVjdGlvbic6ICdydGwnIH1dLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0ZXh0IGRpcmVjdGlvblxyXG5cclxuICAgICAgICBbeyAnc2l6ZSc6IFsnc21hbGwnLCBmYWxzZSwgJ2xhcmdlJywgJ2h1Z2UnXSB9XSwgIC8vIGN1c3RvbSBkcm9wZG93blxyXG4gICAgICAgIFt7ICdoZWFkZXInOiBbMSwgMiwgMywgNCwgNSwgNiwgZmFsc2VdIH1dLFxyXG5cclxuICAgICAgICBbeyAnY29sb3InOiBbXSB9LCB7ICdiYWNrZ3JvdW5kJzogW10gfV0sICAgICAgICAgIC8vIGRyb3Bkb3duIHdpdGggZGVmYXVsdHMgZnJvbSB0aGVtZVxyXG4gICAgICAgIFt7ICdmb250JzogW10gfV0sXHJcbiAgICAgICAgW3sgJ2FsaWduJzogW10gfV0sXHJcblxyXG4gICAgICAgIFsnY2xlYW4nXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBmb3JtYXR0aW5nIGJ1dHRvblxyXG5cclxuICAgICAgICBbJ2xpbmsnLCAnaW1hZ2UnLCAndmlkZW8nXSAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsaW5rIGFuZCBpbWFnZSwgdmlkZW9cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIG1lbnRpb246IHtcclxuICAgICAgYWxsb3dlZENoYXJzOiAvXltBLVphLXowLTlcXHPDhcOEw5bDpcOkw7YuXy1dKiQvLFxyXG4gICAgICBtZW50aW9uRGVub3RhdGlvbkNoYXJzOiBbJ0AnLCAnIyddLFxyXG4gICAgICBzb3VyY2U6IChzZWFyY2hUZXJtLCByZW5kZXJMaXN0LCBtZW50aW9uQ2hhcikgPT4ge1xyXG4gICAgICAgIGlmICgodGhpcy5tZW50aW9uVmFsdWVzICYmIG1lbnRpb25DaGFyID09PSAnQCcpIHx8ICh0aGlzLmhhc2hUYWdWYWx1ZXMgJiYgbWVudGlvbkNoYXIgPT09ICcjJykpIHtcclxuICAgICAgICAgIGxldCB2YWx1ZXM7XHJcbiAgICAgICAgICBpZiAobWVudGlvbkNoYXIgPT09ICdAJykge1xyXG4gICAgICAgICAgICB2YWx1ZXMgPSB0aGlzLm1lbnRpb25WYWx1ZXM7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKG1lbnRpb25DaGFyID09PSAnIycpIHtcclxuICAgICAgICAgICAgdmFsdWVzID0gdGhpcy5oYXNoVGFnVmFsdWVzO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsdWVzID0gW107XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJlbmRlckxpc3QodmFsdWVzLCBzZWFyY2hUZXJtKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBbXTtcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICAgICAgICAgIGlmICh+dmFsdWVzW2ldLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2godmFsdWVzW2ldKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAga2V5Ym9hcmQ6IHtcclxuICAgICAgYmluZGluZ3M6IHtcclxuICAgICAgICBlbnRlcjoge1xyXG4gICAgICAgICAga2V5OiAxMyxcclxuICAgICAgICAgIGhhbmRsZXI6IChyYW5nZSwgY29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGN1c3RvbUJ1dHRvbkZpbGVTVkcgPSAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZW5hYmxlLWJhY2tncm91bmQ9XCJuZXcgMCAwIDI0IDI0XCIgaGVpZ2h0PVwiMjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0cHhcIiBmaWxsPVwiIzAwMDAwMFwiPjxnPjxyZWN0IGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiMjRcIiB3aWR0aD1cIjI0XCIvPjxwYXRoIGQ9XCJNMjAuNDEsOC40MWwtNC44My00LjgzQzE1LjIxLDMuMjEsMTQuNywzLDE0LjE3LDNINUMzLjksMywzLDMuOSwzLDV2MTRjMCwxLjEsMC45LDIsMiwyaDE0YzEuMSwwLDItMC45LDItMlY5LjgzIEMyMSw5LjMsMjAuNzksOC43OSwyMC40MSw4LjQxeiBNNyw3aDd2Mkg3Vjd6IE0xNywxN0g3di0yaDEwVjE3eiBNMTcsMTNIN3YtMmgxMFYxM3pcIi8+PC9nPjwvc3ZnPic7XHJcbiAgQE91dHB1dCgpIHNkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgdGltZXJMb2FkUXVpbGxUb29sYmFyID0gbnVsbDtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHNkQXBpU2VydmljZTogU2RBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2FkaW5nU2VydmljZTogU2RMb2FkaW5nU2VydmljZSxcclxuICAgIEBJbmplY3QoRURJVE9SX0NPTkZJRykgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWd1cmF0aW9uOiBJRWRpdG9yQ29uZmlndXJhdGlvbixcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcblxyXG4gICAgaWYgKHRoaXMudG9vbGJhcikge1xyXG4gICAgICB0aGlzLnF1aWxsQ29uZmlnLnRvb2xiYXIuY29udGFpbmVyID0gdGhpcy50b29sYmFyO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgYWN0aW9uIG9mICh0aGlzLmNvbmZpZ3VyYXRpb24/LmFjdGlvbnMgfHwgW10pKSB7XHJcbiAgICAgIGlmICh0aGlzLnF1aWxsQ29uZmlnLnRvb2xiYXIuY29udGFpbmVyLnRvU3RyaW5nKCkuaW5jbHVkZXMoYWN0aW9uLmtleSkpIHtcclxuICAgICAgICBjb25zdCBxbEtleSA9IGBidXR0b24ucWwtJHthY3Rpb24ua2V5fWBcclxuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHFsS2V5KSkge1xyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcclxuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihxbEtleSkuaW5uZXJIVE1MID0gdGhpcy5jdXN0b21CdXR0b25GaWxlU1ZHO1xyXG4gICAgICAgICAgICBjb25zdCBjdXN0b21CdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHFsS2V5KTtcclxuICAgICAgICAgICAgaWYgKGN1c3RvbUJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2xpc3RlbmVyJykgIT09ICcxJykge1xyXG4gICAgICAgICAgICAgIGN1c3RvbUJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2xpc3RlbmVyJywgJzEnKTtcclxuICAgICAgICAgICAgICBjdXN0b21CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncXVpbGxSYW5nZScpO1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uLmNsaWNrKGUsIHtcclxuICAgICAgICAgICAgICAgICAgY3Vyc29yUG9zaXRpb246IEpTT04ucGFyc2UoY3Vyc29yUG9zaXRpb24pLFxyXG4gICAgICAgICAgICAgICAgICBhcmdzOiB0aGlzLmFyZ3NcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiAodGhpcy5xdWlsbENvbmZpZy50b29sYmFyLmNvbnRhaW5lci50b1N0cmluZygpLmluY2x1ZGVzKCdjdXN0b21GaWxlJykpIHtcclxuICAgIC8vICAgdGhpcy50aW1lckxvYWRRdWlsbFRvb2xiYXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAvLyAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi5xbC1jdXN0b21GaWxlJykpIHtcclxuICAgIC8vICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lckxvYWRRdWlsbFRvb2xiYXIpO1xyXG4gICAgLy8gICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uLnFsLWN1c3RvbUZpbGUnKS5pbm5lckhUTUwgPSB0aGlzLmN1c3RvbUJ1dHRvbkZpbGVTVkc7XHJcbiAgICAvLyAgICAgICBjb25zdCBjdXN0b21CdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b24ucWwtY3VzdG9tRmlsZScpO1xyXG4gICAgLy8gICAgICAgaWYgKGN1c3RvbUJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2xpc3RlbmVyJykgIT09ICcxJykge1xyXG4gICAgLy8gICAgICAgICBjdXN0b21CdXR0b24uc2V0QXR0cmlidXRlKCdsaXN0ZW5lcicsICcxJyk7XHJcbiAgICAvLyAgICAgICAgIGN1c3RvbUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY3VzdG9tRmlsZUhhbmRsZXIpO1xyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfSwgMTAwMCk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICAvLyBjdXN0b21GaWxlSGFuZGxlciA9IChlKSA9PiB7XHJcbiAgLy8gICBjb25zdCBjdXN0b21CdXR0b24gPSBlLmN1cnJlbnRUYXJnZXQ7XHJcbiAgLy8gICBjb25zdCBxdWlsbFRvb2xiYXIgPSBjdXN0b21CdXR0b24uY2xvc2VzdCgnLnFsLWZvcm1hdHMnKS5jbG9zZXN0KCcucWwtdG9vbGJhcicpO1xyXG4gIC8vICAgY29uc3QgcXVpbGxCb3ggPSBxdWlsbFRvb2xiYXIuY2xvc2VzdCgnLnFsLWZvcm1hdHMnKVxyXG4gIC8vICAgbGV0IGZpbGVJbnB1dDogSFRNTElucHV0RWxlbWVudCA9IHF1aWxsVG9vbGJhci5xdWVyeVNlbGVjdG9yKCdpbnB1dC5xbC1jdXN0b21GaWxlW3R5cGU9ZmlsZV0nKTtcclxuICAvLyAgIGlmIChmaWxlSW5wdXQgPT0gbnVsbCkge1xyXG4gIC8vICAgICBmaWxlSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gIC8vICAgICBmaWxlSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgQ29uc3RhbnRzLkZJTEUpO1xyXG4gIC8vICAgICBmaWxlSW5wdXQuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCAnKicpO1xyXG4gIC8vICAgICBmaWxlSW5wdXQuY2xhc3NMaXN0LmFkZCgncWwtY3VzdG9tRmlsZScpO1xyXG4gIC8vICAgICBmaWxlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xyXG4gIC8vICAgICAgIGNvbnN0IGZpbGVzID0gZmlsZUlucHV0LmZpbGVzO1xyXG4gIC8vICAgICAgIGlmICghZmlsZXMgfHwgIWZpbGVzLmxlbmd0aCkge1xyXG4gIC8vICAgICAgICAgcmV0dXJuO1xyXG4gIC8vICAgICAgIH1cclxuXHJcbiAgLy8gICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAvLyAgICAgICBmb3JtRGF0YS5hcHBlbmQoQ29uc3RhbnRzLkZJTEUsIGZpbGVzWzBdKTtcclxuICAvLyAgICAgICBsZXQgcmFuZ2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncXVpbGxSYW5nZScpO1xyXG4gIC8vICAgICAgIGlmIChyYW5nZSkge1xyXG4gIC8vICAgICAgICAgcmFuZ2UgPSBKU09OLnBhcnNlKHJhbmdlKTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgICAgdGhpcy5xdWlsbEV2ZW50LmVuYWJsZShmYWxzZSk7XHJcbiAgLy8gICAgICAgdGhpcy4jdXBsb2FkRmlsZShmb3JtRGF0YSwgdGhpcy5xdWlsbEV2ZW50LCByYW5nZSwgZmlsZUlucHV0LCBxdWlsbFRvb2xiYXIuY2xvc2VzdCgncXVpbGwtZWRpdG9yJykuaWQpO1xyXG4gIC8vICAgICB9KTtcclxuICAvLyAgICAgcXVpbGxUb29sYmFyLmFwcGVuZENoaWxkKGZpbGVJbnB1dCk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICBmaWxlSW5wdXQuY2xpY2soKTtcclxuICAvLyB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1pbmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWlubGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXhsZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heGxlbmd0aCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGVkaXRvckluaXQgPSAocXVpbGwpID0+IHtcclxuICAgIHRoaXMucXVpbGxFdmVudCA9IHF1aWxsO1xyXG4gICAgLy8gY29uc3QgdHh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XHJcbiAgICAvLyB0eHRBcmVhLnN0eWxlLmNzc1RleHQgPVxyXG4gICAgLy8gICAnd2lkdGg6IDEwMCU7bWFyZ2luOiAwcHg7YmFja2dyb3VuZDogcmdiKDI5LCAyOSwgMjkpOycgK1xyXG4gICAgLy8gICAnYm94LXNpemluZzogYm9yZGVyLWJveDtjb2xvcjogcmdiKDIwNCwgMjA0LCAyMDQpOycgK1xyXG4gICAgLy8gICAnZm9udC1zaXplOiAxNXB4O291dGxpbmU6IG5vbmU7cGFkZGluZzogMjBweDsnICtcclxuICAgIC8vICAgJ2xpbmUtaGVpZ2h0OiAyNHB4O2ZvbnQtZmFtaWx5OiBDb25zb2xhcywgTWVubG8sIE1vbmFjbywgJnF1b3Q7Q291cmllciBOZXcmcXVvdDssIG1vbm9zcGFjZTsnICtcclxuICAgIC8vICAgJ3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7Ym90dG9tOiAwO2JvcmRlcjogbm9uZTtkaXNwbGF5Om5vbmUnO1xyXG5cclxuICAgIC8vIGNvbnN0IGh0bWxFZGl0b3IgPSBxdWlsbC5hZGRDb250YWluZXIoJ3FsLWN1c3RvbScpO1xyXG4gICAgLy8gaHRtbEVkaXRvci5hcHBlbmRDaGlsZCh0eHRBcmVhKTtcclxuXHJcbiAgICAvLyBjb25zdCBteUVkaXRvciA9IHF1aWxsLmNvbnRhaW5lcjtcclxuICAgIC8vIHF1aWxsLm9uKCd0ZXh0LWNoYW5nZScsIChkZWx0YSwgb2xkRGVsdGEsIHNvdXJjZSkgPT4ge1xyXG4gICAgLy8gICBjb25zdCBodG1sID0gbXlFZGl0b3IuY2hpbGRyZW5bMF0uaW5uZXJIVE1MO1xyXG4gICAgLy8gICB0eHRBcmVhLnZhbHVlID0gaHRtbDtcclxuICAgIC8vICAgLy8gaWYgKHF1aWxsLmdldExlbmd0aCgpID4gdGhpcy5tYXhsZW5ndGgpIHtcclxuICAgIC8vICAgLy8gICBxdWlsbC5kZWxldGVUZXh0KHRoaXMubWF4bGVuZ3RoLCBxdWlsbC5nZXRMZW5ndGgoKSk7XHJcbiAgICAvLyAgIC8vIH1cclxuICAgIC8vICAgLy8gdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShodG1sKTtcclxuICAgIC8vIH0pO1xyXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICB0aGlzLiNpbml0VXBsb2FkSW1hZ2UocXVpbGwpO1xyXG4gICAgLy8gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgLy8gICBxdWlsbC5nZXRNb2R1bGUoJ3Rvb2xiYXInKS5hZGRIYW5kbGVyKCdpbWFnZScsIGZ1bmN0aW9uICgpIHtcclxuICAgIC8vICAgICBsZXQgZmlsZUlucHV0ID0gdGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcignaW5wdXQucWwtaW1hZ2VbdHlwZT1maWxlXScpO1xyXG5cclxuICAgIC8vICAgICBpZiAoZmlsZUlucHV0ID09IG51bGwpIHtcclxuICAgIC8vICAgICAgIGZpbGVJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICAvLyAgICAgICBmaWxlSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgQ29uc3RhbnRzLkZJTEUpO1xyXG4gICAgLy8gICAgICAgZmlsZUlucHV0LnNldEF0dHJpYnV0ZSgnYWNjZXB0JywgJ2ltYWdlL3BuZywgaW1hZ2UvZ2lmLCBpbWFnZS9qcGVnLCBpbWFnZS9ibXAsIGltYWdlL3gtaWNvbicpO1xyXG4gICAgLy8gICAgICAgZmlsZUlucHV0LmNsYXNzTGlzdC5hZGQoJ3FsLWltYWdlJyk7XHJcbiAgICAvLyAgICAgICBmaWxlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgLy8gICAgICAgICBjb25zdCBmaWxlcyA9IGZpbGVJbnB1dC5maWxlcztcclxuICAgIC8vICAgICAgICAgY29uc3QgcmFuZ2UgPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbih0cnVlKTtcclxuICAgIC8vICAgICAgICAgaWYgKCFmaWxlcyB8fCAhZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAvLyAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgLy8gICAgICAgICB9XHJcblxyXG4gICAgLy8gICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgLy8gICAgICAgICBmb3JtRGF0YS5hcHBlbmQoQ29uc3RhbnRzLkZJTEUsIGZpbGVzWzBdKTtcclxuXHJcbiAgICAvLyAgICAgICAgIHRoaXMucXVpbGwuZW5hYmxlKGZhbHNlKTtcclxuXHJcbiAgICAvLyAgICAgICAgIHNlbGYuI3VwbG9hZEltYWdlKGZvcm1EYXRhLCBxdWlsbCwgcmFuZ2UsIGZpbGVJbnB1dCk7XHJcbiAgICAvLyAgICAgICB9KTtcclxuICAgIC8vICAgICAgIHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKGZpbGVJbnB1dCk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGZpbGVJbnB1dC5jbGljaygpO1xyXG4gICAgLy8gICB9KTtcclxuXHJcbiAgICAvLyB9KTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgI2luaXRVcGxvYWRJbWFnZSA9IChxdWlsbDogUXVpbGwpID0+IHtcclxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICBxdWlsbC5nZXRNb2R1bGUoJ3Rvb2xiYXInKS5hZGRIYW5kbGVyKCdpbWFnZScsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBsZXQgZmlsZUlucHV0ID0gdGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcignaW5wdXQucWwtaW1hZ2VbdHlwZT1maWxlXScpO1xyXG4gICAgICAgIGlmIChmaWxlSW5wdXQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgZmlsZUlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgICAgICAgIGZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCBDb25zdGFudHMuRklMRSk7XHJcbiAgICAgICAgICBmaWxlSW5wdXQuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCAnaW1hZ2UvcG5nLCBpbWFnZS9naWYsIGltYWdlL2pwZWcsIGltYWdlL2JtcCwgaW1hZ2UveC1pY29uJyk7XHJcbiAgICAgICAgICBmaWxlSW5wdXQuY2xhc3NMaXN0LmFkZCgncWwtaW1hZ2UnKTtcclxuICAgICAgICAgIGZpbGVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gZmlsZUlucHV0LmZpbGVzO1xyXG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKHRydWUpO1xyXG4gICAgICAgICAgICBpZiAoIWZpbGVzIHx8ICFmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKENvbnN0YW50cy5GSUxFLCBmaWxlc1swXSk7XHJcbiAgICAgICAgICAgIHRoaXMucXVpbGwuZW5hYmxlKGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gc2VsZi4jdXBsb2FkSW1hZ2UoZm9ybURhdGEsIHF1aWxsLCByYW5nZSwgZmlsZUlucHV0KTtcclxuICAgICAgICAgICAgc2VsZi5jb25maWd1cmF0aW9uPy51cGxvYWRJbWFnZShmb3JtRGF0YSwgc2VsZi5hcmdzKS50aGVuKHVybCA9PiB7XHJcbiAgICAgICAgICAgICAgc2VsZi5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcXVpbGwuZW5hYmxlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgLy8gcXVpbGwuZWRpdG9yLmluc2VydEVtYmVkKHJhbmdlLmluZGV4LCAnaW1hZ2UnLCByZXNwPy5kYXRhPy5pbWFnZVVybCB8fCByZXNwPy5kYXRhPy5wdWJsaXNoX3VybCB8fCByZXNwPy51cmwgfHwgJycpO1xyXG4gICAgICAgICAgICAgICAgcXVpbGwuZ2V0TW9kdWxlKCdjbGlwYm9hcmQnKS5kYW5nZXJvdXNseVBhc3RlSFRNTChyYW5nZS5pbmRleCwgJzxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCInICsgKHVybCB8fCAnJylcclxuICAgICAgICAgICAgICAgICAgKyAnXCI+PGltZyBzcmM9XCInICsgKHVybCB8fCAnJykgKyAnXCIgYWx0PVwiYy1pbWFnZS1lZGl0b3ItcXVpbGxcIj48L2E+JywgJ3VzZXInKTtcclxuICAgICAgICAgICAgICAgIC8vIHF1aWxsLmluc2VydFRleHQoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBxdWlsbC5nZXRDb250ZW50cygpO1xyXG4gICAgICAgICAgICAgICAgcXVpbGwuc2V0Q29udGVudHMoY29udGVudCk7XHJcbiAgICAgICAgICAgICAgICBxdWlsbC5zZXRTZWxlY3Rpb24ocmFuZ2UuaW5kZXggKyAxLCAndXNlcicpO1xyXG4gICAgICAgICAgICAgICAgZmlsZUlucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChmaWxlSW5wdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaWxlSW5wdXQuY2xpY2soKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbk1vZGVsQ2hhbmdlID0gKHZhbDogc3RyaW5nKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbCk7XHJcbiAgICB0aGlzLm1vZGVsSFRNTCA9IHZhbDtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja1Nob3dIdG1sRWRpdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zaG93SHRtbEVkaXRvciA9ICF0aGlzLnNob3dIdG1sRWRpdG9yO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICAvLyAjdXBsb2FkSW1hZ2UgPSAoZm9ybURhdGEsIHF1aWxsLCByYW5nZSwgZmlsZUlucHV0KSA9PiB7XHJcbiAgLy8gICBpZiAoIXRoaXMudXJsVXBsb2FkSW1hZ2UpIHtcclxuICAvLyAgICAgdGhpcy51cmxVcGxvYWRJbWFnZSA9ICcvcGFydG5lci92Mi9tZXJjaGFuZGlzZS9maWxlL3VwbG9hZHVzZXJmaWxlJztcclxuICAvLyAgIH1cclxuICAvLyAgIC8vIHRoaXMuZG9tYWluID0gJ2h0dHBzOi8vYXBpLWNvbW1lcmNlLXFjLnZpbmlkLmRldic7XHJcbiAgLy8gICB0aGlzLnNkQXBpU2VydmljZS5wb3N0KHRoaXMudXJsVXBsb2FkSW1hZ2UsIGZvcm1EYXRhKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAvLyAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gIC8vICAgICAgIHF1aWxsLmVuYWJsZSh0cnVlKTtcclxuICAvLyAgICAgICAvLyBxdWlsbC5lZGl0b3IuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIHJlc3A/LmRhdGE/LmltYWdlVXJsIHx8IHJlc3A/LmRhdGE/LnB1Ymxpc2hfdXJsIHx8IHJlc3A/LnVybCB8fCAnJyk7XHJcbiAgLy8gICAgICAgcXVpbGwuZ2V0TW9kdWxlKCdjbGlwYm9hcmQnKS5kYW5nZXJvdXNseVBhc3RlSFRNTChyYW5nZS5pbmRleCwgJzxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCInICsgKHJlc3A/LmRhdGE/LmltYWdlVXJsIHx8IHJlc3A/LmRhdGE/LnB1Ymxpc2hfdXJsIHx8IHJlc3A/LnVybCB8fCAnJylcclxuICAvLyAgICAgICAgICsgJ1wiPjxpbWcgc3JjPVwiJyArIChyZXNwPy5kYXRhPy5pbWFnZVVybCB8fCByZXNwPy5kYXRhPy5wdWJsaXNoX3VybCB8fCByZXNwPy51cmwgfHwgJycpICsgJ1wiIGFsdD1cImMtaW1hZ2UtZWRpdG9yLXF1aWxsXCI+PC9hPicsICd1c2VyJyk7XHJcbiAgLy8gICAgICAgLy8gcXVpbGwuaW5zZXJ0VGV4dCgpO1xyXG4gIC8vICAgICAgIGNvbnN0IGNvbnRlbnQgPSBxdWlsbC5nZXRDb250ZW50cygpO1xyXG4gIC8vICAgICAgIHF1aWxsLnNldENvbnRlbnRzKGNvbnRlbnQpO1xyXG4gIC8vICAgICAgIHF1aWxsLnNldFNlbGVjdGlvbihyYW5nZS5pbmRleCArIDEsICd1c2VyJyk7XHJcbiAgLy8gICAgICAgZmlsZUlucHV0LnZhbHVlID0gJyc7XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAvLyB9XHJcblxyXG4gIC8vICN1cGxvYWRGaWxlID0gKGZvcm1EYXRhLCBxdWlsbCwgcmFuZ2UsIGZpbGVJbnB1dCwgbG9hZGluZ0lEKSA9PiB7XHJcbiAgLy8gICBpZiAoIXRoaXMudXJsVXBsb2FkRmlsZSkge1xyXG4gIC8vICAgICB0aGlzLnVybFVwbG9hZEZpbGUgPSAnL3BhcnRuZXIvdjIvbWVyY2hhbmRpc2UvZmlsZS91cGxvYWR1c2VyZmlsZSc7XHJcbiAgLy8gICB9XHJcbiAgLy8gICAvLyB0aGlzLmRvbWFpbiA9ICdodHRwczovL2FwaS1jb21tZXJjZS1xYy52aW5pZC5kZXYnO1xyXG4gIC8vICAgdGhpcy5sb2FkaW5nU2VydmljZS5zdGFydCgnI2JveC0nICsgbG9hZGluZ0lEKTtcclxuICAvLyAgIHRoaXMuc2RBcGlTZXJ2aWNlLnBvc3QodGhpcy51cmxVcGxvYWRGaWxlLCBmb3JtRGF0YSkudGhlbigocmVzcDogYW55KSA9PiB7XHJcbiAgLy8gICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAvLyAgICAgICBxdWlsbC5lbmFibGUodHJ1ZSk7XHJcbiAgLy8gICAgICAgLy8gcXVpbGwuZWRpdG9yLmluc2VydEVtYmVkKHJhbmdlLmluZGV4LCAnaW1hZ2UnLCByZXNwPy5kYXRhPy5pbWFnZVVybCB8fCByZXNwPy5kYXRhPy5wdWJsaXNoX3VybCB8fCByZXNwPy51cmwgfHwgJycpO1xyXG4gIC8vICAgICAgIHF1aWxsLmdldE1vZHVsZSgnY2xpcGJvYXJkJykuZGFuZ2Vyb3VzbHlQYXN0ZUhUTUwocmFuZ2UuaW5kZXgsICc8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiJyArIChyZXNwPy5kYXRhPy5pbWFnZVVybCB8fCByZXNwPy5kYXRhPy5wdWJsaXNoX3VybCB8fCByZXNwPy51cmwgfHwgJycpXHJcbiAgLy8gICAgICAgICArICdcIj4nICsgKHJlc3A/LmRhdGE/LmltYWdlVXJsIHx8IHJlc3A/LmRhdGE/LnB1Ymxpc2hfdXJsIHx8IHJlc3A/LnVybCB8fCAnJykgKyAnPC9hPicsICd1c2VyJyk7XHJcbiAgLy8gICAgICAgLy8gcXVpbGwuaW5zZXJ0VGV4dCgpO1xyXG4gIC8vICAgICAgIGNvbnN0IGNvbnRlbnQgPSBxdWlsbC5nZXRDb250ZW50cygpO1xyXG4gIC8vICAgICAgIHF1aWxsLnNldENvbnRlbnRzKGNvbnRlbnQpO1xyXG4gIC8vICAgICAgIHF1aWxsLnNldFNlbGVjdGlvbihyYW5nZS5pbmRleCArIDEsICd1c2VyJyk7XHJcbiAgLy8gICAgICAgZmlsZUlucHV0LnZhbHVlID0gJyc7XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnN0b3AoJyNib3gtJyArIGxvYWRpbmdJRCk7XHJcbiAgLy8gICB9KS5jYXRjaCgoZXIpID0+IHtcclxuICAvLyAgICAgdGhpcy5sb2FkaW5nU2VydmljZS5zdG9wKCcjYm94LScgKyBsb2FkaW5nSUQpO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAvLyB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZChlOiBTZWxlY3Rpb25DaGFuZ2UpIHtcclxuICAgIC8vIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdxdWlsbFJhbmdlJywgZS5yYW5nZSA/IEpTT04uc3RyaW5naWZ5KGUucmFuZ2UpIDogKGUub2xkUmFuZ2UgPyBKU09OLnN0cmluZ2lmeShlLm9sZFJhbmdlKSA6IG51bGwpKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdxdWlsbFJhbmdlJywgZS5lZGl0b3IuZ2V0U2VsZWN0aW9uKCkgPyBKU09OLnN0cmluZ2lmeShlLmVkaXRvci5nZXRTZWxlY3Rpb24oKSkgOiBudWxsKTtcclxuICB9XHJcblxyXG4gIG9uQ29udGVudENoYW5nZWQoZTogQ29udGVudENoYW5nZSkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3F1aWxsUmFuZ2UnLCBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgIGluZGV4OiAoZS5lZGl0b3IuZ2V0TGVuZ3RoKCkgPyBlLmVkaXRvci5nZXRMZW5ndGgoKSAtIDEgOiAwKSxcclxuICAgICAgbGVuZ3RoOiAwXHJcbiAgICB9KSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  import { InjectionToken } from "@angular/core";
2
2
  export const EDITOR_CONFIG = new InjectionToken('editor.configuration');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9lZGl0b3IvIiwic291cmNlcyI6WyJzcmMvbGliL2VkaXRvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTy9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBdUIsc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckNvbmZpZ3VyYXRpb24ge1xyXG4gIHVwbG9hZEltYWdlOiAoZm9ybURhdGE6IEZvcm1EYXRhLCBhcmdzPzogYW55KSA9PiBQcm9taXNlPHN0cmluZz47XHJcbiAgdXBsb2FkRmlsZTogKGZvcm1EYXRhOiBGb3JtRGF0YSwgYXJncz86IGFueSkgPT4gUHJvbWlzZTxzdHJpbmc+O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgRURJVE9SX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRWRpdG9yQ29uZmlndXJhdGlvbj4oJ2VkaXRvci5jb25maWd1cmF0aW9uJyk7Il19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9lZGl0b3IvIiwic291cmNlcyI6WyJzcmMvbGliL2VkaXRvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBaUIvQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQXVCLHNCQUFzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElFZGl0b3JDb25maWd1cmF0aW9uIHtcclxuICB1cGxvYWRJbWFnZT86IChmb3JtRGF0YTogRm9ybURhdGEsIGFyZ3M/OiBhbnkpID0+IFByb21pc2U8c3RyaW5nPjtcclxuICBhY3Rpb25zOiB7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIGljb246IHN0cmluZztcclxuICAgIGNsaWNrOiAoZXZlbnQ6IEV2ZW50LCBhcmdzPzoge1xyXG4gICAgICBjdXJzb3JQb3NpdGlvbjoge1xyXG4gICAgICAgIGluZGV4OiBudW1iZXI7XHJcbiAgICAgICAgbGVuZ3RoOiBudW1iZXI7XHJcbiAgICAgIH0sXHJcbiAgICAgIGFyZ3M/OiBhbnlcclxuICAgIH0pID0+IHZvaWRcclxuICB9W107XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBFRElUT1JfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPElFZGl0b3JDb25maWd1cmF0aW9uPignZWRpdG9yLmNvbmZpZ3VyYXRpb24nKTsiXX0=
@@ -2,4 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './index';
5
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWV4Y2VsLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZC1jb3JlL2V4Y2VsL3NkLWFuZ3VsYXItY29yZS1leGNlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsR0FBRzs7QUFGQSxBQUVBLEFBRUEsQUFBQSxBQUFBLEFBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWV4Y2VsLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9leGNlbC8iLCJzb3VyY2VzIjpbInNkLWFuZ3VsYXItY29yZS1leGNlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -2,4 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './index';
5
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWV4cG9ydC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2QtY29yZS9leHBvcnQvc2QtYW5ndWxhci1jb3JlLWV4cG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsR0FBRzs7QUFGQSxBQUVBLEFBRUEsQUFBQSxBQUFBLEFBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWV4cG9ydC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZXhwb3J0LyIsInNvdXJjZXMiOlsic2QtYW5ndWxhci1jb3JlLWV4cG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -2,4 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './index';
5
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWZvcm0uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NkLWNvcmUvZm9ybS9zZC1hbmd1bGFyLWNvcmUtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsR0FBRzs7QUFGQSxBQUVBLEFBRUEsQUFBQSxBQUFBLEFBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWZvcm0uanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2Zvcm0vIiwic291cmNlcyI6WyJzZC1hbmd1bGFyLWNvcmUtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -44,4 +44,4 @@ export { SdStyleRowCss as ɵbo } from './src/lib/pipes/style-row-css.pipe';
44
44
  export { SdGeneratedColumnService as ɵu } from './src/lib/services/generated-column/generated-column.service';
45
45
  export { SdGridConfigurationService as ɵh } from './src/lib/services/grid-configuration.service';
46
46
  export { SdGridFilterService as ɵd } from './src/lib/services/grid-filter.service';
47
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWdyaWQtbWF0ZXJpYWwuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NkLWNvcmUvZ3JpZC1tYXRlcmlhbC9zZC1hbmd1bGFyLWNvcmUtZ3JpZC1tYXRlcmlhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsR0FBRztBQUVILGNBQWMsU0FBUyxDQUFDO0FBRXhCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwwRUFBMEUsQ0FBQztBQUNwSCxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sc0ZBQXNGLENBQUM7QUFDckksT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ2pILE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUMzRyxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN0RyxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sb0ZBQW9GLENBQUM7QUFDbkksT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNuRyxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0sa0ZBQWtGLENBQUM7QUFDaEksT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxN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QUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUNBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQ0EsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFDQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSxBQUFBLEFBQUEsQUFBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCB7U2RDb2x1bW5JbmxpbmVGaWx0ZXIgYXMgybVyfSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9jb2x1bW4taW5saW5lLWZpbHRlci9jb2x1bW4taW5saW5lLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0IHtTZERlc2t0b3BDZWxsQ2hpbGRyZW5WaWV3IGFzIMm1cH0gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC1jZWxsLWNoaWxkcmVuLXZpZXcvZGVza3RvcC1jZWxsLWNoaWxkcmVuLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7U2REZXNrdG9wQ2VsbEVkaXRvciBhcyDJtW19IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtY2VsbC1lZGl0b3IvZGVza3RvcC1jZWxsLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHtTZERlc2t0b3BDZWxsVmlldyBhcyDJtW99IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtY2VsbC12aWV3L2Rlc2t0b3AtY2VsbC12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQge1NkRGVza3RvcENlbGwgYXMgybVsfSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wLWNlbGwvZGVza3RvcC1jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQge1NkRGVza3RvcENvbW1hbmQgYXMgybVxfSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wLWNvbW1hbmQvZGVza3RvcC1jb21tYW5kLmNvbXBvbmVudCc7XG5leHBvcnQge1NkRGVza3RvcEVkaXRvclZhbGlkYXRpb24gYXMgybVufSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wLWVkaXRvci12YWxpZGF0aW9uL2Rlc2t0b3AtZWRpdG9yLXZhbGlkYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7U2REeW5hbWljQ29sdW1uIGFzIMm1dH0gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1jb2x1bW4vZHluYW1pYy1jb2x1bW4uY29tcG9uZW50JztcbmV4cG9ydCB7U2RHcmlkRmlsdGVyIGFzIMm1Yn0gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvZ3JpZC1maWx0ZXIvZ3JpZC1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7U2RQb3B1cEV4cG9ydCBhcyDJtWV9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL3BvcHVwLWV4cG9ydC9wb3B1cC1leHBvcnQuY29tcG9uZW50JztcbmV4cG9ydCB7U2RQb3B1cEZpbHRlciBhcyDJtWN9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL3BvcHVwLWZpbHRlci9wb3B1cC1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7U2RQb3B1cEdyaWRDb25maWd1cmF0aW9uIGFzIMm1c30gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAtZ3JpZC1jb25maWd1cmF0aW9uL3BvcHVwLWdyaWQtY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtTZEdyaWRRdWlja0FjdGlvbiBhcyDJtWt9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL3F1aWNrLWFjdGlvbi9xdWljay1hY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCB7TWF0UGFnaW5hdG9ySW50bENybyBhcyDJtWF9IGZyb20gJy4vc3JjL2xpYi9ncmlkLW1hdGVyaWFsLm1vZHVsZSc7XG5leHBvcnQge0dSSURfTUFURVJJQUxfQ09ORklHIGFzIMm1ZyxJU2RHcmlkTWF0ZXJpYWxDb25maWd1cmF0aW9uIGFzIMm1Zn0gZnJvbSAnLi9zcmMvbGliL21vZGVscy9ncmlkLWNvbmZpZ3VyYXRpb24ubW9kZWwnO1xuZXhwb3J0IHtTZENlbGxWaWV3UGlwZSBhcyDJtWJwfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY2VsbC12aWV3LnBpcGUnO1xuZXhwb3J0IHtTZENvbHVtbkJhZGdlUGlwZSBhcyDJtWJmfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29sdW1uLWJhZGdlLnBpcGUnO1xuZXhwb3J0IHtTZENvbHVtbkNoaWxkcmVuRmlsdGVyUGlwZSBhcyDJtXd9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb2x1bW4tY2hpbGRyZW4tZmlsdGVyLnBpcGUnO1xuZXhwb3J0IHtTZENvbHVtbkh0bWxUZW1wbGF0ZVBpcGUgYXMgybViY30gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbHVtbi1odG1sLXRlbXBsYXRlLnBpcGUnO1xuZXhwb3J0IHtTZENvbHVtblRpdGxlUGlwZSBhcyDJtXh9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb2x1bW4tdGl0bGUucGlwZSc7XG5leHBvcnQge1NkQ29sdW1uVG9vbHRpcFBpcGUgYXMgybViZX0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbHVtbi10b29sdGlwLnBpcGUnO1xuZXhwb3J0IHtTZENvbHVtblRyYW5zZm9ybVBpcGUgYXMgybViZH0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbHVtbi10cmFuc2Zvcm0ucGlwZSc7XG5leHBvcnQge1NkQ29sdW1uVmFsdWVzUGlwZSBhcyDJtWl9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb2x1bW4tdmFsdWVzLnBpcGUnO1xuZXhwb3J0IHtTZENvbW1hbmREaXNhYmxlUGlwZSBhcyDJtXp9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb21tYW5kLWRpc2FibGUucGlwZSc7XG5leHBvcnQge1NkQ29tbWFuZEZpbHRlclBpcGUgYXMgybV5fSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29tbWFuZC1maWx0ZXIucGlwZSc7XG5leHBvcnQge1NkQ29tbWFuZEljb25QaXBlIGFzIMm1YmF9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb21tYW5kLWljb24ucGlwZSc7XG5leHBvcnQge1NkQ29tbWFuZFRpdGxlUGlwZSBhcyDJtWJifSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29tbWFuZC10aXRsZS5waXBlJztcbmV4cG9ydCB7U2RFZGl0b3JIYW5kbGVyQ29sdW1uUGlwZSBhcyDJtWp9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9lZGl0b3ItaGFuZGxlci1jb2x1bW4ucGlwZSc7XG5leHBvcnQge1NkRWRpdG9ySGFuZGxlclJvd1BpcGUgYXMgybVibX0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2VkaXRvci1oYW5kbGVyLXJvdy5waXBlJztcbmV4cG9ydCB7U2RFZGl0b3JWYWxpZGF0ZVBpcGUgYXMgybVibn0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2VkaXRvci12YWxpZGF0ZS5waXBlJztcbmV4cG9ydCB7U2RGaWx0ZXJDb2x1bW5QaXBlIGFzIMm1Ymd9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9maWx0ZXItY29sdW1uLnBpcGUnO1xuZXhwb3J0IHtTZEZpbHRlckV4dGVybmFsUGlwZSBhcyDJtWJofSBmcm9tICcuL3NyYy9saWIvcGlwZXMvZmlsdGVyLWV4dGVybmFsLnBpcGUnO1xuZXhwb3J0IHtTZEdyaWRDb25maWd1cmF0aW9uUmVzdWx0UGlwZSBhcyDJtXZ9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9ncmlkLWNvbmZpZ3VyYXRpb24tcmVzdWx0LnBpcGUnO1xuZXhwb3J0IHtTZEdyb3VwUGlwZSBhcyDJtWJxfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvc2QtZ3JvdXAucGlwZSc7XG5leHBvcnQge1NkU2VsZWN0aW9uQWN0aW9uRmlsdGVyUGlwZSBhcyDJtWJpfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvc2VsZWN0aW9uLWFjdGlvbi1maWx0ZXIucGlwZSc7XG5leHBvcnQge1NkU2VsZWN0aW9uRGlzYWJsZVBpcGUgYXMgybVia30gZnJvbSAnLi9zcmMvbGliL3BpcGVzL3NlbGVjdGlvbi1kaXNhYmxlLnBpcGUnO1xuZXhwb3J0IHtTZFNlbGVjdGlvblZpc2libGVTZWxlY3RBbGxQaXBlIGFzIMm1Ymx9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9zZWxlY3Rpb24tdmlzaWJsZS1zZWxlY3QtYWxsLnBpcGUnO1xuZXhwb3J0IHtTZFNlbGVjdGlvblZpc2libGVQaXBlIGFzIMm1Ymp9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9zZWxlY3Rpb24tdmlzaWJsZS5waXBlJztcbmV4cG9ydCB7U2RTdHlsZVJvd0NzcyBhcyDJtWJvfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvc3R5bGUtcm93LWNzcy5waXBlJztcbmV4cG9ydCB7U2RHZW5lcmF0ZWRDb2x1bW5TZXJ2aWNlIGFzIMm1dX0gZnJvbSAnLi9zcmMvbGliL3NlcnZpY2VzL2dlbmVyYXRlZC1jb2x1bW4vZ2VuZXJhdGVkLWNvbHVtbi5zZXJ2aWNlJztcbmV4cG9ydCB7U2RHcmlkQ29uZmlndXJhdGlvblNlcnZpY2UgYXMgybVofSBmcm9tICcuL3NyYy9saWIvc2VydmljZXMvZ3JpZC1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtTZEdyaWRGaWx0ZXJTZXJ2aWNlIGFzIMm1ZH0gZnJvbSAnLi9zcmMvbGliL3NlcnZpY2VzL2dyaWQtZmlsdGVyLnNlcnZpY2UnOyJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWdyaWQtbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2dyaWQtbWF0ZXJpYWwvIiwic291cmNlcyI6WyJzZC1hbmd1bGFyLWNvcmUtZ3JpZC1tYXRlcmlhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDO0FBRXhCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwwRUFBMEUsQ0FBQztBQUNwSCxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sc0ZBQXNGLENBQUM7QUFDckksT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ2pILE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUMzRyxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN0RyxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sb0ZBQW9GLENBQUM7QUFDbkksT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNuRyxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0sa0ZBQWtGLENBQUM7QUFDaEksT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFvQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hILE9BQU8sRUFBQyxjQUFjLElBQUksR0FBRyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUM3RixPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxHQUFHLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLElBQUksR0FBRyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDbkYsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDM0YsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEdBQUcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsa0JBQWtCLElBQUksR0FBRyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEdBQUcsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRyxPQUFPLEVBQUMsV0FBVyxJQUFJLEdBQUcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxHQUFHLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRyxPQUFPLEVBQUMsc0JBQXNCLElBQUksR0FBRyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDckYsT0FBTyxFQUFDLCtCQUErQixJQUFJLEdBQUcsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxHQUFHLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUMsYUFBYSxJQUFJLEdBQUcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUM1RyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDL0YsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtTZENvbHVtbklubGluZUZpbHRlciBhcyDJtXJ9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2NvbHVtbi1pbmxpbmUtZmlsdGVyL2NvbHVtbi1pbmxpbmUtZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQge1NkRGVza3RvcENlbGxDaGlsZHJlblZpZXcgYXMgybVwfSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wLWNlbGwtY2hpbGRyZW4tdmlldy9kZXNrdG9wLWNlbGwtY2hpbGRyZW4tdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtTZERlc2t0b3BDZWxsRWRpdG9yIGFzIMm1bX0gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC1jZWxsLWVkaXRvci9kZXNrdG9wLWNlbGwtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQge1NkRGVza3RvcENlbGxWaWV3IGFzIMm1b30gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC1jZWxsLXZpZXcvZGVza3RvcC1jZWxsLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7U2REZXNrdG9wQ2VsbCBhcyDJtWx9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtY2VsbC9kZXNrdG9wLWNlbGwuY29tcG9uZW50JztcbmV4cG9ydCB7U2REZXNrdG9wQ29tbWFuZCBhcyDJtXF9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtY29tbWFuZC9kZXNrdG9wLWNvbW1hbmQuY29tcG9uZW50JztcbmV4cG9ydCB7U2REZXNrdG9wRWRpdG9yVmFsaWRhdGlvbiBhcyDJtW59IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtZWRpdG9yLXZhbGlkYXRpb24vZGVza3RvcC1lZGl0b3ItdmFsaWRhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtTZER5bmFtaWNDb2x1bW4gYXMgybV0fSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWNvbHVtbi9keW5hbWljLWNvbHVtbi5jb21wb25lbnQnO1xuZXhwb3J0IHtTZEdyaWRGaWx0ZXIgYXMgybVifSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9ncmlkLWZpbHRlci9ncmlkLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0IHtTZFBvcHVwRXhwb3J0IGFzIMm1ZX0gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAtZXhwb3J0L3BvcHVwLWV4cG9ydC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZFBvcHVwRmlsdGVyIGFzIMm1Y30gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAtZmlsdGVyL3BvcHVwLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0IHtTZFBvcHVwR3JpZENvbmZpZ3VyYXRpb24gYXMgybVzfSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9wb3B1cC1ncmlkLWNvbmZpZ3VyYXRpb24vcG9wdXAtZ3JpZC1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge1NkR3JpZFF1aWNrQWN0aW9uIGFzIMm1a30gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvcXVpY2stYWN0aW9uL3F1aWNrLWFjdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtNYXRQYWdpbmF0b3JJbnRsQ3JvIGFzIMm1YX0gZnJvbSAnLi9zcmMvbGliL2dyaWQtbWF0ZXJpYWwubW9kdWxlJztcbmV4cG9ydCB7R1JJRF9NQVRFUklBTF9DT05GSUcgYXMgybVnLElTZEdyaWRNYXRlcmlhbENvbmZpZ3VyYXRpb24gYXMgybVmfSBmcm9tICcuL3NyYy9saWIvbW9kZWxzL2dyaWQtY29uZmlndXJhdGlvbi5tb2RlbCc7XG5leHBvcnQge1NkQ2VsbFZpZXdQaXBlIGFzIMm1YnB9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jZWxsLXZpZXcucGlwZSc7XG5leHBvcnQge1NkQ29sdW1uQmFkZ2VQaXBlIGFzIMm1YmZ9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb2x1bW4tYmFkZ2UucGlwZSc7XG5leHBvcnQge1NkQ29sdW1uQ2hpbGRyZW5GaWx0ZXJQaXBlIGFzIMm1d30gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbHVtbi1jaGlsZHJlbi1maWx0ZXIucGlwZSc7XG5leHBvcnQge1NkQ29sdW1uSHRtbFRlbXBsYXRlUGlwZSBhcyDJtWJjfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29sdW1uLWh0bWwtdGVtcGxhdGUucGlwZSc7XG5leHBvcnQge1NkQ29sdW1uVGl0bGVQaXBlIGFzIMm1eH0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbHVtbi10aXRsZS5waXBlJztcbmV4cG9ydCB7U2RDb2x1bW5Ub29sdGlwUGlwZSBhcyDJtWJlfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29sdW1uLXRvb2x0aXAucGlwZSc7XG5leHBvcnQge1NkQ29sdW1uVHJhbnNmb3JtUGlwZSBhcyDJtWJkfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29sdW1uLXRyYW5zZm9ybS5waXBlJztcbmV4cG9ydCB7U2RDb2x1bW5WYWx1ZXNQaXBlIGFzIMm1aX0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbHVtbi12YWx1ZXMucGlwZSc7XG5leHBvcnQge1NkQ29tbWFuZERpc2FibGVQaXBlIGFzIMm1en0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbW1hbmQtZGlzYWJsZS5waXBlJztcbmV4cG9ydCB7U2RDb21tYW5kRmlsdGVyUGlwZSBhcyDJtXl9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb21tYW5kLWZpbHRlci5waXBlJztcbmV4cG9ydCB7U2RDb21tYW5kSWNvblBpcGUgYXMgybViYX0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbW1hbmQtaWNvbi5waXBlJztcbmV4cG9ydCB7U2RDb21tYW5kVGl0bGVQaXBlIGFzIMm1YmJ9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb21tYW5kLXRpdGxlLnBpcGUnO1xuZXhwb3J0IHtTZEVkaXRvckhhbmRsZXJDb2x1bW5QaXBlIGFzIMm1an0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2VkaXRvci1oYW5kbGVyLWNvbHVtbi5waXBlJztcbmV4cG9ydCB7U2RFZGl0b3JIYW5kbGVyUm93UGlwZSBhcyDJtWJtfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvZWRpdG9yLWhhbmRsZXItcm93LnBpcGUnO1xuZXhwb3J0IHtTZEVkaXRvclZhbGlkYXRlUGlwZSBhcyDJtWJufSBmcm9tICcuL3NyYy9saWIvcGlwZXMvZWRpdG9yLXZhbGlkYXRlLnBpcGUnO1xuZXhwb3J0IHtTZEZpbHRlckNvbHVtblBpcGUgYXMgybViZ30gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2ZpbHRlci1jb2x1bW4ucGlwZSc7XG5leHBvcnQge1NkRmlsdGVyRXh0ZXJuYWxQaXBlIGFzIMm1Ymh9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9maWx0ZXItZXh0ZXJuYWwucGlwZSc7XG5leHBvcnQge1NkR3JpZENvbmZpZ3VyYXRpb25SZXN1bHRQaXBlIGFzIMm1dn0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2dyaWQtY29uZmlndXJhdGlvbi1yZXN1bHQucGlwZSc7XG5leHBvcnQge1NkR3JvdXBQaXBlIGFzIMm1YnF9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9zZC1ncm91cC5waXBlJztcbmV4cG9ydCB7U2RTZWxlY3Rpb25BY3Rpb25GaWx0ZXJQaXBlIGFzIMm1Yml9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9zZWxlY3Rpb24tYWN0aW9uLWZpbHRlci5waXBlJztcbmV4cG9ydCB7U2RTZWxlY3Rpb25EaXNhYmxlUGlwZSBhcyDJtWJrfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvc2VsZWN0aW9uLWRpc2FibGUucGlwZSc7XG5leHBvcnQge1NkU2VsZWN0aW9uVmlzaWJsZVNlbGVjdEFsbFBpcGUgYXMgybVibH0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL3NlbGVjdGlvbi12aXNpYmxlLXNlbGVjdC1hbGwucGlwZSc7XG5leHBvcnQge1NkU2VsZWN0aW9uVmlzaWJsZVBpcGUgYXMgybVian0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL3NlbGVjdGlvbi12aXNpYmxlLnBpcGUnO1xuZXhwb3J0IHtTZFN0eWxlUm93Q3NzIGFzIMm1Ym99IGZyb20gJy4vc3JjL2xpYi9waXBlcy9zdHlsZS1yb3ctY3NzLnBpcGUnO1xuZXhwb3J0IHtTZEdlbmVyYXRlZENvbHVtblNlcnZpY2UgYXMgybV1fSBmcm9tICcuL3NyYy9saWIvc2VydmljZXMvZ2VuZXJhdGVkLWNvbHVtbi9nZW5lcmF0ZWQtY29sdW1uLnNlcnZpY2UnO1xuZXhwb3J0IHtTZEdyaWRDb25maWd1cmF0aW9uU2VydmljZSBhcyDJtWh9IGZyb20gJy4vc3JjL2xpYi9zZXJ2aWNlcy9ncmlkLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5leHBvcnQge1NkR3JpZEZpbHRlclNlcnZpY2UgYXMgybVkfSBmcm9tICcuL3NyYy9saWIvc2VydmljZXMvZ3JpZC1maWx0ZXIuc2VydmljZSc7Il19