@dereekb/dbx-form 9.25.16 → 10.0.1

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 (364) hide show
  1. package/_index.scss +1 -0
  2. package/calendar/lib/calendar.module.d.ts +1 -1
  3. package/calendar/lib/calendar.schedule.selection.cell.component.d.ts +1 -1
  4. package/calendar/lib/calendar.schedule.selection.component.d.ts +4 -4
  5. package/calendar/lib/calendar.schedule.selection.d.ts +1 -1
  6. package/calendar/lib/calendar.schedule.selection.days.component.d.ts +1 -1
  7. package/calendar/lib/calendar.schedule.selection.days.form.component.d.ts +2 -2
  8. package/calendar/lib/calendar.schedule.selection.dialog.button.component.d.ts +1 -6
  9. package/calendar/lib/calendar.schedule.selection.dialog.component.d.ts +1 -11
  10. package/calendar/lib/calendar.schedule.selection.popover.button.component.d.ts +2 -2
  11. package/calendar/lib/calendar.schedule.selection.popover.component.d.ts +1 -1
  12. package/calendar/lib/calendar.schedule.selection.popover.content.component.d.ts +1 -1
  13. package/calendar/lib/calendar.schedule.selection.range.component.d.ts +1 -1
  14. package/calendar/lib/calendar.schedule.selection.store.d.ts +4 -32
  15. package/calendar/lib/calendar.schedule.selection.store.provide.d.ts +1 -1
  16. package/calendar/lib/calendar.schedule.selection.toggle.button.component.d.ts +1 -1
  17. package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +2 -8
  18. package/esm2022/calendar/lib/calendar.module.mjs +155 -0
  19. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.cell.component.mjs +10 -10
  20. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.component.mjs +6 -6
  21. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.days.component.mjs +6 -6
  22. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.days.form.component.mjs +6 -6
  23. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +36 -0
  24. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.component.mjs +56 -0
  25. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.mjs +1 -1
  26. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.popover.button.component.mjs +6 -6
  27. package/esm2022/calendar/lib/calendar.schedule.selection.popover.component.mjs +38 -0
  28. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.popover.content.component.mjs +6 -6
  29. package/esm2022/calendar/lib/calendar.schedule.selection.range.component.mjs +188 -0
  30. package/esm2022/calendar/lib/calendar.schedule.selection.store.mjs +785 -0
  31. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.store.provide.mjs +7 -7
  32. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.toggle.button.component.mjs +6 -6
  33. package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +158 -0
  34. package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.mjs +28 -0
  35. package/esm2022/calendar/lib/field/schedule/calendar.schedule.module.mjs +58 -0
  36. package/{esm2020 → esm2022}/lib/form/action/form.action.directive.mjs +4 -4
  37. package/{esm2020 → esm2022}/lib/form/action/form.action.module.mjs +5 -5
  38. package/{esm2020 → esm2022}/lib/form/action/transition/form.action.transition.module.mjs +5 -5
  39. package/{esm2020 → esm2022}/lib/form/action/transition/form.action.transition.safety.directive.mjs +4 -4
  40. package/{esm2020 → esm2022}/lib/form/form.module.mjs +5 -5
  41. package/{esm2020 → esm2022}/lib/form/io/form.changes.directive.mjs +4 -4
  42. package/{esm2020 → esm2022}/lib/form/io/form.input.directive.mjs +4 -4
  43. package/{esm2020 → esm2022}/lib/form/io/form.io.module.mjs +5 -5
  44. package/{esm2020 → esm2022}/lib/form/io/form.loading.directive.mjs +4 -4
  45. package/{esm2020 → esm2022}/lib/form.module.mjs +5 -5
  46. package/{esm2020 → esm2022}/lib/formly/field/checklist/checklist.item.field.component.mjs +9 -9
  47. package/{esm2020 → esm2022}/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +6 -6
  48. package/esm2022/lib/formly/field/checklist/checklist.item.field.module.mjs +67 -0
  49. package/{esm2020 → esm2022}/lib/formly/field/component/component.field.component.mjs +6 -6
  50. package/esm2022/lib/formly/field/component/component.field.module.mjs +32 -0
  51. package/esm2022/lib/formly/field/field.mjs +97 -0
  52. package/{esm2020 → esm2022}/lib/formly/field/form.field.module.mjs +5 -5
  53. package/{esm2020 → esm2022}/lib/formly/field/selection/list/list.field.component.mjs +4 -4
  54. package/esm2022/lib/formly/field/selection/list/list.field.module.mjs +76 -0
  55. package/esm2022/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +33 -0
  56. package/{esm2020 → esm2022}/lib/formly/field/selection/pickable/pickable.field.directive.mjs +4 -4
  57. package/esm2022/lib/formly/field/selection/pickable/pickable.field.module.mjs +93 -0
  58. package/esm2022/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +116 -0
  59. package/{esm2020 → esm2022}/lib/formly/field/selection/pickable/pickable.mjs +1 -1
  60. package/esm2022/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +68 -0
  61. package/esm2022/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +95 -0
  62. package/esm2022/lib/formly/field/selection/searchable/searchable.field.directive.mjs +278 -0
  63. package/esm2022/lib/formly/field/selection/searchable/searchable.field.module.mjs +91 -0
  64. package/{esm2020 → esm2022}/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +4 -4
  65. package/esm2022/lib/formly/field/selection/selection.field.mjs +39 -0
  66. package/{esm2020 → esm2022}/lib/formly/field/selection/selection.mjs +1 -1
  67. package/{esm2020 → esm2022}/lib/formly/field/selection/selection.module.mjs +5 -5
  68. package/{esm2020 → esm2022}/lib/formly/field/selection/sourceselect/sourceselect.field.component.mjs +4 -4
  69. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.module.mjs +93 -0
  70. package/{esm2020 → esm2022}/lib/formly/field/texteditor/texteditor.field.component.mjs +6 -6
  71. package/esm2022/lib/formly/field/texteditor/texteditor.field.module.mjs +51 -0
  72. package/{esm2020 → esm2022}/lib/formly/field/value/array/array.field.component.mjs +8 -8
  73. package/esm2022/lib/formly/field/value/array/array.field.module.mjs +62 -0
  74. package/esm2022/lib/formly/field/value/boolean/boolean.field.mjs +47 -0
  75. package/{esm2020 → esm2022}/lib/formly/field/value/boolean/boolean.field.module.mjs +5 -5
  76. package/esm2022/lib/formly/field/value/date/date.field.module.mjs +96 -0
  77. package/esm2022/lib/formly/field/value/date/datetime.field.component.mjs +488 -0
  78. package/esm2022/lib/formly/field/value/date/datetime.field.mjs +141 -0
  79. package/{esm2020 → esm2022}/lib/formly/field/value/date/datetime.field.service.mjs +9 -9
  80. package/esm2022/lib/formly/field/value/date/fixeddaterange.field.component.mjs +506 -0
  81. package/{esm2020 → esm2022}/lib/formly/field/value/number/number.field.module.mjs +5 -5
  82. package/esm2022/lib/formly/field/value/phone/phone.field.component.mjs +100 -0
  83. package/esm2022/lib/formly/field/value/phone/phone.field.module.mjs +66 -0
  84. package/{esm2020 → esm2022}/lib/formly/field/value/text/text.field.module.mjs +5 -5
  85. package/{esm2020 → esm2022}/lib/formly/field/value/value.module.mjs +5 -5
  86. package/{esm2020 → esm2022}/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +6 -6
  87. package/{esm2020 → esm2022}/lib/formly/field/wrapper/expandable.wrapper.component.mjs +6 -6
  88. package/{esm2020 → esm2022}/lib/formly/field/wrapper/expandable.wrapper.delegate.mjs +4 -4
  89. package/{esm2020 → esm2022}/lib/formly/field/wrapper/flex.wrapper.component.mjs +6 -6
  90. package/esm2022/lib/formly/field/wrapper/form.wrapper.module.mjs +86 -0
  91. package/{esm2020 → esm2022}/lib/formly/field/wrapper/info.wrapper.component.mjs +7 -7
  92. package/esm2022/lib/formly/field/wrapper/section.wrapper.component.mjs +27 -0
  93. package/{esm2020 → esm2022}/lib/formly/field/wrapper/style.wrapper.component.mjs +7 -7
  94. package/esm2022/lib/formly/field/wrapper/subsection.wrapper.component.mjs +27 -0
  95. package/{esm2020 → esm2022}/lib/formly/field/wrapper/toggle.wrapper.component.mjs +6 -6
  96. package/{esm2020 → esm2022}/lib/formly/field/wrapper/working.wrapper.component.mjs +6 -6
  97. package/esm2022/lib/formly/field/wrapper/wrapper.mjs +73 -0
  98. package/{esm2020 → esm2022}/lib/formly/form/form.form.module.mjs +5 -5
  99. package/{esm2020 → esm2022}/lib/formly/form/search.form.component.mjs +6 -6
  100. package/{esm2020 → esm2022}/lib/formly/formly.context.directive.mjs +4 -4
  101. package/esm2022/lib/formly/formly.context.mjs +100 -0
  102. package/{esm2020 → esm2022}/lib/formly/formly.directive.mjs +16 -16
  103. package/{esm2020 → esm2022}/lib/formly/formly.form.component.mjs +6 -6
  104. package/{esm2020 → esm2022}/lib/formly/formly.module.mjs +16 -16
  105. package/{esm2020 → esm2022}/lib/layout/form.layout.module.mjs +5 -5
  106. package/{esm2020 → esm2022}/lib/layout/form.spacer.component.mjs +6 -6
  107. package/{esm2020 → esm2022}/mapbox/lib/field/latlng/latlng.field.component.mjs +10 -10
  108. package/{esm2020 → esm2022}/mapbox/lib/field/latlng/latlng.field.marker.component.mjs +6 -6
  109. package/esm2022/mapbox/lib/field/latlng/latlng.field.mjs +35 -0
  110. package/esm2022/mapbox/lib/field/latlng/latlng.module.mjs +59 -0
  111. package/{mapbox/esm2020 → esm2022/mapbox}/lib/field/zoom/zoom.field.component.mjs +10 -10
  112. package/esm2022/mapbox/lib/field/zoom/zoom.field.mjs +23 -0
  113. package/esm2022/mapbox/lib/field/zoom/zoom.module.mjs +57 -0
  114. package/{mapbox/esm2020 → esm2022/mapbox}/lib/mapbox.module.mjs +5 -5
  115. package/{fesm2020 → fesm2022}/dereekb-dbx-form-calendar.mjs +188 -228
  116. package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -0
  117. package/{mapbox/fesm2020 → fesm2022}/dereekb-dbx-form-mapbox.mjs +76 -76
  118. package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -0
  119. package/{fesm2020 → fesm2022}/dereekb-dbx-form.mjs +820 -831
  120. package/fesm2022/dereekb-dbx-form.mjs.map +1 -0
  121. package/lib/extension/_extension.scss +11 -6
  122. package/lib/extension/calendar/_calendar.scss +7 -5
  123. package/lib/form/_form.scss +3 -2
  124. package/lib/form/action/form.action.directive.d.ts +2 -2
  125. package/lib/form/action/transition/form.action.transition.safety.directive.d.ts +1 -1
  126. package/lib/form/form.angular.util.d.ts +1 -1
  127. package/lib/form/form.d.ts +1 -1
  128. package/lib/form/io/form.changes.directive.d.ts +1 -1
  129. package/lib/form/io/form.input.directive.d.ts +2 -2
  130. package/lib/form/io/form.loading.directive.d.ts +1 -1
  131. package/lib/formly/_formly.scss +7 -9
  132. package/lib/formly/field/_field.scss +7 -7
  133. package/lib/formly/field/checklist/_checklist.scss +3 -2
  134. package/lib/formly/field/checklist/checklist.field.d.ts +4 -4
  135. package/lib/formly/field/checklist/checklist.item.d.ts +1 -1
  136. package/lib/formly/field/checklist/checklist.item.field.component.d.ts +2 -2
  137. package/lib/formly/field/checklist/checklist.item.field.content.default.component.d.ts +4 -4
  138. package/lib/formly/field/checklist/checklist.item.field.d.ts +1 -1
  139. package/lib/formly/field/component/_component.scss +3 -2
  140. package/lib/formly/field/component/component.field.component.d.ts +2 -2
  141. package/lib/formly/field/component/component.field.d.ts +1 -1
  142. package/lib/formly/field/field.d.ts +5 -11
  143. package/lib/formly/field/selection/_selection.scss +5 -5
  144. package/lib/formly/field/selection/list/_list.scss +3 -2
  145. package/lib/formly/field/selection/list/list.field.component.d.ts +1 -1
  146. package/lib/formly/field/selection/pickable/_pickable.scss +3 -9
  147. package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +1 -1
  148. package/lib/formly/field/selection/pickable/pickable.d.ts +6 -22
  149. package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +3 -3
  150. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +4 -4
  151. package/lib/formly/field/selection/pickable/pickable.util.d.ts +2 -2
  152. package/lib/formly/field/selection/searchable/_searchable.scss +5 -5
  153. package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +1 -1
  154. package/lib/formly/field/selection/searchable/searchable.d.ts +4 -4
  155. package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +3 -3
  156. package/lib/formly/field/selection/searchable/searchable.field.d.ts +1 -1
  157. package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +1 -1
  158. package/lib/formly/field/selection/searchable/searchable.text.field.component.d.ts +1 -1
  159. package/lib/formly/field/selection/selection.d.ts +1 -5
  160. package/lib/formly/field/selection/selection.field.d.ts +1 -1
  161. package/lib/formly/field/selection/sourceselect/_sourceselect.scss +6 -15
  162. package/lib/formly/field/selection/sourceselect/sourceselect.d.ts +6 -6
  163. package/lib/formly/field/selection/sourceselect/sourceselect.field.component.d.ts +1 -1
  164. package/lib/formly/field/selection/sourceselect/sourceselect.field.module.d.ts +1 -1
  165. package/lib/formly/field/texteditor/_texteditor.scss +3 -2
  166. package/lib/formly/field/texteditor/texteditor.field.component.d.ts +2 -2
  167. package/lib/formly/field/value/_value.scss +10 -6
  168. package/lib/formly/field/value/array/_array.scss +7 -2
  169. package/lib/formly/field/value/array/array.field.component.d.ts +2 -2
  170. package/lib/formly/field/value/boolean/_boolean.scss +5 -4
  171. package/lib/formly/field/value/date/_date.scss +20 -37
  172. package/lib/formly/field/value/date/date.field.module.d.ts +1 -1
  173. package/lib/formly/field/value/date/datetime.field.component.d.ts +3 -13
  174. package/lib/formly/field/value/date/datetime.field.d.ts +5 -5
  175. package/lib/formly/field/value/date/fixeddaterange.field.component.d.ts +7 -7
  176. package/lib/formly/field/value/hidden.field.d.ts +1 -1
  177. package/lib/formly/field/value/number/_number.scss +35 -0
  178. package/lib/formly/field/value/number/number.field.d.ts +3 -3
  179. package/lib/formly/field/value/phone/_phone.scss +4 -3
  180. package/lib/formly/field/value/phone/phone.field.component.d.ts +1 -1
  181. package/lib/formly/field/value/phone/phone.field.module.d.ts +1 -1
  182. package/lib/formly/field/value/text/_text.scss +3 -2
  183. package/lib/formly/field/value/text/text.additional.field.d.ts +3 -3
  184. package/lib/formly/field/value/text/text.field.d.ts +2 -2
  185. package/lib/formly/field/wrapper/_wrapper.scss +5 -4
  186. package/lib/formly/field/wrapper/autotouch.wrapper.component.d.ts +1 -1
  187. package/lib/formly/field/wrapper/expandable.wrapper.component.d.ts +2 -2
  188. package/lib/formly/field/wrapper/expandable.wrapper.delegate.d.ts +1 -1
  189. package/lib/formly/field/wrapper/flex.wrapper.component.d.ts +1 -1
  190. package/lib/formly/field/wrapper/form.wrapper.module.d.ts +1 -1
  191. package/lib/formly/field/wrapper/info.wrapper.component.d.ts +1 -1
  192. package/lib/formly/field/wrapper/section.wrapper.component.d.ts +2 -2
  193. package/lib/formly/field/wrapper/style.wrapper.component.d.ts +2 -2
  194. package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +2 -2
  195. package/lib/formly/field/wrapper/toggle.wrapper.component.d.ts +1 -1
  196. package/lib/formly/field/wrapper/working.wrapper.component.d.ts +2 -2
  197. package/lib/formly/field/wrapper/wrapper.d.ts +1 -1
  198. package/lib/formly/form/_form.scss +17 -4
  199. package/lib/formly/form/search.form.component.d.ts +1 -1
  200. package/lib/formly/formly.context.directive.d.ts +1 -1
  201. package/lib/formly/formly.directive.d.ts +4 -4
  202. package/lib/formly/formly.form.component.d.ts +1 -1
  203. package/lib/formly/template/login.d.ts +1 -1
  204. package/lib/formly/template/timezone.d.ts +1 -1
  205. package/lib/layout/_layout.scss +3 -2
  206. package/lib/layout/form.spacer.component.d.ts +1 -1
  207. package/lib/style/_all-typography.scss +11 -3
  208. package/lib/style/_core.scss +1 -2
  209. package/lib/style/_mixin.scss +10 -0
  210. package/lib/style/_theming.scss +1 -1
  211. package/lib/validator/available.d.ts +1 -1
  212. package/mapbox/{esm2020 → esm2022}/lib/field/latlng/latlng.field.component.mjs +10 -10
  213. package/mapbox/{esm2020 → esm2022}/lib/field/latlng/latlng.field.marker.component.mjs +6 -6
  214. package/mapbox/esm2022/lib/field/latlng/latlng.field.mjs +35 -0
  215. package/mapbox/esm2022/lib/field/latlng/latlng.module.mjs +59 -0
  216. package/{esm2020/mapbox → mapbox/esm2022}/lib/field/zoom/zoom.field.component.mjs +10 -10
  217. package/mapbox/esm2022/lib/field/zoom/zoom.field.mjs +23 -0
  218. package/mapbox/esm2022/lib/field/zoom/zoom.module.mjs +57 -0
  219. package/{esm2020/mapbox → mapbox/esm2022}/lib/mapbox.module.mjs +5 -5
  220. package/{fesm2020 → mapbox/fesm2022}/dereekb-dbx-form-mapbox.mjs +76 -76
  221. package/mapbox/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -0
  222. package/mapbox/lib/field/latlng/latlng.field.component.d.ts +1 -1
  223. package/mapbox/lib/field/latlng/latlng.field.marker.component.d.ts +1 -1
  224. package/mapbox/lib/field/zoom/zoom.field.component.d.ts +1 -1
  225. package/mapbox/package.json +10 -28
  226. package/package.json +31 -31
  227. package/esm2020/calendar/lib/calendar.module.mjs +0 -155
  228. package/esm2020/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +0 -38
  229. package/esm2020/calendar/lib/calendar.schedule.selection.dialog.component.mjs +0 -65
  230. package/esm2020/calendar/lib/calendar.schedule.selection.popover.component.mjs +0 -37
  231. package/esm2020/calendar/lib/calendar.schedule.selection.range.component.mjs +0 -188
  232. package/esm2020/calendar/lib/calendar.schedule.selection.store.mjs +0 -814
  233. package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +0 -158
  234. package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.mjs +0 -29
  235. package/esm2020/calendar/lib/field/schedule/calendar.schedule.module.mjs +0 -58
  236. package/esm2020/lib/formly/field/checklist/checklist.item.field.module.mjs +0 -67
  237. package/esm2020/lib/formly/field/component/component.field.module.mjs +0 -32
  238. package/esm2020/lib/formly/field/field.mjs +0 -103
  239. package/esm2020/lib/formly/field/selection/list/list.field.module.mjs +0 -76
  240. package/esm2020/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +0 -33
  241. package/esm2020/lib/formly/field/selection/pickable/pickable.field.module.mjs +0 -93
  242. package/esm2020/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +0 -116
  243. package/esm2020/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +0 -68
  244. package/esm2020/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +0 -95
  245. package/esm2020/lib/formly/field/selection/searchable/searchable.field.directive.mjs +0 -278
  246. package/esm2020/lib/formly/field/selection/searchable/searchable.field.module.mjs +0 -91
  247. package/esm2020/lib/formly/field/selection/selection.field.mjs +0 -39
  248. package/esm2020/lib/formly/field/selection/sourceselect/sourceselect.field.module.mjs +0 -93
  249. package/esm2020/lib/formly/field/texteditor/texteditor.field.module.mjs +0 -51
  250. package/esm2020/lib/formly/field/value/array/array.field.module.mjs +0 -62
  251. package/esm2020/lib/formly/field/value/boolean/boolean.field.mjs +0 -47
  252. package/esm2020/lib/formly/field/value/date/date.field.module.mjs +0 -96
  253. package/esm2020/lib/formly/field/value/date/datetime.field.component.mjs +0 -488
  254. package/esm2020/lib/formly/field/value/date/datetime.field.mjs +0 -143
  255. package/esm2020/lib/formly/field/value/date/fixeddaterange.field.component.mjs +0 -506
  256. package/esm2020/lib/formly/field/value/phone/phone.field.component.mjs +0 -100
  257. package/esm2020/lib/formly/field/value/phone/phone.field.module.mjs +0 -66
  258. package/esm2020/lib/formly/field/wrapper/form.wrapper.module.mjs +0 -86
  259. package/esm2020/lib/formly/field/wrapper/section.wrapper.component.mjs +0 -26
  260. package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +0 -26
  261. package/esm2020/lib/formly/field/wrapper/wrapper.mjs +0 -78
  262. package/esm2020/lib/formly/formly.context.mjs +0 -100
  263. package/esm2020/mapbox/lib/field/latlng/latlng.field.mjs +0 -35
  264. package/esm2020/mapbox/lib/field/latlng/latlng.module.mjs +0 -59
  265. package/esm2020/mapbox/lib/field/zoom/zoom.field.mjs +0 -23
  266. package/esm2020/mapbox/lib/field/zoom/zoom.module.mjs +0 -57
  267. package/fesm2015/dereekb-dbx-form-calendar.mjs +0 -1955
  268. package/fesm2015/dereekb-dbx-form-calendar.mjs.map +0 -1
  269. package/fesm2015/dereekb-dbx-form-mapbox.mjs +0 -585
  270. package/fesm2015/dereekb-dbx-form-mapbox.mjs.map +0 -1
  271. package/fesm2015/dereekb-dbx-form.mjs +0 -6205
  272. package/fesm2015/dereekb-dbx-form.mjs.map +0 -1
  273. package/fesm2020/dereekb-dbx-form-calendar.mjs.map +0 -1
  274. package/fesm2020/dereekb-dbx-form-mapbox.mjs.map +0 -1
  275. package/fesm2020/dereekb-dbx-form.mjs.map +0 -1
  276. package/mapbox/esm2020/lib/field/latlng/latlng.field.mjs +0 -35
  277. package/mapbox/esm2020/lib/field/latlng/latlng.module.mjs +0 -59
  278. package/mapbox/esm2020/lib/field/zoom/zoom.field.mjs +0 -23
  279. package/mapbox/esm2020/lib/field/zoom/zoom.module.mjs +0 -57
  280. package/mapbox/fesm2015/dereekb-dbx-form-mapbox.mjs +0 -585
  281. package/mapbox/fesm2015/dereekb-dbx-form-mapbox.mjs.map +0 -1
  282. package/mapbox/fesm2020/dereekb-dbx-form-mapbox.mjs.map +0 -1
  283. /package/{esm2020 → esm2022}/calendar/dereekb-dbx-form-calendar.mjs +0 -0
  284. /package/{esm2020 → esm2022}/calendar/index.mjs +0 -0
  285. /package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.form.mjs +0 -0
  286. /package/{esm2020 → esm2022}/calendar/lib/field/index.mjs +0 -0
  287. /package/{esm2020 → esm2022}/calendar/lib/field/schedule/index.mjs +0 -0
  288. /package/{esm2020 → esm2022}/calendar/lib/index.mjs +0 -0
  289. /package/{esm2020 → esm2022}/dereekb-dbx-form.mjs +0 -0
  290. /package/{esm2020 → esm2022}/index.mjs +0 -0
  291. /package/{esm2020 → esm2022}/lib/form/action/index.mjs +0 -0
  292. /package/{esm2020 → esm2022}/lib/form/action/transition/index.mjs +0 -0
  293. /package/{esm2020 → esm2022}/lib/form/form.angular.util.mjs +0 -0
  294. /package/{esm2020 → esm2022}/lib/form/form.mjs +0 -0
  295. /package/{esm2020 → esm2022}/lib/form/index.mjs +0 -0
  296. /package/{esm2020 → esm2022}/lib/form/io/index.mjs +0 -0
  297. /package/{esm2020 → esm2022}/lib/formly/config/index.mjs +0 -0
  298. /package/{esm2020 → esm2022}/lib/formly/config/validation.mjs +0 -0
  299. /package/{esm2020 → esm2022}/lib/formly/field/checklist/checklist.field.mjs +0 -0
  300. /package/{esm2020 → esm2022}/lib/formly/field/checklist/checklist.item.field.mjs +0 -0
  301. /package/{esm2020 → esm2022}/lib/formly/field/checklist/checklist.item.mjs +0 -0
  302. /package/{esm2020 → esm2022}/lib/formly/field/checklist/index.mjs +0 -0
  303. /package/{esm2020 → esm2022}/lib/formly/field/component/component.field.mjs +0 -0
  304. /package/{esm2020 → esm2022}/lib/formly/field/component/index.mjs +0 -0
  305. /package/{esm2020 → esm2022}/lib/formly/field/index.mjs +0 -0
  306. /package/{esm2020 → esm2022}/lib/formly/field/selection/index.mjs +0 -0
  307. /package/{esm2020 → esm2022}/lib/formly/field/selection/list/index.mjs +0 -0
  308. /package/{esm2020 → esm2022}/lib/formly/field/selection/list/list.field.mjs +0 -0
  309. /package/{esm2020 → esm2022}/lib/formly/field/selection/pickable/index.mjs +0 -0
  310. /package/{esm2020 → esm2022}/lib/formly/field/selection/pickable/pickable.field.mjs +0 -0
  311. /package/{esm2020 → esm2022}/lib/formly/field/selection/pickable/pickable.util.mjs +0 -0
  312. /package/{esm2020 → esm2022}/lib/formly/field/selection/searchable/index.mjs +0 -0
  313. /package/{esm2020 → esm2022}/lib/formly/field/selection/searchable/searchable.field.mjs +0 -0
  314. /package/{esm2020 → esm2022}/lib/formly/field/selection/searchable/searchable.mjs +0 -0
  315. /package/{esm2020 → esm2022}/lib/formly/field/selection/searchable/text.chip.field.mjs +0 -0
  316. /package/{esm2020 → esm2022}/lib/formly/field/selection/sourceselect/index.mjs +0 -0
  317. /package/{esm2020 → esm2022}/lib/formly/field/selection/sourceselect/sourceselect.field.mjs +0 -0
  318. /package/{esm2020 → esm2022}/lib/formly/field/selection/sourceselect/sourceselect.mjs +0 -0
  319. /package/{esm2020 → esm2022}/lib/formly/field/texteditor/index.mjs +0 -0
  320. /package/{esm2020 → esm2022}/lib/formly/field/texteditor/texteditor.field.mjs +0 -0
  321. /package/{esm2020 → esm2022}/lib/formly/field/value/array/array.field.mjs +0 -0
  322. /package/{esm2020 → esm2022}/lib/formly/field/value/array/index.mjs +0 -0
  323. /package/{esm2020 → esm2022}/lib/formly/field/value/boolean/index.mjs +0 -0
  324. /package/{esm2020 → esm2022}/lib/formly/field/value/date/date.value.mjs +0 -0
  325. /package/{esm2020 → esm2022}/lib/formly/field/value/date/datetime.mjs +0 -0
  326. /package/{esm2020 → esm2022}/lib/formly/field/value/date/datetime.preset.mjs +0 -0
  327. /package/{esm2020 → esm2022}/lib/formly/field/value/date/index.mjs +0 -0
  328. /package/{esm2020 → esm2022}/lib/formly/field/value/hidden.field.mjs +0 -0
  329. /package/{esm2020 → esm2022}/lib/formly/field/value/index.mjs +0 -0
  330. /package/{esm2020 → esm2022}/lib/formly/field/value/number/index.mjs +0 -0
  331. /package/{esm2020 → esm2022}/lib/formly/field/value/number/number.field.mjs +0 -0
  332. /package/{esm2020 → esm2022}/lib/formly/field/value/phone/index.mjs +0 -0
  333. /package/{esm2020 → esm2022}/lib/formly/field/value/phone/phone.field.mjs +0 -0
  334. /package/{esm2020 → esm2022}/lib/formly/field/value/text/index.mjs +0 -0
  335. /package/{esm2020 → esm2022}/lib/formly/field/value/text/text.additional.field.mjs +0 -0
  336. /package/{esm2020 → esm2022}/lib/formly/field/value/text/text.address.field.mjs +0 -0
  337. /package/{esm2020 → esm2022}/lib/formly/field/value/text/text.field.mjs +0 -0
  338. /package/{esm2020 → esm2022}/lib/formly/field/wrapper/index.mjs +0 -0
  339. /package/{esm2020 → esm2022}/lib/formly/form/form.form.mjs +0 -0
  340. /package/{esm2020 → esm2022}/lib/formly/form/index.mjs +0 -0
  341. /package/{esm2020 → esm2022}/lib/formly/index.mjs +0 -0
  342. /package/{esm2020 → esm2022}/lib/formly/template/available.mjs +0 -0
  343. /package/{esm2020 → esm2022}/lib/formly/template/index.mjs +0 -0
  344. /package/{esm2020 → esm2022}/lib/formly/template/login.mjs +0 -0
  345. /package/{esm2020 → esm2022}/lib/formly/template/timezone.mjs +0 -0
  346. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  347. /package/{esm2020 → esm2022}/lib/layout/index.mjs +0 -0
  348. /package/{esm2020 → esm2022}/lib/validator/available.mjs +0 -0
  349. /package/{esm2020 → esm2022}/lib/validator/boolean.mjs +0 -0
  350. /package/{esm2020 → esm2022}/lib/validator/email.mjs +0 -0
  351. /package/{esm2020 → esm2022}/lib/validator/field.mjs +0 -0
  352. /package/{esm2020 → esm2022}/lib/validator/index.mjs +0 -0
  353. /package/{esm2020 → esm2022}/lib/validator/number.mjs +0 -0
  354. /package/{esm2020 → esm2022}/lib/validator/phone.mjs +0 -0
  355. /package/{esm2020 → esm2022}/mapbox/dereekb-dbx-form-mapbox.mjs +0 -0
  356. /package/{esm2020 → esm2022}/mapbox/index.mjs +0 -0
  357. /package/{esm2020 → esm2022}/mapbox/lib/field/index.mjs +0 -0
  358. /package/{esm2020 → esm2022}/mapbox/lib/field/latlng/index.mjs +0 -0
  359. /package/{esm2020 → esm2022}/mapbox/lib/field/zoom/index.mjs +0 -0
  360. /package/mapbox/{esm2020 → esm2022}/dereekb-dbx-form-mapbox.mjs +0 -0
  361. /package/mapbox/{esm2020 → esm2022}/index.mjs +0 -0
  362. /package/mapbox/{esm2020 → esm2022}/lib/field/index.mjs +0 -0
  363. /package/mapbox/{esm2020 → esm2022}/lib/field/latlng/index.mjs +0 -0
  364. /package/mapbox/{esm2020 → esm2022}/lib/field/zoom/index.mjs +0 -0
@@ -8,15 +8,15 @@ import * as i1 from "./formly.context";
8
8
  * Abstract component for wrapping a form.
9
9
  */
10
10
  export class AbstractFormlyFormDirective {
11
- constructor(context) {
12
- this.context = context;
13
- }
14
11
  get disabled() {
15
12
  return this.context.isDisabled();
16
13
  }
17
14
  set disabled(disabled) {
18
15
  this.context.setDisabled(undefined, disabled);
19
16
  }
17
+ constructor(context) {
18
+ this.context = context;
19
+ }
20
20
  ngOnDestroy() {
21
21
  this.context.destroy();
22
22
  }
@@ -36,10 +36,10 @@ export class AbstractFormlyFormDirective {
36
36
  setDisabled(key, disabled) {
37
37
  this.context.setDisabled(key, disabled);
38
38
  }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractFormlyFormDirective, deps: [{ token: i1.DbxFormlyContext }], target: i0.ɵɵFactoryTarget.Directive }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractFormlyFormDirective, inputs: { disabled: "disabled" }, ngImport: i0 }); }
39
41
  }
40
- AbstractFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractFormlyFormDirective, deps: [{ token: i1.DbxFormlyContext }], target: i0.ɵɵFactoryTarget.Directive });
41
- AbstractFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AbstractFormlyFormDirective, inputs: { disabled: "disabled" }, ngImport: i0 });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractFormlyFormDirective, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractFormlyFormDirective, decorators: [{
43
43
  type: Directive
44
44
  }], ctorParameters: function () { return [{ type: i1.DbxFormlyContext }]; }, propDecorators: { disabled: [{
45
45
  type: Input
@@ -51,10 +51,10 @@ export class AbstractSyncFormlyFormDirective extends AbstractFormlyFormDirective
51
51
  ngOnInit() {
52
52
  this.context.fields = this.fields;
53
53
  }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractSyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
55
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractSyncFormlyFormDirective, usesInheritance: true, ngImport: i0 }); }
54
56
  }
55
- AbstractSyncFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractSyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
56
- AbstractSyncFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AbstractSyncFormlyFormDirective, usesInheritance: true, ngImport: i0 });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractSyncFormlyFormDirective, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractSyncFormlyFormDirective, decorators: [{
58
58
  type: Directive
59
59
  }] });
60
60
  /**
@@ -74,10 +74,10 @@ export class AbstractAsyncFormlyFormDirective extends AbstractFormlyFormDirectiv
74
74
  super.ngOnDestroy();
75
75
  this._fieldsSub.destroy();
76
76
  }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
78
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractAsyncFormlyFormDirective, usesInheritance: true, ngImport: i0 }); }
77
79
  }
78
- AbstractAsyncFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
79
- AbstractAsyncFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AbstractAsyncFormlyFormDirective, usesInheritance: true, ngImport: i0 });
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractAsyncFormlyFormDirective, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractAsyncFormlyFormDirective, decorators: [{
81
81
  type: Directive
82
82
  }] });
83
83
  export class AbstractConfigAsyncFormlyFormDirective extends AbstractAsyncFormlyFormDirective {
@@ -97,12 +97,12 @@ export class AbstractConfigAsyncFormlyFormDirective extends AbstractAsyncFormlyF
97
97
  super.ngOnDestroy();
98
98
  this._config.complete();
99
99
  }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
101
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractConfigAsyncFormlyFormDirective, inputs: { config: "config" }, usesInheritance: true, ngImport: i0 }); }
100
102
  }
101
- AbstractConfigAsyncFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
102
- AbstractConfigAsyncFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AbstractConfigAsyncFormlyFormDirective, inputs: { config: "config" }, usesInheritance: true, ngImport: i0 });
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, decorators: [{
104
104
  type: Directive
105
105
  }], propDecorators: { config: [{
106
106
  type: Input
107
107
  }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2Zvcm1seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQWMsZUFBZSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RixPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUlwRDs7R0FFRztBQUVILE1BQU0sT0FBZ0IsMkJBQTJCO0lBVS9DLFlBQTRCLE9BQTRCO1FBQTVCLFlBQU8sR0FBUCxPQUFPLENBQXFCO0lBQUcsQ0FBQztJQVQ1RCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFFBQWlCO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBSUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBaUI7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQXdCLEVBQUUsUUFBa0I7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3lIQW5DbUIsMkJBQTJCOzZHQUEzQiwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFEaEQsU0FBUzt1R0FHSixRQUFRO3NCQURYLEtBQUs7O0FBcUNSOztHQUVHO0FBRUgsTUFBTSxPQUFnQiwrQkFBbUMsU0FBUSwyQkFBOEI7SUFHN0YsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDcEMsQ0FBQzs7NkhBTG1CLCtCQUErQjtpSEFBL0IsK0JBQStCOzRGQUEvQiwrQkFBK0I7a0JBRHBELFNBQVM7O0FBU1Y7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGdDQUFvQyxTQUFRLDJCQUE4QjtJQURoRzs7UUFPVSxlQUFVLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0tBWS9DO0lBVkMsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1RixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs4SEFqQm1CLGdDQUFnQztrSEFBaEMsZ0NBQWdDOzRGQUFoQyxnQ0FBZ0M7a0JBRHJELFNBQVM7O0FBc0JWLE1BQU0sT0FBZ0Isc0NBQTZDLFNBQVEsZ0NBQW1DO0lBRDlHOztRQUVtQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQVcsU0FBUyxDQUFDLENBQUM7UUFFM0QsbUJBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdDLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQWVyRTtJQWJDLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLE1BQWdCO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7O29JQWxCbUIsc0NBQXNDO3dIQUF0QyxzQ0FBc0M7NEZBQXRDLHNDQUFzQztrQkFEM0QsU0FBUzs4QkFRSixNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb25PYmplY3QsIGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IE9uSW5pdCwgT25EZXN0cm95LCBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtbHlDb250ZXh0IH0gZnJvbSAnLi9mb3JtbHkuY29udGV4dCc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4Rm9ybURpc2FibGVkS2V5IH0gZnJvbSAnLi4vZm9ybS9mb3JtJztcblxuLyoqXG4gKiBBYnN0cmFjdCBjb21wb25lbnQgZm9yIHdyYXBwaW5nIGEgZm9ybS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGb3JtbHlGb3JtRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQuaXNEaXNhYmxlZCgpO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5jb250ZXh0LnNldERpc2FibGVkKHVuZGVmaW5lZCwgZGlzYWJsZWQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNvbnRleHQ6IERieEZvcm1seUNvbnRleHQ8VD4pIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8vIFV0aWxpdHkgRnVuY3Rpb25zXG4gIGdldFZhbHVlKCk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBQYXJ0aWFsPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQucmVzZXRGb3JtKCk7XG4gIH1cblxuICBjbGVhclZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWUoe30pO1xuICB9XG5cbiAgc2V0RGlzYWJsZWQoa2V5PzogRGJ4Rm9ybURpc2FibGVkS2V5LCBkaXNhYmxlZD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuc2V0RGlzYWJsZWQoa2V5LCBkaXNhYmxlZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBjb21wb25lbnQgZm9yIHdyYXBwaW5nIGEgZm9ybS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTeW5jRm9ybWx5Rm9ybURpcmVjdGl2ZTxUPiBleHRlbmRzIEFic3RyYWN0Rm9ybWx5Rm9ybURpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgYWJzdHJhY3QgZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5maWVsZHMgPSB0aGlzLmZpZWxkcztcbiAgfVxufVxuXG4vKipcbiAqIEFic3RyYWN0IGNvbXBvbmVudCBmb3Igd3JhcHBpbmcgYW4gYXN5bmNyaHJvbm91c2x5LWNvbmZpZ3VyZWQgZm9ybS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RBc3luY0Zvcm1seUZvcm1EaXJlY3RpdmU8VD4gZXh0ZW5kcyBBYnN0cmFjdEZvcm1seUZvcm1EaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIHByb3ZpZGUgZmllbGRzIHRvIHRoZSBjb250ZXh0LlxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgZmllbGRzJDogT2JzZXJ2YWJsZTxNYXliZTxGb3JtbHlGaWVsZENvbmZpZ1tdPj47XG5cbiAgcHJpdmF0ZSBfZmllbGRzU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpZWxkc1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmZpZWxkcyQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKGZpZWxkcykgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0LmZpZWxkcyA9IGZpZWxkcztcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fZmllbGRzU3ViLmRlc3Ryb3koKTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdENvbmZpZ0FzeW5jRm9ybWx5Rm9ybURpcmVjdGl2ZTxULCBDPiBleHRlbmRzIEFic3RyYWN0QXN5bmNGb3JtbHlGb3JtRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEM+Pih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRDb25maWckID0gdGhpcy5fY29uZmlnLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjb25maWckID0gdGhpcy5fY29uZmlnLnBpcGUoZmlsdGVyTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBjb25maWcoKTogTWF5YmU8Qz4ge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcudmFsdWU7XG4gIH1cblxuICBzZXQgY29uZmlnKGNvbmZpZzogTWF5YmU8Qz4pIHtcbiAgICB0aGlzLl9jb25maWcubmV4dChjb25maWcpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9jb25maWcuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2Zvcm1seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQWMsZUFBZSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RixPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUlwRDs7R0FFRztBQUVILE1BQU0sT0FBZ0IsMkJBQTJCO0lBQy9DLElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBaUI7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxZQUE0QixPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUFHLENBQUM7SUFFNUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBaUI7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQXdCLEVBQUUsUUFBa0I7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBbkNtQiwyQkFBMkI7bUdBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFEaEQsU0FBUzt1R0FHSixRQUFRO3NCQURYLEtBQUs7O0FBcUNSOztHQUVHO0FBRUgsTUFBTSxPQUFnQiwrQkFBbUMsU0FBUSwyQkFBOEI7SUFHN0YsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDcEMsQ0FBQzsrR0FMbUIsK0JBQStCO21HQUEvQiwrQkFBK0I7OzRGQUEvQiwrQkFBK0I7a0JBRHBELFNBQVM7O0FBU1Y7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGdDQUFvQyxTQUFRLDJCQUE4QjtJQURoRzs7UUFPVSxlQUFVLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0tBWS9DO0lBVkMsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1RixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDOytHQWpCbUIsZ0NBQWdDO21HQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRHJELFNBQVM7O0FBc0JWLE1BQU0sT0FBZ0Isc0NBQTZDLFNBQVEsZ0NBQW1DO0lBRDlHOztRQUVtQixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQVcsU0FBUyxDQUFDLENBQUM7UUFFM0QsbUJBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdDLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQWVyRTtJQWJDLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLE1BQWdCO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBbEJtQixzQ0FBc0M7bUdBQXRDLHNDQUFzQzs7NEZBQXRDLHNDQUFzQztrQkFEM0QsU0FBUzs4QkFRSixNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb25PYmplY3QsIGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IE9uSW5pdCwgT25EZXN0cm95LCBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtbHlDb250ZXh0IH0gZnJvbSAnLi9mb3JtbHkuY29udGV4dCc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4Rm9ybURpc2FibGVkS2V5IH0gZnJvbSAnLi4vZm9ybS9mb3JtJztcblxuLyoqXG4gKiBBYnN0cmFjdCBjb21wb25lbnQgZm9yIHdyYXBwaW5nIGEgZm9ybS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGb3JtbHlGb3JtRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQuaXNEaXNhYmxlZCgpO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5jb250ZXh0LnNldERpc2FibGVkKHVuZGVmaW5lZCwgZGlzYWJsZWQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNvbnRleHQ6IERieEZvcm1seUNvbnRleHQ8VD4pIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8vIFV0aWxpdHkgRnVuY3Rpb25zXG4gIGdldFZhbHVlKCk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBQYXJ0aWFsPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQucmVzZXRGb3JtKCk7XG4gIH1cblxuICBjbGVhclZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWUoe30pO1xuICB9XG5cbiAgc2V0RGlzYWJsZWQoa2V5PzogRGJ4Rm9ybURpc2FibGVkS2V5LCBkaXNhYmxlZD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuc2V0RGlzYWJsZWQoa2V5LCBkaXNhYmxlZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBjb21wb25lbnQgZm9yIHdyYXBwaW5nIGEgZm9ybS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTeW5jRm9ybWx5Rm9ybURpcmVjdGl2ZTxUPiBleHRlbmRzIEFic3RyYWN0Rm9ybWx5Rm9ybURpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgYWJzdHJhY3QgZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5maWVsZHMgPSB0aGlzLmZpZWxkcztcbiAgfVxufVxuXG4vKipcbiAqIEFic3RyYWN0IGNvbXBvbmVudCBmb3Igd3JhcHBpbmcgYW4gYXN5bmNyaHJvbm91c2x5LWNvbmZpZ3VyZWQgZm9ybS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RBc3luY0Zvcm1seUZvcm1EaXJlY3RpdmU8VD4gZXh0ZW5kcyBBYnN0cmFjdEZvcm1seUZvcm1EaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIHByb3ZpZGUgZmllbGRzIHRvIHRoZSBjb250ZXh0LlxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgZmllbGRzJDogT2JzZXJ2YWJsZTxNYXliZTxGb3JtbHlGaWVsZENvbmZpZ1tdPj47XG5cbiAgcHJpdmF0ZSBfZmllbGRzU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpZWxkc1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmZpZWxkcyQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKGZpZWxkcykgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0LmZpZWxkcyA9IGZpZWxkcztcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fZmllbGRzU3ViLmRlc3Ryb3koKTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdENvbmZpZ0FzeW5jRm9ybWx5Rm9ybURpcmVjdGl2ZTxULCBDPiBleHRlbmRzIEFic3RyYWN0QXN5bmNGb3JtbHlGb3JtRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEM+Pih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRDb25maWckID0gdGhpcy5fY29uZmlnLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjb25maWckID0gdGhpcy5fY29uZmlnLnBpcGUoZmlsdGVyTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBjb25maWcoKTogTWF5YmU8Qz4ge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcudmFsdWU7XG4gIH1cblxuICBzZXQgY29uZmlnKGNvbmZpZzogTWF5YmU8Qz4pIHtcbiAgICB0aGlzLl9jb25maWcubmV4dChjb25maWcpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9jb25maWcuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -168,14 +168,14 @@ export class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
168
168
  forceFormUpdate() {
169
169
  this._forceUpdate.next();
170
170
  }
171
- }
172
- DbxFormlyFormComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormlyFormComponent, deps: [{ token: i1.DbxFormlyContext }], target: i0.ɵɵFactoryTarget.Component });
173
- DbxFormlyFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFormlyFormComponent, selector: "dbx-formly", host: { classAttribute: "dbx-formly" }, providers: provideDbxMutableForm(DbxFormlyFormComponent), exportAs: ["formly"], usesInheritance: true, ngImport: i0, template: `
171
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyFormComponent, deps: [{ token: i1.DbxFormlyContext }], target: i0.ɵɵFactoryTarget.Component }); }
172
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormlyFormComponent, selector: "dbx-formly", host: { classAttribute: "dbx-formly" }, providers: provideDbxMutableForm(DbxFormlyFormComponent), exportAs: ["formly"], usesInheritance: true, ngImport: i0, template: `
174
173
  <form [formGroup]="form" class="dbx-formly">
175
174
  <formly-form [form]="form" [fields]="(fields$ | async) ?? []" [model]="model"></formly-form>
176
175
  </form>
177
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormlyFormComponent, decorators: [{
176
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
177
+ }
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyFormComponent, decorators: [{
179
179
  type: Component,
180
180
  args: [{
181
181
  selector: 'dbx-formly',
@@ -191,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
191
191
  }
192
192
  }]
193
193
  }], ctorParameters: function () { return [{ type: i1.DbxFormlyContext }]; } });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LmZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LmZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEssT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUE2QyxZQUFZLEVBQUUseUJBQXlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekksT0FBTyxFQUFFLGdCQUFnQixFQUFpRCxNQUFNLGtCQUFrQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQXlCLG9DQUFvQyxFQUFFLGtCQUFrQixFQUFTLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRdkg7O0dBRUc7QUFjSCxNQUFNLE9BQU8sc0JBQTBCLFNBQVEsNkJBQTZCO0lBMkYxRSxZQUE2QixPQUE0QjtRQUN2RCxLQUFLLEVBQUUsQ0FBQztRQURtQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQTFGakQsWUFBTyxHQUFHLElBQUksZUFBZSxDQUF5QyxTQUFTLENBQUMsQ0FBQztRQUNqRixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3hILGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsU0FBUyxDQUFDLENBQUM7UUFFbEUsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFPLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFbkMsaUJBQVksR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDeEMsd0JBQW1CLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBRTlDLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVsQyxVQUFLLEdBQU0sRUFBTyxDQUFDO1FBQ25CLFlBQU8sR0FBc0IsRUFBRSxDQUFDO1FBRXZCLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekYsWUFBTyxHQUE2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDM0QsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN6QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQ1osb0JBQW9CLEVBQUUsRUFDdEIsWUFBWSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUM5RCxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDYixxRkFBcUY7UUFDckYsU0FBUyxDQUFDLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFDOUosR0FBRyxDQUFDLENBQUMsMEJBQWtDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0MsMEJBQTBCO1lBQzFCLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQzlELGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDbkMsQ0FBQyxDQUFDLEVBQ0gsSUFBSSxDQUNGLENBQUMsR0FBdUIsRUFBRSxJQUF3QixFQUFFLEVBQUU7WUFDcEQsc0dBQXNHO1lBQ3RHLGlIQUFpSDtZQUNqSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQywwQkFBMEIsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVqSCxPQUFPO2dCQUNMLDBCQUEwQixFQUFFLElBQUksQ0FBQywwQkFBMEI7Z0JBQzNELFdBQVcsRUFBRSxLQUFLO2dCQUNsQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7YUFDcEMsQ0FBQztRQUNKLENBQUMsRUFDRDtZQUNFLDBCQUEwQixFQUFFLENBQUM7WUFDN0IsV0FBVyxFQUFFLEtBQUs7WUFDbEIsY0FBYyxFQUFFLEtBQUs7U0FDdEIsQ0FDRixFQUNELFNBQVMsQ0FBQyxDQUFDLEVBQUUsMEJBQTBCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUU7WUFDeEUsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFO2dCQUNyQixNQUFNLE9BQU8sR0FBRywwQkFBMEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxpREFBaUQ7Z0JBQ2xHLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQztnQkFFN0IsTUFBTSxTQUFTLEdBQWlCO29CQUM5QixVQUFVLEVBQUUsUUFBUTtvQkFDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUk7b0JBQ3ZELE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07b0JBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7b0JBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7b0JBQzVCLFlBQVksRUFBRSwwQkFBMEI7b0JBQ3hDLFdBQVc7b0JBQ1gsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO29CQUN2QixVQUFVLEVBQUUsY0FBYztpQkFDM0IsQ0FBQztnQkFFRixPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDLENBQUM7WUFFRixNQUFNLEtBQUssR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUUxQixJQUFJLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDdEMsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUk7Z0JBQ3pCLDhFQUE4RTtnQkFDOUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQy9CLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEIsK0JBQStCO2dCQUMvQixLQUFLLEVBQUU7Z0JBQ1AsbUNBQW1DO2dCQUNuQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQ2pCLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsQjtRQUNILENBQUMsQ0FBQyxDQUNILENBQ0YsRUFDRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUlGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxVQUFVLEdBQUcsb0NBQW9DLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckYsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBRW5CLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssVUFBVSxFQUFFO2dCQUNyQyxJQUFJLFVBQVUsRUFBRTtvQkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUN4QztxQkFBTTtvQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUN2QztnQkFFRCxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ2Y7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDcEgsbUJBQW1CLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILDRHQUE0RztRQUM1RyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN4SixtQkFBbUIsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFdBQVc7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtJQUNqQixJQUFJLENBQUMsVUFBa0M7UUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFRO1FBQ2YscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBTSxDQUFDO1FBRW5DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1NBQzdCO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUUzQixzRkFBc0Y7UUFDdEYsb0dBQW9HO1FBQ3BHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQzVCO1FBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRVIsYUFBYTtRQUNiLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUMzQjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxvQ0FBb0MsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBd0IsRUFBRSxRQUFRLEdBQUcsSUFBSTtRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUkseUJBQXlCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzSCxDQUFDO0lBRUQsZUFBZTtJQUNmLGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7O29IQXpNVSxzQkFBc0I7d0dBQXRCLHNCQUFzQiw2RUFMdEIscUJBQXFCLENBQUMsc0JBQXNCLENBQUMsdUVBTDlDOzs7O0dBSVQ7NEZBTVUsc0JBQXNCO2tCQWJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsU0FBUyxFQUFFLHFCQUFxQix3QkFBd0I7b0JBQ3hELElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsWUFBWTtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybU9wdGlvbnMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHRocm90dGxlVGltZSwgc3RhcnRXaXRoLCBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIHN3aXRjaE1hcCwgc2hhcmVSZXBsYXksIG9mLCBzY2FuLCBmaWx0ZXIsIHRpbWVyLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtLCBEYnhGb3JtRGlzYWJsZWRLZXksIERieEZvcm1FdmVudCwgRGJ4Rm9ybVN0YXRlLCBERUZBVUxUX0ZPUk1fRElTQUJMRURfS0VZLCBwcm92aWRlRGJ4TXV0YWJsZUZvcm0gfSBmcm9tICcuLi9mb3JtL2Zvcm0nO1xuaW1wb3J0IHsgRGJ4Rm9ybWx5Q29udGV4dCwgRGJ4Rm9ybWx5Q29udGV4dERlbGVnYXRlLCBEYnhGb3JtbHlJbml0aWFsaXplIH0gZnJvbSAnLi9mb3JtbHkuY29udGV4dCc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgc2NhbkNvdW50LCBzd2l0Y2hNYXBNYXliZU9icywgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBCb29sZWFuU3RyaW5nS2V5QXJyYXksIEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHlJbnN0YW5jZSwgaGFzRGlmZmVyZW50VmFsdWVzLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1seUZvcm1TdGF0ZSB7XG4gIGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50OiBudW1iZXI7XG4gIGlzRm9ybVZhbGlkOiBib29sZWFuO1xuICBpc0Zvcm1EaXNhYmxlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBVc2VkIGZvciByZW5kaW5nIGEgZm9ybSBmcm9tIGEgRGJ4Rm9ybWx5Q29udGV4dC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZvcm1seScsXG4gIGV4cG9ydEFzOiAnZm9ybWx5JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImRieC1mb3JtbHlcIj5cbiAgICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCIoZmllbGRzJCB8IGFzeW5jKSA/PyBbXVwiIFttb2RlbF09XCJtb2RlbFwiPjwvZm9ybWx5LWZvcm0+XG4gICAgPC9mb3JtPlxuICBgLFxuICBwcm92aWRlcnM6IHByb3ZpZGVEYnhNdXRhYmxlRm9ybShEYnhGb3JtbHlGb3JtQ29tcG9uZW50KSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZGJ4LWZvcm1seSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtbHlGb3JtQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBEYnhGb3JtLCBEYnhGb3JtbHlDb250ZXh0RGVsZWdhdGU8VD4sIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfZmllbGRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxPYnNlcnZhYmxlPEZvcm1seUZpZWxkQ29uZmlnW10+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBfZXZlbnRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYnhGb3JtRXZlbnQ+KHsgaXNDb21wbGV0ZTogZmFsc2UsIHN0YXRlOiBEYnhGb3JtU3RhdGUuSU5JVElBTElaSU5HLCBzdGF0dXM6ICdQRU5ESU5HJyB9KTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJvb2xlYW5TdHJpbmdLZXlBcnJheT4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIF9yZXNldCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZT4obmV3IERhdGUoKSk7XG4gIHByaXZhdGUgX2ZvcmNlVXBkYXRlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9kaXNhYmxlZFN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfZW5mb3JjZURpc2FibGVkU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBtb2RlbDogVCA9IHt9IGFzIFQ7XG4gIG9wdGlvbnM6IEZvcm1seUZvcm1PcHRpb25zID0ge307XG5cbiAgcmVhZG9ubHkgZmllbGRzJCA9IHRoaXMuX2ZpZWxkcy5waXBlKHN3aXRjaE1hcE1heWJlT2JzKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBzdHJlYW0kOiBPYnNlcnZhYmxlPERieEZvcm1FdmVudD4gPSB0aGlzLl9yZXNldC5waXBlKFxuICAgIHN3aXRjaE1hcCgobGFzdFJlc2V0QXQpID0+XG4gICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCgwKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGhyb3R0bGVUaW1lKDUwLCB1bmRlZmluZWQsIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSksXG4gICAgICAgIHNjYW5Db3VudCgtMSksXG4gICAgICAgIC8vIHVwZGF0ZSBvbiB2YWxpZGF0aW9uIGNoYW5nZXMgdG9vLiBEb2VzIG5vdCBjb3VudCB0b3dhcmRzIGNoYW5nZXMgc2luY2UgbGFzdCByZXNldC5cbiAgICAgICAgc3dpdGNoTWFwKChjaGFuZ2VzU2luY2VMYXN0UmVzZXQpID0+IHRoaXMuZm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybS5zdGF0dXMpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5waXBlKG1hcCgoKSA9PiBjaGFuZ2VzU2luY2VMYXN0UmVzZXQpKSksXG4gICAgICAgIG1hcCgoY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQ6IG51bWJlcikgPT4gKHtcbiAgICAgICAgICBjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudCxcbiAgICAgICAgICBpc0Zvcm1WYWxpZDogdGhpcy5mb3JtLnN0YXR1cyAhPT0gJ1BFTkRJTkcnICYmIHRoaXMuZm9ybS52YWxpZCxcbiAgICAgICAgICBpc0Zvcm1EaXNhYmxlZDogdGhpcy5mb3JtLmRpc2FibGVkXG4gICAgICAgIH0pKSxcbiAgICAgICAgc2NhbihcbiAgICAgICAgICAoYWNjOiBEYnhGb3JtbHlGb3JtU3RhdGUsIG5leHQ6IERieEZvcm1seUZvcm1TdGF0ZSkgPT4ge1xuICAgICAgICAgICAgLy8gUGFzcyBmb3J3YXJkIHZhbGlkIGlmIG5leHQgd2FzIGEgZGlzYWJsZWQgY2hhbmdlL2NoZWNrLCB3aGljaCBjaGFuZ2VzIGFuZ3VsYXIgZm9ybSdzIGlzVmFsaWQgdmFsdWUuXG4gICAgICAgICAgICAvLyBJZiBpdCB3YXMgdmFsaWQgcHJpb3IsIHRoZW4gaXQgc2hvdWxkIGJlIHZhbGlkIG5vdywgdW5sZXNzIHdlIGp1c3QgcmVzZXQsIGluIHdoaWNoIGNhc2UgaXQgbWlnaHQgbm90IGJlIHZhbGlkLlxuICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBuZXh0LmlzRm9ybVZhbGlkIHx8IChuZXh0LmlzRm9ybURpc2FibGVkICYmIGFjYy5pc0Zvcm1WYWxpZCAmJiBhY2MuY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQgPiAwKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQ6IG5leHQuY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQsXG4gICAgICAgICAgICAgIGlzRm9ybVZhbGlkOiB2YWxpZCxcbiAgICAgICAgICAgICAgaXNGb3JtRGlzYWJsZWQ6IG5leHQuaXNGb3JtRGlzYWJsZWRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudDogMCxcbiAgICAgICAgICAgIGlzRm9ybVZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgIGlzRm9ybURpc2FibGVkOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgc3dpdGNoTWFwKCh7IGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50LCBpc0Zvcm1WYWxpZCwgaXNGb3JtRGlzYWJsZWQgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5leHRTdGF0ZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzUmVzZXQgPSBjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudCA8PSAxOyAvLyBmaXJzdCBlbWlzc2lvbiBhZnRlciByZXNldCBpcyB0aGUgZmlyc3QgdmFsdWUuXG4gICAgICAgICAgICBjb25zdCBjb21wbGV0ZSA9IGlzRm9ybVZhbGlkO1xuXG4gICAgICAgICAgICBjb25zdCBuZXh0U3RhdGU6IERieEZvcm1FdmVudCA9IHtcbiAgICAgICAgICAgICAgaXNDb21wbGV0ZTogY29tcGxldGUsXG4gICAgICAgICAgICAgIHN0YXRlOiBpc1Jlc2V0ID8gRGJ4Rm9ybVN0YXRlLlJFU0VUIDogRGJ4Rm9ybVN0YXRlLlVTRUQsXG4gICAgICAgICAgICAgIHN0YXR1czogdGhpcy5mb3JtLnN0YXR1cyxcbiAgICAgICAgICAgICAgdW50b3VjaGVkOiB0aGlzLmZvcm0udW50b3VjaGVkLFxuICAgICAgICAgICAgICBwcmlzdGluZTogdGhpcy5mb3JtLnByaXN0aW5lLFxuICAgICAgICAgICAgICBjaGFuZ2VzQ291bnQ6IGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50LFxuICAgICAgICAgICAgICBsYXN0UmVzZXRBdCxcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRm9ybURpc2FibGVkXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gbmV4dFN0YXRlO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBzdGF0ZSA9IG5leHRTdGF0ZSgpO1xuXG4gICAgICAgICAgaWYgKGlzRm9ybVZhbGlkICYmIHRoaXMuZm9ybS51bnRvdWNoZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aW1lcigxNTAsIDIwMCkucGlwZShcbiAgICAgICAgICAgICAgLy8gZXZlcnkgMjAwIG1zIGNoZWNrIGlmIHRoZSBmb3JtIGlzIG5vdyBtYXJrZWQgdG91Y2hlZCwgdGhlbiBwdXNoIGEgbmV3IHN0YXRlXG4gICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmZvcm0udG91Y2hlZCksXG4gICAgICAgICAgICAgIG1hcCgoKSA9PiBuZXh0U3RhdGUoKSksXG4gICAgICAgICAgICAgIC8vIG9ubHkgcHVzaCB0aGUgbmV3IHN0YXRlIG9uY2VcbiAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgLy8gc2VuZCB0aGUgZmlyc3QgdmFsdWUgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgc3RhcnRXaXRoKHN0YXRlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHN0YXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogRGJ4Rm9ybWx5Q29udGV4dDxUPikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuc2V0RGVsZWdhdGUodGhpcyk7XG5cbiAgICBjb25zdCByZXN5bmNEaXNhYmxlZFN0YXRlID0gKCkgPT4ge1xuICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHlJbnN0YW5jZS5pc1RydWUodGhpcy5fZGlzYWJsZWQudmFsdWUpO1xuICAgICAgbGV0IGNoYW5nZSA9IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy5mb3JtLmRpc2FibGVkICE9PSBpc0Rpc2FibGVkKSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmVuYWJsZSh7IGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNoYW5nZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjaGFuZ2U7XG4gICAgfTtcblxuICAgIHRoaXMuX2Rpc2FibGVkU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuX2Rpc2FibGVkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoaGFzRGlmZmVyZW50VmFsdWVzKSkuc3Vic2NyaWJlKChkaXNhYmxlZCkgPT4ge1xuICAgICAgcmVzeW5jRGlzYWJsZWRTdGF0ZSgpO1xuICAgIH0pO1xuXG4gICAgLy8gTk9URTogRm9ybSBzb21ldGltZXMgYmVjb21lcyB1bmRpc2FibGVkIHNvbWV3aGVyZS9zb21laG93LiBSZS1lbmZvcmNlIHRoZSBkaXNhYmxlZCBzdGF0ZSB3aGVyZSBuZWNlc3NhcnkuXG4gICAgdGhpcy5fZW5mb3JjZURpc2FibGVkU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUodGhyb3R0bGVUaW1lKDUwLCB1bmRlZmluZWQsIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSkpLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICByZXN5bmNEaXNhYmxlZFN0YXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQubG9ja1NldC5vbk5leHRVbmxvY2soKCkgPT4ge1xuICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgIHRoaXMuY29udGV4dC5jbGVhckRlbGVnYXRlKHRoaXMpO1xuICAgICAgdGhpcy5fZXZlbnRzLmNvbXBsZXRlKCk7XG4gICAgICB0aGlzLl9maWVsZHMuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuX3Jlc2V0LmNvbXBsZXRlKCk7XG4gICAgICB0aGlzLl9mb3JjZVVwZGF0ZS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fZGlzYWJsZWQuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuX2Rpc2FibGVkU3ViLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuX2VuZm9yY2VEaXNhYmxlZFN1Yi5kZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBNQVJLOiBEZWxlZ2F0ZVxuICBpbml0KGluaXRpYWxpemU6IERieEZvcm1seUluaXRpYWxpemU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLl9maWVsZHMubmV4dChpbml0aWFsaXplLmZpZWxkcyk7XG4gICAgdGhpcy5fZGlzYWJsZWQubmV4dChpbml0aWFsaXplLmluaXRpYWxEaXNhYmxlZCk7XG4gIH1cblxuICBnZXRWYWx1ZSgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gb2YodGhpcy5mb3JtLnZhbHVlIGFzIFQpO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAvLyBjb25zb2xlLmxvZygnc2V0IHZhbHVlOiAnLCB2YWx1ZSk7XG4gICAgdGhpcy5tb2RlbCA9IGNsb25lRGVlcCh2YWx1ZSkgYXMgVDtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMudXBkYXRlSW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMudXBkYXRlSW5pdGlhbFZhbHVlKCk7XG4gICAgICB0aGlzLm9wdGlvbnMucmVzZXRNb2RlbD8uKCk7XG4gICAgfVxuXG4gICAgLy8gUmUtbWFyayBhcyB1bnRvdWNoZWQgYW5kIHByaXN0aW5lLlxuICAgIHRoaXMuZm9ybS5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcblxuICAgIC8vIEFmdGVyIHVwZGF0aW5nIHRoZSB2YWx1ZSwgaWYgdGhlIGZvcm0gaXMgc3RpbGwgdW50b3VjaGVkIG1hcmsgaXQgYXMgcHJpc3RpbmUgYWdhaW4uXG4gICAgLy8gU29tZXRpbWVzIHRoZSB2YWx1ZXMgZ2V0IG1hcmtlZCBhcyBjaGFuZ2VkIGFuZCBicmVhayBwcmlzdGluZSBiZWZvcmUgYSB1c2VyIGhhcyB0aW1lIHRvIGludGVyYWN0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9ybS51bnRvdWNoZWQpIHtcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB9XG4gICAgfSwgNTAwKTtcblxuICAgIC8vIHBpbmcgcmVzZXRcbiAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICB9XG5cbiAgcmVzZXRGb3JtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wdGlvbnMucmVzZXRNb2RlbCkge1xuICAgICAgdGhpcy5vcHRpb25zLnJlc2V0TW9kZWwoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZXNldC5uZXh0KG5ldyBEYXRlKCkpO1xuICB9XG5cbiAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHlJbnN0YW5jZS5pc1RydWUodGhpcy5kaXNhYmxlZCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKTogQm9vbGVhblN0cmluZ0tleUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQudmFsdWU7XG4gIH1cblxuICBnZXREaXNhYmxlZCgpOiBPYnNlcnZhYmxlPEJvb2xlYW5TdHJpbmdLZXlBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHNldERpc2FibGVkKGtleT86IERieEZvcm1EaXNhYmxlZEtleSwgZGlzYWJsZWQgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzYWJsZWQubmV4dChCb29sZWFuU3RyaW5nS2V5QXJyYXlVdGlsaXR5SW5zdGFuY2Uuc2V0KHRoaXMuZGlzYWJsZWQsIGtleSA/PyBERUZBVUxUX0ZPUk1fRElTQUJMRURfS0VZLCBkaXNhYmxlZCkpO1xuICB9XG5cbiAgLy8gTUFSSzogVXBkYXRlXG4gIGZvcmNlRm9ybVVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JjZVVwZGF0ZS5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LmZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LmZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEssT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUE2QyxZQUFZLEVBQUUseUJBQXlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekksT0FBTyxFQUFFLGdCQUFnQixFQUFpRCxNQUFNLGtCQUFrQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQXlCLG9DQUFvQyxFQUFFLGtCQUFrQixFQUFTLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRdkg7O0dBRUc7QUFjSCxNQUFNLE9BQU8sc0JBQTBCLFNBQVEsNkJBQTZCO0lBMkYxRSxZQUE2QixPQUE0QjtRQUN2RCxLQUFLLEVBQUUsQ0FBQztRQURtQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQTFGakQsWUFBTyxHQUFHLElBQUksZUFBZSxDQUF5QyxTQUFTLENB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UUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzSCxDQUFDO0lBRUQsZUFBZTtJQUNmLGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBek1VLHNCQUFzQjttR0FBdEIsc0JBQXNCLDZFQUx0QixxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FBQyx1RUFMOUM7Ozs7R0FJVDs7NEZBTVUsc0JBQXNCO2tCQWJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsU0FBUyxFQUFFLHFCQUFxQix3QkFBd0I7b0JBQ3hELElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsWUFBWTtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybU9wdGlvbnMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHRocm90dGxlVGltZSwgc3RhcnRXaXRoLCBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIHN3aXRjaE1hcCwgc2hhcmVSZXBsYXksIG9mLCBzY2FuLCBmaWx0ZXIsIHRpbWVyLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtLCBEYnhGb3JtRGlzYWJsZWRLZXksIERieEZvcm1FdmVudCwgRGJ4Rm9ybVN0YXRlLCBERUZBVUxUX0ZPUk1fRElTQUJMRURfS0VZLCBwcm92aWRlRGJ4TXV0YWJsZUZvcm0gfSBmcm9tICcuLi9mb3JtL2Zvcm0nO1xuaW1wb3J0IHsgRGJ4Rm9ybWx5Q29udGV4dCwgRGJ4Rm9ybWx5Q29udGV4dERlbGVnYXRlLCBEYnhGb3JtbHlJbml0aWFsaXplIH0gZnJvbSAnLi9mb3JtbHkuY29udGV4dCc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgc2NhbkNvdW50LCBzd2l0Y2hNYXBNYXliZU9icywgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBCb29sZWFuU3RyaW5nS2V5QXJyYXksIEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHlJbnN0YW5jZSwgaGFzRGlmZmVyZW50VmFsdWVzLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1seUZvcm1TdGF0ZSB7XG4gIGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50OiBudW1iZXI7XG4gIGlzRm9ybVZhbGlkOiBib29sZWFuO1xuICBpc0Zvcm1EaXNhYmxlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBVc2VkIGZvciByZW5kaW5nIGEgZm9ybSBmcm9tIGEgRGJ4Rm9ybWx5Q29udGV4dC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZvcm1seScsXG4gIGV4cG9ydEFzOiAnZm9ybWx5JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImRieC1mb3JtbHlcIj5cbiAgICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCIoZmllbGRzJCB8IGFzeW5jKSA/PyBbXVwiIFttb2RlbF09XCJtb2RlbFwiPjwvZm9ybWx5LWZvcm0+XG4gICAgPC9mb3JtPlxuICBgLFxuICBwcm92aWRlcnM6IHByb3ZpZGVEYnhNdXRhYmxlRm9ybShEYnhGb3JtbHlGb3JtQ29tcG9uZW50KSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZGJ4LWZvcm1seSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtbHlGb3JtQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBEYnhGb3JtLCBEYnhGb3JtbHlDb250ZXh0RGVsZWdhdGU8VD4sIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfZmllbGRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxPYnNlcnZhYmxlPEZvcm1seUZpZWxkQ29uZmlnW10+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBfZXZlbnRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYnhGb3JtRXZlbnQ+KHsgaXNDb21wbGV0ZTogZmFsc2UsIHN0YXRlOiBEYnhGb3JtU3RhdGUuSU5JVElBTElaSU5HLCBzdGF0dXM6ICdQRU5ESU5HJyB9KTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJvb2xlYW5TdHJpbmdLZXlBcnJheT4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIF9yZXNldCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZT4obmV3IERhdGUoKSk7XG4gIHByaXZhdGUgX2ZvcmNlVXBkYXRlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9kaXNhYmxlZFN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfZW5mb3JjZURpc2FibGVkU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBtb2RlbDogVCA9IHt9IGFzIFQ7XG4gIG9wdGlvbnM6IEZvcm1seUZvcm1PcHRpb25zID0ge307XG5cbiAgcmVhZG9ubHkgZmllbGRzJCA9IHRoaXMuX2ZpZWxkcy5waXBlKHN3aXRjaE1hcE1heWJlT2JzKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBzdHJlYW0kOiBPYnNlcnZhYmxlPERieEZvcm1FdmVudD4gPSB0aGlzLl9yZXNldC5waXBlKFxuICAgIHN3aXRjaE1hcCgobGFzdFJlc2V0QXQpID0+XG4gICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCgwKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGhyb3R0bGVUaW1lKDUwLCB1bmRlZmluZWQsIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSksXG4gICAgICAgIHNjYW5Db3VudCgtMSksXG4gICAgICAgIC8vIHVwZGF0ZSBvbiB2YWxpZGF0aW9uIGNoYW5nZXMgdG9vLiBEb2VzIG5vdCBjb3VudCB0b3dhcmRzIGNoYW5nZXMgc2luY2UgbGFzdCByZXNldC5cbiAgICAgICAgc3dpdGNoTWFwKChjaGFuZ2VzU2luY2VMYXN0UmVzZXQpID0+IHRoaXMuZm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybS5zdGF0dXMpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5waXBlKG1hcCgoKSA9PiBjaGFuZ2VzU2luY2VMYXN0UmVzZXQpKSksXG4gICAgICAgIG1hcCgoY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQ6IG51bWJlcikgPT4gKHtcbiAgICAgICAgICBjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudCxcbiAgICAgICAgICBpc0Zvcm1WYWxpZDogdGhpcy5mb3JtLnN0YXR1cyAhPT0gJ1BFTkRJTkcnICYmIHRoaXMuZm9ybS52YWxpZCxcbiAgICAgICAgICBpc0Zvcm1EaXNhYmxlZDogdGhpcy5mb3JtLmRpc2FibGVkXG4gICAgICAgIH0pKSxcbiAgICAgICAgc2NhbihcbiAgICAgICAgICAoYWNjOiBEYnhGb3JtbHlGb3JtU3RhdGUsIG5leHQ6IERieEZvcm1seUZvcm1TdGF0ZSkgPT4ge1xuICAgICAgICAgICAgLy8gUGFzcyBmb3J3YXJkIHZhbGlkIGlmIG5leHQgd2FzIGEgZGlzYWJsZWQgY2hhbmdlL2NoZWNrLCB3aGljaCBjaGFuZ2VzIGFuZ3VsYXIgZm9ybSdzIGlzVmFsaWQgdmFsdWUuXG4gICAgICAgICAgICAvLyBJZiBpdCB3YXMgdmFsaWQgcHJpb3IsIHRoZW4gaXQgc2hvdWxkIGJlIHZhbGlkIG5vdywgdW5sZXNzIHdlIGp1c3QgcmVzZXQsIGluIHdoaWNoIGNhc2UgaXQgbWlnaHQgbm90IGJlIHZhbGlkLlxuICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBuZXh0LmlzRm9ybVZhbGlkIHx8IChuZXh0LmlzRm9ybURpc2FibGVkICYmIGFjYy5pc0Zvcm1WYWxpZCAmJiBhY2MuY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQgPiAwKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQ6IG5leHQuY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQsXG4gICAgICAgICAgICAgIGlzRm9ybVZhbGlkOiB2YWxpZCxcbiAgICAgICAgICAgICAgaXNGb3JtRGlzYWJsZWQ6IG5leHQuaXNGb3JtRGlzYWJsZWRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudDogMCxcbiAgICAgICAgICAgIGlzRm9ybVZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgIGlzRm9ybURpc2FibGVkOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgc3dpdGNoTWFwKCh7IGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50LCBpc0Zvcm1WYWxpZCwgaXNGb3JtRGlzYWJsZWQgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5leHRTdGF0ZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzUmVzZXQgPSBjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudCA8PSAxOyAvLyBmaXJzdCBlbWlzc2lvbiBhZnRlciByZXNldCBpcyB0aGUgZmlyc3QgdmFsdWUuXG4gICAgICAgICAgICBjb25zdCBjb21wbGV0ZSA9IGlzRm9ybVZhbGlkO1xuXG4gICAgICAgICAgICBjb25zdCBuZXh0U3RhdGU6IERieEZvcm1FdmVudCA9IHtcbiAgICAgICAgICAgICAgaXNDb21wbGV0ZTogY29tcGxldGUsXG4gICAgICAgICAgICAgIHN0YXRlOiBpc1Jlc2V0ID8gRGJ4Rm9ybVN0YXRlLlJFU0VUIDogRGJ4Rm9ybVN0YXRlLlVTRUQsXG4gICAgICAgICAgICAgIHN0YXR1czogdGhpcy5mb3JtLnN0YXR1cyxcbiAgICAgICAgICAgICAgdW50b3VjaGVkOiB0aGlzLmZvcm0udW50b3VjaGVkLFxuICAgICAgICAgICAgICBwcmlzdGluZTogdGhpcy5mb3JtLnByaXN0aW5lLFxuICAgICAgICAgICAgICBjaGFuZ2VzQ291bnQ6IGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50LFxuICAgICAgICAgICAgICBsYXN0UmVzZXRBdCxcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRm9ybURpc2FibGVkXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gbmV4dFN0YXRlO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBzdGF0ZSA9IG5leHRTdGF0ZSgpO1xuXG4gICAgICAgICAgaWYgKGlzRm9ybVZhbGlkICYmIHRoaXMuZm9ybS51bnRvdWNoZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aW1lcigxNTAsIDIwMCkucGlwZShcbiAgICAgICAgICAgICAgLy8gZXZlcnkgMjAwIG1zIGNoZWNrIGlmIHRoZSBmb3JtIGlzIG5vdyBtYXJrZWQgdG91Y2hlZCwgdGhlbiBwdXNoIGEgbmV3IHN0YXRlXG4gICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmZvcm0udG91Y2hlZCksXG4gICAgICAgICAgICAgIG1hcCgoKSA9PiBuZXh0U3RhdGUoKSksXG4gICAgICAgICAgICAgIC8vIG9ubHkgcHVzaCB0aGUgbmV3IHN0YXRlIG9uY2VcbiAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgLy8gc2VuZCB0aGUgZmlyc3QgdmFsdWUgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgc3RhcnRXaXRoKHN0YXRlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHN0YXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogRGJ4Rm9ybWx5Q29udGV4dDxUPikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuc2V0RGVsZWdhdGUodGhpcyk7XG5cbiAgICBjb25zdCByZXN5bmNEaXNhYmxlZFN0YXRlID0gKCkgPT4ge1xuICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHlJbnN0YW5jZS5pc1RydWUodGhpcy5fZGlzYWJsZWQudmFsdWUpO1xuICAgICAgbGV0IGNoYW5nZSA9IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy5mb3JtLmRpc2FibGVkICE9PSBpc0Rpc2FibGVkKSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmVuYWJsZSh7IGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNoYW5nZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjaGFuZ2U7XG4gICAgfTtcblxuICAgIHRoaXMuX2Rpc2FibGVkU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuX2Rpc2FibGVkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoaGFzRGlmZmVyZW50VmFsdWVzKSkuc3Vic2NyaWJlKChkaXNhYmxlZCkgPT4ge1xuICAgICAgcmVzeW5jRGlzYWJsZWRTdGF0ZSgpO1xuICAgIH0pO1xuXG4gICAgLy8gTk9URTogRm9ybSBzb21ldGltZXMgYmVjb21lcyB1bmRpc2FibGVkIHNvbWV3aGVyZS9zb21laG93LiBSZS1lbmZvcmNlIHRoZSBkaXNhYmxlZCBzdGF0ZSB3aGVyZSBuZWNlc3NhcnkuXG4gICAgdGhpcy5fZW5mb3JjZURpc2FibGVkU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUodGhyb3R0bGVUaW1lKDUwLCB1bmRlZmluZWQsIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSkpLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICByZXN5bmNEaXNhYmxlZFN0YXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQubG9ja1NldC5vbk5leHRVbmxvY2soKCkgPT4ge1xuICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgIHRoaXMuY29udGV4dC5jbGVhckRlbGVnYXRlKHRoaXMpO1xuICAgICAgdGhpcy5fZXZlbnRzLmNvbXBsZXRlKCk7XG4gICAgICB0aGlzLl9maWVsZHMuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuX3Jlc2V0LmNvbXBsZXRlKCk7XG4gICAgICB0aGlzLl9mb3JjZVVwZGF0ZS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fZGlzYWJsZWQuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuX2Rpc2FibGVkU3ViLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuX2VuZm9yY2VEaXNhYmxlZFN1Yi5kZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBNQVJLOiBEZWxlZ2F0ZVxuICBpbml0KGluaXRpYWxpemU6IERieEZvcm1seUluaXRpYWxpemU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLl9maWVsZHMubmV4dChpbml0aWFsaXplLmZpZWxkcyk7XG4gICAgdGhpcy5fZGlzYWJsZWQubmV4dChpbml0aWFsaXplLmluaXRpYWxEaXNhYmxlZCk7XG4gIH1cblxuICBnZXRWYWx1ZSgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gb2YodGhpcy5mb3JtLnZhbHVlIGFzIFQpO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAvLyBjb25zb2xlLmxvZygnc2V0IHZhbHVlOiAnLCB2YWx1ZSk7XG4gICAgdGhpcy5tb2RlbCA9IGNsb25lRGVlcCh2YWx1ZSkgYXMgVDtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMudXBkYXRlSW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMudXBkYXRlSW5pdGlhbFZhbHVlKCk7XG4gICAgICB0aGlzLm9wdGlvbnMucmVzZXRNb2RlbD8uKCk7XG4gICAgfVxuXG4gICAgLy8gUmUtbWFyayBhcyB1bnRvdWNoZWQgYW5kIHByaXN0aW5lLlxuICAgIHRoaXMuZm9ybS5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcblxuICAgIC8vIEFmdGVyIHVwZGF0aW5nIHRoZSB2YWx1ZSwgaWYgdGhlIGZvcm0gaXMgc3RpbGwgdW50b3VjaGVkIG1hcmsgaXQgYXMgcHJpc3RpbmUgYWdhaW4uXG4gICAgLy8gU29tZXRpbWVzIHRoZSB2YWx1ZXMgZ2V0IG1hcmtlZCBhcyBjaGFuZ2VkIGFuZCBicmVhayBwcmlzdGluZSBiZWZvcmUgYSB1c2VyIGhhcyB0aW1lIHRvIGludGVyYWN0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9ybS51bnRvdWNoZWQpIHtcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB9XG4gICAgfSwgNTAwKTtcblxuICAgIC8vIHBpbmcgcmVzZXRcbiAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICB9XG5cbiAgcmVzZXRGb3JtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wdGlvbnMucmVzZXRNb2RlbCkge1xuICAgICAgdGhpcy5vcHRpb25zLnJlc2V0TW9kZWwoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZXNldC5uZXh0KG5ldyBEYXRlKCkpO1xuICB9XG5cbiAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHlJbnN0YW5jZS5pc1RydWUodGhpcy5kaXNhYmxlZCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKTogQm9vbGVhblN0cmluZ0tleUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQudmFsdWU7XG4gIH1cblxuICBnZXREaXNhYmxlZCgpOiBPYnNlcnZhYmxlPEJvb2xlYW5TdHJpbmdLZXlBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHNldERpc2FibGVkKGtleT86IERieEZvcm1EaXNhYmxlZEtleSwgZGlzYWJsZWQgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzYWJsZWQubmV4dChCb29sZWFuU3RyaW5nS2V5QXJyYXlVdGlsaXR5SW5zdGFuY2Uuc2V0KHRoaXMuZGlzYWJsZWQsIGtleSA/PyBERUZBVUxUX0ZPUk1fRElTQUJMRURfS0VZLCBkaXNhYmxlZCkpO1xuICB9XG5cbiAgLy8gTUFSSzogVXBkYXRlXG4gIGZvcmNlRm9ybVVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JjZVVwZGF0ZS5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -7,22 +7,22 @@ import { FormlyModule } from '@ngx-formly/core';
7
7
  import { DbxFormlyFieldsContextDirective } from './formly.context.directive';
8
8
  import * as i0 from "@angular/core";
9
9
  export class DbxFormlyModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyModule, declarations: [DbxFormlyFormComponent, DbxFormlyFieldsContextDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule], exports: [
12
+ // Modules (?)
13
+ FormsModule,
14
+ ReactiveFormsModule,
15
+ // Directives
16
+ DbxFormlyFormComponent,
17
+ DbxFormlyFieldsContextDirective
18
+ // Helper Modules
19
+ ] }); }
20
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule,
21
+ // Modules (?)
22
+ FormsModule,
23
+ ReactiveFormsModule] }); }
10
24
  }
11
- DbxFormlyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormlyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- DbxFormlyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFormlyModule, declarations: [DbxFormlyFormComponent, DbxFormlyFieldsContextDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule], exports: [
13
- // Modules (?)
14
- FormsModule,
15
- ReactiveFormsModule,
16
- // Directives
17
- DbxFormlyFormComponent,
18
- DbxFormlyFieldsContextDirective
19
- // Helper Modules
20
- ] });
21
- DbxFormlyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormlyModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule,
22
- // Modules (?)
23
- FormsModule,
24
- ReactiveFormsModule] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormlyModule, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  imports: [CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule],
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
38
38
  ]
39
39
  }]
40
40
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2Zvcm1seS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFlN0UsTUFBTSxPQUFPLGVBQWU7OzZHQUFmLGVBQWU7OEdBQWYsZUFBZSxpQkFYWCxzQkFBc0IsRUFBRSwrQkFBK0IsYUFENUQsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUscUJBQXFCO1FBRzNGLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixzQkFBc0I7UUFDdEIsK0JBQStCO1FBQy9CLGlCQUFpQjs7OEdBR1IsZUFBZSxZQVpoQixZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxxQkFBcUI7UUFHM0YsY0FBYztRQUNkLFdBQVc7UUFDWCxtQkFBbUI7NEZBT1YsZUFBZTtrQkFiM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsQ0FBQztvQkFDOUYsWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsK0JBQStCLENBQUM7b0JBQ3ZFLE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLHNCQUFzQjt3QkFDdEIsK0JBQStCO3dCQUMvQixpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERieEZvcm1seUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS5mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlNYXRUb2dnbGVNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC90b2dnbGUnO1xuaW1wb3J0IHsgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtbHlGaWVsZHNDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtbHkuY29udGV4dC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybWx5TW9kdWxlLCBGb3JtbHlNYXRUb2dnbGVNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtEYnhGb3JtbHlGb3JtQ29tcG9uZW50LCBEYnhGb3JtbHlGaWVsZHNDb250ZXh0RGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW1xuICAgIC8vIE1vZHVsZXMgKD8pXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAvLyBEaXJlY3RpdmVzXG4gICAgRGJ4Rm9ybWx5Rm9ybUNvbXBvbmVudCxcbiAgICBEYnhGb3JtbHlGaWVsZHNDb250ZXh0RGlyZWN0aXZlXG4gICAgLy8gSGVscGVyIE1vZHVsZXNcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtbHlNb2R1bGUge31cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2Zvcm1seS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFlN0UsTUFBTSxPQUFPLGVBQWU7K0dBQWYsZUFBZTtnSEFBZixlQUFlLGlCQVhYLHNCQUFzQixFQUFFLCtCQUErQixhQUQ1RCxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxxQkFBcUI7WUFHM0YsY0FBYztZQUNkLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLHNCQUFzQjtZQUN0QiwrQkFBK0I7WUFDL0IsaUJBQWlCOztnSEFHUixlQUFlLFlBWmhCLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLHFCQUFxQjtZQUczRixjQUFjO1lBQ2QsV0FBVztZQUNYLG1CQUFtQjs7NEZBT1YsZUFBZTtrQkFiM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsQ0FBQztvQkFDOUYsWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsK0JBQStCLENBQUM7b0JBQ3ZFLE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLHNCQUFzQjt3QkFDdEIsK0JBQStCO3dCQUMvQixpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERieEZvcm1seUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS5mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlNYXRUb2dnbGVNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC90b2dnbGUnO1xuaW1wb3J0IHsgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtbHlGaWVsZHNDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtbHkuY29udGV4dC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybWx5TW9kdWxlLCBGb3JtbHlNYXRUb2dnbGVNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtEYnhGb3JtbHlGb3JtQ29tcG9uZW50LCBEYnhGb3JtbHlGaWVsZHNDb250ZXh0RGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW1xuICAgIC8vIE1vZHVsZXMgKD8pXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAvLyBEaXJlY3RpdmVzXG4gICAgRGJ4Rm9ybWx5Rm9ybUNvbXBvbmVudCxcbiAgICBEYnhGb3JtbHlGaWVsZHNDb250ZXh0RGlyZWN0aXZlXG4gICAgLy8gSGVscGVyIE1vZHVsZXNcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtbHlNb2R1bGUge31cbiJdfQ==
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
3
3
  import { DbxFormSpacerComponent } from './form.spacer.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class DbxFormLayoutModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormLayoutModule, declarations: [DbxFormSpacerComponent], imports: [CommonModule], exports: [DbxFormSpacerComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormLayoutModule, imports: [CommonModule] }); }
6
9
  }
7
- DbxFormLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- DbxFormLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFormLayoutModule, declarations: [DbxFormSpacerComponent], imports: [CommonModule], exports: [DbxFormSpacerComponent] });
9
- DbxFormLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormLayoutModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormLayoutModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormLayoutModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  imports: [CommonModule],
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
15
15
  exports: [DbxFormSpacerComponent]
16
16
  }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5sYXlvdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9sYXlvdXQvZm9ybS5sYXlvdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU9qRSxNQUFNLE9BQU8sbUJBQW1COztpSEFBbkIsbUJBQW1CO2tIQUFuQixtQkFBbUIsaUJBSGYsc0JBQXNCLGFBRDNCLFlBQVksYUFFWixzQkFBc0I7a0hBRXJCLG1CQUFtQixZQUpwQixZQUFZOzRGQUlYLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERieEZvcm1TcGFjZXJDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0uc3BhY2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtEYnhGb3JtU3BhY2VyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0RieEZvcm1TcGFjZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1MYXlvdXRNb2R1bGUge31cbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5sYXlvdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9sYXlvdXQvZm9ybS5sYXlvdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU9qRSxNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQixpQkFIZixzQkFBc0IsYUFEM0IsWUFBWSxhQUVaLHNCQUFzQjtnSEFFckIsbUJBQW1CLFlBSnBCLFlBQVk7OzRGQUlYLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERieEZvcm1TcGFjZXJDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0uc3BhY2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtEYnhGb3JtU3BhY2VyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0RieEZvcm1TcGFjZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1MYXlvdXRNb2R1bGUge31cbiJdfQ==
@@ -4,12 +4,12 @@ import * as i0 from "@angular/core";
4
4
  * Provides vertical spacing after a form.
5
5
  */
6
6
  export class DbxFormSpacerComponent {
7
- }
8
- DbxFormSpacerComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
- DbxFormSpacerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFormSpacerComponent, selector: "dbx-form-spacer", ngImport: i0, template: `
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormSpacerComponent, selector: "dbx-form-spacer", ngImport: i0, template: `
10
9
  <div class="dbx-form-spacer"></div>
11
- `, isInline: true });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormSpacerComponent, decorators: [{
10
+ `, isInline: true }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSpacerComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{
15
15
  selector: 'dbx-form-spacer',
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
18
18
  `
19
19
  }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zcGFjZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9sYXlvdXQvZm9ybS5zcGFjZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDOztHQUVHO0FBT0gsTUFBTSxPQUFPLHNCQUFzQjs7b0hBQXRCLHNCQUFzQjt3R0FBdEIsc0JBQXNCLHVEQUp2Qjs7R0FFVDs0RkFFVSxzQkFBc0I7a0JBTmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOztHQUVUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogUHJvdmlkZXMgdmVydGljYWwgc3BhY2luZyBhZnRlciBhIGZvcm0uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1mb3JtLXNwYWNlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXNwYWNlclwiPjwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1TcGFjZXJDb21wb25lbnQge31cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zcGFjZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9sYXlvdXQvZm9ybS5zcGFjZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDOztHQUVHO0FBT0gsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO21HQUF0QixzQkFBc0IsdURBSnZCOztHQUVUOzs0RkFFVSxzQkFBc0I7a0JBTmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOztHQUVUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogUHJvdmlkZXMgdmVydGljYWwgc3BhY2luZyBhZnRlciBhIGZvcm0uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1mb3JtLXNwYWNlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1mb3JtLXNwYWNlclwiPjwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1TcGFjZXJDb21wb25lbnQge31cbiJdfQ==
@@ -15,8 +15,8 @@ import * as i4 from "@angular/common";
15
15
  import * as i5 from "@angular/material/icon";
16
16
  import * as i6 from "@angular/material/button";
17
17
  import * as i7 from "@angular/forms";
18
- import * as i8 from "@angular/material/form-field";
19
- import * as i9 from "@angular/material/input";
18
+ import * as i8 from "@angular/material/input";
19
+ import * as i9 from "@angular/material/form-field";
20
20
  import * as i10 from "ngx-mapbox-gl";
21
21
  export const DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY = 'DbxFormMapboxLatLngFieldComponent';
22
22
  export const DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_MARKER_CONFIG = {
@@ -203,9 +203,8 @@ export class DbxFormMapboxLatLngFieldComponent extends FieldType {
203
203
  this.formControl.markAsTouched();
204
204
  this.formControl.markAsDirty();
205
205
  }
206
- }
207
- DbxFormMapboxLatLngFieldComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormMapboxLatLngFieldComponent, deps: [{ token: i1.CompactContextStore, optional: true }, { token: i2.DbxMapboxInjectionStore, optional: true }, { token: i3.GeolocationService }, { token: i2.DbxMapboxMapStore }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
208
- DbxFormMapboxLatLngFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFormMapboxLatLngFieldComponent, selector: "ng-component", providers: [provideMapboxStoreIfParentIsUnavailable()], usesInheritance: true, ngImport: i0, template: `
206
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormMapboxLatLngFieldComponent, deps: [{ token: i1.CompactContextStore, optional: true }, { token: i2.DbxMapboxInjectionStore, optional: true }, { token: i3.GeolocationService }, { token: i2.DbxMapboxMapStore }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
207
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormMapboxLatLngFieldComponent, selector: "ng-component", providers: [provideMapboxStoreIfParentIsUnavailable()], usesInheritance: true, ngImport: i0, template: `
209
208
  <div class="dbx-mapbox-input-field" [ngClass]="(compactClass$ | async) ?? ''" [formGroup]="formGroup">
210
209
  <div *ngIf="showMap" class="dbx-mapbox-input-field-map">
211
210
  <mgl-map dbxMapboxMap>
@@ -216,15 +215,16 @@ DbxFormMapboxLatLngFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
216
215
  <button *ngIf="showCenterButton" mat-icon-button (click)="flyToMarker()">
217
216
  <mat-icon>my_location</mat-icon>
218
217
  </button>
219
- <mat-form-field class="dbx-mapbox-input-field-input-field" appearance="standard">
218
+ <mat-form-field class="dbx-mapbox-input-field-input-field">
220
219
  <mat-label>Coordinates</mat-label>
221
220
  <input type="text" matInput [placeholder]="placeholder" [formControl]="formControl" />
222
221
  <mat-hint class="dbx-hint dbx-warn" *ngIf="useCurrentLocationDisabled$ | async">Could not access your current location.</mat-hint>
223
222
  </mat-form-field>
224
223
  </div>
225
224
  </div>
226
- `, isInline: true, styles: [".dbx-mapbox-input-field .dbx-mapbox-input-field-map{height:220px;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-map mgl-map{height:100%;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-input{display:flex;align-items:center}.dbx-mapbox-input-field .dbx-mapbox-input-field-input .dbx-mapbox-input-field-input-field{width:calc(100% - 40px)}.dbx-mapbox-input-field-compact .dbx-latlng-field-input{min-height:120px;height:300px;max-height:calc(var(--vh100) * .5)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i2.DbxMapboxMapDirective, selector: "[dbxMapboxMap]" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MapComponent, selector: "mgl-map", inputs: ["accessToken", "collectResourceTiming", "crossSourceCollisions", "customMapboxApiUrl", "fadeDuration", "hash", "refreshExpiredTiles", "failIfMajorPerformanceCaveat", "bearingSnap", "interactive", "pitchWithRotate", "clickTolerance", "attributionControl", "logoPosition", "maxTileCacheSize", "localIdeographFontFamily", "preserveDrawingBuffer", "trackResize", "transformRequest", "bounds", "antialias", "locale", "minZoom", "maxZoom", "minPitch", "maxPitch", "scrollZoom", "dragRotate", "touchPitch", "touchZoomRotate", "doubleClickZoom", "keyboard", "dragPan", "boxZoom", "style", "center", "maxBounds", "zoom", "bearing", "pitch", "fitBoundsOptions", "renderWorldCopies", "projection", "movingMethod", "movingOptions", "fitBounds", "fitScreenCoordinates", "centerWithPanTo", "panToOptions", "cursorStyle"], outputs: ["mapResize", "mapRemove", "mapMouseDown", "mapMouseUp", "mapMouseMove", "mapClick", "mapDblClick", "mapMouseOver", "mapMouseOut", "mapContextMenu", "mapTouchStart", "mapTouchEnd", "mapTouchMove", "mapTouchCancel", "mapWheel", "moveStart", "move", "moveEnd", "mapDragStart", "mapDrag", "mapDragEnd", "zoomStart", "zoomEvt", "zoomEnd", "rotateStart", "rotate", "rotateEnd", "pitchStart", "pitchEvt", "pitchEnd", "boxZoomStart", "boxZoomEnd", "boxZoomCancel", "webGlContextLost", "webGlContextRestored", "mapLoad", "idle", "render", "mapError", "data", "styleData", "sourceData", "dataLoading", "styleDataLoading", "sourceDataLoading", "styleImageMissing", "resize", "remove", "mouseDown", "mouseUp", "mouseMove", "click", "dblClick", "mouseOver", "mouseOut", "contextMenu", "touchStart", "touchEnd", "touchMove", "touchCancel", "wheel", "dragStart", "drag", "dragEnd", "load", "error"] }, { kind: "component", type: i10.MarkerComponent, selector: "mgl-marker", inputs: ["offset", "anchor", "clickTolerance", "feature", "lngLat", "draggable", "popupShown", "className", "pitchAlignment", "rotationAlignment"], outputs: ["markerDragStart", "markerDragEnd", "markerDrag", "dragStart", "dragEnd", "drag"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormMapboxLatLngFieldComponent, decorators: [{
225
+ `, isInline: true, styles: [".dbx-mapbox-input-field .dbx-mapbox-input-field-map{height:220px;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-map mgl-map{height:100%;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-input{display:flex;align-items:center}.dbx-mapbox-input-field .dbx-mapbox-input-field-input .dbx-mapbox-input-field-input-field{width:calc(100% - 40px)}.dbx-mapbox-input-field-compact .dbx-latlng-field-input{min-height:120px;height:300px;max-height:calc(var(--vh100) * .5)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i2.DbxMapboxMapDirective, selector: "[dbxMapboxMap]" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i10.MapComponent, selector: "mgl-map", inputs: ["accessToken", "collectResourceTiming", "crossSourceCollisions", "customMapboxApiUrl", "fadeDuration", "hash", "refreshExpiredTiles", "failIfMajorPerformanceCaveat", "bearingSnap", "interactive", "pitchWithRotate", "clickTolerance", "attributionControl", "logoPosition", "maxTileCacheSize", "localIdeographFontFamily", "preserveDrawingBuffer", "trackResize", "transformRequest", "bounds", "antialias", "locale", "cooperativeGestures", "minZoom", "maxZoom", "minPitch", "maxPitch", "scrollZoom", "dragRotate", "touchPitch", "touchZoomRotate", "doubleClickZoom", "keyboard", "dragPan", "boxZoom", "style", "center", "maxBounds", "zoom", "bearing", "pitch", "fitBoundsOptions", "renderWorldCopies", "projection", "movingMethod", "movingOptions", "fitBounds", "fitScreenCoordinates", "centerWithPanTo", "panToOptions", "cursorStyle"], outputs: ["mapResize", "mapRemove", "mapMouseDown", "mapMouseUp", "mapMouseMove", "mapClick", "mapDblClick", "mapMouseOver", "mapMouseOut", "mapContextMenu", "mapTouchStart", "mapTouchEnd", "mapTouchMove", "mapTouchCancel", "mapWheel", "moveStart", "move", "moveEnd", "mapDragStart", "mapDrag", "mapDragEnd", "zoomStart", "zoomEvt", "zoomEnd", "rotateStart", "rotate", "rotateEnd", "pitchStart", "pitchEvt", "pitchEnd", "boxZoomStart", "boxZoomEnd", "boxZoomCancel", "webGlContextLost", "webGlContextRestored", "mapLoad", "mapCreate", "idle", "render", "mapError", "data", "styleData", "sourceData", "dataLoading", "styleDataLoading", "sourceDataLoading", "styleImageMissing", "resize", "remove", "mouseDown", "mouseUp", "mouseMove", "click", "dblClick", "mouseOver", "mouseOut", "contextMenu", "touchStart", "touchEnd", "touchMove", "touchCancel", "wheel", "dragStart", "drag", "dragEnd", "load", "error"] }, { kind: "component", type: i10.MarkerComponent, selector: "mgl-marker", inputs: ["offset", "anchor", "clickTolerance", "feature", "lngLat", "draggable", "popupShown", "className", "pitchAlignment", "rotationAlignment"], outputs: ["markerDragStart", "markerDragEnd", "markerDrag", "dragStart", "dragEnd", "drag"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
226
+ }
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormMapboxLatLngFieldComponent, decorators: [{
228
228
  type: Component,
229
229
  args: [{ template: `
230
230
  <div class="dbx-mapbox-input-field" [ngClass]="(compactClass$ | async) ?? ''" [formGroup]="formGroup">
@@ -237,7 +237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
237
237
  <button *ngIf="showCenterButton" mat-icon-button (click)="flyToMarker()">
238
238
  <mat-icon>my_location</mat-icon>
239
239
  </button>
240
- <mat-form-field class="dbx-mapbox-input-field-input-field" appearance="standard">
240
+ <mat-form-field class="dbx-mapbox-input-field-input-field">
241
241
  <mat-label>Coordinates</mat-label>
242
242
  <input type="text" matInput [placeholder]="placeholder" [formControl]="formControl" />
243
243
  <mat-hint class="dbx-hint dbx-warn" *ngIf="useCurrentLocationDisabled$ | async">Could not access your current location.</mat-hint>
@@ -250,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
250
250
  }] }, { type: i2.DbxMapboxInjectionStore, decorators: [{
251
251
  type: Optional
252
252
  }] }, { type: i3.GeolocationService }, { type: i2.DbxMapboxMapStore }, { type: i0.NgZone }, { type: i0.Injector }]; } });
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0bG5nLmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL21hcGJveC9zcmMvbGliL2ZpZWxkL2xhdGxuZy9sYXRsbmcuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBcUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBYyxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuSyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFzQyxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQXVFLG9CQUFvQixFQUFnQixtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBdUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL08sT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUErRCx1Q0FBdUMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNMLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFFMUYsTUFBTSxDQUFDLE1BQU0sbURBQW1ELEdBQUcsbUNBQW1DLENBQUM7QUFF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LEVBQUUsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBMkI7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzsrSEF2T1UsaUNBQWlDO21IQUFqQyxpQ0FBaUMsdUNBSGpDLENBQUMsdUNBQXVDLEVBQUUsQ0FBQyxpREFuQjVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQ7NEZBSVUsaUNBQWlDO2tCQXZCN0MsU0FBUzsrQkFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JULGFBQ1UsQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDOzswQkF1RG5ELFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBhY3RDb250ZXh0U3RvcmUsIG1hcENvbXBhY3RNb2RlT2JzIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbCc7XG5pbXBvcnQgeyBza2lwLCBmaXJzdCwgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgbWFwLCBPYnNlcnZhYmxlLCB0aHJvdHRsZVRpbWUsIHNraXBXaGlsZSwgb2YsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhc09ic2VydmFibGVGcm9tR2V0dGVyLCBmaWx0ZXJNYXliZSwgT2JzZXJ2YWJsZUZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dCwgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSwgTGF0TG5nUG9pbnQsIExhdExuZ1BvaW50RnVuY3Rpb25Db25maWcsIExhdExuZ1N0cmluZ0Z1bmN0aW9uLCBsYXRMbmdTdHJpbmdGdW5jdGlvbiwgTWlsbGlzZWNvbmRzLCBsYXRMbmdQb2ludEZ1bmN0aW9uLCBpc0RlZmF1bHRMYXRMbmdQb2ludCwgaXNWYWxpZExhdExuZ1BvaW50LCBMYXRMbmdQb2ludEZ1bmN0aW9uLCBpc1NhbWVMYXRMbmdQb2ludCB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgR2VvbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnQG5nLXdlYi1hcGlzL2dlb2xvY2F0aW9uJztcbmltcG9ydCB7IE1hcmtlciB9IGZyb20gJ21hcGJveC1nbCc7XG5pbXBvcnQgeyBEYnhNYXBib3hJbmplY3Rpb25TdG9yZSwgRGJ4TWFwYm94TWFwU3RvcmUsIERieE1hcGJveE1hcmtlckRpc3BsYXlDb25maWcsIE1hcGJveEVhc2VUbywgTWFwYm94Wm9vbUxldmVsLCBwcm92aWRlTWFwYm94U3RvcmVJZlBhcmVudElzVW5hdmFpbGFibGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViL21hcGJveCc7XG5pbXBvcnQgeyBEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRNYXJrZXJDb21wb25lbnQgfSBmcm9tICcuL2xhdGxuZy5maWVsZC5tYXJrZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREJYX0ZPUk1fTUFQQk9YX0xBVF9MTkdfRklFTERfSU5KRUNUSU9OX0tFWSA9ICdEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRDb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfRk9STV9NQVBCT1hfTEFUX0xOR19NQVJLRVJfQ09ORklHOiBEYnhNYXBib3hNYXJrZXJEaXNwbGF5Q29uZmlnID0ge1xuICBpY29uOiAncGluX2Ryb3AnXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1NYXBib3hMYXRMbmdDb21wb25lbnRGaWVsZFByb3BzIGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFdoZXRoZXIgb3Igbm90IHRoZSBzaG93IHRoZSBtYXAuIElmIHRoZSBtYXAgaXMgbm90IHNob3duLCByZWxpZXMgb24gdGhlIGNlbnRlciBvZiB0aGUgcGFyZW50IG1hcCB0byBkZXRlcm1pbmUgcG9zaXRpb24uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqXG4gICAqIENhc2VzIHdoZXJlIHRoaXMgd291bGQgYmUgc2V0IGZhbHNlIGlzIGlmIGFub3RoZXIgbWFwIGlzIGJlaW5nIHVzZWQuXG4gICAqL1xuICBzaG93TWFwPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgdGhlIGNlbnRlciBidXR0b24uIElzIHNldCB0byBmYWxzZSBpZiBzZWxlY3RMb2NhdGlvbk9uTWFwRHJhZyBpcyB0cnVlLlxuICAgKi9cbiAgc2hvd0NlbnRlckJ1dHRvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzZXQgdGhlIGNlbnRlciBvZiB0aGUgbWFwIG9uIHRoZSBsb2NhdGlvbiB3aGVuIHNldC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIHNldENlbnRlck9uTG9jYXRpb25TZXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIGRyYWdnaW5nIHRoZSBtYXAgdG8gc2VsZWN0IHRoZSBsb2NhdGlvbi4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICpcbiAgICogT25seSBhcHBsaWNhYmxlIHdoZW4gc2hvd01hcCBpcyBmYWxzZS5cbiAgICovXG4gIHNlbGVjdExvY2F0aW9uT25NYXBEcmFnPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGVuYWJsZSBjbGlja2luZyB0aGUgbWFwIHRvIHNlbGVjdCB0aGUgbG9jYXRpb24uIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKlxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBzaG93TWFwIGlzIGZhbHNlLlxuICAgKi9cbiAgc2VsZWN0TG9jYXRpb25Pbk1hcENsaWNrPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgWm9vbSB0byBzdGFydCB0aGUgbWFwIGF0LiBJZ25vcmVkIGlmIHRoZSBzaG93TWFwIGlzIGZhbHNlLlxuICAgKi9cbiAgem9vbT86IE1hcGJveFpvb21MZXZlbDtcbiAgLyoqXG4gICAqIFRpbWUgdW50aWwgcmVjZW50ZXJpbmcgb24gdGhlIG1hcmtlci4gSWYgdGhlIHRpbWUgaXMgMCB0aGVuIHRoZSByZWNlbnRlcmluZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHJlY2VudGVyVGltZT86IE1pbGxpc2Vjb25kcztcbiAgbGF0TG5nQ29uZmlnPzogTGF0TG5nUG9pbnRGdW5jdGlvbkNvbmZpZztcbiAgLyoqXG4gICAqIFVuaXF1ZSBpbmplY3Rpb24ga2V5LlxuICAgKlxuICAgKiBJZiBub3QgZGVmaW5lZCwgdGhlIGRlZmF1bHQga2V5IHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogSWYgZmFsc2UgaXMgcGFzc2VkLCB0aGUgbWFya2VyIHdpbGwgbm90IGJlIGNvbmZpZ3VyZWQgaW4gdGhlIGluamVjdGlvbiBzdG9yZS5cbiAgICovXG4gIG1hcEluamVjdGlvbktleT86IE1heWJlPHN0cmluZyB8IGZhbHNlPjtcbiAgLyoqXG4gICAqIE1hcmtlciBjb25maWd1cmF0aW9uIG9yIGZhY3RvcnkuIElmIGZhbHNlIGlzIHBhc3NlZCwgdGhlIG1hcmtlciB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBtYXJrZXJDb25maWc/OiBmYWxzZSB8IE9ic2VydmFibGVGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8RGJ4TWFwYm94TWFya2VyRGlzcGxheUNvbmZpZyB8IGZhbHNlLCBEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRDb21wb25lbnQ+O1xufVxuXG4vKlxuICBUT0RPOiBSZS1hZGQgbWVudSBmb3IgcGlja2luZyBhIG5ldyBsb2NhdGlvbiwgaW5jbHVkaW5nIHVzaW5nIHRoZSBjdXJyZW50IGxvY2F0aW9uLlxuIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ1c2VDdXJyZW50TG9jYXRpb24oKVwiIFtkaXNhYmxlZF09XCJpc1JlYWRvbmx5T3JEaXNhYmxlZCB8fCAodXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQkIHwgYXN5bmMpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPm15X2xvY2F0aW9uPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1tYXBib3gtaW5wdXQtZmllbGRcIiBbbmdDbGFzc109XCIoY29tcGFjdENsYXNzJCB8IGFzeW5jKSA/PyAnJ1wiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd01hcFwiIGNsYXNzPVwiZGJ4LW1hcGJveC1pbnB1dC1maWVsZC1tYXBcIj5cbiAgICAgICAgPG1nbC1tYXAgZGJ4TWFwYm94TWFwPlxuICAgICAgICAgIDxtZ2wtbWFya2VyIFtsbmdMYXRdPVwiKGxhdExuZyQgfCBhc3luYykgfHwgWzAsIDBdXCIgW2RyYWdnYWJsZV09XCIhaXNSZWFkb25seU9yRGlzYWJsZWRcIiAobWFya2VyRHJhZ0VuZCk9XCJvbk1hcmtlckRyYWdFbmQoJGV2ZW50KVwiPjwvbWdsLW1hcmtlcj5cbiAgICAgICAgPC9tZ2wtbWFwPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGJ4LW1hcGJveC1pbnB1dC1maWVsZC1pbnB1dFwiPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0NlbnRlckJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZmx5VG9NYXJrZXIoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5teV9sb2NhdGlvbjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJkYngtbWFwYm94LWlucHV0LWZpZWxkLWlucHV0LWZpZWxkXCIgYXBwZWFyYW5jZT1cInN0YW5kYXJkXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5Db29yZGluYXRlczwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIC8+XG4gICAgICAgICAgPG1hdC1oaW50IGNsYXNzPVwiZGJ4LWhpbnQgZGJ4LXdhcm5cIiAqbmdJZj1cInVzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkJCB8IGFzeW5jXCI+Q291bGQgbm90IGFjY2VzcyB5b3VyIGN1cnJlbnQgbG9jYXRpb24uPC9tYXQtaGludD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBwcm92aWRlcnM6IFtwcm92aWRlTWFwYm94U3RvcmVJZlBhcmVudElzVW5hdmFpbGFibGUoKV0sXG4gIHN0eWxlVXJsczogWycuLi9tYXBib3guZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRDb21wb25lbnQ8VCBleHRlbmRzIERieEZvcm1NYXBib3hMYXRMbmdDb21wb25lbnRGaWVsZFByb3BzID0gRGJ4Rm9ybU1hcGJveExhdExuZ0NvbXBvbmVudEZpZWxkUHJvcHM+IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZzxUPj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2xhdExuZ1N0cmluZ0Z1bmN0aW9uITogTGF0TG5nU3RyaW5nRnVuY3Rpb247XG4gIHByaXZhdGUgX2xhdExuZ1BvaW50RnVuY3Rpb24hOiBMYXRMbmdQb2ludEZ1bmN0aW9uO1xuXG4gIHJlYWRvbmx5IGNvbXBhY3RDbGFzcyQgPSBtYXBDb21wYWN0TW9kZU9icyh0aGlzLmNvbXBhY3Q/Lm1vZGUkLCB7XG4gICAgY29tcGFjdDogJ2RieC1tYXBib3gtaW5wdXQtZmllbGQtY29tcGFjdCdcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfdXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgdXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQkID0gdGhpcy5fdXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBfc3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIF9nZW9TdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2NlbnRlclN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfZmx5VG9DZW50ZXJTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2NsaWNrU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIF96b29tID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXBib3hab29tTGV2ZWw+KDEyKTtcbiAgcHJpdmF0ZSBfbWFya2VyQ29uZmlnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPYnNlcnZhYmxlPERieE1hcGJveE1hcmtlckRpc3BsYXlDb25maWcgfCBmYWxzZT4+KG9mKERFRkFVTFRfREJYX0ZPUk1fTUFQQk9YX0xBVF9MTkdfTUFSS0VSX0NPTkZJRykpO1xuXG4gIHByaXZhdGUgX2Zvcm1Db250cm9sT2JzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxBYnN0cmFjdENvbnRyb2w+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBmb3JtQ29udHJvbCQgPSB0aGlzLl9mb3JtQ29udHJvbE9icy5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IHZhbHVlJCA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb250cm9sKSA9PiBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbGF0TG5nJDogT2JzZXJ2YWJsZTxMYXRMbmdQb2ludD4gPSB0aGlzLnZhbHVlJC5waXBlKFxuICAgIGZpbHRlck1heWJlKCksXG4gICAgbWFwKCh4KSA9PiB0aGlzLl9sYXRMbmdQb2ludEZ1bmN0aW9uKHgpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZDxMYXRMbmdQb2ludD4oaXNTYW1lTGF0TG5nUG9pbnQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbm9uWmVyb0xhdExuZyQ6IE9ic2VydmFibGU8TGF0TG5nUG9pbnQ+ID0gdGhpcy5sYXRMbmckLnBpcGUoXG4gICAgLyoqXG4gICAgICogQ2VudGVyIG9ic2VydmFibGUgcGFzc2VkIHRvIHRoZSBzdG9yZS4gRG8gbm90IHBhc3MgaW52YWxpZCBwb2ludHMuXG4gICAgICpcbiAgICAgKiBBbHNvIHNraXAgYW55IGluaXRpYWwgMCwwIHZhbHVlcyBzbyB0aGUgY2VudGVyIGRvZXNuJ3QgcG90ZW50aWFsbHkgXCJ3aGlwXCIgZnJvbSAwLDAgdG8gYSBmaW5hbCBsb2FkZWQgdmFsdWUuXG4gICAgICovXG4gICAgc2tpcFdoaWxlPExhdExuZ1BvaW50Pihpc0RlZmF1bHRMYXRMbmdQb2ludCksXG4gICAgZmlsdGVyKGlzVmFsaWRMYXRMbmdQb2ludClcbiAgKTtcblxuICByZWFkb25seSB6b29tJCA9IHRoaXMuX3pvb20uYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IG1hcmtlckNvbmZpZyQgPSB0aGlzLl9tYXJrZXJDb25maWcuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy9cbiAgICBAT3B0aW9uYWwoKSByZWFkb25seSBjb21wYWN0OiBDb21wYWN0Q29udGV4dFN0b3JlLFxuICAgIEBPcHRpb25hbCgpIHJlYWRvbmx5IGRieE1hcGJveEluamVjdGlvblN0b3JlOiBEYnhNYXBib3hJbmplY3Rpb25TdG9yZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdlb2xvY2F0aW9uJDogR2VvbG9jYXRpb25TZXJ2aWNlLFxuICAgIHJlYWRvbmx5IGRieE1hcGJveE1hcFN0b3JlOiBEYnhNYXBib3hNYXBTdG9yZSxcbiAgICByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCB6b29tKCk6IE1hcGJveFpvb21MZXZlbCB7XG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMuZmllbGQucHJvcHMuem9vbSB8fCAxMiwgMTgpO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZvcm0gYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgZ2V0IGxhYmVsKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbDtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIGdldCBpc1JlYWRvbmx5T3JEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgZ2V0IHNob3dNYXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHMuc2hvd01hcCA/PyB0cnVlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdExvY2F0aW9uT25NYXBEcmFnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnNlbGVjdExvY2F0aW9uT25NYXBEcmFnID8/IHRydWU7XG4gIH1cblxuICBnZXQgc2VsZWN0TG9jYXRpb25Pbk1hcENsaWNrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnNlbGVjdExvY2F0aW9uT25NYXBDbGljayA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBzZXRDZW50ZXJPbkxvY2F0aW9uU2V0KCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnNldENlbnRlck9uTG9jYXRpb25TZXQgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBzaG93Q2VudGVyQnV0dG9uKCkge1xuICAgIHJldHVybiAhdGhpcy5zZWxlY3RMb2NhdGlvbk9uTWFwRHJhZyAmJiB0aGlzLnByb3BzLnNob3dDZW50ZXJCdXR0b24gIT09IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHJlY2VudGVyVGltZSgpOiBNaWxsaXNlY29uZHMge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnJlY2VudGVyVGltZSB8fCAxMCAqIDEwMDA7XG4gIH1cblxuICBnZXQgdXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkO1xuICB9XG5cbiAgZ2V0IG1hcEluamVjdGlvbktleSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5tYXBJbmplY3Rpb25LZXk7XG4gIH1cblxuICBnZXQgbWFya2VyQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLm1hcmtlckNvbmZpZztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGxhdExuZ1BvaW50Q29uZmlnID0geyAuLi50aGlzLmZpZWxkLnByb3BzLmxhdExuZ0NvbmZpZywgd3JhcDogdGhpcy5maWVsZC5wcm9wcy5sYXRMbmdDb25maWc/LndyYXAgfHwgZmFsc2UsIHZhbGlkYXRlOiB0aGlzLmZpZWxkLnByb3BzLmxhdExuZ0NvbmZpZz8udmFsaWRhdGUgfHwgZmFsc2UsIHByZWNpc2lvblJvdW5kaW5nOiB0aGlzLmZpZWxkLnByb3BzLmxhdExuZ0NvbmZpZz8ucHJlY2lzaW9uUm91bmRpbmcgPz8gJ3JvdW5kJyB9O1xuICAgIHRoaXMuX2xhdExuZ1N0cmluZ0Z1bmN0aW9uID0gbGF0TG5nU3RyaW5nRnVuY3Rpb24obGF0TG5nUG9pbnRDb25maWcpO1xuICAgIHRoaXMuX2xhdExuZ1BvaW50RnVuY3Rpb24gPSBsYXRMbmdQb2ludEZ1bmN0aW9uKGxhdExuZ1BvaW50Q29uZmlnKTtcblxuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLm5leHQodGhpcy5mb3JtQ29udHJvbCk7XG4gICAgdGhpcy5fem9vbS5uZXh0KHRoaXMuem9vbSk7XG5cbiAgICBpZiAodGhpcy5zZXRDZW50ZXJPbkxvY2F0aW9uU2V0KSB7XG4gICAgICB0aGlzLl9jZW50ZXJTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5zZXRDZW50ZXIodGhpcy5ub25aZXJvTGF0TG5nJCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd01hcCkge1xuICAgICAgLy8gU2V0IHpvb20gb25seSBpZiBzaG93TWFwIGlzIHRydWVcbiAgICAgIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuc2V0Wm9vbSh0aGlzLnpvb20kKTtcblxuICAgICAgLy8gcmVjZW50ZXIgcGVyaW9kaWNhbGx5XG4gICAgICBpZiAodGhpcy5yZWNlbnRlclRpbWUgPiAwKSB7XG4gICAgICAgIHRoaXMuX2ZseVRvQ2VudGVyU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuY2VudGVyJC5waXBlKHNraXAoMSksIHRocm90dGxlVGltZSh0aGlzLnJlY2VudGVyVGltZSwgdW5kZWZpbmVkLCB7IGxlYWRpbmc6IGZhbHNlLCB0cmFpbGluZzogdHJ1ZSB9KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmZseVRvTWFya2VyKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyB1c2UgdGhlIGNlbnRlciBvZiB0aGUgbWFwIHRvIHNldCBsb2NhdGlvbnNcbiAgICAgIGlmICh0aGlzLnNlbGVjdExvY2F0aW9uT25NYXBEcmFnKSB7XG4gICAgICAgIHRoaXMuX3N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmNlbnRlciQuc3Vic2NyaWJlKChjZW50ZXIpID0+IHtcbiAgICAgICAgICB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmNlbnRlckdpdmVuTWFyZ2luJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNSZWFkb25seU9yRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKGNlbnRlcik7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gZW5hYmxlIHNlbGVjdGluZyB0aGUgbG9jYXRpb24gb24gYSBtYXAgY2xpY2tcbiAgICAgIGlmICh0aGlzLnNlbGVjdExvY2F0aW9uT25NYXBDbGljaykge1xuICAgICAgICB0aGlzLl9jbGlja1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmNsaWNrRXZlbnQkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgICAgIGlmICh4Py50eXBlID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKHgubG5nTGF0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIG1hcmtlciB0byB0aGUgaW5qZWN0aW9uIHN0b3JlIGZvciBkaXNwbGF5XG4gICAgaWYgKHRoaXMuZGJ4TWFwYm94SW5qZWN0aW9uU3RvcmUpIHtcbiAgICAgIGlmICh0aGlzLm1hcmtlckNvbmZpZyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuX21hcmtlckNvbmZpZy5uZXh0KHRoaXMubWFya2VyQ29uZmlnID09PSBmYWxzZSA/IG9mKGZhbHNlKSA6IGFzT2JzZXJ2YWJsZUZyb21HZXR0ZXIodGhpcy5tYXJrZXJDb25maWcsIHRoaXMpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kYnhNYXBib3hJbmplY3Rpb25TdG9yZS5hZGRJbmplY3Rpb25Db25maWcoe1xuICAgICAgICBrZXk6IHRoaXMubWFwSW5qZWN0aW9uS2V5IHx8IERFRkFVTFRfREJYX0ZPUk1fTUFQQk9YX0xBVF9MTkdfRklFTERfSU5KRUNUSU9OX0tFWSxcbiAgICAgICAgaW5qZWN0aW9uQ29uZmlnOiB7XG4gICAgICAgICAgY29tcG9uZW50Q2xhc3M6IERieEZvcm1NYXBib3hMYXRMbmdGaWVsZE1hcmtlckNvbXBvbmVudCxcbiAgICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IERieEZvcm1NYXBib3hMYXRMbmdGaWVsZENvbXBvbmVudCwgdXNlVmFsdWU6IHRoaXMgfV1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl96b29tLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbWFya2VyQ29uZmlnLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX2dlb1N1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fY2VudGVyU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9mbHlUb0NlbnRlclN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fY2xpY2tTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgZmx5VG9NYXJrZXIoKSB7XG4gICAgdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5lYXNlVG8oXG4gICAgICB0aGlzLm5vblplcm9MYXRMbmckLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIG1hcCgoeCkgPT4gKHsgY2VudGVyOiB4IH0gYXMgTWFwYm94RWFzZVRvKSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgdXNlQ3VycmVudExvY2F0aW9uKCkge1xuICAgIHRoaXMuX2dlb1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmdlb2xvY2F0aW9uJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocG9zaXRpb24pID0+IHtcbiAgICAgICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICAgICAgY29uc3QgeyBsYXRpdHVkZTogbGF0LCBsb25naXR1ZGU6IGxuZyB9ID0gcG9zaXRpb24uY29vcmRzO1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoeyBsYXQsIGxuZyB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuX3VzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkLm5leHQodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvbk1hcmtlckRyYWdFbmQobWFya2VyOiBNYXJrZXIpIHtcbiAgICB0aGlzLnNldFZhbHVlKG1hcmtlci5nZXRMbmdMYXQoKSk7XG4gIH1cblxuICBzZXRWYWx1ZShsYXRMbmc/OiBNYXliZTxMYXRMbmdQb2ludD4pIHtcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGxhdExuZyA/IHRoaXMuX2xhdExuZ1N0cmluZ0Z1bmN0aW9uKGxhdExuZykgOiBsYXRMbmcpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxufVxuIl19
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0bG5nLmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL21hcGJveC9zcmMvbGliL2ZpZWxkL2xhdGxuZy9sYXRsbmcuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBcUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBYyxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuSyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFzQyxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQXVFLG9CQUFvQixFQUFnQixtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBdUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL08sT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUErRCx1Q0FBdUMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNMLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFFMUYsTUFBTSxDQUFDLE1BQU0sbURBQW1ELEdBQUcsbUNBQW1DLENBQUM7QUFF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LEVBQUUsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBMkI7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDOytHQXZPVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyx1Q0FIakMsQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDLGlEQW5CNUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDs7NEZBSVUsaUNBQWlDO2tCQXZCN0MsU0FBUzsrQkFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JULGFBQ1UsQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDOzswQkF1RG5ELFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBhY3RDb250ZXh0U3RvcmUsIG1hcENvbXBhY3RNb2RlT2JzIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbCc7XG5pbXBvcnQgeyBza2lwLCBmaXJzdCwgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgbWFwLCBPYnNlcnZhYmxlLCB0aHJvdHRsZVRpbWUsIHNraXBXaGlsZSwgb2YsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhc09ic2VydmFibGVGcm9tR2V0dGVyLCBmaWx0ZXJNYXliZSwgT2JzZXJ2YWJsZUZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dCwgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSwgTGF0TG5nUG9pbnQsIExhdExuZ1BvaW50RnVuY3Rpb25Db25maWcsIExhdExuZ1N0cmluZ0Z1bmN0aW9uLCBsYXRMbmdTdHJpbmdGdW5jdGlvbiwgTWlsbGlzZWNvbmRzLCBsYXRMbmdQb2ludEZ1bmN0aW9uLCBpc0RlZmF1bHRMYXRMbmdQb2ludCwgaXNWYWxpZExhdExuZ1BvaW50LCBMYXRMbmdQb2ludEZ1bmN0aW9uLCBpc1NhbWVMYXRMbmdQb2ludCB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgR2VvbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnQG5nLXdlYi1hcGlzL2dlb2xvY2F0aW9uJztcbmltcG9ydCB7IE1hcmtlciB9IGZyb20gJ21hcGJveC1nbCc7XG5pbXBvcnQgeyBEYnhNYXBib3hJbmplY3Rpb25TdG9yZSwgRGJ4TWFwYm94TWFwU3RvcmUsIERieE1hcGJveE1hcmtlckRpc3BsYXlDb25maWcsIE1hcGJveEVhc2VUbywgTWFwYm94Wm9vbUxldmVsLCBwcm92aWRlTWFwYm94U3RvcmVJZlBhcmVudElzVW5hdmFpbGFibGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViL21hcGJveCc7XG5pbXBvcnQgeyBEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRNYXJrZXJDb21wb25lbnQgfSBmcm9tICcuL2xhdGxuZy5maWVsZC5tYXJrZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREJYX0ZPUk1fTUFQQk9YX0xBVF9MTkdfRklFTERfSU5KRUNUSU9OX0tFWSA9ICdEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRDb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfRk9STV9NQVBCT1hfTEFUX0xOR19NQVJLRVJfQ09ORklHOiBEYnhNYXBib3hNYXJrZXJEaXNwbGF5Q29uZmlnID0ge1xuICBpY29uOiAncGluX2Ryb3AnXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1NYXBib3hMYXRMbmdDb21wb25lbnRGaWVsZFByb3BzIGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFdoZXRoZXIgb3Igbm90IHRoZSBzaG93IHRoZSBtYXAuIElmIHRoZSBtYXAgaXMgbm90IHNob3duLCByZWxpZXMgb24gdGhlIGNlbnRlciBvZiB0aGUgcGFyZW50IG1hcCB0byBkZXRlcm1pbmUgcG9zaXRpb24uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqXG4gICAqIENhc2VzIHdoZXJlIHRoaXMgd291bGQgYmUgc2V0IGZhbHNlIGlzIGlmIGFub3RoZXIgbWFwIGlzIGJlaW5nIHVzZWQuXG4gICAqL1xuICBzaG93TWFwPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgdGhlIGNlbnRlciBidXR0b24uIElzIHNldCB0byBmYWxzZSBpZiBzZWxlY3RMb2NhdGlvbk9uTWFwRHJhZyBpcyB0cnVlLlxuICAgKi9cbiAgc2hvd0NlbnRlckJ1dHRvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzZXQgdGhlIGNlbnRlciBvZiB0aGUgbWFwIG9uIHRoZSBsb2NhdGlvbiB3aGVuIHNldC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIHNldENlbnRlck9uTG9jYXRpb25TZXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIGRyYWdnaW5nIHRoZSBtYXAgdG8gc2VsZWN0IHRoZSBsb2NhdGlvbi4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICpcbiAgICogT25seSBhcHBsaWNhYmxlIHdoZW4gc2hvd01hcCBpcyBmYWxzZS5cbiAgICovXG4gIHNlbGVjdExvY2F0aW9uT25NYXBEcmFnPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGVuYWJsZSBjbGlja2luZyB0aGUgbWFwIHRvIHNlbGVjdCB0aGUgbG9jYXRpb24uIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKlxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBzaG93TWFwIGlzIGZhbHNlLlxuICAgKi9cbiAgc2VsZWN0TG9jYXRpb25Pbk1hcENsaWNrPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgWm9vbSB0byBzdGFydCB0aGUgbWFwIGF0LiBJZ25vcmVkIGlmIHRoZSBzaG93TWFwIGlzIGZhbHNlLlxuICAgKi9cbiAgem9vbT86IE1hcGJveFpvb21MZXZlbDtcbiAgLyoqXG4gICAqIFRpbWUgdW50aWwgcmVjZW50ZXJpbmcgb24gdGhlIG1hcmtlci4gSWYgdGhlIHRpbWUgaXMgMCB0aGVuIHRoZSByZWNlbnRlcmluZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHJlY2VudGVyVGltZT86IE1pbGxpc2Vjb25kcztcbiAgbGF0TG5nQ29uZmlnPzogTGF0TG5nUG9pbnRGdW5jdGlvbkNvbmZpZztcbiAgLyoqXG4gICAqIFVuaXF1ZSBpbmplY3Rpb24ga2V5LlxuICAgKlxuICAgKiBJZiBub3QgZGVmaW5lZCwgdGhlIGRlZmF1bHQga2V5IHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogSWYgZmFsc2UgaXMgcGFzc2VkLCB0aGUgbWFya2VyIHdpbGwgbm90IGJlIGNvbmZpZ3VyZWQgaW4gdGhlIGluamVjdGlvbiBzdG9yZS5cbiAgICovXG4gIG1hcEluamVjdGlvbktleT86IE1heWJlPHN0cmluZyB8IGZhbHNlPjtcbiAgLyoqXG4gICAqIE1hcmtlciBjb25maWd1cmF0aW9uIG9yIGZhY3RvcnkuIElmIGZhbHNlIGlzIHBhc3NlZCwgdGhlIG1hcmtlciB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBtYXJrZXJDb25maWc/OiBmYWxzZSB8IE9ic2VydmFibGVGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8RGJ4TWFwYm94TWFya2VyRGlzcGxheUNvbmZpZyB8IGZhbHNlLCBEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRDb21wb25lbnQ+O1xufVxuXG4vKlxuICBUT0RPOiBSZS1hZGQgbWVudSBmb3IgcGlja2luZyBhIG5ldyBsb2NhdGlvbiwgaW5jbHVkaW5nIHVzaW5nIHRoZSBjdXJyZW50IGxvY2F0aW9uLlxuIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ1c2VDdXJyZW50TG9jYXRpb24oKVwiIFtkaXNhYmxlZF09XCJpc1JlYWRvbmx5T3JEaXNhYmxlZCB8fCAodXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQkIHwgYXN5bmMpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPm15X2xvY2F0aW9uPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1tYXBib3gtaW5wdXQtZmllbGRcIiBbbmdDbGFzc109XCIoY29tcGFjdENsYXNzJCB8IGFzeW5jKSA/PyAnJ1wiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd01hcFwiIGNsYXNzPVwiZGJ4LW1hcGJveC1pbnB1dC1maWVsZC1tYXBcIj5cbiAgICAgICAgPG1nbC1tYXAgZGJ4TWFwYm94TWFwPlxuICAgICAgICAgIDxtZ2wtbWFya2VyIFtsbmdMYXRdPVwiKGxhdExuZyQgfCBhc3luYykgfHwgWzAsIDBdXCIgW2RyYWdnYWJsZV09XCIhaXNSZWFkb25seU9yRGlzYWJsZWRcIiAobWFya2VyRHJhZ0VuZCk9XCJvbk1hcmtlckRyYWdFbmQoJGV2ZW50KVwiPjwvbWdsLW1hcmtlcj5cbiAgICAgICAgPC9tZ2wtbWFwPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGJ4LW1hcGJveC1pbnB1dC1maWVsZC1pbnB1dFwiPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0NlbnRlckJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZmx5VG9NYXJrZXIoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5teV9sb2NhdGlvbjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJkYngtbWFwYm94LWlucHV0LWZpZWxkLWlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5Db29yZGluYXRlczwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIC8+XG4gICAgICAgICAgPG1hdC1oaW50IGNsYXNzPVwiZGJ4LWhpbnQgZGJ4LXdhcm5cIiAqbmdJZj1cInVzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkJCB8IGFzeW5jXCI+Q291bGQgbm90IGFjY2VzcyB5b3VyIGN1cnJlbnQgbG9jYXRpb24uPC9tYXQtaGludD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBwcm92aWRlcnM6IFtwcm92aWRlTWFwYm94U3RvcmVJZlBhcmVudElzVW5hdmFpbGFibGUoKV0sXG4gIHN0eWxlVXJsczogWycuLi9tYXBib3guZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRDb21wb25lbnQ8VCBleHRlbmRzIERieEZvcm1NYXBib3hMYXRMbmdDb21wb25lbnRGaWVsZFByb3BzID0gRGJ4Rm9ybU1hcGJveExhdExuZ0NvbXBvbmVudEZpZWxkUHJvcHM+IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZzxUPj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2xhdExuZ1N0cmluZ0Z1bmN0aW9uITogTGF0TG5nU3RyaW5nRnVuY3Rpb247XG4gIHByaXZhdGUgX2xhdExuZ1BvaW50RnVuY3Rpb24hOiBMYXRMbmdQb2ludEZ1bmN0aW9uO1xuXG4gIHJlYWRvbmx5IGNvbXBhY3RDbGFzcyQgPSBtYXBDb21wYWN0TW9kZU9icyh0aGlzLmNvbXBhY3Q/Lm1vZGUkLCB7XG4gICAgY29tcGFjdDogJ2RieC1tYXBib3gtaW5wdXQtZmllbGQtY29tcGFjdCdcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfdXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgdXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQkID0gdGhpcy5fdXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBfc3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIF9nZW9TdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2NlbnRlclN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfZmx5VG9DZW50ZXJTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2NsaWNrU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIF96b29tID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXBib3hab29tTGV2ZWw+KDEyKTtcbiAgcHJpdmF0ZSBfbWFya2VyQ29uZmlnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPYnNlcnZhYmxlPERieE1hcGJveE1hcmtlckRpc3BsYXlDb25maWcgfCBmYWxzZT4+KG9mKERFRkFVTFRfREJYX0ZPUk1fTUFQQk9YX0xBVF9MTkdfTUFSS0VSX0NPTkZJRykpO1xuXG4gIHByaXZhdGUgX2Zvcm1Db250cm9sT2JzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxBYnN0cmFjdENvbnRyb2w+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBmb3JtQ29udHJvbCQgPSB0aGlzLl9mb3JtQ29udHJvbE9icy5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IHZhbHVlJCA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb250cm9sKSA9PiBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbGF0TG5nJDogT2JzZXJ2YWJsZTxMYXRMbmdQb2ludD4gPSB0aGlzLnZhbHVlJC5waXBlKFxuICAgIGZpbHRlck1heWJlKCksXG4gICAgbWFwKCh4KSA9PiB0aGlzLl9sYXRMbmdQb2ludEZ1bmN0aW9uKHgpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZDxMYXRMbmdQb2ludD4oaXNTYW1lTGF0TG5nUG9pbnQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbm9uWmVyb0xhdExuZyQ6IE9ic2VydmFibGU8TGF0TG5nUG9pbnQ+ID0gdGhpcy5sYXRMbmckLnBpcGUoXG4gICAgLyoqXG4gICAgICogQ2VudGVyIG9ic2VydmFibGUgcGFzc2VkIHRvIHRoZSBzdG9yZS4gRG8gbm90IHBhc3MgaW52YWxpZCBwb2ludHMuXG4gICAgICpcbiAgICAgKiBBbHNvIHNraXAgYW55IGluaXRpYWwgMCwwIHZhbHVlcyBzbyB0aGUgY2VudGVyIGRvZXNuJ3QgcG90ZW50aWFsbHkgXCJ3aGlwXCIgZnJvbSAwLDAgdG8gYSBmaW5hbCBsb2FkZWQgdmFsdWUuXG4gICAgICovXG4gICAgc2tpcFdoaWxlPExhdExuZ1BvaW50Pihpc0RlZmF1bHRMYXRMbmdQb2ludCksXG4gICAgZmlsdGVyKGlzVmFsaWRMYXRMbmdQb2ludClcbiAgKTtcblxuICByZWFkb25seSB6b29tJCA9IHRoaXMuX3pvb20uYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IG1hcmtlckNvbmZpZyQgPSB0aGlzLl9tYXJrZXJDb25maWcuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy9cbiAgICBAT3B0aW9uYWwoKSByZWFkb25seSBjb21wYWN0OiBDb21wYWN0Q29udGV4dFN0b3JlLFxuICAgIEBPcHRpb25hbCgpIHJlYWRvbmx5IGRieE1hcGJveEluamVjdGlvblN0b3JlOiBEYnhNYXBib3hJbmplY3Rpb25TdG9yZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdlb2xvY2F0aW9uJDogR2VvbG9jYXRpb25TZXJ2aWNlLFxuICAgIHJlYWRvbmx5IGRieE1hcGJveE1hcFN0b3JlOiBEYnhNYXBib3hNYXBTdG9yZSxcbiAgICByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCB6b29tKCk6IE1hcGJveFpvb21MZXZlbCB7XG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMuZmllbGQucHJvcHMuem9vbSB8fCAxMiwgMTgpO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZvcm0gYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgZ2V0IGxhYmVsKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbDtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIGdldCBpc1JlYWRvbmx5T3JEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgZ2V0IHNob3dNYXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHMuc2hvd01hcCA/PyB0cnVlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdExvY2F0aW9uT25NYXBEcmFnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnNlbGVjdExvY2F0aW9uT25NYXBEcmFnID8/IHRydWU7XG4gIH1cblxuICBnZXQgc2VsZWN0TG9jYXRpb25Pbk1hcENsaWNrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnNlbGVjdExvY2F0aW9uT25NYXBDbGljayA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBzZXRDZW50ZXJPbkxvY2F0aW9uU2V0KCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnNldENlbnRlck9uTG9jYXRpb25TZXQgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBzaG93Q2VudGVyQnV0dG9uKCkge1xuICAgIHJldHVybiAhdGhpcy5zZWxlY3RMb2NhdGlvbk9uTWFwRHJhZyAmJiB0aGlzLnByb3BzLnNob3dDZW50ZXJCdXR0b24gIT09IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHJlY2VudGVyVGltZSgpOiBNaWxsaXNlY29uZHMge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnJlY2VudGVyVGltZSB8fCAxMCAqIDEwMDA7XG4gIH1cblxuICBnZXQgdXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkO1xuICB9XG5cbiAgZ2V0IG1hcEluamVjdGlvbktleSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5tYXBJbmplY3Rpb25LZXk7XG4gIH1cblxuICBnZXQgbWFya2VyQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLm1hcmtlckNvbmZpZztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGxhdExuZ1BvaW50Q29uZmlnID0geyAuLi50aGlzLmZpZWxkLnByb3BzLmxhdExuZ0NvbmZpZywgd3JhcDogdGhpcy5maWVsZC5wcm9wcy5sYXRMbmdDb25maWc/LndyYXAgfHwgZmFsc2UsIHZhbGlkYXRlOiB0aGlzLmZpZWxkLnByb3BzLmxhdExuZ0NvbmZpZz8udmFsaWRhdGUgfHwgZmFsc2UsIHByZWNpc2lvblJvdW5kaW5nOiB0aGlzLmZpZWxkLnByb3BzLmxhdExuZ0NvbmZpZz8ucHJlY2lzaW9uUm91bmRpbmcgPz8gJ3JvdW5kJyB9O1xuICAgIHRoaXMuX2xhdExuZ1N0cmluZ0Z1bmN0aW9uID0gbGF0TG5nU3RyaW5nRnVuY3Rpb24obGF0TG5nUG9pbnRDb25maWcpO1xuICAgIHRoaXMuX2xhdExuZ1BvaW50RnVuY3Rpb24gPSBsYXRMbmdQb2ludEZ1bmN0aW9uKGxhdExuZ1BvaW50Q29uZmlnKTtcblxuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLm5leHQodGhpcy5mb3JtQ29udHJvbCk7XG4gICAgdGhpcy5fem9vbS5uZXh0KHRoaXMuem9vbSk7XG5cbiAgICBpZiAodGhpcy5zZXRDZW50ZXJPbkxvY2F0aW9uU2V0KSB7XG4gICAgICB0aGlzLl9jZW50ZXJTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5zZXRDZW50ZXIodGhpcy5ub25aZXJvTGF0TG5nJCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd01hcCkge1xuICAgICAgLy8gU2V0IHpvb20gb25seSBpZiBzaG93TWFwIGlzIHRydWVcbiAgICAgIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuc2V0Wm9vbSh0aGlzLnpvb20kKTtcblxuICAgICAgLy8gcmVjZW50ZXIgcGVyaW9kaWNhbGx5XG4gICAgICBpZiAodGhpcy5yZWNlbnRlclRpbWUgPiAwKSB7XG4gICAgICAgIHRoaXMuX2ZseVRvQ2VudGVyU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuY2VudGVyJC5waXBlKHNraXAoMSksIHRocm90dGxlVGltZSh0aGlzLnJlY2VudGVyVGltZSwgdW5kZWZpbmVkLCB7IGxlYWRpbmc6IGZhbHNlLCB0cmFpbGluZzogdHJ1ZSB9KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmZseVRvTWFya2VyKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyB1c2UgdGhlIGNlbnRlciBvZiB0aGUgbWFwIHRvIHNldCBsb2NhdGlvbnNcbiAgICAgIGlmICh0aGlzLnNlbGVjdExvY2F0aW9uT25NYXBEcmFnKSB7XG4gICAgICAgIHRoaXMuX3N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmNlbnRlciQuc3Vic2NyaWJlKChjZW50ZXIpID0+IHtcbiAgICAgICAgICB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmNlbnRlckdpdmVuTWFyZ2luJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNSZWFkb25seU9yRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKGNlbnRlcik7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gZW5hYmxlIHNlbGVjdGluZyB0aGUgbG9jYXRpb24gb24gYSBtYXAgY2xpY2tcbiAgICAgIGlmICh0aGlzLnNlbGVjdExvY2F0aW9uT25NYXBDbGljaykge1xuICAgICAgICB0aGlzLl9jbGlja1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmNsaWNrRXZlbnQkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgICAgIGlmICh4Py50eXBlID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKHgubG5nTGF0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIG1hcmtlciB0byB0aGUgaW5qZWN0aW9uIHN0b3JlIGZvciBkaXNwbGF5XG4gICAgaWYgKHRoaXMuZGJ4TWFwYm94SW5qZWN0aW9uU3RvcmUpIHtcbiAgICAgIGlmICh0aGlzLm1hcmtlckNvbmZpZyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuX21hcmtlckNvbmZpZy5uZXh0KHRoaXMubWFya2VyQ29uZmlnID09PSBmYWxzZSA/IG9mKGZhbHNlKSA6IGFzT2JzZXJ2YWJsZUZyb21HZXR0ZXIodGhpcy5tYXJrZXJDb25maWcsIHRoaXMpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kYnhNYXBib3hJbmplY3Rpb25TdG9yZS5hZGRJbmplY3Rpb25Db25maWcoe1xuICAgICAgICBrZXk6IHRoaXMubWFwSW5qZWN0aW9uS2V5IHx8IERFRkFVTFRfREJYX0ZPUk1fTUFQQk9YX0xBVF9MTkdfRklFTERfSU5KRUNUSU9OX0tFWSxcbiAgICAgICAgaW5qZWN0aW9uQ29uZmlnOiB7XG4gICAgICAgICAgY29tcG9uZW50Q2xhc3M6IERieEZvcm1NYXBib3hMYXRMbmdGaWVsZE1hcmtlckNvbXBvbmVudCxcbiAgICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IERieEZvcm1NYXBib3hMYXRMbmdGaWVsZENvbXBvbmVudCwgdXNlVmFsdWU6IHRoaXMgfV1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl96b29tLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbWFya2VyQ29uZmlnLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX2dlb1N1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fY2VudGVyU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9mbHlUb0NlbnRlclN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fY2xpY2tTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgZmx5VG9NYXJrZXIoKSB7XG4gICAgdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5lYXNlVG8oXG4gICAgICB0aGlzLm5vblplcm9MYXRMbmckLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIG1hcCgoeCkgPT4gKHsgY2VudGVyOiB4IH0gYXMgTWFwYm94RWFzZVRvKSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgdXNlQ3VycmVudExvY2F0aW9uKCkge1xuICAgIHRoaXMuX2dlb1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmdlb2xvY2F0aW9uJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocG9zaXRpb24pID0+IHtcbiAgICAgICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICAgICAgY29uc3QgeyBsYXRpdHVkZTogbGF0LCBsb25naXR1ZGU6IGxuZyB9ID0gcG9zaXRpb24uY29vcmRzO1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoeyBsYXQsIGxuZyB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuX3VzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkLm5leHQodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvbk1hcmtlckRyYWdFbmQobWFya2VyOiBNYXJrZXIpIHtcbiAgICB0aGlzLnNldFZhbHVlKG1hcmtlci5nZXRMbmdMYXQoKSk7XG4gIH1cblxuICBzZXRWYWx1ZShsYXRMbmc/OiBNYXliZTxMYXRMbmdQb2ludD4pIHtcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGxhdExuZyA/IHRoaXMuX2xhdExuZ1N0cmluZ0Z1bmN0aW9uKGxhdExuZykgOiBsYXRMbmcpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxufVxuIl19