@clr/angular 13.0.3 → 13.2.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 (108) hide show
  1. package/button/button-group/button-group.d.ts +5 -3
  2. package/clarity.api.md +145 -48
  3. package/clr-angular.module.d.ts +13 -12
  4. package/data/datagrid/built-in/filters/datagrid-numeric-filter.d.ts +11 -3
  5. package/data/datagrid/built-in/filters/datagrid-string-filter.d.ts +9 -3
  6. package/data/datagrid/datagrid-column.d.ts +10 -1
  7. package/data/datagrid/render/main-renderer.d.ts +3 -2
  8. package/data/stack-view/stack-control.d.ts +7 -2
  9. package/data/tree-view/models/tree-node.model.d.ts +1 -0
  10. package/data/tree-view/tree-focus-manager.service.d.ts +6 -0
  11. package/data/tree-view/tree-node.d.ts +10 -5
  12. package/esm2020/accordion/stepper/models/stepper.model.mjs +1 -1
  13. package/esm2020/accordion/stepper/providers/stepper.service.mjs +1 -1
  14. package/esm2020/accordion/stepper/stepper-panel.mjs +1 -1
  15. package/esm2020/button/button-group/button-group.mjs +17 -11
  16. package/esm2020/clr-angular.module.mjs +5 -1
  17. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +37 -16
  18. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +27 -13
  19. package/esm2020/data/datagrid/datagrid-column-toggle.mjs +7 -3
  20. package/esm2020/data/datagrid/datagrid-column.mjs +28 -3
  21. package/esm2020/data/datagrid/datagrid-filter.mjs +1 -1
  22. package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +1 -1
  23. package/esm2020/data/datagrid/render/main-renderer.mjs +9 -6
  24. package/esm2020/data/stack-view/stack-control.mjs +13 -3
  25. package/esm2020/data/stack-view/stack-input.mjs +1 -1
  26. package/esm2020/data/stack-view/stack-select.mjs +1 -1
  27. package/esm2020/data/tree-view/models/declarative-tree-node.model.mjs +1 -1
  28. package/esm2020/data/tree-view/models/recursive-tree-node.model.mjs +1 -1
  29. package/esm2020/data/tree-view/models/tree-node.model.mjs +1 -1
  30. package/esm2020/data/tree-view/tree-focus-manager.service.mjs +69 -1
  31. package/esm2020/data/tree-view/tree-node.mjs +55 -22
  32. package/esm2020/forms/checkbox/checkbox-container.mjs +1 -1
  33. package/esm2020/forms/checkbox/checkbox.mjs +1 -1
  34. package/esm2020/forms/combobox/combobox-container.mjs +1 -1
  35. package/esm2020/forms/combobox/combobox.mjs +3 -6
  36. package/esm2020/forms/combobox/model/pseudo-focus.model.mjs +1 -1
  37. package/esm2020/forms/common/control.mjs +1 -1
  38. package/esm2020/forms/common/error.mjs +1 -1
  39. package/esm2020/forms/common/helper.mjs +1 -1
  40. package/esm2020/forms/common/if-control-state/if-error.mjs +1 -1
  41. package/esm2020/forms/common/if-control-state/if-success.mjs +1 -1
  42. package/esm2020/forms/common/success.mjs +1 -1
  43. package/esm2020/forms/datalist/datalist-container.mjs +1 -1
  44. package/esm2020/forms/datalist/datalist-input.mjs +1 -1
  45. package/esm2020/forms/datepicker/calendar.mjs +3 -3
  46. package/esm2020/forms/datepicker/date-container.mjs +1 -1
  47. package/esm2020/forms/datepicker/date-input.mjs +1 -1
  48. package/esm2020/forms/input/input.mjs +1 -1
  49. package/esm2020/forms/password/password-container.mjs +3 -11
  50. package/esm2020/forms/password/password.mjs +1 -1
  51. package/esm2020/forms/radio/radio-container.mjs +1 -1
  52. package/esm2020/forms/range/range-container.mjs +1 -1
  53. package/esm2020/forms/select/select-container.mjs +1 -1
  54. package/esm2020/forms/select/select.mjs +1 -1
  55. package/esm2020/forms/textarea/textarea.mjs +1 -1
  56. package/esm2020/layout/nav/aria-current-link.mjs +28 -0
  57. package/esm2020/layout/nav/header.mjs +25 -8
  58. package/esm2020/layout/nav/index.mjs +2 -1
  59. package/esm2020/layout/nav/nav-level.mjs +110 -8
  60. package/esm2020/layout/nav/navigation.module.mjs +5 -1
  61. package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +3 -3
  62. package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +25 -15
  63. package/esm2020/modal/modal-body.mjs +5 -2
  64. package/esm2020/popover/common/abstract-popover.mjs +15 -6
  65. package/esm2020/popover/dropdown/dropdown-menu.mjs +1 -1
  66. package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +5 -3
  67. package/esm2020/popover/signpost/signpost-content.mjs +2 -1
  68. package/esm2020/utils/breakpoints/breakpoints.mjs +15 -1
  69. package/esm2020/utils/destroy/destroy.service.mjs +44 -0
  70. package/esm2020/utils/destroy/index.mjs +7 -0
  71. package/esm2020/utils/drag-and-drop/providers/drag-event-listener.service.mjs +7 -7
  72. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +21 -16
  73. package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +1 -1
  74. package/esm2020/utils/focus/key-focus/util.mjs +6 -1
  75. package/esm2020/utils/focus-trap/focus-trap.mjs +141 -0
  76. package/esm2020/utils/for-type-ahead/for-type-ahead.mjs +54 -0
  77. package/esm2020/utils/for-type-ahead/for-type-ahead.module.mjs +23 -0
  78. package/esm2020/utils/for-type-ahead/for-type-ahead.service.mjs +29 -0
  79. package/esm2020/utils/for-type-ahead/index.mjs +8 -0
  80. package/esm2020/utils/index.mjs +3 -1
  81. package/esm2020/utils/popover/popover-content.mjs +14 -8
  82. package/fesm2015/clr-angular.mjs +831 -182
  83. package/fesm2015/clr-angular.mjs.map +1 -1
  84. package/fesm2020/clr-angular.mjs +828 -181
  85. package/fesm2020/clr-angular.mjs.map +1 -1
  86. package/forms/combobox/combobox.d.ts +0 -1
  87. package/layout/nav/aria-current-link.d.ts +13 -0
  88. package/layout/nav/header.d.ts +6 -0
  89. package/layout/nav/index.d.ts +1 -0
  90. package/layout/nav/nav-level.d.ts +16 -4
  91. package/layout/nav/navigation.module.d.ts +7 -6
  92. package/layout/vertical-nav/vertical-nav-link.d.ts +6 -5
  93. package/modal/modal-body.d.ts +1 -0
  94. package/package.json +4 -4
  95. package/popover/common/abstract-popover.d.ts +3 -1
  96. package/popover/dropdown/providers/dropdown-focus-handler.service.d.ts +2 -2
  97. package/utils/breakpoints/breakpoints.d.ts +14 -0
  98. package/utils/destroy/destroy.service.d.ts +32 -0
  99. package/utils/destroy/index.d.ts +1 -0
  100. package/utils/focus/focus-on-view-init/focus-on-view-init.d.ts +5 -4
  101. package/utils/focus/key-focus/util.d.ts +1 -0
  102. package/utils/focus-trap/focus-trap.d.ts +29 -0
  103. package/utils/for-type-ahead/for-type-ahead.d.ts +15 -0
  104. package/utils/for-type-ahead/for-type-ahead.module.d.ts +8 -0
  105. package/utils/for-type-ahead/for-type-ahead.service.d.ts +11 -0
  106. package/utils/for-type-ahead/index.d.ts +2 -0
  107. package/utils/index.d.ts +2 -0
  108. package/utils/popover/popover-content.d.ts +2 -1
@@ -95,4 +95,4 @@ export class TreeNodeModel {
95
95
  }
96
96
  }
97
97
  }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS90cmVlLXZpZXcvbW9kZWxzL3RyZWUtbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxNQUFNLE9BQWdCLGFBQWE7SUFBbkM7UUFHRSxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQW1CLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBWTlFOzs7O1dBSUc7UUFDSyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQXFGakQsQ0FBQztJQW5GQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLFNBQWtCO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPO1FBQ0wsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxXQUFXLENBQUMsS0FBdUIsRUFBRSxXQUFvQixFQUFFLGFBQXNCO1FBQy9FLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ2pDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksYUFBYSxJQUFJLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLDRCQUE0QixFQUFFLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQWtCO1FBQ2hDLHVEQUF1RDtRQUN2RCxNQUFNLFFBQVEsR0FDWixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1FBQzlHLGlIQUFpSDtRQUNqSCx5RUFBeUU7UUFDekUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxpQ0FBaUM7UUFDdkMsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMxQixtR0FBbUc7UUFDbkcsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pDLFFBQVEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7Z0JBQzVCLEtBQUssZ0JBQWdCLENBQUMsYUFBYTtvQkFDakMsT0FBTyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7Z0JBQ3hDLEtBQUssZ0JBQWdCLENBQUMsUUFBUTtvQkFDNUIsV0FBVyxHQUFHLElBQUksQ0FBQztvQkFDbkIsSUFBSSxhQUFhLEVBQUU7d0JBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsYUFBYSxDQUFDO3FCQUN2QztvQkFDRCxNQUFNO2dCQUNSLEtBQUssZ0JBQWdCLENBQUMsVUFBVSxDQUFDO2dCQUNqQztvQkFDRSw0RkFBNEY7b0JBQzVGLGFBQWEsR0FBRyxJQUFJLENBQUM7b0JBQ3JCLElBQUksV0FBVyxFQUFFO3dCQUNmLE9BQU8sZ0JBQWdCLENBQUMsYUFBYSxDQUFDO3FCQUN2QztvQkFDRCxNQUFNO2FBQ1Q7U0FDRjtRQUNELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7U0FDcEM7YUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3pCLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1NBQ2xDO2FBQU07WUFDTCxPQUFPLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILDRCQUE0QjtRQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztRQUMxRCxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRTtZQUNwQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLDRCQUE0QixFQUFFLENBQUM7U0FDNUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENsclNlbGVjdGVkU3RhdGUgfSBmcm9tICcuL3NlbGVjdGVkLXN0YXRlLmVudW0nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmVlTm9kZU1vZGVsPFQ+IHtcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIGV4cGFuZGVkOiBib29sZWFuO1xuICBzZWxlY3RlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2xyU2VsZWN0ZWRTdGF0ZT4oQ2xyU2VsZWN0ZWRTdGF0ZS5VTlNFTEVDVEVEKTtcbiAgbW9kZWw6IFQgfCBudWxsO1xuICAvKlxuICAgKiBJZGVhbGx5LCBJIHdvdWxkIGxpa2UgdG8gdXNlIGEgcG9seW1vcnBoaWMgdGhpcyB0eXBlIGhlcmUgdG8gZW5zdXJlIGhvbW9nZW5laXR5IG9mIHRoZSB0cmVlLCBzb21ldGhpbmcgbGlrZTpcbiAgICogYWJzdHJhY3QgcGFyZW50OiB0aGlzPFQ+IHwgbnVsbDtcbiAgICogYWJzdHJhY3QgY2hpbGRyZW46IHRoaXM8VD5bXTtcbiAgICogQnV0IEknbSBoaXR0aW5nIGxpbWl0YXRpb25zIG9uIHR5cGVzY3JpcHQgbm90IGFsbG93aW5nIHRoYXQgdHlwZSBpbiBjb25zdHJ1Y3RvcnMgb3Igc3RhdGljIG1ldGhvZHMuXG4gICAqIFNvIEknbSByZXNvcnRpbmcgdG8gZm9yY2luZyBvdmVycmlkZSB3aXRoIG1vcmUgcHJlY2lzZSB0eXBlcyBieSBtYXJraW5nIHRoZXNlIGFic3RyYWN0LlxuICAgKi9cbiAgYWJzdHJhY3QgcGFyZW50OiBUcmVlTm9kZU1vZGVsPFQ+IHwgbnVsbDtcbiAgYWJzdHJhY3QgY2hpbGRyZW46IFRyZWVOb2RlTW9kZWw8VD5bXTtcblxuICAvKlxuICAgKiBCZWluZyBhYmxlIHRvIHB1c2ggdGhpcyBkb3duIHRvIHRoZSBSZWN1cnNpdmVUcmVlTm9kZU1vZGVsIHdvdWxkIHJlcXVpcmUgdG9vIG11Y2ggd29yayBvbiB0aGUgYW5ndWxhciBjb21wb25lbnRzXG4gICAqIHJpZ2h0IG5vdyBmb3IgdGhlbSB0byBrbm93IHdoaWNoIGtpbmQgb2YgbW9kZWwgdGhleSBhcmUgdXNpbmcuIFNvIEknbSBsaWZ0aW5nIHRoZSBwdWJsaWMgcHJvcGVydGllcyB0byB0aGlzXG4gICAqIGFic3RyYWN0IHBhcmVudCBjbGFzcyBmb3Igbm93IGFuZCB3ZSBjYW4gcmV2aXNpdCBpdCBsYXRlciwgd2hlbiB3ZSdyZSBub3QgZmFjaW5nIHN1Y2ggYSBjbG9zZSBkZWFkbGluZS5cbiAgICovXG4gIHByaXZhdGUgX2xvYWRpbmcgPSBmYWxzZTtcbiAgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIHNldCBsb2FkaW5nKGlzTG9hZGluZzogYm9vbGVhbikge1xuICAgIHRoaXMuX2xvYWRpbmcgPSBpc0xvYWRpbmc7XG4gICAgdGhpcy5sb2FkaW5nJC5uZXh0KGlzTG9hZGluZyk7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIC8vIEp1c3QgdG8gYmUgc2FmZVxuICAgIHRoaXMuc2VsZWN0ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8vIFByb3BhZ2F0ZSBieSBkZWZhdWx0IHdoZW4gZWFnZXIsIGRvbid0IHByb3BhZ2F0ZSBpbiB0aGUgbGF6eS1sb2FkZWQgdHJlZS5cbiAgc2V0U2VsZWN0ZWQoc3RhdGU6IENsclNlbGVjdGVkU3RhdGUsIHByb3BhZ2F0ZVVwOiBib29sZWFuLCBwcm9wYWdhdGVEb3duOiBib29sZWFuKSB7XG4gICAgaWYgKHN0YXRlID09PSB0aGlzLnNlbGVjdGVkLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWQubmV4dChzdGF0ZSk7XG4gICAgaWYgKHByb3BhZ2F0ZURvd24gJiYgc3RhdGUgIT09IENsclNlbGVjdGVkU3RhdGUuSU5ERVRFUk1JTkFURSAmJiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gY2hpbGQuc2V0U2VsZWN0ZWQoc3RhdGUsIGZhbHNlLCB0cnVlKSk7XG4gICAgfVxuICAgIGlmIChwcm9wYWdhdGVVcCAmJiB0aGlzLnBhcmVudCkge1xuICAgICAgdGhpcy5wYXJlbnQuX3VwZGF0ZVNlbGVjdGlvbkZyb21DaGlsZHJlbigpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdGlvbihwcm9wYWdhdGU6IGJvb2xlYW4pIHtcbiAgICAvLyBCb3RoIHVuc2VsZWN0ZWQgYW5kIGluZGV0ZXJtaW5hdGUgdG9nZ2xlIHRvIHNlbGVjdGVkXG4gICAgY29uc3QgbmV3U3RhdGUgPVxuICAgICAgdGhpcy5zZWxlY3RlZC52YWx1ZSA9PT0gQ2xyU2VsZWN0ZWRTdGF0ZS5TRUxFQ1RFRCA/IENsclNlbGVjdGVkU3RhdGUuVU5TRUxFQ1RFRCA6IENsclNlbGVjdGVkU3RhdGUuU0VMRUNURUQ7XG4gICAgLy8gTk9URTogd2UgYWx3YXlzIHByb3BhZ2F0ZSBzZWxlY3Rpb24gdXAgaW4gdGhpcyBtZXRob2QgYmVjYXVzZSBpdCBpcyBvbmx5IGNhbGxlZCB3aGVuIHRoZSB1c2VyIHRha2VzIGFuIGFjdGlvbi5cbiAgICAvLyBJdCBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGZyb20gbGlmZWN5Y2xlIGhvb2tzIG9yIGFwcC1wcm92aWRlZCBpbnB1dHMuXG4gICAgdGhpcy5zZXRTZWxlY3RlZChuZXdTdGF0ZSwgdHJ1ZSwgcHJvcGFnYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZVNlbGVjdGlvblN0YXRlRnJvbUNoaWxkcmVuKCkge1xuICAgIGxldCBvbmVTZWxlY3RlZCA9IGZhbHNlO1xuICAgIGxldCBvbmVVbnNlbGVjdGVkID0gZmFsc2U7XG4gICAgLy8gVXNpbmcgYSBnb29kIG9sZCBmb3IgbG9vcCB0byBleGl0IGFzIHNvb24gYXMgd2UgY2FuIHRlbGwsIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2Ugb24gbGFyZ2UgdHJlZXMuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICBzd2l0Y2ggKGNoaWxkLnNlbGVjdGVkLnZhbHVlKSB7XG4gICAgICAgIGNhc2UgQ2xyU2VsZWN0ZWRTdGF0ZS5JTkRFVEVSTUlOQVRFOlxuICAgICAgICAgIHJldHVybiBDbHJTZWxlY3RlZFN0YXRlLklOREVURVJNSU5BVEU7XG4gICAgICAgIGNhc2UgQ2xyU2VsZWN0ZWRTdGF0ZS5TRUxFQ1RFRDpcbiAgICAgICAgICBvbmVTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgaWYgKG9uZVVuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBDbHJTZWxlY3RlZFN0YXRlLklOREVURVJNSU5BVEU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENsclNlbGVjdGVkU3RhdGUuVU5TRUxFQ1RFRDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyBEZWZhdWx0IGlzIHRoZSBzYW1lIGFzIHVuc2VsZWN0ZWQsIGluIGNhc2UgYW4gdW5kZWZpbmVkIHNvbWVob3cgbWFkZSBpdCBhbGwgdGhlIHdheSBoZXJlLlxuICAgICAgICAgIG9uZVVuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIGlmIChvbmVTZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIENsclNlbGVjdGVkU3RhdGUuSU5ERVRFUk1JTkFURTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghb25lU2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybiBDbHJTZWxlY3RlZFN0YXRlLlVOU0VMRUNURUQ7XG4gICAgfSBlbHNlIGlmICghb25lVW5zZWxlY3RlZCkge1xuICAgICAgcmV0dXJuIENsclNlbGVjdGVkU3RhdGUuU0VMRUNURUQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBDbHJTZWxlY3RlZFN0YXRlLlVOU0VMRUNURUQ7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICogSW50ZXJuYWwsIGJ1dCBuZWVkcyB0byBiZSBjYWxsZWQgYnkgb3RoZXIgbm9kZXNcbiAgICovXG4gIF91cGRhdGVTZWxlY3Rpb25Gcm9tQ2hpbGRyZW4oKSB7XG4gICAgY29uc3QgbmV3U3RhdGUgPSB0aGlzLmNvbXB1dGVTZWxlY3Rpb25TdGF0ZUZyb21DaGlsZHJlbigpO1xuICAgIGlmIChuZXdTdGF0ZSA9PT0gdGhpcy5zZWxlY3RlZC52YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkLm5leHQobmV3U3RhdGUpO1xuICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgdGhpcy5wYXJlbnQuX3VwZGF0ZVNlbGVjdGlvbkZyb21DaGlsZHJlbigpO1xuICAgIH1cbiAgfVxufVxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS90cmVlLXZpZXcvbW9kZWxzL3RyZWUtbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxNQUFNLE9BQWdCLGFBQWE7SUFBbkM7UUFHRSxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQW1CLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBYTlFOzs7O1dBSUc7UUFDSyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQXFGakQsQ0FBQztJQW5GQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLFNBQWtCO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPO1FBQ0wsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxXQUFXLENBQUMsS0FBdUIsRUFBRSxXQUFvQixFQUFFLGFBQXNCO1FBQy9FLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ2pDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksYUFBYSxJQUFJLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLDRCQUE0QixFQUFFLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQWtCO1FBQ2hDLHVEQUF1RDtRQUN2RCxNQUFNLFFBQVEsR0FDWixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1FBQzlHLGlIQUFpSDtRQUNqSCx5RUFBeUU7UUFDekUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxpQ0FBaUM7UUFDdkMsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMxQixtR0FBbUc7UUFDbkcsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pDLFFBQVEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7Z0JBQzVCLEtBQUssZ0JBQWdCLENBQUMsYUFBYTtvQkFDakMsT0FBTyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7Z0JBQ3hDLEtBQUssZ0JBQWdCLENBQUMsUUFBUTtvQkFDNUIsV0FBVyxHQUFHLElBQUksQ0FBQztvQkFDbkIsSUFBSSxhQUFhLEVBQUU7d0JBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsYUFBYSxDQUFDO3FCQUN2QztvQkFDRCxNQUFNO2dCQUNSLEtBQUssZ0JBQWdCLENBQUMsVUFBVSxDQUFDO2dCQUNqQztvQkFDRSw0RkFBNEY7b0JBQzVGLGFBQWEsR0FBRyxJQUFJLENBQUM7b0JBQ3JCLElBQUksV0FBVyxFQUFFO3dCQUNmLE9BQU8sZ0JBQWdCLENBQUMsYUFBYSxDQUFDO3FCQUN2QztvQkFDRCxNQUFNO2FBQ1Q7U0FDRjtRQUNELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7U0FDcEM7YUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3pCLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1NBQ2xDO2FBQU07WUFDTCxPQUFPLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILDRCQUE0QjtRQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztRQUMxRCxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRTtZQUNwQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLDRCQUE0QixFQUFFLENBQUM7U0FDNUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENsclNlbGVjdGVkU3RhdGUgfSBmcm9tICcuL3NlbGVjdGVkLXN0YXRlLmVudW0nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmVlTm9kZU1vZGVsPFQ+IHtcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIGV4cGFuZGVkOiBib29sZWFuO1xuICBzZWxlY3RlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2xyU2VsZWN0ZWRTdGF0ZT4oQ2xyU2VsZWN0ZWRTdGF0ZS5VTlNFTEVDVEVEKTtcbiAgbW9kZWw6IFQgfCBudWxsO1xuICB0ZXh0Q29udGVudDogc3RyaW5nO1xuICAvKlxuICAgKiBJZGVhbGx5LCBJIHdvdWxkIGxpa2UgdG8gdXNlIGEgcG9seW1vcnBoaWMgdGhpcyB0eXBlIGhlcmUgdG8gZW5zdXJlIGhvbW9nZW5laXR5IG9mIHRoZSB0cmVlLCBzb21ldGhpbmcgbGlrZTpcbiAgICogYWJzdHJhY3QgcGFyZW50OiB0aGlzPFQ+IHwgbnVsbDtcbiAgICogYWJzdHJhY3QgY2hpbGRyZW46IHRoaXM8VD5bXTtcbiAgICogQnV0IEknbSBoaXR0aW5nIGxpbWl0YXRpb25zIG9uIHR5cGVzY3JpcHQgbm90IGFsbG93aW5nIHRoYXQgdHlwZSBpbiBjb25zdHJ1Y3RvcnMgb3Igc3RhdGljIG1ldGhvZHMuXG4gICAqIFNvIEknbSByZXNvcnRpbmcgdG8gZm9yY2luZyBvdmVycmlkZSB3aXRoIG1vcmUgcHJlY2lzZSB0eXBlcyBieSBtYXJraW5nIHRoZXNlIGFic3RyYWN0LlxuICAgKi9cbiAgYWJzdHJhY3QgcGFyZW50OiBUcmVlTm9kZU1vZGVsPFQ+IHwgbnVsbDtcbiAgYWJzdHJhY3QgY2hpbGRyZW46IFRyZWVOb2RlTW9kZWw8VD5bXTtcblxuICAvKlxuICAgKiBCZWluZyBhYmxlIHRvIHB1c2ggdGhpcyBkb3duIHRvIHRoZSBSZWN1cnNpdmVUcmVlTm9kZU1vZGVsIHdvdWxkIHJlcXVpcmUgdG9vIG11Y2ggd29yayBvbiB0aGUgYW5ndWxhciBjb21wb25lbnRzXG4gICAqIHJpZ2h0IG5vdyBmb3IgdGhlbSB0byBrbm93IHdoaWNoIGtpbmQgb2YgbW9kZWwgdGhleSBhcmUgdXNpbmcuIFNvIEknbSBsaWZ0aW5nIHRoZSBwdWJsaWMgcHJvcGVydGllcyB0byB0aGlzXG4gICAqIGFic3RyYWN0IHBhcmVudCBjbGFzcyBmb3Igbm93IGFuZCB3ZSBjYW4gcmV2aXNpdCBpdCBsYXRlciwgd2hlbiB3ZSdyZSBub3QgZmFjaW5nIHN1Y2ggYSBjbG9zZSBkZWFkbGluZS5cbiAgICovXG4gIHByaXZhdGUgX2xvYWRpbmcgPSBmYWxzZTtcbiAgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIHNldCBsb2FkaW5nKGlzTG9hZGluZzogYm9vbGVhbikge1xuICAgIHRoaXMuX2xvYWRpbmcgPSBpc0xvYWRpbmc7XG4gICAgdGhpcy5sb2FkaW5nJC5uZXh0KGlzTG9hZGluZyk7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIC8vIEp1c3QgdG8gYmUgc2FmZVxuICAgIHRoaXMuc2VsZWN0ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8vIFByb3BhZ2F0ZSBieSBkZWZhdWx0IHdoZW4gZWFnZXIsIGRvbid0IHByb3BhZ2F0ZSBpbiB0aGUgbGF6eS1sb2FkZWQgdHJlZS5cbiAgc2V0U2VsZWN0ZWQoc3RhdGU6IENsclNlbGVjdGVkU3RhdGUsIHByb3BhZ2F0ZVVwOiBib29sZWFuLCBwcm9wYWdhdGVEb3duOiBib29sZWFuKSB7XG4gICAgaWYgKHN0YXRlID09PSB0aGlzLnNlbGVjdGVkLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWQubmV4dChzdGF0ZSk7XG4gICAgaWYgKHByb3BhZ2F0ZURvd24gJiYgc3RhdGUgIT09IENsclNlbGVjdGVkU3RhdGUuSU5ERVRFUk1JTkFURSAmJiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gY2hpbGQuc2V0U2VsZWN0ZWQoc3RhdGUsIGZhbHNlLCB0cnVlKSk7XG4gICAgfVxuICAgIGlmIChwcm9wYWdhdGVVcCAmJiB0aGlzLnBhcmVudCkge1xuICAgICAgdGhpcy5wYXJlbnQuX3VwZGF0ZVNlbGVjdGlvbkZyb21DaGlsZHJlbigpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdGlvbihwcm9wYWdhdGU6IGJvb2xlYW4pIHtcbiAgICAvLyBCb3RoIHVuc2VsZWN0ZWQgYW5kIGluZGV0ZXJtaW5hdGUgdG9nZ2xlIHRvIHNlbGVjdGVkXG4gICAgY29uc3QgbmV3U3RhdGUgPVxuICAgICAgdGhpcy5zZWxlY3RlZC52YWx1ZSA9PT0gQ2xyU2VsZWN0ZWRTdGF0ZS5TRUxFQ1RFRCA/IENsclNlbGVjdGVkU3RhdGUuVU5TRUxFQ1RFRCA6IENsclNlbGVjdGVkU3RhdGUuU0VMRUNURUQ7XG4gICAgLy8gTk9URTogd2UgYWx3YXlzIHByb3BhZ2F0ZSBzZWxlY3Rpb24gdXAgaW4gdGhpcyBtZXRob2QgYmVjYXVzZSBpdCBpcyBvbmx5IGNhbGxlZCB3aGVuIHRoZSB1c2VyIHRha2VzIGFuIGFjdGlvbi5cbiAgICAvLyBJdCBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGZyb20gbGlmZWN5Y2xlIGhvb2tzIG9yIGFwcC1wcm92aWRlZCBpbnB1dHMuXG4gICAgdGhpcy5zZXRTZWxlY3RlZChuZXdTdGF0ZSwgdHJ1ZSwgcHJvcGFnYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZVNlbGVjdGlvblN0YXRlRnJvbUNoaWxkcmVuKCkge1xuICAgIGxldCBvbmVTZWxlY3RlZCA9IGZhbHNlO1xuICAgIGxldCBvbmVVbnNlbGVjdGVkID0gZmFsc2U7XG4gICAgLy8gVXNpbmcgYSBnb29kIG9sZCBmb3IgbG9vcCB0byBleGl0IGFzIHNvb24gYXMgd2UgY2FuIHRlbGwsIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2Ugb24gbGFyZ2UgdHJlZXMuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICBzd2l0Y2ggKGNoaWxkLnNlbGVjdGVkLnZhbHVlKSB7XG4gICAgICAgIGNhc2UgQ2xyU2VsZWN0ZWRTdGF0ZS5JTkRFVEVSTUlOQVRFOlxuICAgICAgICAgIHJldHVybiBDbHJTZWxlY3RlZFN0YXRlLklOREVURVJNSU5BVEU7XG4gICAgICAgIGNhc2UgQ2xyU2VsZWN0ZWRTdGF0ZS5TRUxFQ1RFRDpcbiAgICAgICAgICBvbmVTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgaWYgKG9uZVVuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBDbHJTZWxlY3RlZFN0YXRlLklOREVURVJNSU5BVEU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENsclNlbGVjdGVkU3RhdGUuVU5TRUxFQ1RFRDpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyBEZWZhdWx0IGlzIHRoZSBzYW1lIGFzIHVuc2VsZWN0ZWQsIGluIGNhc2UgYW4gdW5kZWZpbmVkIHNvbWVob3cgbWFkZSBpdCBhbGwgdGhlIHdheSBoZXJlLlxuICAgICAgICAgIG9uZVVuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIGlmIChvbmVTZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIENsclNlbGVjdGVkU3RhdGUuSU5ERVRFUk1JTkFURTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghb25lU2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybiBDbHJTZWxlY3RlZFN0YXRlLlVOU0VMRUNURUQ7XG4gICAgfSBlbHNlIGlmICghb25lVW5zZWxlY3RlZCkge1xuICAgICAgcmV0dXJuIENsclNlbGVjdGVkU3RhdGUuU0VMRUNURUQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBDbHJTZWxlY3RlZFN0YXRlLlVOU0VMRUNURUQ7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICogSW50ZXJuYWwsIGJ1dCBuZWVkcyB0byBiZSBjYWxsZWQgYnkgb3RoZXIgbm9kZXNcbiAgICovXG4gIF91cGRhdGVTZWxlY3Rpb25Gcm9tQ2hpbGRyZW4oKSB7XG4gICAgY29uc3QgbmV3U3RhdGUgPSB0aGlzLmNvbXB1dGVTZWxlY3Rpb25TdGF0ZUZyb21DaGlsZHJlbigpO1xuICAgIGlmIChuZXdTdGF0ZSA9PT0gdGhpcy5zZWxlY3RlZC52YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkLm5leHQobmV3U3RhdGUpO1xuICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgdGhpcy5wYXJlbnQuX3VwZGF0ZVNlbGVjdGlvbkZyb21DaGlsZHJlbigpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -83,6 +83,71 @@ export class TreeFocusManagerService {
83
83
  return this.findNextFocusable(model);
84
84
  }
85
85
  }
86
+ findDescendentNodeStartsWith(searchString, model) {
87
+ if (model.expanded && model.children.length > 0) {
88
+ for (const childModel of model.children) {
89
+ const found = this.findNodeStartsWith(searchString, childModel);
90
+ if (found) {
91
+ return found;
92
+ }
93
+ }
94
+ }
95
+ return null;
96
+ }
97
+ findSiblingNodeStartsWith(searchString, model) {
98
+ const siblings = this.findSiblings(model);
99
+ const selfIndex = siblings.indexOf(model);
100
+ // Look from sibling nodes
101
+ for (let i = selfIndex + 1; i < siblings.length; i++) {
102
+ const siblingModel = siblings[i];
103
+ const found = this.findNodeStartsWith(searchString, siblingModel);
104
+ if (found) {
105
+ return found;
106
+ }
107
+ }
108
+ return null;
109
+ }
110
+ findRootNodeStartsWith(searchString, model) {
111
+ for (const rootModel of this.rootNodeModels) {
112
+ // Don't look from a parent yet
113
+ if (model.parent && model.parent === rootModel) {
114
+ continue;
115
+ }
116
+ const found = this.findNodeStartsWith(searchString, rootModel);
117
+ if (found) {
118
+ return found;
119
+ }
120
+ }
121
+ return null;
122
+ }
123
+ findNodeStartsWith(searchString, model) {
124
+ if (!model) {
125
+ return null;
126
+ }
127
+ if (model.textContent.startsWith(searchString)) {
128
+ return model;
129
+ }
130
+ return this.findDescendentNodeStartsWith(searchString, model);
131
+ }
132
+ findClosestNodeStartsWith(searchString, model) {
133
+ if (!model) {
134
+ return null;
135
+ }
136
+ const foundFromDescendents = this.findDescendentNodeStartsWith(searchString, model);
137
+ if (foundFromDescendents) {
138
+ return foundFromDescendents;
139
+ }
140
+ const foundFromSiblings = this.findSiblingNodeStartsWith(searchString, model);
141
+ if (foundFromSiblings) {
142
+ return foundFromSiblings;
143
+ }
144
+ const foundFromRootNodes = this.findRootNodeStartsWith(searchString, model);
145
+ if (foundFromRootNodes) {
146
+ return foundFromRootNodes;
147
+ }
148
+ // Now look from its own direct parent
149
+ return this.findNodeStartsWith(searchString, model.parent);
150
+ }
86
151
  focusNode(model) {
87
152
  if (model) {
88
153
  this._focusRequest.next(model.nodeId);
@@ -112,10 +177,13 @@ export class TreeFocusManagerService {
112
177
  focusNodeBelow(model) {
113
178
  this.focusNode(this.findNodeBelow(model));
114
179
  }
180
+ focusNodeStartsWith(searchString, model) {
181
+ this.focusNode(this.findClosestNodeStartsWith(searchString, model));
182
+ }
115
183
  }
116
184
  TreeFocusManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TreeFocusManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
117
185
  TreeFocusManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TreeFocusManagerService });
118
186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TreeFocusManagerService, decorators: [{
119
187
  type: Injectable
120
188
  }] });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1mb2N1cy1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL3RyZWUtdmlldy90cmVlLWZvY3VzLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBTVUsa0JBQWEsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUvQyxpQkFBWSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO0tBc0h2RDtJQXBIQyxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQXVCO1FBQzFDLDRFQUE0RTtRQUM1RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUM5QjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQXVCO1FBQ25ELDRGQUE0RjtRQUM1RixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0MsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM5QzthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUF1QjtRQUMvQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQyxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxPQUFPLFFBQVEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDaEM7YUFBTSxJQUFJLFNBQVMsS0FBSyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsTUFBTSxZQUFZLEdBQ2hCLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzRyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQXVCO1FBQzNDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFDLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRTtZQUNuQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDckI7YUFBTSxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQXVCO1FBQzNDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUF1QjtRQUMvQixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFjO1FBQ2pDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXVCO1FBQ2pDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBdUI7UUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUF1QjtRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDOztvSEE1SFUsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJlZU5vZGVNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3RyZWUtbm9kZS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmVlRm9jdXNNYW5hZ2VyU2VydmljZTxUPiB7XG4gIHB1YmxpYyByb290Tm9kZU1vZGVsczogVHJlZU5vZGVNb2RlbDxUPltdO1xuXG4gIHByaXZhdGUgZm9jdXNlZE5vZGVJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2ZvY3VzUmVxdWVzdDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9mb2N1c0NoYW5nZTogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcblxuICBnZXQgZm9jdXNSZXF1ZXN0KCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzUmVxdWVzdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBmb2N1c0NoYW5nZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c0NoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFNpYmxpbmdzKG1vZGVsOiBUcmVlTm9kZU1vZGVsPFQ+KTogVHJlZU5vZGVNb2RlbDxUPltdIHtcbiAgICAvLyB0aGUgbWV0aG9kIHdpbGwgcmV0dXJuIG5vdCBvbmx5IHNpYmxpbmcgbW9kZWxzIGJ1dCBhbHNvIGl0c2VsZiBhbW9uZyB0aGVtXG4gICAgaWYgKG1vZGVsLnBhcmVudCkge1xuICAgICAgcmV0dXJuIG1vZGVsLnBhcmVudC5jaGlsZHJlbjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucm9vdE5vZGVNb2RlbHM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTGFzdFZpc2libGVJbk5vZGUobW9kZWw6IFRyZWVOb2RlTW9kZWw8VD4pOiBUcmVlTm9kZU1vZGVsPFQ+IHtcbiAgICAvLyB0aGUgbWV0aG9kIHdpbGwgdHJhdmVyc2UgdGhyb3VnaCB1bnRpbCBpdCBmaW5kcyB0aGUgbGFzdCB2aXNpYmxlIG5vZGUgZnJvbSB0aGUgZ2l2ZW4gbm9kZVxuICAgIGlmICghbW9kZWwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAobW9kZWwuZXhwYW5kZWQgJiYgbW9kZWwuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY2hpbGRyZW4gPSBtb2RlbC5jaGlsZHJlbjtcbiAgICAgIGNvbnN0IGxhc3RDaGlsZCA9IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdO1xuICAgICAgcmV0dXJuIHRoaXMuZmluZExhc3RWaXNpYmxlSW5Ob2RlKGxhc3RDaGlsZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmROZXh0Rm9jdXNhYmxlKG1vZGVsOiBUcmVlTm9kZU1vZGVsPFQ+KTogVHJlZU5vZGVNb2RlbDxUPiB7XG4gICAgaWYgKCFtb2RlbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgc2libGluZ3MgPSB0aGlzLmZpbmRTaWJsaW5ncyhtb2RlbCk7XG4gICAgY29uc3Qgc2VsZkluZGV4ID0gc2libGluZ3MuaW5kZXhPZihtb2RlbCk7XG5cbiAgICBpZiAoc2VsZkluZGV4IDwgc2libGluZ3MubGVuZ3RoIC0gMSkge1xuICAgICAgcmV0dXJuIHNpYmxpbmdzW3NlbGZJbmRleCArIDFdO1xuICAgIH0gZWxzZSBpZiAoc2VsZkluZGV4ID09PSBzaWJsaW5ncy5sZW5ndGggLSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kTmV4dEZvY3VzYWJsZShtb2RlbC5wYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZmluZExhc3RWaXNpYmxlSW5UcmVlKCk6IFRyZWVOb2RlTW9kZWw8VD4ge1xuICAgIGNvbnN0IGxhc3RSb290Tm9kZSA9XG4gICAgICB0aGlzLnJvb3ROb2RlTW9kZWxzICYmIHRoaXMucm9vdE5vZGVNb2RlbHMubGVuZ3RoICYmIHRoaXMucm9vdE5vZGVNb2RlbHNbdGhpcy5yb290Tm9kZU1vZGVscy5sZW5ndGggLSAxXTtcbiAgICByZXR1cm4gdGhpcy5maW5kTGFzdFZpc2libGVJbk5vZGUobGFzdFJvb3ROb2RlKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE5vZGVBYm92ZShtb2RlbDogVHJlZU5vZGVNb2RlbDxUPik6IFRyZWVOb2RlTW9kZWw8VD4ge1xuICAgIGlmICghbW9kZWwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNpYmxpbmdzID0gdGhpcy5maW5kU2libGluZ3MobW9kZWwpO1xuICAgIGNvbnN0IHNlbGZJbmRleCA9IHNpYmxpbmdzLmluZGV4T2YobW9kZWwpO1xuXG4gICAgaWYgKHNlbGZJbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG1vZGVsLnBhcmVudDtcbiAgICB9IGVsc2UgaWYgKHNlbGZJbmRleCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRMYXN0VmlzaWJsZUluTm9kZShzaWJsaW5nc1tzZWxmSW5kZXggLSAxXSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTm9kZUJlbG93KG1vZGVsOiBUcmVlTm9kZU1vZGVsPFQ+KTogVHJlZU5vZGVNb2RlbDxUPiB7XG4gICAgaWYgKCFtb2RlbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKG1vZGVsLmV4cGFuZGVkICYmIG1vZGVsLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBtb2RlbC5jaGlsZHJlblswXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZE5leHRGb2N1c2FibGUobW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIGZvY3VzTm9kZShtb2RlbDogVHJlZU5vZGVNb2RlbDxUPik6IHZvaWQge1xuICAgIGlmIChtb2RlbCkge1xuICAgICAgdGhpcy5fZm9jdXNSZXF1ZXN0Lm5leHQobW9kZWwubm9kZUlkKTtcbiAgICB9XG4gIH1cblxuICBicm9hZGNhc3RGb2N1c2VkTm9kZShub2RlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvY3VzZWROb2RlSWQgIT09IG5vZGVJZCkge1xuICAgICAgdGhpcy5mb2N1c2VkTm9kZUlkID0gbm9kZUlkO1xuICAgICAgdGhpcy5fZm9jdXNDaGFuZ2UubmV4dChub2RlSWQpO1xuICAgIH1cbiAgfVxuXG4gIGZvY3VzUGFyZW50KG1vZGVsOiBUcmVlTm9kZU1vZGVsPFQ+KTogdm9pZCB7XG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICB0aGlzLmZvY3VzTm9kZShtb2RlbC5wYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGZvY3VzRmlyc3RWaXNpYmxlTm9kZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmb2N1c01vZGVsID0gdGhpcy5yb290Tm9kZU1vZGVscyAmJiB0aGlzLnJvb3ROb2RlTW9kZWxzWzBdO1xuICAgIHRoaXMuZm9jdXNOb2RlKGZvY3VzTW9kZWwpO1xuICB9XG5cbiAgZm9jdXNMYXN0VmlzaWJsZU5vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c05vZGUodGhpcy5maW5kTGFzdFZpc2libGVJblRyZWUoKSk7XG4gIH1cblxuICBmb2N1c05vZGVBYm92ZShtb2RlbDogVHJlZU5vZGVNb2RlbDxUPik6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNOb2RlKHRoaXMuZmluZE5vZGVBYm92ZShtb2RlbCkpO1xuICB9XG5cbiAgZm9jdXNOb2RlQmVsb3cobW9kZWw6IFRyZWVOb2RlTW9kZWw8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzTm9kZSh0aGlzLmZpbmROb2RlQmVsb3cobW9kZWwpKTtcbiAgfVxufVxuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1mb2N1cy1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL3RyZWUtdmlldy90cmVlLWZvY3VzLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBTVUsa0JBQWEsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUvQyxpQkFBWSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO0tBME12RDtJQXhNQyxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQXVCO1FBQzFDLDRFQUE0RTtRQUM1RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUM5QjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQXVCO1FBQ25ELDRGQUE0RjtRQUM1RixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0MsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM5QzthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUF1QjtRQUMvQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQyxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxPQUFPLFFBQVEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDaEM7YUFBTSxJQUFJLFNBQVMsS0FBSyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsTUFBTSxZQUFZLEdBQ2hCLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzRyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQXVCO1FBQzNDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFDLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRTtZQUNuQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDckI7YUFBTSxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQXVCO1FBQzNDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVPLDRCQUE0QixDQUFDLFlBQW9CLEVBQUUsS0FBdUI7UUFDaEYsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQyxLQUFLLE1BQU0sVUFBVSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2hFLElBQUksS0FBSyxFQUFFO29CQUNULE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLHlCQUF5QixDQUFDLFlBQW9CLEVBQUUsS0FBdUI7UUFDN0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFDLDBCQUEwQjtRQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDbEUsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsWUFBb0IsRUFBRSxLQUF1QjtRQUMxRSxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDM0MsK0JBQStCO1lBQy9CLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDOUMsU0FBUzthQUNWO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMvRCxJQUFJLEtBQUssRUFBRTtnQkFDVCxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxZQUFvQixFQUFFLEtBQXVCO1FBQ3RFLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUM5QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxZQUFvQixFQUFFLEtBQXVCO1FBQzdFLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXBGLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsT0FBTyxvQkFBb0IsQ0FBQztTQUM3QjtRQUVELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU5RSxJQUFJLGlCQUFpQixFQUFFO1lBQ3JCLE9BQU8saUJBQWlCLENBQUM7U0FDMUI7UUFFRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFNUUsSUFBSSxrQkFBa0IsRUFBRTtZQUN0QixPQUFPLGtCQUFrQixDQUFDO1NBQzNCO1FBQ0Qsc0NBQXNDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUF1QjtRQUMvQixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFjO1FBQ2pDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXVCO1FBQ2pDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBdUI7UUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUF1QjtRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsWUFBb0IsRUFBRSxLQUF1QjtRQUMvRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDOztvSEFoTlUsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJlZU5vZGVNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3RyZWUtbm9kZS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmVlRm9jdXNNYW5hZ2VyU2VydmljZTxUPiB7XG4gIHB1YmxpYyByb290Tm9kZU1vZGVsczogVHJlZU5vZGVNb2RlbDxUPltdO1xuXG4gIHByaXZhdGUgZm9jdXNlZE5vZGVJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2ZvY3VzUmVxdWVzdDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9mb2N1c0NoYW5nZTogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcblxuICBnZXQgZm9jdXNSZXF1ZXN0KCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzUmVxdWVzdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBmb2N1c0NoYW5nZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c0NoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFNpYmxpbmdzKG1vZGVsOiBUcmVlTm9kZU1vZGVsPFQ+KTogVHJlZU5vZGVNb2RlbDxUPltdIHtcbiAgICAvLyB0aGUgbWV0aG9kIHdpbGwgcmV0dXJuIG5vdCBvbmx5IHNpYmxpbmcgbW9kZWxzIGJ1dCBhbHNvIGl0c2VsZiBhbW9uZyB0aGVtXG4gICAgaWYgKG1vZGVsLnBhcmVudCkge1xuICAgICAgcmV0dXJuIG1vZGVsLnBhcmVudC5jaGlsZHJlbjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucm9vdE5vZGVNb2RlbHM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTGFzdFZpc2libGVJbk5vZGUobW9kZWw6IFRyZWVOb2RlTW9kZWw8VD4pOiBUcmVlTm9kZU1vZGVsPFQ+IHtcbiAgICAvLyB0aGUgbWV0aG9kIHdpbGwgdHJhdmVyc2UgdGhyb3VnaCB1bnRpbCBpdCBmaW5kcyB0aGUgbGFzdCB2aXNpYmxlIG5vZGUgZnJvbSB0aGUgZ2l2ZW4gbm9kZVxuICAgIGlmICghbW9kZWwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAobW9kZWwuZXhwYW5kZWQgJiYgbW9kZWwuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY2hpbGRyZW4gPSBtb2RlbC5jaGlsZHJlbjtcbiAgICAgIGNvbnN0IGxhc3RDaGlsZCA9IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdO1xuICAgICAgcmV0dXJuIHRoaXMuZmluZExhc3RWaXNpYmxlSW5Ob2RlKGxhc3RDaGlsZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmROZXh0Rm9jdXNhYmxlKG1vZGVsOiBUcmVlTm9kZU1vZGVsPFQ+KTogVHJlZU5vZGVNb2RlbDxUPiB7XG4gICAgaWYgKCFtb2RlbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgc2libGluZ3MgPSB0aGlzLmZpbmRTaWJsaW5ncyhtb2RlbCk7XG4gICAgY29uc3Qgc2VsZkluZGV4ID0gc2libGluZ3MuaW5kZXhPZihtb2RlbCk7XG5cbiAgICBpZiAoc2VsZkluZGV4IDwgc2libGluZ3MubGVuZ3RoIC0gMSkge1xuICAgICAgcmV0dXJuIHNpYmxpbmdzW3NlbGZJbmRleCArIDFdO1xuICAgIH0gZWxzZSBpZiAoc2VsZkluZGV4ID09PSBzaWJsaW5ncy5sZW5ndGggLSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kTmV4dEZvY3VzYWJsZShtb2RlbC5wYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZmluZExhc3RWaXNpYmxlSW5UcmVlKCk6IFRyZWVOb2RlTW9kZWw8VD4ge1xuICAgIGNvbnN0IGxhc3RSb290Tm9kZSA9XG4gICAgICB0aGlzLnJvb3ROb2RlTW9kZWxzICYmIHRoaXMucm9vdE5vZGVNb2RlbHMubGVuZ3RoICYmIHRoaXMucm9vdE5vZGVNb2RlbHNbdGhpcy5yb290Tm9kZU1vZGVscy5sZW5ndGggLSAxXTtcbiAgICByZXR1cm4gdGhpcy5maW5kTGFzdFZpc2libGVJbk5vZGUobGFzdFJvb3ROb2RlKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE5vZGVBYm92ZShtb2RlbDogVHJlZU5vZGVNb2RlbDxUPik6IFRyZWVOb2RlTW9kZWw8VD4ge1xuICAgIGlmICghbW9kZWwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNpYmxpbmdzID0gdGhpcy5maW5kU2libGluZ3MobW9kZWwpO1xuICAgIGNvbnN0IHNlbGZJbmRleCA9IHNpYmxpbmdzLmluZGV4T2YobW9kZWwpO1xuXG4gICAgaWYgKHNlbGZJbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG1vZGVsLnBhcmVudDtcbiAgICB9IGVsc2UgaWYgKHNlbGZJbmRleCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRMYXN0VmlzaWJsZUluTm9kZShzaWJsaW5nc1tzZWxmSW5kZXggLSAxXSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTm9kZUJlbG93KG1vZGVsOiBUcmVlTm9kZU1vZGVsPFQ+KTogVHJlZU5vZGVNb2RlbDxUPiB7XG4gICAgaWYgKCFtb2RlbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKG1vZGVsLmV4cGFuZGVkICYmIG1vZGVsLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBtb2RlbC5jaGlsZHJlblswXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZE5leHRGb2N1c2FibGUobW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZERlc2NlbmRlbnROb2RlU3RhcnRzV2l0aChzZWFyY2hTdHJpbmc6IHN0cmluZywgbW9kZWw6IFRyZWVOb2RlTW9kZWw8VD4pOiBUcmVlTm9kZU1vZGVsPFQ+IHtcbiAgICBpZiAobW9kZWwuZXhwYW5kZWQgJiYgbW9kZWwuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBjaGlsZE1vZGVsIG9mIG1vZGVsLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5maW5kTm9kZVN0YXJ0c1dpdGgoc2VhcmNoU3RyaW5nLCBjaGlsZE1vZGVsKTtcbiAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kU2libGluZ05vZGVTdGFydHNXaXRoKHNlYXJjaFN0cmluZzogc3RyaW5nLCBtb2RlbDogVHJlZU5vZGVNb2RlbDxUPik6IFRyZWVOb2RlTW9kZWw8VD4ge1xuICAgIGNvbnN0IHNpYmxpbmdzID0gdGhpcy5maW5kU2libGluZ3MobW9kZWwpO1xuICAgIGNvbnN0IHNlbGZJbmRleCA9IHNpYmxpbmdzLmluZGV4T2YobW9kZWwpO1xuXG4gICAgLy8gTG9vayBmcm9tIHNpYmxpbmcgbm9kZXNcbiAgICBmb3IgKGxldCBpID0gc2VsZkluZGV4ICsgMTsgaSA8IHNpYmxpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBzaWJsaW5nTW9kZWwgPSBzaWJsaW5nc1tpXTtcbiAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5maW5kTm9kZVN0YXJ0c1dpdGgoc2VhcmNoU3RyaW5nLCBzaWJsaW5nTW9kZWwpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGZpbmRSb290Tm9kZVN0YXJ0c1dpdGgoc2VhcmNoU3RyaW5nOiBzdHJpbmcsIG1vZGVsOiBUcmVlTm9kZU1vZGVsPFQ+KTogVHJlZU5vZGVNb2RlbDxUPiB7XG4gICAgZm9yIChjb25zdCByb290TW9kZWwgb2YgdGhpcy5yb290Tm9kZU1vZGVscykge1xuICAgICAgLy8gRG9uJ3QgbG9vayBmcm9tIGEgcGFyZW50IHlldFxuICAgICAgaWYgKG1vZGVsLnBhcmVudCAmJiBtb2RlbC5wYXJlbnQgPT09IHJvb3RNb2RlbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLmZpbmROb2RlU3RhcnRzV2l0aChzZWFyY2hTdHJpbmcsIHJvb3RNb2RlbCk7XG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE5vZGVTdGFydHNXaXRoKHNlYXJjaFN0cmluZzogc3RyaW5nLCBtb2RlbDogVHJlZU5vZGVNb2RlbDxUPik6IFRyZWVOb2RlTW9kZWw8VD4ge1xuICAgIGlmICghbW9kZWwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChtb2RlbC50ZXh0Q29udGVudC5zdGFydHNXaXRoKHNlYXJjaFN0cmluZykpIHtcbiAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5maW5kRGVzY2VuZGVudE5vZGVTdGFydHNXaXRoKHNlYXJjaFN0cmluZywgbW9kZWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQ2xvc2VzdE5vZGVTdGFydHNXaXRoKHNlYXJjaFN0cmluZzogc3RyaW5nLCBtb2RlbDogVHJlZU5vZGVNb2RlbDxUPik6IFRyZWVOb2RlTW9kZWw8VD4ge1xuICAgIGlmICghbW9kZWwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kRnJvbURlc2NlbmRlbnRzID0gdGhpcy5maW5kRGVzY2VuZGVudE5vZGVTdGFydHNXaXRoKHNlYXJjaFN0cmluZywgbW9kZWwpO1xuXG4gICAgaWYgKGZvdW5kRnJvbURlc2NlbmRlbnRzKSB7XG4gICAgICByZXR1cm4gZm91bmRGcm9tRGVzY2VuZGVudHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm91bmRGcm9tU2libGluZ3MgPSB0aGlzLmZpbmRTaWJsaW5nTm9kZVN0YXJ0c1dpdGgoc2VhcmNoU3RyaW5nLCBtb2RlbCk7XG5cbiAgICBpZiAoZm91bmRGcm9tU2libGluZ3MpIHtcbiAgICAgIHJldHVybiBmb3VuZEZyb21TaWJsaW5ncztcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZEZyb21Sb290Tm9kZXMgPSB0aGlzLmZpbmRSb290Tm9kZVN0YXJ0c1dpdGgoc2VhcmNoU3RyaW5nLCBtb2RlbCk7XG5cbiAgICBpZiAoZm91bmRGcm9tUm9vdE5vZGVzKSB7XG4gICAgICByZXR1cm4gZm91bmRGcm9tUm9vdE5vZGVzO1xuICAgIH1cbiAgICAvLyBOb3cgbG9vayBmcm9tIGl0cyBvd24gZGlyZWN0IHBhcmVudFxuICAgIHJldHVybiB0aGlzLmZpbmROb2RlU3RhcnRzV2l0aChzZWFyY2hTdHJpbmcsIG1vZGVsLnBhcmVudCk7XG4gIH1cblxuICBmb2N1c05vZGUobW9kZWw6IFRyZWVOb2RlTW9kZWw8VD4pOiB2b2lkIHtcbiAgICBpZiAobW9kZWwpIHtcbiAgICAgIHRoaXMuX2ZvY3VzUmVxdWVzdC5uZXh0KG1vZGVsLm5vZGVJZCk7XG4gICAgfVxuICB9XG5cbiAgYnJvYWRjYXN0Rm9jdXNlZE5vZGUobm9kZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb2N1c2VkTm9kZUlkICE9PSBub2RlSWQpIHtcbiAgICAgIHRoaXMuZm9jdXNlZE5vZGVJZCA9IG5vZGVJZDtcbiAgICAgIHRoaXMuX2ZvY3VzQ2hhbmdlLm5leHQobm9kZUlkKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c1BhcmVudChtb2RlbDogVHJlZU5vZGVNb2RlbDxUPik6IHZvaWQge1xuICAgIGlmIChtb2RlbCkge1xuICAgICAgdGhpcy5mb2N1c05vZGUobW9kZWwucGFyZW50KTtcbiAgICB9XG4gIH1cblxuICBmb2N1c0ZpcnN0VmlzaWJsZU5vZGUoKTogdm9pZCB7XG4gICAgY29uc3QgZm9jdXNNb2RlbCA9IHRoaXMucm9vdE5vZGVNb2RlbHMgJiYgdGhpcy5yb290Tm9kZU1vZGVsc1swXTtcbiAgICB0aGlzLmZvY3VzTm9kZShmb2N1c01vZGVsKTtcbiAgfVxuXG4gIGZvY3VzTGFzdFZpc2libGVOb2RlKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNOb2RlKHRoaXMuZmluZExhc3RWaXNpYmxlSW5UcmVlKCkpO1xuICB9XG5cbiAgZm9jdXNOb2RlQWJvdmUobW9kZWw6IFRyZWVOb2RlTW9kZWw8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzTm9kZSh0aGlzLmZpbmROb2RlQWJvdmUobW9kZWwpKTtcbiAgfVxuXG4gIGZvY3VzTm9kZUJlbG93KG1vZGVsOiBUcmVlTm9kZU1vZGVsPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c05vZGUodGhpcy5maW5kTm9kZUJlbG93KG1vZGVsKSk7XG4gIH1cblxuICBmb2N1c05vZGVTdGFydHNXaXRoKHNlYXJjaFN0cmluZzogc3RyaW5nLCBtb2RlbDogVHJlZU5vZGVNb2RlbDxUPik6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNOb2RlKHRoaXMuZmluZENsb3Nlc3ROb2RlU3RhcnRzV2l0aChzZWFyY2hTdHJpbmcsIG1vZGVsKSk7XG4gIH1cbn1cbiJdfQ==
@@ -3,32 +3,38 @@
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
6
- import { animate, style, transition, trigger, state } from '@angular/animations';
6
+ import { animate, state, style, transition, trigger } from '@angular/animations';
7
7
  import { isPlatformBrowser } from '@angular/common';
8
- import { Component, ContentChildren, ElementRef, EventEmitter, Inject, Input, Optional, Output, PLATFORM_ID, SkipSelf, ViewChild, } from '@angular/core';
8
+ import { Component, ContentChildren, ElementRef, EventEmitter, Inject, Input, Optional, Output, PLATFORM_ID, Self, SkipSelf, ViewChild, } from '@angular/core';
9
+ import { Subject } from 'rxjs';
9
10
  import { debounceTime, filter } from 'rxjs/operators';
10
- import { KeyCodes } from './../../utils/enums/key-codes.enum';
11
11
  import { IfExpandService } from '../../utils/conditional/if-expanded.service';
12
- import { keyValidator, preventArrowKeyScroll } from '../../utils/focus/key-focus/util';
12
+ import { isKeyEitherLetterOrNumber, keyValidator, preventArrowKeyScroll } from '../../utils/focus/key-focus/util';
13
13
  import { UNIQUE_ID, UNIQUE_ID_PROVIDER } from '../../utils/id-generator/id-generator.service';
14
14
  import { LoadingListener } from '../../utils/loading/loading-listener';
15
+ import { KeyCodes } from './../../utils/enums/key-codes.enum';
15
16
  import { DeclarativeTreeNodeModel } from './models/declarative-tree-node.model';
16
17
  import { ClrSelectedState } from './models/selected-state.enum';
17
18
  import { TREE_FEATURES_PROVIDER } from './tree-features.service';
18
19
  import { ClrTreeNodeLink } from './tree-node-link';
19
20
  import * as i0 from "@angular/core";
20
- import * as i1 from "./tree-features.service";
21
- import * as i2 from "../../utils/conditional/if-expanded.service";
22
- import * as i3 from "../../utils/i18n/common-strings.service";
23
- import * as i4 from "./tree-focus-manager.service";
24
- import * as i5 from "./recursive-children";
25
- import * as i6 from "@angular/common";
26
- import * as i7 from "../../icon/icon";
21
+ import * as i1 from "../../utils/for-type-ahead/for-type-ahead.service";
22
+ import * as i2 from "./tree-features.service";
23
+ import * as i3 from "../../utils/conditional/if-expanded.service";
24
+ import * as i4 from "../../utils/i18n/common-strings.service";
25
+ import * as i5 from "./tree-focus-manager.service";
26
+ import * as i6 from "./recursive-children";
27
+ import * as i7 from "@angular/common";
28
+ import * as i8 from "../../icon/icon";
27
29
  const LVIEW_CONTEXT_INDEX = 8;
30
+ // If the user types multiple keys without allowing 200ms to pass between them,
31
+ // then those keys are sent together in one request.
32
+ const TREE_TYPE_AHEAD_TIMEOUT = 200;
28
33
  export class ClrTreeNode {
29
- constructor(nodeId, platformId, parent, featuresService, expandService, commonStrings, focusManager, injector) {
34
+ constructor(nodeId, platformId, parent, forTypeAheadProvider, featuresService, expandService, commonStrings, focusManager, injector) {
30
35
  this.nodeId = nodeId;
31
36
  this.platformId = platformId;
37
+ this.forTypeAheadProvider = forTypeAheadProvider;
32
38
  this.featuresService = featuresService;
33
39
  this.expandService = expandService;
34
40
  this.commonStrings = commonStrings;
@@ -36,6 +42,8 @@ export class ClrTreeNode {
36
42
  this.STATES = ClrSelectedState;
37
43
  this.skipEmitChange = false;
38
44
  this.isModelLoading = false;
45
+ this.typeAheadKeyEvent = new Subject();
46
+ this.typeAheadKeyBuffer = '';
39
47
  this.selectedChange = new EventEmitter(false);
40
48
  this.expandedChange = new EventEmitter();
41
49
  this.subscriptions = [];
@@ -118,6 +126,16 @@ export class ClrTreeNode {
118
126
  }));
119
127
  this.subscriptions.push(this._model.loading$.pipe(debounceTime(0)).subscribe(isLoading => (this.isModelLoading = isLoading)));
120
128
  }
129
+ ngAfterContentInit() {
130
+ if (this.forTypeAheadProvider) {
131
+ this._model.textContent = this.forTypeAheadProvider.textContent;
132
+ this.subscriptions.push(this.typeAheadKeyEvent.pipe(debounceTime(TREE_TYPE_AHEAD_TIMEOUT)).subscribe((bufferedKeys) => {
133
+ this.focusManager.focusNodeStartsWith(bufferedKeys, this._model);
134
+ // reset once bufferedKeys are used
135
+ this.typeAheadKeyBuffer = '';
136
+ }));
137
+ }
138
+ }
121
139
  ngOnDestroy() {
122
140
  this._model.destroy();
123
141
  this.subscriptions.forEach(sub => sub.unsubscribe());
@@ -135,9 +153,11 @@ export class ClrTreeNode {
135
153
  }
136
154
  }
137
155
  focusTreeNode() {
138
- if (isPlatformBrowser(this.platformId) && document.activeElement !== this.contentContainer.nativeElement) {
156
+ const containerEl = this.contentContainer.nativeElement;
157
+ if (isPlatformBrowser(this.platformId) && document.activeElement !== containerEl) {
139
158
  this.setTabIndex(0);
140
- this.contentContainer.nativeElement.focus();
159
+ containerEl.focus();
160
+ containerEl.scrollIntoView({ block: 'nearest', inline: 'nearest' });
141
161
  }
142
162
  }
143
163
  broadcastFocusOnContainer() {
@@ -164,30 +184,39 @@ export class ClrTreeNode {
164
184
  this.collapseOrFocusParent();
165
185
  break;
166
186
  case KeyCodes.Home:
187
+ event.preventDefault();
167
188
  this.focusManager.focusFirstVisibleNode();
168
189
  break;
169
190
  case KeyCodes.End:
191
+ event.preventDefault();
170
192
  this.focusManager.focusLastVisibleNode();
171
193
  break;
172
194
  case KeyCodes.Enter:
173
- this.expandOrDefault();
195
+ this.toggleExpandOrTriggerDefault();
174
196
  break;
175
197
  case KeyCodes.Space:
176
198
  case KeyCodes.Spacebar:
177
199
  // to prevent scrolling on space key in this specific case
178
200
  event.preventDefault();
179
- this.expandOrDefault();
201
+ this.toggleExpandOrTriggerDefault();
180
202
  break;
181
203
  default:
204
+ if (this._model.textContent && isKeyEitherLetterOrNumber(event)) {
205
+ this.typeAheadKeyBuffer += event.key;
206
+ this.typeAheadKeyEvent.next(this.typeAheadKeyBuffer);
207
+ return;
208
+ }
182
209
  break;
183
210
  }
211
+ // if non-letter keys are pressed, do reset.
212
+ this.typeAheadKeyBuffer = '';
184
213
  }
185
214
  get isParent() {
186
215
  return this._model.children && this._model.children.length > 0;
187
216
  }
188
- expandOrDefault() {
217
+ toggleExpandOrTriggerDefault() {
189
218
  if (this.isExpandable() && !this.isSelectable()) {
190
- this.expandOrFocusFirstChild();
219
+ this.expandService.expanded = !this.expanded;
191
220
  }
192
221
  else {
193
222
  this.triggerDefaultAction();
@@ -227,13 +256,13 @@ export class ClrTreeNode {
227
256
  }
228
257
  }
229
258
  }
230
- ClrTreeNode.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTreeNode, deps: [{ token: UNIQUE_ID }, { token: PLATFORM_ID }, { token: ClrTreeNode, optional: true, skipSelf: true }, { token: i1.TreeFeaturesService }, { token: i2.IfExpandService }, { token: i3.ClrCommonStringsService }, { token: i4.TreeFocusManagerService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
259
+ ClrTreeNode.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTreeNode, deps: [{ token: UNIQUE_ID }, { token: PLATFORM_ID }, { token: ClrTreeNode, optional: true, skipSelf: true }, { token: i1.ForTypeAheadProvider, optional: true, self: true }, { token: i2.TreeFeaturesService }, { token: i3.IfExpandService }, { token: i4.ClrCommonStringsService }, { token: i5.TreeFocusManagerService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
231
260
  ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTreeNode, selector: "clr-tree-node", inputs: { selected: ["clrSelected", "selected"], expandable: ["clrExpandable", "expandable"], expanded: ["clrExpanded", "expanded"] }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "class.clr-tree-node": "true" } }, providers: [
232
261
  UNIQUE_ID_PROVIDER,
233
262
  TREE_FEATURES_PROVIDER,
234
263
  IfExpandService,
235
264
  { provide: LoadingListener, useExisting: IfExpandService },
236
- ], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: 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<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\"> selected </span>\n <span *ngIf=\"!ariaSelected\"> unselected </span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", components: [{ type: i5.RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.CdsIconCustomTag, selector: "cds-icon" }], animations: [
265
+ ], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: 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<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\"> selected </span>\n <span *ngIf=\"!ariaSelected\"> unselected </span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", components: [{ type: i6.RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.CdsIconCustomTag, selector: "cds-icon" }], animations: [
237
266
  trigger('toggleChildrenAnim', [
238
267
  transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
239
268
  transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
@@ -268,7 +297,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
268
297
  type: Optional
269
298
  }, {
270
299
  type: SkipSelf
271
- }] }, { type: i1.TreeFeaturesService }, { type: i2.IfExpandService }, { type: i3.ClrCommonStringsService }, { type: i4.TreeFocusManagerService }, { type: i0.Injector }]; }, propDecorators: { selected: [{
300
+ }] }, { type: i1.ForTypeAheadProvider, decorators: [{
301
+ type: Optional
302
+ }, {
303
+ type: Self
304
+ }] }, { type: i2.TreeFeaturesService }, { type: i3.IfExpandService }, { type: i4.ClrCommonStringsService }, { type: i5.TreeFocusManagerService }, { type: i0.Injector }]; }, propDecorators: { selected: [{
272
305
  type: Input,
273
306
  args: ['clrSelected']
274
307
  }], selectedChange: [{
@@ -290,4 +323,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
290
323
  type: ContentChildren,
291
324
  args: [ClrTreeNodeLink, { descendants: false }]
292
325
  }] } });
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS90cmVlLXZpZXcvdHJlZS1ub2RlLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS90cmVlLXZpZXcvdHJlZS1ub2RlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBRU4sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUVYLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV2RixPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhFLE9BQU8sRUFBdUIs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QUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUNqRyxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7NEJBQ2xFLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7eUJBQ3pDLENBQUM7cUJBQ0gsUUFDSzt3QkFDSix1QkFBdUIsRUFBRSxNQUFNO3FCQUNoQzs7MEJBUUUsTUFBTTsyQkFBQyxTQUFTOzswQkFDaEIsTUFBTTsyQkFBQyxXQUFXOzhCQUdYLFdBQVc7MEJBRmxCLFFBQVE7OzBCQUNSLFFBQVE7K01Bd0NQLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxhQUFhO2dCQXNCUyxjQUFjO3NCQUExQyxNQUFNO3VCQUFDLG1CQUFtQjtnQkFRSCxVQUFVO3NCQUFqQyxLQUFLO3VCQUFDLGVBQWU7Z0JBTWxCLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxhQUFhO2dCQVFTLGNBQWM7c0JBQTFDLE1BQU07dUJBQUMsbUJBQW1CO2dCQU1uQixnQkFBZ0I7c0JBRHZCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBd0N6RCxnQkFBZ0I7c0JBRHZCLGVBQWU7dUJBQUMsZUFBZSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBRdWVyeUxpc3QsXG4gIFNraXBTZWxmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgS2V5Q29kZXMgfSBmcm9tICcuLy4uLy4uL3V0aWxzL2VudW1zL2tleS1jb2Rlcy5lbnVtJztcbmltcG9ydCB7IElmRXhwYW5kU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbmRpdGlvbmFsL2lmLWV4cGFuZGVkLnNlcnZpY2UnO1xuaW1wb3J0IHsga2V5VmFsaWRhdG9yLCBwcmV2ZW50QXJyb3dLZXlTY3JvbGwgfSBmcm9tICcuLi8uLi91dGlscy9mb2N1cy9rZXktZm9jdXMvdXRpbCc7XG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBVTklRVUVfSUQsIFVOSVFVRV9JRF9QUk9WSURFUiB9IGZyb20gJy4uLy4uL3V0aWxzL2lkLWdlbmVyYXRvci9pZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBMb2FkaW5nTGlzdGVuZXIgfSBmcm9tICcuLi8uLi91dGlscy9sb2FkaW5nL2xvYWRpbmctbGlzdGVuZXInO1xuaW1wb3J0IHsgRGVjbGFyYXRpdmVUcmVlTm9kZU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZGVjbGFyYXRpdmUtdHJlZS1ub2RlLm1vZGVsJztcbmltcG9ydCB7IENsclNlbGVjdGVkU3RhdGUgfSBmcm9tICcuL21vZGVscy9zZWxlY3RlZC1zdGF0ZS5lbnVtJztcbmltcG9ydCB7IFRyZWVOb2RlTW9kZWwgfSBmcm9tICcuL21vZGVscy90cmVlLW5vZGUubW9kZWwnO1xuaW1wb3J0IHsgVHJlZUZlYXR1cmVzU2VydmljZSwgVFJFRV9GRUFUVVJFU19QUk9WSURFUiB9IGZyb20gJy4vdHJlZS1mZWF0dXJlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFRyZWVGb2N1c01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi90cmVlLWZvY3VzLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJUcmVlTm9kZUxpbmsgfSBmcm9tICcuL3RyZWUtbm9kZS1saW5rJztcblxuY29uc3QgTFZJRVdfQ09OVEVYVF9JTkRFWCA9IDg7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci10cmVlLW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1ub2RlLmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICBVTklRVUVfSURfUFJPVklERVIsXG4gICAgVFJFRV9GRUFUVVJFU19QUk9WSURFUixcbiAgICBJZkV4cGFuZFNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBMb2FkaW5nTGlzdGVuZXIsIHVzZUV4aXN0aW5nOiBJZkV4cGFuZFNlcnZpY2UgfSxcbiAgXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3RvZ2dsZUNoaWxkcmVuQW5pbScsIFtcbiAgICAgIHRyYW5zaXRpb24oJ2NvbGxhcHNlZCA9PiBleHBhbmRlZCcsIFtzdHlsZSh7IGhlaWdodDogMCB9KSwgYW5pbWF0ZSgyMDAsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpXSksXG4gICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA9PiBjb2xsYXBzZWQnLCBbc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSwgYW5pbWF0ZSgyMDAsIHN0eWxlKHsgaGVpZ2h0OiAwIH0pKV0pLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoeyBoZWlnaHQ6ICcqJywgJ292ZXJmbG93LXknOiAndmlzaWJsZScgfSkpLFxuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHsgaGVpZ2h0OiAwIH0pKSxcbiAgICBdKSxcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY2xyLXRyZWUtbm9kZV0nOiAndHJ1ZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENsclRyZWVOb2RlPFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBTVEFURVMgPSBDbHJTZWxlY3RlZFN0YXRlO1xuICBwcml2YXRlIHNraXBFbWl0Q2hhbmdlID0gZmFsc2U7XG4gIGlzTW9kZWxMb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChVTklRVUVfSUQpIHB1YmxpYyBub2RlSWQ6IHN0cmluZyxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBTa2lwU2VsZigpXG4gICAgcGFyZW50OiBDbHJUcmVlTm9kZTxUPixcbiAgICBwdWJsaWMgZmVhdHVyZXNTZXJ2aWNlOiBUcmVlRmVhdHVyZXNTZXJ2aWNlPFQ+LFxuICAgIHB1YmxpYyBleHBhbmRTZXJ2aWNlOiBJZkV4cGFuZFNlcnZpY2UsXG4gICAgcHVibGljIGNvbW1vblN0cmluZ3M6IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9jdXNNYW5hZ2VyOiBUcmVlRm9jdXNNYW5hZ2VyU2VydmljZTxUPixcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgaWYgKHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbikge1xuICAgICAgLy8gSSdtIGNvbXBsZXRlbHkgc3R1Y2ssIHdlIGhhdmUgdG8gaGFjayBpbnRvIHByaXZhdGUgcHJvcGVydGllcyB1bnRpbCBlaXRoZXJcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE0OTM1IG9yIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1OTk4XG4gICAgICAvLyBhcmUgZml4ZWRcbiAgICAgIC8vIFRoaXMgaXMgZm9yIG5vbi1pdnkgaW1wbGVtZW50YXRpb25zXG4gICAgICBpZiAoKGluamVjdG9yIGFzIGFueSkudmlldykge1xuICAgICAgICB0aGlzLl9tb2RlbCA9IChpbmplY3RvciBhcyBhbnkpLnZpZXcuY29udGV4dC5jbHJNb2RlbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEl2eSBwdXRzIHRoaXMgb24gYSBzcGVjaWZpYyBpbmRleCBvZiBhIF9sVmlldyBwcm9wZXJ0eVxuICAgICAgICB0aGlzLl9tb2RlbCA9IChpbmplY3RvciBhcyBhbnkpLl9sVmlld1tMVklFV19DT05URVhUX0lOREVYXS5jbHJNb2RlbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yY2UgY2FzdCBmb3Igbm93LCBub3Qgc3VyZSBob3cgdG8gdGllIHRoZSBjb3JyZWN0IHR5cGUgaGVyZSB0byBmZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uXG4gICAgICB0aGlzLl9tb2RlbCA9IG5ldyBEZWNsYXJhdGl2ZVRyZWVOb2RlTW9kZWwocGFyZW50ID8gKHBhcmVudC5fbW9kZWwgYXMgRGVjbGFyYXRpdmVUcmVlTm9kZU1vZGVsPFQ+KSA6IG51bGwpO1xuICAgIH1cbiAgICB0aGlzLl9tb2RlbC5ub2RlSWQgPSB0aGlzLm5vZGVJZDtcbiAgfVxuXG4gIF9tb2RlbDogVHJlZU5vZGVNb2RlbDxUPjtcblxuICBpc0V4cGFuZGFibGUoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmV4cGFuZGFibGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHBhbmRhYmxlO1xuICAgIH1cbiAgICByZXR1cm4gISF0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kYWJsZSB8fCB0aGlzLmlzUGFyZW50O1xuICB9XG5cbiAgaXNTZWxlY3RhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmZlYXR1cmVzU2VydmljZS5zZWxlY3RhYmxlO1xuICB9XG5cbiAgQElucHV0KCdjbHJTZWxlY3RlZCcpXG4gIGdldCBzZWxlY3RlZCgpOiBDbHJTZWxlY3RlZFN0YXRlIHwgYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGVsLnNlbGVjdGVkLnZhbHVlO1xuICB9XG4gIHNldCBzZWxlY3RlZCh2YWx1ZTogQ2xyU2VsZWN0ZWRTdGF0ZSB8IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZlYXR1cmVzU2VydmljZS5zZWxlY3RhYmxlID0gdHJ1ZTtcbiAgICAvLyBHcmFjZWZ1bGx5IGhhbmRsZSBmYWxzeSBzdGF0ZXMgbGlrZSBudWxsIG9yIHVuZGVmaW5lZCBiZWNhdXNlIGl0J3MganVzdCBlYXNpZXIgdGhhbiBhbnN3ZXJpbmcgcXVlc3Rpb25zLlxuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiB3aXRoIHN0cmljdCB0eXBpbmcgb24gdGhlIGFwcCdzIHNpZGUsIGJ1dCBpdCdzIG5vdCB1cCB0byB1cy5cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFsdWUgPSBDbHJTZWxlY3RlZFN0YXRlLlVOU0VMRUNURUQ7XG4gICAgfVxuICAgIC8vIFdlIG1hdGNoIGJvb2xlYW5zIHRvIHRoZSBjb3JyZXNwb25kaW5nIENsclNlbGVjdGVkU3RhdGVcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUgPyBDbHJTZWxlY3RlZFN0YXRlLlNFTEVDVEVEIDogQ2xyU2VsZWN0ZWRTdGF0ZS5VTlNFTEVDVEVEO1xuICAgIH1cbiAgICAvLyBXZSBwcm9wYWdhdGUgb25seSBpZiB0aGUgdHJlZSBpcyBpbiBzbWFydCBtb2RlLCBhbmQgc2tpcCBlbWl0dGluZyB0aGUgb3V0cHV0IHdoZW4gd2Ugc2V0IHRoZSBpbnB1dFxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdm13YXJlL2NsYXJpdHkvaXNzdWVzLzMwNzNcbiAgICB0aGlzLnNraXBFbWl0Q2hhbmdlID0gdHJ1ZTtcbiAgICB0aGlzLl9tb2RlbC5zZXRTZWxlY3RlZCh2YWx1ZSwgdGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXIsIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyKTtcbiAgICB0aGlzLnNraXBFbWl0Q2hhbmdlID0gZmFsc2U7XG4gIH1cblxuICBAT3V0cHV0KCdjbHJTZWxlY3RlZENoYW5nZScpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDbHJTZWxlY3RlZFN0YXRlPihmYWxzZSk7XG5cbiAgZ2V0IGFyaWFTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1NlbGVjdGFibGUoKSA/IHRoaXMuX21vZGVsLnNlbGVjdGVkLnZhbHVlID09PSBDbHJTZWxlY3RlZFN0YXRlLlNFTEVDVEVEIDogbnVsbDtcbiAgfVxuXG4gIC8vIEFsbG93cyB0aGUgY29uc3VtZXIgdG8gb3ZlcnJpZGUgb3VyIGxvZ2ljIGRlY2lkaW5nIGlmIGEgbm9kZSBpcyBleHBhbmRhYmxlLlxuICAvLyBVc2VmdWwgZm9yIHJlY3Vyc2l2ZSB0cmVlcyB0aGF0IGRvbid0IHdhbnQgdG8gcHJlLWxvYWQgb25lIGxldmVsIGFoZWFkIGp1c3QgdG8ga25vdyB3aGljaCBub2RlcyBhcmUgZXhwYW5kYWJsZS5cbiAgQElucHV0KCdjbHJFeHBhbmRhYmxlJykgZXhwYW5kYWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvLyBJJ20gY2F2aW5nIG9uIHRoaXMsIGZvciB0cmVlIG5vZGVzIEkgdGhpbmsgd2UgY2FuIHRvbGVyYXRlIGhhdmluZyBhIHR3by13YXkgYmluZGluZyBvbiB0aGUgY29tcG9uZW50XG4gIC8vIHJhdGhlciB0aGFuIGVuZm9yY2UgdGhlIGNscklmRXhwYW5kZWQgc3RydWN0dXJhbCBkaXJlY3RpdmUgZm9yIGR5bmFtaWMgY2FzZXMuIE1vc3RseSBiZWNhdXNlIGZvciB0aGUgc21hcnRcbiAgLy8gY2FzZSwgeW91IGNhbid0IHVzZSBhIHN0cnVjdHVyYWwgZGlyZWN0aXZlLCBpdCB3b3VsZCBuZWVkIHRvIGdvIG9uIGFuIG5nLWNvbnRhaW5lci5cbiAgQElucHV0KCdjbHJFeHBhbmRlZCcpXG4gIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkO1xuICB9XG4gIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZXhwYW5kU2VydmljZS5leHBhbmRlZCA9IHZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgnY2xyRXhwYW5kZWRDaGFuZ2UnKSBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29udGVudENvbnRhaW5lclRhYmluZGV4ID0gLTE7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRDb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIGNvbnRlbnRDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fbW9kZWwuZXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5fbW9kZWwuc2VsZWN0ZWQucGlwZShmaWx0ZXIoKCkgPT4gIXRoaXMuc2tpcEVtaXRDaGFuZ2UpKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZENoYW5nZS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB0aGlzLl9tb2RlbC5leHBhbmRlZCA9IHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNSZXF1ZXN0LnN1YnNjcmliZShub2RlSWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5ub2RlSWQgPT09IG5vZGVJZCkge1xuICAgICAgICAgIHRoaXMuZm9jdXNUcmVlTm9kZSgpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzQ2hhbmdlLnN1YnNjcmliZShub2RlSWQgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrVGFiSW5kZXgobm9kZUlkKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5fbW9kZWwubG9hZGluZyQucGlwZShkZWJvdW5jZVRpbWUoMCkpLnN1YnNjcmliZShpc0xvYWRpbmcgPT4gKHRoaXMuaXNNb2RlbExvYWRpbmcgPSBpc0xvYWRpbmcpKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9tb2RlbC5kZXN0cm95KCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIC8vIEBDb250ZW50Q2hpbGQgd291bGQgaGF2ZSBiZWVuIG1vcmUgc3VjY2luY3RcbiAgLy8gYnV0IGl0IGRvZXNuJ3Qgb2ZmZXIgYSB3YXkgdG8gcXVlcnkgb25seSBhbiBpbW1lZGlhdGUgY2hpbGRcbiAgQENvbnRlbnRDaGlsZHJlbihDbHJUcmVlTm9kZUxpbmssIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pXG4gIHByaXZhdGUgdHJlZU5vZGVMaW5rTGlzdDogUXVlcnlMaXN0PENsclRyZWVOb2RlTGluaz47XG5cbiAgZ2V0IHRyZWVOb2RlTGluaygpIHtcbiAgICByZXR1cm4gdGhpcy50cmVlTm9kZUxpbmtMaXN0ICYmIHRoaXMudHJlZU5vZGVMaW5rTGlzdC5maXJzdDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFiSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lclRhYmluZGV4ID0gdmFsdWU7XG4gICAgdGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsIHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tUYWJJbmRleChub2RlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpICYmIHRoaXMubm9kZUlkICE9PSBub2RlSWQgJiYgdGhpcy5jb250ZW50Q29udGFpbmVyVGFiaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KC0xKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c1RyZWVOb2RlKCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KDApO1xuICAgICAgdGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBicm9hZGNhc3RGb2N1c09uQ29udGFpbmVyKCkge1xuICAgIHRoaXMuZm9jdXNNYW5hZ2VyLmJyb2FkY2FzdEZvY3VzZWROb2RlKHRoaXMubm9kZUlkKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8vIFR3byByZWFzb25zIHRvIHByZXZlbnQgZGVmYXVsdCBiZWhhdmlvcjpcbiAgICAvLyAxLiB0byBwcmV2ZW50IHNjcm9sbGluZyBvbiBhcnJvdyBrZXlzXG4gICAgLy8gMi4gQXNzaXN0aXZlIFRlY2hub2xvZ3kgZm9jdXMgZGlmZmVycyBmcm9tIEtleWJvYXJkIGZvY3VzIGJlaGF2aW9yLlxuICAgIC8vICAgIEJ5IGRlZmF1bHQsIHByZXNzaW5nIGFycm93IGtleSBtYWtlcyBBVCBmb2N1cyBnbyBpbnRvIHRoZSBuZXN0ZWQgY29udGVudCBvZiB0aGUgaXRlbS5cbiAgICBwcmV2ZW50QXJyb3dLZXlTY3JvbGwoZXZlbnQpO1xuXG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjEvI2tleWJvYXJkLWludGVyYWN0aW9uLTIyXG4gICAgc3dpdGNoIChrZXlWYWxpZGF0b3IoZXZlbnQua2V5KSkge1xuICAgICAgY2FzZSBLZXlDb2Rlcy5BcnJvd1VwOlxuICAgICAgICB0aGlzLmZvY3VzTWFuYWdlci5mb2N1c05vZGVBYm92ZSh0aGlzLl9tb2RlbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBLZXlDb2Rlcy5BcnJvd0Rvd246XG4gICAgICAgIHRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzTm9kZUJlbG93KHRoaXMuX21vZGVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEtleUNvZGVzLkFycm93UmlnaHQ6XG4gICAgICAgIHRoaXMuZXhwYW5kT3JGb2N1c0ZpcnN0Q2hpbGQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEtleUNvZGVzLkFycm93TGVmdDpcbiAgICAgICAgdGhpcy5jb2xsYXBzZU9yRm9jdXNQYXJlbnQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEtleUNvZGVzLkhvbWU6XG4gICAgICAgIHRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzRmlyc3RWaXNpYmxlTm9kZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgS2V5Q29kZXMuRW5kOlxuICAgICAgICB0aGlzLmZvY3VzTWFuYWdlci5mb2N1c0xhc3RWaXNpYmxlTm9kZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgS2V5Q29kZXMuRW50ZXI6XG4gICAgICAgIHRoaXMuZXhwYW5kT3JEZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBLZXlDb2Rlcy5TcGFjZTpcbiAgICAgIGNhc2UgS2V5Q29kZXMuU3BhY2ViYXI6XG4gICAgICAgIC8vIHRvIHByZXZlbnQgc2Nyb2xsaW5nIG9uIHNwYWNlIGtleSBpbiB0aGlzIHNwZWNpZmljIGNhc2VcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5leHBhbmRPckRlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCBpc1BhcmVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZWwuY2hpbGRyZW4gJiYgdGhpcy5fbW9kZWwuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kT3JEZWZhdWx0KCkge1xuICAgIGlmICh0aGlzLmlzRXhwYW5kYWJsZSgpICYmICF0aGlzLmlzU2VsZWN0YWJsZSgpKSB7XG4gICAgICB0aGlzLmV4cGFuZE9yRm9jdXNGaXJzdENoaWxkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJpZ2dlckRlZmF1bHRBY3Rpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4cGFuZE9yRm9jdXNGaXJzdENoaWxkKCkge1xuICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XG4gICAgICAvLyBpZiB0aGUgbm9kZSBpcyBhbHJlYWR5IGV4cGFuZGVkIGFuZCBoYXMgY2hpbGRyZW4sIGZvY3VzIGl0cyB2ZXJ5IGZpcnN0IGNoaWxkXG4gICAgICBpZiAodGhpcy5pc1BhcmVudCkge1xuICAgICAgICB0aGlzLmZvY3VzTWFuYWdlci5mb2N1c05vZGVCZWxvdyh0aGlzLl9tb2RlbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHdlIG11c3QgY2hlY2sgaWYgdGhlIG5vZGUgaXMgZXhwYW5kYWJsZSwgaW4gb3JkZXIgdG8gc2V0IC5leHBhbmRlZCB0byB0cnVlIGZyb20gZmFsc2VcbiAgICAgIC8vIGJlY2F1c2Ugd2Ugc2hvdWxkbid0IHNldCAuZXhwYW5kZWQgdG8gdHJ1ZSBpZiBpdCdzIG5vdCBleHBhbmRhYmxlIG5vZGVcbiAgICAgIGlmICh0aGlzLmlzRXhwYW5kYWJsZSgpKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kU2VydmljZS5leHBhbmRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb2xsYXBzZU9yRm9jdXNQYXJlbnQoKSB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuZXhwYW5kU2VydmljZS5leHBhbmRlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzTWFuYWdlci5mb2N1c1BhcmVudCh0aGlzLl9tb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cmlnZ2VyRGVmYXVsdEFjdGlvbigpIHtcbiAgICBpZiAodGhpcy50cmVlTm9kZUxpbmspIHtcbiAgICAgIHRoaXMudHJlZU5vZGVMaW5rLmFjdGl2YXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0YWJsZSgpKSB7XG4gICAgICAgIHRoaXMuX21vZGVsLnRvZ2dsZVNlbGVjdGlvbih0aGlzLmZlYXR1cmVzU2VydmljZS5lYWdlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gIH4gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAgfiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gIC0tPlxuXG48ZGl2XG4gICNjb250ZW50Q29udGFpbmVyXG4gIHJvbGU9XCJ0cmVlaXRlbVwiXG4gIGNsYXNzPVwiY2xyLXRyZWUtbm9kZS1jb250ZW50LWNvbnRhaW5lclwiXG4gIHRhYmluZGV4PVwiLTFcIlxuICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kYWJsZSgpID8gZXhwYW5kZWQgOiBudWxsXCJcbiAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJhcmlhU2VsZWN0ZWRcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIChmb2N1cyk9XCJicm9hZGNhc3RGb2N1c09uQ29udGFpbmVyKClcIlxuPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJpc0V4cGFuZGFibGUoKSAmJiAhaXNNb2RlbExvYWRpbmcgJiYgIWV4cGFuZFNlcnZpY2UubG9hZGluZ1wiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBjbGFzcz1cImNsci10cmVlbm9kZS1jYXJldFwiXG4gICAgKGNsaWNrKT1cImV4cGFuZFNlcnZpY2UudG9nZ2xlKCk7XCJcbiAgICAoZm9jdXMpPVwiZm9jdXNUcmVlTm9kZSgpXCJcbiAgPlxuICAgIDxjZHMtaWNvblxuICAgICAgY2xhc3M9XCJjbHItdHJlZW5vZGUtY2FyZXQtaWNvblwiXG4gICAgICBzaGFwZT1cImFuZ2xlXCJcbiAgICAgIFthdHRyLmRpcmVjdGlvbl09XCJleHBhbmRTZXJ2aWNlLmV4cGFuZGVkID8gJ2Rvd24nIDogJ3JpZ2h0J1wiXG4gICAgPjwvY2RzLWljb24+XG4gIDwvYnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwiY2xyLXRyZWVub2RlLXNwaW5uZXItY29udGFpbmVyXCIgKm5nSWY9XCJleHBhbmRTZXJ2aWNlLmxvYWRpbmcgfHwgaXNNb2RlbExvYWRpbmdcIj5cbiAgICA8c3BhbiBjbGFzcz1cImNsci10cmVlbm9kZS1zcGlubmVyIHNwaW5uZXJcIj48L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2xyLWNoZWNrYm94LXdyYXBwZXIgY2xyLXRyZWVub2RlLWNoZWNrYm94XCIgKm5nSWY9XCJmZWF0dXJlc1NlcnZpY2Uuc2VsZWN0YWJsZVwiPlxuICAgIDxpbnB1dFxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICBpZD1cInt7bm9kZUlkfX0tY2hlY2tcIlxuICAgICAgY2xhc3M9XCJjbHItY2hlY2tib3hcIlxuICAgICAgW2NoZWNrZWRdPVwiX21vZGVsLnNlbGVjdGVkLnZhbHVlID09PSBTVEFURVMuU0VMRUNURURcIlxuICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiX21vZGVsLnNlbGVjdGVkLnZhbHVlID09PSBTVEFURVMuSU5ERVRFUk1JTkFURVwiXG4gICAgICAoY2hhbmdlKT1cIl9tb2RlbC50b2dnbGVTZWxlY3Rpb24oZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyKVwiXG4gICAgICAoZm9jdXMpPVwiZm9jdXNUcmVlTm9kZSgpXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIC8+XG4gICAgPGxhYmVsIGZvcj1cInt7bm9kZUlkfX0tY2hlY2tcIiBjbGFzcz1cImNsci1jb250cm9sLWxhYmVsXCI+PC9sYWJlbD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjbHItdHJlZW5vZGUtY29udGVudFwiIChtb3VzZWRvd24pPVwiZm9jdXNUcmVlTm9kZSgpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJjbHItc3Itb25seVwiICpuZ0lmPVwiZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGVcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiYXJpYVNlbGVjdGVkXCI+IHNlbGVjdGVkIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIWFyaWFTZWxlY3RlZFwiPiB1bnNlbGVjdGVkIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXZcbiAgY2xhc3M9XCJjbHItdHJlZW5vZGUtY2hpbGRyZW5cIlxuICBbQHRvZ2dsZUNoaWxkcmVuQW5pbV09XCJleHBhbmRTZXJ2aWNlLmV4cGFuZGVkID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnXCJcbiAgW2F0dHIucm9sZV09XCJpc0V4cGFuZGFibGUoKSAmJiAhZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbiA/ICdncm91cCcgOiBudWxsXCJcbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLXRyZWUtbm9kZVwiPjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NscklmRXhwYW5kZWRdXCI+PC9uZy1jb250ZW50PlxuICA8Y2xyLXJlY3Vyc2l2ZS1jaGlsZHJlbiBbcGFyZW50XT1cIl9tb2RlbFwiPjwvY2xyLXJlY3Vyc2l2ZS1jaGlsZHJlbj5cbjwvZGl2PlxuIl19
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS90cmVlLXZpZXcvdHJlZS1ub2RlLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS90cmVlLXZpZXcvdHJlZS1ub2RlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBRU4sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUVYLElBQUksRUFDSixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdsSCxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FB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Z0JBc0R6RCxnQkFBZ0I7c0JBRHZCLGVBQWU7dUJBQUMsZUFBZSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBRdWVyeUxpc3QsXG4gIFNlbGYsXG4gIFNraXBTZWxmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElmRXhwYW5kU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbmRpdGlvbmFsL2lmLWV4cGFuZGVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNLZXlFaXRoZXJMZXR0ZXJPck51bWJlciwga2V5VmFsaWRhdG9yLCBwcmV2ZW50QXJyb3dLZXlTY3JvbGwgfSBmcm9tICcuLi8uLi91dGlscy9mb2N1cy9rZXktZm9jdXMvdXRpbCc7XG5pbXBvcnQgeyBGb3JUeXBlQWhlYWRQcm92aWRlciB9IGZyb20gJy4uLy4uL3V0aWxzL2Zvci10eXBlLWFoZWFkL2Zvci10eXBlLWFoZWFkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVU5JUVVFX0lELCBVTklRVUVfSURfUFJPVklERVIgfSBmcm9tICcuLi8uLi91dGlscy9pZC1nZW5lcmF0b3IvaWQtZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9hZGluZ0xpc3RlbmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9hZGluZy9sb2FkaW5nLWxpc3RlbmVyJztcbmltcG9ydCB7IEtleUNvZGVzIH0gZnJvbSAnLi8uLi8uLi91dGlscy9lbnVtcy9rZXktY29kZXMuZW51bSc7XG5pbXBvcnQgeyBEZWNsYXJhdGl2ZVRyZWVOb2RlTW9kZWwgfSBmcm9tICcuL21vZGVscy9kZWNsYXJhdGl2ZS10cmVlLW5vZGUubW9kZWwnO1xuaW1wb3J0IHsgQ2xyU2VsZWN0ZWRTdGF0ZSB9IGZyb20gJy4vbW9kZWxzL3NlbGVjdGVkLXN0YXRlLmVudW0nO1xuaW1wb3J0IHsgVHJlZU5vZGVNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3RyZWUtbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBUcmVlRmVhdHVyZXNTZXJ2aWNlLCBUUkVFX0ZFQVRVUkVTX1BST1ZJREVSIH0gZnJvbSAnLi90cmVlLWZlYXR1cmVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJlZUZvY3VzTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3RyZWUtZm9jdXMtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IENsclRyZWVOb2RlTGluayB9IGZyb20gJy4vdHJlZS1ub2RlLWxpbmsnO1xuXG5jb25zdCBMVklFV19DT05URVhUX0lOREVYID0gODtcblxuLy8gSWYgdGhlIHVzZXIgdHlwZXMgbXVsdGlwbGUga2V5cyB3aXRob3V0IGFsbG93aW5nIDIwMG1zIHRvIHBhc3MgYmV0d2VlbiB0aGVtLFxuLy8gdGhlbiB0aG9zZSBrZXlzIGFyZSBzZW50IHRvZ2V0aGVyIGluIG9uZSByZXF1ZXN0LlxuY29uc3QgVFJFRV9UWVBFX0FIRUFEX1RJTUVPVVQgPSAyMDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci10cmVlLW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1ub2RlLmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICBVTklRVUVfSURfUFJPVklERVIsXG4gICAgVFJFRV9GRUFUVVJFU19QUk9WSURFUixcbiAgICBJZkV4cGFuZFNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBMb2FkaW5nTGlzdGVuZXIsIHVzZUV4aXN0aW5nOiBJZkV4cGFuZFNlcnZpY2UgfSxcbiAgXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3RvZ2dsZUNoaWxkcmVuQW5pbScsIFtcbiAgICAgIHRyYW5zaXRpb24oJ2NvbGxhcHNlZCA9PiBleHBhbmRlZCcsIFtzdHlsZSh7IGhlaWdodDogMCB9KSwgYW5pbWF0ZSgyMDAsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpXSksXG4gICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA9PiBjb2xsYXBzZWQnLCBbc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSwgYW5pbWF0ZSgyMDAsIHN0eWxlKHsgaGVpZ2h0OiAwIH0pKV0pLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoeyBoZWlnaHQ6ICcqJywgJ292ZXJmbG93LXknOiAndmlzaWJsZScgfSkpLFxuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHsgaGVpZ2h0OiAwIH0pKSxcbiAgICBdKSxcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY2xyLXRyZWUtbm9kZV0nOiAndHJ1ZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENsclRyZWVOb2RlPFQ+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBTVEFURVMgPSBDbHJTZWxlY3RlZFN0YXRlO1xuICBwcml2YXRlIHNraXBFbWl0Q2hhbmdlID0gZmFsc2U7XG4gIGlzTW9kZWxMb2FkaW5nID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB0eXBlQWhlYWRLZXlFdmVudDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIHByaXZhdGUgdHlwZUFoZWFkS2V5QnVmZmVyID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChVTklRVUVfSUQpIHB1YmxpYyBub2RlSWQ6IHN0cmluZyxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBTa2lwU2VsZigpXG4gICAgcGFyZW50OiBDbHJUcmVlTm9kZTxUPixcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByaXZhdGUgZm9yVHlwZUFoZWFkUHJvdmlkZXI6IEZvclR5cGVBaGVhZFByb3ZpZGVyLFxuICAgIHB1YmxpYyBmZWF0dXJlc1NlcnZpY2U6IFRyZWVGZWF0dXJlc1NlcnZpY2U8VD4sXG4gICAgcHVibGljIGV4cGFuZFNlcnZpY2U6IElmRXhwYW5kU2VydmljZSxcbiAgICBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb2N1c01hbmFnZXI6IFRyZWVGb2N1c01hbmFnZXJTZXJ2aWNlPFQ+LFxuICAgIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICBpZiAodGhpcy5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uKSB7XG4gICAgICAvLyBJJ20gY29tcGxldGVseSBzdHVjaywgd2UgaGF2ZSB0byBoYWNrIGludG8gcHJpdmF0ZSBwcm9wZXJ0aWVzIHVudGlsIGVpdGhlclxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTQ5MzUgb3IgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTU5OThcbiAgICAgIC8vIGFyZSBmaXhlZFxuICAgICAgLy8gVGhpcyBpcyBmb3Igbm9uLWl2eSBpbXBsZW1lbnRhdGlvbnNcbiAgICAgIGlmICgoaW5qZWN0b3IgYXMgYW55KS52aWV3KSB7XG4gICAgICAgIHRoaXMuX21vZGVsID0gKGluamVjdG9yIGFzIGFueSkudmlldy5jb250ZXh0LmNsck1vZGVsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSXZ5IHB1dHMgdGhpcyBvbiBhIHNwZWNpZmljIGluZGV4IG9mIGEgX2xWaWV3IHByb3BlcnR5XG4gICAgICAgIHRoaXMuX21vZGVsID0gKGluamVjdG9yIGFzIGFueSkuX2xWaWV3W0xWSUVXX0NPTlRFWFRfSU5ERVhdLmNsck1vZGVsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGb3JjZSBjYXN0IGZvciBub3csIG5vdCBzdXJlIGhvdyB0byB0aWUgdGhlIGNvcnJlY3QgdHlwZSBoZXJlIHRvIGZlYXR1cmVzU2VydmljZS5yZWN1cnNpb25cbiAgICAgIHRoaXMuX21vZGVsID0gbmV3IERlY2xhcmF0aXZlVHJlZU5vZGVNb2RlbChwYXJlbnQgPyAocGFyZW50Ll9tb2RlbCBhcyBEZWNsYXJhdGl2ZVRyZWVOb2RlTW9kZWw8VD4pIDogbnVsbCk7XG4gICAgfVxuICAgIHRoaXMuX21vZGVsLm5vZGVJZCA9IHRoaXMubm9kZUlkO1xuICB9XG5cbiAgX21vZGVsOiBUcmVlTm9kZU1vZGVsPFQ+O1xuXG4gIGlzRXhwYW5kYWJsZSgpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuZXhwYW5kYWJsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmV4cGFuZGFibGU7XG4gICAgfVxuICAgIHJldHVybiAhIXRoaXMuZXhwYW5kU2VydmljZS5leHBhbmRhYmxlIHx8IHRoaXMuaXNQYXJlbnQ7XG4gIH1cblxuICBpc1NlbGVjdGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGU7XG4gIH1cblxuICBASW5wdXQoJ2NsclNlbGVjdGVkJylcbiAgZ2V0IHNlbGVjdGVkKCk6IENsclNlbGVjdGVkU3RhdGUgfCBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZWwuc2VsZWN0ZWQudmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkKHZhbHVlOiBDbHJTZWxlY3RlZFN0YXRlIHwgYm9vbGVhbikge1xuICAgIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGUgPSB0cnVlO1xuICAgIC8vIEdyYWNlZnVsbHkgaGFuZGxlIGZhbHN5IHN0YXRlcyBsaWtlIG51bGwgb3IgdW5kZWZpbmVkIGJlY2F1c2UgaXQncyBqdXN0IGVhc2llciB0aGFuIGFuc3dlcmluZyBxdWVzdGlvbnMuXG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHdpdGggc3RyaWN0IHR5cGluZyBvbiB0aGUgYXBwJ3Mgc2lkZSwgYnV0IGl0J3Mgbm90IHVwIHRvIHVzLlxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB2YWx1ZSA9IENsclNlbGVjdGVkU3RhdGUuVU5TRUxFQ1RFRDtcbiAgICB9XG4gICAgLy8gV2UgbWF0Y2ggYm9vbGVhbnMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgQ2xyU2VsZWN0ZWRTdGF0ZVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgdmFsdWUgPSB2YWx1ZSA/IENsclNlbGVjdGVkU3RhdGUuU0VMRUNURUQgOiBDbHJTZWxlY3RlZFN0YXRlLlVOU0VMRUNURUQ7XG4gICAgfVxuICAgIC8vIFdlIHByb3BhZ2F0ZSBvbmx5IGlmIHRoZSB0cmVlIGlzIGluIHNtYXJ0IG1vZGUsIGFuZCBza2lwIGVtaXR0aW5nIHRoZSBvdXRwdXQgd2hlbiB3ZSBzZXQgdGhlIGlucHV0XG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS92bXdhcmUvY2xhcml0eS9pc3N1ZXMvMzA3M1xuICAgIHRoaXMuc2tpcEVtaXRDaGFuZ2UgPSB0cnVlO1xuICAgIHRoaXMuX21vZGVsLnNldFNlbGVjdGVkKHZhbHVlLCB0aGlzLmZlYXR1cmVzU2VydmljZS5lYWdlciwgdGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXIpO1xuICAgIHRoaXMuc2tpcEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIEBPdXRwdXQoJ2NsclNlbGVjdGVkQ2hhbmdlJykgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENsclNlbGVjdGVkU3RhdGU+KGZhbHNlKTtcblxuICBnZXQgYXJpYVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzU2VsZWN0YWJsZSgpID8gdGhpcy5fbW9kZWwuc2VsZWN0ZWQudmFsdWUgPT09IENsclNlbGVjdGVkU3RhdGUuU0VMRUNURUQgOiBudWxsO1xuICB9XG5cbiAgLy8gQWxsb3dzIHRoZSBjb25zdW1lciB0byBvdmVycmlkZSBvdXIgbG9naWMgZGVjaWRpbmcgaWYgYSBub2RlIGlzIGV4cGFuZGFibGUuXG4gIC8vIFVzZWZ1bCBmb3IgcmVjdXJzaXZlIHRyZWVzIHRoYXQgZG9uJ3Qgd2FudCB0byBwcmUtbG9hZCBvbmUgbGV2ZWwgYWhlYWQganVzdCB0byBrbm93IHdoaWNoIG5vZGVzIGFyZSBleHBhbmRhYmxlLlxuICBASW5wdXQoJ2NsckV4cGFuZGFibGUnKSBleHBhbmRhYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8vIEknbSBjYXZpbmcgb24gdGhpcywgZm9yIHRyZWUgbm9kZXMgSSB0aGluayB3ZSBjYW4gdG9sZXJhdGUgaGF2aW5nIGEgdHdvLXdheSBiaW5kaW5nIG9uIHRoZSBjb21wb25lbnRcbiAgLy8gcmF0aGVyIHRoYW4gZW5mb3JjZSB0aGUgY2xySWZFeHBhbmRlZCBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZSBmb3IgZHluYW1pYyBjYXNlcy4gTW9zdGx5IGJlY2F1c2UgZm9yIHRoZSBzbWFydFxuICAvLyBjYXNlLCB5b3UgY2FuJ3QgdXNlIGEgc3RydWN0dXJhbCBkaXJlY3RpdmUsIGl0IHdvdWxkIG5lZWQgdG8gZ28gb24gYW4gbmctY29udGFpbmVyLlxuICBASW5wdXQoJ2NsckV4cGFuZGVkJylcbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ7XG4gIH1cbiAgc2V0IGV4cGFuZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkID0gdmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KCdjbHJFeHBhbmRlZENoYW5nZScpIGV4cGFuZGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb250ZW50Q29udGFpbmVyVGFiaW5kZXggPSAtMTtcbiAgQFZpZXdDaGlsZCgnY29udGVudENvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgY29udGVudENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9tb2RlbC5leHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLl9tb2RlbC5zZWxlY3RlZC5waXBlKGZpbHRlcigoKSA9PiAhdGhpcy5za2lwRW1pdENoYW5nZSkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kQ2hhbmdlLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX21vZGVsLmV4cGFuZGVkID0gdmFsdWU7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmZvY3VzTWFuYWdlci5mb2N1c1JlcXVlc3Quc3Vic2NyaWJlKG5vZGVJZCA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5vZGVJZCA9PT0gbm9kZUlkKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c1RyZWVOb2RlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNDaGFuZ2Uuc3Vic2NyaWJlKG5vZGVJZCA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tUYWJJbmRleChub2RlSWQpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLl9tb2RlbC5sb2FkaW5nJC5waXBlKGRlYm91bmNlVGltZSgwKSkuc3Vic2NyaWJlKGlzTG9hZGluZyA9PiAodGhpcy5pc01vZGVsTG9hZGluZyA9IGlzTG9hZGluZykpXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy5mb3JUeXBlQWhlYWRQcm92aWRlcikge1xuICAgICAgdGhpcy5fbW9kZWwudGV4dENvbnRlbnQgPSB0aGlzLmZvclR5cGVBaGVhZFByb3ZpZGVyLnRleHRDb250ZW50O1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgdGhpcy50eXBlQWhlYWRLZXlFdmVudC5waXBlKGRlYm91bmNlVGltZShUUkVFX1RZUEVfQUhFQURfVElNRU9VVCkpLnN1YnNjcmliZSgoYnVmZmVyZWRLZXlzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLmZvY3VzTWFuYWdlci5mb2N1c05vZGVTdGFydHNXaXRoKGJ1ZmZlcmVkS2V5cywgdGhpcy5fbW9kZWwpO1xuICAgICAgICAgIC8vIHJlc2V0IG9uY2UgYnVmZmVyZWRLZXlzIGFyZSB1c2VkXG4gICAgICAgICAgdGhpcy50eXBlQWhlYWRLZXlCdWZmZXIgPSAnJztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fbW9kZWwuZGVzdHJveSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICAvLyBAQ29udGVudENoaWxkIHdvdWxkIGhhdmUgYmVlbiBtb3JlIHN1Y2NpbmN0XG4gIC8vIGJ1dCBpdCBkb2Vzbid0IG9mZmVyIGEgd2F5IHRvIHF1ZXJ5IG9ubHkgYW4gaW1tZWRpYXRlIGNoaWxkXG4gIEBDb250ZW50Q2hpbGRyZW4oQ2xyVHJlZU5vZGVMaW5rLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KVxuICBwcml2YXRlIHRyZWVOb2RlTGlua0xpc3Q6IFF1ZXJ5TGlzdDxDbHJUcmVlTm9kZUxpbms+O1xuXG4gIGdldCB0cmVlTm9kZUxpbmsoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJlZU5vZGVMaW5rTGlzdCAmJiB0aGlzLnRyZWVOb2RlTGlua0xpc3QuZmlyc3Q7XG4gIH1cblxuICBwcml2YXRlIHNldFRhYkluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLmNvbnRlbnRDb250YWluZXJUYWJpbmRleCA9IHZhbHVlO1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrVGFiSW5kZXgobm9kZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0aGlzLm5vZGVJZCAhPT0gbm9kZUlkICYmIHRoaXMuY29udGVudENvbnRhaW5lclRhYmluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5zZXRUYWJJbmRleCgtMSk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNUcmVlTm9kZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXJFbCA9IHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGNvbnRhaW5lckVsKSB7XG4gICAgICB0aGlzLnNldFRhYkluZGV4KDApO1xuICAgICAgY29udGFpbmVyRWwuZm9jdXMoKTtcbiAgICAgIGNvbnRhaW5lckVsLnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JywgaW5saW5lOiAnbmVhcmVzdCcgfSk7XG4gICAgfVxuICB9XG5cbiAgYnJvYWRjYXN0Rm9jdXNPbkNvbnRhaW5lcigpIHtcbiAgICB0aGlzLmZvY3VzTWFuYWdlci5icm9hZGNhc3RGb2N1c2VkTm9kZSh0aGlzLm5vZGVJZCk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyBUd28gcmVhc29ucyB0byBwcmV2ZW50IGRlZmF1bHQgYmVoYXZpb3I6XG4gICAgLy8gMS4gdG8gcHJldmVudCBzY3JvbGxpbmcgb24gYXJyb3cga2V5c1xuICAgIC8vIDIuIEFzc2lzdGl2ZSBUZWNobm9sb2d5IGZvY3VzIGRpZmZlcnMgZnJvbSBLZXlib2FyZCBmb2N1cyBiZWhhdmlvci5cbiAgICAvLyAgICBCeSBkZWZhdWx0LCBwcmVzc2luZyBhcnJvdyBrZXkgbWFrZXMgQVQgZm9jdXMgZ28gaW50byB0aGUgbmVzdGVkIGNvbnRlbnQgb2YgdGhlIGl0ZW0uXG4gICAgcHJldmVudEFycm93S2V5U2Nyb2xsKGV2ZW50KTtcblxuICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xLyNrZXlib2FyZC1pbnRlcmFjdGlvbi0yMlxuICAgIHN3aXRjaCAoa2V5VmFsaWRhdG9yKGV2ZW50LmtleSkpIHtcbiAgICAgIGNhc2UgS2V5Q29kZXMuQXJyb3dVcDpcbiAgICAgICAgdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNOb2RlQWJvdmUodGhpcy5fbW9kZWwpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgS2V5Q29kZXMuQXJyb3dEb3duOlxuICAgICAgICB0aGlzLmZvY3VzTWFuYWdlci5mb2N1c05vZGVCZWxvdyh0aGlzLl9tb2RlbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBLZXlDb2Rlcy5BcnJvd1JpZ2h0OlxuICAgICAgICB0aGlzLmV4cGFuZE9yRm9jdXNGaXJzdENoaWxkKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBLZXlDb2Rlcy5BcnJvd0xlZnQ6XG4gICAgICAgIHRoaXMuY29sbGFwc2VPckZvY3VzUGFyZW50KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBLZXlDb2Rlcy5Ib21lOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzTWFuYWdlci5mb2N1c0ZpcnN0VmlzaWJsZU5vZGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEtleUNvZGVzLkVuZDpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNMYXN0VmlzaWJsZU5vZGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEtleUNvZGVzLkVudGVyOlxuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZE9yVHJpZ2dlckRlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEtleUNvZGVzLlNwYWNlOlxuICAgICAgY2FzZSBLZXlDb2Rlcy5TcGFjZWJhcjpcbiAgICAgICAgLy8gdG8gcHJldmVudCBzY3JvbGxpbmcgb24gc3BhY2Uga2V5IGluIHRoaXMgc3BlY2lmaWMgY2FzZVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZE9yVHJpZ2dlckRlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAodGhpcy5fbW9kZWwudGV4dENvbnRlbnQgJiYgaXNLZXlFaXRoZXJMZXR0ZXJPck51bWJlcihldmVudCkpIHtcbiAgICAgICAgICB0aGlzLnR5cGVBaGVhZEtleUJ1ZmZlciArPSBldmVudC5rZXk7XG4gICAgICAgICAgdGhpcy50eXBlQWhlYWRLZXlFdmVudC5uZXh0KHRoaXMudHlwZUFoZWFkS2V5QnVmZmVyKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gaWYgbm9uLWxldHRlciBrZXlzIGFyZSBwcmVzc2VkLCBkbyByZXNldC5cbiAgICB0aGlzLnR5cGVBaGVhZEtleUJ1ZmZlciA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaXNQYXJlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGVsLmNoaWxkcmVuICYmIHRoaXMuX21vZGVsLmNoaWxkcmVuLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUV4cGFuZE9yVHJpZ2dlckRlZmF1bHQoKSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRhYmxlKCkgJiYgIXRoaXMuaXNTZWxlY3RhYmxlKCkpIHtcbiAgICAgIHRoaXMuZXhwYW5kU2VydmljZS5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyaWdnZXJEZWZhdWx0QWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBleHBhbmRPckZvY3VzRmlyc3RDaGlsZCgpIHtcbiAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgLy8gaWYgdGhlIG5vZGUgaXMgYWxyZWFkeSBleHBhbmRlZCBhbmQgaGFzIGNoaWxkcmVuLCBmb2N1cyBpdHMgdmVyeSBmaXJzdCBjaGlsZFxuICAgICAgaWYgKHRoaXMuaXNQYXJlbnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNOb2RlQmVsb3codGhpcy5fbW9kZWwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3ZSBtdXN0IGNoZWNrIGlmIHRoZSBub2RlIGlzIGV4cGFuZGFibGUsIGluIG9yZGVyIHRvIHNldCAuZXhwYW5kZWQgdG8gdHJ1ZSBmcm9tIGZhbHNlXG4gICAgICAvLyBiZWNhdXNlIHdlIHNob3VsZG4ndCBzZXQgLmV4cGFuZGVkIHRvIHRydWUgaWYgaXQncyBub3QgZXhwYW5kYWJsZSBub2RlXG4gICAgICBpZiAodGhpcy5pc0V4cGFuZGFibGUoKSkge1xuICAgICAgICB0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2VPckZvY3VzUGFyZW50KCkge1xuICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XG4gICAgICB0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNQYXJlbnQodGhpcy5fbW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJpZ2dlckRlZmF1bHRBY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMudHJlZU5vZGVMaW5rKSB7XG4gICAgICB0aGlzLnRyZWVOb2RlTGluay5hY3RpdmF0ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5pc1NlbGVjdGFibGUoKSkge1xuICAgICAgICB0aGlzLl9tb2RlbC50b2dnbGVTZWxlY3Rpb24odGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICB+IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gIH4gVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICAtLT5cblxuPGRpdlxuICAjY29udGVudENvbnRhaW5lclxuICByb2xlPVwidHJlZWl0ZW1cIlxuICBjbGFzcz1cImNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXJcIlxuICB0YWJpbmRleD1cIi0xXCJcbiAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0V4cGFuZGFibGUoKSA/IGV4cGFuZGVkIDogbnVsbFwiXG4gIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYXJpYVNlbGVjdGVkXCJcbiAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAoZm9jdXMpPVwiYnJvYWRjYXN0Rm9jdXNPbkNvbnRhaW5lcigpXCJcbj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiaXNFeHBhbmRhYmxlKCkgJiYgIWlzTW9kZWxMb2FkaW5nICYmICFleHBhbmRTZXJ2aWNlLmxvYWRpbmdcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgY2xhc3M9XCJjbHItdHJlZW5vZGUtY2FyZXRcIlxuICAgIChjbGljayk9XCJleHBhbmRTZXJ2aWNlLnRvZ2dsZSgpO1wiXG4gICAgKGZvY3VzKT1cImZvY3VzVHJlZU5vZGUoKVwiXG4gID5cbiAgICA8Y2RzLWljb25cbiAgICAgIGNsYXNzPVwiY2xyLXRyZWVub2RlLWNhcmV0LWljb25cIlxuICAgICAgc2hhcGU9XCJhbmdsZVwiXG4gICAgICBbYXR0ci5kaXJlY3Rpb25dPVwiZXhwYW5kU2VydmljZS5leHBhbmRlZCA/ICdkb3duJyA6ICdyaWdodCdcIlxuICAgID48L2Nkcy1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGRpdiBjbGFzcz1cImNsci10cmVlbm9kZS1zcGlubmVyLWNvbnRhaW5lclwiICpuZ0lmPVwiZXhwYW5kU2VydmljZS5sb2FkaW5nIHx8IGlzTW9kZWxMb2FkaW5nXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjbHItdHJlZW5vZGUtc3Bpbm5lciBzcGlubmVyXCI+PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNsci1jaGVja2JveC13cmFwcGVyIGNsci10cmVlbm9kZS1jaGVja2JveFwiICpuZ0lmPVwiZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGVcIj5cbiAgICA8aW5wdXRcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgaWQ9XCJ7e25vZGVJZH19LWNoZWNrXCJcbiAgICAgIGNsYXNzPVwiY2xyLWNoZWNrYm94XCJcbiAgICAgIFtjaGVja2VkXT1cIl9tb2RlbC5zZWxlY3RlZC52YWx1ZSA9PT0gU1RBVEVTLlNFTEVDVEVEXCJcbiAgICAgIFtpbmRldGVybWluYXRlXT1cIl9tb2RlbC5zZWxlY3RlZC52YWx1ZSA9PT0gU1RBVEVTLklOREVURVJNSU5BVEVcIlxuICAgICAgKGNoYW5nZSk9XCJfbW9kZWwudG9nZ2xlU2VsZWN0aW9uKGZlYXR1cmVzU2VydmljZS5lYWdlcilcIlxuICAgICAgKGZvY3VzKT1cImZvY3VzVHJlZU5vZGUoKVwiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAvPlxuICAgIDxsYWJlbCBmb3I9XCJ7e25vZGVJZH19LWNoZWNrXCIgY2xhc3M9XCJjbHItY29udHJvbC1sYWJlbFwiPjwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2xyLXRyZWVub2RlLWNvbnRlbnRcIiAobW91c2Vkb3duKT1cImZvY3VzVHJlZU5vZGUoKVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiY2xyLXNyLW9ubHlcIiAqbmdJZj1cImZlYXR1cmVzU2VydmljZS5zZWxlY3RhYmxlXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImFyaWFTZWxlY3RlZFwiPiBzZWxlY3RlZCA8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFhcmlhU2VsZWN0ZWRcIj4gdW5zZWxlY3RlZCA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2XG4gIGNsYXNzPVwiY2xyLXRyZWVub2RlLWNoaWxkcmVuXCJcbiAgW0B0b2dnbGVDaGlsZHJlbkFuaW1dPVwiZXhwYW5kU2VydmljZS5leHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ1wiXG4gIFthdHRyLnJvbGVdPVwiaXNFeHBhbmRhYmxlKCkgJiYgIWZlYXR1cmVzU2VydmljZS5yZWN1cnNpb24gPyAnZ3JvdXAnIDogbnVsbFwiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci10cmVlLW5vZGVcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltjbHJJZkV4cGFuZGVkXVwiPjwvbmctY29udGVudD5cbiAgPGNsci1yZWN1cnNpdmUtY2hpbGRyZW4gW3BhcmVudF09XCJfbW9kZWxcIj48L2Nsci1yZWN1cnNpdmUtY2hpbGRyZW4+XG48L2Rpdj5cbiJdfQ==
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
124
124
  }], clrInline: [{
125
125
  type: Input
126
126
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY2hlY2tib3gvY2hlY2tib3gtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7QUFzQ3pDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFNNUQsWUFDd0IsYUFBNEIsRUFDeEMsbUJBQXdDLEVBQ3hDLGdCQUFrQyxFQUNsQyxxQkFBNEM7UUFFdEQsS0FBSyxDQUFDLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBTDdELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3hDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBVGhELFdBQU0sR0FBRyxLQUFLLENBQUM7SUFZdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFDSSxTQUFTLENBQUMsS0FBdUI7UUFDbkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNoRDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RCxDQUFDOztpSEF2Q1Usb0JBQW9CO3FHQUFwQixvQkFBb0IsaVJBRnBCLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMscURBTTVFLFdBQVcsdUVBdENsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVDsyRkFTVSxvQkFBb0I7a0JBcENoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2Q0FBNkM7b0JBQ3ZELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osMEJBQTBCLEVBQUUsTUFBTTt3QkFDbEMsbUNBQW1DLEVBQUUsbUJBQW1CO3dCQUN4RCxpQkFBaUIsRUFBRSxXQUFXO3dCQUM5QixhQUFhLEVBQUUsTUFBTTtxQkFDdEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUM7aUJBQzlGOzswQkFRSSxRQUFRO2lKQUgwQyxVQUFVO3NCQUE5RCxlQUFlO3VCQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBa0IvQyxTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbnB1dCwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb250cm9sQ2xhc3NTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9jb250cm9sLWNsYXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdDb250cm9sU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvbmctY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IENsckFic3RyYWN0Q29udGFpbmVyIH0gZnJvbSAnLi4vY29tbW9uL2Fic3RyYWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBJZkNvbnRyb2xTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vaWYtY29udHJvbC1zdGF0ZS9pZi1jb250cm9sLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGFpbmVySWRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9jb250YWluZXItaWQuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJDaGVja2JveCB9IGZyb20gJy4vY2hlY2tib3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItY2hlY2tib3gtY29udGFpbmVyLGNsci10b2dnbGUtY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJsYWJlbFwiPjwvbmctY29udGVudD5cbiAgICA8bGFiZWwgKm5nSWY9XCIhbGFiZWwgJiYgYWRkR3JpZCgpXCI+PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbnRyb2wtY29udGFpbmVyXCIgW2NsYXNzLmNsci1jb250cm9sLWlubGluZV09XCJjbHJJbmxpbmVcIiBbbmdDbGFzc109XCJjb250cm9sQ2xhc3MoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNoZWNrYm94LXdyYXBwZXIsY2xyLXRvZ2dsZS13cmFwcGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImNsci1zdWJ0ZXh0LXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtaGVscGVyXCIgKm5nSWY9XCJzaG93SGVscGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8Y2RzLWljb25cbiAgICAgICAgICAqbmdJZj1cInNob3dJbnZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgICBzdGF0dXM9XCJkYW5nZXJcIlxuICAgICAgICAgIHNoYXBlPVwiZXhjbGFtYXRpb24tY2lyY2xlXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPGNkcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VmFsaWRcIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLXZhbGlkYXRlLWljb25cIlxuICAgICAgICAgIHN0YXR1cz1cInN1Y2Nlc3NcIlxuICAgICAgICAgIHNoYXBlPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtZXJyb3JcIiAqbmdJZj1cInNob3dJbnZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItY29udHJvbC1zdWNjZXNzXCIgKm5nSWY9XCJzaG93VmFsaWRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY2xyLWZvcm0tY29udHJvbF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkXSc6ICdjb250cm9sPy5kaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5jbHItcm93XSc6ICdhZGRHcmlkKCknLFxuICAgICdbYXR0ci5yb2xlXSc6ICdyb2xlJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbSWZDb250cm9sU3RhdGVTZXJ2aWNlLCBOZ0NvbnRyb2xTZXJ2aWNlLCBDb250cm9sQ2xhc3NTZXJ2aWNlLCBDb250YWluZXJJZFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJDaGVja2JveENvbnRhaW5lciBleHRlbmRzIENsckFic3RyYWN0Q29udGFpbmVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgaW5saW5lID0gZmFsc2U7XG4gIHB1YmxpYyByb2xlOiBzdHJpbmc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihDbHJDaGVja2JveCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBjaGVja2JveGVzOiBRdWVyeUxpc3Q8Q2xyQ2hlY2tib3g+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjb250cm9sQ2xhc3NTZXJ2aWNlOiBDb250cm9sQ2xhc3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBuZ0NvbnRyb2xTZXJ2aWNlOiBOZ0NvbnRyb2xTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBpZkNvbnRyb2xTdGF0ZVNlcnZpY2U6IElmQ29udHJvbFN0YXRlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihpZkNvbnRyb2xTdGF0ZVNlcnZpY2UsIGxheW91dFNlcnZpY2UsIGNvbnRyb2xDbGFzc1NlcnZpY2UsIG5nQ29udHJvbFNlcnZpY2UpO1xuICB9XG5cbiAgLypcbiAgICogSGVyZSB3ZSB3YW50IHRvIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBjYXNlc1xuICAgKiBjbHJJbmxpbmUgLSB0cnVlIGJ5IHByZXNlbmNlXG4gICAqIGNscklubGluZT1cInRydWV8ZmFsc2VcIiAtIHVubGVzcyBpdCBpcyBleHBsaWNpdGx5IGZhbHNlLCBzdHJpbmdzIGFyZSBjb25zaWRlcmVkIHRydWVcbiAgICogW2NscklubGluZV09XCJ0cnVlfGZhbHNlXCIgLSBleHBlY3QgYSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY2xySW5saW5lKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuaW5saW5lID0gdmFsdWUgPT09ICdmYWxzZScgPyBmYWxzZSA6IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5saW5lID0gISF2YWx1ZTtcbiAgICB9XG4gIH1cbiAgZ2V0IGNscklubGluZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbmxpbmU7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5zZXRBcmlhUm9sZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QXJpYVJvbGVzKCkge1xuICAgIHRoaXMucm9sZSA9IHRoaXMuY2hlY2tib3hlcy5sZW5ndGggPyAnZ3JvdXAnIDogbnVsbDtcbiAgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY2hlY2tib3gvY2hlY2tib3gtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7QUFzQ3pDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFNNUQsWUFDaUMsYUFBNEIsRUFDeEMsbUJBQXdDLEVBQ3hDLGdCQUFrQyxFQUNsQyxxQkFBNEM7UUFFL0QsS0FBSyxDQUFDLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBTHBELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3hDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBVHpELFdBQU0sR0FBRyxLQUFLLENBQUM7SUFZdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFDSSxTQUFTLENBQUMsS0FBdUI7UUFDbkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNoRDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRVEsa0JBQWtCO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RCxDQUFDOztpSEF2Q1Usb0JBQW9CO3FHQUFwQixvQkFBb0IsaVJBRnBCLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMscURBTTVFLFdBQVcsdUVBdENsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVDsyRkFTVSxvQkFBb0I7a0JBcENoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2Q0FBNkM7b0JBQ3ZELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osMEJBQTBCLEVBQUUsTUFBTTt3QkFDbEMsbUNBQW1DLEVBQUUsbUJBQW1CO3dCQUN4RCxpQkFBaUIsRUFBRSxXQUFXO3dCQUM5QixhQUFhLEVBQUUsTUFBTTtxQkFDdEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUM7aUJBQzlGOzswQkFRSSxRQUFRO2lKQUgwQyxVQUFVO3NCQUE5RCxlQUFlO3VCQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBa0IvQyxTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbnB1dCwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb250cm9sQ2xhc3NTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9jb250cm9sLWNsYXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdDb250cm9sU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvbmctY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IENsckFic3RyYWN0Q29udGFpbmVyIH0gZnJvbSAnLi4vY29tbW9uL2Fic3RyYWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBJZkNvbnRyb2xTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vaWYtY29udHJvbC1zdGF0ZS9pZi1jb250cm9sLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGFpbmVySWRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9jb250YWluZXItaWQuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJDaGVja2JveCB9IGZyb20gJy4vY2hlY2tib3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItY2hlY2tib3gtY29udGFpbmVyLGNsci10b2dnbGUtY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJsYWJlbFwiPjwvbmctY29udGVudD5cbiAgICA8bGFiZWwgKm5nSWY9XCIhbGFiZWwgJiYgYWRkR3JpZCgpXCI+PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbnRyb2wtY29udGFpbmVyXCIgW2NsYXNzLmNsci1jb250cm9sLWlubGluZV09XCJjbHJJbmxpbmVcIiBbbmdDbGFzc109XCJjb250cm9sQ2xhc3MoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNoZWNrYm94LXdyYXBwZXIsY2xyLXRvZ2dsZS13cmFwcGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImNsci1zdWJ0ZXh0LXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtaGVscGVyXCIgKm5nSWY9XCJzaG93SGVscGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8Y2RzLWljb25cbiAgICAgICAgICAqbmdJZj1cInNob3dJbnZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgICBzdGF0dXM9XCJkYW5nZXJcIlxuICAgICAgICAgIHNoYXBlPVwiZXhjbGFtYXRpb24tY2lyY2xlXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPGNkcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJzaG93VmFsaWRcIlxuICAgICAgICAgIGNsYXNzPVwiY2xyLXZhbGlkYXRlLWljb25cIlxuICAgICAgICAgIHN0YXR1cz1cInN1Y2Nlc3NcIlxuICAgICAgICAgIHNoYXBlPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9jZHMtaWNvbj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtZXJyb3JcIiAqbmdJZj1cInNob3dJbnZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItY29udHJvbC1zdWNjZXNzXCIgKm5nSWY9XCJzaG93VmFsaWRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuY2xyLWZvcm0tY29udHJvbF0nOiAndHJ1ZScsXG4gICAgJ1tjbGFzcy5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkXSc6ICdjb250cm9sPy5kaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5jbHItcm93XSc6ICdhZGRHcmlkKCknLFxuICAgICdbYXR0ci5yb2xlXSc6ICdyb2xlJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbSWZDb250cm9sU3RhdGVTZXJ2aWNlLCBOZ0NvbnRyb2xTZXJ2aWNlLCBDb250cm9sQ2xhc3NTZXJ2aWNlLCBDb250YWluZXJJZFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJDaGVja2JveENvbnRhaW5lciBleHRlbmRzIENsckFic3RyYWN0Q29udGFpbmVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgaW5saW5lID0gZmFsc2U7XG4gIHB1YmxpYyByb2xlOiBzdHJpbmc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihDbHJDaGVja2JveCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBjaGVja2JveGVzOiBRdWVyeUxpc3Q8Q2xyQ2hlY2tib3g+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBvdmVycmlkZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjb250cm9sQ2xhc3NTZXJ2aWNlOiBDb250cm9sQ2xhc3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBuZ0NvbnRyb2xTZXJ2aWNlOiBOZ0NvbnRyb2xTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpZkNvbnRyb2xTdGF0ZVNlcnZpY2U6IElmQ29udHJvbFN0YXRlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihpZkNvbnRyb2xTdGF0ZVNlcnZpY2UsIGxheW91dFNlcnZpY2UsIGNvbnRyb2xDbGFzc1NlcnZpY2UsIG5nQ29udHJvbFNlcnZpY2UpO1xuICB9XG5cbiAgLypcbiAgICogSGVyZSB3ZSB3YW50IHRvIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBjYXNlc1xuICAgKiBjbHJJbmxpbmUgLSB0cnVlIGJ5IHByZXNlbmNlXG4gICAqIGNscklubGluZT1cInRydWV8ZmFsc2VcIiAtIHVubGVzcyBpdCBpcyBleHBsaWNpdGx5IGZhbHNlLCBzdHJpbmdzIGFyZSBjb25zaWRlcmVkIHRydWVcbiAgICogW2NscklubGluZV09XCJ0cnVlfGZhbHNlXCIgLSBleHBlY3QgYSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY2xySW5saW5lKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuaW5saW5lID0gdmFsdWUgPT09ICdmYWxzZScgPyBmYWxzZSA6IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5saW5lID0gISF2YWx1ZTtcbiAgICB9XG4gIH1cbiAgZ2V0IGNscklubGluZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbmxpbmU7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5zZXRBcmlhUm9sZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QXJpYVJvbGVzKCkge1xuICAgIHRoaXMucm9sZSA9IHRoaXMuY2hlY2tib3hlcy5sZW5ndGggPyAnZ3JvdXAnIDogbnVsbDtcbiAgfVxufVxuIl19
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
40
40
  type: Attribute,
41
41
  args: ['clrToggle']
42
42
  }] }]; } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9jaGVja2JveC9jaGVja2JveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBbUMsSUFBSSxFQUFFLFFBQVEsRUFBb0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXhILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRS9EOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFPLFdBQVksU0FBUSxrQkFBc0M7SUFDckUsWUFDRSxHQUFxQixFQUNyQixRQUFrQixFQUdsQixPQUFrQixFQUNsQixRQUFtQixFQUNuQixFQUFjLEVBQ2tCLE1BQWM7UUFFOUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUZoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBR2hELENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBMkIsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRS9GLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3pDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDOzt3R0F0QlUsV0FBVyxrTEFTVCxXQUFXOzRGQVRiLFdBQVc7MkZBQVgsV0FBVztrQkFEdkIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRTs7MEJBSy9DLElBQUk7OzBCQUNKLFFBQVE7OzBCQUlSLFNBQVM7MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBTZWxmLCBPcHRpb25hbCwgVmlld0NvbnRhaW5lclJlZiwgQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ2xyQ2hlY2tib3hXcmFwcGVyLCBJU19UT0dHTEUgfSBmcm9tICcuL2NoZWNrYm94LXdyYXBwZXInO1xuaW1wb3J0IHsgV3JhcHBlZEZvcm1Db250cm9sIH0gZnJvbSAnLi4vY29tbW9uL3dyYXBwZWQtY29udHJvbCc7XG5cbi8qKlxuICogVGhpcyBpbXBsZW1lbnRzIGJvdGggdGhlIGNsckNoZWNrYm94IGFuZCBjbHJUb2dnbGUgZnVuY3Rpb25hbGl0eSwgc2luY2UgdGhleSBhcmUgYm90aCBqdXN0IGNoZWNrYm94ZXMgd2l0aCBkaWZmZXJlbnRcbiAqIHZpc3VhbCBzdHlsaW5nLiBUaGUgY2hhbGxlbmdlIGlzIHRoYXQgdGhlIGNvbnRhaW5lciBuZWVkcyB0byBrbm93IHdoaWNoIHNlbGVjdG9yIHdhcyB1c2VkLCB3aGljaCB0aGUgQEF0dHJpYnV0ZVxuICogZGVjb3JhdG9yIGdldHMgZm9yIHVzIHRvIGRldGVybWluZSBpZiB0aGUgdG9nZ2xlIGlzIHVzZWQsIGFuZCBlbWl0cyBhIHZhbHVlIHRvIHRoZSB3cmFwcGVyIGNvbnRhaW5lciB0byB0ZWxsIGl0XG4gKiB0aGVyZSBpcyBhIHRvZ2dsZSBzd2l0Y2ggaW5zdGVhZC5cbiAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2NsckNoZWNrYm94XSxbY2xyVG9nZ2xlXScgfSlcbmV4cG9ydCBjbGFzcyBDbHJDaGVja2JveCBleHRlbmRzIFdyYXBwZWRGb3JtQ29udHJvbDxDbHJDaGVja2JveFdyYXBwZXI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBAU2VsZigpXG4gICAgQE9wdGlvbmFsKClcbiAgICBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBlbDogRWxlbWVudFJlZixcbiAgICBAQXR0cmlidXRlKCdjbHJUb2dnbGUnKSBwcml2YXRlIHRvZ2dsZTogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKHZjciwgQ2xyQ2hlY2tib3hXcmFwcGVyLCBpbmplY3RvciwgY29udHJvbCwgcmVuZGVyZXIsIGVsKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICBjb25zdCB0b2dnbGVTZXJ2aWNlID0gdGhpcy5nZXRQcm92aWRlckZyb21Db250YWluZXI8QmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+PihJU19UT0dHTEUsIG51bGwpO1xuXG4gICAgaWYgKHRvZ2dsZVNlcnZpY2UgJiYgdGhpcy50b2dnbGUgIT09IG51bGwpIHtcbiAgICAgIHRvZ2dsZVNlcnZpY2UubmV4dCh0cnVlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9jaGVja2JveC9jaGVja2JveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBbUMsSUFBSSxFQUFFLFFBQVEsRUFBb0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXhILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRS9EOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFPLFdBQVksU0FBUSxrQkFBc0M7SUFDckUsWUFDRSxHQUFxQixFQUNyQixRQUFrQixFQUdsQixPQUFrQixFQUNsQixRQUFtQixFQUNuQixFQUFjLEVBQ2tCLE1BQWM7UUFFOUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUZoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBR2hELENBQUM7SUFFUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBMkIsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRS9GLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3pDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDOzt3R0F0QlUsV0FBVyxrTEFTVCxXQUFXOzRGQVRiLFdBQVc7MkZBQVgsV0FBVztrQkFEdkIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRTs7MEJBSy9DLElBQUk7OzBCQUNKLFFBQVE7OzBCQUlSLFNBQVM7MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBTZWxmLCBPcHRpb25hbCwgVmlld0NvbnRhaW5lclJlZiwgQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ2xyQ2hlY2tib3hXcmFwcGVyLCBJU19UT0dHTEUgfSBmcm9tICcuL2NoZWNrYm94LXdyYXBwZXInO1xuaW1wb3J0IHsgV3JhcHBlZEZvcm1Db250cm9sIH0gZnJvbSAnLi4vY29tbW9uL3dyYXBwZWQtY29udHJvbCc7XG5cbi8qKlxuICogVGhpcyBpbXBsZW1lbnRzIGJvdGggdGhlIGNsckNoZWNrYm94IGFuZCBjbHJUb2dnbGUgZnVuY3Rpb25hbGl0eSwgc2luY2UgdGhleSBhcmUgYm90aCBqdXN0IGNoZWNrYm94ZXMgd2l0aCBkaWZmZXJlbnRcbiAqIHZpc3VhbCBzdHlsaW5nLiBUaGUgY2hhbGxlbmdlIGlzIHRoYXQgdGhlIGNvbnRhaW5lciBuZWVkcyB0byBrbm93IHdoaWNoIHNlbGVjdG9yIHdhcyB1c2VkLCB3aGljaCB0aGUgQEF0dHJpYnV0ZVxuICogZGVjb3JhdG9yIGdldHMgZm9yIHVzIHRvIGRldGVybWluZSBpZiB0aGUgdG9nZ2xlIGlzIHVzZWQsIGFuZCBlbWl0cyBhIHZhbHVlIHRvIHRoZSB3cmFwcGVyIGNvbnRhaW5lciB0byB0ZWxsIGl0XG4gKiB0aGVyZSBpcyBhIHRvZ2dsZSBzd2l0Y2ggaW5zdGVhZC5cbiAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2NsckNoZWNrYm94XSxbY2xyVG9nZ2xlXScgfSlcbmV4cG9ydCBjbGFzcyBDbHJDaGVja2JveCBleHRlbmRzIFdyYXBwZWRGb3JtQ29udHJvbDxDbHJDaGVja2JveFdyYXBwZXI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBAU2VsZigpXG4gICAgQE9wdGlvbmFsKClcbiAgICBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBlbDogRWxlbWVudFJlZixcbiAgICBAQXR0cmlidXRlKCdjbHJUb2dnbGUnKSBwcml2YXRlIHRvZ2dsZTogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKHZjciwgQ2xyQ2hlY2tib3hXcmFwcGVyLCBpbmplY3RvciwgY29udHJvbCwgcmVuZGVyZXIsIGVsKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICBjb25zdCB0b2dnbGVTZXJ2aWNlID0gdGhpcy5nZXRQcm92aWRlckZyb21Db250YWluZXI8QmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+PihJU19UT0dHTEUsIG51bGwpO1xuXG4gICAgaWYgKHRvZ2dsZVNlcnZpY2UgJiYgdGhpcy50b2dnbGUgIT09IG51bGwpIHtcbiAgICAgIHRvZ2dsZVNlcnZpY2UubmV4dCh0cnVlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
106
106
  type: ContentChild,
107
107
  args: [ClrLabel]
108
108
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY29tYm9ib3gvY29tYm9ib3gtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFFUixTQUFTLEVBQ1QsWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7OztBQW9DNUYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG9CQUFvQjtJQUk1RCxZQUNFLHFCQUE0QyxFQUNoQyxhQUE0QixFQUN4QyxtQkFBd0MsRUFDeEMsZ0JBQWtDLEVBQzFCLGdCQUEwQyxFQUMxQyxFQUFjO1FBRXRCLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUgzRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTBCO1FBQzFDLE9BQUUsR0FBRixFQUFFLENBQVk7SUFHeEIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDMUYsQ0FBQzs7aUhBeEJVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDhPQUZwQixDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDLDZEQUl2RyxRQUFRLDZMQWxDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQ7MkZBU1Usb0JBQW9CO2tCQWxDaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUO29CQUNELElBQUksRUFBRTt3QkFDSiwwQkFBMEIsRUFBRSxNQUFNO3dCQUNsQyxtQ0FBbUMsRUFBRSxNQUFNO3dCQUMzQyxtQ0FBbUMsRUFBRSxtQkFBbUI7d0JBQ3hELGlCQUFpQixFQUFFLFdBQVc7cUJBQy9CO29CQUNELFNBQVMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDO2lCQUN0SDs7MEJBT0ksUUFBUTs2S0FMb0IsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDTCxLQUFLO3NCQUE1QixZQUFZO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT3B0aW9uYWwsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgQ29udGVudENoaWxkLFxuICBBZnRlclZpZXdJbml0LFxuICBBZnRlckNvbnRlbnRJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmdDb250cm9sU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvbmctY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xJZFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL2NvbnRyb2wtaWQuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sQ2xhc3NTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9jb250cm9sLWNsYXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tYm9ib3hDb250YWluZXJTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvY29tYm9ib3gtY29udGFpbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQWJzdHJhY3RDb250YWluZXIgfSBmcm9tICcuLi9jb21tb24vYWJzdHJhY3QtY29udGFpbmVyJztcbmltcG9ydCB7IENsckxhYmVsIH0gZnJvbSAnLi4vY29tbW9uL2xhYmVsJztcbmltcG9ydCB7IElmQ29udHJvbFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9pZi1jb250cm9sLXN0YXRlL2lmLWNvbnRyb2wtc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1jb21ib2JveC1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImxhYmVsXCI+PC9uZy1jb250ZW50PlxuICAgIDxsYWJlbCAqbmdJZj1cIiFsYWJlbCAmJiBhZGRHcmlkKClcIj48L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjbHItY29udHJvbC1jb250YWluZXJcIiBbbmdDbGFzc109XCJjb250cm9sQ2xhc3MoKVwiICNjb250cm9sQ29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbWJvYm94XCI+PC9uZy1jb250ZW50PlxuICAgICAgPGNkcy1pY29uXG4gICAgICAgICpuZ0lmPVwic2hvd0ludmFsaWRcIlxuICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgc3RhdHVzPVwiZGFuZ2VyXCJcbiAgICAgICAgc2hhcGU9XCJleGNsYW1hdGlvbi1jaXJjbGVcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgPjwvY2RzLWljb24+XG4gICAgICA8Y2RzLWljb25cbiAgICAgICAgKm5nSWY9XCJzaG93VmFsaWRcIlxuICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgc3RhdHVzPVwic3VjY2Vzc1wiXG4gICAgICAgIHNoYXBlPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID48L2Nkcy1pY29uPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtaGVscGVyXCIgKm5nSWY9XCJzaG93SGVscGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtZXJyb3JcIiAqbmdJZj1cInNob3dJbnZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtc3VjY2Vzc1wiICpuZ0lmPVwic2hvd1ZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5jbHItZm9ybS1jb250cm9sXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1jb21ib2JveC1mb3JtLWNvbnRyb2xdJzogJ3RydWUnLFxuICAgICdbY2xhc3MuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZF0nOiAnY29udHJvbD8uZGlzYWJsZWQnLFxuICAgICdbY2xhc3MuY2xyLXJvd10nOiAnYWRkR3JpZCgpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbSWZDb250cm9sU3RhdGVTZXJ2aWNlLCBOZ0NvbnRyb2xTZXJ2aWNlLCBDb250cm9sSWRTZXJ2aWNlLCBDb250cm9sQ2xhc3NTZXJ2aWNlLCBDb21ib2JveENvbnRhaW5lclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJDb21ib2JveENvbnRhaW5lciBleHRlbmRzIENsckFic3RyYWN0Q29udGFpbmVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRyb2xDb250YWluZXInKSBjb250cm9sQ29udGFpbmVyOiBFbGVtZW50UmVmO1xuICBAQ29udGVudENoaWxkKENsckxhYmVsKSBsYWJlbDogQ2xyTGFiZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWZDb250cm9sU3RhdGVTZXJ2aWNlOiBJZkNvbnRyb2xTdGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcbiAgICBjb250cm9sQ2xhc3NTZXJ2aWNlOiBDb250cm9sQ2xhc3NTZXJ2aWNlLFxuICAgIG5nQ29udHJvbFNlcnZpY2U6IE5nQ29udHJvbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250YWluZXJTZXJ2aWNlOiBDb21ib2JveENvbnRhaW5lclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihpZkNvbnRyb2xTdGF0ZVNlcnZpY2UsIGxheW91dFNlcnZpY2UsIGNvbnRyb2xDbGFzc1NlcnZpY2UsIG5nQ29udHJvbFNlcnZpY2UpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICh0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lclNlcnZpY2UubGFiZWxUZXh0ID0gdGhpcy5sYWJlbC5sYWJlbFRleHQ7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY29udGFpbmVyU2VydmljZS5sYWJlbE9mZnNldCA9XG4gICAgICB0aGlzLmNvbnRyb2xDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICB9XG59XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZm9ybXMvY29tYm9ib3gvY29tYm9ib3gtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFFUixTQUFTLEVBQ1QsWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7OztBQW9DNUYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG9CQUFvQjtJQUk1RCxZQUNFLHFCQUE0QyxFQUNoQyxhQUE0QixFQUN4QyxtQkFBd0MsRUFDeEMsZ0JBQWtDLEVBQzFCLGdCQUEwQyxFQUMxQyxFQUFjO1FBRXRCLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUgzRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTBCO1FBQzFDLE9BQUUsR0FBRixFQUFFLENBQVk7SUFHeEIsQ0FBQztJQUVRLGtCQUFrQjtRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDMUYsQ0FBQzs7aUhBeEJVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDhPQUZwQixDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDLDZEQUl2RyxRQUFRLDZMQWxDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQ7MkZBU1Usb0JBQW9CO2tCQWxDaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUO29CQUNELElBQUksRUFBRTt3QkFDSiwwQkFBMEIsRUFBRSxNQUFNO3dCQUNsQyxtQ0FBbUMsRUFBRSxNQUFNO3dCQUMzQyxtQ0FBbUMsRUFBRSxtQkFBbUI7d0JBQ3hELGlCQUFpQixFQUFFLFdBQVc7cUJBQy9CO29CQUNELFNBQVMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDO2lCQUN0SDs7MEJBT0ksUUFBUTs2S0FMb0IsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDSSxLQUFLO3NCQUFyQyxZQUFZO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT3B0aW9uYWwsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgQ29udGVudENoaWxkLFxuICBBZnRlclZpZXdJbml0LFxuICBBZnRlckNvbnRlbnRJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmdDb250cm9sU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvbmctY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xJZFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vcHJvdmlkZXJzL2NvbnRyb2wtaWQuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sQ2xhc3NTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3Byb3ZpZGVycy9jb250cm9sLWNsYXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9wcm92aWRlcnMvbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tYm9ib3hDb250YWluZXJTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvY29tYm9ib3gtY29udGFpbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQWJzdHJhY3RDb250YWluZXIgfSBmcm9tICcuLi9jb21tb24vYWJzdHJhY3QtY29udGFpbmVyJztcbmltcG9ydCB7IENsckxhYmVsIH0gZnJvbSAnLi4vY29tbW9uL2xhYmVsJztcbmltcG9ydCB7IElmQ29udHJvbFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9pZi1jb250cm9sLXN0YXRlL2lmLWNvbnRyb2wtc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1jb21ib2JveC1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImxhYmVsXCI+PC9uZy1jb250ZW50PlxuICAgIDxsYWJlbCAqbmdJZj1cIiFsYWJlbCAmJiBhZGRHcmlkKClcIj48L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjbHItY29udHJvbC1jb250YWluZXJcIiBbbmdDbGFzc109XCJjb250cm9sQ2xhc3MoKVwiICNjb250cm9sQ29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbWJvYm94XCI+PC9uZy1jb250ZW50PlxuICAgICAgPGNkcy1pY29uXG4gICAgICAgICpuZ0lmPVwic2hvd0ludmFsaWRcIlxuICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgc3RhdHVzPVwiZGFuZ2VyXCJcbiAgICAgICAgc2hhcGU9XCJleGNsYW1hdGlvbi1jaXJjbGVcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgPjwvY2RzLWljb24+XG4gICAgICA8Y2RzLWljb25cbiAgICAgICAgKm5nSWY9XCJzaG93VmFsaWRcIlxuICAgICAgICBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCJcbiAgICAgICAgc3RhdHVzPVwic3VjY2Vzc1wiXG4gICAgICAgIHNoYXBlPVwiY2hlY2stY2lyY2xlXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID48L2Nkcy1pY29uPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtaGVscGVyXCIgKm5nSWY9XCJzaG93SGVscGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtZXJyb3JcIiAqbmdJZj1cInNob3dJbnZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtc3VjY2Vzc1wiICpuZ0lmPVwic2hvd1ZhbGlkXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5jbHItZm9ybS1jb250cm9sXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmNsci1jb21ib2JveC1mb3JtLWNvbnRyb2xdJzogJ3RydWUnLFxuICAgICdbY2xhc3MuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZF0nOiAnY29udHJvbD8uZGlzYWJsZWQnLFxuICAgICdbY2xhc3MuY2xyLXJvd10nOiAnYWRkR3JpZCgpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbSWZDb250cm9sU3RhdGVTZXJ2aWNlLCBOZ0NvbnRyb2xTZXJ2aWNlLCBDb250cm9sSWRTZXJ2aWNlLCBDb250cm9sQ2xhc3NTZXJ2aWNlLCBDb21ib2JveENvbnRhaW5lclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJDb21ib2JveENvbnRhaW5lciBleHRlbmRzIENsckFic3RyYWN0Q29udGFpbmVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRyb2xDb250YWluZXInKSBjb250cm9sQ29udGFpbmVyOiBFbGVtZW50UmVmO1xuICBAQ29udGVudENoaWxkKENsckxhYmVsKSBvdmVycmlkZSBsYWJlbDogQ2xyTGFiZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWZDb250cm9sU3RhdGVTZXJ2aWNlOiBJZkNvbnRyb2xTdGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcbiAgICBjb250cm9sQ2xhc3NTZXJ2aWNlOiBDb250cm9sQ2xhc3NTZXJ2aWNlLFxuICAgIG5nQ29udHJvbFNlcnZpY2U6IE5nQ29udHJvbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250YWluZXJTZXJ2aWNlOiBDb21ib2JveENvbnRhaW5lclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihpZkNvbnRyb2xTdGF0ZVNlcnZpY2UsIGxheW91dFNlcnZpY2UsIGNvbnRyb2xDbGFzc1NlcnZpY2UsIG5nQ29udHJvbFNlcnZpY2UpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICh0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lclNlcnZpY2UubGFiZWxUZXh0ID0gdGhpcy5sYWJlbC5sYWJlbFRleHQ7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY29udGFpbmVyU2VydmljZS5sYWJlbE9mZnNldCA9XG4gICAgICB0aGlzLmNvbnRyb2xDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICB9XG59XG4iXX0=