@clr/angular 13.9.0 → 13.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/accordion/accordion-panel.d.ts +2 -2
  2. package/accordion/stepper/stepper-panel.d.ts +2 -2
  3. package/button/button-group/button-group.d.ts +2 -2
  4. package/clarity.api.md +49 -44
  5. package/data/datagrid/datagrid-action-overflow.d.ts +2 -2
  6. package/data/datagrid/datagrid-column-separator.d.ts +1 -1
  7. package/data/datagrid/datagrid-column-toggle.d.ts +2 -6
  8. package/data/datagrid/datagrid-filter.d.ts +2 -2
  9. package/data/datagrid/datagrid.d.ts +1 -1
  10. package/data/datagrid/providers/selection.d.ts +1 -3
  11. package/data/stack-view/stack-block.d.ts +3 -3
  12. package/data/stack-view/stack-content-input.d.ts +0 -1
  13. package/data/stack-view/stack-view-custom-tags.d.ts +0 -2
  14. package/data/tree-view/tree-node.d.ts +3 -3
  15. package/esm2020/accordion/accordion-panel.mjs +9 -12
  16. package/esm2020/accordion/stepper/stepper-panel.mjs +7 -11
  17. package/esm2020/button/button-group/button-group.mjs +7 -12
  18. package/esm2020/button/button-group/button.mjs +1 -1
  19. package/esm2020/button/button-loading/loading-button.mjs +1 -1
  20. package/esm2020/data/datagrid/built-in/comparators/datagrid-property-comparator.mjs +1 -1
  21. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.mjs +1 -1
  22. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +1 -1
  23. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter-impl.mjs +1 -1
  24. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +1 -1
  25. package/esm2020/data/datagrid/built-in/nested-property.mjs +1 -1
  26. package/esm2020/data/datagrid/datagrid-action-overflow.mjs +8 -11
  27. package/esm2020/data/datagrid/datagrid-cell.mjs +1 -1
  28. package/esm2020/data/datagrid/datagrid-column-separator.mjs +6 -10
  29. package/esm2020/data/datagrid/datagrid-column-toggle.mjs +9 -22
  30. package/esm2020/data/datagrid/datagrid-column.mjs +1 -1
  31. package/esm2020/data/datagrid/datagrid-detail.mjs +1 -1
  32. package/esm2020/data/datagrid/datagrid-filter.mjs +7 -10
  33. package/esm2020/data/datagrid/datagrid-footer.mjs +1 -1
  34. package/esm2020/data/datagrid/datagrid-hideable-column.mjs +1 -1
  35. package/esm2020/data/datagrid/datagrid-if-detail.mjs +1 -1
  36. package/esm2020/data/datagrid/datagrid-items.mjs +1 -1
  37. package/esm2020/data/datagrid/datagrid-pagination.mjs +1 -1
  38. package/esm2020/data/datagrid/datagrid-placeholder.mjs +1 -1
  39. package/esm2020/data/datagrid/datagrid-row-detail.mjs +1 -1
  40. package/esm2020/data/datagrid/datagrid-row.mjs +1 -1
  41. package/esm2020/data/datagrid/datagrid.mjs +5 -9
  42. package/esm2020/data/datagrid/providers/column-resizer.service.mjs +1 -1
  43. package/esm2020/data/datagrid/providers/detail.service.mjs +1 -1
  44. package/esm2020/data/datagrid/providers/display-mode.service.mjs +1 -1
  45. package/esm2020/data/datagrid/providers/filters.mjs +1 -1
  46. package/esm2020/data/datagrid/providers/global-expandable-rows.mjs +1 -1
  47. package/esm2020/data/datagrid/providers/items.mjs +1 -1
  48. package/esm2020/data/datagrid/providers/page.mjs +1 -1
  49. package/esm2020/data/datagrid/providers/row-action-service.mjs +1 -1
  50. package/esm2020/data/datagrid/providers/selection.mjs +4 -5
  51. package/esm2020/data/datagrid/providers/sort.mjs +1 -1
  52. package/esm2020/data/datagrid/providers/state-debouncer.provider.mjs +1 -1
  53. package/esm2020/data/datagrid/providers/table-size.service.mjs +1 -1
  54. package/esm2020/data/datagrid/render/header-renderer.mjs +1 -1
  55. package/esm2020/data/datagrid/render/main-renderer.mjs +1 -1
  56. package/esm2020/data/datagrid/render/render-organizer.mjs +1 -1
  57. package/esm2020/data/datagrid/render/row-renderer.mjs +1 -1
  58. package/esm2020/data/datagrid/utils/datagrid-filter-registrar.mjs +1 -1
  59. package/esm2020/data/stack-view/stack-block.mjs +7 -11
  60. package/esm2020/data/stack-view/stack-content-input.mjs +7 -10
  61. package/esm2020/data/stack-view/stack-view-custom-tags.mjs +8 -13
  62. package/esm2020/data/tree-view/tree-focus-manager.service.mjs +1 -1
  63. package/esm2020/data/tree-view/tree-node.mjs +7 -20
  64. package/esm2020/emphasis/alert/alerts.mjs +1 -1
  65. package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +1 -1
  66. package/esm2020/emphasis/alert/providers/multi-alert.service.mjs +1 -1
  67. package/esm2020/forms/checkbox/checkbox-container.mjs +1 -1
  68. package/esm2020/forms/combobox/combobox.mjs +19 -20
  69. package/esm2020/forms/combobox/option-items.directive.mjs +1 -1
  70. package/esm2020/forms/combobox/option.mjs +8 -13
  71. package/esm2020/forms/combobox/options.mjs +10 -19
  72. package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +4 -9
  73. package/esm2020/forms/combobox/providers/option-selection.service.mjs +1 -1
  74. package/esm2020/forms/common/abstract-control.mjs +1 -1
  75. package/esm2020/forms/common/providers/container-id.service.mjs +1 -1
  76. package/esm2020/forms/common/providers/control-id.service.mjs +1 -1
  77. package/esm2020/forms/common/wrapped-control.mjs +1 -8
  78. package/esm2020/forms/datalist/providers/datalist-id.service.mjs +1 -1
  79. package/esm2020/forms/datepicker/date-container.mjs +1 -1
  80. package/esm2020/forms/datepicker/date-input.mjs +1 -1
  81. package/esm2020/forms/datepicker/date-input.validator.mjs +40 -0
  82. package/esm2020/forms/datepicker/datepicker.module.mjs +5 -1
  83. package/esm2020/forms/datepicker/day.mjs +1 -1
  84. package/esm2020/forms/datepicker/index.mjs +2 -1
  85. package/esm2020/forms/datepicker/model/calendar.model.mjs +1 -1
  86. package/esm2020/forms/datepicker/model/day.model.mjs +1 -1
  87. package/esm2020/forms/datepicker/providers/date-form-control.service.mjs +1 -1
  88. package/esm2020/forms/datepicker/providers/date-io.service.mjs +1 -1
  89. package/esm2020/forms/datepicker/providers/date-navigation.service.mjs +1 -1
  90. package/esm2020/forms/datepicker/yearpicker.mjs +1 -10
  91. package/esm2020/forms/radio/radio-container.mjs +1 -1
  92. package/esm2020/layout/nav/aria-current-link.mjs +1 -1
  93. package/esm2020/layout/nav/providers/responsive-navigation.service.mjs +1 -1
  94. package/esm2020/layout/nav/responsive-nav-codes.mjs +1 -1
  95. package/esm2020/layout/tabs/tab-content.mjs +6 -14
  96. package/esm2020/layout/tabs/tab-link.directive.mjs +6 -14
  97. package/esm2020/layout/tabs/tab.mjs +3 -4
  98. package/esm2020/layout/vertical-nav/providers/vertical-nav-group-registration.service.mjs +1 -1
  99. package/esm2020/modal/modal.mjs +9 -12
  100. package/esm2020/popover/common/abstract-popover.mjs +1 -1
  101. package/esm2020/popover/common/popover.mjs +1 -1
  102. package/esm2020/popover/dropdown/dropdown-item.mjs +1 -1
  103. package/esm2020/popover/dropdown/dropdown-trigger.mjs +1 -1
  104. package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +6 -9
  105. package/esm2020/popover/signpost/signpost-content.mjs +8 -12
  106. package/esm2020/popover/signpost/signpost-trigger.mjs +1 -1
  107. package/esm2020/popover/signpost/signpost.mjs +1 -1
  108. package/esm2020/popover/tooltip/tooltip-content.mjs +5 -9
  109. package/esm2020/popover/tooltip/tooltip-trigger.mjs +1 -1
  110. package/esm2020/popover/tooltip/tooltip.mjs +3 -18
  111. package/esm2020/timeline/providers/timeline-icon-attribute.service.mjs +1 -1
  112. package/esm2020/timeline/timeline-step.mjs +1 -1
  113. package/esm2020/utils/a11y/aria-live.service.mjs +1 -1
  114. package/esm2020/utils/chocolate/willy-wonka.mjs +1 -1
  115. package/esm2020/utils/conditional/if-active.directive.mjs +1 -1
  116. package/esm2020/utils/conditional/if-active.service.mjs +1 -1
  117. package/esm2020/utils/conditional/if-expanded.service.mjs +1 -1
  118. package/esm2020/utils/conditional/if-open.directive.mjs +1 -1
  119. package/esm2020/utils/drag-and-drop/drag-event.mjs +1 -1
  120. package/esm2020/utils/drag-and-drop/draggable/draggable.mjs +1 -1
  121. package/esm2020/utils/drag-and-drop/providers/drag-event-listener.service.mjs +1 -1
  122. package/esm2020/utils/drag-and-drop/providers/drag-handle-registrar.service.mjs +1 -1
  123. package/esm2020/utils/drag-and-drop/providers/draggable-snapshot.service.mjs +1 -1
  124. package/esm2020/utils/focus/focus.service.mjs +1 -1
  125. package/esm2020/utils/focus/focusable-item/basic-focusable-item.service.mjs +7 -11
  126. package/esm2020/utils/focus/focusable-item/custom-focusable-item-provider.mjs +1 -3
  127. package/esm2020/utils/focus-trap/focus-trap.directive.mjs +1 -1
  128. package/esm2020/utils/id-generator/id-generator.service.mjs +1 -7
  129. package/esm2020/utils/loading/loading.mjs +1 -1
  130. package/esm2020/utils/popover/popover-content.mjs +1 -1
  131. package/esm2020/utils/popover/providers/popover-events.service.mjs +1 -1
  132. package/esm2020/utils/popover/providers/popover-position.service.mjs +1 -1
  133. package/esm2020/utils/popover/providers/popover-toggle.service.mjs +1 -1
  134. package/esm2020/wizard/providers/button-hub.service.mjs +1 -1
  135. package/esm2020/wizard/providers/header-actions.service.mjs +1 -1
  136. package/esm2020/wizard/providers/page-collection.service.mjs +1 -1
  137. package/esm2020/wizard/providers/wizard-navigation.service.mjs +1 -1
  138. package/esm2020/wizard/wizard-button.mjs +1 -1
  139. package/esm2020/wizard/wizard-header-action.mjs +1 -1
  140. package/esm2020/wizard/wizard-page.mjs +1 -1
  141. package/esm2020/wizard/wizard-stepnav-item.mjs +1 -1
  142. package/esm2020/wizard/wizard.mjs +8 -23
  143. package/fesm2015/clr-angular.mjs +414 -561
  144. package/fesm2015/clr-angular.mjs.map +1 -1
  145. package/fesm2020/clr-angular.mjs +421 -560
  146. package/fesm2020/clr-angular.mjs.map +1 -1
  147. package/forms/combobox/combobox.d.ts +4 -5
  148. package/forms/combobox/option.d.ts +1 -2
  149. package/forms/combobox/options.d.ts +3 -6
  150. package/forms/combobox/providers/combobox-focus-handler.service.d.ts +2 -6
  151. package/forms/datepicker/date-input.validator.d.ts +10 -0
  152. package/forms/datepicker/datepicker.module.d.ts +14 -13
  153. package/forms/datepicker/index.d.ts +1 -0
  154. package/forms/datepicker/yearpicker.d.ts +0 -2
  155. package/layout/tabs/tab-content.d.ts +2 -5
  156. package/layout/tabs/tab-link.directive.d.ts +2 -5
  157. package/modal/modal.d.ts +1 -1
  158. package/package.json +1 -1
  159. package/popover/dropdown/providers/dropdown-focus-handler.service.d.ts +4 -7
  160. package/popover/signpost/signpost-content.d.ts +3 -3
  161. package/popover/tooltip/tooltip-content.d.ts +2 -3
  162. package/utils/focus/focusable-item/basic-focusable-item.service.d.ts +4 -7
  163. package/utils/focus/focusable-item/custom-focusable-item-provider.d.ts +1 -4
  164. package/utils/id-generator/id-generator.service.d.ts +0 -6
  165. package/wizard/wizard.d.ts +2 -2
  166. package/esm2020/utils/aria/aria.service.mjs +0 -16
  167. package/utils/aria/aria.service.d.ts +0 -8
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
97
97
  type: Output,
98
98
  args: ['clrCurrentAlertChange']
99
99
  }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZW1waGFzaXMvYWxlcnQvYWxlcnRzLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZW1waGFzaXMvYWxlcnQvYWxlcnRzLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBZXBFLE1BQU0sT0FBTyxTQUFTO0lBeURwQixZQUFtQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXhEL0Msa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBaUJFLDRCQUF1QixHQUFHLElBQUksWUFBWSxDQUFTLEtBQUssQ0FBQyxDQUFDO1FBcUIvRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksQ0FBVyxLQUFLLENBQUMsQ0FBQztJQWtCckMsQ0FBQztJQXREM0QsSUFDSSxTQUFTLENBQUMsS0FBMEI7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLGtCQUFrQixDQUFDLEtBQWE7UUFDekMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBSUQsSUFBSSxpQkFBaUIsQ0FBQyxLQUFhO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxZQUFZLENBQUMsS0FBZTtRQUM5QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQztJQUM3QyxDQUFDO0lBR0Q7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25DLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7U0FDdEQ7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFJRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7dUdBdkVVLFNBQVM7MkZBQVQsU0FBUyx1akJBVlQsQ0FBQyxpQkFBaUIsQ0FBQyxvREFhYixRQUFRLDZCQ3JDM0IsNllBUUE7NEZEMEJhLFNBQVM7a0JBYnJCLFNBQVM7K0JBQ0UsWUFBWSxhQUVYLENBQUMsaUJBQWlCLENBQUMsUUFDeEI7d0JBQ0osZ0JBQWdCLEVBQUUsTUFBTTt3QkFDeEIsc0JBQXNCLEVBQUUsbUNBQW1DO3dCQUMzRCxvQkFBb0IsRUFBRSxpQ0FBaUM7d0JBQ3ZELHVCQUF1QixFQUFFLG9DQUFvQzt3QkFDN0QsdUJBQXVCLEVBQUUsb0NBQW9DO3FCQUM5RCxVQUNPLENBQUMsMEJBQTBCLENBQUM7d0dBTWhDLFNBQVM7c0JBRFosZUFBZTt1QkFBQyxRQUFRO2dCQVNkLGtCQUFrQjtzQkFENUIsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBT2dCLHVCQUF1QjtzQkFBbkUsTUFBTTt1QkFBQyw0QkFBNEI7Z0JBYWhDLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBU2dCLGtCQUFrQjtzQkFBekQsTUFBTTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbHJBbGVydCB9IGZyb20gJy4vYWxlcnQnO1xuaW1wb3J0IHsgTXVsdGlBbGVydFNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9tdWx0aS1hbGVydC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWFsZXJ0cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydHMuaHRtbCcsXG4gIHByb3ZpZGVyczogW011bHRpQWxlcnRTZXJ2aWNlXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuYWxlcnRzXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmFsZXJ0LWRhbmdlcl0nOiBcInRoaXMuY3VycmVudEFsZXJ0VHlwZSA9PSAnZGFuZ2VyJ1wiLFxuICAgICdbY2xhc3MuYWxlcnQtaW5mb10nOiBcInRoaXMuY3VycmVudEFsZXJ0VHlwZSA9PSAnaW5mbydcIixcbiAgICAnW2NsYXNzLmFsZXJ0LXN1Y2Nlc3NdJzogXCJ0aGlzLmN1cnJlbnRBbGVydFR5cGUgPT0gJ3N1Y2Nlc3MnXCIsXG4gICAgJ1tjbGFzcy5hbGVydC13YXJuaW5nXSc6IFwidGhpcy5jdXJyZW50QWxlcnRUeXBlID09ICd3YXJuaW5nJ1wiLFxuICB9LFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jayB9J10sXG59KVxuZXhwb3J0IGNsYXNzIENsckFsZXJ0cyBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBAQ29udGVudENoaWxkcmVuKENsckFsZXJ0KVxuICBzZXQgYWxsQWxlcnRzKHZhbHVlOiBRdWVyeUxpc3Q8Q2xyQWxlcnQ+KSB7XG4gICAgdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5tYW5hZ2UodmFsdWUpOyAvLyBwcm92aWRlIGFsZXJ0c1xuICB9XG5cbiAgLyoqXG4gICAqIElucHV0L091dHB1dCB0byBzdXBwb3J0IHR3byB3YXkgYmluZGluZyBvbiBjdXJyZW50IGFsZXJ0IGluZGV4XG4gICAqL1xuICBASW5wdXQoJ2NsckN1cnJlbnRBbGVydEluZGV4JylcbiAgcHVibGljIHNldCBfaW5wdXRDdXJyZW50SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGluZGV4KSAmJiBpbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnQgPSBpbmRleDtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCdjbHJDdXJyZW50QWxlcnRJbmRleENoYW5nZScpIHB1YmxpYyBjdXJyZW50QWxlcnRJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPihmYWxzZSk7XG5cbiAgc2V0IGN1cnJlbnRBbGVydEluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnQgPSBpbmRleDtcbiAgfVxuICBnZXQgY3VycmVudEFsZXJ0SW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnB1dC9PdXRwdXQgdG8gc3VwcG9ydCB0d28gd2F5IGJpbmRpbmcgb24gY3VycmVudCBhbGVydCBpbnN0YW5jZVxuICAgKi9cbiAgQElucHV0KCdjbHJDdXJyZW50QWxlcnQnKVxuICBzZXQgY3VycmVudEFsZXJ0KGFsZXJ0OiBDbHJBbGVydCkge1xuICAgIGlmIChhbGVydCkge1xuICAgICAgdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQgPSBhbGVydDtcbiAgICB9XG4gIH1cbiAgZ2V0IGN1cnJlbnRBbGVydCgpIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQ7XG4gIH1cbiAgQE91dHB1dCgnY2xyQ3VycmVudEFsZXJ0Q2hhbmdlJykgcHVibGljIGN1cnJlbnRBbGVydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2xyQWxlcnQ+KGZhbHNlKTtcblxuICAvKipcbiAgICogRW5zdXJlIHdlIGFyZSBvbmx5IGRlYWxpbmcgd2l0aCBhbGVydHMgdGhhdCBoYXZlIG5vdCBiZWVuIGNsb3NlZCB5ZXRcbiAgICovXG4gIGdldCBhbGVydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsQWxlcnRzLmZpbHRlcihhbGVydCA9PiB7XG4gICAgICByZXR1cm4gYWxlcnQuaGlkZGVuID09PSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBjdXJyZW50QWxlcnRUeXBlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFsZXJ0KSB7XG4gICAgICByZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQuYWxlcnRUeXBlO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbXVsdGlBbGVydFNlcnZpY2U6IE11bHRpQWxlcnRTZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY2hhbmdlcy5zdWJzY3JpYmUoaW5kZXggPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRBbGVydEluZGV4Q2hhbmdlLm5leHQoaW5kZXgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRBbGVydENoYW5nZS5uZXh0KHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFsZXJ0KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAgfiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICB+IFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAgLS0+XG5cbjxjbHItYWxlcnRzLXBhZ2VyICpuZ0lmPVwibXVsdGlBbGVydFNlcnZpY2UuY291bnQgPiAxXCIgW2NsckN1cnJlbnRBbGVydEluZGV4XT1cImN1cnJlbnRBbGVydEluZGV4XCI+PC9jbHItYWxlcnRzLXBhZ2VyPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWFsZXJ0XCI+PC9uZy1jb250ZW50PlxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZW1waGFzaXMvYWxlcnQvYWxlcnRzLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZW1waGFzaXMvYWxlcnQvYWxlcnRzLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBZXBFLE1BQU0sT0FBTyxTQUFTO0lBeURwQixZQUFtQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXhEL0Msa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBaUJMLDRCQUF1QixHQUFHLElBQUksWUFBWSxDQUFTLEtBQUssQ0FBQyxDQUFDO1FBcUIvRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksQ0FBVyxLQUFLLENBQUMsQ0FBQztJQWtCOUIsQ0FBQztJQXREM0QsSUFDSSxTQUFTLENBQUMsS0FBMEI7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLGtCQUFrQixDQUFDLEtBQWE7UUFDbEMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBSUQsSUFBSSxpQkFBaUIsQ0FBQyxLQUFhO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxZQUFZLENBQUMsS0FBZTtRQUM5QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQztJQUM3QyxDQUFDO0lBR0Q7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25DLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7U0FDdEQ7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFJRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7dUdBdkVVLFNBQVM7MkZBQVQsU0FBUyx1akJBVlQsQ0FBQyxpQkFBaUIsQ0FBQyxvREFhYixRQUFRLDZCQ3JDM0IsNllBUUE7NEZEMEJhLFNBQVM7a0JBYnJCLFNBQVM7K0JBQ0UsWUFBWSxhQUVYLENBQUMsaUJBQWlCLENBQUMsUUFDeEI7d0JBQ0osZ0JBQWdCLEVBQUUsTUFBTTt3QkFDeEIsc0JBQXNCLEVBQUUsbUNBQW1DO3dCQUMzRCxvQkFBb0IsRUFBRSxpQ0FBaUM7d0JBQ3ZELHVCQUF1QixFQUFFLG9DQUFvQzt3QkFDN0QsdUJBQXVCLEVBQUUsb0NBQW9DO3FCQUM5RCxVQUNPLENBQUMsMEJBQTBCLENBQUM7d0dBTWhDLFNBQVM7c0JBRFosZUFBZTt1QkFBQyxRQUFRO2dCQVNyQixrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMsc0JBQXNCO2dCQU9TLHVCQUF1QjtzQkFBNUQsTUFBTTt1QkFBQyw0QkFBNEI7Z0JBYWhDLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBU1Msa0JBQWtCO3NCQUFsRCxNQUFNO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENsckFsZXJ0IH0gZnJvbSAnLi9hbGVydCc7XG5pbXBvcnQgeyBNdWx0aUFsZXJ0U2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL211bHRpLWFsZXJ0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItYWxlcnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0cy5odG1sJyxcbiAgcHJvdmlkZXJzOiBbTXVsdGlBbGVydFNlcnZpY2VdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5hbGVydHNdJzogJ3RydWUnLFxuICAgICdbY2xhc3MuYWxlcnQtZGFuZ2VyXSc6IFwidGhpcy5jdXJyZW50QWxlcnRUeXBlID09ICdkYW5nZXInXCIsXG4gICAgJ1tjbGFzcy5hbGVydC1pbmZvXSc6IFwidGhpcy5jdXJyZW50QWxlcnRUeXBlID09ICdpbmZvJ1wiLFxuICAgICdbY2xhc3MuYWxlcnQtc3VjY2Vzc10nOiBcInRoaXMuY3VycmVudEFsZXJ0VHlwZSA9PSAnc3VjY2VzcydcIixcbiAgICAnW2NsYXNzLmFsZXJ0LXdhcm5pbmddJzogXCJ0aGlzLmN1cnJlbnRBbGVydFR5cGUgPT0gJ3dhcm5pbmcnXCIsXG4gIH0sXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrIH0nXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyQWxlcnRzIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQ2xyQWxlcnQpXG4gIHNldCBhbGxBbGVydHModmFsdWU6IFF1ZXJ5TGlzdDxDbHJBbGVydD4pIHtcbiAgICB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLm1hbmFnZSh2YWx1ZSk7IC8vIHByb3ZpZGUgYWxlcnRzXG4gIH1cblxuICAvKipcbiAgICogSW5wdXQvT3V0cHV0IHRvIHN1cHBvcnQgdHdvIHdheSBiaW5kaW5nIG9uIGN1cnJlbnQgYWxlcnQgaW5kZXhcbiAgICovXG4gIEBJbnB1dCgnY2xyQ3VycmVudEFsZXJ0SW5kZXgnKVxuICBzZXQgX2lucHV0Q3VycmVudEluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcihpbmRleCkgJiYgaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50ID0gaW5kZXg7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgnY2xyQ3VycmVudEFsZXJ0SW5kZXhDaGFuZ2UnKSBjdXJyZW50QWxlcnRJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPihmYWxzZSk7XG5cbiAgc2V0IGN1cnJlbnRBbGVydEluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnQgPSBpbmRleDtcbiAgfVxuICBnZXQgY3VycmVudEFsZXJ0SW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnB1dC9PdXRwdXQgdG8gc3VwcG9ydCB0d28gd2F5IGJpbmRpbmcgb24gY3VycmVudCBhbGVydCBpbnN0YW5jZVxuICAgKi9cbiAgQElucHV0KCdjbHJDdXJyZW50QWxlcnQnKVxuICBzZXQgY3VycmVudEFsZXJ0KGFsZXJ0OiBDbHJBbGVydCkge1xuICAgIGlmIChhbGVydCkge1xuICAgICAgdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQgPSBhbGVydDtcbiAgICB9XG4gIH1cbiAgZ2V0IGN1cnJlbnRBbGVydCgpIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQ7XG4gIH1cbiAgQE91dHB1dCgnY2xyQ3VycmVudEFsZXJ0Q2hhbmdlJykgY3VycmVudEFsZXJ0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDbHJBbGVydD4oZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBFbnN1cmUgd2UgYXJlIG9ubHkgZGVhbGluZyB3aXRoIGFsZXJ0cyB0aGF0IGhhdmUgbm90IGJlZW4gY2xvc2VkIHlldFxuICAgKi9cbiAgZ2V0IGFsZXJ0cygpIHtcbiAgICByZXR1cm4gdGhpcy5hbGxBbGVydHMuZmlsdGVyKGFsZXJ0ID0+IHtcbiAgICAgIHJldHVybiBhbGVydC5oaWRkZW4gPT09IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRBbGVydFR5cGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQpIHtcbiAgICAgIHJldHVybiB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydC5hbGVydFR5cGU7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtdWx0aUFsZXJ0U2VydmljZTogTXVsdGlBbGVydFNlcnZpY2UpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jaGFuZ2VzLnN1YnNjcmliZShpbmRleCA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2UubmV4dChpbmRleCk7XG4gICAgICAgIHRoaXMuY3VycmVudEFsZXJ0Q2hhbmdlLm5leHQodGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmRlc3Ryb3koKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICB+IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gIH4gVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICAtLT5cblxuPGNsci1hbGVydHMtcGFnZXIgKm5nSWY9XCJtdWx0aUFsZXJ0U2VydmljZS5jb3VudCA+IDFcIiBbY2xyQ3VycmVudEFsZXJ0SW5kZXhdPVwiY3VycmVudEFsZXJ0SW5kZXhcIj48L2Nsci1hbGVydHMtcGFnZXI+XG48bmctY29udGVudCBzZWxlY3Q9XCJjbHItYWxlcnRcIj48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -71,4 +71,4 @@ AlertIconAndTypesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
71
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertIconAndTypesService, decorators: [{
72
72
  type: Injectable
73
73
  }], ctorParameters: function () { return [{ type: i1.ClrCommonStringsService }]; } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1hbmQtdHlwZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2VtcGhhc2lzL2FsZXJ0L3Byb3ZpZGVycy9pY29uLWFuZC10eXBlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBR25ELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFBb0IsYUFBc0M7UUFBdEMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBRWxELHFCQUFnQixHQUFHLGFBQWEsQ0FBQztRQUNqQyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixlQUFVLEdBQUcsTUFBTSxDQUFDO0lBSmlDLENBQUM7SUFNOUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxHQUFXO1FBQzVCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjthQUFNLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVNLGdCQUFnQixDQUFDLElBQVk7UUFDbEMsTUFBTSxTQUFTLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXpELFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxTQUFTO2dCQUNaLFNBQVMsQ0FBQyxLQUFLLEdBQUcsc0JBQXNCLENBQUM7Z0JBQ3pDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDO2dCQUNyQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDbEQsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxTQUFTLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDO2dCQUN2QyxTQUFTLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQztnQkFDcEMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ2pELE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osU0FBUyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7Z0JBQ2pDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDO2dCQUNyQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDbEQsTUFBTTtZQUNSO2dCQUNFLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUN4QyxTQUFTLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztnQkFDbEMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLE1BQU07U0FDVDtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O3NIQTdEVSx3QkFBd0I7MEhBQXhCLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaTE4bi9jb21tb24tc3RyaW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0SW5mb09iamVjdCB9IGZyb20gJy4uL3V0aWxzL2FsZXJ0LWluZm8tb2JqZWN0JztcbmltcG9ydCB7IEFMRVJUX1RZUEVTIH0gZnJvbSAnLi4vdXRpbHMvYWxlcnQtdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWxlcnRJY29uQW5kVHlwZXNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSkge31cblxuICBwcml2YXRlIGRlZmF1bHRJY29uU2hhcGUgPSAnaW5mby1jaXJjbGUnO1xuICBwcml2YXRlIF9hbGVydEljb25TaGFwZSA9ICcnO1xuICBwcml2YXRlIF9hbGVydFR5cGUgPSAnaW5mbyc7XG5cbiAgZ2V0IGFsZXJ0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hbGVydFR5cGU7XG4gIH1cbiAgc2V0IGFsZXJ0VHlwZSh2YWw6IHN0cmluZykge1xuICAgIGlmIChBTEVSVF9UWVBFUy5pbmRleE9mKHZhbCkgPiAtMSkge1xuICAgICAgdGhpcy5fYWxlcnRUeXBlID0gdmFsO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhbGVydEljb25TaGFwZSgpOiBzdHJpbmcge1xuICAgIGlmICgnJyA9PT0gdGhpcy5fYWxlcnRJY29uU2hhcGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmljb25JbmZvRnJvbVR5cGUodGhpcy5fYWxlcnRUeXBlKS5zaGFwZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FsZXJ0SWNvblNoYXBlO1xuICB9XG4gIHNldCBhbGVydEljb25TaGFwZSh2YWw6IHN0cmluZykge1xuICAgIGlmICghdmFsKSB7XG4gICAgICB0aGlzLl9hbGVydEljb25TaGFwZSA9ICcnO1xuICAgIH0gZWxzZSBpZiAodmFsICE9PSB0aGlzLl9hbGVydEljb25TaGFwZSkge1xuICAgICAgdGhpcy5fYWxlcnRJY29uU2hhcGUgPSB2YWw7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGFsZXJ0SWNvblRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWNvbkluZm9Gcm9tVHlwZSh0aGlzLl9hbGVydFR5cGUpLnRpdGxlO1xuICB9XG5cbiAgcHVibGljIGljb25JbmZvRnJvbVR5cGUodHlwZTogc3RyaW5nKTogQWxlcnRJbmZvT2JqZWN0IHtcbiAgICBjb25zdCByZXR1cm5PYmogPSB7IHNoYXBlOiAnJywgY3NzQ2xhc3M6ICcnLCB0aXRsZTogJycgfTtcblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgIHJldHVybk9iai5zaGFwZSA9ICdleGNsYW1hdGlvbi10cmlhbmdsZSc7XG4gICAgICAgIHJldHVybk9iai5jc3NDbGFzcyA9ICdhbGVydC13YXJuaW5nJztcbiAgICAgICAgcmV0dXJuT2JqLnRpdGxlID0gdGhpcy5jb21tb25TdHJpbmdzLmtleXMud2FybmluZztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkYW5nZXInOlxuICAgICAgICByZXR1cm5PYmouc2hhcGUgPSAnZXhjbGFtYXRpb24tY2lyY2xlJztcbiAgICAgICAgcmV0dXJuT2JqLmNzc0NsYXNzID0gJ2FsZXJ0LWRhbmdlcic7XG4gICAgICAgIHJldHVybk9iai50aXRsZSA9IHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhbmdlcjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgcmV0dXJuT2JqLnNoYXBlID0gJ2NoZWNrLWNpcmNsZSc7XG4gICAgICAgIHJldHVybk9iai5jc3NDbGFzcyA9ICdhbGVydC1zdWNjZXNzJztcbiAgICAgICAgcmV0dXJuT2JqLnRpdGxlID0gdGhpcy5jb21tb25TdHJpbmdzLmtleXMuc3VjY2VzcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm5PYmouc2hhcGUgPSB0aGlzLmRlZmF1bHRJY29uU2hhcGU7XG4gICAgICAgIHJldHVybk9iai5jc3NDbGFzcyA9ICdhbGVydC1pbmZvJztcbiAgICAgICAgcmV0dXJuT2JqLnRpdGxlID0gdGhpcy5jb21tb25TdHJpbmdzLmtleXMuaW5mbztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldHVybk9iajtcbiAgfVxufVxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1hbmQtdHlwZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2VtcGhhc2lzL2FsZXJ0L3Byb3ZpZGVycy9pY29uLWFuZC10eXBlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBR25ELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFBb0IsYUFBc0M7UUFBdEMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBRWxELHFCQUFnQixHQUFHLGFBQWEsQ0FBQztRQUNqQyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixlQUFVLEdBQUcsTUFBTSxDQUFDO0lBSmlDLENBQUM7SUFNOUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxHQUFXO1FBQzVCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjthQUFNLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsTUFBTSxTQUFTLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXpELFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxTQUFTO2dCQUNaLFNBQVMsQ0FBQyxLQUFLLEdBQUcsc0JBQXNCLENBQUM7Z0JBQ3pDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDO2dCQUNyQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDbEQsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxTQUFTLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDO2dCQUN2QyxTQUFTLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQztnQkFDcEMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ2pELE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osU0FBUyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7Z0JBQ2pDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDO2dCQUNyQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDbEQsTUFBTTtZQUNSO2dCQUNFLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUN4QyxTQUFTLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztnQkFDbEMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLE1BQU07U0FDVDtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O3NIQTdEVSx3QkFBd0I7MEhBQXhCLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaTE4bi9jb21tb24tc3RyaW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0SW5mb09iamVjdCB9IGZyb20gJy4uL3V0aWxzL2FsZXJ0LWluZm8tb2JqZWN0JztcbmltcG9ydCB7IEFMRVJUX1RZUEVTIH0gZnJvbSAnLi4vdXRpbHMvYWxlcnQtdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWxlcnRJY29uQW5kVHlwZXNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSkge31cblxuICBwcml2YXRlIGRlZmF1bHRJY29uU2hhcGUgPSAnaW5mby1jaXJjbGUnO1xuICBwcml2YXRlIF9hbGVydEljb25TaGFwZSA9ICcnO1xuICBwcml2YXRlIF9hbGVydFR5cGUgPSAnaW5mbyc7XG5cbiAgZ2V0IGFsZXJ0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hbGVydFR5cGU7XG4gIH1cbiAgc2V0IGFsZXJ0VHlwZSh2YWw6IHN0cmluZykge1xuICAgIGlmIChBTEVSVF9UWVBFUy5pbmRleE9mKHZhbCkgPiAtMSkge1xuICAgICAgdGhpcy5fYWxlcnRUeXBlID0gdmFsO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhbGVydEljb25TaGFwZSgpOiBzdHJpbmcge1xuICAgIGlmICgnJyA9PT0gdGhpcy5fYWxlcnRJY29uU2hhcGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmljb25JbmZvRnJvbVR5cGUodGhpcy5fYWxlcnRUeXBlKS5zaGFwZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FsZXJ0SWNvblNoYXBlO1xuICB9XG4gIHNldCBhbGVydEljb25TaGFwZSh2YWw6IHN0cmluZykge1xuICAgIGlmICghdmFsKSB7XG4gICAgICB0aGlzLl9hbGVydEljb25TaGFwZSA9ICcnO1xuICAgIH0gZWxzZSBpZiAodmFsICE9PSB0aGlzLl9hbGVydEljb25TaGFwZSkge1xuICAgICAgdGhpcy5fYWxlcnRJY29uU2hhcGUgPSB2YWw7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGFsZXJ0SWNvblRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWNvbkluZm9Gcm9tVHlwZSh0aGlzLl9hbGVydFR5cGUpLnRpdGxlO1xuICB9XG5cbiAgaWNvbkluZm9Gcm9tVHlwZSh0eXBlOiBzdHJpbmcpOiBBbGVydEluZm9PYmplY3Qge1xuICAgIGNvbnN0IHJldHVybk9iaiA9IHsgc2hhcGU6ICcnLCBjc3NDbGFzczogJycsIHRpdGxlOiAnJyB9O1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgcmV0dXJuT2JqLnNoYXBlID0gJ2V4Y2xhbWF0aW9uLXRyaWFuZ2xlJztcbiAgICAgICAgcmV0dXJuT2JqLmNzc0NsYXNzID0gJ2FsZXJ0LXdhcm5pbmcnO1xuICAgICAgICByZXR1cm5PYmoudGl0bGUgPSB0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy53YXJuaW5nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rhbmdlcic6XG4gICAgICAgIHJldHVybk9iai5zaGFwZSA9ICdleGNsYW1hdGlvbi1jaXJjbGUnO1xuICAgICAgICByZXR1cm5PYmouY3NzQ2xhc3MgPSAnYWxlcnQtZGFuZ2VyJztcbiAgICAgICAgcmV0dXJuT2JqLnRpdGxlID0gdGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGFuZ2VyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICByZXR1cm5PYmouc2hhcGUgPSAnY2hlY2stY2lyY2xlJztcbiAgICAgICAgcmV0dXJuT2JqLmNzc0NsYXNzID0gJ2FsZXJ0LXN1Y2Nlc3MnO1xuICAgICAgICByZXR1cm5PYmoudGl0bGUgPSB0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zdWNjZXNzO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybk9iai5zaGFwZSA9IHRoaXMuZGVmYXVsdEljb25TaGFwZTtcbiAgICAgICAgcmV0dXJuT2JqLmNzc0NsYXNzID0gJ2FsZXJ0LWluZm8nO1xuICAgICAgICByZXR1cm5PYmoudGl0bGUgPSB0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5pbmZvO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0dXJuT2JqO1xuICB9XG59XG4iXX0=
@@ -93,4 +93,4 @@ MultiAlertService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
93
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MultiAlertService, decorators: [{
94
94
  type: Injectable
95
95
  }] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktYWxlcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2VtcGhhc2lzL2FsZXJ0L3Byb3ZpZGVycy9tdWx0aS1hbGVydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDOztBQUt6RCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBTUU7O1dBRUc7UUFDSyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztLQTZGekM7SUE1RkMsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBSUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFhO1FBQ3ZCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lB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Q0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDOzsrR0FwR1UsaUJBQWlCO21IQUFqQixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ2xyQWxlcnQgfSBmcm9tICcuLi9hbGVydCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNdWx0aUFsZXJ0U2VydmljZSB7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBhbGxBbGVydHM6IFF1ZXJ5TGlzdDxDbHJBbGVydD47XG5cbiAgLyoqXG4gICAqIFRoZSBPYnNlcnZhYmxlIHRoYXQgbGV0cyBvdGhlciBjbGFzc2VzIHN1YnNjcmliZSB0byBjaGFuZ2VzXG4gICAqL1xuICBwcml2YXRlIF9jaGFuZ2UgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyBnZXQgY2hhbmdlcygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIF9jdXJyZW50OiBudW1iZXI7XG5cbiAgZ2V0IGN1cnJlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XG4gIH1cbiAgc2V0IGN1cnJlbnQoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCAhPT0gdGhpcy5fY3VycmVudCkge1xuICAgICAgdGhpcy5fY3VycmVudCA9IGluZGV4O1xuICAgICAgdGhpcy5fY2hhbmdlLm5leHQoaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhY3RpdmVBbGVydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsQWxlcnRzICYmIHRoaXMuYWxsQWxlcnRzLmZpbHRlcihhbGVydCA9PiAhYWxlcnQuX2Nsb3NlZCk7XG4gIH1cblxuICBnZXQgY3VycmVudEFsZXJ0KCkge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUFsZXJ0cyAmJiB0aGlzLmFjdGl2ZUFsZXJ0c1t0aGlzLmN1cnJlbnRdO1xuICB9XG5cbiAgc2V0IGN1cnJlbnRBbGVydChhbGVydDogQ2xyQWxlcnQpIHtcbiAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLmFjdGl2ZUFsZXJ0cy5pbmRleE9mKGFsZXJ0KTtcbiAgfVxuXG4gIGdldCBjb3VudCgpIHtcbiAgICByZXR1cm4gKHRoaXMuYWN0aXZlQWxlcnRzICYmIHRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aCkgfHwgMDtcbiAgfVxuXG4gIG1hbmFnZShhbGVydHM6IFF1ZXJ5TGlzdDxDbHJBbGVydD4pIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuYWxsQWxlcnRzID0gYWxlcnRzO1xuICAgIC8vIEFmdGVyIHJlY2VpdmluZyBhbGVydHMnIFF1ZXJ5TGlzdCxcbiAgICAvLyB3ZSBhcmUgcGlja2luZyBpbmRleCAwIGFzIGN1cnJlbnQgYnkgZGVmYXVsdCBpZiBhIHVzZXIgaGFzbid0IGFueSBpbmRleFxuICAgIHRoaXMuY3VycmVudCA9IHR5cGVvZiB0aGlzLl9jdXJyZW50ID09PSAnbnVtYmVyJyA/IHRoaXMuX2N1cnJlbnQgOiAwO1xuICAgIC8vIHdlIGhhdmUgdG8gYWxzbyBicm9hZGNhc3QgdGhhdCBpbml0aWFsIGluZGV4XG4gICAgdGhpcy5fY2hhbmdlLm5leHQodGhpcy5jdXJyZW50KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5hbGxBbGVydHMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY3VycmVudCA+PSB0aGlzLmFsbEFsZXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gTWF0aC5tYXgoMCwgdGhpcy5hbGxBbGVydHMubGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZXh0KCkge1xuICAgIHRoaXMuX2N1cnJlbnQgPSB0aGlzLmN1cnJlbnQgPT09IHRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aCAtIDEgPyAwIDogdGhpcy5jdXJyZW50ICsgMTtcbiAgICB0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KTtcbiAgfVxuXG4gIHByZXZpb3VzKCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fY3VycmVudCA9IHRoaXMuY3VycmVudCA9PT0gMCA/IHRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aCAtIDEgOiB0aGlzLmN1cnJlbnQgLSAxO1xuICAgIHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVBbGVydHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRBbGVydCkge1xuICAgICAgdGhpcy5fY3VycmVudCA9IDA7XG4gICAgfVxuXG4gICAgdGhpcy5fY2hhbmdlLm5leHQodGhpcy5fY3VycmVudCk7XG4gIH1cblxuICBjbG9zZShpc0N1cnJlbnRBbGVydDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNDdXJyZW50QWxlcnQpIHtcbiAgICAgIHRoaXMuX2N1cnJlbnQgPSBNYXRoLm1heCgwLCB0aGlzLmN1cnJlbnQgLSAxKTtcbiAgICB9XG5cbiAgICB0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktYWxlcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2VtcGhhc2lzL2FsZXJ0L3Byb3ZpZGVycy9tdWx0aS1hbGVydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDOztBQUt6RCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBTUU7O1dBRUc7UUFDSyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztLQTZGekM7SUE1RkMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFJRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFF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QUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7OytHQXBHVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbHJBbGVydCB9IGZyb20gJy4uL2FsZXJ0JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE11bHRpQWxlcnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGFsbEFsZXJ0czogUXVlcnlMaXN0PENsckFsZXJ0PjtcblxuICAvKipcbiAgICogVGhlIE9ic2VydmFibGUgdGhhdCBsZXRzIG90aGVyIGNsYXNzZXMgc3Vic2NyaWJlIHRvIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgX2NoYW5nZSA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgZ2V0IGNoYW5nZXMoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3VycmVudDogbnVtYmVyO1xuXG4gIGdldCBjdXJyZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50O1xuICB9XG4gIHNldCBjdXJyZW50KGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoaW5kZXggIT09IHRoaXMuX2N1cnJlbnQpIHtcbiAgICAgIHRoaXMuX2N1cnJlbnQgPSBpbmRleDtcbiAgICAgIHRoaXMuX2NoYW5nZS5uZXh0KGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBnZXQgYWN0aXZlQWxlcnRzKCkge1xuICAgIHJldHVybiB0aGlzLmFsbEFsZXJ0cyAmJiB0aGlzLmFsbEFsZXJ0cy5maWx0ZXIoYWxlcnQgPT4gIWFsZXJ0Ll9jbG9zZWQpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRBbGVydCgpIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVBbGVydHMgJiYgdGhpcy5hY3RpdmVBbGVydHNbdGhpcy5jdXJyZW50XTtcbiAgfVxuXG4gIHNldCBjdXJyZW50QWxlcnQoYWxlcnQ6IENsckFsZXJ0KSB7XG4gICAgdGhpcy5jdXJyZW50ID0gdGhpcy5hY3RpdmVBbGVydHMuaW5kZXhPZihhbGVydCk7XG4gIH1cblxuICBnZXQgY291bnQoKSB7XG4gICAgcmV0dXJuICh0aGlzLmFjdGl2ZUFsZXJ0cyAmJiB0aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGgpIHx8IDA7XG4gIH1cblxuICBtYW5hZ2UoYWxlcnRzOiBRdWVyeUxpc3Q8Q2xyQWxlcnQ+KSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmFsbEFsZXJ0cyA9IGFsZXJ0cztcbiAgICAvLyBBZnRlciByZWNlaXZpbmcgYWxlcnRzJyBRdWVyeUxpc3QsXG4gICAgLy8gd2UgYXJlIHBpY2tpbmcgaW5kZXggMCBhcyBjdXJyZW50IGJ5IGRlZmF1bHQgaWYgYSB1c2VyIGhhc24ndCBhbnkgaW5kZXhcbiAgICB0aGlzLmN1cnJlbnQgPSB0eXBlb2YgdGhpcy5fY3VycmVudCA9PT0gJ251bWJlcicgPyB0aGlzLl9jdXJyZW50IDogMDtcbiAgICAvLyB3ZSBoYXZlIHRvIGFsc28gYnJvYWRjYXN0IHRoYXQgaW5pdGlhbCBpbmRleFxuICAgIHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuY3VycmVudCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuYWxsQWxlcnRzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnQgPj0gdGhpcy5hbGxBbGVydHMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IE1hdGgubWF4KDAsIHRoaXMuYWxsQWxlcnRzLmxlbmd0aCAtIDEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmV4dCgpIHtcbiAgICB0aGlzLl9jdXJyZW50ID0gdGhpcy5jdXJyZW50ID09PSB0aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGggLSAxID8gMCA6IHRoaXMuY3VycmVudCArIDE7XG4gICAgdGhpcy5fY2hhbmdlLm5leHQodGhpcy5fY3VycmVudCk7XG4gIH1cblxuICBwcmV2aW91cygpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVBbGVydHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2N1cnJlbnQgPSB0aGlzLmN1cnJlbnQgPT09IDAgPyB0aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGggLSAxIDogdGhpcy5jdXJyZW50IC0gMTtcbiAgICB0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KTtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5jdXJyZW50QWxlcnQpIHtcbiAgICAgIHRoaXMuX2N1cnJlbnQgPSAwO1xuICAgIH1cblxuICAgIHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpO1xuICB9XG5cbiAgY2xvc2UoaXNDdXJyZW50QWxlcnQ6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5hY3RpdmVBbGVydHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzQ3VycmVudEFsZXJ0KSB7XG4gICAgICB0aGlzLl9jdXJyZW50ID0gTWF0aC5tYXgoMCwgdGhpcy5jdXJyZW50IC0gMSk7XG4gICAgfVxuXG4gICAgdGhpcy5fY2hhbmdlLm5leHQodGhpcy5fY3VycmVudCk7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
124
124
  }], clrInline: [{
125
125
  type: Input
126
126
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY2hlY2tib3gvY2hlY2tib3gtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7QUFzQ3pDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFNNUQsWUFDaUMsYUFBNEIsRUFDeEMsbUJBQXdDLEVBQ3hDLGdCQUFrQyxFQUNsQyxxQkFBNEM7UUFFL0QsS0FBSyxDQUFDLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBTHBELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3hDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBVHpELFdBQU0sR0FBRyxLQUFLLENBQUM7SUFZdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFDSSxTQUFTLENBQUMsS0FBdUI7UUFDbkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNoRDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRVEsa0JBQWtCO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RCxDQUFDOztrSEF2Q1Usb0JBQW9CO3NHQUFwQixvQkFBb0IsaVJBRnBCLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMscURBTTVFLFdBQVcsdUVBdENsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVDs0RkFTVSxvQkFBb0I7a0JBcENoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2Q0FBNkM7b0JBQ3ZELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osMEJBQTBCLEVBQUUsTUFBTTt3QkFDbEMsbUNBQW1DLEVBQUUsbUJBQW1CO3dCQUN4RCxpQkFBaUIsRUFBRSxXQUFXO3dCQUM5QixhQUFhLEVBQUUsTUFBTTtxQkFDdEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUM7aUJBQzlGOzswQkFRSSxRQUFRO2lKQUgwQyxVQUFVO3NCQUE5RCxlQUFlO3VCQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBa0IvQyxTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbnB1dCwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDbHJBYnN0cmFjdENvbnRhaW5lciB9IGZyb20gJy4uL2NvbW1vbi9hYnN0cmFjdC1jb250YWluZXInO1xuaW1wb3J0IHsgSWZDb250cm9sU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL2lmLWNvbnRyb2wtc3RhdGUvaWYtY29udHJvbC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRhaW5lcklkU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvY29udGFpbmVyLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbENsYXNzU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvY29udHJvbC1jbGFzcy5zZXJ2aWNlJztcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL2xheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IE5nQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL25nLWNvbnRyb2wuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJDaGVja2JveCB9IGZyb20gJy4vY2hlY2tib3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItY2hlY2tib3gtY29udGFpbmVyLGNsci10b2dnbGUtY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJsYWJlbFwiPjwvbmctY29udGVudD5cbiAgICA8bGFiZWwgKm5nSWY9XCIhbGFiZWwgJiYgYWRkR3JpZCgpXCI+PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbnRyb2wtY29udGFpbmVyXCIgW2NsYXNzLmNsci1jb250cm9sLWlubGluZV09XCJjbHJJbmxpbmVcIiBbbmdDbGFzc109XCJjb250cm9sQ2xhc3MoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNoZWNrYm94LXdyYXBwZXIsY2xyLXRvZ2dsZS13cmFwcGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImNsci1zdWJ0ZXh0LXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtaGVscGVyXCIgKm5nSWY9XCJzaG93SGVscGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8Y2RzLWljb25cbiAgICAgICAgICAqbmdJZj1cInNob3dJbnZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgICBzaGFwZT1cImV4Y2xhbWF0aW9uLWNpcmNsZVwiXG4gICAgICAgICAgc3RhdHVzPVwiZGFuZ2VyXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPGNkcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VmFsaWRcIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLXZhbGlkYXRlLWljb25cIlxuICAgICAgICAgIHNoYXBlPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICBzdGF0dXM9XCJzdWNjZXNzXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtZXJyb3JcIiAqbmdJZj1cInNob3dJbnZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItY29udHJvbC1zdWNjZXNzXCIgKm5nSWY9XCJzaG93VmFsaWRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY2xyLWZvcm0tY29udHJvbF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkXSc6ICdjb250cm9sPy5kaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5jbHItcm93XSc6ICdhZGRHcmlkKCknLFxuICAgICdbYXR0ci5yb2xlXSc6ICdyb2xlJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbSWZDb250cm9sU3RhdGVTZXJ2aWNlLCBOZ0NvbnRyb2xTZXJ2aWNlLCBDb250cm9sQ2xhc3NTZXJ2aWNlLCBDb250YWluZXJJZFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJDaGVja2JveENvbnRhaW5lciBleHRlbmRzIENsckFic3RyYWN0Q29udGFpbmVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgaW5saW5lID0gZmFsc2U7XG4gIHB1YmxpYyByb2xlOiBzdHJpbmc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihDbHJDaGVja2JveCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBjaGVja2JveGVzOiBRdWVyeUxpc3Q8Q2xyQ2hlY2tib3g+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBvdmVycmlkZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjb250cm9sQ2xhc3NTZXJ2aWNlOiBDb250cm9sQ2xhc3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBuZ0NvbnRyb2xTZXJ2aWNlOiBOZ0NvbnRyb2xTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpZkNvbnRyb2xTdGF0ZVNlcnZpY2U6IElmQ29udHJvbFN0YXRlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihpZkNvbnRyb2xTdGF0ZVNlcnZpY2UsIGxheW91dFNlcnZpY2UsIGNvbnRyb2xDbGFzc1NlcnZpY2UsIG5nQ29udHJvbFNlcnZpY2UpO1xuICB9XG5cbiAgLypcbiAgICogSGVyZSB3ZSB3YW50IHRvIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBjYXNlc1xuICAgKiBjbHJJbmxpbmUgLSB0cnVlIGJ5IHByZXNlbmNlXG4gICAqIGNscklubGluZT1cInRydWV8ZmFsc2VcIiAtIHVubGVzcyBpdCBpcyBleHBsaWNpdGx5IGZhbHNlLCBzdHJpbmdzIGFyZSBjb25zaWRlcmVkIHRydWVcbiAgICogW2NscklubGluZV09XCJ0cnVlfGZhbHNlXCIgLSBleHBlY3QgYSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY2xySW5saW5lKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuaW5saW5lID0gdmFsdWUgPT09ICdmYWxzZScgPyBmYWxzZSA6IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5saW5lID0gISF2YWx1ZTtcbiAgICB9XG4gIH1cbiAgZ2V0IGNscklubGluZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbmxpbmU7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5zZXRBcmlhUm9sZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QXJpYVJvbGVzKCkge1xuICAgIHRoaXMucm9sZSA9IHRoaXMuY2hlY2tib3hlcy5sZW5ndGggPyAnZ3JvdXAnIDogbnVsbDtcbiAgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY2hlY2tib3gvY2hlY2tib3gtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7QUFzQ3pDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFNNUQsWUFDaUMsYUFBNEIsRUFDeEMsbUJBQXdDLEVBQ3hDLGdCQUFrQyxFQUNsQyxxQkFBNEM7UUFFL0QsS0FBSyxDQUFDLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBTHBELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3hDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBVHpELFdBQU0sR0FBRyxLQUFLLENBQUM7SUFZdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFDSSxTQUFTLENBQUMsS0FBdUI7UUFDbkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNoRDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRVEsa0JBQWtCO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RCxDQUFDOztrSEF2Q1Usb0JBQW9CO3NHQUFwQixvQkFBb0IsaVJBRnBCLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMscURBTTVFLFdBQVcsdUVBdENsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVDs0RkFTVSxvQkFBb0I7a0JBcENoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2Q0FBNkM7b0JBQ3ZELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osMEJBQTBCLEVBQUUsTUFBTTt3QkFDbEMsbUNBQW1DLEVBQUUsbUJBQW1CO3dCQUN4RCxpQkFBaUIsRUFBRSxXQUFXO3dCQUM5QixhQUFhLEVBQUUsTUFBTTtxQkFDdEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUM7aUJBQzlGOzswQkFRSSxRQUFRO2lKQUgwQyxVQUFVO3NCQUE5RCxlQUFlO3VCQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBa0IvQyxTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbnB1dCwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDbHJBYnN0cmFjdENvbnRhaW5lciB9IGZyb20gJy4uL2NvbW1vbi9hYnN0cmFjdC1jb250YWluZXInO1xuaW1wb3J0IHsgSWZDb250cm9sU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL2lmLWNvbnRyb2wtc3RhdGUvaWYtY29udHJvbC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRhaW5lcklkU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvY29udGFpbmVyLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbENsYXNzU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvY29udHJvbC1jbGFzcy5zZXJ2aWNlJztcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL2xheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IE5nQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL25nLWNvbnRyb2wuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJDaGVja2JveCB9IGZyb20gJy4vY2hlY2tib3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItY2hlY2tib3gtY29udGFpbmVyLGNsci10b2dnbGUtY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJsYWJlbFwiPjwvbmctY29udGVudD5cbiAgICA8bGFiZWwgKm5nSWY9XCIhbGFiZWwgJiYgYWRkR3JpZCgpXCI+PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbnRyb2wtY29udGFpbmVyXCIgW2NsYXNzLmNsci1jb250cm9sLWlubGluZV09XCJjbHJJbmxpbmVcIiBbbmdDbGFzc109XCJjb250cm9sQ2xhc3MoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNoZWNrYm94LXdyYXBwZXIsY2xyLXRvZ2dsZS13cmFwcGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImNsci1zdWJ0ZXh0LXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtaGVscGVyXCIgKm5nSWY9XCJzaG93SGVscGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8Y2RzLWljb25cbiAgICAgICAgICAqbmdJZj1cInNob3dJbnZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgICBzaGFwZT1cImV4Y2xhbWF0aW9uLWNpcmNsZVwiXG4gICAgICAgICAgc3RhdHVzPVwiZGFuZ2VyXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPGNkcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VmFsaWRcIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLXZhbGlkYXRlLWljb25cIlxuICAgICAgICAgIHNoYXBlPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICBzdGF0dXM9XCJzdWNjZXNzXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtZXJyb3JcIiAqbmdJZj1cInNob3dJbnZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItY29udHJvbC1zdWNjZXNzXCIgKm5nSWY9XCJzaG93VmFsaWRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY2xyLWZvcm0tY29udHJvbF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkXSc6ICdjb250cm9sPy5kaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5jbHItcm93XSc6ICdhZGRHcmlkKCknLFxuICAgICdbYXR0ci5yb2xlXSc6ICdyb2xlJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbSWZDb250cm9sU3RhdGVTZXJ2aWNlLCBOZ0NvbnRyb2xTZXJ2aWNlLCBDb250cm9sQ2xhc3NTZXJ2aWNlLCBDb250YWluZXJJZFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJDaGVja2JveENvbnRhaW5lciBleHRlbmRzIENsckFic3RyYWN0Q29udGFpbmVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgaW5saW5lID0gZmFsc2U7XG4gIHJvbGU6IHN0cmluZztcblxuICBAQ29udGVudENoaWxkcmVuKENsckNoZWNrYm94LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGNoZWNrYm94ZXM6IFF1ZXJ5TGlzdDxDbHJDaGVja2JveD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIG92ZXJyaWRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNvbnRyb2xDbGFzc1NlcnZpY2U6IENvbnRyb2xDbGFzc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIG5nQ29udHJvbFNlcnZpY2U6IE5nQ29udHJvbFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlmQ29udHJvbFN0YXRlU2VydmljZTogSWZDb250cm9sU3RhdGVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGlmQ29udHJvbFN0YXRlU2VydmljZSwgbGF5b3V0U2VydmljZSwgY29udHJvbENsYXNzU2VydmljZSwgbmdDb250cm9sU2VydmljZSk7XG4gIH1cblxuICAvKlxuICAgKiBIZXJlIHdlIHdhbnQgdG8gc3VwcG9ydCB0aGUgZm9sbG93aW5nIGNhc2VzXG4gICAqIGNscklubGluZSAtIHRydWUgYnkgcHJlc2VuY2VcbiAgICogY2xySW5saW5lPVwidHJ1ZXxmYWxzZVwiIC0gdW5sZXNzIGl0IGlzIGV4cGxpY2l0bHkgZmFsc2UsIHN0cmluZ3MgYXJlIGNvbnNpZGVyZWQgdHJ1ZVxuICAgKiBbY2xySW5saW5lXT1cInRydWV8ZmFsc2VcIiAtIGV4cGVjdCBhIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBjbHJJbmxpbmUodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5pbmxpbmUgPSB2YWx1ZSA9PT0gJ2ZhbHNlJyA/IGZhbHNlIDogdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbmxpbmUgPSAhIXZhbHVlO1xuICAgIH1cbiAgfVxuICBnZXQgY2xySW5saW5lKCkge1xuICAgIHJldHVybiB0aGlzLmlubGluZTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnNldEFyaWFSb2xlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBcmlhUm9sZXMoKSB7XG4gICAgdGhpcy5yb2xlID0gdGhpcy5jaGVja2JveGVzLmxlbmd0aCA/ICdncm91cCcgOiBudWxsO1xuICB9XG59XG4iXX0=
@@ -6,7 +6,6 @@
6
6
  import { isPlatformBrowser } from '@angular/common';
7
7
  import { Component, ContentChild, ElementRef, EventEmitter, HostListener, Inject, Input, Optional, Output, PLATFORM_ID, Self, ViewChild, } from '@angular/core';
8
8
  import { POPOVER_HOST_ANCHOR } from '../../popover/common/popover-host-anchor.token';
9
- import { AriaService } from '../../utils/aria/aria.service';
10
9
  import { IF_ACTIVE_ID_PROVIDER } from '../../utils/conditional/if-active.service';
11
10
  import { FOCUS_SERVICE_PROVIDER } from '../../utils/focus/focus.service';
12
11
  import { BACKSPACE } from '../../utils/key-codes/key-codes';
@@ -24,6 +23,7 @@ import { ClrComboboxContainer } from './combobox-container';
24
23
  import { MultiSelectComboboxModel } from './model/multi-select-combobox.model';
25
24
  import { SingleSelectComboboxModel } from './model/single-select-combobox.model';
26
25
  import { ClrOptionSelected } from './option-selected.directive';
26
+ import { ClrOptions } from './options';
27
27
  import { COMBOBOX_FOCUS_HANDLER_PROVIDER } from './providers/combobox-focus-handler.service';
28
28
  import { OptionSelectionService } from './providers/option-selection.service';
29
29
  import * as i0 from "@angular/core";
@@ -34,17 +34,16 @@ import * as i4 from "../../utils/popover/providers/popover-toggle.service";
34
34
  import * as i5 from "../../utils/popover/providers/popover-position.service";
35
35
  import * as i6 from "../common/if-control-state/if-control-state.service";
36
36
  import * as i7 from "./providers/combobox-container.service";
37
- import * as i8 from "../../utils/aria/aria.service";
38
- import * as i9 from "./providers/combobox-focus-handler.service";
39
- import * as i10 from "../../utils/focus/key-focus/roving-tabindex";
40
- import * as i11 from "../../utils/popover/popover-anchor";
41
- import * as i12 from "@angular/common";
42
- import * as i13 from "../../utils/focus/key-focus/key-focus-item";
43
- import * as i14 from "../../icon/icon";
44
- import * as i15 from "../../utils/popover/popover-open-close-button";
45
- import * as i16 from "../../utils/popover/popover-content";
37
+ import * as i8 from "./providers/combobox-focus-handler.service";
38
+ import * as i9 from "../../utils/focus/key-focus/roving-tabindex";
39
+ import * as i10 from "../../utils/popover/popover-anchor";
40
+ import * as i11 from "@angular/common";
41
+ import * as i12 from "../../utils/focus/key-focus/key-focus-item";
42
+ import * as i13 from "../../icon/icon";
43
+ import * as i14 from "../../utils/popover/popover-open-close-button";
44
+ import * as i15 from "../../utils/popover/popover-content";
46
45
  export class ClrCombobox extends WrappedFormControl {
47
- constructor(vcr, injector, control, renderer, el, optionSelectionService, commonStrings, toggleService, positionService, controlStateService, containerService, platformId, ariaService, focusHandler, cdr) {
46
+ constructor(vcr, injector, control, renderer, el, optionSelectionService, commonStrings, toggleService, positionService, controlStateService, containerService, platformId, focusHandler, cdr) {
48
47
  super(vcr, ClrComboboxContainer, injector, control, renderer, el);
49
48
  this.control = control;
50
49
  this.renderer = renderer;
@@ -56,7 +55,6 @@ export class ClrCombobox extends WrappedFormControl {
56
55
  this.controlStateService = controlStateService;
57
56
  this.containerService = containerService;
58
57
  this.platformId = platformId;
59
- this.ariaService = ariaService;
60
58
  this.focusHandler = focusHandler;
61
59
  this.cdr = cdr;
62
60
  this.index = 1;
@@ -144,10 +142,10 @@ export class ClrCombobox extends WrappedFormControl {
144
142
  return this.optionSelectionService.multiselectable;
145
143
  }
146
144
  get ariaControls() {
147
- return this.ariaService.ariaControls;
145
+ return this.options?.optionsId;
148
146
  }
149
147
  get ariaOwns() {
150
- return this.ariaService.ariaOwns;
148
+ return this.options?.optionsId;
151
149
  }
152
150
  get ariaDescribedBySelection() {
153
151
  return 'selection-' + this.id;
@@ -285,20 +283,19 @@ export class ClrCombobox extends WrappedFormControl {
285
283
  this.el = this.textbox;
286
284
  }
287
285
  }
288
- ClrCombobox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ClrCombobox, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i1.NgControl, optional: true, self: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.OptionSelectionService }, { token: i3.ClrCommonStringsService }, { token: i4.ClrPopoverToggleService }, { token: i5.ClrPopoverPositionService }, { token: i6.IfControlStateService, optional: true }, { token: i7.ComboboxContainerService, optional: true }, { token: PLATFORM_ID }, { token: i8.AriaService }, { token: i9.ComboboxFocusHandler }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
286
+ ClrCombobox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ClrCombobox, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i1.NgControl, optional: true, self: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.OptionSelectionService }, { token: i3.ClrCommonStringsService }, { token: i4.ClrPopoverToggleService }, { token: i5.ClrPopoverPositionService }, { token: i6.IfControlStateService, optional: true }, { token: i7.ComboboxContainerService, optional: true }, { token: PLATFORM_ID }, { token: i8.ComboboxFocusHandler }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
289
287
  ClrCombobox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ClrCombobox, selector: "clr-combobox", inputs: { placeholder: "placeholder", multiSelect: ["clrMulti", "multiSelect"] }, outputs: { clrInputChange: "clrInputChange", clrOpenChange: "clrOpenChange", clrSelectionChange: "clrSelectionChange" }, host: { listeners: { "keydown": "onKeyUp($event)" }, properties: { "class.aria-required": "true", "class.clr-combobox": "true", "class.clr-combobox-disabled": "control?.disabled" } }, providers: [
290
288
  ClrPopoverToggleService,
291
289
  { provide: POPOVER_HOST_ANCHOR, useExisting: ElementRef },
292
290
  OptionSelectionService,
293
291
  { provide: LoadingListener, useExisting: ClrCombobox },
294
292
  IF_ACTIVE_ID_PROVIDER,
295
- AriaService,
296
293
  FOCUS_SERVICE_PROVIDER,
297
294
  COMBOBOX_FOCUS_HANDLER_PROVIDER,
298
295
  ClrPopoverToggleService,
299
296
  ClrPopoverEventsService,
300
297
  ClrPopoverPositionService,
301
- ], queries: [{ propertyName: "optionSelected", first: true, predicate: ClrOptionSelected, descendants: true }], viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textboxInput"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n* This software is released under MIT license.\n* The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n ></ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <span class=\"clr-combobox-input-wrapper\" role=\"combobox\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n />\n </span>\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n", components: [{ type: i10.ClrRovingTabindex, selector: "[clrRovingTabindex]", inputs: ["clrRovingTabindex", "clrRovingTabindexDisabled"] }], directives: [{ type: i11.ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.ClrKeyFocusItem, selector: "[clrKeyFocusItem]" }, { type: i12.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i14.CdsIconCustomTag, selector: "cds-icon" }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i15.ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: i16.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }] });
298
+ ], queries: [{ propertyName: "optionSelected", first: true, predicate: ClrOptionSelected, descendants: true }, { propertyName: "options", first: true, predicate: ClrOptions, descendants: true }], viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textboxInput"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n* This software is released under MIT license.\n* The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n ></ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <span class=\"clr-combobox-input-wrapper\" role=\"combobox\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n />\n </span>\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n", components: [{ type: i9.ClrRovingTabindex, selector: "[clrRovingTabindex]", inputs: ["clrRovingTabindex", "clrRovingTabindexDisabled"] }], directives: [{ type: i10.ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.ClrKeyFocusItem, selector: "[clrKeyFocusItem]" }, { type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i13.CdsIconCustomTag, selector: "cds-icon" }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i14.ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: i15.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }] });
302
299
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ClrCombobox, decorators: [{
303
300
  type: Component,
304
301
  args: [{ selector: 'clr-combobox', providers: [
@@ -307,7 +304,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
307
304
  OptionSelectionService,
308
305
  { provide: LoadingListener, useExisting: ClrCombobox },
309
306
  IF_ACTIVE_ID_PROVIDER,
310
- AriaService,
311
307
  FOCUS_SERVICE_PROVIDER,
312
308
  COMBOBOX_FOCUS_HANDLER_PROVIDER,
313
309
  ClrPopoverToggleService,
@@ -329,7 +325,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
329
325
  }] }, { type: undefined, decorators: [{
330
326
  type: Inject,
331
327
  args: [PLATFORM_ID]
332
- }] }, { type: i8.AriaService }, { type: i9.ComboboxFocusHandler }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { textbox: [{
328
+ }] }, { type: i8.ComboboxFocusHandler }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { textbox: [{
333
329
  type: ViewChild,
334
330
  args: ['textboxInput']
335
331
  }], trigger: [{
@@ -338,6 +334,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
338
334
  }], optionSelected: [{
339
335
  type: ContentChild,
340
336
  args: [ClrOptionSelected]
337
+ }], options: [{
338
+ type: ContentChild,
339
+ args: [ClrOptions]
341
340
  }], placeholder: [{
342
341
  type: Input,
343
342
  args: ['placeholder']
@@ -357,4 +356,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
357
356
  type: Output,
358
357
  args: ['clrSelectionChange']
359
358
  }] } });
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9jb21ib2JveC9jb21ib2JveC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2NvbWJvYm94L2NvbWJvYm94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBRVgsSUFBSSxFQUNKLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNE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QWdCO2dCQUVRLGFBQWE7c0JBQTVDLE1BQU07dUJBQUMsZUFBZTtnQkFHYyxrQkFBa0I7c0JBQXRELE1BQU07dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIFJlbmRlcmVyMixcbiAgU2VsZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFBPUE9WRVJfSE9TVF9BTkNIT1IgfSBmcm9tICcuLi8uLi9wb3BvdmVyL2NvbW1vbi9wb3BvdmVyLWhvc3QtYW5jaG9yLnRva2VuJztcbmltcG9ydCB7IEFyaWFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJpYS9hcmlhLnNlcnZpY2UnO1xuaW1wb3J0IHsgSUZfQUNUSVZFX0lEX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29uZGl0aW9uYWwvaWYtYWN0aXZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRk9DVVNfU0VSVklDRV9QUk9WSURFUiB9IGZyb20gJy4uLy4uL3V0aWxzL2ZvY3VzL2ZvY3VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQkFDS1NQQUNFIH0gZnJvbSAnLi4vLi4vdXRpbHMva2V5LWNvZGVzL2tleS1jb2Rlcyc7XG5pbXBvcnQgeyBDbHJMb2FkaW5nU3RhdGUgfSBmcm9tICcuLi8uLi91dGlscy9sb2FkaW5nL2xvYWRpbmcnO1xuaW1wb3J0IHsgTG9hZGluZ0xpc3RlbmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9hZGluZy9sb2FkaW5nLWxpc3RlbmVyJztcbmltcG9ydCB7IENsckFsaWdubWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvYWxpZ25tZW50LmVudW0nO1xuaW1wb3J0IHsgQ2xyQXhpcyB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvYXhpcy5lbnVtJztcbmltcG9ydCB7IENsclNpZGUgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL3NpZGUuZW51bSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2ludGVyZmFjZXMvcG9wb3Zlci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlckV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLWV2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLXBvc2l0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLXRvZ2dsZS5zZXJ2aWNlJztcbmltcG9ydCB7IENPTlRST0xfU1RBVEUsIElmQ29udHJvbFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9pZi1jb250cm9sLXN0YXRlL2lmLWNvbnRyb2wtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBXcmFwcGVkRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9jb21tb24vd3JhcHBlZC1jb250cm9sJztcbmltcG9ydCB7IENsckNvbWJvYm94Q29udGFpbmVyIH0gZnJvbSAnLi9jb21ib2JveC1jb250YWluZXInO1xuaW1wb3J0IHsgQ29tYm9ib3hNb2RlbCB9IGZyb20gJy4vbW9kZWwvY29tYm9ib3gubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RDb21ib2JveE1vZGVsIH0gZnJvbSAnLi9tb2RlbC9tdWx0aS1zZWxlY3QtY29tYm9ib3gubW9kZWwnO1xuaW1wb3J0IHsgU2luZ2xlU2VsZWN0Q29tYm9ib3hNb2RlbCB9IGZyb20gJy4vbW9kZWwvc2luZ2xlLXNlbGVjdC1jb21ib2JveC5tb2RlbCc7XG5pbXBvcnQgeyBDbHJPcHRpb25TZWxlY3RlZCB9IGZyb20gJy4vb3B0aW9uLXNlbGVjdGVkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21ib2JveENvbnRhaW5lclNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9jb21ib2JveC1jb250YWluZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDT01CT0JPWF9GT0NVU19IQU5ETEVSX1BST1ZJREVSLCBDb21ib2JveEZvY3VzSGFuZGxlciB9IGZyb20gJy4vcHJvdmlkZXJzL2NvbWJvYm94LWZvY3VzLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25TZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvb3B0aW9uLXNlbGVjdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWNvbWJvYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSxcbiAgICB7IHByb3ZpZGU6IFBPUE9WRVJfSE9TVF9BTkNIT1IsIHVzZUV4aXN0aW5nOiBFbGVtZW50UmVmIH0sXG4gICAgT3B0aW9uU2VsZWN0aW9uU2VydmljZSxcbiAgICB7IHByb3ZpZGU6IExvYWRpbmdMaXN0ZW5lciwgdXNlRXhpc3Rpbmc6IENsckNvbWJvYm94IH0sXG4gICAgSUZfQUNUSVZFX0lEX1BST1ZJREVSLFxuICAgIEFyaWFTZXJ2aWNlLFxuICAgIEZPQ1VTX1NFUlZJQ0VfUFJPVklERVIsXG4gICAgQ09NQk9CT1hfRk9DVVNfSEFORExFUl9QUk9WSURFUixcbiAgICBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSxcbiAgICBDbHJQb3BvdmVyRXZlbnRzU2VydmljZSxcbiAgICBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlLFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5hcmlhLXJlcXVpcmVkXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1jb21ib2JveF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5jbHItY29tYm9ib3gtZGlzYWJsZWRdJzogJ2NvbnRyb2w/LmRpc2FibGVkJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyQ29tYm9ib3g8VD5cbiAgZXh0ZW5kcyBXcmFwcGVkRm9ybUNvbnRyb2w8Q2xyQ29tYm9ib3hDb250YWluZXI+XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIExvYWRpbmdMaXN0ZW5lciwgQWZ0ZXJDb250ZW50SW5pdFxue1xuICBAVmlld0NoaWxkKCd0ZXh0Ym94SW5wdXQnKSB0ZXh0Ym94OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd0cmlnZ2VyJykgdHJpZ2dlcjogRWxlbWVudFJlZjtcbiAgQENvbnRlbnRDaGlsZChDbHJPcHRpb25TZWxlY3RlZCkgb3B0aW9uU2VsZWN0ZWQ6IENsck9wdGlvblNlbGVjdGVkPFQ+O1xuXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKG1vZGVsOiBUIHwgVFtdKSA9PiBhbnk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGluZGV4ID0gMTtcblxuICBpbnZhbGlkID0gZmFsc2U7XG4gIGZvY3VzZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBTZWxmKClcbiAgICBAT3B0aW9uYWwoKVxuICAgIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHB1YmxpYyBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlOiBPcHRpb25TZWxlY3Rpb25TZXJ2aWNlPFQ+LFxuICAgIHB1YmxpYyBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHRvZ2dsZVNlcnZpY2U6IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9zaXRpb25TZXJ2aWNlOiBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbFN0YXRlU2VydmljZTogSWZDb250cm9sU3RhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udGFpbmVyU2VydmljZTogQ29tYm9ib3hDb250YWluZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxuICAgIHByaXZhdGUgYXJpYVNlcnZpY2U6IEFyaWFTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9jdXNIYW5kbGVyOiBDb21ib2JveEZvY3VzSGFuZGxlcjxUPixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIodmNyLCBDbHJDb21ib2JveENvbnRhaW5lciwgaW5qZWN0b3IsIGNvbnRyb2wsIHJlbmRlcmVyLCBlbCk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIGNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICAgIC8vIGRlZmF1bHQgdG8gU2luZ2xlU2VsZWN0Q29tYm9ib3hNb2RlbCwgaW4gY2FzZSB0aGUgb3B0aW9uYWwgaW5wdXQgW0Nsck11bHRpXSBpc24ndCB1c2VkXG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsID0gbmV3IFNpbmdsZVNlbGVjdENvbWJvYm94TW9kZWw8VD4oKTtcbiAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xuICB9XG5cbiAgZm9jdXNlZFBpbGw6IGFueTtcblxuICAvLyBPdmVycmlkZSB0aGUgaWQgb2YgV3JhcHBlZEZvcm1Db250cm9sLCBhcyB3ZSB3YW50IHRvIG1vdmUgaXQgdG8gdGhlIGVtYmVkZGVkIGlucHV0LlxuICAvLyBPdGhlcndpc2UgdGhlIGxhYmVsL2NvbXBvbmVudCBjb25uZWN0aW9uIGRvZXMgbm90IHdvcmsgYW5kIHNjcmVlbiByZWFkZXJzIGRvIG5vdCByZWFkIHRoZSBsYWJlbC5cbiAgb3ZlcnJpZGUgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWQgKyAnLWNvbWJvYm94JztcbiAgfVxuXG4gIG92ZXJyaWRlIHNldCBpZChpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIuaWQgPSBpZDtcbiAgfVxuXG4gIGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sSWRTZXJ2aWNlLmlkO1xuICB9XG5cbiAgZ2V0IG9wZW5TdGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW47XG4gIH1cblxuICBwcml2YXRlIF9zZWFyY2hUZXh0ID0gJyc7XG5cbiAgc2V0IHNlYXJjaFRleHQodGV4dDogc3RyaW5nKSB7XG4gICAgLy8gaWYgaW5wdXQgdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSBsYXN0IHRpbWUsIGZpcmUgYSBjaGFuZ2UgZXZlbnQgc28gYXBwbGljYXRpb24gY2FuIHJlYWN0IHRvIGl0XG4gICAgaWYgKHRleHQgIT09IHRoaXMuX3NlYXJjaFRleHQpIHtcbiAgICAgIHRoaXMuX3NlYXJjaFRleHQgPSB0ZXh0O1xuICAgICAgdGhpcy5jbHJJbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VhcmNoVGV4dCk7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2UuY3VycmVudElucHV0ID0gdGhpcy5zZWFyY2hUZXh0O1xuICAgIH1cbiAgfVxuXG4gIGdldCBzZWFyY2hUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFRleHQ7XG4gIH1cblxuICBnZXQgbXVsdGlTZWxlY3RNb2RlbCgpOiBUW10ge1xuICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ211bHRpU2VsZWN0TW9kZWwgaXMgbm90IGF2YWlsYWJsZSBpbiBzaW5nbGUgc2VsZWN0aW9uIGNvbnRleHQnKTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwgYXMgTXVsdGlTZWxlY3RDb21ib2JveE1vZGVsPFQ+KS5tb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBzbWFydFBvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb24gPSB7XG4gICAgYXhpczogQ2xyQXhpcy5WRVJUSUNBTCxcbiAgICBzaWRlOiBDbHJTaWRlLkFGVEVSLFxuICAgIGFuY2hvcjogQ2xyQWxpZ25tZW50LlNUQVJULFxuICAgIGNvbnRlbnQ6IENsckFsaWdubWVudC5TVEFSVCxcbiAgfTtcblxuICBsb2FkaW5nU3RhdGVDaGFuZ2Uoc3RhdGU6IENsckxvYWRpbmdTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5sb2FkaW5nID0gc3RhdGUgPT09IENsckxvYWRpbmdTdGF0ZS5MT0FESU5HO1xuICAgIHRoaXMucG9zaXRpb25TZXJ2aWNlLnJlYWxpZ24oKTtcbiAgICBpZiAoc3RhdGUgIT09IENsckxvYWRpbmdTdGF0ZS5MT0FESU5HICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzRmlyc3RBY3RpdmUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb250cm9sLmRpc2FibGVkO1xuICB9XG5cbiAgdW5zZWxlY3QoaXRlbTogVCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnVuc2VsZWN0KGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgncGxhY2Vob2xkZXInKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIEBJbnB1dCgnY2xyTXVsdGknKVxuICBzZXQgbXVsdGlTZWxlY3QodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBNdWx0aVNlbGVjdENvbWJvYm94TW9kZWw8VD4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaW4gdGhlb3J5LCBzZXR0aW5nIHRoaXMgYWdhaW4gc2hvdWxkIG5vdCBjYXVzZSBlcnJvcnMgZXZlbiB0aG91Z2ggd2UgYWxyZWFkeSBzZXQgaXQgaW4gY29uc3RydWN0b3IsXG4gICAgICAvLyBzaW5jZSB0aGUgaW5pdGlhbCBjYWxsIHRvIHdyaXRlVmFsdWUgKGNhdXNlZCBieSBbbmdNb2RlbF0gaW5wdXQpIHNob3VsZCBoYXBwZW4gYWZ0ZXIgdGhpc1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsID0gbmV3IFNpbmdsZVNlbGVjdENvbWJvYm94TW9kZWw8VD4oKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVDb250cm9sVmFsdWUoKTtcbiAgfVxuXG4gIGdldCBtdWx0aVNlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLm11bHRpc2VsZWN0YWJsZTtcbiAgfVxuXG4gIGdldCBhcmlhQ29udHJvbHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hcmlhU2VydmljZS5hcmlhQ29udHJvbHM7XG4gIH1cblxuICBnZXQgYXJpYU93bnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hcmlhU2VydmljZS5hcmlhT3ducztcbiAgfVxuXG4gIGdldCBhcmlhRGVzY3JpYmVkQnlTZWxlY3Rpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3NlbGVjdGlvbi0nICsgdGhpcy5pZDtcbiAgfVxuXG4gIGdldCBkaXNwbGF5RmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLmRpc3BsYXlGaWVsZDtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgaWYgKHRoaXMuY29udHJvbC5jb250cm9sLnVwZGF0ZU9uID09PSAnYmx1cicpIHtcbiAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gIH1cblxuICBnZXRTZWxlY3Rpb25BcmlhTGFiZWwoKSB7XG4gICAgaWYgKHRoaXMuY29udGFpbmVyU2VydmljZSAmJiB0aGlzLmNvbnRhaW5lclNlcnZpY2UubGFiZWxUZXh0KSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5jb250YWluZXJTZXJ2aWNlLmxhYmVsVGV4dH0gJHt0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5jb21ib2JveFNlbGVjdGlvbn1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLmtleXMuY29tYm9ib3hTZWxlY3Rpb247XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8vIGlmIEJBQ0tTUEFDRSBpbiBtdWx0aXNlbGVjdCBtb2RlLCBkZWxldGUgdGhlIGxhc3QgcGlsbCBpZiB0ZXh0IGlzIGVtcHR5XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEJBQ0tTUEFDRSAmJiB0aGlzLm11bHRpU2VsZWN0ICYmIHRoaXMuX3NlYXJjaFRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBtdWx0aU1vZGVsOiBUW10gPSB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWwgYXMgVFtdO1xuICAgICAgaWYgKG11bHRpTW9kZWwgJiYgbXVsdGlNb2RlbC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGxhc3RJdGVtOiBUID0gbXVsdGlNb2RlbFttdWx0aU1vZGVsLmxlbmd0aCAtIDFdO1xuICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS51bnNlbGVjdChsYXN0SXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgnY2xySW5wdXRDaGFuZ2UnKSBwdWJsaWMgY2xySW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KGZhbHNlKTtcblxuICBAT3V0cHV0KCdjbHJPcGVuQ2hhbmdlJykgcHVibGljIGNsck9wZW5DaGFuZ2U6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZTtcblxuICAvLyBUaGlzIG91dHB1dCBzaG91bGQgYmUgdXNlZCB0byBzZXQgdXAgYSBsaXZlIHJlZ2lvbiB1c2luZyBhcmlhLWxpdmUgYW5kIHBvcHVsYXRlIGl0IHdpdGggdXBkYXRlcyB0aGF0IHJlZmxlY3QgZWFjaCBjb21ib2JveCBjaGFuZ2VcbiAgQE91dHB1dCgnY2xyU2VsZWN0aW9uQ2hhbmdlJykgcHVibGljIGNsclNlbGVjdGlvbkNoYW5nZTogT2JzZXJ2YWJsZTxDb21ib2JveE1vZGVsPFQ+PiA9XG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbkNoYW5nZWQ7XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgobmV3U2VsZWN0aW9uOiBDb21ib2JveE1vZGVsPFQ+KSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZShuZXdTZWxlY3Rpb24pO1xuICAgICAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgICAgIHRoaXMucG9zaXRpb25TZXJ2aWNlLnJlYWxpZ24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3QgJiYgbmV3U2VsZWN0aW9uICYmICFuZXdTZWxlY3Rpb24uaXNFbXB0eSgpKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUob3BlbiA9PiB7XG4gICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c0ZpcnN0QWN0aXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSB0aGlzLmdldERpc3BsYXlOYW1lcyh0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWwpWzBdIHx8ICcnO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9nZ2xlU2VydmljZS5wb3BvdmVyQWxpZ25lZC5zdWJzY3JpYmUocG9wb3Zlck5vZGUgPT4ge1xuICAgICAgICAvLyBXaGVuIHVzZWQgb3V0c2lkZSBhIGNvbWJvYm94IGNvbnRhaW5lclxuICAgICAgICBpZiAoIXRoaXMuY29udGFpbmVyU2VydmljZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb3BvdmVyOiBIVE1MRWxlbWVudCA9IHBvcG92ZXJOb2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAvLyBVcGRhdGUgcG9zaXRpb24gaWYgcG9wb3ZlciBoaWRlcyB0aGUgbGFiZWxcbiAgICAgICAgaWYgKHBvcG92ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIDwgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wb3Zlck5vZGUsICd0b3AnLCBgJHtwb3BvdmVyLm9mZnNldFRvcCArIHRoaXMuY29udGFpbmVyU2VydmljZS5sYWJlbE9mZnNldH1weGApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5jb250cm9sU3RhdGVTZXJ2aWNlKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgdGhpcy5jb250cm9sU3RhdGVTZXJ2aWNlLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKGludmFsaWQgPT4ge1xuICAgICAgICAgIHRoaXMuaW52YWxpZCA9IGludmFsaWQgPT09IENPTlRST0xfU1RBVEUuSU5WQUxJRDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNGaXJzdEFjdGl2ZSgpIHtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci5mb2N1c0ZpcnN0QWN0aXZlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUlucHV0VmFsdWUobW9kZWw6IENvbWJvYm94TW9kZWw8VD4pIHtcbiAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IG1vZGVsLm1vZGVsID8gdGhpcy5nZXREaXNwbGF5TmFtZXMobW9kZWwubW9kZWwpWzBdIDogJyc7XG4gICAgICBpZiAodGhpcy5zZWFyY2hUZXh0KSB7XG4gICAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5jdXJyZW50SW5wdXQgPSB0aGlzLnNlYXJjaFRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9sVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMub25DaGFuZ2VDYWxsYmFjaykge1xuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb24gbWV0aG9kc1xuICB3cml0ZVZhbHVlKHZhbHVlOiBUIHwgVFtdKTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIGdldEFjdGl2ZURlc2NlbmRhbnQoKSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmZvY3VzSGFuZGxlci5wc2V1ZG9Gb2N1cy5tb2RlbDtcbiAgICByZXR1cm4gbW9kZWwgPyBtb2RlbC5pZCA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiBhbnk7XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICAvLyBkbyBub3RoaW5nXG4gIH1cblxuICBmb2N1c0lucHV0KCkge1xuICAgIHRoaXMuZm9jdXNIYW5kbGVyLmZvY3VzSW5wdXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlzcGxheU5hbWVzKG1vZGVsOiBUIHwgVFtdKSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUZpZWxkKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkobW9kZWwpKSB7XG4gICAgICAgIG1vZGVsID0gW21vZGVsXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtb2RlbC5tYXAoaXRlbSA9PiAoaXRlbSA/IChpdGVtIGFzIGFueSlbdGhpcy5kaXNwbGF5RmllbGRdIDogbnVsbCkpO1xuICAgIH1cbiAgICByZXR1cm4gW3RoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbF07XG4gIH1cblxuICAvLyBMaWZlY3ljbGUgbWV0aG9kc1xuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplU3Vic2NyaXB0aW9ucygpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSB3aXRoIHByZXNlbGVjdGVkIHZhbHVlXG4gICAgaWYgKCF0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUodGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5mb2N1c0hhbmRsZXIuY29tcG9uZW50Q2RSZWYgPSB0aGlzLmNkcjtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci50ZXh0SW5wdXQgPSB0aGlzLnRleHRib3gubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci50cmlnZ2VyID0gdGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgLy8gVGhlIHRleHQgaW5wdXQgaXMgdGhlIGFjdHVhbCBlbGVtZW50IHdlIGFyZSB3cmFwcGluZ1xuICAgIC8vIFRoaXMgYXNzaWdubWVudCBpcyBuZWVkZWQgYnkgdGhlIHdyYXBwZXIsIHNvIGl0IGNhbiBzZXRcbiAgICAvLyB0aGUgYXJpYSBwcm9wZXJ0aWVzIG9uIHRoZSBpbnB1dCBlbGVtZW50LCBub3Qgb24gdGhlIGNvbXBvbmVudC5cbiAgICB0aGlzLmVsID0gdGhpcy50ZXh0Ym94O1xuICB9XG59XG4iLCI8IS0tXG4qIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4tLT5cblxuPCEtLSBUaGUgKGNsaWNrKSBoYW5kbGVyIGlzIG5lZWRlZCB0byBhdXRvLWZvY3VzIG9uIGlucHV0IGZpZWxkIHdoaWNoIGNhbiBub3QgY3VycmVudGx5IG9jY3VweSB0aGUgd2hvbGVcbiAgICAgd2lkdGggb2YgdGhlIGNvbXBvbmVudCwgYWZ0ZXIgYmVpbmcgd3JhcHBlZCB0byBhIG5ldyBsaW5lIC0tPlxuPGRpdlxuICBjbGFzcz1cImNsci1jb21ib2JveC13cmFwcGVyXCJcbiAgY2xyUG9wb3ZlckFuY2hvclxuICAoY2xpY2spPVwiZm9jdXNJbnB1dCgpXCJcbiAgW2NsYXNzLm11bHRpXT1cIm11bHRpU2VsZWN0XCJcbiAgW2NsYXNzLmludmFsaWRdPVwiaW52YWxpZFwiXG4+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJtdWx0aVNlbGVjdCAmJiBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsXCJcbiAgICByb2xlPVwiZ3JpZFwiXG4gICAgY2xyUm92aW5nVGFiaW5kZXhcbiAgICBbY2xyUm92aW5nVGFiaW5kZXhEaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZFwiXG4gICAgY2xyRGlyZWN0aW9uPVwiYm90aFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRTZWxlY3Rpb25BcmlhTGFiZWwoKVwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZD8gdHJ1ZTogbnVsbFwiXG4gID5cbiAgICA8c3BhbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtdWx0aVNlbGVjdE1vZGVsOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJsYWJlbCBsYWJlbC1jb21ib2JveC1waWxsXCIgcm9sZT1cInJvd1wiPlxuICAgICAgPHNwYW4gcm9sZT1cImdyaWRjZWxsXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2xyLWNvbWJvYm94LXBpbGwtY29udGVudFwiIGNscktleUZvY3VzSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cIm9wdGlvblNlbGVjdGVkXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvblNlbGVjdGVkLnRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsW2ldfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiByb2xlPVwiZ3JpZGNlbGxcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNscktleUZvY3VzSXRlbVxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLWNvbWJvYm94LXJlbW92ZS1idG5cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZD8gdHJ1ZTogbnVsbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb21tb25TdHJpbmdzLmtleXMuY29tYm9ib3hEZWxldGUgKyAnICcgKyBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLnRvU3RyaW5nKGRpc3BsYXlGaWVsZCwgaSlcIlxuICAgICAgICAgIChjbGljayk9XCJ1bnNlbGVjdChpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJ3aW5kb3ctY2xvc2VcIiBzaXplPVwiMTJcIj48L2Nkcy1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDwvc3Bhbj5cblxuICA8c3BhbiBjbGFzcz1cImNsci1jb21ib2JveC1pbnB1dC13cmFwcGVyXCIgcm9sZT1cImNvbWJvYm94XCI+XG4gICAgPGlucHV0XG4gICAgICAjdGV4dGJveElucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbaWRdPVwiaW5wdXRJZCgpXCJcbiAgICAgIGNsYXNzPVwiY2xyLWlucHV0IGNsci1jb21ib2JveC1pbnB1dFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5TdGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLW93bnNdPVwiYXJpYU93bnNcIlxuICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJsaXN0XCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiY29udHJvbD8uaW52YWxpZD8gdHJ1ZTogbnVsbFwiXG4gICAgICBbZGlzYWJsZWRdPVwiY29udHJvbD8uZGlzYWJsZWQ/IHRydWU6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cImdldEFjdGl2ZURlc2NlbmRhbnQoKVwiXG4gICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgLz5cbiAgPC9zcGFuPlxuXG4gIDwhLS0gTm8gY2xpY2sgaGFuZGxlciwgYXMgaXQgdXNlcyB0aGUgaGFuZGxlciBvbiB0aGUgLmNsci1jb21ib2JveC13cmFwcGVyIC0tPlxuICA8YnV0dG9uXG4gICAgY2xyUG9wb3Zlck9wZW5DbG9zZUJ1dHRvblxuICAgICN0cmlnZ2VyXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJjbHItY29tYm9ib3gtdHJpZ2dlclwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW2Rpc2FibGVkXT1cImNvbnRyb2w/LmRpc2FibGVkIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmNvbWJvYm94T3BlblwiXG4gID5cbiAgICA8Y2RzLWljb24gc2hhcGU9XCJhbmdsZVwiIGRpcmVjdGlvbj1cImRvd25cIiBzaXplPVwiMTJcIj48L2Nkcy1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8ZGl2IGNsYXNzPVwiY2xyLWZvY3VzLWluZGljYXRvclwiIFtjbGFzcy5jbHItZm9jdXNdPVwiZm9jdXNlZFwiPjwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gQm90aCBjbG9zZSBoYW5kbGVycyBhcmUgaGFuZGxlZCBtYW51YWxseSBkdWUgdG8gaXNzdWVzIGluIEVkZ2UgYnJvd3Nlci5cbiAgICAgQWRkaXRpb25hbGx5ICdvdXRzaWRlQ2xpY2tUb0Nsb3NlJyBoYXMgY29tcGxleCBoYW5kbGluZyB0aGF0J3MgbmVjZXNzYXJ5XG4gICAgIHRvIGJlIG1hbnVhbCBkdWUgdG8gdGhlIGNvbXBvbmVudCBhcmNoaXRlY3R1cmUgLS0+XG48ZGl2IHJvbGU9XCJkaWFsb2dcIiAqY2xyUG9wb3ZlckNvbnRlbnQ9XCJvcGVuU3RhdGUgYXQgc21hcnRQb3NpdGlvbjsgb3V0c2lkZUNsaWNrVG9DbG9zZTogZmFsc2U7IHNjcm9sbFRvQ2xvc2U6IGZhbHNlXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9jb21ib2JveC9jb21ib2JveC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2NvbWJvYm94L2NvbWJvYm94Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBRVgsSUFBSSxFQUNKLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3REFB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QkFBckMsTUFBTTt1QkFBQyxlQUFlO2dCQUdPLGtCQUFrQjtzQkFBL0MsTUFBTTt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxuICBTZWxmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUE9QT1ZFUl9IT1NUX0FOQ0hPUiB9IGZyb20gJy4uLy4uL3BvcG92ZXIvY29tbW9uL3BvcG92ZXItaG9zdC1hbmNob3IudG9rZW4nO1xuaW1wb3J0IHsgSUZfQUNUSVZFX0lEX1BST1ZJREVSIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29uZGl0aW9uYWwvaWYtYWN0aXZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRk9DVVNfU0VSVklDRV9QUk9WSURFUiB9IGZyb20gJy4uLy4uL3V0aWxzL2ZvY3VzL2ZvY3VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQkFDS1NQQUNFIH0gZnJvbSAnLi4vLi4vdXRpbHMva2V5LWNvZGVzL2tleS1jb2Rlcyc7XG5pbXBvcnQgeyBDbHJMb2FkaW5nU3RhdGUgfSBmcm9tICcuLi8uLi91dGlscy9sb2FkaW5nL2xvYWRpbmcnO1xuaW1wb3J0IHsgTG9hZGluZ0xpc3RlbmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9hZGluZy9sb2FkaW5nLWxpc3RlbmVyJztcbmltcG9ydCB7IENsckFsaWdubWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvYWxpZ25tZW50LmVudW0nO1xuaW1wb3J0IHsgQ2xyQXhpcyB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvYXhpcy5lbnVtJztcbmltcG9ydCB7IENsclNpZGUgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL3NpZGUuZW51bSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2ludGVyZmFjZXMvcG9wb3Zlci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlckV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLWV2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLXBvc2l0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLXRvZ2dsZS5zZXJ2aWNlJztcbmltcG9ydCB7IENPTlRST0xfU1RBVEUsIElmQ29udHJvbFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9pZi1jb250cm9sLXN0YXRlL2lmLWNvbnRyb2wtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBXcmFwcGVkRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9jb21tb24vd3JhcHBlZC1jb250cm9sJztcbmltcG9ydCB7IENsckNvbWJvYm94Q29udGFpbmVyIH0gZnJvbSAnLi9jb21ib2JveC1jb250YWluZXInO1xuaW1wb3J0IHsgQ29tYm9ib3hNb2RlbCB9IGZyb20gJy4vbW9kZWwvY29tYm9ib3gubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RDb21ib2JveE1vZGVsIH0gZnJvbSAnLi9tb2RlbC9tdWx0aS1zZWxlY3QtY29tYm9ib3gubW9kZWwnO1xuaW1wb3J0IHsgU2luZ2xlU2VsZWN0Q29tYm9ib3hNb2RlbCB9IGZyb20gJy4vbW9kZWwvc2luZ2xlLXNlbGVjdC1jb21ib2JveC5tb2RlbCc7XG5pbXBvcnQgeyBDbHJPcHRpb25TZWxlY3RlZCB9IGZyb20gJy4vb3B0aW9uLXNlbGVjdGVkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDbHJPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IENvbWJvYm94Q29udGFpbmVyU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2NvbWJvYm94LWNvbnRhaW5lci5zZXJ2aWNlJztcbmltcG9ydCB7IENPTUJPQk9YX0ZPQ1VTX0hBTkRMRVJfUFJPVklERVIsIENvbWJvYm94Rm9jdXNIYW5kbGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvY29tYm9ib3gtZm9jdXMtaGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9wdGlvblNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9vcHRpb24tc2VsZWN0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItY29tYm9ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tYm9ib3guaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogUE9QT1ZFUl9IT1NUX0FOQ0hPUiwgdXNlRXhpc3Rpbmc6IEVsZW1lbnRSZWYgfSxcbiAgICBPcHRpb25TZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogTG9hZGluZ0xpc3RlbmVyLCB1c2VFeGlzdGluZzogQ2xyQ29tYm9ib3ggfSxcbiAgICBJRl9BQ1RJVkVfSURfUFJPVklERVIsXG4gICAgRk9DVVNfU0VSVklDRV9QUk9WSURFUixcbiAgICBDT01CT0JPWF9GT0NVU19IQU5ETEVSX1BST1ZJREVSLFxuICAgIENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlLFxuICAgIENsclBvcG92ZXJFdmVudHNTZXJ2aWNlLFxuICAgIENsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UsXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmFyaWEtcmVxdWlyZWRdJzogJ3RydWUnLFxuICAgICdbY2xhc3MuY2xyLWNvbWJvYm94XSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1jb21ib2JveC1kaXNhYmxlZF0nOiAnY29udHJvbD8uZGlzYWJsZWQnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJDb21ib2JveDxUPlxuICBleHRlbmRzIFdyYXBwZWRGb3JtQ29udHJvbDxDbHJDb21ib2JveENvbnRhaW5lcj5cbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTG9hZGluZ0xpc3RlbmVyLCBBZnRlckNvbnRlbnRJbml0XG57XG4gIEBWaWV3Q2hpbGQoJ3RleHRib3hJbnB1dCcpIHRleHRib3g6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXInKSB0cmlnZ2VyOiBFbGVtZW50UmVmO1xuICBAQ29udGVudENoaWxkKENsck9wdGlvblNlbGVjdGVkKSBvcHRpb25TZWxlY3RlZDogQ2xyT3B0aW9uU2VsZWN0ZWQ8VD47XG4gIEBDb250ZW50Q2hpbGQoQ2xyT3B0aW9ucykgcHJpdmF0ZSBvcHRpb25zOiBDbHJPcHRpb25zPFQ+O1xuXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKG1vZGVsOiBUIHwgVFtdKSA9PiBhbnk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGluZGV4ID0gMTtcblxuICBpbnZhbGlkID0gZmFsc2U7XG4gIGZvY3VzZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBTZWxmKClcbiAgICBAT3B0aW9uYWwoKVxuICAgIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHB1YmxpYyBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlOiBPcHRpb25TZWxlY3Rpb25TZXJ2aWNlPFQ+LFxuICAgIHB1YmxpYyBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHRvZ2dsZVNlcnZpY2U6IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9zaXRpb25TZXJ2aWNlOiBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbFN0YXRlU2VydmljZTogSWZDb250cm9sU3RhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29udGFpbmVyU2VydmljZTogQ29tYm9ib3hDb250YWluZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxuICAgIHByaXZhdGUgZm9jdXNIYW5kbGVyOiBDb21ib2JveEZvY3VzSGFuZGxlcjxUPixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIodmNyLCBDbHJDb21ib2JveENvbnRhaW5lciwgaW5qZWN0b3IsIGNvbnRyb2wsIHJlbmRlcmVyLCBlbCk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIGNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICAgIC8vIGRlZmF1bHQgdG8gU2luZ2xlU2VsZWN0Q29tYm9ib3hNb2RlbCwgaW4gY2FzZSB0aGUgb3B0aW9uYWwgaW5wdXQgW0Nsck11bHRpXSBpc24ndCB1c2VkXG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsID0gbmV3IFNpbmdsZVNlbGVjdENvbWJvYm94TW9kZWw8VD4oKTtcbiAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xuICB9XG5cbiAgZm9jdXNlZFBpbGw6IGFueTtcblxuICAvLyBPdmVycmlkZSB0aGUgaWQgb2YgV3JhcHBlZEZvcm1Db250cm9sLCBhcyB3ZSB3YW50IHRvIG1vdmUgaXQgdG8gdGhlIGVtYmVkZGVkIGlucHV0LlxuICAvLyBPdGhlcndpc2UgdGhlIGxhYmVsL2NvbXBvbmVudCBjb25uZWN0aW9uIGRvZXMgbm90IHdvcmsgYW5kIHNjcmVlbiByZWFkZXJzIGRvIG5vdCByZWFkIHRoZSBsYWJlbC5cbiAgb3ZlcnJpZGUgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWQgKyAnLWNvbWJvYm94JztcbiAgfVxuXG4gIG92ZXJyaWRlIHNldCBpZChpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIuaWQgPSBpZDtcbiAgfVxuXG4gIGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sSWRTZXJ2aWNlLmlkO1xuICB9XG5cbiAgZ2V0IG9wZW5TdGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW47XG4gIH1cblxuICBwcml2YXRlIF9zZWFyY2hUZXh0ID0gJyc7XG5cbiAgc2V0IHNlYXJjaFRleHQodGV4dDogc3RyaW5nKSB7XG4gICAgLy8gaWYgaW5wdXQgdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSBsYXN0IHRpbWUsIGZpcmUgYSBjaGFuZ2UgZXZlbnQgc28gYXBwbGljYXRpb24gY2FuIHJlYWN0IHRvIGl0XG4gICAgaWYgKHRleHQgIT09IHRoaXMuX3NlYXJjaFRleHQpIHtcbiAgICAgIHRoaXMuX3NlYXJjaFRleHQgPSB0ZXh0O1xuICAgICAgdGhpcy5jbHJJbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VhcmNoVGV4dCk7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2UuY3VycmVudElucHV0ID0gdGhpcy5zZWFyY2hUZXh0O1xuICAgIH1cbiAgfVxuXG4gIGdldCBzZWFyY2hUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFRleHQ7XG4gIH1cblxuICBnZXQgbXVsdGlTZWxlY3RNb2RlbCgpOiBUW10ge1xuICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ211bHRpU2VsZWN0TW9kZWwgaXMgbm90IGF2YWlsYWJsZSBpbiBzaW5nbGUgc2VsZWN0aW9uIGNvbnRleHQnKTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwgYXMgTXVsdGlTZWxlY3RDb21ib2JveE1vZGVsPFQ+KS5tb2RlbDtcbiAgfVxuXG4gIHNtYXJ0UG9zaXRpb246IENsclBvcG92ZXJQb3NpdGlvbiA9IHtcbiAgICBheGlzOiBDbHJBeGlzLlZFUlRJQ0FMLFxuICAgIHNpZGU6IENsclNpZGUuQUZURVIsXG4gICAgYW5jaG9yOiBDbHJBbGlnbm1lbnQuU1RBUlQsXG4gICAgY29udGVudDogQ2xyQWxpZ25tZW50LlNUQVJULFxuICB9O1xuXG4gIGxvYWRpbmdTdGF0ZUNoYW5nZShzdGF0ZTogQ2xyTG9hZGluZ1N0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLmxvYWRpbmcgPSBzdGF0ZSA9PT0gQ2xyTG9hZGluZ1N0YXRlLkxPQURJTkc7XG4gICAgdGhpcy5wb3NpdGlvblNlcnZpY2UucmVhbGlnbigpO1xuICAgIGlmIChzdGF0ZSAhPT0gQ2xyTG9hZGluZ1N0YXRlLkxPQURJTkcgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXNGaXJzdEFjdGl2ZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbCAmJiB0aGlzLmNvbnRyb2wuZGlzYWJsZWQ7XG4gIH1cblxuICB1bnNlbGVjdChpdGVtOiBUKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2UudW5zZWxlY3QoaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdwbGFjZWhvbGRlcicpIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQElucHV0KCdjbHJNdWx0aScpXG4gIHNldCBtdWx0aVNlbGVjdCh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsID0gbmV3IE11bHRpU2VsZWN0Q29tYm9ib3hNb2RlbDxUPigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbiB0aGVvcnksIHNldHRpbmcgdGhpcyBhZ2FpbiBzaG91bGQgbm90IGNhdXNlIGVycm9ycyBldmVuIHRob3VnaCB3ZSBhbHJlYWR5IHNldCBpdCBpbiBjb25zdHJ1Y3RvcixcbiAgICAgIC8vIHNpbmNlIHRoZSBpbml0aWFsIGNhbGwgdG8gd3JpdGVWYWx1ZSAoY2F1c2VkIGJ5IFtuZ01vZGVsXSBpbnB1dCkgc2hvdWxkIGhhcHBlbiBhZnRlciB0aGlzXG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2luZ2xlU2VsZWN0Q29tYm9ib3hNb2RlbDxUPigpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IG11bHRpU2VsZWN0KCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2UubXVsdGlzZWxlY3RhYmxlO1xuICB9XG5cbiAgZ2V0IGFyaWFDb250cm9scygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/Lm9wdGlvbnNJZDtcbiAgfVxuXG4gIGdldCBhcmlhT3ducygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/Lm9wdGlvbnNJZDtcbiAgfVxuXG4gIGdldCBhcmlhRGVzY3JpYmVkQnlTZWxlY3Rpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3NlbGVjdGlvbi0nICsgdGhpcy5pZDtcbiAgfVxuXG4gIGdldCBkaXNwbGF5RmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLmRpc3BsYXlGaWVsZDtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgaWYgKHRoaXMuY29udHJvbC5jb250cm9sLnVwZGF0ZU9uID09PSAnYmx1cicpIHtcbiAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gIH1cblxuICBnZXRTZWxlY3Rpb25BcmlhTGFiZWwoKSB7XG4gICAgaWYgKHRoaXMuY29udGFpbmVyU2VydmljZSAmJiB0aGlzLmNvbnRhaW5lclNlcnZpY2UubGFiZWxUZXh0KSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5jb250YWluZXJTZXJ2aWNlLmxhYmVsVGV4dH0gJHt0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5jb21ib2JveFNlbGVjdGlvbn1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLmtleXMuY29tYm9ib3hTZWxlY3Rpb247XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8vIGlmIEJBQ0tTUEFDRSBpbiBtdWx0aXNlbGVjdCBtb2RlLCBkZWxldGUgdGhlIGxhc3QgcGlsbCBpZiB0ZXh0IGlzIGVtcHR5XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEJBQ0tTUEFDRSAmJiB0aGlzLm11bHRpU2VsZWN0ICYmIHRoaXMuX3NlYXJjaFRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBtdWx0aU1vZGVsOiBUW10gPSB0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWwgYXMgVFtdO1xuICAgICAgaWYgKG11bHRpTW9kZWwgJiYgbXVsdGlNb2RlbC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGxhc3RJdGVtOiBUID0gbXVsdGlNb2RlbFttdWx0aU1vZGVsLmxlbmd0aCAtIDFdO1xuICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS51bnNlbGVjdChsYXN0SXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgnY2xySW5wdXRDaGFuZ2UnKSBjbHJJbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oZmFsc2UpO1xuXG4gIEBPdXRwdXQoJ2Nsck9wZW5DaGFuZ2UnKSBjbHJPcGVuQ2hhbmdlOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2U7XG5cbiAgLy8gVGhpcyBvdXRwdXQgc2hvdWxkIGJlIHVzZWQgdG8gc2V0IHVwIGEgbGl2ZSByZWdpb24gdXNpbmcgYXJpYS1saXZlIGFuZCBwb3B1bGF0ZSBpdCB3aXRoIHVwZGF0ZXMgdGhhdCByZWZsZWN0IGVhY2ggY29tYm9ib3ggY2hhbmdlXG4gIEBPdXRwdXQoJ2NsclNlbGVjdGlvbkNoYW5nZScpIGNsclNlbGVjdGlvbkNoYW5nZTogT2JzZXJ2YWJsZTxDb21ib2JveE1vZGVsPFQ+PiA9XG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbkNoYW5nZWQ7XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgobmV3U2VsZWN0aW9uOiBDb21ib2JveE1vZGVsPFQ+KSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZShuZXdTZWxlY3Rpb24pO1xuICAgICAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgICAgIHRoaXMucG9zaXRpb25TZXJ2aWNlLnJlYWxpZ24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3QgJiYgbmV3U2VsZWN0aW9uICYmICFuZXdTZWxlY3Rpb24uaXNFbXB0eSgpKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRyb2xWYWx1ZSgpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUob3BlbiA9PiB7XG4gICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c0ZpcnN0QWN0aXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSB0aGlzLmdldERpc3BsYXlOYW1lcyh0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWwpWzBdIHx8ICcnO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9nZ2xlU2VydmljZS5wb3BvdmVyQWxpZ25lZC5zdWJzY3JpYmUocG9wb3Zlck5vZGUgPT4ge1xuICAgICAgICAvLyBXaGVuIHVzZWQgb3V0c2lkZSBhIGNvbWJvYm94IGNvbnRhaW5lclxuICAgICAgICBpZiAoIXRoaXMuY29udGFpbmVyU2VydmljZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb3BvdmVyOiBIVE1MRWxlbWVudCA9IHBvcG92ZXJOb2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAvLyBVcGRhdGUgcG9zaXRpb24gaWYgcG9wb3ZlciBoaWRlcyB0aGUgbGFiZWxcbiAgICAgICAgaWYgKHBvcG92ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIDwgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCkge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wb3Zlck5vZGUsICd0b3AnLCBgJHtwb3BvdmVyLm9mZnNldFRvcCArIHRoaXMuY29udGFpbmVyU2VydmljZS5sYWJlbE9mZnNldH1weGApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5jb250cm9sU3RhdGVTZXJ2aWNlKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgdGhpcy5jb250cm9sU3RhdGVTZXJ2aWNlLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKGludmFsaWQgPT4ge1xuICAgICAgICAgIHRoaXMuaW52YWxpZCA9IGludmFsaWQgPT09IENPTlRST0xfU1RBVEUuSU5WQUxJRDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNGaXJzdEFjdGl2ZSgpIHtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci5mb2N1c0ZpcnN0QWN0aXZlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUlucHV0VmFsdWUobW9kZWw6IENvbWJvYm94TW9kZWw8VD4pIHtcbiAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IG1vZGVsLm1vZGVsID8gdGhpcy5nZXREaXNwbGF5TmFtZXMobW9kZWwubW9kZWwpWzBdIDogJyc7XG4gICAgICBpZiAodGhpcy5zZWFyY2hUZXh0KSB7XG4gICAgICAgIHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5jdXJyZW50SW5wdXQgPSB0aGlzLnNlYXJjaFRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9sVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMub25DaGFuZ2VDYWxsYmFjaykge1xuICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb24gbWV0aG9kc1xuICB3cml0ZVZhbHVlKHZhbHVlOiBUIHwgVFtdKTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHRoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIGdldEFjdGl2ZURlc2NlbmRhbnQoKSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmZvY3VzSGFuZGxlci5wc2V1ZG9Gb2N1cy5tb2RlbDtcbiAgICByZXR1cm4gbW9kZWwgPyBtb2RlbC5pZCA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiBhbnk7XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICAvLyBkbyBub3RoaW5nXG4gIH1cblxuICBmb2N1c0lucHV0KCkge1xuICAgIHRoaXMuZm9jdXNIYW5kbGVyLmZvY3VzSW5wdXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlzcGxheU5hbWVzKG1vZGVsOiBUIHwgVFtdKSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUZpZWxkKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkobW9kZWwpKSB7XG4gICAgICAgIG1vZGVsID0gW21vZGVsXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtb2RlbC5tYXAoaXRlbSA9PiAoaXRlbSA/IChpdGVtIGFzIGFueSlbdGhpcy5kaXNwbGF5RmllbGRdIDogbnVsbCkpO1xuICAgIH1cbiAgICByZXR1cm4gW3RoaXMub3B0aW9uU2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbF07XG4gIH1cblxuICAvLyBMaWZlY3ljbGUgbWV0aG9kc1xuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplU3Vic2NyaXB0aW9ucygpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSB3aXRoIHByZXNlbGVjdGVkIHZhbHVlXG4gICAgaWYgKCF0aGlzLm9wdGlvblNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUodGhpcy5vcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5mb2N1c0hhbmRsZXIuY29tcG9uZW50Q2RSZWYgPSB0aGlzLmNkcjtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci50ZXh0SW5wdXQgPSB0aGlzLnRleHRib3gubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci50cmlnZ2VyID0gdGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgLy8gVGhlIHRleHQgaW5wdXQgaXMgdGhlIGFjdHVhbCBlbGVtZW50IHdlIGFyZSB3cmFwcGluZ1xuICAgIC8vIFRoaXMgYXNzaWdubWVudCBpcyBuZWVkZWQgYnkgdGhlIHdyYXBwZXIsIHNvIGl0IGNhbiBzZXRcbiAgICAvLyB0aGUgYXJpYSBwcm9wZXJ0aWVzIG9uIHRoZSBpbnB1dCBlbGVtZW50LCBub3Qgb24gdGhlIGNvbXBvbmVudC5cbiAgICB0aGlzLmVsID0gdGhpcy50ZXh0Ym94O1xuICB9XG59XG4iLCI8IS0tXG4qIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4tLT5cblxuPCEtLSBUaGUgKGNsaWNrKSBoYW5kbGVyIGlzIG5lZWRlZCB0byBhdXRvLWZvY3VzIG9uIGlucHV0IGZpZWxkIHdoaWNoIGNhbiBub3QgY3VycmVudGx5IG9jY3VweSB0aGUgd2hvbGVcbiAgICAgd2lkdGggb2YgdGhlIGNvbXBvbmVudCwgYWZ0ZXIgYmVpbmcgd3JhcHBlZCB0byBhIG5ldyBsaW5lIC0tPlxuPGRpdlxuICBjbGFzcz1cImNsci1jb21ib2JveC13cmFwcGVyXCJcbiAgY2xyUG9wb3ZlckFuY2hvclxuICAoY2xpY2spPVwiZm9jdXNJbnB1dCgpXCJcbiAgW2NsYXNzLm11bHRpXT1cIm11bHRpU2VsZWN0XCJcbiAgW2NsYXNzLmludmFsaWRdPVwiaW52YWxpZFwiXG4+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJtdWx0aVNlbGVjdCAmJiBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsXCJcbiAgICByb2xlPVwiZ3JpZFwiXG4gICAgY2xyUm92aW5nVGFiaW5kZXhcbiAgICBbY2xyUm92aW5nVGFiaW5kZXhEaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZFwiXG4gICAgY2xyRGlyZWN0aW9uPVwiYm90aFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRTZWxlY3Rpb25BcmlhTGFiZWwoKVwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZD8gdHJ1ZTogbnVsbFwiXG4gID5cbiAgICA8c3BhbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtdWx0aVNlbGVjdE1vZGVsOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJsYWJlbCBsYWJlbC1jb21ib2JveC1waWxsXCIgcm9sZT1cInJvd1wiPlxuICAgICAgPHNwYW4gcm9sZT1cImdyaWRjZWxsXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2xyLWNvbWJvYm94LXBpbGwtY29udGVudFwiIGNscktleUZvY3VzSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cIm9wdGlvblNlbGVjdGVkXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvblNlbGVjdGVkLnRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsW2ldfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiByb2xlPVwiZ3JpZGNlbGxcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNscktleUZvY3VzSXRlbVxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLWNvbWJvYm94LXJlbW92ZS1idG5cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sPy5kaXNhYmxlZD8gdHJ1ZTogbnVsbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb21tb25TdHJpbmdzLmtleXMuY29tYm9ib3hEZWxldGUgKyAnICcgKyBvcHRpb25TZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLnRvU3RyaW5nKGRpc3BsYXlGaWVsZCwgaSlcIlxuICAgICAgICAgIChjbGljayk9XCJ1bnNlbGVjdChpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJ3aW5kb3ctY2xvc2VcIiBzaXplPVwiMTJcIj48L2Nkcy1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDwvc3Bhbj5cblxuICA8c3BhbiBjbGFzcz1cImNsci1jb21ib2JveC1pbnB1dC13cmFwcGVyXCIgcm9sZT1cImNvbWJvYm94XCI+XG4gICAgPGlucHV0XG4gICAgICAjdGV4dGJveElucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbaWRdPVwiaW5wdXRJZCgpXCJcbiAgICAgIGNsYXNzPVwiY2xyLWlucHV0IGNsci1jb21ib2JveC1pbnB1dFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5TdGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLW93bnNdPVwiYXJpYU93bnNcIlxuICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJsaXN0XCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiY29udHJvbD8uaW52YWxpZD8gdHJ1ZTogbnVsbFwiXG4gICAgICBbZGlzYWJsZWRdPVwiY29udHJvbD8uZGlzYWJsZWQ/IHRydWU6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cImdldEFjdGl2ZURlc2NlbmRhbnQoKVwiXG4gICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgLz5cbiAgPC9zcGFuPlxuXG4gIDwhLS0gTm8gY2xpY2sgaGFuZGxlciwgYXMgaXQgdXNlcyB0aGUgaGFuZGxlciBvbiB0aGUgLmNsci1jb21ib2JveC13cmFwcGVyIC0tPlxuICA8YnV0dG9uXG4gICAgY2xyUG9wb3Zlck9wZW5DbG9zZUJ1dHRvblxuICAgICN0cmlnZ2VyXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJjbHItY29tYm9ib3gtdHJpZ2dlclwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW2Rpc2FibGVkXT1cImNvbnRyb2w/LmRpc2FibGVkIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmNvbWJvYm94T3BlblwiXG4gID5cbiAgICA8Y2RzLWljb24gc2hhcGU9XCJhbmdsZVwiIGRpcmVjdGlvbj1cImRvd25cIiBzaXplPVwiMTJcIj48L2Nkcy1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8ZGl2IGNsYXNzPVwiY2xyLWZvY3VzLWluZGljYXRvclwiIFtjbGFzcy5jbHItZm9jdXNdPVwiZm9jdXNlZFwiPjwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gQm90aCBjbG9zZSBoYW5kbGVycyBhcmUgaGFuZGxlZCBtYW51YWxseSBkdWUgdG8gaXNzdWVzIGluIEVkZ2UgYnJvd3Nlci5cbiAgICAgQWRkaXRpb25hbGx5ICdvdXRzaWRlQ2xpY2tUb0Nsb3NlJyBoYXMgY29tcGxleCBoYW5kbGluZyB0aGF0J3MgbmVjZXNzYXJ5XG4gICAgIHRvIGJlIG1hbnVhbCBkdWUgdG8gdGhlIGNvbXBvbmVudCBhcmNoaXRlY3R1cmUgLS0+XG48ZGl2IHJvbGU9XCJkaWFsb2dcIiAqY2xyUG9wb3ZlckNvbnRlbnQ9XCJvcGVuU3RhdGUgYXQgc21hcnRQb3NpdGlvbjsgb3V0c2lkZUNsaWNrVG9DbG9zZTogZmFsc2U7IHNjcm9sbFRvQ2xvc2U6IGZhbHNlXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
94
94
  type: Input,
95
95
  args: ['clrOptionItemsField']
96
96
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWl0ZW1zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2NvbWJvYm94L29wdGlvbi1pdGVtcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxPQUFPLEVBQWtCLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBT04sTUFBTSxlQUFlLENBQUM7Ozs7QUFTdkIsTUFBTSxPQUFPLGNBQWM7SUEwQnpCLFlBQ1MsUUFBd0MsRUFDdkMsT0FBd0IsRUFDeEIsYUFBd0MsRUFDeEMsZUFBMEMsRUFDMUMsR0FBcUI7UUFKdEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0M7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQTJCO1FBQ3hDLG9CQUFlLEdBQWYsZUFBZSxDQUEyQjtRQUMxQyxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQTNCdkIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFWixXQUFNLEdBQTZCLElBQUksQ0FBQztRQTBCOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUEvQkQsSUFDVyxRQUFR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RCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2hDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7NEdBbkZVLGNBQWM7Z0dBQWQsY0FBYzs0RkFBZCxjQUFjO2tCQUgxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQ0FBb0M7aUJBQy9DOzRPQVdZLFFBQVE7c0JBRGxCLEtBQUs7dUJBQUMsa0JBQWtCO2dCQU9yQixPQUFPO3NCQURWLEtBQUs7dUJBQUMsdUJBQXVCO2dCQU1uQixLQUFLO3NCQURmLEtBQUs7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBOZ0Zvck9mLCBOZ0Zvck9mQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIERvQ2hlY2ssXG4gIElucHV0LFxuICBJdGVyYWJsZURpZmZlcixcbiAgSXRlcmFibGVEaWZmZXJzLFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL3Byb3ZpZGVycy9wb3BvdmVyLXBvc2l0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3B0aW9uU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL29wdGlvbi1zZWxlY3Rpb24uc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjbHJPcHRpb25JdGVtc11bY2xyT3B0aW9uSXRlbXNPZl0nLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJPcHRpb25JdGVtczxUPiBpbXBsZW1lbnRzIERvQ2hlY2ssIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgaXRlcmFibGVQcm94eTogTmdGb3JPZjxUPjtcbiAgcHJpdmF0ZSBfcmF3SXRlbXM6IFRbXTtcbiAgcHJpdmF0ZSBmaWx0ZXJlZEl0ZW1zOiBUW107XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBmaWx0ZXIgPSAnJztcbiAgcHJpdmF0ZSBfZmlsdGVyRmllbGQ6IHN0cmluZztcbiAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPFQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCdjbHJPcHRpb25JdGVtc09mJylcbiAgcHVibGljIHNldCByYXdJdGVtcyhpdGVtczogVFtdKSB7XG4gICAgdGhpcy5fcmF3SXRlbXMgPSBpdGVtcyA/IGl0ZW1zIDogW107XG4gICAgdGhpcy51cGRhdGVJdGVtcygpO1xuICB9XG5cbiAgQElucHV0KCdjbHJPcHRpb25JdGVtc1RyYWNrQnknKVxuICBzZXQgdHJhY2tCeSh2YWx1ZTogVHJhY2tCeUZ1bmN0aW9uPFQ+KSB7XG4gICAgdGhpcy5pdGVyYWJsZVByb3h5Lm5nRm9yVHJhY2tCeSA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KCdjbHJPcHRpb25JdGVtc0ZpZWxkJylcbiAgcHVibGljIHNldCBmaWVsZChmaWVsZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fZmlsdGVyRmllbGQgPSBmaWVsZDtcbiAgICB0aGlzLm9wdGlvblNlcnZpY2UuZGlzcGxheUZpZWxkID0gZmllbGQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPE5nRm9yT2ZDb250ZXh0PFQ+PixcbiAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICBwcml2YXRlIG9wdGlvblNlcnZpY2U6IE9wdGlvblNlbGVjdGlvblNlcnZpY2U8VD4sXG4gICAgcHJpdmF0ZSBwb3NpdGlvblNlcnZpY2U6IENsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7XG4gICAgdGhpcy5pdGVyYWJsZVByb3h5ID0gbmV3IE5nRm9yT2Y8VD4odGhpcy52Y3IsIHRoaXMudGVtcGxhdGUsIHRoaXMuZGlmZmVycyk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICBvcHRpb25TZXJ2aWNlLmlucHV0Q2hhbmdlZC5zdWJzY3JpYmUoZmlsdGVyID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7XG4gICAgICAgIHRoaXMudXBkYXRlSXRlbXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSXRlbXMoKSB7XG4gICAgaWYgKCF0aGlzLl9yYXdJdGVtcyB8fCB0aGlzLmZpbHRlciA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZmlsdGVyID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLl9maWx0ZXJGaWVsZCkge1xuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5fcmF3SXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBvYmpWYWx1ZSA9IChpdGVtIGFzIGFueSlbdGhpcy5fZmlsdGVyRmllbGRdO1xuICAgICAgICByZXR1cm4gb2JqVmFsdWUgPyBvYmpWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLmZpbHRlci50b0xvd2VyQ2FzZSgpLnRvU3RyaW5nKCkpID4gLTEgOiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGaWx0ZXIgYnkgYWxsIGl0ZW0gb2JqZWN0IHZhbHVlc1xuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5fcmF3SXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5maWx0ZXIudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSA+IC0xO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9ialZhbHVlcyA9IE9iamVjdC52YWx1ZXMoaXRlbSkuZmlsdGVyKHZhbHVlID0+IHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLmZpbHRlci50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpID4gLTFcbiAgICAgICAgICAgIDogZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb2JqVmFsdWVzLmxlbmd0aCA+IDA7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5pdGVyYWJsZVByb3h5Lm5nRm9yT2YgPSB0aGlzLmZpbHRlcmVkSXRlbXM7XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKCF0aGlzLmRpZmZlcikge1xuICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLmZpbHRlcmVkSXRlbXMpLmNyZWF0ZSh0aGlzLml0ZXJhYmxlUHJveHkubmdGb3JUcmFja0J5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlmZmVyKSB7XG4gICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmZpbHRlcmVkSXRlbXMpO1xuICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5pdGVyYWJsZVByb3h5Lm5nRG9DaGVjaygpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uU2VydmljZS5yZWFsaWduKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWl0ZW1zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zvcm1zL2NvbWJvYm94L29wdGlvbi1pdGVtcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxPQUFPLEVBQWtCLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBT04sTUFBTSxlQUFlLENBQUM7Ozs7QUFTdkIsTUFBTSxPQUFPLGNBQWM7SUEwQnpCLFlBQ1MsUUFBd0MsRUFDdkMsT0FBd0IsRUFDeEIsYUFBd0MsRUFDeEMsZUFBMEMsRUFDMUMsR0FBcUI7UUFKdEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0M7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQTJCO1FBQ3hDLG9CQUFlLEdBQWYsZUFBZSxDQUEyQjtRQUMxQyxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQTNCdkIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFWixXQUFNLEdBQTZCLElBQUksQ0FBQztRQTBCOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUEvQkQsSUFDSSxRQUFR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RCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2hDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7NEdBbkZVLGNBQWM7Z0dBQWQsY0FBYzs0RkFBZCxjQUFjO2tCQUgxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQ0FBb0M7aUJBQy9DOzRPQVdLLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBT3JCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBTTFCLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IE5nRm9yT2YsIE5nRm9yT2ZDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRG9DaGVjayxcbiAgSW5wdXQsXG4gIEl0ZXJhYmxlRGlmZmVyLFxuICBJdGVyYWJsZURpZmZlcnMsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIFRyYWNrQnlGdW5jdGlvbixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ2xyUG9wb3ZlclBvc2l0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItcG9zaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25TZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvb3B0aW9uLXNlbGVjdGlvbi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nsck9wdGlvbkl0ZW1zXVtjbHJPcHRpb25JdGVtc09mXScsXG59KVxuZXhwb3J0IGNsYXNzIENsck9wdGlvbkl0ZW1zPFQ+IGltcGxlbWVudHMgRG9DaGVjaywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBpdGVyYWJsZVByb3h5OiBOZ0Zvck9mPFQ+O1xuICBwcml2YXRlIF9yYXdJdGVtczogVFtdO1xuICBwcml2YXRlIGZpbHRlcmVkSXRlbXM6IFRbXTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIGZpbHRlciA9ICcnO1xuICBwcml2YXRlIF9maWx0ZXJGaWVsZDogc3RyaW5nO1xuICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8VD4gfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoJ2Nsck9wdGlvbkl0ZW1zT2YnKVxuICBzZXQgcmF3SXRlbXMoaXRlbXM6IFRbXSkge1xuICAgIHRoaXMuX3Jhd0l0ZW1zID0gaXRlbXMgPyBpdGVtcyA6IFtdO1xuICAgIHRoaXMudXBkYXRlSXRlbXMoKTtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyT3B0aW9uSXRlbXNUcmFja0J5JylcbiAgc2V0IHRyYWNrQnkodmFsdWU6IFRyYWNrQnlGdW5jdGlvbjxUPikge1xuICAgIHRoaXMuaXRlcmFibGVQcm94eS5uZ0ZvclRyYWNrQnkgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyT3B0aW9uSXRlbXNGaWVsZCcpXG4gIHNldCBmaWVsZChmaWVsZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fZmlsdGVyRmllbGQgPSBmaWVsZDtcbiAgICB0aGlzLm9wdGlvblNlcnZpY2UuZGlzcGxheUZpZWxkID0gZmllbGQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPE5nRm9yT2ZDb250ZXh0PFQ+PixcbiAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICBwcml2YXRlIG9wdGlvblNlcnZpY2U6IE9wdGlvblNlbGVjdGlvblNlcnZpY2U8VD4sXG4gICAgcHJpdmF0ZSBwb3NpdGlvblNlcnZpY2U6IENsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7XG4gICAgdGhpcy5pdGVyYWJsZVByb3h5ID0gbmV3IE5nRm9yT2Y8VD4odGhpcy52Y3IsIHRoaXMudGVtcGxhdGUsIHRoaXMuZGlmZmVycyk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICBvcHRpb25TZXJ2aWNlLmlucHV0Q2hhbmdlZC5zdWJzY3JpYmUoZmlsdGVyID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7XG4gICAgICAgIHRoaXMudXBkYXRlSXRlbXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSXRlbXMoKSB7XG4gICAgaWYgKCF0aGlzLl9yYXdJdGVtcyB8fCB0aGlzLmZpbHRlciA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZmlsdGVyID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLl9maWx0ZXJGaWVsZCkge1xuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5fcmF3SXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBvYmpWYWx1ZSA9IChpdGVtIGFzIGFueSlbdGhpcy5fZmlsdGVyRmllbGRdO1xuICAgICAgICByZXR1cm4gb2JqVmFsdWUgPyBvYmpWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLmZpbHRlci50b0xvd2VyQ2FzZSgpLnRvU3RyaW5nKCkpID4gLTEgOiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGaWx0ZXIgYnkgYWxsIGl0ZW0gb2JqZWN0IHZhbHVlc1xuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5fcmF3SXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5maWx0ZXIudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSA+IC0xO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9ialZhbHVlcyA9IE9iamVjdC52YWx1ZXMoaXRlbSkuZmlsdGVyKHZhbHVlID0+IHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLmZpbHRlci50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpID4gLTFcbiAgICAgICAgICAgIDogZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb2JqVmFsdWVzLmxlbmd0aCA+IDA7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5pdGVyYWJsZVByb3h5Lm5nRm9yT2YgPSB0aGlzLmZpbHRlcmVkSXRlbXM7XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKCF0aGlzLmRpZmZlcikge1xuICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLmZpbHRlcmVkSXRlbXMpLmNyZWF0ZSh0aGlzLml0ZXJhYmxlUHJveHkubmdGb3JUcmFja0J5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlmZmVyKSB7XG4gICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmZpbHRlcmVkSXRlbXMpO1xuICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5pdGVyYWJsZVByb3h5Lm5nRG9DaGVjaygpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uU2VydmljZS5yZWFsaWduKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuIl19