@ni/nimble-angular 28.9.4 → 29.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/README.md +1 -1
  2. package/directives/icons/bell-check/nimble-icon-bell-check.directive.d.ts +12 -0
  3. package/directives/icons/bell-check/nimble-icon-bell-check.module.d.ts +9 -0
  4. package/directives/icons/bell-on/nimble-icon-bell-on.directive.d.ts +12 -0
  5. package/directives/icons/bell-on/nimble-icon-bell-on.module.d.ts +9 -0
  6. package/directives/icons/index.d.ts +10 -0
  7. package/directives/icons/message-bot/nimble-icon-message-bot.directive.d.ts +12 -0
  8. package/directives/icons/message-bot/nimble-icon-message-bot.module.d.ts +9 -0
  9. package/directives/icons/thumb-down/nimble-icon-thumb-down.directive.d.ts +12 -0
  10. package/directives/icons/thumb-down/nimble-icon-thumb-down.module.d.ts +9 -0
  11. package/directives/icons/thumb-up/nimble-icon-thumb-up.directive.d.ts +12 -0
  12. package/directives/icons/thumb-up/nimble-icon-thumb-up.module.d.ts +9 -0
  13. package/esm2022/card/nimble-card.directive.mjs +3 -3
  14. package/esm2022/card/nimble-card.module.mjs +4 -4
  15. package/esm2022/directives/anchor/nimble-anchor-router-link-with-href.directive.mjs +3 -3
  16. package/esm2022/directives/anchor/nimble-anchor-router-link.directive.mjs +3 -3
  17. package/esm2022/directives/anchor/nimble-anchor.directive.mjs +3 -3
  18. package/esm2022/directives/anchor/nimble-anchor.module.mjs +4 -4
  19. package/esm2022/directives/anchor-base/disableable-router-link-with-href.directive.mjs +3 -3
  20. package/esm2022/directives/anchor-base/nimble-anchor-base.directive.mjs +3 -3
  21. package/esm2022/directives/anchor-button/nimble-anchor-button-router-link-with-href.directive.mjs +3 -3
  22. package/esm2022/directives/anchor-button/nimble-anchor-button-router-link.directive.mjs +3 -3
  23. package/esm2022/directives/anchor-button/nimble-anchor-button.directive.mjs +3 -3
  24. package/esm2022/directives/anchor-button/nimble-anchor-button.module.mjs +4 -4
  25. package/esm2022/directives/anchor-menu-item/nimble-anchor-menu-item-router-link-with-href.directive.mjs +3 -3
  26. package/esm2022/directives/anchor-menu-item/nimble-anchor-menu-item-router-link.directive.mjs +3 -3
  27. package/esm2022/directives/anchor-menu-item/nimble-anchor-menu-item.directive.mjs +3 -3
  28. package/esm2022/directives/anchor-menu-item/nimble-anchor-menu-item.module.mjs +4 -4
  29. package/esm2022/directives/anchor-tab/nimble-anchor-tab-router-link-with-href.directive.mjs +3 -3
  30. package/esm2022/directives/anchor-tab/nimble-anchor-tab-router-link.directive.mjs +3 -3
  31. package/esm2022/directives/anchor-tab/nimble-anchor-tab.directive.mjs +3 -3
  32. package/esm2022/directives/anchor-tab/nimble-anchor-tab.module.mjs +4 -4
  33. package/esm2022/directives/anchor-tabs/nimble-anchor-tabs.directive.mjs +3 -3
  34. package/esm2022/directives/anchor-tabs/nimble-anchor-tabs.module.mjs +4 -4
  35. package/esm2022/directives/anchor-tree-item/nimble-anchor-tree-item-router-link-with-href.directive.mjs +3 -3
  36. package/esm2022/directives/anchor-tree-item/nimble-anchor-tree-item-router-link.directive.mjs +3 -3
  37. package/esm2022/directives/anchor-tree-item/nimble-anchor-tree-item.directive.mjs +3 -3
  38. package/esm2022/directives/anchor-tree-item/nimble-anchor-tree-item.module.mjs +4 -4
  39. package/esm2022/directives/banner/nimble-banner.directive.mjs +3 -3
  40. package/esm2022/directives/banner/nimble-banner.module.mjs +4 -4
  41. package/esm2022/directives/breadcrumb/nimble-breadcrumb.directive.mjs +3 -3
  42. package/esm2022/directives/breadcrumb/nimble-breadcrumb.module.mjs +4 -4
  43. package/esm2022/directives/breadcrumb-item/nimble-breadcrumb-item-router-link-with-href.directive.mjs +3 -3
  44. package/esm2022/directives/breadcrumb-item/nimble-breadcrumb-item-router-link.directive.mjs +3 -3
  45. package/esm2022/directives/breadcrumb-item/nimble-breadcrumb-item.directive.mjs +3 -3
  46. package/esm2022/directives/breadcrumb-item/nimble-breadcrumb-item.module.mjs +4 -4
  47. package/esm2022/directives/button/nimble-button.directive.mjs +3 -3
  48. package/esm2022/directives/button/nimble-button.module.mjs +4 -4
  49. package/esm2022/directives/card-button/nimble-card-button.directive.mjs +3 -3
  50. package/esm2022/directives/card-button/nimble-card-button.module.mjs +4 -4
  51. package/esm2022/directives/checkbox/nimble-checkbox-control-value-accessor.directive.mjs +3 -3
  52. package/esm2022/directives/checkbox/nimble-checkbox.directive.mjs +3 -3
  53. package/esm2022/directives/checkbox/nimble-checkbox.module.mjs +4 -4
  54. package/esm2022/directives/combobox/nimble-combobox-control-value-accessor.directive.mjs +3 -3
  55. package/esm2022/directives/combobox/nimble-combobox.directive.mjs +3 -3
  56. package/esm2022/directives/combobox/nimble-combobox.module.mjs +4 -4
  57. package/esm2022/directives/dialog/nimble-dialog.directive.mjs +3 -3
  58. package/esm2022/directives/dialog/nimble-dialog.module.mjs +4 -4
  59. package/esm2022/directives/drawer/nimble-drawer.directive.mjs +3 -3
  60. package/esm2022/directives/drawer/nimble-drawer.module.mjs +4 -4
  61. package/esm2022/directives/icon-base/nimble-icon-base.directive.mjs +3 -3
  62. package/esm2022/directives/icons/add/nimble-icon-add.directive.mjs +3 -3
  63. package/esm2022/directives/icons/add/nimble-icon-add.module.mjs +4 -4
  64. package/esm2022/directives/icons/arrow-down/nimble-icon-arrow-down.directive.mjs +3 -3
  65. package/esm2022/directives/icons/arrow-down/nimble-icon-arrow-down.module.mjs +4 -4
  66. package/esm2022/directives/icons/arrow-down-left-and-arrow-up-right/nimble-icon-arrow-down-left-and-arrow-up-right.directive.mjs +3 -3
  67. package/esm2022/directives/icons/arrow-down-left-and-arrow-up-right/nimble-icon-arrow-down-left-and-arrow-up-right.module.mjs +4 -4
  68. package/esm2022/directives/icons/arrow-down-rectangle/nimble-icon-arrow-down-rectangle.directive.mjs +3 -3
  69. package/esm2022/directives/icons/arrow-down-rectangle/nimble-icon-arrow-down-rectangle.module.mjs +4 -4
  70. package/esm2022/directives/icons/arrow-down-right-and-arrow-up-left/nimble-icon-arrow-down-right-and-arrow-up-left.directive.mjs +3 -3
  71. package/esm2022/directives/icons/arrow-down-right-and-arrow-up-left/nimble-icon-arrow-down-right-and-arrow-up-left.module.mjs +4 -4
  72. package/esm2022/directives/icons/arrow-expander-down/nimble-icon-arrow-expander-down.directive.mjs +3 -3
  73. package/esm2022/directives/icons/arrow-expander-down/nimble-icon-arrow-expander-down.module.mjs +4 -4
  74. package/esm2022/directives/icons/arrow-expander-left/nimble-icon-arrow-expander-left.directive.mjs +3 -3
  75. package/esm2022/directives/icons/arrow-expander-left/nimble-icon-arrow-expander-left.module.mjs +4 -4
  76. package/esm2022/directives/icons/arrow-expander-right/nimble-icon-arrow-expander-right.directive.mjs +3 -3
  77. package/esm2022/directives/icons/arrow-expander-right/nimble-icon-arrow-expander-right.module.mjs +4 -4
  78. package/esm2022/directives/icons/arrow-expander-up/nimble-icon-arrow-expander-up.directive.mjs +3 -3
  79. package/esm2022/directives/icons/arrow-expander-up/nimble-icon-arrow-expander-up.module.mjs +4 -4
  80. package/esm2022/directives/icons/arrow-in-circle/nimble-icon-arrow-in-circle.directive.mjs +3 -3
  81. package/esm2022/directives/icons/arrow-in-circle/nimble-icon-arrow-in-circle.module.mjs +4 -4
  82. package/esm2022/directives/icons/arrow-left-from-line/nimble-icon-arrow-left-from-line.directive.mjs +3 -3
  83. package/esm2022/directives/icons/arrow-left-from-line/nimble-icon-arrow-left-from-line.module.mjs +4 -4
  84. package/esm2022/directives/icons/arrow-out-circle/nimble-icon-arrow-out-circle.directive.mjs +3 -3
  85. package/esm2022/directives/icons/arrow-out-circle/nimble-icon-arrow-out-circle.module.mjs +4 -4
  86. package/esm2022/directives/icons/arrow-partial-rotate-left/nimble-icon-arrow-partial-rotate-left.directive.mjs +3 -3
  87. package/esm2022/directives/icons/arrow-partial-rotate-left/nimble-icon-arrow-partial-rotate-left.module.mjs +4 -4
  88. package/esm2022/directives/icons/arrow-right-thin/nimble-icon-arrow-right-thin.directive.mjs +3 -3
  89. package/esm2022/directives/icons/arrow-right-thin/nimble-icon-arrow-right-thin.module.mjs +4 -4
  90. package/esm2022/directives/icons/arrow-right-to-line/nimble-icon-arrow-right-to-line.directive.mjs +3 -3
  91. package/esm2022/directives/icons/arrow-right-to-line/nimble-icon-arrow-right-to-line.module.mjs +4 -4
  92. package/esm2022/directives/icons/arrow-rotate-right/nimble-icon-arrow-rotate-right.directive.mjs +3 -3
  93. package/esm2022/directives/icons/arrow-rotate-right/nimble-icon-arrow-rotate-right.module.mjs +4 -4
  94. package/esm2022/directives/icons/arrow-u-left/nimble-icon-arrow-u-left.directive.mjs +3 -3
  95. package/esm2022/directives/icons/arrow-u-left/nimble-icon-arrow-u-left.module.mjs +4 -4
  96. package/esm2022/directives/icons/arrow-u-right/nimble-icon-arrow-u-right.directive.mjs +3 -3
  97. package/esm2022/directives/icons/arrow-u-right/nimble-icon-arrow-u-right.module.mjs +4 -4
  98. package/esm2022/directives/icons/arrow-u-up/nimble-icon-arrow-u-up.directive.mjs +3 -3
  99. package/esm2022/directives/icons/arrow-u-up/nimble-icon-arrow-u-up.module.mjs +4 -4
  100. package/esm2022/directives/icons/arrow-up/nimble-icon-arrow-up.directive.mjs +3 -3
  101. package/esm2022/directives/icons/arrow-up/nimble-icon-arrow-up.module.mjs +4 -4
  102. package/esm2022/directives/icons/arrow-up-left-and-arrow-down-right/nimble-icon-arrow-up-left-and-arrow-down-right.directive.mjs +3 -3
  103. package/esm2022/directives/icons/arrow-up-left-and-arrow-down-right/nimble-icon-arrow-up-left-and-arrow-down-right.module.mjs +4 -4
  104. package/esm2022/directives/icons/arrow-up-rectangle/nimble-icon-arrow-up-rectangle.directive.mjs +3 -3
  105. package/esm2022/directives/icons/arrow-up-rectangle/nimble-icon-arrow-up-rectangle.module.mjs +4 -4
  106. package/esm2022/directives/icons/arrow-up-right-and-arrow-down-left/nimble-icon-arrow-up-right-and-arrow-down-left.directive.mjs +3 -3
  107. package/esm2022/directives/icons/arrow-up-right-and-arrow-down-left/nimble-icon-arrow-up-right-and-arrow-down-left.module.mjs +4 -4
  108. package/esm2022/directives/icons/arrow-up-right-from-square/nimble-icon-arrow-up-right-from-square.directive.mjs +3 -3
  109. package/esm2022/directives/icons/arrow-up-right-from-square/nimble-icon-arrow-up-right-from-square.module.mjs +4 -4
  110. package/esm2022/directives/icons/arrows-maximize/nimble-icon-arrows-maximize.directive.mjs +3 -3
  111. package/esm2022/directives/icons/arrows-maximize/nimble-icon-arrows-maximize.module.mjs +4 -4
  112. package/esm2022/directives/icons/arrows-repeat/nimble-icon-arrows-repeat.directive.mjs +3 -3
  113. package/esm2022/directives/icons/arrows-repeat/nimble-icon-arrows-repeat.module.mjs +4 -4
  114. package/esm2022/directives/icons/asterisk/nimble-icon-asterisk.directive.mjs +3 -3
  115. package/esm2022/directives/icons/asterisk/nimble-icon-asterisk.module.mjs +4 -4
  116. package/esm2022/directives/icons/at/nimble-icon-at.directive.mjs +3 -3
  117. package/esm2022/directives/icons/at/nimble-icon-at.module.mjs +4 -4
  118. package/esm2022/directives/icons/bars/nimble-icon-bars.directive.mjs +3 -3
  119. package/esm2022/directives/icons/bars/nimble-icon-bars.module.mjs +4 -4
  120. package/esm2022/directives/icons/bell/nimble-icon-bell.directive.mjs +3 -3
  121. package/esm2022/directives/icons/bell/nimble-icon-bell.module.mjs +4 -4
  122. package/esm2022/directives/icons/bell-and-comment/nimble-icon-bell-and-comment.directive.mjs +3 -3
  123. package/esm2022/directives/icons/bell-and-comment/nimble-icon-bell-and-comment.module.mjs +4 -4
  124. package/esm2022/directives/icons/bell-check/nimble-icon-bell-check.directive.mjs +21 -0
  125. package/esm2022/directives/icons/bell-check/nimble-icon-bell-check.module.mjs +21 -0
  126. package/esm2022/directives/icons/bell-circle/nimble-icon-bell-circle.directive.mjs +3 -3
  127. package/esm2022/directives/icons/bell-circle/nimble-icon-bell-circle.module.mjs +4 -4
  128. package/esm2022/directives/icons/bell-on/nimble-icon-bell-on.directive.mjs +21 -0
  129. package/esm2022/directives/icons/bell-on/nimble-icon-bell-on.module.mjs +21 -0
  130. package/esm2022/directives/icons/bell-solid-circle/nimble-icon-bell-solid-circle.directive.mjs +3 -3
  131. package/esm2022/directives/icons/bell-solid-circle/nimble-icon-bell-solid-circle.module.mjs +4 -4
  132. package/esm2022/directives/icons/block-with-ribbon/nimble-icon-block-with-ribbon.directive.mjs +3 -3
  133. package/esm2022/directives/icons/block-with-ribbon/nimble-icon-block-with-ribbon.module.mjs +4 -4
  134. package/esm2022/directives/icons/bold-b/nimble-icon-bold-b.directive.mjs +3 -3
  135. package/esm2022/directives/icons/bold-b/nimble-icon-bold-b.module.mjs +4 -4
  136. package/esm2022/directives/icons/book-magnifying-glass/nimble-icon-book-magnifying-glass.directive.mjs +3 -3
  137. package/esm2022/directives/icons/book-magnifying-glass/nimble-icon-book-magnifying-glass.module.mjs +4 -4
  138. package/esm2022/directives/icons/calendar-check-lines/nimble-icon-calendar-check-lines.directive.mjs +3 -3
  139. package/esm2022/directives/icons/calendar-check-lines/nimble-icon-calendar-check-lines.module.mjs +4 -4
  140. package/esm2022/directives/icons/calendar-clock/nimble-icon-calendar-clock.directive.mjs +3 -3
  141. package/esm2022/directives/icons/calendar-clock/nimble-icon-calendar-clock.module.mjs +4 -4
  142. package/esm2022/directives/icons/calendar-day/nimble-icon-calendar-day.directive.mjs +3 -3
  143. package/esm2022/directives/icons/calendar-day/nimble-icon-calendar-day.module.mjs +4 -4
  144. package/esm2022/directives/icons/calendar-day-outline/nimble-icon-calendar-day-outline.directive.mjs +3 -3
  145. package/esm2022/directives/icons/calendar-day-outline/nimble-icon-calendar-day-outline.module.mjs +4 -4
  146. package/esm2022/directives/icons/calendar-days/nimble-icon-calendar-days.directive.mjs +3 -3
  147. package/esm2022/directives/icons/calendar-days/nimble-icon-calendar-days.module.mjs +4 -4
  148. package/esm2022/directives/icons/calendar-lines/nimble-icon-calendar-lines.directive.mjs +3 -3
  149. package/esm2022/directives/icons/calendar-lines/nimble-icon-calendar-lines.module.mjs +4 -4
  150. package/esm2022/directives/icons/calendar-rectangle/nimble-icon-calendar-rectangle.directive.mjs +3 -3
  151. package/esm2022/directives/icons/calendar-rectangle/nimble-icon-calendar-rectangle.module.mjs +4 -4
  152. package/esm2022/directives/icons/calendar-week/nimble-icon-calendar-week.directive.mjs +3 -3
  153. package/esm2022/directives/icons/calendar-week/nimble-icon-calendar-week.module.mjs +4 -4
  154. package/esm2022/directives/icons/chart-diagram/nimble-icon-chart-diagram.directive.mjs +3 -3
  155. package/esm2022/directives/icons/chart-diagram/nimble-icon-chart-diagram.module.mjs +4 -4
  156. package/esm2022/directives/icons/chart-diagram-child-focus/nimble-icon-chart-diagram-child-focus.directive.mjs +3 -3
  157. package/esm2022/directives/icons/chart-diagram-child-focus/nimble-icon-chart-diagram-child-focus.module.mjs +4 -4
  158. package/esm2022/directives/icons/chart-diagram-parent-focus/nimble-icon-chart-diagram-parent-focus.directive.mjs +3 -3
  159. package/esm2022/directives/icons/chart-diagram-parent-focus/nimble-icon-chart-diagram-parent-focus.module.mjs +4 -4
  160. package/esm2022/directives/icons/chart-diagram-parent-focus-two-child/nimble-icon-chart-diagram-parent-focus-two-child.directive.mjs +3 -3
  161. package/esm2022/directives/icons/chart-diagram-parent-focus-two-child/nimble-icon-chart-diagram-parent-focus-two-child.module.mjs +4 -4
  162. package/esm2022/directives/icons/check/nimble-icon-check.directive.mjs +3 -3
  163. package/esm2022/directives/icons/check/nimble-icon-check.module.mjs +4 -4
  164. package/esm2022/directives/icons/check-dot/nimble-icon-check-dot.directive.mjs +3 -3
  165. package/esm2022/directives/icons/check-dot/nimble-icon-check-dot.module.mjs +4 -4
  166. package/esm2022/directives/icons/circle/nimble-icon-circle.directive.mjs +3 -3
  167. package/esm2022/directives/icons/circle/nimble-icon-circle.module.mjs +4 -4
  168. package/esm2022/directives/icons/circle-broken/nimble-icon-circle-broken.directive.mjs +3 -3
  169. package/esm2022/directives/icons/circle-broken/nimble-icon-circle-broken.module.mjs +4 -4
  170. package/esm2022/directives/icons/circle-check/nimble-icon-circle-check.directive.mjs +3 -3
  171. package/esm2022/directives/icons/circle-check/nimble-icon-circle-check.module.mjs +4 -4
  172. package/esm2022/directives/icons/circle-filled/nimble-icon-circle-filled.directive.mjs +3 -3
  173. package/esm2022/directives/icons/circle-filled/nimble-icon-circle-filled.module.mjs +4 -4
  174. package/esm2022/directives/icons/circle-partial-broken/nimble-icon-circle-partial-broken.directive.mjs +3 -3
  175. package/esm2022/directives/icons/circle-partial-broken/nimble-icon-circle-partial-broken.module.mjs +4 -4
  176. package/esm2022/directives/icons/circle-slash/nimble-icon-circle-slash.directive.mjs +3 -3
  177. package/esm2022/directives/icons/circle-slash/nimble-icon-circle-slash.module.mjs +4 -4
  178. package/esm2022/directives/icons/circle-x/nimble-icon-circle-x.directive.mjs +3 -3
  179. package/esm2022/directives/icons/circle-x/nimble-icon-circle-x.module.mjs +4 -4
  180. package/esm2022/directives/icons/clipboard/nimble-icon-clipboard.directive.mjs +3 -3
  181. package/esm2022/directives/icons/clipboard/nimble-icon-clipboard.module.mjs +4 -4
  182. package/esm2022/directives/icons/clock/nimble-icon-clock.directive.mjs +3 -3
  183. package/esm2022/directives/icons/clock/nimble-icon-clock.module.mjs +4 -4
  184. package/esm2022/directives/icons/clock-cog/nimble-icon-clock-cog.directive.mjs +3 -3
  185. package/esm2022/directives/icons/clock-cog/nimble-icon-clock-cog.module.mjs +4 -4
  186. package/esm2022/directives/icons/clock-exclamation/nimble-icon-clock-exclamation.directive.mjs +3 -3
  187. package/esm2022/directives/icons/clock-exclamation/nimble-icon-clock-exclamation.module.mjs +4 -4
  188. package/esm2022/directives/icons/clock-triangle/nimble-icon-clock-triangle.directive.mjs +3 -3
  189. package/esm2022/directives/icons/clock-triangle/nimble-icon-clock-triangle.module.mjs +4 -4
  190. package/esm2022/directives/icons/clone/nimble-icon-clone.directive.mjs +3 -3
  191. package/esm2022/directives/icons/clone/nimble-icon-clone.module.mjs +4 -4
  192. package/esm2022/directives/icons/cloud/nimble-icon-cloud.directive.mjs +3 -3
  193. package/esm2022/directives/icons/cloud/nimble-icon-cloud.module.mjs +4 -4
  194. package/esm2022/directives/icons/cloud-upload/nimble-icon-cloud-upload.directive.mjs +3 -3
  195. package/esm2022/directives/icons/cloud-upload/nimble-icon-cloud-upload.module.mjs +4 -4
  196. package/esm2022/directives/icons/cloud-with-arrow/nimble-icon-cloud-with-arrow.directive.mjs +3 -3
  197. package/esm2022/directives/icons/cloud-with-arrow/nimble-icon-cloud-with-arrow.module.mjs +4 -4
  198. package/esm2022/directives/icons/cog/nimble-icon-cog.directive.mjs +3 -3
  199. package/esm2022/directives/icons/cog/nimble-icon-cog.module.mjs +4 -4
  200. package/esm2022/directives/icons/cog-database/nimble-icon-cog-database.directive.mjs +3 -3
  201. package/esm2022/directives/icons/cog-database/nimble-icon-cog-database.module.mjs +4 -4
  202. package/esm2022/directives/icons/cog-database-inset/nimble-icon-cog-database-inset.directive.mjs +3 -3
  203. package/esm2022/directives/icons/cog-database-inset/nimble-icon-cog-database-inset.module.mjs +4 -4
  204. package/esm2022/directives/icons/cog-small-cog/nimble-icon-cog-small-cog.directive.mjs +3 -3
  205. package/esm2022/directives/icons/cog-small-cog/nimble-icon-cog-small-cog.module.mjs +4 -4
  206. package/esm2022/directives/icons/cog-zoomed/nimble-icon-cog-zoomed.directive.mjs +3 -3
  207. package/esm2022/directives/icons/cog-zoomed/nimble-icon-cog-zoomed.module.mjs +4 -4
  208. package/esm2022/directives/icons/comment/nimble-icon-comment.directive.mjs +3 -3
  209. package/esm2022/directives/icons/comment/nimble-icon-comment.module.mjs +4 -4
  210. package/esm2022/directives/icons/computer-and-monitor/nimble-icon-computer-and-monitor.directive.mjs +3 -3
  211. package/esm2022/directives/icons/computer-and-monitor/nimble-icon-computer-and-monitor.module.mjs +4 -4
  212. package/esm2022/directives/icons/copy/nimble-icon-copy.directive.mjs +3 -3
  213. package/esm2022/directives/icons/copy/nimble-icon-copy.module.mjs +4 -4
  214. package/esm2022/directives/icons/copy-text/nimble-icon-copy-text.directive.mjs +3 -3
  215. package/esm2022/directives/icons/copy-text/nimble-icon-copy-text.module.mjs +4 -4
  216. package/esm2022/directives/icons/dashboard-builder/nimble-icon-dashboard-builder.directive.mjs +3 -3
  217. package/esm2022/directives/icons/dashboard-builder/nimble-icon-dashboard-builder.module.mjs +4 -4
  218. package/esm2022/directives/icons/dashboard-builder-legend/nimble-icon-dashboard-builder-legend.directive.mjs +3 -3
  219. package/esm2022/directives/icons/dashboard-builder-legend/nimble-icon-dashboard-builder-legend.module.mjs +4 -4
  220. package/esm2022/directives/icons/dashboard-builder-templates/nimble-icon-dashboard-builder-templates.directive.mjs +3 -3
  221. package/esm2022/directives/icons/dashboard-builder-templates/nimble-icon-dashboard-builder-templates.module.mjs +4 -4
  222. package/esm2022/directives/icons/dashboard-builder-tile/nimble-icon-dashboard-builder-tile.directive.mjs +3 -3
  223. package/esm2022/directives/icons/dashboard-builder-tile/nimble-icon-dashboard-builder-tile.module.mjs +4 -4
  224. package/esm2022/directives/icons/database/nimble-icon-database.directive.mjs +3 -3
  225. package/esm2022/directives/icons/database/nimble-icon-database.module.mjs +4 -4
  226. package/esm2022/directives/icons/database-check/nimble-icon-database-check.directive.mjs +3 -3
  227. package/esm2022/directives/icons/database-check/nimble-icon-database-check.module.mjs +4 -4
  228. package/esm2022/directives/icons/debug/nimble-icon-debug.directive.mjs +3 -3
  229. package/esm2022/directives/icons/debug/nimble-icon-debug.module.mjs +4 -4
  230. package/esm2022/directives/icons/desktop/nimble-icon-desktop.directive.mjs +3 -3
  231. package/esm2022/directives/icons/desktop/nimble-icon-desktop.module.mjs +4 -4
  232. package/esm2022/directives/icons/donut-chart/nimble-icon-donut-chart.directive.mjs +3 -3
  233. package/esm2022/directives/icons/donut-chart/nimble-icon-donut-chart.module.mjs +4 -4
  234. package/esm2022/directives/icons/dot-solid-dot-stroke/nimble-icon-dot-solid-dot-stroke.directive.mjs +3 -3
  235. package/esm2022/directives/icons/dot-solid-dot-stroke/nimble-icon-dot-solid-dot-stroke.module.mjs +4 -4
  236. package/esm2022/directives/icons/dot-solid-dot-stroke-measurement/nimble-icon-dot-solid-dot-stroke-measurement.directive.mjs +3 -3
  237. package/esm2022/directives/icons/dot-solid-dot-stroke-measurement/nimble-icon-dot-solid-dot-stroke-measurement.module.mjs +4 -4
  238. package/esm2022/directives/icons/down-right-from-square/nimble-icon-down-right-from-square.directive.mjs +3 -3
  239. package/esm2022/directives/icons/down-right-from-square/nimble-icon-down-right-from-square.module.mjs +4 -4
  240. package/esm2022/directives/icons/download/nimble-icon-download.directive.mjs +3 -3
  241. package/esm2022/directives/icons/download/nimble-icon-download.module.mjs +4 -4
  242. package/esm2022/directives/icons/electronic-chip-zoomed/nimble-icon-electronic-chip-zoomed.directive.mjs +3 -3
  243. package/esm2022/directives/icons/electronic-chip-zoomed/nimble-icon-electronic-chip-zoomed.module.mjs +4 -4
  244. package/esm2022/directives/icons/exclamation-mark/nimble-icon-exclamation-mark.directive.mjs +3 -3
  245. package/esm2022/directives/icons/exclamation-mark/nimble-icon-exclamation-mark.module.mjs +4 -4
  246. package/esm2022/directives/icons/eye/nimble-icon-eye.directive.mjs +3 -3
  247. package/esm2022/directives/icons/eye/nimble-icon-eye.module.mjs +4 -4
  248. package/esm2022/directives/icons/eye-dash/nimble-icon-eye-dash.directive.mjs +3 -3
  249. package/esm2022/directives/icons/eye-dash/nimble-icon-eye-dash.module.mjs +4 -4
  250. package/esm2022/directives/icons/fancy-a/nimble-icon-fancy-a.directive.mjs +3 -3
  251. package/esm2022/directives/icons/fancy-a/nimble-icon-fancy-a.module.mjs +4 -4
  252. package/esm2022/directives/icons/file/nimble-icon-file.directive.mjs +3 -3
  253. package/esm2022/directives/icons/file/nimble-icon-file.module.mjs +4 -4
  254. package/esm2022/directives/icons/file-arrow-curved-right/nimble-icon-file-arrow-curved-right.directive.mjs +3 -3
  255. package/esm2022/directives/icons/file-arrow-curved-right/nimble-icon-file-arrow-curved-right.module.mjs +4 -4
  256. package/esm2022/directives/icons/file-drawer/nimble-icon-file-drawer.directive.mjs +3 -3
  257. package/esm2022/directives/icons/file-drawer/nimble-icon-file-drawer.module.mjs +4 -4
  258. package/esm2022/directives/icons/file-search/nimble-icon-file-search.directive.mjs +3 -3
  259. package/esm2022/directives/icons/file-search/nimble-icon-file-search.module.mjs +4 -4
  260. package/esm2022/directives/icons/filter/nimble-icon-filter.directive.mjs +3 -3
  261. package/esm2022/directives/icons/filter/nimble-icon-filter.module.mjs +4 -4
  262. package/esm2022/directives/icons/floppy-disk/nimble-icon-floppy-disk.directive.mjs +3 -3
  263. package/esm2022/directives/icons/floppy-disk/nimble-icon-floppy-disk.module.mjs +4 -4
  264. package/esm2022/directives/icons/floppy-disk-checkmark/nimble-icon-floppy-disk-checkmark.directive.mjs +3 -3
  265. package/esm2022/directives/icons/floppy-disk-checkmark/nimble-icon-floppy-disk-checkmark.module.mjs +4 -4
  266. package/esm2022/directives/icons/floppy-disk-pen/nimble-icon-floppy-disk-pen.directive.mjs +3 -3
  267. package/esm2022/directives/icons/floppy-disk-pen/nimble-icon-floppy-disk-pen.module.mjs +4 -4
  268. package/esm2022/directives/icons/floppy-disk-star-arrow-right/nimble-icon-floppy-disk-star-arrow-right.directive.mjs +3 -3
  269. package/esm2022/directives/icons/floppy-disk-star-arrow-right/nimble-icon-floppy-disk-star-arrow-right.module.mjs +4 -4
  270. package/esm2022/directives/icons/floppy-disk-three-dots/nimble-icon-floppy-disk-three-dots.directive.mjs +3 -3
  271. package/esm2022/directives/icons/floppy-disk-three-dots/nimble-icon-floppy-disk-three-dots.module.mjs +4 -4
  272. package/esm2022/directives/icons/folder/nimble-icon-folder.directive.mjs +3 -3
  273. package/esm2022/directives/icons/folder/nimble-icon-folder.module.mjs +4 -4
  274. package/esm2022/directives/icons/folder-open/nimble-icon-folder-open.directive.mjs +3 -3
  275. package/esm2022/directives/icons/folder-open/nimble-icon-folder-open.module.mjs +4 -4
  276. package/esm2022/directives/icons/forward-slash/nimble-icon-forward-slash.directive.mjs +3 -3
  277. package/esm2022/directives/icons/forward-slash/nimble-icon-forward-slash.module.mjs +4 -4
  278. package/esm2022/directives/icons/four-dots-square/nimble-icon-four-dots-square.directive.mjs +3 -3
  279. package/esm2022/directives/icons/four-dots-square/nimble-icon-four-dots-square.module.mjs +4 -4
  280. package/esm2022/directives/icons/function/nimble-icon-function.directive.mjs +3 -3
  281. package/esm2022/directives/icons/function/nimble-icon-function.module.mjs +4 -4
  282. package/esm2022/directives/icons/gauge-simple/nimble-icon-gauge-simple.directive.mjs +3 -3
  283. package/esm2022/directives/icons/gauge-simple/nimble-icon-gauge-simple.module.mjs +4 -4
  284. package/esm2022/directives/icons/grid-three-by-three/nimble-icon-grid-three-by-three.directive.mjs +3 -3
  285. package/esm2022/directives/icons/grid-three-by-three/nimble-icon-grid-three-by-three.module.mjs +4 -4
  286. package/esm2022/directives/icons/grid-two-by-two/nimble-icon-grid-two-by-two.directive.mjs +3 -3
  287. package/esm2022/directives/icons/grid-two-by-two/nimble-icon-grid-two-by-two.module.mjs +4 -4
  288. package/esm2022/directives/icons/hammer/nimble-icon-hammer.directive.mjs +3 -3
  289. package/esm2022/directives/icons/hammer/nimble-icon-hammer.module.mjs +4 -4
  290. package/esm2022/directives/icons/hashtag/nimble-icon-hashtag.directive.mjs +3 -3
  291. package/esm2022/directives/icons/hashtag/nimble-icon-hashtag.module.mjs +4 -4
  292. package/esm2022/directives/icons/home/nimble-icon-home.directive.mjs +3 -3
  293. package/esm2022/directives/icons/home/nimble-icon-home.module.mjs +4 -4
  294. package/esm2022/directives/icons/horizontal-triangle-outline/nimble-icon-horizontal-triangle-outline.directive.mjs +3 -3
  295. package/esm2022/directives/icons/horizontal-triangle-outline/nimble-icon-horizontal-triangle-outline.module.mjs +4 -4
  296. package/esm2022/directives/icons/hourglass/nimble-icon-hourglass.directive.mjs +3 -3
  297. package/esm2022/directives/icons/hourglass/nimble-icon-hourglass.module.mjs +4 -4
  298. package/esm2022/directives/icons/indent/nimble-icon-indent.directive.mjs +3 -3
  299. package/esm2022/directives/icons/indent/nimble-icon-indent.module.mjs +4 -4
  300. package/esm2022/directives/icons/indeterminant-checkbox/nimble-icon-indeterminant-checkbox.directive.mjs +3 -3
  301. package/esm2022/directives/icons/indeterminant-checkbox/nimble-icon-indeterminant-checkbox.module.mjs +4 -4
  302. package/esm2022/directives/icons/index.mjs +11 -1
  303. package/esm2022/directives/icons/info/nimble-icon-info.directive.mjs +3 -3
  304. package/esm2022/directives/icons/info/nimble-icon-info.module.mjs +4 -4
  305. package/esm2022/directives/icons/info-circle/nimble-icon-info-circle.directive.mjs +3 -3
  306. package/esm2022/directives/icons/info-circle/nimble-icon-info-circle.module.mjs +4 -4
  307. package/esm2022/directives/icons/inward-squares-three/nimble-icon-inward-squares-three.directive.mjs +3 -3
  308. package/esm2022/directives/icons/inward-squares-three/nimble-icon-inward-squares-three.module.mjs +4 -4
  309. package/esm2022/directives/icons/italic-i/nimble-icon-italic-i.directive.mjs +3 -3
  310. package/esm2022/directives/icons/italic-i/nimble-icon-italic-i.module.mjs +4 -4
  311. package/esm2022/directives/icons/key/nimble-icon-key.directive.mjs +3 -3
  312. package/esm2022/directives/icons/key/nimble-icon-key.module.mjs +4 -4
  313. package/esm2022/directives/icons/laptop/nimble-icon-laptop.directive.mjs +3 -3
  314. package/esm2022/directives/icons/laptop/nimble-icon-laptop.module.mjs +4 -4
  315. package/esm2022/directives/icons/layer-group/nimble-icon-layer-group.directive.mjs +3 -3
  316. package/esm2022/directives/icons/layer-group/nimble-icon-layer-group.module.mjs +4 -4
  317. package/esm2022/directives/icons/lightbulb/nimble-icon-lightbulb.directive.mjs +3 -3
  318. package/esm2022/directives/icons/lightbulb/nimble-icon-lightbulb.module.mjs +4 -4
  319. package/esm2022/directives/icons/lightning-bolt/nimble-icon-lightning-bolt.directive.mjs +3 -3
  320. package/esm2022/directives/icons/lightning-bolt/nimble-icon-lightning-bolt.module.mjs +4 -4
  321. package/esm2022/directives/icons/link/nimble-icon-link.directive.mjs +3 -3
  322. package/esm2022/directives/icons/link/nimble-icon-link.module.mjs +4 -4
  323. package/esm2022/directives/icons/link-cancel/nimble-icon-link-cancel.directive.mjs +3 -3
  324. package/esm2022/directives/icons/link-cancel/nimble-icon-link-cancel.module.mjs +4 -4
  325. package/esm2022/directives/icons/list/nimble-icon-list.directive.mjs +3 -3
  326. package/esm2022/directives/icons/list/nimble-icon-list.module.mjs +4 -4
  327. package/esm2022/directives/icons/list-tree/nimble-icon-list-tree.directive.mjs +3 -3
  328. package/esm2022/directives/icons/list-tree/nimble-icon-list-tree.module.mjs +4 -4
  329. package/esm2022/directives/icons/list-tree-database/nimble-icon-list-tree-database.directive.mjs +3 -3
  330. package/esm2022/directives/icons/list-tree-database/nimble-icon-list-tree-database.module.mjs +4 -4
  331. package/esm2022/directives/icons/lock/nimble-icon-lock.directive.mjs +3 -3
  332. package/esm2022/directives/icons/lock/nimble-icon-lock.module.mjs +4 -4
  333. package/esm2022/directives/icons/magnifying-glass/nimble-icon-magnifying-glass.directive.mjs +3 -3
  334. package/esm2022/directives/icons/magnifying-glass/nimble-icon-magnifying-glass.module.mjs +4 -4
  335. package/esm2022/directives/icons/markdown/nimble-icon-markdown.directive.mjs +3 -3
  336. package/esm2022/directives/icons/markdown/nimble-icon-markdown.module.mjs +4 -4
  337. package/esm2022/directives/icons/message-bot/nimble-icon-message-bot.directive.mjs +21 -0
  338. package/esm2022/directives/icons/message-bot/nimble-icon-message-bot.module.mjs +21 -0
  339. package/esm2022/directives/icons/microphone/nimble-icon-microphone.directive.mjs +3 -3
  340. package/esm2022/directives/icons/microphone/nimble-icon-microphone.module.mjs +4 -4
  341. package/esm2022/directives/icons/minus/nimble-icon-minus.directive.mjs +3 -3
  342. package/esm2022/directives/icons/minus/nimble-icon-minus.module.mjs +4 -4
  343. package/esm2022/directives/icons/minus-wide/nimble-icon-minus-wide.directive.mjs +3 -3
  344. package/esm2022/directives/icons/minus-wide/nimble-icon-minus-wide.module.mjs +4 -4
  345. package/esm2022/directives/icons/mobile/nimble-icon-mobile.directive.mjs +3 -3
  346. package/esm2022/directives/icons/mobile/nimble-icon-mobile.module.mjs +4 -4
  347. package/esm2022/directives/icons/mountain-sun/nimble-icon-mountain-sun.directive.mjs +3 -3
  348. package/esm2022/directives/icons/mountain-sun/nimble-icon-mountain-sun.module.mjs +4 -4
  349. package/esm2022/directives/icons/ni/nimble-icon-ni.directive.mjs +3 -3
  350. package/esm2022/directives/icons/ni/nimble-icon-ni.module.mjs +4 -4
  351. package/esm2022/directives/icons/notebook/nimble-icon-notebook.directive.mjs +3 -3
  352. package/esm2022/directives/icons/notebook/nimble-icon-notebook.module.mjs +4 -4
  353. package/esm2022/directives/icons/number-list/nimble-icon-number-list.directive.mjs +3 -3
  354. package/esm2022/directives/icons/number-list/nimble-icon-number-list.module.mjs +4 -4
  355. package/esm2022/directives/icons/outdent/nimble-icon-outdent.directive.mjs +3 -3
  356. package/esm2022/directives/icons/outdent/nimble-icon-outdent.module.mjs +4 -4
  357. package/esm2022/directives/icons/outward-squares-three/nimble-icon-outward-squares-three.directive.mjs +3 -3
  358. package/esm2022/directives/icons/outward-squares-three/nimble-icon-outward-squares-three.module.mjs +4 -4
  359. package/esm2022/directives/icons/paper-plane/nimble-icon-paper-plane.directive.mjs +3 -3
  360. package/esm2022/directives/icons/paper-plane/nimble-icon-paper-plane.module.mjs +4 -4
  361. package/esm2022/directives/icons/paperclip/nimble-icon-paperclip.directive.mjs +3 -3
  362. package/esm2022/directives/icons/paperclip/nimble-icon-paperclip.module.mjs +4 -4
  363. package/esm2022/directives/icons/paste/nimble-icon-paste.directive.mjs +3 -3
  364. package/esm2022/directives/icons/paste/nimble-icon-paste.module.mjs +4 -4
  365. package/esm2022/directives/icons/pause/nimble-icon-pause.directive.mjs +3 -3
  366. package/esm2022/directives/icons/pause/nimble-icon-pause.module.mjs +4 -4
  367. package/esm2022/directives/icons/pencil/nimble-icon-pencil.directive.mjs +3 -3
  368. package/esm2022/directives/icons/pencil/nimble-icon-pencil.module.mjs +4 -4
  369. package/esm2022/directives/icons/play/nimble-icon-play.directive.mjs +3 -3
  370. package/esm2022/directives/icons/play/nimble-icon-play.module.mjs +4 -4
  371. package/esm2022/directives/icons/pot-with-lid/nimble-icon-pot-with-lid.directive.mjs +3 -3
  372. package/esm2022/directives/icons/pot-with-lid/nimble-icon-pot-with-lid.module.mjs +4 -4
  373. package/esm2022/directives/icons/question/nimble-icon-question.directive.mjs +3 -3
  374. package/esm2022/directives/icons/question/nimble-icon-question.module.mjs +4 -4
  375. package/esm2022/directives/icons/rectangle-check-lines/nimble-icon-rectangle-check-lines.directive.mjs +3 -3
  376. package/esm2022/directives/icons/rectangle-check-lines/nimble-icon-rectangle-check-lines.module.mjs +4 -4
  377. package/esm2022/directives/icons/rectangle-lines/nimble-icon-rectangle-lines.directive.mjs +3 -3
  378. package/esm2022/directives/icons/rectangle-lines/nimble-icon-rectangle-lines.module.mjs +4 -4
  379. package/esm2022/directives/icons/running-arrow/nimble-icon-running-arrow.directive.mjs +3 -3
  380. package/esm2022/directives/icons/running-arrow/nimble-icon-running-arrow.module.mjs +4 -4
  381. package/esm2022/directives/icons/screen-check-lines/nimble-icon-screen-check-lines.directive.mjs +3 -3
  382. package/esm2022/directives/icons/screen-check-lines/nimble-icon-screen-check-lines.module.mjs +4 -4
  383. package/esm2022/directives/icons/screen-check-lines-calendar/nimble-icon-screen-check-lines-calendar.directive.mjs +3 -3
  384. package/esm2022/directives/icons/screen-check-lines-calendar/nimble-icon-screen-check-lines-calendar.module.mjs +4 -4
  385. package/esm2022/directives/icons/server/nimble-icon-server.directive.mjs +3 -3
  386. package/esm2022/directives/icons/server/nimble-icon-server.module.mjs +4 -4
  387. package/esm2022/directives/icons/share-nodes/nimble-icon-share-nodes.directive.mjs +3 -3
  388. package/esm2022/directives/icons/share-nodes/nimble-icon-share-nodes.module.mjs +4 -4
  389. package/esm2022/directives/icons/shield-check/nimble-icon-shield-check.directive.mjs +3 -3
  390. package/esm2022/directives/icons/shield-check/nimble-icon-shield-check.module.mjs +4 -4
  391. package/esm2022/directives/icons/shield-xmark/nimble-icon-shield-xmark.directive.mjs +3 -3
  392. package/esm2022/directives/icons/shield-xmark/nimble-icon-shield-xmark.module.mjs +4 -4
  393. package/esm2022/directives/icons/signal-bars/nimble-icon-signal-bars.directive.mjs +3 -3
  394. package/esm2022/directives/icons/signal-bars/nimble-icon-signal-bars.module.mjs +4 -4
  395. package/esm2022/directives/icons/sine-graph/nimble-icon-sine-graph.directive.mjs +3 -3
  396. package/esm2022/directives/icons/sine-graph/nimble-icon-sine-graph.module.mjs +4 -4
  397. package/esm2022/directives/icons/skip-arrow/nimble-icon-skip-arrow.directive.mjs +3 -3
  398. package/esm2022/directives/icons/skip-arrow/nimble-icon-skip-arrow.module.mjs +4 -4
  399. package/esm2022/directives/icons/sparkle-swirls/nimble-icon-sparkle-swirls.directive.mjs +3 -3
  400. package/esm2022/directives/icons/sparkle-swirls/nimble-icon-sparkle-swirls.module.mjs +4 -4
  401. package/esm2022/directives/icons/sparkles/nimble-icon-sparkles.directive.mjs +3 -3
  402. package/esm2022/directives/icons/sparkles/nimble-icon-sparkles.module.mjs +4 -4
  403. package/esm2022/directives/icons/spinner/nimble-icon-spinner.directive.mjs +3 -3
  404. package/esm2022/directives/icons/spinner/nimble-icon-spinner.module.mjs +4 -4
  405. package/esm2022/directives/icons/square-check/nimble-icon-square-check.directive.mjs +3 -3
  406. package/esm2022/directives/icons/square-check/nimble-icon-square-check.module.mjs +4 -4
  407. package/esm2022/directives/icons/square-t/nimble-icon-square-t.directive.mjs +3 -3
  408. package/esm2022/directives/icons/square-t/nimble-icon-square-t.module.mjs +4 -4
  409. package/esm2022/directives/icons/square-x/nimble-icon-square-x.directive.mjs +3 -3
  410. package/esm2022/directives/icons/square-x/nimble-icon-square-x.module.mjs +4 -4
  411. package/esm2022/directives/icons/star-8-point/nimble-icon-star-8-point.directive.mjs +3 -3
  412. package/esm2022/directives/icons/star-8-point/nimble-icon-star-8-point.module.mjs +4 -4
  413. package/esm2022/directives/icons/stop-square/nimble-icon-stop-square.directive.mjs +3 -3
  414. package/esm2022/directives/icons/stop-square/nimble-icon-stop-square.module.mjs +4 -4
  415. package/esm2022/directives/icons/systemlink/nimble-icon-systemlink.directive.mjs +3 -3
  416. package/esm2022/directives/icons/systemlink/nimble-icon-systemlink.module.mjs +4 -4
  417. package/esm2022/directives/icons/t/nimble-icon-t.directive.mjs +3 -3
  418. package/esm2022/directives/icons/t/nimble-icon-t.module.mjs +4 -4
  419. package/esm2022/directives/icons/tablet/nimble-icon-tablet.directive.mjs +3 -3
  420. package/esm2022/directives/icons/tablet/nimble-icon-tablet.module.mjs +4 -4
  421. package/esm2022/directives/icons/tag/nimble-icon-tag.directive.mjs +3 -3
  422. package/esm2022/directives/icons/tag/nimble-icon-tag.module.mjs +4 -4
  423. package/esm2022/directives/icons/tags/nimble-icon-tags.directive.mjs +3 -3
  424. package/esm2022/directives/icons/tags/nimble-icon-tags.module.mjs +4 -4
  425. package/esm2022/directives/icons/target-crosshairs/nimble-icon-target-crosshairs.directive.mjs +3 -3
  426. package/esm2022/directives/icons/target-crosshairs/nimble-icon-target-crosshairs.module.mjs +4 -4
  427. package/esm2022/directives/icons/target-crosshairs-progress/nimble-icon-target-crosshairs-progress.directive.mjs +3 -3
  428. package/esm2022/directives/icons/target-crosshairs-progress/nimble-icon-target-crosshairs-progress.module.mjs +4 -4
  429. package/esm2022/directives/icons/three-circles-ascending-container/nimble-icon-three-circles-ascending-container.directive.mjs +3 -3
  430. package/esm2022/directives/icons/three-circles-ascending-container/nimble-icon-three-circles-ascending-container.module.mjs +4 -4
  431. package/esm2022/directives/icons/three-dots-line/nimble-icon-three-dots-line.directive.mjs +3 -3
  432. package/esm2022/directives/icons/three-dots-line/nimble-icon-three-dots-line.module.mjs +4 -4
  433. package/esm2022/directives/icons/three-vertical-lines/nimble-icon-three-vertical-lines.directive.mjs +3 -3
  434. package/esm2022/directives/icons/three-vertical-lines/nimble-icon-three-vertical-lines.module.mjs +4 -4
  435. package/esm2022/directives/icons/thumb-down/nimble-icon-thumb-down.directive.mjs +21 -0
  436. package/esm2022/directives/icons/thumb-down/nimble-icon-thumb-down.module.mjs +21 -0
  437. package/esm2022/directives/icons/thumb-up/nimble-icon-thumb-up.directive.mjs +21 -0
  438. package/esm2022/directives/icons/thumb-up/nimble-icon-thumb-up.module.mjs +21 -0
  439. package/esm2022/directives/icons/thumbtack/nimble-icon-thumbtack.directive.mjs +3 -3
  440. package/esm2022/directives/icons/thumbtack/nimble-icon-thumbtack.module.mjs +4 -4
  441. package/esm2022/directives/icons/tile-size/nimble-icon-tile-size.directive.mjs +3 -3
  442. package/esm2022/directives/icons/tile-size/nimble-icon-tile-size.module.mjs +4 -4
  443. package/esm2022/directives/icons/times/nimble-icon-times.directive.mjs +3 -3
  444. package/esm2022/directives/icons/times/nimble-icon-times.module.mjs +4 -4
  445. package/esm2022/directives/icons/trash/nimble-icon-trash.directive.mjs +3 -3
  446. package/esm2022/directives/icons/trash/nimble-icon-trash.module.mjs +4 -4
  447. package/esm2022/directives/icons/triangle/nimble-icon-triangle.directive.mjs +3 -3
  448. package/esm2022/directives/icons/triangle/nimble-icon-triangle.module.mjs +4 -4
  449. package/esm2022/directives/icons/triangle-filled/nimble-icon-triangle-filled.directive.mjs +3 -3
  450. package/esm2022/directives/icons/triangle-filled/nimble-icon-triangle-filled.module.mjs +4 -4
  451. package/esm2022/directives/icons/triangle-two-lines-horizontal/nimble-icon-triangle-two-lines-horizontal.directive.mjs +3 -3
  452. package/esm2022/directives/icons/triangle-two-lines-horizontal/nimble-icon-triangle-two-lines-horizontal.module.mjs +4 -4
  453. package/esm2022/directives/icons/true-false-rectangle/nimble-icon-true-false-rectangle.directive.mjs +3 -3
  454. package/esm2022/directives/icons/true-false-rectangle/nimble-icon-true-false-rectangle.module.mjs +4 -4
  455. package/esm2022/directives/icons/two-squares-in-brackets/nimble-icon-two-squares-in-brackets.directive.mjs +3 -3
  456. package/esm2022/directives/icons/two-squares-in-brackets/nimble-icon-two-squares-in-brackets.module.mjs +4 -4
  457. package/esm2022/directives/icons/two-triangles-between-lines/nimble-icon-two-triangles-between-lines.directive.mjs +3 -3
  458. package/esm2022/directives/icons/two-triangles-between-lines/nimble-icon-two-triangles-between-lines.module.mjs +4 -4
  459. package/esm2022/directives/icons/unlink/nimble-icon-unlink.directive.mjs +3 -3
  460. package/esm2022/directives/icons/unlink/nimble-icon-unlink.module.mjs +4 -4
  461. package/esm2022/directives/icons/unlock/nimble-icon-unlock.directive.mjs +3 -3
  462. package/esm2022/directives/icons/unlock/nimble-icon-unlock.module.mjs +4 -4
  463. package/esm2022/directives/icons/up-right-from-square/nimble-icon-up-right-from-square.directive.mjs +3 -3
  464. package/esm2022/directives/icons/up-right-from-square/nimble-icon-up-right-from-square.module.mjs +4 -4
  465. package/esm2022/directives/icons/upload/nimble-icon-upload.directive.mjs +3 -3
  466. package/esm2022/directives/icons/upload/nimble-icon-upload.module.mjs +4 -4
  467. package/esm2022/directives/icons/user/nimble-icon-user.directive.mjs +3 -3
  468. package/esm2022/directives/icons/user/nimble-icon-user.module.mjs +4 -4
  469. package/esm2022/directives/icons/watch/nimble-icon-watch.directive.mjs +3 -3
  470. package/esm2022/directives/icons/watch/nimble-icon-watch.module.mjs +4 -4
  471. package/esm2022/directives/icons/waveform/nimble-icon-waveform.directive.mjs +3 -3
  472. package/esm2022/directives/icons/waveform/nimble-icon-waveform.module.mjs +4 -4
  473. package/esm2022/directives/icons/webvi-custom/nimble-icon-webvi-custom.directive.mjs +3 -3
  474. package/esm2022/directives/icons/webvi-custom/nimble-icon-webvi-custom.module.mjs +4 -4
  475. package/esm2022/directives/icons/webvi-host/nimble-icon-webvi-host.directive.mjs +3 -3
  476. package/esm2022/directives/icons/webvi-host/nimble-icon-webvi-host.module.mjs +4 -4
  477. package/esm2022/directives/icons/window-code/nimble-icon-window-code.directive.mjs +3 -3
  478. package/esm2022/directives/icons/window-code/nimble-icon-window-code.module.mjs +4 -4
  479. package/esm2022/directives/icons/window-text/nimble-icon-window-text.directive.mjs +3 -3
  480. package/esm2022/directives/icons/window-text/nimble-icon-window-text.module.mjs +4 -4
  481. package/esm2022/directives/icons/wrench-hammer/nimble-icon-wrench-hammer.directive.mjs +3 -3
  482. package/esm2022/directives/icons/wrench-hammer/nimble-icon-wrench-hammer.module.mjs +4 -4
  483. package/esm2022/directives/icons/xmark/nimble-icon-xmark.directive.mjs +3 -3
  484. package/esm2022/directives/icons/xmark/nimble-icon-xmark.module.mjs +4 -4
  485. package/esm2022/directives/icons/xmark-check/nimble-icon-xmark-check.directive.mjs +3 -3
  486. package/esm2022/directives/icons/xmark-check/nimble-icon-xmark-check.module.mjs +4 -4
  487. package/esm2022/directives/list-option/nimble-combobox-list-option.directive.mjs +3 -3
  488. package/esm2022/directives/list-option/nimble-list-option.directive.mjs +3 -3
  489. package/esm2022/directives/list-option/nimble-list-option.module.mjs +4 -4
  490. package/esm2022/directives/list-option/nimble-select-list-option.directive.mjs +3 -3
  491. package/esm2022/directives/list-option-group/nimble-list-option-group.directive.mjs +3 -3
  492. package/esm2022/directives/list-option-group/nimble-list-option-group.module.mjs +4 -4
  493. package/esm2022/directives/menu/nimble-menu.directive.mjs +3 -3
  494. package/esm2022/directives/menu/nimble-menu.module.mjs +4 -4
  495. package/esm2022/directives/menu-button/nimble-menu-button.directive.mjs +3 -3
  496. package/esm2022/directives/menu-button/nimble-menu-button.module.mjs +4 -4
  497. package/esm2022/directives/menu-item/nimble-menu-item.directive.mjs +3 -3
  498. package/esm2022/directives/menu-item/nimble-menu-item.module.mjs +4 -4
  499. package/esm2022/directives/number-field/nimble-number-field-control-value-accessor.directive.mjs +3 -3
  500. package/esm2022/directives/number-field/nimble-number-field.directive.mjs +3 -3
  501. package/esm2022/directives/number-field/nimble-number-field.module.mjs +4 -4
  502. package/esm2022/directives/radio/nimble-radio-control-value-accessor.directive.mjs +3 -3
  503. package/esm2022/directives/radio/nimble-radio.directive.mjs +3 -3
  504. package/esm2022/directives/radio/nimble-radio.module.mjs +4 -4
  505. package/esm2022/directives/radio-group/nimble-radio-group.directive.mjs +3 -3
  506. package/esm2022/directives/radio-group/nimble-radio-group.module.mjs +4 -4
  507. package/esm2022/directives/select/nimble-select-control-value-accessor.directive.mjs +3 -3
  508. package/esm2022/directives/select/nimble-select.directive.mjs +3 -3
  509. package/esm2022/directives/select/nimble-select.module.mjs +4 -4
  510. package/esm2022/directives/spinner/nimble-spinner.directive.mjs +3 -3
  511. package/esm2022/directives/spinner/nimble-spinner.module.mjs +4 -4
  512. package/esm2022/directives/switch/nimble-switch-control-value-accessor.directive.mjs +3 -3
  513. package/esm2022/directives/switch/nimble-switch.directive.mjs +3 -3
  514. package/esm2022/directives/switch/nimble-switch.module.mjs +4 -4
  515. package/esm2022/directives/tab/nimble-tab.directive.mjs +3 -3
  516. package/esm2022/directives/tab/nimble-tab.module.mjs +4 -4
  517. package/esm2022/directives/tab-panel/nimble-tab-panel.directive.mjs +3 -3
  518. package/esm2022/directives/tab-panel/nimble-tab-panel.module.mjs +4 -4
  519. package/esm2022/directives/tabs/nimble-tabs.directive.mjs +3 -3
  520. package/esm2022/directives/tabs/nimble-tabs.module.mjs +4 -4
  521. package/esm2022/directives/tabs-toolbar/nimble-tabs-toolbar.directive.mjs +3 -3
  522. package/esm2022/directives/tabs-toolbar/nimble-tabs-toolbar.module.mjs +4 -4
  523. package/esm2022/directives/text-area/nimble-text-area-control-value-accessor.directive.mjs +3 -3
  524. package/esm2022/directives/text-area/nimble-text-area.directive.mjs +3 -3
  525. package/esm2022/directives/text-area/nimble-text-area.module.mjs +4 -4
  526. package/esm2022/directives/text-field/nimble-text-field-control-value-accessor.directive.mjs +3 -3
  527. package/esm2022/directives/text-field/nimble-text-field.directive.mjs +3 -3
  528. package/esm2022/directives/text-field/nimble-text-field.module.mjs +4 -4
  529. package/esm2022/directives/theme-provider/nimble-theme-provider.directive.mjs +3 -3
  530. package/esm2022/directives/theme-provider/nimble-theme-provider.module.mjs +4 -4
  531. package/esm2022/directives/toggle-button/nimble-toggle-button-control-value-accessor.directive.mjs +3 -3
  532. package/esm2022/directives/toggle-button/nimble-toggle-button.directive.mjs +3 -3
  533. package/esm2022/directives/toggle-button/nimble-toggle-button.module.mjs +4 -4
  534. package/esm2022/directives/toolbar/nimble-toolbar.directive.mjs +3 -3
  535. package/esm2022/directives/toolbar/nimble-toolbar.module.mjs +4 -4
  536. package/esm2022/directives/tooltip/nimble-tooltip.directive.mjs +3 -3
  537. package/esm2022/directives/tooltip/nimble-tooltip.module.mjs +4 -4
  538. package/esm2022/directives/tree-item/nimble-tree-item.directive.mjs +3 -3
  539. package/esm2022/directives/tree-item/nimble-tree-item.module.mjs +4 -4
  540. package/esm2022/directives/tree-view/nimble-tree-view.directive.mjs +3 -3
  541. package/esm2022/directives/tree-view/nimble-tree-view.module.mjs +4 -4
  542. package/esm2022/label-provider/core/nimble-label-provider-core-with-defaults.directive.mjs +3 -3
  543. package/esm2022/label-provider/core/nimble-label-provider-core.directive.mjs +3 -3
  544. package/esm2022/label-provider/core/nimble-label-provider-core.module.mjs +4 -4
  545. package/esm2022/label-provider/rich-text/nimble-label-provider-rich-text-with-defaults.directive.mjs +3 -3
  546. package/esm2022/label-provider/rich-text/nimble-label-provider-rich-text.directive.mjs +3 -3
  547. package/esm2022/label-provider/rich-text/nimble-label-provider-rich-text.module.mjs +4 -4
  548. package/esm2022/label-provider/table/nimble-label-provider-table-with-defaults.directive.mjs +3 -3
  549. package/esm2022/label-provider/table/nimble-label-provider-table.directive.mjs +3 -3
  550. package/esm2022/label-provider/table/nimble-label-provider-table.module.mjs +4 -4
  551. package/esm2022/mapping/base/nimble-mapping-base.directive.mjs +3 -3
  552. package/esm2022/mapping/empty/nimble-mapping-empty.directive.mjs +3 -3
  553. package/esm2022/mapping/empty/nimble-mapping-empty.module.mjs +4 -4
  554. package/esm2022/mapping/icon/nimble-mapping-icon.directive.mjs +3 -3
  555. package/esm2022/mapping/icon/nimble-mapping-icon.module.mjs +4 -4
  556. package/esm2022/mapping/spinner/nimble-mapping-spinner.directive.mjs +3 -3
  557. package/esm2022/mapping/spinner/nimble-mapping-spinner.module.mjs +4 -4
  558. package/esm2022/mapping/text/nimble-mapping-text.directive.mjs +3 -3
  559. package/esm2022/mapping/text/nimble-mapping-text.module.mjs +4 -4
  560. package/esm2022/mapping/user/nimble-mapping-user.directive.mjs +3 -3
  561. package/esm2022/mapping/user/nimble-mapping-user.module.mjs +4 -4
  562. package/esm2022/pipes/diacritic-insensitive.pipe.mjs +3 -3
  563. package/esm2022/pipes/duration.pipe.mjs +3 -3
  564. package/esm2022/pipes/number-text.pipe.mjs +3 -3
  565. package/esm2022/rich-text/editor/nimble-rich-text-editor.directive.mjs +3 -3
  566. package/esm2022/rich-text/editor/nimble-rich-text-editor.module.mjs +4 -4
  567. package/esm2022/rich-text/viewer/nimble-rich-text-viewer.directive.mjs +3 -3
  568. package/esm2022/rich-text/viewer/nimble-rich-text-viewer.module.mjs +4 -4
  569. package/esm2022/rich-text-mention/nimble-rich-text-mention-base.directive.mjs +3 -3
  570. package/esm2022/rich-text-mention/users/nimble-rich-text-mention-users.directive.mjs +3 -3
  571. package/esm2022/rich-text-mention/users/nimble-rich-text-mention-users.module.mjs +4 -4
  572. package/esm2022/table/nimble-table.directive.mjs +3 -3
  573. package/esm2022/table/nimble-table.module.mjs +4 -4
  574. package/esm2022/table-column/anchor/nimble-table-column-anchor-navigation-guard.directive.mjs +3 -3
  575. package/esm2022/table-column/anchor/nimble-table-column-anchor.directive.mjs +3 -3
  576. package/esm2022/table-column/anchor/nimble-table-column-anchor.module.mjs +4 -4
  577. package/esm2022/table-column/date-text/nimble-table-column-date-text.directive.mjs +3 -3
  578. package/esm2022/table-column/date-text/nimble-table-column-date-text.module.mjs +4 -4
  579. package/esm2022/table-column/duration-text/nimble-table-column-duration-text.directive.mjs +3 -3
  580. package/esm2022/table-column/duration-text/nimble-table-column-duration-text.module.mjs +4 -4
  581. package/esm2022/table-column/mapping/nimble-table-column-mapping.directive.mjs +3 -3
  582. package/esm2022/table-column/mapping/nimble-table-column-mapping.module.mjs +4 -4
  583. package/esm2022/table-column/menu-button/nimble-table-column-menu-button.directive.mjs +3 -3
  584. package/esm2022/table-column/menu-button/nimble-table-column-menu-button.module.mjs +4 -4
  585. package/esm2022/table-column/nimble-table-column-base.directive.mjs +3 -3
  586. package/esm2022/table-column/number-text/nimble-table-column-number-text.directive.mjs +3 -3
  587. package/esm2022/table-column/number-text/nimble-table-column-number-text.module.mjs +4 -4
  588. package/esm2022/table-column/text/nimble-table-column-text.directive.mjs +3 -3
  589. package/esm2022/table-column/text/nimble-table-column-text.module.mjs +4 -4
  590. package/esm2022/thirdparty/directives/checkbox_value_accessor.mjs +9 -9
  591. package/esm2022/thirdparty/directives/control_value_accessor.mjs +9 -9
  592. package/esm2022/thirdparty/directives/default_value_accessor.mjs +17 -15
  593. package/esm2022/thirdparty/directives/number_value_accessor.mjs +13 -10
  594. package/esm2022/thirdparty/directives/radio_control_value_accessor.mjs +28 -19
  595. package/esm2022/thirdparty/directives/router_link.mjs +76 -35
  596. package/esm2022/thirdparty/directives/select_control_value_accessor.mjs +20 -16
  597. package/esm2022/unit/byte/nimble-unit-byte.directive.mjs +3 -3
  598. package/esm2022/unit/byte/nimble-unit-byte.module.mjs +4 -4
  599. package/esm2022/unit/celsius/nimble-unit-celsius.directive.mjs +3 -3
  600. package/esm2022/unit/celsius/nimble-unit-celsius.module.mjs +4 -4
  601. package/esm2022/unit/fahrenheit/nimble-unit-fahrenheit.directive.mjs +3 -3
  602. package/esm2022/unit/fahrenheit/nimble-unit-fahrenheit.module.mjs +4 -4
  603. package/esm2022/unit/volt/nimble-unit-volt.directive.mjs +3 -3
  604. package/esm2022/unit/volt/nimble-unit-volt.module.mjs +4 -4
  605. package/fesm2022/ni-nimble-angular-card.mjs +7 -7
  606. package/fesm2022/ni-nimble-angular-label-provider-core.mjs +11 -11
  607. package/fesm2022/ni-nimble-angular-label-provider-rich-text.mjs +11 -11
  608. package/fesm2022/ni-nimble-angular-label-provider-table.mjs +11 -11
  609. package/fesm2022/ni-nimble-angular-mapping-base.mjs +4 -4
  610. package/fesm2022/ni-nimble-angular-mapping-empty.mjs +8 -8
  611. package/fesm2022/ni-nimble-angular-mapping-icon.mjs +8 -8
  612. package/fesm2022/ni-nimble-angular-mapping-spinner.mjs +8 -8
  613. package/fesm2022/ni-nimble-angular-mapping-text.mjs +8 -8
  614. package/fesm2022/ni-nimble-angular-mapping-user.mjs +8 -8
  615. package/fesm2022/ni-nimble-angular-pipes.mjs +9 -9
  616. package/fesm2022/ni-nimble-angular-rich-text-editor.mjs +8 -8
  617. package/fesm2022/ni-nimble-angular-rich-text-mention-users.mjs +7 -7
  618. package/fesm2022/ni-nimble-angular-rich-text-mention.mjs +4 -4
  619. package/fesm2022/ni-nimble-angular-rich-text-viewer.mjs +8 -8
  620. package/fesm2022/ni-nimble-angular-table-column-anchor.mjs +11 -11
  621. package/fesm2022/ni-nimble-angular-table-column-date-text.mjs +8 -8
  622. package/fesm2022/ni-nimble-angular-table-column-duration-text.mjs +8 -8
  623. package/fesm2022/ni-nimble-angular-table-column-mapping.mjs +8 -8
  624. package/fesm2022/ni-nimble-angular-table-column-menu-button.mjs +8 -8
  625. package/fesm2022/ni-nimble-angular-table-column-number-text.mjs +8 -8
  626. package/fesm2022/ni-nimble-angular-table-column-text.mjs +8 -8
  627. package/fesm2022/ni-nimble-angular-table-column.mjs +4 -4
  628. package/fesm2022/ni-nimble-angular-table.mjs +8 -8
  629. package/fesm2022/ni-nimble-angular-unit-byte.mjs +8 -8
  630. package/fesm2022/ni-nimble-angular-unit-celsius.mjs +7 -7
  631. package/fesm2022/ni-nimble-angular-unit-fahrenheit.mjs +7 -7
  632. package/fesm2022/ni-nimble-angular-unit-volt.mjs +7 -7
  633. package/fesm2022/ni-nimble-angular.mjs +2101 -1892
  634. package/fesm2022/ni-nimble-angular.mjs.map +1 -1
  635. package/package.json +7 -7
  636. package/thirdparty/directives/checkbox_value_accessor.d.ts +1 -1
  637. package/thirdparty/directives/control_value_accessor.d.ts +2 -2
  638. package/thirdparty/directives/default_value_accessor.d.ts +1 -2
  639. package/thirdparty/directives/radio_control_value_accessor.d.ts +2 -2
  640. package/thirdparty/directives/router_link.d.ts +17 -7
  641. package/thirdparty/directives/select_control_value_accessor.d.ts +2 -2
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * [Nimble]
3
- * Copied from https://github.com/angular/angular/blob/17.3.11/packages/router/src/directives/router_link.ts
3
+ * Copied from https://github.com/angular/angular/blob/18.2.13/packages/router/src/directives/router_link.ts
4
4
  * with the following modifications:
5
+ * - Copy `isUrlTree` function from url_tree.ts into this file instead of importing
5
6
  * - Hardcode `isAnchorElement` to `true` so that the directive will correctly set the `href` on elements within nimble that represent anchors
6
7
  * - Make `href` a `@HostBindinding` to avoid using Angular's private sanitization APIs because `href` bindings automatically are sanitized by
7
8
  * Angular (see https://angular.io/guide/security#sanitization-and-security-contexts). Implementations leveraging RouterLink should have a test
@@ -13,15 +14,23 @@
13
14
  * Copyright Google LLC All Rights Reserved.
14
15
  *
15
16
  * Use of this source code is governed by an MIT-style license that can be
16
- * found in the LICENSE file at https://angular.io/license
17
+ * found in the LICENSE file at https://angular.dev/license
17
18
  */
18
19
  import { LocationStrategy } from '@angular/common';
19
- import { Attribute, booleanAttribute, Directive, ElementRef, HostBinding, HostListener, Inject, Input, Renderer2, ɵɵsanitizeUrlOrResourceUrl, } from '@angular/core';
20
+ import { Attribute, booleanAttribute, Directive, ElementRef, HostBinding, HostListener, Inject, Input, Renderer2, ɵRuntimeError as RuntimeError, ɵɵsanitizeUrlOrResourceUrl, } from '@angular/core';
20
21
  import { Subject, Subscription } from 'rxjs';
21
- import { ActivatedRoute, Router, NavigationEnd, UrlTree } from '@angular/router';
22
+ import { NavigationEnd } from '@angular/router';
23
+ import { Router } from '@angular/router';
24
+ import { ActivatedRoute } from '@angular/router';
25
+ import { UrlTree } from '@angular/router';
22
26
  import * as i0 from "@angular/core";
23
27
  import * as i1 from "@angular/router";
24
28
  import * as i2 from "@angular/common";
29
+ // import {RuntimeErrorCode} from '../errors';
30
+ // [Nimble] Copied from https://github.com/angular/angular/blob/18.2.13/packages/router/src/url_tree.ts
31
+ function isUrlTree(v) {
32
+ return v instanceof UrlTree;
33
+ }
25
34
  /**
26
35
  * @description
27
36
  *
@@ -89,6 +98,9 @@ import * as i2 from "@angular/common";
89
98
  * </a>
90
99
  * ```
91
100
  *
101
+ * `queryParams`, `fragment`, `queryParamsHandling`, `preserveFragment`, and `relativeTo`
102
+ * cannot be used when the `routerLink` input is a `UrlTree`.
103
+ *
92
104
  * See {@link UrlCreationOptions#queryParamsHandling}.
93
105
  *
94
106
  * ### Preserving navigation history
@@ -142,7 +154,6 @@ export class RouterLink {
142
154
  // [Nimble] Make `href` a `@HostBinding`
143
155
  // href: string | null = null;
144
156
  this.href = null;
145
- this.commands = null;
146
157
  /** @internal */
147
158
  this.onChanges = new Subject();
148
159
  /**
@@ -166,6 +177,7 @@ export class RouterLink {
166
177
  * @see {@link Router#navigateByUrl}
167
178
  */
168
179
  this.replaceUrl = false;
180
+ this.routerLinkInput = null;
169
181
  // [Nimble] Hard-coding `isAnchorElement` to `true`
170
182
  // const tagName = el.nativeElement.tagName?.toLowerCase();
171
183
  // this.isAnchorElement = tagName === 'a' || tagName === 'area';
@@ -192,7 +204,24 @@ export class RouterLink {
192
204
  this.applyAttributeValue('tabindex', newTabIndex);
193
205
  }
194
206
  /** @nodoc */
207
+ // TODO(atscott): Remove changes parameter in major version as a breaking change.
195
208
  ngOnChanges(changes) {
209
+ /* [Nimble] Comment out extra error handling that uses ngDevMode and RuntimeErrorCode
210
+ if (
211
+ ngDevMode &&
212
+ isUrlTree(this.routerLinkInput) &&
213
+ (this.fragment !== undefined ||
214
+ this.queryParams ||
215
+ this.queryParamsHandling ||
216
+ this.preserveFragment ||
217
+ this.relativeTo)
218
+ ) {
219
+ throw new RuntimeError(
220
+ RuntimeErrorCode.INVALID_ROUTER_LINK_INPUTS,
221
+ 'Cannot configure queryParams or fragment when using a UrlTree as the routerLink input value.',
222
+ );
223
+ }
224
+ */
196
225
  if (this.isAnchorElement) {
197
226
  this.updateHref();
198
227
  }
@@ -201,20 +230,29 @@ export class RouterLink {
201
230
  this.onChanges.next(this);
202
231
  }
203
232
  /**
204
- * Commands to pass to {@link Router#createUrlTree}.
233
+ * Commands to pass to {@link Router#createUrlTree} or a `UrlTree`.
205
234
  * - **array**: commands to pass to {@link Router#createUrlTree}.
206
235
  * - **string**: shorthand for array of commands with just the string, i.e. `['/route']`
236
+ * - **UrlTree**: a `UrlTree` for this link rather than creating one from the commands
237
+ * and other inputs that correspond to properties of `UrlCreationOptions`.
207
238
  * - **null|undefined**: effectively disables the `routerLink`
208
239
  * @see {@link Router#createUrlTree}
209
240
  */
210
- set routerLink(commands) {
211
- if (commands != null) {
212
- this.commands = Array.isArray(commands) ? commands : [commands];
213
- this.setTabIndexIfNotOnNativeEl('0');
241
+ set routerLink(commandsOrUrlTree) {
242
+ if (commandsOrUrlTree == null) {
243
+ this.routerLinkInput = null;
244
+ this.setTabIndexIfNotOnNativeEl(null);
214
245
  }
215
246
  else {
216
- this.commands = null;
217
- this.setTabIndexIfNotOnNativeEl(null);
247
+ if (isUrlTree(commandsOrUrlTree)) {
248
+ this.routerLinkInput = commandsOrUrlTree;
249
+ }
250
+ else {
251
+ this.routerLinkInput = Array.isArray(commandsOrUrlTree)
252
+ ? commandsOrUrlTree
253
+ : [commandsOrUrlTree];
254
+ }
255
+ this.setTabIndexIfNotOnNativeEl('0');
218
256
  }
219
257
  }
220
258
  /** @nodoc */
@@ -258,23 +296,23 @@ export class RouterLink {
258
296
  * to be a `@HostBinding`. This avoids the need of calling into private Angular sanitization code.
259
297
  */
260
298
  // const sanitizedValue =
261
- // this.href === null
262
- // ? null
263
- // : // This class represents a directive that can be added to both `<a>` elements,
264
- // // as well as other elements. As a result, we can't define security context at
265
- // // compile time. So the security context is deferred to runtime.
266
- // // The `ɵɵsanitizeUrlOrResourceUrl` selects the necessary sanitizer function
267
- // // based on the tag and property names. The logic mimics the one from
268
- // // `packages/compiler/src/schema/dom_security_schema.ts`, which is used at compile time.
269
- // //
270
- // // Note: we should investigate whether we can switch to using `@HostBinding('attr.href')`
271
- // // instead of applying a value via a renderer, after a final merge of the
272
- // // `RouterLinkWithHref` directive.
273
- // ɵɵsanitizeUrlOrResourceUrl(
274
- // this.href,
275
- // this.el.nativeElement.tagName.toLowerCase(),
276
- // 'href',
277
- // );
299
+ // this.href === null
300
+ // ? null
301
+ // : // This class represents a directive that can be added to both `<a>` elements,
302
+ // // as well as other elements. As a result, we can't define security context at
303
+ // // compile time. So the security context is deferred to runtime.
304
+ // // The `ɵɵsanitizeUrlOrResourceUrl` selects the necessary sanitizer function
305
+ // // based on the tag and property names. The logic mimics the one from
306
+ // // `packages/compiler/src/schema/dom_security_schema.ts`, which is used at compile time.
307
+ // //
308
+ // // Note: we should investigate whether we can switch to using `@HostBinding('attr.href')`
309
+ // // instead of applying a value via a renderer, after a final merge of the
310
+ // // `RouterLinkWithHref` directive.
311
+ // ɵɵsanitizeUrlOrResourceUrl(
312
+ // this.href,
313
+ // this.el.nativeElement.tagName.toLowerCase(),
314
+ // 'href',
315
+ // );
278
316
  // this.applyAttributeValue('href', sanitizedValue);
279
317
  }
280
318
  applyAttributeValue(attrName, attrValue) {
@@ -288,10 +326,13 @@ export class RouterLink {
288
326
  }
289
327
  }
290
328
  get urlTree() {
291
- if (this.commands === null) {
329
+ if (this.routerLinkInput === null) {
292
330
  return null;
293
331
  }
294
- return this.router.createUrlTree(this.commands, {
332
+ else if (isUrlTree(this.routerLinkInput)) {
333
+ return this.routerLinkInput;
334
+ }
335
+ return this.router.createUrlTree(this.routerLinkInput, {
295
336
  // If the `relativeTo` input is not defined, we want to use `this.route` by default.
296
337
  // Otherwise, we should use the value provided by the user in the input.
297
338
  relativeTo: this.relativeTo !== undefined ? this.relativeTo : this.route,
@@ -301,10 +342,10 @@ export class RouterLink {
301
342
  preserveFragment: this.preserveFragment,
302
343
  });
303
344
  }
304
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RouterLink, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive }); }
305
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.12", type: RouterLink, inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", info: "info", relativeTo: "relativeTo", preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute], skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute], replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute], routerLink: "routerLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" }, properties: { "attr.href": "this.href", "attr.target": "this.target" } }, usesOnChanges: true, ngImport: i0 }); }
345
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterLink, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive }); }
346
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.13", type: RouterLink, inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", info: "info", relativeTo: "relativeTo", preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute], skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute], replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute], routerLink: "routerLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" }, properties: { "attr.href": "this.href", "attr.target": "this.target" } }, usesOnChanges: true, ngImport: i0 }); }
306
347
  }
307
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RouterLink, decorators: [{
348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterLink, decorators: [{
308
349
  type: Directive
309
350
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: undefined, decorators: [{
310
351
  type: Attribute,
@@ -353,4 +394,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
353
394
  '$event.metaKey',
354
395
  ]]
355
396
  }] } });
356
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyX2xpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uaW1ibGUtYW5ndWxhci9zcmMvdGhpcmRwYXJ0eS9kaXJlY3RpdmVzL3JvdXRlcl9saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUdIOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsRUFFVCwwQkFBMEIsR0FDM0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFxRCxjQUFjLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUdwSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0dHO0FBQ0g7Ozs7O0VBS0U7QUFFRixNQUFNLE9BQU8sVUFBVTtJQXVFckIsWUFDVSxNQUFjLEVBQ2QsS0FBcUIsRUFDVyxpQkFBNEMsRUFDbkUsUUFBbUIsRUFDbkIsRUFBYztJQUMvQixpQ0FBaUM7SUFDQyxnQkFBbUM7UUFON0QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ1csc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEyQjtRQUNuRSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFRyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FB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MEJBSXBCLE1BQU07MkJBQUMsZ0JBQWdCO3lDQXZFQSxJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBTWEsTUFBTTtzQkFBMUMsV0FBVzt1QkFBQyxhQUFhOztzQkFBRyxLQUFLO2dCQVF6QixXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxJQUFJO3NCQUFaLEtBQUs7Z0JBVUcsVUFBVTtzQkFBbEIsS0FBSztnQkEyQ2dDLGdCQUFnQjtzQkFBckQsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkFRRSxrQkFBa0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBUUUsVUFBVTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkErQmhDLFVBQVU7c0JBRGIsS0FBSztnQkFtQk4sT0FBTztzQkFQTixZQUFZO3VCQUFDLE9BQU8sRUFBRTt3QkFDckIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBbTmltYmxlXVxuICogQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iLzE3LjMuMTEvcGFja2FnZXMvcm91dGVyL3NyYy9kaXJlY3RpdmVzL3JvdXRlcl9saW5rLnRzXG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uczpcbiAqIC0gSGFyZGNvZGUgYGlzQW5jaG9yRWxlbWVudGAgdG8gYHRydWVgIHNvIHRoYXQgdGhlIGRpcmVjdGl2ZSB3aWxsIGNvcnJlY3RseSBzZXQgdGhlIGBocmVmYCBvbiBlbGVtZW50cyB3aXRoaW4gbmltYmxlIHRoYXQgcmVwcmVzZW50IGFuY2hvcnNcbiAqIC0gTWFrZSBgaHJlZmAgYSBgQEhvc3RCaW5kaW5kaW5nYCB0byBhdm9pZCB1c2luZyBBbmd1bGFyJ3MgcHJpdmF0ZSBzYW5pdGl6YXRpb24gQVBJcyBiZWNhdXNlIGBocmVmYCBiaW5kaW5ncyBhdXRvbWF0aWNhbGx5IGFyZSBzYW5pdGl6ZWQgYnlcbiAqICAgQW5ndWxhciAoc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9zZWN1cml0eSNzYW5pdGl6YXRpb24tYW5kLXNlY3VyaXR5LWNvbnRleHRzKS4gSW1wbGVtZW50YXRpb25zIGxldmVyYWdpbmcgUm91dGVyTGluayBzaG91bGQgaGF2ZSBhIHRlc3RcbiAqICAgZW5zdXJpbmcgc2FuaXRpemF0aW9uIGlzIGNhbGxlZC5cbiAqIC0gQ29tbWVudCBvdXQgdW5lY2Nlc3NhcnkgZXhwb3J0IG9mIHRoZSBkZXByZWNhdGVkIGBSb3V0ZXJMaW5rV2l0aEhyZWZgXG4gKi9cblxuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtMb2NhdGlvblN0cmF0ZWd5fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIHR5cGUgT25DaGFuZ2VzLFxuICB0eXBlIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICB0eXBlIFNpbXBsZUNoYW5nZXMsXG4gIMm1ybVzYW5pdGl6ZVVybE9yUmVzb3VyY2VVcmwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0eXBlIEV2ZW50LCB0eXBlIFBhcmFtcywgdHlwZSBRdWVyeVBhcmFtc0hhbmRsaW5nLCBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBOYXZpZ2F0aW9uRW5kLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIFdoZW4gYXBwbGllZCB0byBhbiBlbGVtZW50IGluIGEgdGVtcGxhdGUsIG1ha2VzIHRoYXQgZWxlbWVudCBhIGxpbmtcbiAqIHRoYXQgaW5pdGlhdGVzIG5hdmlnYXRpb24gdG8gYSByb3V0ZS4gTmF2aWdhdGlvbiBvcGVucyBvbmUgb3IgbW9yZSByb3V0ZWQgY29tcG9uZW50c1xuICogaW4gb25lIG9yIG1vcmUgYDxyb3V0ZXItb3V0bGV0PmAgbG9jYXRpb25zIG9uIHRoZSBwYWdlLlxuICpcbiAqIEdpdmVuIGEgcm91dGUgY29uZmlndXJhdGlvbiBgW3sgcGF0aDogJ3VzZXIvOm5hbWUnLCBjb21wb25lbnQ6IFVzZXJDbXAgfV1gLFxuICogdGhlIGZvbGxvd2luZyBjcmVhdGVzIGEgc3RhdGljIGxpbmsgdG8gdGhlIHJvdXRlOlxuICogYDxhIHJvdXRlckxpbms9XCIvdXNlci9ib2JcIj5saW5rIHRvIHVzZXIgY29tcG9uZW50PC9hPmBcbiAqXG4gKiBZb3UgY2FuIHVzZSBkeW5hbWljIHZhbHVlcyB0byBnZW5lcmF0ZSB0aGUgbGluay5cbiAqIEZvciBhIGR5bmFtaWMgbGluaywgcGFzcyBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRzLFxuICogZm9sbG93ZWQgYnkgdGhlIHBhcmFtcyBmb3IgZWFjaCBzZWdtZW50LlxuICogRm9yIGV4YW1wbGUsIGBbJy90ZWFtJywgdGVhbUlkLCAndXNlcicsIHVzZXJOYW1lLCB7ZGV0YWlsczogdHJ1ZX1dYFxuICogZ2VuZXJhdGVzIGEgbGluayB0byBgL3RlYW0vMTEvdXNlci9ib2I7ZGV0YWlscz10cnVlYC5cbiAqXG4gKiBNdWx0aXBsZSBzdGF0aWMgc2VnbWVudHMgY2FuIGJlIG1lcmdlZCBpbnRvIG9uZSB0ZXJtIGFuZCBjb21iaW5lZCB3aXRoIGR5bmFtaWMgc2VnbWVudHMuXG4gKiBGb3IgZXhhbXBsZSwgYFsnL3RlYW0vMTEvdXNlcicsIHVzZXJOYW1lLCB7ZGV0YWlsczogdHJ1ZX1dYFxuICpcbiAqIFRoZSBpbnB1dCB0aGF0IHlvdSBwcm92aWRlIHRvIHRoZSBsaW5rIGlzIHRyZWF0ZWQgYXMgYSBkZWx0YSB0byB0aGUgY3VycmVudCBVUkwuXG4gKiBGb3IgaW5zdGFuY2UsIHN1cHBvc2UgdGhlIGN1cnJlbnQgVVJMIGlzIGAvdXNlci8oYm94Ly9hdXg6dGVhbSlgLlxuICogVGhlIGxpbmsgYDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3VzZXIvamltJ11cIj5KaW08L2E+YCBjcmVhdGVzIHRoZSBVUkxcbiAqIGAvdXNlci8oamltLy9hdXg6dGVhbSlgLlxuICogU2VlIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX0gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBZb3UgY2FuIHVzZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRocyBpbiBhIGxpbmssIHNldCBxdWVyeSBwYXJhbWV0ZXJzLFxuICogY29udHJvbCBob3cgcGFyYW1ldGVycyBhcmUgaGFuZGxlZCwgYW5kIGtlZXAgYSBoaXN0b3J5IG9mIG5hdmlnYXRpb24gc3RhdGVzLlxuICpcbiAqICMjIyBSZWxhdGl2ZSBsaW5rIHBhdGhzXG4gKlxuICogVGhlIGZpcnN0IHNlZ21lbnQgbmFtZSBjYW4gYmUgcHJlcGVuZGVkIHdpdGggYC9gLCBgLi9gLCBvciBgLi4vYC5cbiAqICogSWYgdGhlIGZpcnN0IHNlZ21lbnQgYmVnaW5zIHdpdGggYC9gLCB0aGUgcm91dGVyIGxvb2tzIHVwIHRoZSByb3V0ZSBmcm9tIHRoZSByb290IG9mIHRoZVxuICogICBhcHAuXG4gKiAqIElmIHRoZSBmaXJzdCBzZWdtZW50IGJlZ2lucyB3aXRoIGAuL2AsIG9yIGRvZXNuJ3QgYmVnaW4gd2l0aCBhIHNsYXNoLCB0aGUgcm91dGVyXG4gKiAgIGxvb2tzIGluIHRoZSBjaGlsZHJlbiBvZiB0aGUgY3VycmVudCBhY3RpdmF0ZWQgcm91dGUuXG4gKiAqIElmIHRoZSBmaXJzdCBzZWdtZW50IGJlZ2lucyB3aXRoIGAuLi9gLCB0aGUgcm91dGVyIGdvZXMgdXAgb25lIGxldmVsIGluIHRoZSByb3V0ZSB0cmVlLlxuICpcbiAqICMjIyBTZXR0aW5nIGFuZCBoYW5kbGluZyBxdWVyeSBwYXJhbXMgYW5kIGZyYWdtZW50c1xuICpcbiAqIFRoZSBmb2xsb3dpbmcgbGluayBhZGRzIGEgcXVlcnkgcGFyYW1ldGVyIGFuZCBhIGZyYWdtZW50IHRvIHRoZSBnZW5lcmF0ZWQgVVJMOlxuICpcbiAqIGBgYFxuICogPGEgW3JvdXRlckxpbmtdPVwiWycvdXNlci9ib2InXVwiIFtxdWVyeVBhcmFtc109XCJ7ZGVidWc6IHRydWV9XCIgZnJhZ21lbnQ9XCJlZHVjYXRpb25cIj5cbiAqICAgbGluayB0byB1c2VyIGNvbXBvbmVudFxuICogPC9hPlxuICogYGBgXG4gKiBCeSBkZWZhdWx0LCB0aGUgZGlyZWN0aXZlIGNvbnN0cnVjdHMgdGhlIG5ldyBVUkwgdXNpbmcgdGhlIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gKiBUaGUgZXhhbXBsZSBnZW5lcmF0ZXMgdGhlIGxpbms6IGAvdXNlci9ib2I/ZGVidWc9dHJ1ZSNlZHVjYXRpb25gLlxuICpcbiAqIFlvdSBjYW4gaW5zdHJ1Y3QgdGhlIGRpcmVjdGl2ZSB0byBoYW5kbGUgcXVlcnkgcGFyYW1ldGVycyBkaWZmZXJlbnRseVxuICogYnkgc3BlY2lmeWluZyB0aGUgYHF1ZXJ5UGFyYW1zSGFuZGxpbmdgIG9wdGlvbiBpbiB0aGUgbGluay5cbiAqIEFsbG93ZWQgdmFsdWVzIGFyZTpcbiAqXG4gKiAgLSBgJ21lcmdlJ2A6IE1lcmdlIHRoZSBnaXZlbiBgcXVlcnlQYXJhbXNgIGludG8gdGhlIGN1cnJlbnQgcXVlcnkgcGFyYW1zLlxuICogIC0gYCdwcmVzZXJ2ZSdgOiBQcmVzZXJ2ZSB0aGUgY3VycmVudCBxdWVyeSBwYXJhbXMuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgXG4gKiA8YSBbcm91dGVyTGlua109XCJbJy91c2VyL2JvYiddXCIgW3F1ZXJ5UGFyYW1zXT1cIntkZWJ1ZzogdHJ1ZX1cIiBxdWVyeVBhcmFtc0hhbmRsaW5nPVwibWVyZ2VcIj5cbiAqICAgbGluayB0byB1c2VyIGNvbXBvbmVudFxuICogPC9hPlxuICogYGBgXG4gKlxuICogU2VlIHtAbGluayBVcmxDcmVhdGlvbk9wdGlvbnMjcXVlcnlQYXJhbXNIYW5kbGluZ30uXG4gKlxuICogIyMjIFByZXNlcnZpbmcgbmF2aWdhdGlvbiBoaXN0b3J5XG4gKlxuICogWW91IGNhbiBwcm92aWRlIGEgYHN0YXRlYCB2YWx1ZSB0byBiZSBwZXJzaXN0ZWQgdG8gdGhlIGJyb3dzZXInc1xuICogW2BIaXN0b3J5LnN0YXRlYCBwcm9wZXJ0eV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hpc3RvcnkjUHJvcGVydGllcykuXG4gKiBGb3IgZXhhbXBsZTpcbiAqXG4gKiBgYGBcbiAqIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3VzZXIvYm9iJ11cIiBbc3RhdGVdPVwie3RyYWNpbmdJZDogMTIzfVwiPlxuICogICBsaW5rIHRvIHVzZXIgY29tcG9uZW50XG4gKiA8L2E+XG4gKiBgYGBcbiAqXG4gKiBVc2Uge0BsaW5rIFJvdXRlciNnZXRDdXJyZW50TmF2aWdhdGlvbn0gdG8gcmV0cmlldmUgYSBzYXZlZFxuICogbmF2aWdhdGlvbi1zdGF0ZSB2YWx1ZS4gRm9yIGV4YW1wbGUsIHRvIGNhcHR1cmUgdGhlIGB0cmFjaW5nSWRgIGR1cmluZyB0aGUgYE5hdmlnYXRpb25TdGFydGBcbiAqIGV2ZW50OlxuICpcbiAqIGBgYFxuICogLy8gR2V0IE5hdmlnYXRpb25TdGFydCBldmVudHNcbiAqIHJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSkuc3Vic2NyaWJlKGUgPT4ge1xuICogICBjb25zdCBuYXZpZ2F0aW9uID0gcm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCk7XG4gKiAgIHRyYWNpbmdTZXJ2aWNlLnRyYWNlKHtpZDogbmF2aWdhdGlvbi5leHRyYXMuc3RhdGUudHJhY2luZ0lkfSk7XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBuZ01vZHVsZSBSb3V0ZXJNb2R1bGVcbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbi8qIFtOaW1ibGVdIFJlbW92ZSBhbGwgY29uZmlndXJhdGlvbiBmcm9tIEBEaXJlY3RpdmUgZGVjb3JhdG9yXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcm91dGVyTGlua10nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbiovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBSb3V0ZXJMaW5rIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogUmVwcmVzZW50cyBhbiBgaHJlZmAgYXR0cmlidXRlIHZhbHVlIGFwcGxpZWQgdG8gYSBob3N0IGVsZW1lbnQsXG4gICAqIHdoZW4gYSBob3N0IGVsZW1lbnQgaXMgYDxhPmAuIEZvciBvdGhlciB0YWdzLCB0aGUgdmFsdWUgaXMgYG51bGxgLlxuICAgKi9cbiAgLy8gW05pbWJsZV0gTWFrZSBgaHJlZmAgYSBgQEhvc3RCaW5kaW5nYFxuICAvLyBocmVmOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmhyZWYnKSBocmVmOiBzdHJpbmd8bnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIGB0YXJnZXRgIGF0dHJpYnV0ZSBvbiBhIGhvc3QgZWxlbWVudC5cbiAgICogVGhpcyBpcyBvbmx5IHVzZWQgd2hlbiB0aGUgaG9zdCBlbGVtZW50IGlzIGFuIGA8YT5gIHRhZy5cbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci50YXJnZXQnKSBASW5wdXQoKSB0YXJnZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBVcmxDcmVhdGlvbk9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBVcmxDcmVhdGlvbk9wdGlvbnMjcXVlcnlQYXJhbXN9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KCkgcXVlcnlQYXJhbXM/OiBQYXJhbXMgfCBudWxsO1xuICAvKipcbiAgICogUGFzc2VkIHRvIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX0gYXMgcGFydCBvZiB0aGVcbiAgICogYFVybENyZWF0aW9uT3B0aW9uc2AuXG4gICAqIEBzZWUge0BsaW5rIFVybENyZWF0aW9uT3B0aW9ucyNmcmFnbWVudH1cbiAgICogQHNlZSB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9XG4gICAqL1xuICBASW5wdXQoKSBmcmFnbWVudD86IHN0cmluZztcbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBVcmxDcmVhdGlvbk9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBVcmxDcmVhdGlvbk9wdGlvbnMjcXVlcnlQYXJhbXNIYW5kbGluZ31cbiAgICogQHNlZSB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9XG4gICAqL1xuICBASW5wdXQoKSBxdWVyeVBhcmFtc0hhbmRsaW5nPzogUXVlcnlQYXJhbXNIYW5kbGluZyB8IG51bGw7XG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9uc2AuXG4gICAqIEBzZWUge0BsaW5rIE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnMjc3RhdGV9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfVxuICAgKi9cbiAgQElucHV0KCkgc3RhdGU/OiB7W2s6IHN0cmluZ106IGFueX07XG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9uc2AuXG4gICAqIEBzZWUge0BsaW5rIE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnMjaW5mb31cbiAgICogQHNlZSB7QGxpbmsgUm91dGVyI25hdmlnYXRlQnlVcmx9XG4gICAqL1xuICBASW5wdXQoKSBpbmZvPzogdW5rbm93bjtcbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBVcmxDcmVhdGlvbk9wdGlvbnNgLlxuICAgKiBTcGVjaWZ5IGEgdmFsdWUgaGVyZSB3aGVuIHlvdSBkbyBub3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQgdmFsdWVcbiAgICogZm9yIGByb3V0ZXJMaW5rYCwgd2hpY2ggaXMgdGhlIGN1cnJlbnQgYWN0aXZhdGVkIHJvdXRlLlxuICAgKiBOb3RlIHRoYXQgYSB2YWx1ZSBvZiBgdW5kZWZpbmVkYCBoZXJlIHdpbGwgdXNlIHRoZSBgcm91dGVyTGlua2AgZGVmYXVsdC5cbiAgICogQHNlZSB7QGxpbmsgVXJsQ3JlYXRpb25PcHRpb25zI3JlbGF0aXZlVG99XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KCkgcmVsYXRpdmVUbz86IEFjdGl2YXRlZFJvdXRlIHwgbnVsbDtcblxuICBwcml2YXRlIGNvbW1hbmRzOiBhbnlbXSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIGEgaG9zdCBlbGVtZW50IGlzIGFuIGA8YT5gIHRhZy4gKi9cbiAgcHJpdmF0ZSBpc0FuY2hvckVsZW1lbnQ6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkNoYW5nZXMgPSBuZXcgU3ViamVjdDxSb3V0ZXJMaW5rPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgQEF0dHJpYnV0ZSgndGFiaW5kZXgnKSBwcml2YXRlIHJlYWRvbmx5IHRhYkluZGV4QXR0cmlidXRlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLFxuICAgIC8vIFtOaW1ibGVdIE5lZWQgSW5qZWN0IGRlY29yYXRvclxuICAgIEBJbmplY3QoTG9jYXRpb25TdHJhdGVneSkgcHJpdmF0ZSBsb2NhdGlvblN0cmF0ZWd5PzogTG9jYXRpb25TdHJhdGVneSxcbiAgKSB7XG4gICAgLy8gW05pbWJsZV0gSGFyZC1jb2RpbmcgYGlzQW5jaG9yRWxlbWVudGAgdG8gYHRydWVgXG4gICAgLy8gY29uc3QgdGFnTmFtZSA9IGVsLm5hdGl2ZUVsZW1lbnQudGFnTmFtZT8udG9Mb3dlckNhc2UoKTtcbiAgICAvLyB0aGlzLmlzQW5jaG9yRWxlbWVudCA9IHRhZ05hbWUgPT09ICdhJyB8fCB0YWdOYW1lID09PSAnYXJlYSc7XG4gICAgdGhpcy5pc0FuY2hvckVsZW1lbnQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuaXNBbmNob3JFbGVtZW50KSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChzOiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAocyBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUhyZWYoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwoJzAnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFzc2VkIHRvIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX0gYXMgcGFydCBvZiB0aGVcbiAgICogYFVybENyZWF0aW9uT3B0aW9uc2AuXG4gICAqIEBzZWUge0BsaW5rIFVybENyZWF0aW9uT3B0aW9ucyNwcmVzZXJ2ZUZyYWdtZW50fVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX1cbiAgICovXG4gIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgcHJlc2VydmVGcmFnbWVudDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9uc2AuXG4gICAqIEBzZWUge0BsaW5rIE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnMjc2tpcExvY2F0aW9uQ2hhbmdlfVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH1cbiAgICovXG4gIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgc2tpcExvY2F0aW9uQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI25hdmlnYXRlQnlVcmx9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zYC5cbiAgICogQHNlZSB7QGxpbmsgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9ucyNyZXBsYWNlVXJsfVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH1cbiAgICovXG4gIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgcmVwbGFjZVVybDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBNb2RpZmllcyB0aGUgdGFiIGluZGV4IGlmIHRoZXJlIHdhcyBub3QgYSB0YWJpbmRleCBhdHRyaWJ1dGUgb24gdGhlIGVsZW1lbnQgZHVyaW5nXG4gICAqIGluc3RhbnRpYXRpb24uXG4gICAqL1xuICBwcml2YXRlIHNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKG5ld1RhYkluZGV4OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMudGFiSW5kZXhBdHRyaWJ1dGUgIT0gbnVsbCAvKiBib3RoIGBudWxsYCBhbmQgYHVuZGVmaW5lZGAgKi8gfHwgdGhpcy5pc0FuY2hvckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hcHBseUF0dHJpYnV0ZVZhbHVlKCd0YWJpbmRleCcsIG5ld1RhYkluZGV4KTtcbiAgfVxuXG4gIC8qKiBAbm9kb2MgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLmlzQW5jaG9yRWxlbWVudCkge1xuICAgICAgdGhpcy51cGRhdGVIcmVmKCk7XG4gICAgfVxuICAgIC8vIFRoaXMgaXMgc3Vic2NyaWJlZCB0byBieSBgUm91dGVyTGlua0FjdGl2ZWAgc28gdGhhdCBpdCBrbm93cyB0byB1cGRhdGUgd2hlbiB0aGVyZSBhcmUgY2hhbmdlc1xuICAgIC8vIHRvIHRoZSBSb3V0ZXJMaW5rcyBpdCdzIHRyYWNraW5nLlxuICAgIHRoaXMub25DaGFuZ2VzLm5leHQodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQ29tbWFuZHMgdG8gcGFzcyB0byB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9LlxuICAgKiAgIC0gKiphcnJheSoqOiBjb21tYW5kcyB0byBwYXNzIHRvIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX0uXG4gICAqICAgLSAqKnN0cmluZyoqOiBzaG9ydGhhbmQgZm9yIGFycmF5IG9mIGNvbW1hbmRzIHdpdGgganVzdCB0aGUgc3RyaW5nLCBpLmUuIGBbJy9yb3V0ZSddYFxuICAgKiAgIC0gKipudWxsfHVuZGVmaW5lZCoqOiBlZmZlY3RpdmVseSBkaXNhYmxlcyB0aGUgYHJvdXRlckxpbmtgXG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHJvdXRlckxpbmsoY29tbWFuZHM6IGFueVtdIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChjb21tYW5kcyAhPSBudWxsKSB7XG4gICAgICB0aGlzLmNvbW1hbmRzID0gQXJyYXkuaXNBcnJheShjb21tYW5kcykgPyBjb21tYW5kcyA6IFtjb21tYW5kc107XG4gICAgICB0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKCcwJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29tbWFuZHMgPSBudWxsO1xuICAgICAgdGhpcy5zZXRUYWJJbmRleElmTm90T25OYXRpdmVFbChudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKiogQG5vZG9jICovXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgW1xuICAgICckZXZlbnQuYnV0dG9uJyxcbiAgICAnJGV2ZW50LmN0cmxLZXknLFxuICAgICckZXZlbnQuc2hpZnRLZXknLFxuICAgICckZXZlbnQuYWx0S2V5JyxcbiAgICAnJGV2ZW50Lm1ldGFLZXknLFxuICBdKVxuICBvbkNsaWNrKFxuICAgIGJ1dHRvbjogbnVtYmVyLFxuICAgIGN0cmxLZXk6IGJvb2xlYW4sXG4gICAgc2hpZnRLZXk6IGJvb2xlYW4sXG4gICAgYWx0S2V5OiBib29sZWFuLFxuICAgIG1ldGFLZXk6IGJvb2xlYW4sXG4gICk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnVybFRyZWU7XG5cbiAgICBpZiAodXJsVHJlZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNBbmNob3JFbGVtZW50KSB7XG4gICAgICBpZiAoYnV0dG9uICE9PSAwIHx8IGN0cmxLZXkgfHwgc2hpZnRLZXkgfHwgYWx0S2V5IHx8IG1ldGFLZXkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy50YXJnZXQgPT09ICdzdHJpbmcnICYmIHRoaXMudGFyZ2V0ICE9ICdfc2VsZicpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZXh0cmFzID0ge1xuICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlOiB0aGlzLnNraXBMb2NhdGlvbkNoYW5nZSxcbiAgICAgIHJlcGxhY2VVcmw6IHRoaXMucmVwbGFjZVVybCxcbiAgICAgIHN0YXRlOiB0aGlzLnN0YXRlLFxuICAgICAgaW5mbzogdGhpcy5pbmZvLFxuICAgIH07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmxUcmVlLCBleHRyYXMpO1xuXG4gICAgLy8gUmV0dXJuIGBmYWxzZWAgZm9yIGA8YT5gIGVsZW1lbnRzIHRvIHByZXZlbnQgZGVmYXVsdCBhY3Rpb25cbiAgICAvLyBhbmQgY2FuY2VsIHRoZSBuYXRpdmUgYmVoYXZpb3IsIHNpbmNlIHRoZSBuYXZpZ2F0aW9uIGlzIGhhbmRsZWRcbiAgICAvLyBieSB0aGUgUm91dGVyLlxuICAgIHJldHVybiAhdGhpcy5pc0FuY2hvckVsZW1lbnQ7XG4gIH1cblxuICAvKiogQG5vZG9jICovXG4gIG5nT25EZXN0cm95KCk6IGFueSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUhyZWYoKTogdm9pZCB7XG4gICAgY29uc3QgdXJsVHJlZSA9IHRoaXMudXJsVHJlZTtcbiAgICB0aGlzLmhyZWYgPVxuICAgICAgdXJsVHJlZSAhPT0gbnVsbCAmJiB0aGlzLmxvY2F0aW9uU3RyYXRlZ3lcbiAgICAgICAgPyB0aGlzLmxvY2F0aW9uU3RyYXRlZ3k/LnByZXBhcmVFeHRlcm5hbFVybCh0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodXJsVHJlZSkpXG4gICAgICAgIDogbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFtOaW1ibGVdIFJlbW92ZSBzYW5pdGl6YXRpb24gY29kZSBhbmQgYXBwbHlpbmcgdGhlIGBocmVmYCBhdHRyaWJ1dGUgaW4gZmF2b3Igb2YgY2hhbmdpbmcgYGhyZWZgXG4gICAgICogdG8gYmUgYSBgQEhvc3RCaW5kaW5nYC4gVGhpcyBhdm9pZHMgdGhlIG5lZWQgb2YgY2FsbGluZyBpbnRvIHByaXZhdGUgQW5ndWxhciBzYW5pdGl6YXRpb24gY29kZS5cbiAgICAgKi9cbiAgICAvLyBjb25zdCBzYW5pdGl6ZWRWYWx1ZSA9XG4gICAgLy8gdGhpcy5ocmVmID09PSBudWxsXG4gICAgLy8gICAgPyBudWxsXG4gICAgLy8gICAgOiAvLyBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYSBkaXJlY3RpdmUgdGhhdCBjYW4gYmUgYWRkZWQgdG8gYm90aCBgPGE+YCBlbGVtZW50cyxcbiAgICAvLyAgICAgIC8vIGFzIHdlbGwgYXMgb3RoZXIgZWxlbWVudHMuIEFzIGEgcmVzdWx0LCB3ZSBjYW4ndCBkZWZpbmUgc2VjdXJpdHkgY29udGV4dCBhdFxuICAgIC8vICAgICAgLy8gY29tcGlsZSB0aW1lLiBTbyB0aGUgc2VjdXJpdHkgY29udGV4dCBpcyBkZWZlcnJlZCB0byBydW50aW1lLlxuICAgIC8vICAgICAgLy8gVGhlIGDJtcm1c2FuaXRpemVVcmxPclJlc291cmNlVXJsYCBzZWxlY3RzIHRoZSBuZWNlc3Nhcnkgc2FuaXRpemVyIGZ1bmN0aW9uXG4gICAgLy8gICAgICAvLyBiYXNlZCBvbiB0aGUgdGFnIGFuZCBwcm9wZXJ0eSBuYW1lcy4gVGhlIGxvZ2ljIG1pbWljcyB0aGUgb25lIGZyb21cbiAgICAvLyAgICAgIC8vIGBwYWNrYWdlcy9jb21waWxlci9zcmMvc2NoZW1hL2RvbV9zZWN1cml0eV9zY2hlbWEudHNgLCB3aGljaCBpcyB1c2VkIGF0IGNvbXBpbGUgdGltZS5cbiAgICAvLyAgICAgIC8vXG4gICAgLy8gICAgICAvLyBOb3RlOiB3ZSBzaG91bGQgaW52ZXN0aWdhdGUgd2hldGhlciB3ZSBjYW4gc3dpdGNoIHRvIHVzaW5nIGBASG9zdEJpbmRpbmcoJ2F0dHIuaHJlZicpYFxuICAgIC8vICAgICAgLy8gaW5zdGVhZCBvZiBhcHBseWluZyBhIHZhbHVlIHZpYSBhIHJlbmRlcmVyLCBhZnRlciBhIGZpbmFsIG1lcmdlIG9mIHRoZVxuICAgIC8vICAgICAgLy8gYFJvdXRlckxpbmtXaXRoSHJlZmAgZGlyZWN0aXZlLlxuICAgIC8vICAgICAgybXJtXNhbml0aXplVXJsT3JSZXNvdXJjZVVybChcbiAgICAvLyAgICAgICAgdGhpcy5ocmVmLFxuICAgIC8vICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpLFxuICAgIC8vICAgICAgICAnaHJlZicsXG4gICAgLy8gICAgICApO1xuICAgIC8vIHRoaXMuYXBwbHlBdHRyaWJ1dGVWYWx1ZSgnaHJlZicsIHNhbml0aXplZFZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlBdHRyaWJ1dGVWYWx1ZShhdHRyTmFtZTogc3RyaW5nLCBhdHRyVmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCByZW5kZXJlciA9IHRoaXMucmVuZGVyZXI7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoYXR0clZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUobmF0aXZlRWxlbWVudCwgYXR0ck5hbWUsIGF0dHJWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShuYXRpdmVFbGVtZW50LCBhdHRyTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHVybFRyZWUoKTogVXJsVHJlZSB8IG51bGwge1xuICAgIGlmICh0aGlzLmNvbW1hbmRzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUodGhpcy5jb21tYW5kcywge1xuICAgICAgLy8gSWYgdGhlIGByZWxhdGl2ZVRvYCBpbnB1dCBpcyBub3QgZGVmaW5lZCwgd2Ugd2FudCB0byB1c2UgYHRoaXMucm91dGVgIGJ5IGRlZmF1bHQuXG4gICAgICAvLyBPdGhlcndpc2UsIHdlIHNob3VsZCB1c2UgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGluIHRoZSBpbnB1dC5cbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucmVsYXRpdmVUbyAhPT0gdW5kZWZpbmVkID8gdGhpcy5yZWxhdGl2ZVRvIDogdGhpcy5yb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zLFxuICAgICAgZnJhZ21lbnQ6IHRoaXMuZnJhZ21lbnQsXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiB0aGlzLnF1ZXJ5UGFyYW1zSGFuZGxpbmcsXG4gICAgICBwcmVzZXJ2ZUZyYWdtZW50OiB0aGlzLnByZXNlcnZlRnJhZ21lbnQsXG4gICAgfSk7XG4gIH1cbn1cblxuLy8gW05pbWJsZV0gUmVtb3ZlIGV4dHJhIGV4cG9ydCBmb3IgZGVwcmVjYXRlZCBBbmd1bGFyIEFQSVxuLy8gLyoqXG4vLyAgKiBAZGVzY3JpcHRpb25cbi8vICAqIEFuIGFsaWFzIGZvciB0aGUgYFJvdXRlckxpbmtgIGRpcmVjdGl2ZS5cbi8vICAqIERlcHJlY2F0ZWQgc2luY2UgdjE1LCB1c2UgYFJvdXRlckxpbmtgIGRpcmVjdGl2ZSBpbnN0ZWFkLlxuLy8gICpcbi8vICAqIEBkZXByZWNhdGVkIHVzZSBgUm91dGVyTGlua2AgZGlyZWN0aXZlIGluc3RlYWQuXG4vLyAgKiBAcHVibGljQXBpXG4vLyAgKi9cbi8vIGV4cG9ydCB7Um91dGVyTGluayBhcyBSb3V0ZXJMaW5rV2l0aEhyZWZ9O1xuIl19
397
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyX2xpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uaW1ibGUtYW5ndWxhci9zcmMvdGhpcmRwYXJ0eS9kaXJlY3RpdmVzL3JvdXRlcl9saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFHSDs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEVBQ1QsYUFBYSxJQUFJLFlBQVksRUFFN0IsMEJBQTBCLEdBQzNCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBYSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUN4Qyw4Q0FBOEM7QUFFOUMsdUdBQXVHO0FBQ3ZHLFNBQVMsU0FBUyxDQUFDLENBQU07SUFDdkIsT0FBTyxDQUFDLFlBQVksT0FBTyxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUdHO0FBQ0g7Ozs7O0VBS0U7QUFFRixNQUFNLE9BQU8sVUFBVTtJQXFFckIsWUFDVSxNQUFjLEVBQ2QsS0FBcUIsRUFDVyxpQkFBNEMs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aEMsVUFBVTtzQkFEYixLQUFLO2dCQXlCTixPQUFPO3NCQVBOLFlBQVk7dUJBQUMsT0FBTyxFQUFFO3dCQUNyQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFtOaW1ibGVdXG4gKiBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTguMi4xMy9wYWNrYWdlcy9yb3V0ZXIvc3JjL2RpcmVjdGl2ZXMvcm91dGVyX2xpbmsudHNcbiAqIHdpdGggdGhlIGZvbGxvd2luZyBtb2RpZmljYXRpb25zOlxuICogLSBDb3B5IGBpc1VybFRyZWVgIGZ1bmN0aW9uIGZyb20gdXJsX3RyZWUudHMgaW50byB0aGlzIGZpbGUgaW5zdGVhZCBvZiBpbXBvcnRpbmdcbiAqIC0gSGFyZGNvZGUgYGlzQW5jaG9yRWxlbWVudGAgdG8gYHRydWVgIHNvIHRoYXQgdGhlIGRpcmVjdGl2ZSB3aWxsIGNvcnJlY3RseSBzZXQgdGhlIGBocmVmYCBvbiBlbGVtZW50cyB3aXRoaW4gbmltYmxlIHRoYXQgcmVwcmVzZW50IGFuY2hvcnNcbiAqIC0gTWFrZSBgaHJlZmAgYSBgQEhvc3RCaW5kaW5kaW5nYCB0byBhdm9pZCB1c2luZyBBbmd1bGFyJ3MgcHJpdmF0ZSBzYW5pdGl6YXRpb24gQVBJcyBiZWNhdXNlIGBocmVmYCBiaW5kaW5ncyBhdXRvbWF0aWNhbGx5IGFyZSBzYW5pdGl6ZWQgYnlcbiAqICAgQW5ndWxhciAoc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9zZWN1cml0eSNzYW5pdGl6YXRpb24tYW5kLXNlY3VyaXR5LWNvbnRleHRzKS4gSW1wbGVtZW50YXRpb25zIGxldmVyYWdpbmcgUm91dGVyTGluayBzaG91bGQgaGF2ZSBhIHRlc3RcbiAqICAgZW5zdXJpbmcgc2FuaXRpemF0aW9uIGlzIGNhbGxlZC5cbiAqIC0gQ29tbWVudCBvdXQgdW5lY2Nlc3NhcnkgZXhwb3J0IG9mIHRoZSBkZXByZWNhdGVkIGBSb3V0ZXJMaW5rV2l0aEhyZWZgXG4gKi9cblxuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7TG9jYXRpb25TdHJhdGVneX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICB0eXBlIE9uQ2hhbmdlcyxcbiAgdHlwZSBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgybVSdW50aW1lRXJyb3IgYXMgUnVudGltZUVycm9yLFxuICB0eXBlIFNpbXBsZUNoYW5nZXMsXG4gIMm1ybVzYW5pdGl6ZVVybE9yUmVzb3VyY2VVcmwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge3R5cGUgRXZlbnQsIE5hdmlnYXRpb25FbmR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgdHlwZSB7UXVlcnlQYXJhbXNIYW5kbGluZ30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB0eXBlIHtQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1VybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG4vLyBpbXBvcnQge1J1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4uL2Vycm9ycyc7XG5cbi8vIFtOaW1ibGVdIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi8xOC4yLjEzL3BhY2thZ2VzL3JvdXRlci9zcmMvdXJsX3RyZWUudHNcbmZ1bmN0aW9uIGlzVXJsVHJlZSh2OiBhbnkpOiB2IGlzIFVybFRyZWUge1xuICByZXR1cm4gdiBpbnN0YW5jZW9mIFVybFRyZWU7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogV2hlbiBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgaW4gYSB0ZW1wbGF0ZSwgbWFrZXMgdGhhdCBlbGVtZW50IGEgbGlua1xuICogdGhhdCBpbml0aWF0ZXMgbmF2aWdhdGlvbiB0byBhIHJvdXRlLiBOYXZpZ2F0aW9uIG9wZW5zIG9uZSBvciBtb3JlIHJvdXRlZCBjb21wb25lbnRzXG4gKiBpbiBvbmUgb3IgbW9yZSBgPHJvdXRlci1vdXRsZXQ+YCBsb2NhdGlvbnMgb24gdGhlIHBhZ2UuXG4gKlxuICogR2l2ZW4gYSByb3V0ZSBjb25maWd1cmF0aW9uIGBbeyBwYXRoOiAndXNlci86bmFtZScsIGNvbXBvbmVudDogVXNlckNtcCB9XWAsXG4gKiB0aGUgZm9sbG93aW5nIGNyZWF0ZXMgYSBzdGF0aWMgbGluayB0byB0aGUgcm91dGU6XG4gKiBgPGEgcm91dGVyTGluaz1cIi91c2VyL2JvYlwiPmxpbmsgdG8gdXNlciBjb21wb25lbnQ8L2E+YFxuICpcbiAqIFlvdSBjYW4gdXNlIGR5bmFtaWMgdmFsdWVzIHRvIGdlbmVyYXRlIHRoZSBsaW5rLlxuICogRm9yIGEgZHluYW1pYyBsaW5rLCBwYXNzIGFuIGFycmF5IG9mIHBhdGggc2VnbWVudHMsXG4gKiBmb2xsb3dlZCBieSB0aGUgcGFyYW1zIGZvciBlYWNoIHNlZ21lbnQuXG4gKiBGb3IgZXhhbXBsZSwgYFsnL3RlYW0nLCB0ZWFtSWQsICd1c2VyJywgdXNlck5hbWUsIHtkZXRhaWxzOiB0cnVlfV1gXG4gKiBnZW5lcmF0ZXMgYSBsaW5rIHRvIGAvdGVhbS8xMS91c2VyL2JvYjtkZXRhaWxzPXRydWVgLlxuICpcbiAqIE11bHRpcGxlIHN0YXRpYyBzZWdtZW50cyBjYW4gYmUgbWVyZ2VkIGludG8gb25lIHRlcm0gYW5kIGNvbWJpbmVkIHdpdGggZHluYW1pYyBzZWdtZW50cy5cbiAqIEZvciBleGFtcGxlLCBgWycvdGVhbS8xMS91c2VyJywgdXNlck5hbWUsIHtkZXRhaWxzOiB0cnVlfV1gXG4gKlxuICogVGhlIGlucHV0IHRoYXQgeW91IHByb3ZpZGUgdG8gdGhlIGxpbmsgaXMgdHJlYXRlZCBhcyBhIGRlbHRhIHRvIHRoZSBjdXJyZW50IFVSTC5cbiAqIEZvciBpbnN0YW5jZSwgc3VwcG9zZSB0aGUgY3VycmVudCBVUkwgaXMgYC91c2VyLyhib3gvL2F1eDp0ZWFtKWAuXG4gKiBUaGUgbGluayBgPGEgW3JvdXRlckxpbmtdPVwiWycvdXNlci9qaW0nXVwiPkppbTwvYT5gIGNyZWF0ZXMgdGhlIFVSTFxuICogYC91c2VyLyhqaW0vL2F1eDp0ZWFtKWAuXG4gKiBTZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqIFlvdSBjYW4gdXNlIGFic29sdXRlIG9yIHJlbGF0aXZlIHBhdGhzIGluIGEgbGluaywgc2V0IHF1ZXJ5IHBhcmFtZXRlcnMsXG4gKiBjb250cm9sIGhvdyBwYXJhbWV0ZXJzIGFyZSBoYW5kbGVkLCBhbmQga2VlcCBhIGhpc3Rvcnkgb2YgbmF2aWdhdGlvbiBzdGF0ZXMuXG4gKlxuICogIyMjIFJlbGF0aXZlIGxpbmsgcGF0aHNcbiAqXG4gKiBUaGUgZmlyc3Qgc2VnbWVudCBuYW1lIGNhbiBiZSBwcmVwZW5kZWQgd2l0aCBgL2AsIGAuL2AsIG9yIGAuLi9gLlxuICogKiBJZiB0aGUgZmlyc3Qgc2VnbWVudCBiZWdpbnMgd2l0aCBgL2AsIHRoZSByb3V0ZXIgbG9va3MgdXAgdGhlIHJvdXRlIGZyb20gdGhlIHJvb3Qgb2YgdGhlXG4gKiAgIGFwcC5cbiAqICogSWYgdGhlIGZpcnN0IHNlZ21lbnQgYmVnaW5zIHdpdGggYC4vYCwgb3IgZG9lc24ndCBiZWdpbiB3aXRoIGEgc2xhc2gsIHRoZSByb3V0ZXJcbiAqICAgbG9va3MgaW4gdGhlIGNoaWxkcmVuIG9mIHRoZSBjdXJyZW50IGFjdGl2YXRlZCByb3V0ZS5cbiAqICogSWYgdGhlIGZpcnN0IHNlZ21lbnQgYmVnaW5zIHdpdGggYC4uL2AsIHRoZSByb3V0ZXIgZ29lcyB1cCBvbmUgbGV2ZWwgaW4gdGhlIHJvdXRlIHRyZWUuXG4gKlxuICogIyMjIFNldHRpbmcgYW5kIGhhbmRsaW5nIHF1ZXJ5IHBhcmFtcyBhbmQgZnJhZ21lbnRzXG4gKlxuICogVGhlIGZvbGxvd2luZyBsaW5rIGFkZHMgYSBxdWVyeSBwYXJhbWV0ZXIgYW5kIGEgZnJhZ21lbnQgdG8gdGhlIGdlbmVyYXRlZCBVUkw6XG4gKlxuICogYGBgXG4gKiA8YSBbcm91dGVyTGlua109XCJbJy91c2VyL2JvYiddXCIgW3F1ZXJ5UGFyYW1zXT1cIntkZWJ1ZzogdHJ1ZX1cIiBmcmFnbWVudD1cImVkdWNhdGlvblwiPlxuICogICBsaW5rIHRvIHVzZXIgY29tcG9uZW50XG4gKiA8L2E+XG4gKiBgYGBcbiAqIEJ5IGRlZmF1bHQsIHRoZSBkaXJlY3RpdmUgY29uc3RydWN0cyB0aGUgbmV3IFVSTCB1c2luZyB0aGUgZ2l2ZW4gcXVlcnkgcGFyYW1ldGVycy5cbiAqIFRoZSBleGFtcGxlIGdlbmVyYXRlcyB0aGUgbGluazogYC91c2VyL2JvYj9kZWJ1Zz10cnVlI2VkdWNhdGlvbmAuXG4gKlxuICogWW91IGNhbiBpbnN0cnVjdCB0aGUgZGlyZWN0aXZlIHRvIGhhbmRsZSBxdWVyeSBwYXJhbWV0ZXJzIGRpZmZlcmVudGx5XG4gKiBieSBzcGVjaWZ5aW5nIHRoZSBgcXVlcnlQYXJhbXNIYW5kbGluZ2Agb3B0aW9uIGluIHRoZSBsaW5rLlxuICogQWxsb3dlZCB2YWx1ZXMgYXJlOlxuICpcbiAqICAtIGAnbWVyZ2UnYDogTWVyZ2UgdGhlIGdpdmVuIGBxdWVyeVBhcmFtc2AgaW50byB0aGUgY3VycmVudCBxdWVyeSBwYXJhbXMuXG4gKiAgLSBgJ3ByZXNlcnZlJ2A6IFByZXNlcnZlIHRoZSBjdXJyZW50IHF1ZXJ5IHBhcmFtcy5cbiAqXG4gKiBGb3IgZXhhbXBsZTpcbiAqXG4gKiBgYGBcbiAqIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3VzZXIvYm9iJ11cIiBbcXVlcnlQYXJhbXNdPVwie2RlYnVnOiB0cnVlfVwiIHF1ZXJ5UGFyYW1zSGFuZGxpbmc9XCJtZXJnZVwiPlxuICogICBsaW5rIHRvIHVzZXIgY29tcG9uZW50XG4gKiA8L2E+XG4gKiBgYGBcbiAqXG4gKiBgcXVlcnlQYXJhbXNgLCBgZnJhZ21lbnRgLCBgcXVlcnlQYXJhbXNIYW5kbGluZ2AsIGBwcmVzZXJ2ZUZyYWdtZW50YCwgYW5kIGByZWxhdGl2ZVRvYFxuICogY2Fubm90IGJlIHVzZWQgd2hlbiB0aGUgYHJvdXRlckxpbmtgIGlucHV0IGlzIGEgYFVybFRyZWVgLlxuICpcbiAqIFNlZSB7QGxpbmsgVXJsQ3JlYXRpb25PcHRpb25zI3F1ZXJ5UGFyYW1zSGFuZGxpbmd9LlxuICpcbiAqICMjIyBQcmVzZXJ2aW5nIG5hdmlnYXRpb24gaGlzdG9yeVxuICpcbiAqIFlvdSBjYW4gcHJvdmlkZSBhIGBzdGF0ZWAgdmFsdWUgdG8gYmUgcGVyc2lzdGVkIHRvIHRoZSBicm93c2VyJ3NcbiAqIFtgSGlzdG9yeS5zdGF0ZWAgcHJvcGVydHldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IaXN0b3J5I1Byb3BlcnRpZXMpLlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgXG4gKiA8YSBbcm91dGVyTGlua109XCJbJy91c2VyL2JvYiddXCIgW3N0YXRlXT1cInt0cmFjaW5nSWQ6IDEyM31cIj5cbiAqICAgbGluayB0byB1c2VyIGNvbXBvbmVudFxuICogPC9hPlxuICogYGBgXG4gKlxuICogVXNlIHtAbGluayBSb3V0ZXIjZ2V0Q3VycmVudE5hdmlnYXRpb259IHRvIHJldHJpZXZlIGEgc2F2ZWRcbiAqIG5hdmlnYXRpb24tc3RhdGUgdmFsdWUuIEZvciBleGFtcGxlLCB0byBjYXB0dXJlIHRoZSBgdHJhY2luZ0lkYCBkdXJpbmcgdGhlIGBOYXZpZ2F0aW9uU3RhcnRgXG4gKiBldmVudDpcbiAqXG4gKiBgYGBcbiAqIC8vIEdldCBOYXZpZ2F0aW9uU3RhcnQgZXZlbnRzXG4gKiByb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkpLnN1YnNjcmliZShlID0+IHtcbiAqICAgY29uc3QgbmF2aWdhdGlvbiA9IHJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpO1xuICogICB0cmFjaW5nU2VydmljZS50cmFjZSh7aWQ6IG5hdmlnYXRpb24uZXh0cmFzLnN0YXRlLnRyYWNpbmdJZH0pO1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAbmdNb2R1bGUgUm91dGVyTW9kdWxlXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG4vKiBbTmltYmxlXSBSZW1vdmUgYWxsIGNvbmZpZ3VyYXRpb24gZnJvbSBARGlyZWN0aXZlIGRlY29yYXRvclxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3JvdXRlckxpbmtdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG4qL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUm91dGVyTGluayBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYW4gYGhyZWZgIGF0dHJpYnV0ZSB2YWx1ZSBhcHBsaWVkIHRvIGEgaG9zdCBlbGVtZW50LFxuICAgKiB3aGVuIGEgaG9zdCBlbGVtZW50IGlzIGA8YT5gLiBGb3Igb3RoZXIgdGFncywgdGhlIHZhbHVlIGlzIGBudWxsYC5cbiAgICovXG4gIC8vIFtOaW1ibGVdIE1ha2UgYGhyZWZgIGEgYEBIb3N0QmluZGluZ2BcbiAgLy8gaHJlZjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5ocmVmJykgaHJlZjogc3RyaW5nfG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBgdGFyZ2V0YCBhdHRyaWJ1dGUgb24gYSBob3N0IGVsZW1lbnQuXG4gICAqIFRoaXMgaXMgb25seSB1c2VkIHdoZW4gdGhlIGhvc3QgZWxlbWVudCBpcyBhbiBgPGE+YCB0YWcuXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFyZ2V0JykgQElucHV0KCkgdGFyZ2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgVXJsQ3JlYXRpb25PcHRpb25zYC5cbiAgICogQHNlZSB7QGxpbmsgVXJsQ3JlYXRpb25PcHRpb25zI3F1ZXJ5UGFyYW1zfVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX1cbiAgICovXG4gIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zPzogUGFyYW1zIHwgbnVsbDtcbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBVcmxDcmVhdGlvbk9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBVcmxDcmVhdGlvbk9wdGlvbnMjZnJhZ21lbnR9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KCkgZnJhZ21lbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgVXJsQ3JlYXRpb25PcHRpb25zYC5cbiAgICogQHNlZSB7QGxpbmsgVXJsQ3JlYXRpb25PcHRpb25zI3F1ZXJ5UGFyYW1zSGFuZGxpbmd9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KCkgcXVlcnlQYXJhbXNIYW5kbGluZz86IFF1ZXJ5UGFyYW1zSGFuZGxpbmcgfCBudWxsO1xuICAvKipcbiAgICogUGFzc2VkIHRvIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH0gYXMgcGFydCBvZiB0aGVcbiAgICogYE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zI3N0YXRlfVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH1cbiAgICovXG4gIEBJbnB1dCgpIHN0YXRlPzoge1trOiBzdHJpbmddOiBhbnl9O1xuICAvKipcbiAgICogUGFzc2VkIHRvIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH0gYXMgcGFydCBvZiB0aGVcbiAgICogYE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zI2luZm99XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfVxuICAgKi9cbiAgQElucHV0KCkgaW5mbz86IHVua25vd247XG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgVXJsQ3JlYXRpb25PcHRpb25zYC5cbiAgICogU3BlY2lmeSBhIHZhbHVlIGhlcmUgd2hlbiB5b3UgZG8gbm90IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0IHZhbHVlXG4gICAqIGZvciBgcm91dGVyTGlua2AsIHdoaWNoIGlzIHRoZSBjdXJyZW50IGFjdGl2YXRlZCByb3V0ZS5cbiAgICogTm90ZSB0aGF0IGEgdmFsdWUgb2YgYHVuZGVmaW5lZGAgaGVyZSB3aWxsIHVzZSB0aGUgYHJvdXRlckxpbmtgIGRlZmF1bHQuXG4gICAqIEBzZWUge0BsaW5rIFVybENyZWF0aW9uT3B0aW9ucyNyZWxhdGl2ZVRvfVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX1cbiAgICovXG4gIEBJbnB1dCgpIHJlbGF0aXZlVG8/OiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgYSBob3N0IGVsZW1lbnQgaXMgYW4gYDxhPmAgdGFnLiAqL1xuICBwcml2YXRlIGlzQW5jaG9yRWxlbWVudDogYm9vbGVhbjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAvKiogQGludGVybmFsICovXG4gIG9uQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PFJvdXRlckxpbms+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBAQXR0cmlidXRlKCd0YWJpbmRleCcpIHByaXZhdGUgcmVhZG9ubHkgdGFiSW5kZXhBdHRyaWJ1dGU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWYsXG4gICAgLy8gW05pbWJsZV0gTmVlZCBJbmplY3QgZGVjb3JhdG9yXG4gICAgQEluamVjdChMb2NhdGlvblN0cmF0ZWd5KSBwcml2YXRlIGxvY2F0aW9uU3RyYXRlZ3k/OiBMb2NhdGlvblN0cmF0ZWd5LFxuICApIHtcbiAgICAvLyBbTmltYmxlXSBIYXJkLWNvZGluZyBgaXNBbmNob3JFbGVtZW50YCB0byBgdHJ1ZWBcbiAgICAvLyBjb25zdCB0YWdOYW1lID0gZWwubmF0aXZlRWxlbWVudC50YWdOYW1lPy50b0xvd2VyQ2FzZSgpO1xuICAgIC8vIHRoaXMuaXNBbmNob3JFbGVtZW50ID0gdGFnTmFtZSA9PT0gJ2EnIHx8IHRhZ05hbWUgPT09ICdhcmVhJztcbiAgICB0aGlzLmlzQW5jaG9yRWxlbWVudCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5pc0FuY2hvckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKHM6IEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChzIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgIHRoaXMudXBkYXRlSHJlZigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRUYWJJbmRleElmTm90T25OYXRpdmVFbCgnMCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgVXJsQ3JlYXRpb25PcHRpb25zYC5cbiAgICogQHNlZSB7QGxpbmsgVXJsQ3JlYXRpb25PcHRpb25zI3ByZXNlcnZlRnJhZ21lbnR9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBwcmVzZXJ2ZUZyYWdtZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI25hdmlnYXRlQnlVcmx9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zYC5cbiAgICogQHNlZSB7QGxpbmsgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9ucyNza2lwTG9jYXRpb25DaGFuZ2V9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfVxuICAgKi9cbiAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBza2lwTG9jYXRpb25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogUGFzc2VkIHRvIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH0gYXMgcGFydCBvZiB0aGVcbiAgICogYE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zI3JlcGxhY2VVcmx9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfVxuICAgKi9cbiAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSByZXBsYWNlVXJsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE1vZGlmaWVzIHRoZSB0YWIgaW5kZXggaWYgdGhlcmUgd2FzIG5vdCBhIHRhYmluZGV4IGF0dHJpYnV0ZSBvbiB0aGUgZWxlbWVudCBkdXJpbmdcbiAgICogaW5zdGFudGlhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgc2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwobmV3VGFiSW5kZXg6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAodGhpcy50YWJJbmRleEF0dHJpYnV0ZSAhPSBudWxsIC8qIGJvdGggYG51bGxgIGFuZCBgdW5kZWZpbmVkYCAqLyB8fCB0aGlzLmlzQW5jaG9yRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFwcGx5QXR0cmlidXRlVmFsdWUoJ3RhYmluZGV4JywgbmV3VGFiSW5kZXgpO1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICAvLyBUT0RPKGF0c2NvdHQpOiBSZW1vdmUgY2hhbmdlcyBwYXJhbWV0ZXIgaW4gbWFqb3IgdmVyc2lvbiBhcyBhIGJyZWFraW5nIGNoYW5nZS5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlcz86IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAvKiBbTmltYmxlXSBDb21tZW50IG91dCBleHRyYSBlcnJvciBoYW5kbGluZyB0aGF0IHVzZXMgbmdEZXZNb2RlIGFuZCBSdW50aW1lRXJyb3JDb2RlXG4gICAgaWYgKFxuICAgICAgbmdEZXZNb2RlICYmXG4gICAgICBpc1VybFRyZWUodGhpcy5yb3V0ZXJMaW5rSW5wdXQpICYmXG4gICAgICAodGhpcy5mcmFnbWVudCAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXMgfHxcbiAgICAgICAgdGhpcy5xdWVyeVBhcmFtc0hhbmRsaW5nIHx8XG4gICAgICAgIHRoaXMucHJlc2VydmVGcmFnbWVudCB8fFxuICAgICAgICB0aGlzLnJlbGF0aXZlVG8pXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfUk9VVEVSX0xJTktfSU5QVVRTLFxuICAgICAgICAnQ2Fubm90IGNvbmZpZ3VyZSBxdWVyeVBhcmFtcyBvciBmcmFnbWVudCB3aGVuIHVzaW5nIGEgVXJsVHJlZSBhcyB0aGUgcm91dGVyTGluayBpbnB1dCB2YWx1ZS4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgKi9cbiAgICBpZiAodGhpcy5pc0FuY2hvckVsZW1lbnQpIHtcbiAgICAgIHRoaXMudXBkYXRlSHJlZigpO1xuICAgIH1cbiAgICAvLyBUaGlzIGlzIHN1YnNjcmliZWQgdG8gYnkgYFJvdXRlckxpbmtBY3RpdmVgIHNvIHRoYXQgaXQga25vd3MgdG8gdXBkYXRlIHdoZW4gdGhlcmUgYXJlIGNoYW5nZXNcbiAgICAvLyB0byB0aGUgUm91dGVyTGlua3MgaXQncyB0cmFja2luZy5cbiAgICB0aGlzLm9uQ2hhbmdlcy5uZXh0KHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSByb3V0ZXJMaW5rSW5wdXQ6IGFueVtdIHwgVXJsVHJlZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDb21tYW5kcyB0byBwYXNzIHRvIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX0gb3IgYSBgVXJsVHJlZWAuXG4gICAqICAgLSAqKmFycmF5Kio6IGNvbW1hbmRzIHRvIHBhc3MgdG8ge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfS5cbiAgICogICAtICoqc3RyaW5nKio6IHNob3J0aGFuZCBmb3IgYXJyYXkgb2YgY29tbWFuZHMgd2l0aCBqdXN0IHRoZSBzdHJpbmcsIGkuZS4gYFsnL3JvdXRlJ11gXG4gICAqICAgLSAqKlVybFRyZWUqKjogYSBgVXJsVHJlZWAgZm9yIHRoaXMgbGluayByYXRoZXIgdGhhbiBjcmVhdGluZyBvbmUgZnJvbSB0aGUgY29tbWFuZHNcbiAgICogICAgIGFuZCBvdGhlciBpbnB1dHMgdGhhdCBjb3JyZXNwb25kIHRvIHByb3BlcnRpZXMgb2YgYFVybENyZWF0aW9uT3B0aW9uc2AuXG4gICAqICAgLSAqKm51bGx8dW5kZWZpbmVkKio6IGVmZmVjdGl2ZWx5IGRpc2FibGVzIHRoZSBgcm91dGVyTGlua2BcbiAgICogQHNlZSB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9XG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgcm91dGVyTGluayhjb21tYW5kc09yVXJsVHJlZTogYW55W10gfCBzdHJpbmcgfCBVcmxUcmVlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChjb21tYW5kc09yVXJsVHJlZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLnJvdXRlckxpbmtJbnB1dCA9IG51bGw7XG4gICAgICB0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXNVcmxUcmVlKGNvbW1hbmRzT3JVcmxUcmVlKSkge1xuICAgICAgICB0aGlzLnJvdXRlckxpbmtJbnB1dCA9IGNvbW1hbmRzT3JVcmxUcmVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb3V0ZXJMaW5rSW5wdXQgPSBBcnJheS5pc0FycmF5KGNvbW1hbmRzT3JVcmxUcmVlKVxuICAgICAgICAgID8gY29tbWFuZHNPclVybFRyZWVcbiAgICAgICAgICA6IFtjb21tYW5kc09yVXJsVHJlZV07XG4gICAgICB9XG4gICAgICB0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKCcwJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFtcbiAgICAnJGV2ZW50LmJ1dHRvbicsXG4gICAgJyRldmVudC5jdHJsS2V5JyxcbiAgICAnJGV2ZW50LnNoaWZ0S2V5JyxcbiAgICAnJGV2ZW50LmFsdEtleScsXG4gICAgJyRldmVudC5tZXRhS2V5JyxcbiAgXSlcbiAgb25DbGljayhcbiAgICBidXR0b246IG51bWJlcixcbiAgICBjdHJsS2V5OiBib29sZWFuLFxuICAgIHNoaWZ0S2V5OiBib29sZWFuLFxuICAgIGFsdEtleTogYm9vbGVhbixcbiAgICBtZXRhS2V5OiBib29sZWFuLFxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCB1cmxUcmVlID0gdGhpcy51cmxUcmVlO1xuXG4gICAgaWYgKHVybFRyZWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQW5jaG9yRWxlbWVudCkge1xuICAgICAgaWYgKGJ1dHRvbiAhPT0gMCB8fCBjdHJsS2V5IHx8IHNoaWZ0S2V5IHx8IGFsdEtleSB8fCBtZXRhS2V5KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRoaXMudGFyZ2V0ID09PSAnc3RyaW5nJyAmJiB0aGlzLnRhcmdldCAhPSAnX3NlbGYnKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV4dHJhcyA9IHtcbiAgICAgIHNraXBMb2NhdGlvbkNoYW5nZTogdGhpcy5za2lwTG9jYXRpb25DaGFuZ2UsXG4gICAgICByZXBsYWNlVXJsOiB0aGlzLnJlcGxhY2VVcmwsXG4gICAgICBzdGF0ZTogdGhpcy5zdGF0ZSxcbiAgICAgIGluZm86IHRoaXMuaW5mbyxcbiAgICB9O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsVHJlZSwgZXh0cmFzKTtcblxuICAgIC8vIFJldHVybiBgZmFsc2VgIGZvciBgPGE+YCBlbGVtZW50cyB0byBwcmV2ZW50IGRlZmF1bHQgYWN0aW9uXG4gICAgLy8gYW5kIGNhbmNlbCB0aGUgbmF0aXZlIGJlaGF2aW9yLCBzaW5jZSB0aGUgbmF2aWdhdGlvbiBpcyBoYW5kbGVkXG4gICAgLy8gYnkgdGhlIFJvdXRlci5cbiAgICByZXR1cm4gIXRoaXMuaXNBbmNob3JFbGVtZW50O1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBuZ09uRGVzdHJveSgpOiBhbnkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVIcmVmKCk6IHZvaWQge1xuICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnVybFRyZWU7XG4gICAgdGhpcy5ocmVmID1cbiAgICAgIHVybFRyZWUgIT09IG51bGwgJiYgdGhpcy5sb2NhdGlvblN0cmF0ZWd5XG4gICAgICAgID8gdGhpcy5sb2NhdGlvblN0cmF0ZWd5Py5wcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHVybFRyZWUpKVxuICAgICAgICA6IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBbTmltYmxlXSBSZW1vdmUgc2FuaXRpemF0aW9uIGNvZGUgYW5kIGFwcGx5aW5nIHRoZSBgaHJlZmAgYXR0cmlidXRlIGluIGZhdm9yIG9mIGNoYW5naW5nIGBocmVmYFxuICAgICAqIHRvIGJlIGEgYEBIb3N0QmluZGluZ2AuIFRoaXMgYXZvaWRzIHRoZSBuZWVkIG9mIGNhbGxpbmcgaW50byBwcml2YXRlIEFuZ3VsYXIgc2FuaXRpemF0aW9uIGNvZGUuXG4gICAgICovXG4gICAgLy8gY29uc3Qgc2FuaXRpemVkVmFsdWUgPVxuICAgIC8vICAgdGhpcy5ocmVmID09PSBudWxsXG4gICAgLy8gICAgID8gbnVsbFxuICAgIC8vICAgICA6IC8vIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhIGRpcmVjdGl2ZSB0aGF0IGNhbiBiZSBhZGRlZCB0byBib3RoIGA8YT5gIGVsZW1lbnRzLFxuICAgIC8vICAgICAgIC8vIGFzIHdlbGwgYXMgb3RoZXIgZWxlbWVudHMuIEFzIGEgcmVzdWx0LCB3ZSBjYW4ndCBkZWZpbmUgc2VjdXJpdHkgY29udGV4dCBhdFxuICAgIC8vICAgICAgIC8vIGNvbXBpbGUgdGltZS4gU28gdGhlIHNlY3VyaXR5IGNvbnRleHQgaXMgZGVmZXJyZWQgdG8gcnVudGltZS5cbiAgICAvLyAgICAgICAvLyBUaGUgYMm1ybVzYW5pdGl6ZVVybE9yUmVzb3VyY2VVcmxgIHNlbGVjdHMgdGhlIG5lY2Vzc2FyeSBzYW5pdGl6ZXIgZnVuY3Rpb25cbiAgICAvLyAgICAgICAvLyBiYXNlZCBvbiB0aGUgdGFnIGFuZCBwcm9wZXJ0eSBuYW1lcy4gVGhlIGxvZ2ljIG1pbWljcyB0aGUgb25lIGZyb21cbiAgICAvLyAgICAgICAvLyBgcGFja2FnZXMvY29tcGlsZXIvc3JjL3NjaGVtYS9kb21fc2VjdXJpdHlfc2NoZW1hLnRzYCwgd2hpY2ggaXMgdXNlZCBhdCBjb21waWxlIHRpbWUuXG4gICAgLy8gICAgICAgLy9cbiAgICAvLyAgICAgICAvLyBOb3RlOiB3ZSBzaG91bGQgaW52ZXN0aWdhdGUgd2hldGhlciB3ZSBjYW4gc3dpdGNoIHRvIHVzaW5nIGBASG9zdEJpbmRpbmcoJ2F0dHIuaHJlZicpYFxuICAgIC8vICAgICAgIC8vIGluc3RlYWQgb2YgYXBwbHlpbmcgYSB2YWx1ZSB2aWEgYSByZW5kZXJlciwgYWZ0ZXIgYSBmaW5hbCBtZXJnZSBvZiB0aGVcbiAgICAvLyAgICAgICAvLyBgUm91dGVyTGlua1dpdGhIcmVmYCBkaXJlY3RpdmUuXG4gICAgLy8gICAgICAgybXJtXNhbml0aXplVXJsT3JSZXNvdXJjZVVybChcbiAgICAvLyAgICAgICAgIHRoaXMuaHJlZixcbiAgICAvLyAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCksXG4gICAgLy8gICAgICAgICAnaHJlZicsXG4gICAgLy8gICAgICAgKTtcbiAgICAvLyB0aGlzLmFwcGx5QXR0cmlidXRlVmFsdWUoJ2hyZWYnLCBzYW5pdGl6ZWRWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QXR0cmlidXRlVmFsdWUoYXR0ck5hbWU6IHN0cmluZywgYXR0clZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgY29uc3QgcmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyO1xuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGF0dHJWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKG5hdGl2ZUVsZW1lbnQsIGF0dHJOYW1lLCBhdHRyVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUobmF0aXZlRWxlbWVudCwgYXR0ck5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB1cmxUcmVlKCk6IFVybFRyZWUgfCBudWxsIHtcbiAgICBpZiAodGhpcy5yb3V0ZXJMaW5rSW5wdXQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoaXNVcmxUcmVlKHRoaXMucm91dGVyTGlua0lucHV0KSkge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyTGlua0lucHV0O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZSh0aGlzLnJvdXRlckxpbmtJbnB1dCwge1xuICAgICAgLy8gSWYgdGhlIGByZWxhdGl2ZVRvYCBpbnB1dCBpcyBub3QgZGVmaW5lZCwgd2Ugd2FudCB0byB1c2UgYHRoaXMucm91dGVgIGJ5IGRlZmF1bHQuXG4gICAgICAvLyBPdGhlcndpc2UsIHdlIHNob3VsZCB1c2UgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGluIHRoZSBpbnB1dC5cbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucmVsYXRpdmVUbyAhPT0gdW5kZWZpbmVkID8gdGhpcy5yZWxhdGl2ZVRvIDogdGhpcy5yb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zLFxuICAgICAgZnJhZ21lbnQ6IHRoaXMuZnJhZ21lbnQsXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiB0aGlzLnF1ZXJ5UGFyYW1zSGFuZGxpbmcsXG4gICAgICBwcmVzZXJ2ZUZyYWdtZW50OiB0aGlzLnByZXNlcnZlRnJhZ21lbnQsXG4gICAgfSk7XG4gIH1cbn1cblxuLy8gW05pbWJsZV0gUmVtb3ZlIGV4dHJhIGV4cG9ydCBmb3IgZGVwcmVjYXRlZCBBbmd1bGFyIEFQSVxuLy8gLyoqXG4vLyAgKiBAZGVzY3JpcHRpb25cbi8vICAqIEFuIGFsaWFzIGZvciB0aGUgYFJvdXRlckxpbmtgIGRpcmVjdGl2ZS5cbi8vICAqIERlcHJlY2F0ZWQgc2luY2UgdjE1LCB1c2UgYFJvdXRlckxpbmtgIGRpcmVjdGl2ZSBpbnN0ZWFkLlxuLy8gICpcbi8vICAqIEBkZXByZWNhdGVkIHVzZSBgUm91dGVyTGlua2AgZGlyZWN0aXZlIGluc3RlYWQuXG4vLyAgKiBAcHVibGljQXBpXG4vLyAgKi9cbi8vIGV4cG9ydCB7Um91dGVyTGluayBhcyBSb3V0ZXJMaW5rV2l0aEhyZWZ9OyJdfQ==
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * [Nimble]
3
- * Copied from https://github.com/angular/angular/blob/17.3.11/packages/forms/src/directives/select_control_value_accessor.ts
3
+ * Copied from https://github.com/angular/angular/blob/18.2.13/packages/forms/src/directives/select_control_value_accessor.ts
4
4
  * with the following modifications:
5
5
  * - Update imports
6
6
  * - Remove all configuration from SelectControlValueAccessor's `@Directive` decorator
@@ -12,16 +12,19 @@
12
12
  * Copyright Google LLC All Rights Reserved.
13
13
  *
14
14
  * Use of this source code is governed by an MIT-style license that can be
15
- * found in the LICENSE file at https://angular.io/license
15
+ * found in the LICENSE file at https://angular.dev/license
16
16
  */
17
- import { Directive, ElementRef, forwardRef, Host, Input, Optional, Renderer2, ɵRuntimeError as RuntimeError, isDevMode } from '@angular/core';
18
- import { BuiltInControlValueAccessor } from './control_value_accessor';
17
+ import { Directive, ElementRef, forwardRef, Host, Input, Optional, Renderer2, ɵRuntimeError as RuntimeError, isDevMode, } from '@angular/core';
18
+ import { BuiltInControlValueAccessor,
19
+ // ControlValueAccessor,
20
+ // NG_VALUE_ACCESSOR,
21
+ } from './control_value_accessor';
19
22
  import * as i0 from "@angular/core";
20
23
  /* [Nimble] Do not register as a value accessor provider
21
24
  const SELECT_VALUE_ACCESSOR: Provider = {
22
25
  provide: NG_VALUE_ACCESSOR,
23
26
  useExisting: forwardRef(() => SelectControlValueAccessor),
24
- multi: true
27
+ multi: true,
25
28
  };
26
29
  */
27
30
  function _buildValueString(id, value) {
@@ -93,9 +96,9 @@ function _extractId(valueString) {
93
96
  /* [Nimble] Remove all configuration from @Directive decorator
94
97
  @Directive({
95
98
  selector:
96
- 'select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]',
99
+ 'select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]',
97
100
  host: {'(change)': 'onChange($event.target.value)', '(blur)': 'onTouched()'},
98
- providers: [SELECT_VALUE_ACCESSOR]
101
+ providers: [SELECT_VALUE_ACCESSOR],
99
102
  })
100
103
  */
101
104
  export class SelectControlValueAccessor extends BuiltInControlValueAccessor {
@@ -116,8 +119,9 @@ export class SelectControlValueAccessor extends BuiltInControlValueAccessor {
116
119
  // [Nimble] Update to use public APIs
117
120
  // if (typeof fn !== 'function' && (typeof ngDevMode === 'undefined' || ngDevMode)) {
118
121
  // throw new RuntimeError(
119
- // RuntimeErrorCode.COMPAREWITH_NOT_A_FN,
120
- // `compareWith must be a function, but received ${JSON.stringify(fn)}`);
122
+ // RuntimeErrorCode.COMPAREWITH_NOT_A_FN,
123
+ // `compareWith must be a function, but received ${JSON.stringify(fn)}`,
124
+ // );
121
125
  // }
122
126
  if (typeof fn !== 'function' && isDevMode()) {
123
127
  throw new Error(`compareWith must be a function, but received ${JSON.stringify(fn)}`);
@@ -161,10 +165,10 @@ export class SelectControlValueAccessor extends BuiltInControlValueAccessor {
161
165
  const id = _extractId(valueString);
162
166
  return this._optionMap.has(id) ? this._optionMap.get(id) : valueString;
163
167
  }
164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectControlValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
165
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: SelectControlValueAccessor, inputs: { compareWith: "compareWith" }, usesInheritance: true, ngImport: i0 }); }
168
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectControlValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
169
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SelectControlValueAccessor, inputs: { compareWith: "compareWith" }, usesInheritance: true, ngImport: i0 }); }
166
170
  }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectControlValueAccessor, decorators: [{
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectControlValueAccessor, decorators: [{
168
172
  type: Directive
169
173
  }], propDecorators: { compareWith: [{
170
174
  type: Input
@@ -223,10 +227,10 @@ export class NgSelectOption {
223
227
  this._select.writeValue(this._select.value);
224
228
  }
225
229
  }
226
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgSelectOption, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SelectControlValueAccessor, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
227
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NgSelectOption, inputs: { ngValue: "ngValue", value: "value" }, ngImport: i0 }); }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgSelectOption, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SelectControlValueAccessor, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
231
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NgSelectOption, inputs: { ngValue: "ngValue", value: "value" }, ngImport: i0 }); }
228
232
  }
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgSelectOption, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgSelectOption, decorators: [{
230
234
  type: Directive
231
235
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SelectControlValueAccessor, decorators: [{
232
236
  type: Optional
@@ -239,4 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
239
243
  type: Input,
240
244
  args: ['value']
241
245
  }] } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0X2NvbnRyb2xfdmFsdWVfYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uaW1ibGUtYW5ndWxhci9zcmMvdGhpcmRwYXJ0eS9kaXJlY3RpdmVzL3NlbGVjdF9jb250cm9sX3ZhbHVlX2FjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBR0g7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQWtCLFFBQVEsRUFBaUIsU0FBUyxFQUFFLGFBQWEsSUFBSSxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzNLLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUVyRTs7Ozs7O0VBTUU7QUFFRixTQUFTLGlCQUFpQixDQUFDLEVBQWUsRUFBRSxLQUFVO0lBQ3BELElBQUksRUFBRSxJQUFJLElBQUk7UUFBRSxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDbEMsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLEtBQUssR0FBRyxRQUFRLENBQUM7SUFDekQsT0FBTyxHQUFHLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxXQUFtQjtJQUNyQyxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdURHO0FBQ0g7Ozs7Ozs7RUFPRTtBQUVGLE1BQU0sT0FBTywwQkFBMkIsU0FBUSwyQkFBMkI7SUFEM0U7O1FBTUUsZ0JBQWdC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QixTQUFTOzswQkFXSCxRQUFROzswQkFBSSxJQUFJO3lDQVVqQixPQUFPO3NCQURWLEtBQUs7dUJBQUMsU0FBUztnQkFjWixLQUFLO3NCQURSLEtBQUs7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogW05pbWJsZV1cbiAqIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi8xNy4zLjExL3BhY2thZ2VzL2Zvcm1zL3NyYy9kaXJlY3RpdmVzL3NlbGVjdF9jb250cm9sX3ZhbHVlX2FjY2Vzc29yLnRzXG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uczpcbiAqIC0gVXBkYXRlIGltcG9ydHNcbiAqIC0gUmVtb3ZlIGFsbCBjb25maWd1cmF0aW9uIGZyb20gU2VsZWN0Q29udHJvbFZhbHVlQWNjZXNzb3IncyBgQERpcmVjdGl2ZWAgZGVjb3JhdG9yXG4gKiAtIFJlbW92ZSBhbGwgY29uZmlndXJhdGlvbiBmcm9tIE5nU2VsZWN0T3B0aW9uJ3MgYEBEaXJlY3RpdmVgIGRlY29yYXRvclxuICogLSBVcGRhdGUgdmFsaWRhdGlvbiB3aXRoaW4gYGNvbXBhcmVXaXRoYCB0byB1c2UgcHVibGljIEFQSXNcbiAqL1xuXG5cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdCwgSW5wdXQsIHR5cGUgT25EZXN0cm95LCBPcHRpb25hbCwgdHlwZSBQcm92aWRlciwgUmVuZGVyZXIyLCDJtVJ1bnRpbWVFcnJvciBhcyBSdW50aW1lRXJyb3IsIGlzRGV2TW9kZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHtDb250cm9sVmFsdWVBY2Nlc3Nvcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtCdWlsdEluQ29udHJvbFZhbHVlQWNjZXNzb3J9IGZyb20gJy4vY29udHJvbF92YWx1ZV9hY2Nlc3Nvcic7XG5cbi8qIFtOaW1ibGVdIERvIG5vdCByZWdpc3RlciBhcyBhIHZhbHVlIGFjY2Vzc29yIHByb3ZpZGVyXG5jb25zdCBTRUxFQ1RfVkFMVUVfQUNDRVNTT1I6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29udHJvbFZhbHVlQWNjZXNzb3IpLFxuICBtdWx0aTogdHJ1ZVxufTtcbiovXG5cbmZ1bmN0aW9uIF9idWlsZFZhbHVlU3RyaW5nKGlkOiBzdHJpbmd8bnVsbCwgdmFsdWU6IGFueSk6IHN0cmluZyB7XG4gIGlmIChpZCA9PSBudWxsKSByZXR1cm4gYCR7dmFsdWV9YDtcbiAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHZhbHVlID0gJ09iamVjdCc7XG4gIHJldHVybiBgJHtpZH06ICR7dmFsdWV9YC5zbGljZSgwLCA1MCk7XG59XG5cbmZ1bmN0aW9uIF9leHRyYWN0SWQodmFsdWVTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZVN0cmluZy5zcGxpdCgnOicpWzBdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVGhlIGBDb250cm9sVmFsdWVBY2Nlc3NvcmAgZm9yIHdyaXRpbmcgc2VsZWN0IGNvbnRyb2wgdmFsdWVzIGFuZCBsaXN0ZW5pbmcgdG8gc2VsZWN0IGNvbnRyb2xcbiAqIGNoYW5nZXMuIFRoZSB2YWx1ZSBhY2Nlc3NvciBpcyB1c2VkIGJ5IHRoZSBgRm9ybUNvbnRyb2xEaXJlY3RpdmVgLCBgRm9ybUNvbnRyb2xOYW1lYCwgYW5kXG4gKiBgTmdNb2RlbGAgZGlyZWN0aXZlcy5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqICMjIyBVc2luZyBzZWxlY3QgY29udHJvbHMgaW4gYSByZWFjdGl2ZSBmb3JtXG4gKlxuICogVGhlIGZvbGxvd2luZyBleGFtcGxlcyBzaG93IGhvdyB0byB1c2UgYSBzZWxlY3QgY29udHJvbCBpbiBhIHJlYWN0aXZlIGZvcm0uXG4gKlxuICoge0BleGFtcGxlIGZvcm1zL3RzL3JlYWN0aXZlU2VsZWN0Q29udHJvbC9yZWFjdGl2ZV9zZWxlY3RfY29udHJvbF9leGFtcGxlLnRzIHJlZ2lvbj0nQ29tcG9uZW50J31cbiAqXG4gKiAjIyMgVXNpbmcgc2VsZWN0IGNvbnRyb2xzIGluIGEgdGVtcGxhdGUtZHJpdmVuIGZvcm1cbiAqXG4gKiBUbyB1c2UgYSBzZWxlY3QgaW4gYSB0ZW1wbGF0ZS1kcml2ZW4gZm9ybSwgc2ltcGx5IGFkZCBhbiBgbmdNb2RlbGAgYW5kIGEgYG5hbWVgXG4gKiBhdHRyaWJ1dGUgdG8gdGhlIG1haW4gYDxzZWxlY3Q+YCB0YWcuXG4gKlxuICoge0BleGFtcGxlIGZvcm1zL3RzL3NlbGVjdENvbnRyb2wvc2VsZWN0X2NvbnRyb2xfZXhhbXBsZS50cyByZWdpb249J0NvbXBvbmVudCd9XG4gKlxuICogIyMjIEN1c3RvbWl6aW5nIG9wdGlvbiBzZWxlY3Rpb25cbiAqXG4gKiBBbmd1bGFyIHVzZXMgb2JqZWN0IGlkZW50aXR5IHRvIHNlbGVjdCBvcHRpb24uIEl0J3MgcG9zc2libGUgZm9yIHRoZSBpZGVudGl0aWVzIG9mIGl0ZW1zXG4gKiB0byBjaGFuZ2Ugd2hpbGUgdGhlIGRhdGEgZG9lcyBub3QuIFRoaXMgY2FuIGhhcHBlbiwgZm9yIGV4YW1wbGUsIGlmIHRoZSBpdGVtcyBhcmUgcHJvZHVjZWRcbiAqIGZyb20gYW4gUlBDIHRvIHRoZSBzZXJ2ZXIsIGFuZCB0aGF0IFJQQyBpcyByZS1ydW4uIEV2ZW4gaWYgdGhlIGRhdGEgaGFzbid0IGNoYW5nZWQsIHRoZVxuICogc2Vjb25kIHJlc3BvbnNlIHdpbGwgcHJvZHVjZSBvYmplY3RzIHdpdGggZGlmZmVyZW50IGlkZW50aXRpZXMuXG4gKlxuICogVG8gY3VzdG9taXplIHRoZSBkZWZhdWx0IG9wdGlvbiBjb21wYXJpc29uIGFsZ29yaXRobSwgYDxzZWxlY3Q+YCBzdXBwb3J0cyBgY29tcGFyZVdpdGhgIGlucHV0LlxuICogYGNvbXBhcmVXaXRoYCB0YWtlcyBhICoqZnVuY3Rpb24qKiB3aGljaCBoYXMgdHdvIGFyZ3VtZW50czogYG9wdGlvbjFgIGFuZCBgb3B0aW9uMmAuXG4gKiBJZiBgY29tcGFyZVdpdGhgIGlzIGdpdmVuLCBBbmd1bGFyIHNlbGVjdHMgb3B0aW9uIGJ5IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGZ1bmN0aW9uLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBzZWxlY3RlZENvdW50cmllc0NvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAqIGBgYFxuICpcbiAqIGBgYFxuICogPHNlbGVjdCBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCIgIFtmb3JtQ29udHJvbF09XCJzZWxlY3RlZENvdW50cmllc0NvbnRyb2xcIj5cbiAqICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIGNvdW50cmllc1wiIFtuZ1ZhbHVlXT1cImNvdW50cnlcIj5cbiAqICAgICAgICAge3tjb3VudHJ5Lm5hbWV9fVxuICogICAgIDwvb3B0aW9uPlxuICogPC9zZWxlY3Q+XG4gKlxuICogY29tcGFyZUZuKGMxOiBDb3VudHJ5LCBjMjogQ291bnRyeSk6IGJvb2xlYW4ge1xuICogICAgIHJldHVybiBjMSAmJiBjMiA/IGMxLmlkID09PSBjMi5pZCA6IGMxID09PSBjMjtcbiAqIH1cbiAqIGBgYFxuICpcbiAqICoqTm90ZToqKiBXZSBsaXN0ZW4gdG8gdGhlICdjaGFuZ2UnIGV2ZW50IGJlY2F1c2UgJ2lucHV0JyBldmVudHMgYXJlbid0IGZpcmVkXG4gKiBmb3Igc2VsZWN0cyBpbiBJRSwgc2VlOlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hUTUxFbGVtZW50L2lucHV0X2V2ZW50I2Jyb3dzZXJfY29tcGF0aWJpbGl0eVxuICpcbiAqIEBuZ01vZHVsZSBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gKiBAbmdNb2R1bGUgRm9ybXNNb2R1bGVcbiAqIEBwdWJsaWNBcGlcbiAqL1xuLyogW05pbWJsZV0gUmVtb3ZlIGFsbCBjb25maWd1cmF0aW9uIGZyb20gQERpcmVjdGl2ZSBkZWNvcmF0b3JcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjpcbiAgICAgICdzZWxlY3Q6bm90KFttdWx0aXBsZV0pW2Zvcm1Db250cm9sTmFtZV0sc2VsZWN0Om5vdChbbXVsdGlwbGVdKVtmb3JtQ29udHJvbF0sc2VsZWN0Om5vdChbbXVsdGlwbGVdKVtuZ01vZGVsXScsXG4gIGhvc3Q6IHsnKGNoYW5nZSknOiAnb25DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSknLCAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJ30sXG4gIHByb3ZpZGVyczogW1NFTEVDVF9WQUxVRV9BQ0NFU1NPUl1cbn0pXG4qL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29udHJvbFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBCdWlsdEluQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50c1xuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqIEBub2RvYyAqL1xuICB2YWx1ZTogYW55O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX29wdGlvbk1hcDogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfaWRDb3VudGVyOiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVHJhY2tzIHRoZSBvcHRpb24gY29tcGFyaXNvbiBhbGdvcml0aG0gZm9yIHRyYWNraW5nIGlkZW50aXRpZXMgd2hlblxuICAgKiBjaGVja2luZyBmb3IgY2hhbmdlcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBjb21wYXJlV2l0aChmbjogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW4pIHtcbiAgICAvLyBbTmltYmxlXSBVcGRhdGUgdG8gdXNlIHB1YmxpYyBBUElzXG4gICAgLy8gaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJyAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgIC8vICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAgICAvLyAgICAgICBSdW50aW1lRXJyb3JDb2RlLkNPTVBBUkVXSVRIX05PVF9BX0ZOLFxuICAgIC8vICAgICAgIGBjb21wYXJlV2l0aCBtdXN0IGJlIGEgZnVuY3Rpb24sIGJ1dCByZWNlaXZlZCAke0pTT04uc3RyaW5naWZ5KGZuKX1gKTtcbiAgICAvLyB9XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbXBhcmVXaXRoIG11c3QgYmUgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkoZm4pfWApO1xuICAgIH1cbiAgICB0aGlzLl9jb21wYXJlV2l0aCA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcGFyZVdpdGg6IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuID0gT2JqZWN0LmlzO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBcInZhbHVlXCIgcHJvcGVydHkgb24gdGhlIHNlbGVjdCBlbGVtZW50LlxuICAgKiBAbm9kb2NcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICBjb25zdCBpZDogc3RyaW5nfG51bGwgPSB0aGlzLl9nZXRPcHRpb25JZCh2YWx1ZSk7XG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSBfYnVpbGRWYWx1ZVN0cmluZyhpZCwgdmFsdWUpO1xuICAgIHRoaXMuc2V0UHJvcGVydHkoJ3ZhbHVlJywgdmFsdWVTdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHZhbHVlIGNoYW5nZXMuXG4gICAqIEBub2RvY1xuICAgKi9cbiAgb3ZlcnJpZGUgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSAodmFsdWVTdHJpbmc6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX2dldE9wdGlvblZhbHVlKHZhbHVlU3RyaW5nKTtcbiAgICAgIGZuKHRoaXMudmFsdWUpO1xuICAgIH07XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF9yZWdpc3Rlck9wdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5faWRDb3VudGVyKyspLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF9nZXRPcHRpb25JZCh2YWx1ZTogYW55KTogc3RyaW5nfG51bGwge1xuICAgIGZvciAoY29uc3QgaWQgb2YgdGhpcy5fb3B0aW9uTWFwLmtleXMoKSkge1xuICAgICAgaWYgKHRoaXMuX2NvbXBhcmVXaXRoKHRoaXMuX29wdGlvbk1hcC5nZXQoaWQpLCB2YWx1ZSkpIHJldHVybiBpZDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF9nZXRPcHRpb25WYWx1ZSh2YWx1ZVN0cmluZzogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBpZDogc3RyaW5nID0gX2V4dHJhY3RJZCh2YWx1ZVN0cmluZyk7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbk1hcC5oYXMoaWQpID8gdGhpcy5fb3B0aW9uTWFwLmdldChpZCkgOiB2YWx1ZVN0cmluZztcbiAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTWFya3MgYDxvcHRpb24+YCBhcyBkeW5hbWljLCBzbyBBbmd1bGFyIGNhbiBiZSBub3RpZmllZCB3aGVuIG9wdGlvbnMgY2hhbmdlLlxuICpcbiAqIEBzZWUge0BsaW5rIFNlbGVjdENvbnRyb2xWYWx1ZUFjY2Vzc29yfVxuICpcbiAqIEBuZ01vZHVsZSBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gKiBAbmdNb2R1bGUgRm9ybXNNb2R1bGVcbiAqIEBwdWJsaWNBcGlcbiAqL1xuLyogW05pbWJsZV0gUmVtb3ZlIGFsbCBjb25maWd1cmF0aW9uIGZyb20gQERpcmVjdGl2ZSBkZWNvcmF0b3JcbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnb3B0aW9uJ30pXG4qL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmdTZWxlY3RPcHRpb24gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIElEIG9mIHRoZSBvcHRpb24gZWxlbWVudFxuICAgKi9cbiAgLy8gVE9ETyhpc3N1ZS8yNDU3MSk6IHJlbW92ZSAnIScuXG4gIGlkITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSBfc2VsZWN0OiBTZWxlY3RDb250cm9sVmFsdWVBY2Nlc3Nvcikge1xuICAgIGlmICh0aGlzLl9zZWxlY3QpIHRoaXMuaWQgPSB0aGlzLl9zZWxlY3QuX3JlZ2lzdGVyT3B0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRyYWNrcyB0aGUgdmFsdWUgYm91bmQgdG8gdGhlIG9wdGlvbiBlbGVtZW50LiBVbmxpa2UgdGhlIHZhbHVlIGJpbmRpbmcsXG4gICAqIG5nVmFsdWUgc3VwcG9ydHMgYmluZGluZyB0byBvYmplY3RzLlxuICAgKi9cbiAgQElucHV0KCduZ1ZhbHVlJylcbiAgc2V0IG5nVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLl9zZWxlY3QgPT0gbnVsbCkgcmV0dXJuO1xuICAgIHRoaXMuX3NlbGVjdC5fb3B0aW9uTWFwLnNldCh0aGlzLmlkLCB2YWx1ZSk7XG4gICAgdGhpcy5fc2V0RWxlbWVudFZhbHVlKF9idWlsZFZhbHVlU3RyaW5nKHRoaXMuaWQsIHZhbHVlKSk7XG4gICAgdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVHJhY2tzIHNpbXBsZSBzdHJpbmcgdmFsdWVzIGJvdW5kIHRvIHRoZSBvcHRpb24gZWxlbWVudC5cbiAgICogRm9yIG9iamVjdHMsIHVzZSB0aGUgYG5nVmFsdWVgIGlucHV0IGJpbmRpbmcuXG4gICAqL1xuICBASW5wdXQoJ3ZhbHVlJylcbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLl9zZXRFbGVtZW50VmFsdWUodmFsdWUpO1xuICAgIGlmICh0aGlzLl9zZWxlY3QpIHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF9zZXRFbGVtZW50VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0KSB7XG4gICAgICB0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCk7XG4gICAgICB0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpO1xuICAgIH1cbiAgfVxufSJdfQ==
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0X2NvbnRyb2xfdmFsdWVfYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uaW1ibGUtYW5ndWxhci9zcmMvdGhpcmRwYXJ0eS9kaXJlY3RpdmVzL3NlbGVjdF9jb250cm9sX3ZhbHVlX2FjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBR0g7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLElBQUksRUFDSixLQUFLLEVBRUwsUUFBUSxFQUVSLFNBQVMsRUFDVCxhQUFhLElBQUksWUFBWSxFQUM3QixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUNMLDJCQUEyQjtBQUMzQix3QkFBd0I7QUFDeEIscUJBQXFCO0VBQ3RCLE1BQU0sMEJBQTBCLENBQUM7O0FBRWxDOzs7Ozs7RUFNRTtBQUVGLFNBQVMsaUJBQWlCLENBQUMsRUFBaUIsRUFBRSxLQUFVO0lBQ3RELElBQUksRUFBRSxJQUFJLElBQUk7UUFBRSxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDbEMsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLEtBQUssR0FBRyxRQUFRLENBQUM7SUFDekQsT0FBTyxHQUFHLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxXQUFtQjtJQUNyQyxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdURHO0FBQ0g7Ozs7Ozs7RUFPRTtBQUVGLE1BQU0sT0FBTywwQkFDWCxTQUFR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RFUsY0FBYzttR0FBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQUQxQixTQUFTOzswQkFZTCxRQUFROzswQkFBSSxJQUFJO3lDQVdmLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxTQUFTO2dCQWNaLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBbTmltYmxlXVxuICogQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iLzE4LjIuMTMvcGFja2FnZXMvZm9ybXMvc3JjL2RpcmVjdGl2ZXMvc2VsZWN0X2NvbnRyb2xfdmFsdWVfYWNjZXNzb3IudHNcbiAqIHdpdGggdGhlIGZvbGxvd2luZyBtb2RpZmljYXRpb25zOlxuICogLSBVcGRhdGUgaW1wb3J0c1xuICogLSBSZW1vdmUgYWxsIGNvbmZpZ3VyYXRpb24gZnJvbSBTZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvcidzIGBARGlyZWN0aXZlYCBkZWNvcmF0b3JcbiAqIC0gUmVtb3ZlIGFsbCBjb25maWd1cmF0aW9uIGZyb20gTmdTZWxlY3RPcHRpb24ncyBgQERpcmVjdGl2ZWAgZGVjb3JhdG9yXG4gKiAtIFVwZGF0ZSB2YWxpZGF0aW9uIHdpdGhpbiBgY29tcGFyZVdpdGhgIHRvIHVzZSBwdWJsaWMgQVBJc1xuICovXG5cblxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3QsXG4gIElucHV0LFxuICB0eXBlIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIHR5cGUgUHJvdmlkZXIsXG4gIFJlbmRlcmVyMixcbiAgybVSdW50aW1lRXJyb3IgYXMgUnVudGltZUVycm9yLFxuICBpc0Rldk1vZGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBpbXBvcnQge1J1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4uL2Vycm9ycyc7XG5cbmltcG9ydCB0eXBlIHtDb250cm9sVmFsdWVBY2Nlc3Nvcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQnVpbHRJbkNvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgLy8gTkdfVkFMVUVfQUNDRVNTT1IsXG59IGZyb20gJy4vY29udHJvbF92YWx1ZV9hY2Nlc3Nvcic7XG5cbi8qIFtOaW1ibGVdIERvIG5vdCByZWdpc3RlciBhcyBhIHZhbHVlIGFjY2Vzc29yIHByb3ZpZGVyXG5jb25zdCBTRUxFQ1RfVkFMVUVfQUNDRVNTT1I6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29udHJvbFZhbHVlQWNjZXNzb3IpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG4qL1xuXG5mdW5jdGlvbiBfYnVpbGRWYWx1ZVN0cmluZyhpZDogc3RyaW5nIHwgbnVsbCwgdmFsdWU6IGFueSk6IHN0cmluZyB7XG4gIGlmIChpZCA9PSBudWxsKSByZXR1cm4gYCR7dmFsdWV9YDtcbiAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHZhbHVlID0gJ09iamVjdCc7XG4gIHJldHVybiBgJHtpZH06ICR7dmFsdWV9YC5zbGljZSgwLCA1MCk7XG59XG5cbmZ1bmN0aW9uIF9leHRyYWN0SWQodmFsdWVTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZVN0cmluZy5zcGxpdCgnOicpWzBdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVGhlIGBDb250cm9sVmFsdWVBY2Nlc3NvcmAgZm9yIHdyaXRpbmcgc2VsZWN0IGNvbnRyb2wgdmFsdWVzIGFuZCBsaXN0ZW5pbmcgdG8gc2VsZWN0IGNvbnRyb2xcbiAqIGNoYW5nZXMuIFRoZSB2YWx1ZSBhY2Nlc3NvciBpcyB1c2VkIGJ5IHRoZSBgRm9ybUNvbnRyb2xEaXJlY3RpdmVgLCBgRm9ybUNvbnRyb2xOYW1lYCwgYW5kXG4gKiBgTmdNb2RlbGAgZGlyZWN0aXZlcy5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqICMjIyBVc2luZyBzZWxlY3QgY29udHJvbHMgaW4gYSByZWFjdGl2ZSBmb3JtXG4gKlxuICogVGhlIGZvbGxvd2luZyBleGFtcGxlcyBzaG93IGhvdyB0byB1c2UgYSBzZWxlY3QgY29udHJvbCBpbiBhIHJlYWN0aXZlIGZvcm0uXG4gKlxuICoge0BleGFtcGxlIGZvcm1zL3RzL3JlYWN0aXZlU2VsZWN0Q29udHJvbC9yZWFjdGl2ZV9zZWxlY3RfY29udHJvbF9leGFtcGxlLnRzIHJlZ2lvbj0nQ29tcG9uZW50J31cbiAqXG4gKiAjIyMgVXNpbmcgc2VsZWN0IGNvbnRyb2xzIGluIGEgdGVtcGxhdGUtZHJpdmVuIGZvcm1cbiAqXG4gKiBUbyB1c2UgYSBzZWxlY3QgaW4gYSB0ZW1wbGF0ZS1kcml2ZW4gZm9ybSwgc2ltcGx5IGFkZCBhbiBgbmdNb2RlbGAgYW5kIGEgYG5hbWVgXG4gKiBhdHRyaWJ1dGUgdG8gdGhlIG1haW4gYDxzZWxlY3Q+YCB0YWcuXG4gKlxuICoge0BleGFtcGxlIGZvcm1zL3RzL3NlbGVjdENvbnRyb2wvc2VsZWN0X2NvbnRyb2xfZXhhbXBsZS50cyByZWdpb249J0NvbXBvbmVudCd9XG4gKlxuICogIyMjIEN1c3RvbWl6aW5nIG9wdGlvbiBzZWxlY3Rpb25cbiAqXG4gKiBBbmd1bGFyIHVzZXMgb2JqZWN0IGlkZW50aXR5IHRvIHNlbGVjdCBvcHRpb24uIEl0J3MgcG9zc2libGUgZm9yIHRoZSBpZGVudGl0aWVzIG9mIGl0ZW1zXG4gKiB0byBjaGFuZ2Ugd2hpbGUgdGhlIGRhdGEgZG9lcyBub3QuIFRoaXMgY2FuIGhhcHBlbiwgZm9yIGV4YW1wbGUsIGlmIHRoZSBpdGVtcyBhcmUgcHJvZHVjZWRcbiAqIGZyb20gYW4gUlBDIHRvIHRoZSBzZXJ2ZXIsIGFuZCB0aGF0IFJQQyBpcyByZS1ydW4uIEV2ZW4gaWYgdGhlIGRhdGEgaGFzbid0IGNoYW5nZWQsIHRoZVxuICogc2Vjb25kIHJlc3BvbnNlIHdpbGwgcHJvZHVjZSBvYmplY3RzIHdpdGggZGlmZmVyZW50IGlkZW50aXRpZXMuXG4gKlxuICogVG8gY3VzdG9taXplIHRoZSBkZWZhdWx0IG9wdGlvbiBjb21wYXJpc29uIGFsZ29yaXRobSwgYDxzZWxlY3Q+YCBzdXBwb3J0cyBgY29tcGFyZVdpdGhgIGlucHV0LlxuICogYGNvbXBhcmVXaXRoYCB0YWtlcyBhICoqZnVuY3Rpb24qKiB3aGljaCBoYXMgdHdvIGFyZ3VtZW50czogYG9wdGlvbjFgIGFuZCBgb3B0aW9uMmAuXG4gKiBJZiBgY29tcGFyZVdpdGhgIGlzIGdpdmVuLCBBbmd1bGFyIHNlbGVjdHMgb3B0aW9uIGJ5IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGZ1bmN0aW9uLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBzZWxlY3RlZENvdW50cmllc0NvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAqIGBgYFxuICpcbiAqIGBgYFxuICogPHNlbGVjdCBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCIgIFtmb3JtQ29udHJvbF09XCJzZWxlY3RlZENvdW50cmllc0NvbnRyb2xcIj5cbiAqICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIGNvdW50cmllc1wiIFtuZ1ZhbHVlXT1cImNvdW50cnlcIj5cbiAqICAgICAgICAge3tjb3VudHJ5Lm5hbWV9fVxuICogICAgIDwvb3B0aW9uPlxuICogPC9zZWxlY3Q+XG4gKlxuICogY29tcGFyZUZuKGMxOiBDb3VudHJ5LCBjMjogQ291bnRyeSk6IGJvb2xlYW4ge1xuICogICAgIHJldHVybiBjMSAmJiBjMiA/IGMxLmlkID09PSBjMi5pZCA6IGMxID09PSBjMjtcbiAqIH1cbiAqIGBgYFxuICpcbiAqICoqTm90ZToqKiBXZSBsaXN0ZW4gdG8gdGhlICdjaGFuZ2UnIGV2ZW50IGJlY2F1c2UgJ2lucHV0JyBldmVudHMgYXJlbid0IGZpcmVkXG4gKiBmb3Igc2VsZWN0cyBpbiBJRSwgc2VlOlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hUTUxFbGVtZW50L2lucHV0X2V2ZW50I2Jyb3dzZXJfY29tcGF0aWJpbGl0eVxuICpcbiAqIEBuZ01vZHVsZSBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gKiBAbmdNb2R1bGUgRm9ybXNNb2R1bGVcbiAqIEBwdWJsaWNBcGlcbiAqL1xuLyogW05pbWJsZV0gUmVtb3ZlIGFsbCBjb25maWd1cmF0aW9uIGZyb20gQERpcmVjdGl2ZSBkZWNvcmF0b3JcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjpcbiAgICAnc2VsZWN0Om5vdChbbXVsdGlwbGVdKVtmb3JtQ29udHJvbE5hbWVdLHNlbGVjdDpub3QoW211bHRpcGxlXSlbZm9ybUNvbnRyb2xdLHNlbGVjdDpub3QoW211bHRpcGxlXSlbbmdNb2RlbF0nLFxuICBob3N0OiB7JyhjaGFuZ2UpJzogJ29uQ2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpJywgJyhibHVyKSc6ICdvblRvdWNoZWQoKSd9LFxuICBwcm92aWRlcnM6IFtTRUxFQ1RfVkFMVUVfQUNDRVNTT1JdLFxufSlcbiovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvclxuICBleHRlbmRzIEJ1aWx0SW5Db250cm9sVmFsdWVBY2Nlc3NvclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIC8qKiBAbm9kb2MgKi9cbiAgdmFsdWU6IGFueTtcblxuICAvKiogQGludGVybmFsICovXG4gIF9vcHRpb25NYXA6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX2lkQ291bnRlcjogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRyYWNrcyB0aGUgb3B0aW9uIGNvbXBhcmlzb24gYWxnb3JpdGhtIGZvciB0cmFja2luZyBpZGVudGl0aWVzIHdoZW5cbiAgICogY2hlY2tpbmcgZm9yIGNoYW5nZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY29tcGFyZVdpdGgoZm46IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuKSB7XG4gICAgLy8gW05pbWJsZV0gVXBkYXRlIHRvIHVzZSBwdWJsaWMgQVBJc1xuICAgIC8vIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicgJiYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkpIHtcbiAgICAvLyAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgLy8gICAgIFJ1bnRpbWVFcnJvckNvZGUuQ09NUEFSRVdJVEhfTk9UX0FfRk4sXG4gICAgLy8gICAgIGBjb21wYXJlV2l0aCBtdXN0IGJlIGEgZnVuY3Rpb24sIGJ1dCByZWNlaXZlZCAke0pTT04uc3RyaW5naWZ5KGZuKX1gLFxuICAgIC8vICAgKTtcbiAgICAvLyB9XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbXBhcmVXaXRoIG11c3QgYmUgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkoZm4pfWApO1xuICAgIH1cbiAgICB0aGlzLl9jb21wYXJlV2l0aCA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcGFyZVdpdGg6IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuID0gT2JqZWN0LmlzO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBcInZhbHVlXCIgcHJvcGVydHkgb24gdGhlIHNlbGVjdCBlbGVtZW50LlxuICAgKiBAbm9kb2NcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICBjb25zdCBpZDogc3RyaW5nIHwgbnVsbCA9IHRoaXMuX2dldE9wdGlvbklkKHZhbHVlKTtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IF9idWlsZFZhbHVlU3RyaW5nKGlkLCB2YWx1ZSk7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eSgndmFsdWUnLCB2YWx1ZVN0cmluZyk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2wgdmFsdWUgY2hhbmdlcy5cbiAgICogQG5vZG9jXG4gICAqL1xuICBvdmVycmlkZSByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9ICh2YWx1ZVN0cmluZzogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5fZ2V0T3B0aW9uVmFsdWUodmFsdWVTdHJpbmcpO1xuICAgICAgZm4odGhpcy52YWx1ZSk7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX3JlZ2lzdGVyT3B0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLl9pZENvdW50ZXIrKykudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX2dldE9wdGlvbklkKHZhbHVlOiBhbnkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHRoaXMuX29wdGlvbk1hcC5rZXlzKCkpIHtcbiAgICAgIGlmICh0aGlzLl9jb21wYXJlV2l0aCh0aGlzLl9vcHRpb25NYXAuZ2V0KGlkKSwgdmFsdWUpKSByZXR1cm4gaWQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfZ2V0T3B0aW9uVmFsdWUodmFsdWVTdHJpbmc6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgaWQ6IHN0cmluZyA9IF9leHRyYWN0SWQodmFsdWVTdHJpbmcpO1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25NYXAuaGFzKGlkKSA/IHRoaXMuX29wdGlvbk1hcC5nZXQoaWQpIDogdmFsdWVTdHJpbmc7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE1hcmtzIGA8b3B0aW9uPmAgYXMgZHluYW1pYywgc28gQW5ndWxhciBjYW4gYmUgbm90aWZpZWQgd2hlbiBvcHRpb25zIGNoYW5nZS5cbiAqXG4gKiBAc2VlIHtAbGluayBTZWxlY3RDb250cm9sVmFsdWVBY2Nlc3Nvcn1cbiAqXG4gKiBAbmdNb2R1bGUgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICogQG5nTW9kdWxlIEZvcm1zTW9kdWxlXG4gKiBAcHVibGljQXBpXG4gKi9cbi8qIFtOaW1ibGVdIFJlbW92ZSBhbGwgY29uZmlndXJhdGlvbiBmcm9tIEBEaXJlY3RpdmUgZGVjb3JhdG9yXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ29wdGlvbid9KVxuKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIE5nU2VsZWN0T3B0aW9uIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJRCBvZiB0aGUgb3B0aW9uIGVsZW1lbnRcbiAgICovXG4gIC8vIFRPRE8oaXNzdWUvMjQ1NzEpOiByZW1vdmUgJyEnLlxuICBpZCE6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIF9zZWxlY3Q6IFNlbGVjdENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICApIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0KSB0aGlzLmlkID0gdGhpcy5fc2VsZWN0Ll9yZWdpc3Rlck9wdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUcmFja3MgdGhlIHZhbHVlIGJvdW5kIHRvIHRoZSBvcHRpb24gZWxlbWVudC4gVW5saWtlIHRoZSB2YWx1ZSBiaW5kaW5nLFxuICAgKiBuZ1ZhbHVlIHN1cHBvcnRzIGJpbmRpbmcgdG8gb2JqZWN0cy5cbiAgICovXG4gIEBJbnB1dCgnbmdWYWx1ZScpXG4gIHNldCBuZ1ZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0ID09IG51bGwpIHJldHVybjtcbiAgICB0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5zZXQodGhpcy5pZCwgdmFsdWUpO1xuICAgIHRoaXMuX3NldEVsZW1lbnRWYWx1ZShfYnVpbGRWYWx1ZVN0cmluZyh0aGlzLmlkLCB2YWx1ZSkpO1xuICAgIHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRyYWNrcyBzaW1wbGUgc3RyaW5nIHZhbHVlcyBib3VuZCB0byB0aGUgb3B0aW9uIGVsZW1lbnQuXG4gICAqIEZvciBvYmplY3RzLCB1c2UgdGhlIGBuZ1ZhbHVlYCBpbnB1dCBiaW5kaW5nLlxuICAgKi9cbiAgQElucHV0KCd2YWx1ZScpXG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fc2V0RWxlbWVudFZhbHVlKHZhbHVlKTtcbiAgICBpZiAodGhpcy5fc2VsZWN0KSB0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfc2V0RWxlbWVudFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBAbm9kb2MgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3NlbGVjdCkge1xuICAgICAgdGhpcy5fc2VsZWN0Ll9vcHRpb25NYXAuZGVsZXRlKHRoaXMuaWQpO1xuICAgICAgdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKTtcbiAgICB9XG4gIH1cbn0iXX0=
@@ -17,10 +17,10 @@ export class NimbleUnitByteDirective {
17
17
  this.renderer = renderer;
18
18
  this.elementRef = elementRef;
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitByteDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NimbleUnitByteDirective, selector: "nimble-unit-byte", inputs: { binary: "binary" }, ngImport: i0 }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitByteDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NimbleUnitByteDirective, selector: "nimble-unit-byte", inputs: { binary: "binary" }, ngImport: i0 }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitByteDirective, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitByteDirective, decorators: [{
24
24
  type: Directive,
25
25
  args: [{
26
26
  selector: 'nimble-unit-byte'
@@ -4,11 +4,11 @@ import { NimbleUnitByteDirective } from './nimble-unit-byte.directive';
4
4
  import '@ni/nimble-components/dist/esm/unit/byte';
5
5
  import * as i0 from "@angular/core";
6
6
  export class NimbleUnitByteModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitByteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitByteModule, declarations: [NimbleUnitByteDirective], imports: [CommonModule], exports: [NimbleUnitByteDirective] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitByteModule, imports: [CommonModule] }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitByteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitByteModule, declarations: [NimbleUnitByteDirective], imports: [CommonModule], exports: [NimbleUnitByteDirective] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitByteModule, imports: [CommonModule] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitByteModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitByteModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [NimbleUnitByteDirective],
@@ -6,10 +6,10 @@ export { unitCelsiusTag };
6
6
  * Directive to provide Angular integration for the Celsius unit element used by the number-text column.
7
7
  */
8
8
  export class NimbleUnitCelsiusDirective {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitCelsiusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NimbleUnitCelsiusDirective, selector: "nimble-unit-celsius", ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitCelsiusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NimbleUnitCelsiusDirective, selector: "nimble-unit-celsius", ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitCelsiusDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitCelsiusDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: 'nimble-unit-celsius'
@@ -4,11 +4,11 @@ import { NimbleUnitCelsiusDirective } from './nimble-unit-celsius.directive';
4
4
  import '@ni/nimble-components/dist/esm/unit/celsius';
5
5
  import * as i0 from "@angular/core";
6
6
  export class NimbleUnitCelsiusModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitCelsiusModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitCelsiusModule, declarations: [NimbleUnitCelsiusDirective], imports: [CommonModule], exports: [NimbleUnitCelsiusDirective] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitCelsiusModule, imports: [CommonModule] }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitCelsiusModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitCelsiusModule, declarations: [NimbleUnitCelsiusDirective], imports: [CommonModule], exports: [NimbleUnitCelsiusDirective] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitCelsiusModule, imports: [CommonModule] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitCelsiusModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitCelsiusModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [NimbleUnitCelsiusDirective],
@@ -6,10 +6,10 @@ export { unitFahrenheitTag };
6
6
  * Directive to provide Angular integration for the Fahrenheit unit element used by the number-text column.
7
7
  */
8
8
  export class NimbleUnitFahrenheitDirective {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitFahrenheitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NimbleUnitFahrenheitDirective, selector: "nimble-unit-fahrenheit", ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitFahrenheitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NimbleUnitFahrenheitDirective, selector: "nimble-unit-fahrenheit", ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitFahrenheitDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitFahrenheitDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: 'nimble-unit-fahrenheit'
@@ -4,11 +4,11 @@ import { NimbleUnitFahrenheitDirective } from './nimble-unit-fahrenheit.directiv
4
4
  import '@ni/nimble-components/dist/esm/unit/fahrenheit';
5
5
  import * as i0 from "@angular/core";
6
6
  export class NimbleUnitFahrenheitModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitFahrenheitModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitFahrenheitModule, declarations: [NimbleUnitFahrenheitDirective], imports: [CommonModule], exports: [NimbleUnitFahrenheitDirective] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitFahrenheitModule, imports: [CommonModule] }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitFahrenheitModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitFahrenheitModule, declarations: [NimbleUnitFahrenheitDirective], imports: [CommonModule], exports: [NimbleUnitFahrenheitDirective] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitFahrenheitModule, imports: [CommonModule] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NimbleUnitFahrenheitModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NimbleUnitFahrenheitModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [NimbleUnitFahrenheitDirective],