@openmrs/esm-app-shell 4.4.2-pre.733 → 4.4.2-pre.735

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 (149) hide show
  1. package/.turbo/turbo-build.log +106 -104
  2. package/dist/{c2bec8aeaf031bb2.js → e9f5418c7b34b585.js} +1 -1
  3. package/dist/{c2bec8aeaf031bb2.js.map → e9f5418c7b34b585.js.map} +1 -1
  4. package/dist/index.html +1 -1
  5. package/dist/{openmrs.69595499820267ed.js → openmrs.85afda837dfd816e.js} +2 -2
  6. package/dist/{openmrs.69595499820267ed.js.map → openmrs.85afda837dfd816e.js.map} +1 -1
  7. package/dist/service-worker.js +1 -1
  8. package/lib/esm-devtools-app/889.js +1 -1
  9. package/lib/esm-devtools-app/889.js.map +1 -1
  10. package/lib/esm-devtools-app/988.js +1 -1
  11. package/lib/esm-devtools-app/main.js +1 -1
  12. package/lib/esm-devtools-app/openmrs-esm-devtools-app.js +1 -1
  13. package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.buildmanifest.json +6 -6
  14. package/lib/esm-devtools-app/openmrs-esm-devtools-app.old +1 -1
  15. package/lib/esm-implementer-tools-app/807.js +1 -1
  16. package/lib/esm-implementer-tools-app/889.js +1 -1
  17. package/lib/esm-implementer-tools-app/889.js.map +1 -1
  18. package/lib/esm-implementer-tools-app/main.js +1 -1
  19. package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js +1 -1
  20. package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.buildmanifest.json +6 -6
  21. package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.old +1 -1
  22. package/lib/esm-login-app/236.js +1 -0
  23. package/lib/esm-login-app/240.js +1 -0
  24. package/lib/esm-login-app/261.js +1 -0
  25. package/lib/esm-login-app/261.js.map +1 -0
  26. package/lib/esm-login-app/263.js +1 -0
  27. package/lib/esm-login-app/263.js.map +1 -0
  28. package/lib/esm-login-app/272.js +1 -0
  29. package/lib/esm-login-app/319.js +1 -0
  30. package/lib/esm-login-app/336.js +1 -0
  31. package/lib/esm-login-app/337.js +1 -0
  32. package/lib/esm-login-app/337.js.map +1 -0
  33. package/lib/esm-login-app/390.js +1 -0
  34. package/lib/esm-login-app/390.js.map +1 -0
  35. package/lib/esm-login-app/438.js +2 -0
  36. package/lib/esm-login-app/438.js.LICENSE.txt +9 -0
  37. package/lib/esm-login-app/438.js.map +1 -0
  38. package/lib/esm-login-app/539.js +1 -0
  39. package/lib/esm-login-app/574.js +1 -0
  40. package/lib/esm-login-app/610.js +1 -0
  41. package/lib/esm-login-app/610.js.map +1 -0
  42. package/lib/esm-login-app/611.js +1 -0
  43. package/lib/esm-login-app/611.js.map +1 -0
  44. package/lib/esm-login-app/63.js +2 -0
  45. package/lib/esm-login-app/63.js.LICENSE.txt +32 -0
  46. package/lib/esm-login-app/63.js.map +1 -0
  47. package/lib/esm-login-app/642.js +1 -0
  48. package/lib/esm-login-app/642.js.map +1 -0
  49. package/lib/esm-login-app/644.js +1 -0
  50. package/lib/esm-login-app/673.js +1 -0
  51. package/lib/esm-login-app/735.js +2 -0
  52. package/lib/esm-login-app/735.js.LICENSE.txt +9 -0
  53. package/lib/esm-login-app/735.js.map +1 -0
  54. package/lib/esm-login-app/737.js +2 -0
  55. package/lib/esm-login-app/737.js.LICENSE.txt +5 -0
  56. package/lib/esm-login-app/737.js.map +1 -0
  57. package/lib/esm-login-app/757.js +1 -0
  58. package/lib/esm-login-app/788.js +2 -0
  59. package/lib/esm-login-app/788.js.LICENSE.txt +19 -0
  60. package/lib/esm-login-app/788.js.map +1 -0
  61. package/lib/esm-login-app/829.js +1 -0
  62. package/lib/esm-login-app/829.js.map +1 -0
  63. package/lib/esm-login-app/889.js +2 -0
  64. package/lib/esm-login-app/889.js.LICENSE.txt +3 -0
  65. package/lib/esm-login-app/889.js.map +1 -0
  66. package/lib/esm-login-app/main.js +1 -0
  67. package/lib/esm-login-app/main.js.map +1 -0
  68. package/lib/esm-login-app/openmrs-esm-login-app.js +1 -0
  69. package/lib/esm-login-app/openmrs-esm-login-app.js.buildmanifest.json +680 -0
  70. package/lib/esm-login-app/openmrs-esm-login-app.js.map +1 -0
  71. package/lib/esm-login-app/openmrs-esm-login-app.old +1 -0
  72. package/lib/esm-offline-tools-app/1584c81d564cacde.svg +8 -0
  73. package/lib/esm-offline-tools-app/206.js +1 -0
  74. package/lib/esm-offline-tools-app/206.js.map +1 -0
  75. package/lib/esm-offline-tools-app/263.js +1 -0
  76. package/lib/esm-offline-tools-app/263.js.map +1 -0
  77. package/lib/esm-offline-tools-app/264.js +1 -0
  78. package/lib/esm-offline-tools-app/264.js.map +1 -0
  79. package/lib/esm-offline-tools-app/281.js +1 -0
  80. package/lib/esm-offline-tools-app/281.js.map +1 -0
  81. package/lib/esm-offline-tools-app/290.js +1 -0
  82. package/lib/esm-offline-tools-app/290.js.map +1 -0
  83. package/lib/esm-offline-tools-app/316.js +1 -0
  84. package/lib/esm-offline-tools-app/316.js.map +1 -0
  85. package/lib/esm-offline-tools-app/391.js +1 -0
  86. package/lib/esm-offline-tools-app/391.js.map +1 -0
  87. package/lib/esm-offline-tools-app/412.js +1 -0
  88. package/lib/esm-offline-tools-app/412.js.map +1 -0
  89. package/lib/esm-offline-tools-app/47.js +1 -0
  90. package/lib/esm-offline-tools-app/47.js.map +1 -0
  91. package/lib/esm-offline-tools-app/501.js +1 -0
  92. package/lib/esm-offline-tools-app/501.js.map +1 -0
  93. package/lib/esm-offline-tools-app/526.js +1 -0
  94. package/lib/esm-offline-tools-app/526.js.map +1 -0
  95. package/lib/esm-offline-tools-app/538.js +1 -0
  96. package/lib/esm-offline-tools-app/538.js.map +1 -0
  97. package/lib/esm-offline-tools-app/541.js +1 -0
  98. package/lib/esm-offline-tools-app/541.js.map +1 -0
  99. package/lib/esm-offline-tools-app/574.js +1 -0
  100. package/lib/esm-offline-tools-app/594.js +1 -0
  101. package/lib/esm-offline-tools-app/594.js.map +1 -0
  102. package/lib/esm-offline-tools-app/63.js +2 -0
  103. package/lib/esm-offline-tools-app/63.js.LICENSE.txt +32 -0
  104. package/lib/esm-offline-tools-app/63.js.map +1 -0
  105. package/lib/esm-offline-tools-app/697.js +2 -0
  106. package/lib/esm-offline-tools-app/697.js.LICENSE.txt +9 -0
  107. package/lib/esm-offline-tools-app/697.js.map +1 -0
  108. package/lib/esm-offline-tools-app/733.js +1 -0
  109. package/lib/esm-offline-tools-app/733.js.map +1 -0
  110. package/lib/esm-offline-tools-app/735.js +2 -0
  111. package/lib/esm-offline-tools-app/735.js.LICENSE.txt +9 -0
  112. package/lib/esm-offline-tools-app/735.js.map +1 -0
  113. package/lib/esm-offline-tools-app/752.js +1 -0
  114. package/lib/esm-offline-tools-app/752.js.map +1 -0
  115. package/lib/esm-offline-tools-app/757.js +1 -0
  116. package/lib/esm-offline-tools-app/78.js +1 -0
  117. package/lib/esm-offline-tools-app/78.js.map +1 -0
  118. package/lib/esm-offline-tools-app/788.js +2 -0
  119. package/lib/esm-offline-tools-app/788.js.LICENSE.txt +19 -0
  120. package/lib/esm-offline-tools-app/788.js.map +1 -0
  121. package/lib/esm-offline-tools-app/82.js +2 -0
  122. package/lib/esm-offline-tools-app/82.js.LICENSE.txt +5 -0
  123. package/lib/esm-offline-tools-app/82.js.map +1 -0
  124. package/lib/esm-offline-tools-app/889.js +2 -0
  125. package/lib/esm-offline-tools-app/889.js.LICENSE.txt +3 -0
  126. package/lib/esm-offline-tools-app/889.js.map +1 -0
  127. package/lib/esm-offline-tools-app/937.js +1 -0
  128. package/lib/esm-offline-tools-app/937.js.map +1 -0
  129. package/lib/esm-offline-tools-app/967.js +1 -0
  130. package/lib/esm-offline-tools-app/967.js.map +1 -0
  131. package/lib/esm-offline-tools-app/main.js +2 -0
  132. package/lib/esm-offline-tools-app/main.js.LICENSE.txt +5 -0
  133. package/lib/esm-offline-tools-app/main.js.map +1 -0
  134. package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js +1 -0
  135. package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.buildmanifest.json +754 -0
  136. package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.map +1 -0
  137. package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.old +1 -0
  138. package/lib/esm-primary-navigation-app/363.js +1 -1
  139. package/lib/esm-primary-navigation-app/889.js +1 -1
  140. package/lib/esm-primary-navigation-app/889.js.map +1 -1
  141. package/lib/esm-primary-navigation-app/main.js +1 -1
  142. package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js +1 -1
  143. package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.buildmanifest.json +6 -6
  144. package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.old +1 -1
  145. package/lib/index.html +1 -1
  146. package/lib/openmrs.js +6 -6
  147. package/lib/service-worker.js +1 -1
  148. package/package.json +4 -4
  149. /package/dist/{openmrs.69595499820267ed.js.LICENSE.txt → openmrs.85afda837dfd816e.js.LICENSE.txt} +0 -0
package/lib/openmrs.js CHANGED
@@ -2601,7 +2601,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2601
2601
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2602
2602
 
2603
2603
  "use strict";
2604
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClickableTile\": () => (/* binding */ ClickableTile),\n/* harmony export */ \"ExpandableTile\": () => (/* binding */ ExpandableTile),\n/* harmony export */ \"SelectableTile\": () => (/* binding */ SelectableTile),\n/* harmony export */ \"Tile\": () => (/* binding */ Tile),\n/* harmony export */ \"TileAboveTheFoldContent\": () => (/* binding */ TileAboveTheFoldContent),\n/* harmony export */ \"TileBelowTheFoldContent\": () => (/* binding */ TileBelowTheFoldContent)\n/* harmony export */ });\n/* harmony import */ var _virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_virtual/_rollupPluginBabelHelpers.js */ \"../../../node_modules/@carbon/react/es/_virtual/_rollupPluginBabelHelpers.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"../../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"../../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Link_Link_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Link/Link.js */ \"../../../node_modules/@carbon/react/es/components/Link/Link.js\");\n/* harmony import */ var _carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @carbon/icons-react */ \"../../../node_modules/@carbon/icons-react/es/generated/bucket-2.js\");\n/* harmony import */ var _prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../prop-types/deprecate.js */ \"../../../node_modules/@carbon/react/es/prop-types/deprecate.js\");\n/* harmony import */ var _tools_events_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../tools/events.js */ \"../../../node_modules/@carbon/react/es/tools/events.js\");\n/* harmony import */ var _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../internal/usePrefix.js */ \"../../../node_modules/@carbon/react/es/internal/usePrefix.js\");\n/* harmony import */ var _internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../internal/keyboard/match.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/match.js\");\n/* harmony import */ var _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../internal/keyboard/keys.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/keys.js\");\n/**\n * Copyright IBM Corp. 2016, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */ \n\n\n\n\n\n\n\n\n\n\nvar _CheckboxCheckedFille, _Checkbox, _ChevronDown;\nvar _excluded = [\n \"children\",\n \"className\",\n \"light\"\n], _excluded2 = [\n \"children\",\n \"href\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onKeyDown\",\n \"clicked\",\n \"light\"\n], _excluded3 = [\n \"children\",\n \"id\",\n \"tabIndex\",\n \"value\",\n \"name\",\n \"title\",\n \"iconDescription\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onChange\",\n \"onKeyDown\",\n \"light\",\n \"disabled\",\n \"selected\"\n], _excluded4 = [\n \"tabIndex\",\n \"className\",\n \"expanded\",\n \"tileMaxHeight\",\n \"tilePadding\",\n \"handleClick\",\n \"onKeyUp\",\n \"tileCollapsedIconText\",\n \"tileExpandedIconText\",\n \"tileCollapsedLabel\",\n \"tileExpandedLabel\",\n \"onBeforeClick\",\n \"light\"\n];\nvar Tile = /*#__PURE__*/ function(_Component) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(Tile, _Component);\n var _super = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(Tile);\n function Tile() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, Tile);\n return _super.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(Tile, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var _this$props = this.props, children = _this$props.children, className = _this$props.className, light = _this$props.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props, _excluded);\n var tileClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile--light\"), light), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n className: tileClasses\n }, rest), children);\n }\n }\n ]);\n return Tile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"defaultProps\", {\n light: false\n});\nvar ClickableTile = /*#__PURE__*/ function(_Component2) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ClickableTile, _Component2);\n var _super2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ClickableTile);\n function ClickableTile() {\n var _this;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ClickableTile);\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n _this = _super2.call.apply(_super2, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleClick\", function(evt) {\n evt.persist();\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleCli, _this$props2, _this$props$onClick, _this$props3;\n (// TODO: Remove handleClick prop when handleClick is deprecated\n (_this$props$handleCli = (_this$props2 = _this.props).handleClick) === null || _this$props$handleCli === void 0 ? void 0 : _this$props$handleCli.call(_this$props2, evt)) || ((_this$props$onClick = (_this$props3 = _this.props).onClick) === null || _this$props$onClick === void 0 ? void 0 : _this$props$onClick.call(_this$props3, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleKeyDown\", function(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleKey, _this$props4;\n // TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n ((_this$props$handleKey = (_this$props4 = _this.props).handleKeyDown) === null || _this$props$handleKey === void 0 ? void 0 : _this$props$handleKey.call(_this$props4, evt)) || _this.props.onKeyDown(evt);\n });\n } else {\n var _this$props$handleKey2, _this$props5;\n // TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n ((_this$props$handleKey2 = (_this$props5 = _this.props).handleKeyDown) === null || _this$props$handleKey2 === void 0 ? void 0 : _this$props$handleKey2.call(_this$props5, evt)) || _this.props.onKeyDown(evt);\n }\n });\n return _this;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ClickableTile, [\n {\n key: \"render\",\n value: function render() {\n var _cx2;\n var prefix = this.context;\n var _this$props6 = this.props, children = _this$props6.children, href = _this$props6.href, className = _this$props6.className;\n _this$props6.handleClick;\n _this$props6.handleKeyDown;\n _this$props6.onClick;\n _this$props6.onKeyDown;\n _this$props6.clicked;\n var light = _this$props6.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props6, _excluded2);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--clickable\"), (_cx2 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--is-clicked\"), this.state.clicked), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--light\"), light), _cx2), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Link_Link_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"], (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n href: href,\n className: classes\n }, rest, {\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown\n }), children);\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, state) {\n var clicked = _ref.clicked;\n var prevClicked = state.prevClicked;\n return prevClicked === clicked ? null : {\n clicked: clicked,\n prevClicked: clicked\n };\n }\n }\n ]);\n return ClickableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ClickableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleKeyDown prop for ClickableTile has been deprecated in favor of onKeyDown. It will be removed in the next major release.\"),\n /**\n * The href for the link.\n */ href: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the ClickableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The rel property for the link.\n */ rel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"defaultProps\", {\n clicked: false,\n onClick: function onClick() {},\n onKeyDown: function onKeyDown() {},\n light: false\n});\nfunction SelectableTile(props) {\n var handleOnClick = function handleOnClick(evt) {\n evt.preventDefault();\n evt.persist();\n setIsSelected(!isSelected);\n clickHandler(evt);\n onChange(evt);\n } // TODO: rename to handleKeyDown when handleKeyDown prop is deprecated\n ;\n var handleOnKeyDown = function handleOnKeyDown(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n setIsSelected(!isSelected);\n onChange(evt);\n }\n keyDownHandler(evt);\n };\n var handleChange = function handleChange(event) {\n setIsSelected(event.target.checked);\n onChange(event);\n };\n var _cx3;\n var children = props.children, id = props.id, tabIndex = props.tabIndex, value = props.value, name = props.name, title = props.title;\n props.iconDescription;\n var className = props.className, handleClick = props.handleClick, handleKeyDown = props.handleKeyDown, onClick = props.onClick, onChange = props.onChange, onKeyDown = props.onKeyDown, light = props.light, disabled = props.disabled, selected = props.selected, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(props, _excluded3);\n var prefix = (0,_internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.usePrefix)(); // TODO: replace with onClick when handleClick prop is deprecated\n var clickHandler = handleClick || onClick; // TODO: replace with onKeyDown when handleKeyDown prop is deprecated\n var keyDownHandler = handleKeyDown || onKeyDown;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(selected), _useState2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(_useState, 2), isSelected = _useState2[0], setIsSelected = _useState2[1];\n var input = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--selectable\"), (_cx3 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--is-selected\"), isSelected), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--light\"), light), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--disabled\"), disabled), _cx3), className);\n var inputClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile-input\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile-input--checked\"), isSelected)); // TODO: rename to handleClick when handleClick prop is deprecated\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n setIsSelected(selected);\n }, [\n selected\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n ref: input,\n tabIndex: -1,\n id: id,\n className: inputClasses,\n value: value,\n onChange: !disabled ? handleChange : null,\n type: \"checkbox\",\n disabled: disabled,\n name: name,\n title: title,\n checked: isSelected\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n htmlFor: id,\n className: classes // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: !disabled ? tabIndex : null\n }, rest, {\n onClick: !disabled ? handleOnClick : null,\n onKeyDown: !disabled ? handleOnKeyDown : null\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile__checkmark \").concat(prefix, \"--tile__checkmark--persistent\")\n }, isSelected ? _CheckboxCheckedFille || (_CheckboxCheckedFille = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.CheckboxCheckedFilled, null)) : _Checkbox || (_Checkbox = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.Checkbox, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, children)));\n}\nSelectableTile.defaultProps = {\n value: \"value\",\n title: \"title\",\n selected: false,\n tabIndex: 0,\n light: false,\n onClick: function onClick() {},\n onChange: function onChange() {},\n onKeyDown: function onKeyDown() {}\n};\nSelectableTile.propTypes = {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Specify whether the SelectableTile should be disabled\n */ disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleClick` prop for `SelectableTile` has been deprecated in favor of `onClick`. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleKeyDown` prop for `SelectableTile` has been deprecated in favor of `onKeyDown`. It will be removed in the next major release.\"),\n /**\n * The description of the checkmark icon.\n */ iconDescription: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().string), \"The `iconDescription` prop for `SelectableTile` is no longer needed and has \" + \"been deprecated. It will be removed in the next major release.\"),\n /**\n * The ID of the `<input>`.\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * The `name` of the `<input>`.\n */ name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The empty handler of the `<input>`.\n */ onChange: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * `true` to select this tile.\n */ selected: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the tab index of the wrapper element\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The `title` of the `<input>`.\n */ title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The value of the `<input>`.\n */ value: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number)\n ]).isRequired\n};\nvar ExpandableTile = /*#__PURE__*/ function(_Component3) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ExpandableTile, _Component3);\n var _super3 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ExpandableTile);\n function ExpandableTile() {\n var _this2;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ExpandableTile);\n for(var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++){\n args[_key2] = arguments[_key2];\n }\n _this2 = _super3.call.apply(_super3, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"resizeObserver\", null);\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidMount\", function() {\n _this2.resizeObserver = new ResizeObserver(function(entries) {\n var _entries = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(entries, 1), aboveTheFold = _entries[0];\n _this2.setState({\n tileMaxHeight: aboveTheFold.contentRect.height\n });\n });\n if (_this2.tile) {\n var getStyle = window.getComputedStyle(_this2.tile, null);\n if (_this2.aboveTheFold) {\n _this2.resizeObserver.observe(_this2.aboveTheFold);\n _this2.setState({\n tileMaxHeight: _this2.aboveTheFold.getBoundingClientRect().height,\n tilePadding: parseInt(getStyle.getPropertyValue(\"padding-top\"), 10) + parseInt(getStyle.getPropertyValue(\"padding-bottom\"), 10)\n });\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidUpdate\", function(prevProps) {\n if (prevProps.expanded !== _this2.props.expanded) {\n _this2.setMaxHeight();\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"setMaxHeight\", function() {\n if (_this2.state.expanded ? _this2.tileContent : _this2.aboveTheFold) {\n _this2.setState({\n tileMaxHeight: _this2.state.expanded ? _this2.tileContent.getBoundingClientRect().height : _this2.aboveTheFold.getBoundingClientRect().height\n });\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleClick\", function(evt) {\n if (!_this2.props.onBeforeClick(evt) || evt.target.tagName === \"INPUT\") {\n return;\n }\n evt.persist();\n _this2.setState({\n expanded: !_this2.state.expanded\n }, function() {\n var _this2$props$handleCl, _this2$props, _this2$props$onClick, _this2$props2;\n _this2.setMaxHeight(); // TODO: Remove handleClick prop when handleClick is deprecated\n ((_this2$props$handleCl = (_this2$props = _this2.props).handleClick) === null || _this2$props$handleCl === void 0 ? void 0 : _this2$props$handleCl.call(_this2$props, evt)) || ((_this2$props$onClick = (_this2$props2 = _this2.props).onClick) === null || _this2$props$onClick === void 0 ? void 0 : _this2$props$onClick.call(_this2$props2, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleKeyUp\", function(evt) {\n if (evt.target !== _this2.tile) {\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"getChildren\", function() {\n return react__WEBPACK_IMPORTED_MODULE_0___default().Children.toArray(_this2.props.children);\n });\n return _this2;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ExpandableTile, [\n {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n },\n {\n key: \"render\",\n value: function render() {\n var _cx5, _this3 = this;\n var _this$props7 = this.props, tabIndex = _this$props7.tabIndex, className = _this$props7.className;\n _this$props7.expanded;\n _this$props7.tileMaxHeight;\n _this$props7.tilePadding;\n _this$props7.handleClick;\n var onKeyUp = _this$props7.onKeyUp, tileCollapsedIconText = _this$props7.tileCollapsedIconText, tileExpandedIconText = _this$props7.tileExpandedIconText, tileCollapsedLabel = _this$props7.tileCollapsedLabel, tileExpandedLabel = _this$props7.tileExpandedLabel;\n _this$props7.onBeforeClick;\n var light = _this$props7.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props7, _excluded4);\n var prefix = this.context;\n var isExpanded = this.state.expanded;\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--expandable\"), (_cx5 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--is-expanded\"), isExpanded), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--light\"), light), _cx5), className);\n var tileStyle = {\n maxHeight: isExpanded ? null : this.state.tileMaxHeight + this.state.tilePadding\n };\n var childrenAsArray = this.getChildren();\n return(/*#__PURE__*/ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n type: \"button\",\n ref: function ref(tile) {\n _this3.tile = tile;\n },\n style: tileStyle,\n className: classes,\n \"aria-expanded\": isExpanded,\n title: isExpanded ? tileExpandedIconText : tileCollapsedIconText\n }, rest, {\n onKeyUp: (0,_tools_events_js__WEBPACK_IMPORTED_MODULE_10__.composeEventHandlers)([\n onKeyUp,\n this.handleKeyUp\n ]),\n onClick: this.handleClick,\n tabIndex: tabIndex\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(tileContent) {\n _this3.tileContent = tileContent;\n }\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(aboveTheFold) {\n _this3.aboveTheFold = aboveTheFold;\n },\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[0]), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile__chevron\")\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, isExpanded ? tileExpandedLabel : tileCollapsedLabel), _ChevronDown || (_ChevronDown = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.ChevronDown, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[1]))));\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref2, state) {\n var expanded = _ref2.expanded, tileMaxHeight = _ref2.tileMaxHeight, tilePadding = _ref2.tilePadding;\n var prevExpanded = state.prevExpanded, prevTileMaxHeight = state.prevTileMaxHeight, prevTilePadding = state.prevTilePadding, currentExpanded = state.expanded, currentTileMaxHeight = state.tileMaxHeight, currentTilePadding = state.tilePadding;\n var expandedChanged = prevExpanded !== expanded;\n var tileMaxHeightChanged = prevTileMaxHeight !== tileMaxHeight;\n var tilePaddingChanged = prevTilePadding !== tilePadding;\n return !expandedChanged && !tileMaxHeightChanged && !tilePaddingChanged ? null : {\n expanded: !expandedChanged ? currentExpanded : expanded,\n tileMaxHeight: !tileMaxHeightChanged ? currentTileMaxHeight : tileMaxHeight,\n tilePadding: !tilePaddingChanged ? currentTilePadding : tilePadding,\n prevExpanded: expanded,\n prevTileMaxHeight: tileMaxHeight,\n prevTilePadding: tilePadding\n };\n }\n }\n ]);\n return ExpandableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` if the tile is expanded.\n */ expanded: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ExpandableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * An ID that can be provided to aria-labelledby\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * optional handler to decide whether to ignore a click. returns false if click should be ignored\n */ onBeforeClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ExpandableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * optional handler to trigger a function when a key is pressed\n */ onKeyUp: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The `tabindex` attribute.\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The description of the \"collapsed\" icon that can be read by screen readers.\n */ tileCollapsedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"collapsed\", a label to appear next to the chevron (e.g., \"View more\").\n */ tileCollapsedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The description of the \"expanded\" icon that can be read by screen readers.\n */ tileExpandedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"expanded\", a label to appear next to the chevron (e.g., \"View less\").\n */ tileExpandedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"defaultProps\", {\n tabIndex: 0,\n expanded: false,\n tileMaxHeight: 0,\n tilePadding: 0,\n onBeforeClick: function onBeforeClick() {\n return true;\n },\n onClick: function onClick() {},\n tileCollapsedIconText: \"Interact to expand Tile\",\n tileExpandedIconText: \"Interact to collapse Tile\",\n light: false\n});\nvar TileAboveTheFoldContent = /*#__PURE__*/ function(_Component4) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileAboveTheFoldContent, _Component4);\n var _super4 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileAboveTheFoldContent);\n function TileAboveTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileAboveTheFoldContent);\n return _super4.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileAboveTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var children = this.props.children;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__above-the-fold\")\n }, children);\n }\n }\n ]);\n return TileAboveTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\nvar TileBelowTheFoldContent = /*#__PURE__*/ function(_Component5) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileBelowTheFoldContent, _Component5);\n var _super5 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileBelowTheFoldContent);\n function TileBelowTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileBelowTheFoldContent);\n return _super5.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileBelowTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var prefix = this.context;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__below-the-fold\")\n }, children);\n }\n }\n ]);\n return TileBelowTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BjYXJib24vcmVhY3QvZXMvY29tcG9uZW50cy9UaWxlL1RpbGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUUrVztBQUNqUztBQUM1QztBQUNQO0FBQ087QUFDZ0Q7QUFDN0I7QUFDTztBQUNVO0FBQ1o7QUFDSTtBQUUvRCxJQUFJb0MsdUJBQXVCQyxXQUFXQztBQUV0QyxJQUFJQyxZQUFZO0lBQUM7SUFBWTtJQUFhO0NBQVEsRUFDOUNDLGFBQWE7SUFBQztJQUFZO0lBQVE7SUFBYTtJQUFlO0lBQWlCO0lBQVc7SUFBYTtJQUFXO0NBQVEsRUFDMUhDLGFBQWE7SUFBQztJQUFZO0lBQU07SUFBWTtJQUFTO0lBQVE7SUFBUztJQUFtQjtJQUFhO0lBQWU7SUFBaUI7SUFBVztJQUFZO0lBQWE7SUFBUztJQUFZO0NBQVcsRUFDMU1DLGFBQWE7SUFBQztJQUFZO0lBQWE7SUFBWTtJQUFpQjtJQUFlO0lBQWU7SUFBVztJQUF5QjtJQUF3QjtJQUFzQjtJQUFxQjtJQUFpQjtDQUFRO0FBQ3RPLElBQUlDLE9BQU8sV0FBVyxHQUFFLFNBQVVDLFVBQVUsRUFBRTtJQUM1QzNDLDhFQUFTQSxDQUFDMEMsTUFBTUM7SUFFaEIsSUFBSUMsU0FBUzFDLGlGQUFZQSxDQUFDd0M7SUFFMUIsU0FBU0EsT0FBTztRQUNkdEMsb0ZBQWVBLENBQUMsSUFBSSxFQUFFc0M7UUFFdEIsT0FBT0UsT0FBT0MsS0FBSyxDQUFDLElBQUksRUFBRUM7SUFDNUI7SUFFQXhDLGlGQUFZQSxDQUFDb0MsTUFBTTtRQUFDO1lBQ2xCSyxLQUFLO1lBQ0xDLE9BQU8sU0FBU0MsU0FBUztnQkFDdkIsSUFBSUMsU0FBUyxJQUFJLENBQUNDLE9BQU87Z0JBRXpCLElBQUlDLGNBQWMsSUFBSSxDQUFDQyxLQUFLLEVBQ3hCQyxXQUFXRixZQUFZRSxRQUFRLEVBQy9CQyxZQUFZSCxZQUFZRyxTQUFTLEVBQ2pDQyxRQUFR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QzZMLHlCQUF5QixlQUFlekssaUVBQWFBO0FBRTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNhcmJvbi9yZWFjdC9lcy9jb21wb25lbnRzL1RpbGUvVGlsZS5qcz8wY2E2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IElCTSBDb3JwLiAyMDE2LCAyMDIyXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlLTIuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCB7IGluaGVyaXRzIGFzIF9pbmhlcml0cywgY3JlYXRlU3VwZXIgYXMgX2NyZWF0ZVN1cGVyLCBjbGFzc0NhbGxDaGVjayBhcyBfY2xhc3NDYWxsQ2hlY2ssIGNyZWF0ZUNsYXNzIGFzIF9jcmVhdGVDbGFzcywgb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgYXMgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLCBkZWZpbmVQcm9wZXJ0eSBhcyBfZGVmaW5lUHJvcGVydHksIGV4dGVuZHMgYXMgX2V4dGVuZHMsIGFzc2VydFRoaXNJbml0aWFsaXplZCBhcyBfYXNzZXJ0VGhpc0luaXRpYWxpemVkLCBzbGljZWRUb0FycmF5IGFzIF9zbGljZWRUb0FycmF5IH0gZnJvbSAnLi4vLi4vX3ZpcnR1YWwvX3JvbGx1cFBsdWdpbkJhYmVsSGVscGVycy5qcyc7XG5pbXBvcnQgUmVhY3RfX2RlZmF1bHQsIHsgQ29tcG9uZW50LCB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGN4IGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IExpbmsgZnJvbSAnLi4vTGluay9MaW5rLmpzJztcbmltcG9ydCB7IENoZWNrYm94Q2hlY2tlZEZpbGxlZCwgQ2hlY2tib3gsIENoZXZyb25Eb3duIH0gZnJvbSAnQGNhcmJvbi9pY29ucy1yZWFjdCc7XG5pbXBvcnQgZGVwcmVjYXRlIGZyb20gJy4uLy4uL3Byb3AtdHlwZXMvZGVwcmVjYXRlLmpzJztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXZlbnRzLmpzJztcbmltcG9ydCB7IFByZWZpeENvbnRleHQsIHVzZVByZWZpeCB9IGZyb20gJy4uLy4uL2ludGVybmFsL3VzZVByZWZpeC5qcyc7XG5pbXBvcnQgeyBtYXRjaGVzIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWwva2V5Ym9hcmQvbWF0Y2guanMnO1xuaW1wb3J0IHsgRW50ZXIsIFNwYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWwva2V5Ym9hcmQva2V5cy5qcyc7XG5cbnZhciBfQ2hlY2tib3hDaGVja2VkRmlsbGUsIF9DaGVja2JveCwgX0NoZXZyb25Eb3duO1xuXG52YXIgX2V4Y2x1ZGVkID0gW1wiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIiwgXCJsaWdodFwiXSxcbiAgICBfZXhjbHVkZWQyID0gW1wiY2hpbGRyZW5cIiwgXCJocmVmXCIsIFwiY2xhc3NOYW1lXCIsIFwiaGFuZGxlQ2xpY2tcIiwgXCJoYW5kbGVLZXlEb3duXCIsIFwib25DbGlja1wiLCBcIm9uS2V5RG93blwiLCBcImNsaWNrZWRcIiwgXCJsaWdodFwiXSxcbiAgICBfZXhjbHVkZWQzID0gW1wiY2hpbGRyZW5cIiwgXCJpZFwiLCBcInRhYkluZGV4XCIsIFwidmFsdWVcIiwgXCJuYW1lXCIsIFwidGl0bGVcIiwgXCJpY29uRGVzY3JpcHRpb25cIiwgXCJjbGFzc05hbWVcIiwgXCJoYW5kbGVDbGlja1wiLCBcImhhbmRsZUtleURvd25cIiwgXCJvbkNsaWNrXCIsIFwib25DaGFuZ2VcIiwgXCJvbktleURvd25cIiwgXCJsaWdodFwiLCBcImRpc2FibGVkXCIsIFwic2VsZWN0ZWRcIl0sXG4gICAgX2V4Y2x1ZGVkNCA9IFtcInRhYkluZGV4XCIsIFwiY2xhc3NOYW1lXCIsIFwiZXhwYW5kZWRcIiwgXCJ0aWxlTWF4SGVpZ2h0XCIsIFwidGlsZVBhZGRpbmdcIiwgXCJoYW5kbGVDbGlja1wiLCBcIm9uS2V5VXBcIiwgXCJ0aWxlQ29sbGFwc2VkSWNvblRleHRcIiwgXCJ0aWxlRXhwYW5kZWRJY29uVGV4dFwiLCBcInRpbGVDb2xsYXBzZWRMYWJlbFwiLCBcInRpbGVFeHBhbmRlZExhYmVsXCIsIFwib25CZWZvcmVDbGlja1wiLCBcImxpZ2h0XCJdO1xudmFyIFRpbGUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFRpbGUsIF9Db21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoVGlsZSk7XG5cbiAgZnVuY3Rpb24gVGlsZSgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGlsZSk7XG5cbiAgICByZXR1cm4gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVGlsZSwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgbGlnaHQgPSBfdGhpcyRwcm9wcy5saWdodCxcbiAgICAgICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzJHByb3BzLCBfZXhjbHVkZWQpO1xuXG4gICAgICB2YXIgdGlsZUNsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlXCIpLCBfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWxpZ2h0XCIpLCBsaWdodCksIGNsYXNzTmFtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICBjbGFzc05hbWU6IHRpbGVDbGFzc2VzXG4gICAgICB9LCByZXN0KSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUaWxlO1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZSwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIG5hbWVzLlxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgdG8gdXNlIHRoZSBsaWdodCB2ZXJzaW9uLiBGb3IgdXNlIG9uICR1aS0wMSBiYWNrZ3JvdW5kcyBvbmx5LlxuICAgKiBEb24ndCB1c2UgdGhpcyB0byBtYWtlIHRpbGUgYmFja2dyb3VuZCBjb2xvciBzYW1lIGFzIGNvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgKi9cbiAgbGlnaHQ6IFByb3BUeXBlcy5ib29sXG59KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGUsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlLCBcImRlZmF1bHRQcm9wc1wiLCB7XG4gIGxpZ2h0OiBmYWxzZVxufSk7XG5cbnZhciBDbGlja2FibGVUaWxlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50Mikge1xuICBfaW5oZXJpdHMoQ2xpY2thYmxlVGlsZSwgX0NvbXBvbmVudDIpO1xuXG4gIHZhciBfc3VwZXIyID0gX2NyZWF0ZVN1cGVyKENsaWNrYWJsZVRpbGUpO1xuXG4gIGZ1bmN0aW9uIENsaWNrYWJsZVRpbGUoKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENsaWNrYWJsZVRpbGUpO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIF90aGlzID0gX3N1cGVyMi5jYWxsLmFwcGx5KF9zdXBlcjIsIFt0aGlzXS5jb25jYXQoYXJncykpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInN0YXRlXCIsIHt9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJoYW5kbGVDbGlja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNsaWNrZWQ6ICFfdGhpcy5zdGF0ZS5jbGlja2VkXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyRwcm9wcyRoYW5kbGVDbGksIF90aGlzJHByb3BzMiwgX3RoaXMkcHJvcHMkb25DbGljaywgX3RoaXMkcHJvcHMzO1xuXG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBoYW5kbGVDbGljayBwcm9wIHdoZW4gaGFuZGxlQ2xpY2sgaXMgZGVwcmVjYXRlZFxuICAgICAgICAoKF90aGlzJHByb3BzJGhhbmRsZUNsaSA9IChfdGhpcyRwcm9wczIgPSBfdGhpcy5wcm9wcykuaGFuZGxlQ2xpY2spID09PSBudWxsIHx8IF90aGlzJHByb3BzJGhhbmRsZUNsaSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkcHJvcHMkaGFuZGxlQ2xpLmNhbGwoX3RoaXMkcHJvcHMyLCBldnQpKSB8fCAoKF90aGlzJHByb3BzJG9uQ2xpY2sgPSAoX3RoaXMkcHJvcHMzID0gX3RoaXMucHJvcHMpLm9uQ2xpY2spID09PSBudWxsIHx8IF90aGlzJHByb3BzJG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJG9uQ2xpY2suY2FsbChfdGhpcyRwcm9wczMsIGV2dCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiaGFuZGxlS2V5RG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgICBpZiAobWF0Y2hlcyhldnQsIFtFbnRlciwgU3BhY2VdKSkge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgY2xpY2tlZDogIV90aGlzLnN0YXRlLmNsaWNrZWRcbiAgICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBfdGhpcyRwcm9wcyRoYW5kbGVLZXksIF90aGlzJHByb3BzNDtcblxuICAgICAgICAgIC8vIFRPRE86IFJlbW92ZSBoYW5kbGVLZXlEb3duIHByb3Agd2hlbiBoYW5kbGVLZXlEb3duIGlzIGRlcHJlY2F0ZWRcbiAgICAgICAgICAoKF90aGlzJHByb3BzJGhhbmRsZUtleSA9IChfdGhpcyRwcm9wczQgPSBfdGhpcy5wcm9wcykuaGFuZGxlS2V5RG93bikgPT09IG51bGwgfHwgX3RoaXMkcHJvcHMkaGFuZGxlS2V5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyRwcm9wcyRoYW5kbGVLZXkuY2FsbChfdGhpcyRwcm9wczQsIGV2dCkpIHx8IF90aGlzLnByb3BzLm9uS2V5RG93bihldnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBfdGhpcyRwcm9wcyRoYW5kbGVLZXkyLCBfdGhpcyRwcm9wczU7XG5cbiAgICAgICAgLy8gVE9ETzogUmVtb3ZlIGhhbmRsZUtleURvd24gcHJvcCB3aGVuIGhhbmRsZUtleURvd24gaXMgZGVwcmVjYXRlZFxuICAgICAgICAoKF90aGlzJHByb3BzJGhhbmRsZUtleTIgPSAoX3RoaXMkcHJvcHM1ID0gX3RoaXMucHJvcHMpLmhhbmRsZUtleURvd24pID09PSBudWxsIHx8IF90aGlzJHByb3BzJGhhbmRsZUtleTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJGhhbmRsZUtleTIuY2FsbChfdGhpcyRwcm9wczUsIGV2dCkpIHx8IF90aGlzLnByb3BzLm9uS2V5RG93bihldnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKENsaWNrYWJsZVRpbGUsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2N4MjtcblxuICAgICAgdmFyIHByZWZpeCA9IHRoaXMuY29udGV4dDtcblxuICAgICAgdmFyIF90aGlzJHByb3BzNiA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wczYuY2hpbGRyZW4sXG4gICAgICAgICAgaHJlZiA9IF90aGlzJHByb3BzNi5ocmVmLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzNi5jbGFzc05hbWU7XG4gICAgICAgICAgX3RoaXMkcHJvcHM2LmhhbmRsZUNsaWNrO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5oYW5kbGVLZXlEb3duO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5vbkNsaWNrO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5vbktleURvd247XG4gICAgICAgICAgX3RoaXMkcHJvcHM2LmNsaWNrZWQ7XG4gICAgICAgICAgdmFyIGxpZ2h0ID0gX3RoaXMkcHJvcHM2LmxpZ2h0LFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3RoaXMkcHJvcHM2LCBfZXhjbHVkZWQyKTtcblxuICAgICAgdmFyIGNsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlXCIpLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1jbGlja2FibGVcIiksIChfY3gyID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY3gyLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1pcy1jbGlja2VkXCIpLCB0aGlzLnN0YXRlLmNsaWNrZWQpLCBfZGVmaW5lUHJvcGVydHkoX2N4MiwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tbGlnaHRcIiksIGxpZ2h0KSwgX2N4MiksIGNsYXNzTmFtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoTGluaywgX2V4dGVuZHMoe1xuICAgICAgICBocmVmOiBocmVmLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXNcbiAgICAgIH0sIHJlc3QsIHtcbiAgICAgICAgb25DbGljazogdGhpcy5oYW5kbGVDbGljayxcbiAgICAgICAgb25LZXlEb3duOiB0aGlzLmhhbmRsZUtleURvd25cbiAgICAgIH0pLCBjaGlsZHJlbik7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9wcm9wLXR5cGVzXG4gICAgZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKF9yZWYsIHN0YXRlKSB7XG4gICAgICB2YXIgY2xpY2tlZCA9IF9yZWYuY2xpY2tlZDtcbiAgICAgIHZhciBwcmV2Q2xpY2tlZCA9IHN0YXRlLnByZXZDbGlja2VkO1xuICAgICAgcmV0dXJuIHByZXZDbGlja2VkID09PSBjbGlja2VkID8gbnVsbCA6IHtcbiAgICAgICAgY2xpY2tlZDogY2xpY2tlZCxcbiAgICAgICAgcHJldkNsaWNrZWQ6IGNsaWNrZWRcbiAgICAgIH07XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIENsaWNrYWJsZVRpbGU7XG59KENvbXBvbmVudCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShDbGlja2FibGVUaWxlLCBcInByb3BUeXBlc1wiLCB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgbmFtZXMuXG4gICAqL1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIERlcHJlY2F0ZWQgaW4gdjExLiBVc2UgJ29uQ2xpY2snIGluc3RlYWQuXG4gICAqL1xuICBoYW5kbGVDbGljazogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGhhbmRsZUNsaWNrIHByb3AgZm9yIENsaWNrYWJsZVRpbGUgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBvbkNsaWNrLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIENsaWNrYWJsZVRpbGUgaXMgaW50ZXJhY3RlZCB3aXRoIHZpYSBhIGtleWJvYXJkXG4gICAqL1xuICBoYW5kbGVLZXlEb3duOiBkZXByZWNhdGUoUHJvcFR5cGVzLmZ1bmMsICdUaGUgaGFuZGxlS2V5RG93biBwcm9wIGZvciBDbGlja2FibGVUaWxlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Ygb25LZXlEb3duLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogVGhlIGhyZWYgZm9yIHRoZSBsaW5rLlxuICAgKi9cbiAgaHJlZjogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogYHRydWVgIHRvIHVzZSB0aGUgbGlnaHQgdmVyc2lvbi4gRm9yIHVzZSBvbiAkdWktMDEgYmFja2dyb3VuZHMgb25seS5cbiAgICogRG9uJ3QgdXNlIHRoaXMgdG8gbWFrZSB0aWxlIGJhY2tncm91bmQgY29sb3Igc2FtZSBhcyBjb250YWluZXIgYmFja2dyb3VuZCBjb2xvci5cbiAgICovXG4gIGxpZ2h0OiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIENsaWNrYWJsZVRpbGUgaXMgY2xpY2tlZFxuICAgKi9cbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBDbGlja2FibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogVGhlIHJlbCBwcm9wZXJ0eSBmb3IgdGhlIGxpbmsuXG4gICAqL1xuICByZWw6IFByb3BUeXBlcy5zdHJpbmdcbn0pO1xuXG5fZGVmaW5lUHJvcGVydHkoQ2xpY2thYmxlVGlsZSwgXCJjb250ZXh0VHlwZVwiLCBQcmVmaXhDb250ZXh0KTtcblxuX2RlZmluZVByb3BlcnR5KENsaWNrYWJsZVRpbGUsIFwiZGVmYXVsdFByb3BzXCIsIHtcbiAgY2xpY2tlZDogZmFsc2UsXG4gIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7fSxcbiAgb25LZXlEb3duOiBmdW5jdGlvbiBvbktleURvd24oKSB7fSxcbiAgbGlnaHQ6IGZhbHNlXG59KTtcblxuZnVuY3Rpb24gU2VsZWN0YWJsZVRpbGUocHJvcHMpIHtcbiAgdmFyIF9jeDM7XG5cbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgICBpZCA9IHByb3BzLmlkLFxuICAgICAgdGFiSW5kZXggPSBwcm9wcy50YWJJbmRleCxcbiAgICAgIHZhbHVlID0gcHJvcHMudmFsdWUsXG4gICAgICBuYW1lID0gcHJvcHMubmFtZSxcbiAgICAgIHRpdGxlID0gcHJvcHMudGl0bGU7XG4gICAgICBwcm9wcy5pY29uRGVzY3JpcHRpb247XG4gICAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgaGFuZGxlQ2xpY2sgPSBwcm9wcy5oYW5kbGVDbGljayxcbiAgICAgIGhhbmRsZUtleURvd24gPSBwcm9wcy5oYW5kbGVLZXlEb3duLFxuICAgICAgb25DbGljayA9IHByb3BzLm9uQ2xpY2ssXG4gICAgICBvbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlLFxuICAgICAgb25LZXlEb3duID0gcHJvcHMub25LZXlEb3duLFxuICAgICAgbGlnaHQgPSBwcm9wcy5saWdodCxcbiAgICAgIGRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQsXG4gICAgICBzZWxlY3RlZCA9IHByb3BzLnNlbGVjdGVkLFxuICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhwcm9wcywgX2V4Y2x1ZGVkMyk7XG5cbiAgdmFyIHByZWZpeCA9IHVzZVByZWZpeCgpOyAvLyBUT0RPOiByZXBsYWNlIHdpdGggb25DbGljayB3aGVuIGhhbmRsZUNsaWNrIHByb3AgaXMgZGVwcmVjYXRlZFxuXG4gIHZhciBjbGlja0hhbmRsZXIgPSBoYW5kbGVDbGljayB8fCBvbkNsaWNrOyAvLyBUT0RPOiByZXBsYWNlIHdpdGggb25LZXlEb3duIHdoZW4gaGFuZGxlS2V5RG93biBwcm9wIGlzIGRlcHJlY2F0ZWRcblxuICB2YXIga2V5RG93bkhhbmRsZXIgPSBoYW5kbGVLZXlEb3duIHx8IG9uS2V5RG93bjtcblxuICB2YXIgX3VzZVN0YXRlID0gdXNlU3RhdGUoc2VsZWN0ZWQpLFxuICAgICAgX3VzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZSwgMiksXG4gICAgICBpc1NlbGVjdGVkID0gX3VzZVN0YXRlMlswXSxcbiAgICAgIHNldElzU2VsZWN0ZWQgPSBfdXNlU3RhdGUyWzFdO1xuXG4gIHZhciBpbnB1dCA9IHVzZVJlZihudWxsKTtcbiAgdmFyIGNsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlXCIpLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1zZWxlY3RhYmxlXCIpLCAoX2N4MyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2N4MywgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0taXMtc2VsZWN0ZWRcIiksIGlzU2VsZWN0ZWQpLCBfZGVmaW5lUHJvcGVydHkoX2N4MywgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tbGlnaHRcIiksIGxpZ2h0KSwgX2RlZmluZVByb3BlcnR5KF9jeDMsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWRpc2FibGVkXCIpLCBkaXNhYmxlZCksIF9jeDMpLCBjbGFzc05hbWUpO1xuICB2YXIgaW5wdXRDbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1pbnB1dFwiKSwgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWlucHV0LS1jaGVja2VkXCIpLCBpc1NlbGVjdGVkKSk7IC8vIFRPRE86IHJlbmFtZSB0byBoYW5kbGVDbGljayB3aGVuIGhhbmRsZUNsaWNrIHByb3AgaXMgZGVwcmVjYXRlZFxuXG4gIGZ1bmN0aW9uIGhhbmRsZU9uQ2xpY2soZXZ0KSB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnBlcnNpc3QoKTtcbiAgICBzZXRJc1NlbGVjdGVkKCFpc1NlbGVjdGVkKTtcbiAgICBjbGlja0hhbmRsZXIoZXZ0KTtcbiAgICBvbkNoYW5nZShldnQpO1xuICB9IC8vIFRPRE86IHJlbmFtZSB0byBoYW5kbGVLZXlEb3duIHdoZW4gaGFuZGxlS2V5RG93biBwcm9wIGlzIGRlcHJlY2F0ZWRcblxuXG4gIGZ1bmN0aW9uIGhhbmRsZU9uS2V5RG93bihldnQpIHtcbiAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgaWYgKG1hdGNoZXMoZXZ0LCBbRW50ZXIsIFNwYWNlXSkpIHtcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0SXNTZWxlY3RlZCghaXNTZWxlY3RlZCk7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH1cblxuICAgIGtleURvd25IYW5kbGVyKGV2dCk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVDaGFuZ2UoZXZlbnQpIHtcbiAgICBzZXRJc1NlbGVjdGVkKGV2ZW50LnRhcmdldC5jaGVja2VkKTtcbiAgICBvbkNoYW5nZShldmVudCk7XG4gIH1cblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHNldElzU2VsZWN0ZWQoc2VsZWN0ZWQpO1xuICB9LCBbc2VsZWN0ZWRdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFJlYWN0X19kZWZhdWx0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICByZWY6IGlucHV0LFxuICAgIHRhYkluZGV4OiAtMSxcbiAgICBpZDogaWQsXG4gICAgY2xhc3NOYW1lOiBpbnB1dENsYXNzZXMsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIG9uQ2hhbmdlOiAhZGlzYWJsZWQgPyBoYW5kbGVDaGFuZ2UgOiBudWxsLFxuICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgbmFtZTogbmFtZSxcbiAgICB0aXRsZTogdGl0bGUsXG4gICAgY2hlY2tlZDogaXNTZWxlY3RlZFxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCBfZXh0ZW5kcyh7XG4gICAgaHRtbEZvcjogaWQsXG4gICAgY2xhc3NOYW1lOiBjbGFzc2VzIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc3gtYTExeS9uby1ub25pbnRlcmFjdGl2ZS10YWJpbmRleFxuICAgICxcbiAgICB0YWJJbmRleDogIWRpc2FibGVkID8gdGFiSW5kZXggOiBudWxsXG4gIH0sIHJlc3QsIHtcbiAgICBvbkNsaWNrOiAhZGlzYWJsZWQgPyBoYW5kbGVPbkNsaWNrIDogbnVsbCxcbiAgICBvbktleURvd246ICFkaXNhYmxlZCA/IGhhbmRsZU9uS2V5RG93biA6IG51bGxcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlX19jaGVja21hcmsgXCIpLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlX19jaGVja21hcmstLXBlcnNpc3RlbnRcIilcbiAgfSwgaXNTZWxlY3RlZCA/IF9DaGVja2JveENoZWNrZWRGaWxsZSB8fCAoX0NoZWNrYm94Q2hlY2tlZEZpbGxlID0gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ2hlY2tib3hDaGVja2VkRmlsbGVkLCBudWxsKSkgOiBfQ2hlY2tib3ggfHwgKF9DaGVja2JveCA9IC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBudWxsKSkpLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50XCIpXG4gIH0sIGNoaWxkcmVuKSkpO1xufVxuU2VsZWN0YWJsZVRpbGUuZGVmYXVsdFByb3BzID0ge1xuICB2YWx1ZTogJ3ZhbHVlJyxcbiAgdGl0bGU6ICd0aXRsZScsXG4gIHNlbGVjdGVkOiBmYWxzZSxcbiAgdGFiSW5kZXg6IDAsXG4gIGxpZ2h0OiBmYWxzZSxcbiAgb25DbGljazogZnVuY3Rpb24gb25DbGljaygpIHt9LFxuICBvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoKSB7fSxcbiAgb25LZXlEb3duOiBmdW5jdGlvbiBvbktleURvd24oKSB7fVxufTtcblNlbGVjdGFibGVUaWxlLnByb3BUeXBlcyA9IHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBuYW1lcy5cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWxlY3RhYmxlVGlsZSBzaG91bGQgYmUgZGlzYWJsZWRcbiAgICovXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIFNlbGVjdGFibGVUaWxlIGlzIGNsaWNrZWRcbiAgICovXG4gIGhhbmRsZUNsaWNrOiBkZXByZWNhdGUoUHJvcFR5cGVzLmZ1bmMsICdUaGUgYGhhbmRsZUNsaWNrYCBwcm9wIGZvciBgU2VsZWN0YWJsZVRpbGVgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgYG9uQ2xpY2tgLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIFNlbGVjdGFibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgaGFuZGxlS2V5RG93bjogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGBoYW5kbGVLZXlEb3duYCBwcm9wIGZvciBgU2VsZWN0YWJsZVRpbGVgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgYG9uS2V5RG93bmAuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLicpLFxuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGNoZWNrbWFyayBpY29uLlxuICAgKi9cbiAgaWNvbkRlc2NyaXB0aW9uOiBkZXByZWNhdGUoUHJvcFR5cGVzLnN0cmluZywgJ1RoZSBgaWNvbkRlc2NyaXB0aW9uYCBwcm9wIGZvciBgU2VsZWN0YWJsZVRpbGVgIGlzIG5vIGxvbmdlciBuZWVkZWQgYW5kIGhhcyAnICsgJ2JlZW4gZGVwcmVjYXRlZC4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgYDxpbnB1dD5gLlxuICAgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byB1c2UgdGhlIGxpZ2h0IHZlcnNpb24uIEZvciB1c2Ugb24gJHVpLTAxIGJhY2tncm91bmRzIG9ubHkuXG4gICAqIERvbid0IHVzZSB0aGlzIHRvIG1ha2UgdGlsZSBiYWNrZ3JvdW5kIGNvbG9yIHNhbWUgYXMgY29udGFpbmVyIGJhY2tncm91bmQgY29sb3IuXG4gICAqL1xuICBsaWdodDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFRoZSBgbmFtZWAgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFRoZSBlbXB0eSBoYW5kbGVyIG9mIHRoZSBgPGlucHV0PmAuXG4gICAqL1xuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBTZWxlY3RhYmxlVGlsZSBpcyBjbGlja2VkXG4gICAqL1xuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIFNlbGVjdGFibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogYHRydWVgIHRvIHNlbGVjdCB0aGlzIHRpbGUuXG4gICAqL1xuICBzZWxlY3RlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIHRhYiBpbmRleCBvZiB0aGUgd3JhcHBlciBlbGVtZW50XG4gICAqL1xuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcblxuICAvKipcbiAgICogVGhlIGB0aXRsZWAgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSkuaXNSZXF1aXJlZFxufTtcbnZhciBFeHBhbmRhYmxlVGlsZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudDMpIHtcbiAgX2luaGVyaXRzKEV4cGFuZGFibGVUaWxlLCBfQ29tcG9uZW50Myk7XG5cbiAgdmFyIF9zdXBlcjMgPSBfY3JlYXRlU3VwZXIoRXhwYW5kYWJsZVRpbGUpO1xuXG4gIGZ1bmN0aW9uIEV4cGFuZGFibGVUaWxlKCkge1xuICAgIHZhciBfdGhpczI7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRXhwYW5kYWJsZVRpbGUpO1xuXG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuXG4gICAgX3RoaXMyID0gX3N1cGVyMy5jYWxsLmFwcGx5KF9zdXBlcjMsIFt0aGlzXS5jb25jYXQoYXJncykpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJzdGF0ZVwiLCB7fSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcInJlc2l6ZU9ic2VydmVyXCIsIG51bGwpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJjb21wb25lbnREaWRNb3VudFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpczIucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZnVuY3Rpb24gKGVudHJpZXMpIHtcbiAgICAgICAgdmFyIF9lbnRyaWVzID0gX3NsaWNlZFRvQXJyYXkoZW50cmllcywgMSksXG4gICAgICAgICAgICBhYm92ZVRoZUZvbGQgPSBfZW50cmllc1swXTtcblxuICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgIHRpbGVNYXhIZWlnaHQ6IGFib3ZlVGhlRm9sZC5jb250ZW50UmVjdC5oZWlnaHRcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKF90aGlzMi50aWxlKSB7XG4gICAgICAgIHZhciBnZXRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKF90aGlzMi50aWxlLCBudWxsKTtcblxuICAgICAgICBpZiAoX3RoaXMyLmFib3ZlVGhlRm9sZCkge1xuICAgICAgICAgIF90aGlzMi5yZXNpemVPYnNlcnZlci5vYnNlcnZlKF90aGlzMi5hYm92ZVRoZUZvbGQpO1xuXG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHRpbGVNYXhIZWlnaHQ6IF90aGlzMi5hYm92ZVRoZUZvbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LFxuICAgICAgICAgICAgdGlsZVBhZGRpbmc6IHBhcnNlSW50KGdldFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctdG9wJyksIDEwKSArIHBhcnNlSW50KGdldFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctYm90dG9tJyksIDEwKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcImNvbXBvbmVudERpZFVwZGF0ZVwiLCBmdW5jdGlvbiAocHJldlByb3BzKSB7XG4gICAgICBpZiAocHJldlByb3BzLmV4cGFuZGVkICE9PSBfdGhpczIucHJvcHMuZXhwYW5kZWQpIHtcbiAgICAgICAgX3RoaXMyLnNldE1heEhlaWdodCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJzZXRNYXhIZWlnaHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzMi5zdGF0ZS5leHBhbmRlZCA/IF90aGlzMi50aWxlQ29udGVudCA6IF90aGlzMi5hYm92ZVRoZUZvbGQpIHtcbiAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICB0aWxlTWF4SGVpZ2h0OiBfdGhpczIuc3RhdGUuZXhwYW5kZWQgPyBfdGhpczIudGlsZUNvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IDogX3RoaXMyLmFib3ZlVGhlRm9sZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcImhhbmRsZUNsaWNrXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgIGlmICghX3RoaXMyLnByb3BzLm9uQmVmb3JlQ2xpY2soZXZ0KSB8fCBldnQudGFyZ2V0LnRhZ05hbWUgPT09ICdJTlBVVCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICBleHBhbmRlZDogIV90aGlzMi5zdGF0ZS5leHBhbmRlZFxuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMyJHByb3BzJGhhbmRsZUNsLCBfdGhpczIkcHJvcHMsIF90aGlzMiRwcm9wcyRvbkNsaWNrLCBfdGhpczIkcHJvcHMyO1xuXG4gICAgICAgIF90aGlzMi5zZXRNYXhIZWlnaHQoKTsgLy8gVE9ETzogUmVtb3ZlIGhhbmRsZUNsaWNrIHByb3Agd2hlbiBoYW5kbGVDbGljayBpcyBkZXByZWNhdGVkXG5cblxuICAgICAgICAoKF90aGlzMiRwcm9wcyRoYW5kbGVDbCA9IChfdGhpczIkcHJvcHMgPSBfdGhpczIucHJvcHMpLmhhbmRsZUNsaWNrKSA9PT0gbnVsbCB8fCBfdGhpczIkcHJvcHMkaGFuZGxlQ2wgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzMiRwcm9wcyRoYW5kbGVDbC5jYWxsKF90aGlzMiRwcm9wcywgZXZ0KSkgfHwgKChfdGhpczIkcHJvcHMkb25DbGljayA9IChfdGhpczIkcHJvcHMyID0gX3RoaXMyLnByb3BzKS5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfdGhpczIkcHJvcHMkb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMyJHByb3BzJG9uQ2xpY2suY2FsbChfdGhpczIkcHJvcHMyLCBldnQpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJoYW5kbGVLZXlVcFwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBpZiAoZXZ0LnRhcmdldCAhPT0gX3RoaXMyLnRpbGUpIHtcbiAgICAgICAgaWYgKG1hdGNoZXMoZXZ0LCBbRW50ZXIsIFNwYWNlXSkpIHtcbiAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJnZXRDaGlsZHJlblwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gUmVhY3RfX2RlZmF1bHQuQ2hpbGRyZW4udG9BcnJheShfdGhpczIucHJvcHMuY2hpbGRyZW4pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIF90aGlzMjtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhFeHBhbmRhYmxlVGlsZSwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY3g1LFxuICAgICAgICAgIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wczcgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHRhYkluZGV4ID0gX3RoaXMkcHJvcHM3LnRhYkluZGV4LFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzNy5jbGFzc05hbWU7XG4gICAgICAgICAgX3RoaXMkcHJvcHM3LmV4cGFuZGVkO1xuICAgICAgICAgIF90aGlzJHByb3BzNy50aWxlTWF4SGVpZ2h0O1xuICAgICAgICAgIF90aGlzJHByb3BzNy50aWxlUGFkZGluZztcbiAgICAgICAgICBfdGhpcyRwcm9wczcuaGFuZGxlQ2xpY2s7XG4gICAgICAgICAgdmFyIG9uS2V5VXAgPSBfdGhpcyRwcm9wczcub25LZXlVcCxcbiAgICAgICAgICB0aWxlQ29sbGFwc2VkSWNvblRleHQgPSBfdGhpcyRwcm9wczcudGlsZUNvbGxhcHNlZEljb25UZXh0LFxuICAgICAgICAgIHRpbGVFeHBhbmRlZEljb25UZXh0ID0gX3RoaXMkcHJvcHM3LnRpbGVFeHBhbmRlZEljb25UZXh0LFxuICAgICAgICAgIHRpbGVDb2xsYXBzZWRMYWJlbCA9IF90aGlzJHByb3BzNy50aWxlQ29sbGFwc2VkTGFiZWwsXG4gICAgICAgICAgdGlsZUV4cGFuZGVkTGFiZWwgPSBfdGhpcyRwcm9wczcudGlsZUV4cGFuZGVkTGFiZWw7XG4gICAgICAgICAgX3RoaXMkcHJvcHM3Lm9uQmVmb3JlQ2xpY2s7XG4gICAgICAgICAgdmFyIGxpZ2h0ID0gX3RoaXMkcHJvcHM3LmxpZ2h0LFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3RoaXMkcHJvcHM3LCBfZXhjbHVkZWQ0KTtcblxuICAgICAgdmFyIHByZWZpeCA9IHRoaXMuY29udGV4dDtcbiAgICAgIHZhciBpc0V4cGFuZGVkID0gdGhpcy5zdGF0ZS5leHBhbmRlZDtcbiAgICAgIHZhciBjbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZVwiKSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tZXhwYW5kYWJsZVwiKSwgKF9jeDUgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jeDUsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWlzLWV4cGFuZGVkXCIpLCBpc0V4cGFuZGVkKSwgX2RlZmluZVByb3BlcnR5KF9jeDUsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWxpZ2h0XCIpLCBsaWdodCksIF9jeDUpLCBjbGFzc05hbWUpO1xuICAgICAgdmFyIHRpbGVTdHlsZSA9IHtcbiAgICAgICAgbWF4SGVpZ2h0OiBpc0V4cGFuZGVkID8gbnVsbCA6IHRoaXMuc3RhdGUudGlsZU1heEhlaWdodCArIHRoaXMuc3RhdGUudGlsZVBhZGRpbmdcbiAgICAgIH07XG4gICAgICB2YXIgY2hpbGRyZW5Bc0FycmF5ID0gdGhpcy5nZXRDaGlsZHJlbigpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgLyojX19QVVJFX18qL1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyxqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnNcbiAgICAgICAgUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfZXh0ZW5kcyh7XG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICByZWY6IGZ1bmN0aW9uIHJlZih0aWxlKSB7XG4gICAgICAgICAgICBfdGhpczMudGlsZSA9IHRpbGU7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdHlsZTogdGlsZVN0eWxlLFxuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NlcyxcbiAgICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogaXNFeHBhbmRlZCxcbiAgICAgICAgICB0aXRsZTogaXNFeHBhbmRlZCA/IHRpbGVFeHBhbmRlZEljb25UZXh0IDogdGlsZUNvbGxhcHNlZEljb25UZXh0XG4gICAgICAgIH0sIHJlc3QsIHtcbiAgICAgICAgICBvbktleVVwOiBjb21wb3NlRXZlbnRIYW5kbGVycyhbb25LZXlVcCwgdGhpcy5oYW5kbGVLZXlVcF0pLFxuICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQ2xpY2ssXG4gICAgICAgICAgdGFiSW5kZXg6IHRhYkluZGV4XG4gICAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgcmVmOiBmdW5jdGlvbiByZWYodGlsZUNvbnRlbnQpIHtcbiAgICAgICAgICAgIF90aGlzMy50aWxlQ29udGVudCA9IHRpbGVDb250ZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKGFib3ZlVGhlRm9sZCkge1xuICAgICAgICAgICAgX3RoaXMzLmFib3ZlVGhlRm9sZCA9IGFib3ZlVGhlRm9sZDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50XCIpXG4gICAgICAgIH0sIGNoaWxkcmVuQXNBcnJheVswXSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGVfX2NoZXZyb25cIilcbiAgICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIGlzRXhwYW5kZWQgPyB0aWxlRXhwYW5kZWRMYWJlbCA6IHRpbGVDb2xsYXBzZWRMYWJlbCksIF9DaGV2cm9uRG93biB8fCAoX0NoZXZyb25Eb3duID0gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ2hldnJvbkRvd24sIG51bGwpKSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtY29udGVudFwiKVxuICAgICAgICB9LCBjaGlsZHJlbkFzQXJyYXlbMV0pKSlcbiAgICAgICk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyggLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L3Byb3AtdHlwZXNcbiAgICBfcmVmMiwgc3RhdGUpIHtcbiAgICAgIHZhciBleHBhbmRlZCA9IF9yZWYyLmV4cGFuZGVkLFxuICAgICAgICAgIHRpbGVNYXhIZWlnaHQgPSBfcmVmMi50aWxlTWF4SGVpZ2h0LFxuICAgICAgICAgIHRpbGVQYWRkaW5nID0gX3JlZjIudGlsZVBhZGRpbmc7XG4gICAgICB2YXIgcHJldkV4cGFuZGVkID0gc3RhdGUucHJldkV4cGFuZGVkLFxuICAgICAgICAgIHByZXZUaWxlTWF4SGVpZ2h0ID0gc3RhdGUucHJldlRpbGVNYXhIZWlnaHQsXG4gICAgICAgICAgcHJldlRpbGVQYWRkaW5nID0gc3RhdGUucHJldlRpbGVQYWRkaW5nLFxuICAgICAgICAgIGN1cnJlbnRFeHBhbmRlZCA9IHN0YXRlLmV4cGFuZGVkLFxuICAgICAgICAgIGN1cnJlbnRUaWxlTWF4SGVpZ2h0ID0gc3RhdGUudGlsZU1heEhlaWdodCxcbiAgICAgICAgICBjdXJyZW50VGlsZVBhZGRpbmcgPSBzdGF0ZS50aWxlUGFkZGluZztcbiAgICAgIHZhciBleHBhbmRlZENoYW5nZWQgPSBwcmV2RXhwYW5kZWQgIT09IGV4cGFuZGVkO1xuICAgICAgdmFyIHRpbGVNYXhIZWlnaHRDaGFuZ2VkID0gcHJldlRpbGVNYXhIZWlnaHQgIT09IHRpbGVNYXhIZWlnaHQ7XG4gICAgICB2YXIgdGlsZVBhZGRpbmdDaGFuZ2VkID0gcHJldlRpbGVQYWRkaW5nICE9PSB0aWxlUGFkZGluZztcbiAgICAgIHJldHVybiAhZXhwYW5kZWRDaGFuZ2VkICYmICF0aWxlTWF4SGVpZ2h0Q2hhbmdlZCAmJiAhdGlsZVBhZGRpbmdDaGFuZ2VkID8gbnVsbCA6IHtcbiAgICAgICAgZXhwYW5kZWQ6ICFleHBhbmRlZENoYW5nZWQgPyBjdXJyZW50RXhwYW5kZWQgOiBleHBhbmRlZCxcbiAgICAgICAgdGlsZU1heEhlaWdodDogIXRpbGVNYXhIZWlnaHRDaGFuZ2VkID8gY3VycmVudFRpbGVNYXhIZWlnaHQgOiB0aWxlTWF4SGVpZ2h0LFxuICAgICAgICB0aWxlUGFkZGluZzogIXRpbGVQYWRkaW5nQ2hhbmdlZCA/IGN1cnJlbnRUaWxlUGFkZGluZyA6IHRpbGVQYWRkaW5nLFxuICAgICAgICBwcmV2RXhwYW5kZWQ6IGV4cGFuZGVkLFxuICAgICAgICBwcmV2VGlsZU1heEhlaWdodDogdGlsZU1heEhlaWdodCxcbiAgICAgICAgcHJldlRpbGVQYWRkaW5nOiB0aWxlUGFkZGluZ1xuICAgICAgfTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gRXhwYW5kYWJsZVRpbGU7XG59KENvbXBvbmVudCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShFeHBhbmRhYmxlVGlsZSwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIG5hbWVzLlxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgaWYgdGhlIHRpbGUgaXMgZXhwYW5kZWQuXG4gICAqL1xuICBleHBhbmRlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIERlcHJlY2F0ZWQgaW4gdjExLiBVc2UgJ29uQ2xpY2snIGluc3RlYWQuXG4gICAqL1xuICBoYW5kbGVDbGljazogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGhhbmRsZUNsaWNrIHByb3AgZm9yIEV4cGFuZGFibGVUaWxlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Ygb25DbGljay4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIEFuIElEIHRoYXQgY2FuIGJlIHByb3ZpZGVkIHRvIGFyaWEtbGFiZWxsZWRieVxuICAgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byB1c2UgdGhlIGxpZ2h0IHZlcnNpb24uIEZvciB1c2Ugb24gJHVpLTAxIGJhY2tncm91bmRzIG9ubHkuXG4gICAqIERvbid0IHVzZSB0aGlzIHRvIG1ha2UgdGlsZSBiYWNrZ3JvdW5kIGNvbG9yIHNhbWUgYXMgY29udGFpbmVyIGJhY2tncm91bmQgY29sb3IuXG4gICAqL1xuICBsaWdodDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIG9wdGlvbmFsIGhhbmRsZXIgdG8gZGVjaWRlIHdoZXRoZXIgdG8gaWdub3JlIGEgY2xpY2suIHJldHVybnMgZmFsc2UgaWYgY2xpY2sgc2hvdWxkIGJlIGlnbm9yZWRcbiAgICovXG4gIG9uQmVmb3JlQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgRXhwYW5kYWJsZVRpbGUgaXMgY2xpY2tlZFxuICAgICovXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBvcHRpb25hbCBoYW5kbGVyIHRvIHRyaWdnZXIgYSBmdW5jdGlvbiB3aGVuIGEga2V5IGlzIHByZXNzZWRcbiAgICovXG4gIG9uS2V5VXA6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBUaGUgYHRhYmluZGV4YCBhdHRyaWJ1dGUuXG4gICAqL1xuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBcImNvbGxhcHNlZFwiIGljb24gdGhhdCBjYW4gYmUgcmVhZCBieSBzY3JlZW4gcmVhZGVycy5cbiAgICovXG4gIHRpbGVDb2xsYXBzZWRJY29uVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogV2hlbiBcImNvbGxhcHNlZFwiLCBhIGxhYmVsIHRvIGFwcGVhciBuZXh0IHRvIHRoZSBjaGV2cm9uIChlLmcuLCBcIlZpZXcgbW9yZVwiKS5cbiAgICovXG4gIHRpbGVDb2xsYXBzZWRMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBcImV4cGFuZGVkXCIgaWNvbiB0aGF0IGNhbiBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXJzLlxuICAgKi9cbiAgdGlsZUV4cGFuZGVkSWNvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFdoZW4gXCJleHBhbmRlZFwiLCBhIGxhYmVsIHRvIGFwcGVhciBuZXh0IHRvIHRoZSBjaGV2cm9uIChlLmcuLCBcIlZpZXcgbGVzc1wiKS5cbiAgICovXG4gIHRpbGVFeHBhbmRlZExhYmVsOiBQcm9wVHlwZXMuc3RyaW5nXG59KTtcblxuX2RlZmluZVByb3BlcnR5KEV4cGFuZGFibGVUaWxlLCBcImNvbnRleHRUeXBlXCIsIFByZWZpeENvbnRleHQpO1xuXG5fZGVmaW5lUHJvcGVydHkoRXhwYW5kYWJsZVRpbGUsIFwiZGVmYXVsdFByb3BzXCIsIHtcbiAgdGFiSW5kZXg6IDAsXG4gIGV4cGFuZGVkOiBmYWxzZSxcbiAgdGlsZU1heEhlaWdodDogMCxcbiAgdGlsZVBhZGRpbmc6IDAsXG4gIG9uQmVmb3JlQ2xpY2s6IGZ1bmN0aW9uIG9uQmVmb3JlQ2xpY2soKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7fSxcbiAgdGlsZUNvbGxhcHNlZEljb25UZXh0OiAnSW50ZXJhY3QgdG8gZXhwYW5kIFRpbGUnLFxuICB0aWxlRXhwYW5kZWRJY29uVGV4dDogJ0ludGVyYWN0IHRvIGNvbGxhcHNlIFRpbGUnLFxuICBsaWdodDogZmFsc2Vcbn0pO1xuXG52YXIgVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQ0KSB7XG4gIF9pbmhlcml0cyhUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgX0NvbXBvbmVudDQpO1xuXG4gIHZhciBfc3VwZXI0ID0gX2NyZWF0ZVN1cGVyKFRpbGVBYm92ZVRoZUZvbGRDb250ZW50KTtcblxuICBmdW5jdGlvbiBUaWxlQWJvdmVUaGVGb2xkQ29udGVudCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQpO1xuXG4gICAgcmV0dXJuIF9zdXBlcjQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG4gICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50X19hYm92ZS10aGUtZm9sZFwiKVxuICAgICAgfSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUaWxlQWJvdmVUaGVGb2xkQ29udGVudDtcbn0oQ29tcG9uZW50KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGVBYm92ZVRoZUZvbGRDb250ZW50LCBcInByb3BUeXBlc1wiLCB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbn0pO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbnZhciBUaWxlQmVsb3dUaGVGb2xkQ29udGVudCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudDUpIHtcbiAgX2luaGVyaXRzKFRpbGVCZWxvd1RoZUZvbGRDb250ZW50LCBfQ29tcG9uZW50NSk7XG5cbiAgdmFyIF9zdXBlcjUgPSBfY3JlYXRlU3VwZXIoVGlsZUJlbG93VGhlRm9sZENvbnRlbnQpO1xuXG4gIGZ1bmN0aW9uIFRpbGVCZWxvd1RoZUZvbGRDb250ZW50KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUaWxlQmVsb3dUaGVGb2xkQ29udGVudCk7XG5cbiAgICByZXR1cm4gX3N1cGVyNS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRpbGVCZWxvd1RoZUZvbGRDb250ZW50LCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWNvbnRlbnRfX2JlbG93LXRoZS1mb2xkXCIpXG4gICAgICB9LCBjaGlsZHJlbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRpbGVCZWxvd1RoZUZvbGRDb250ZW50O1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZUJlbG93VGhlRm9sZENvbnRlbnQsIFwicHJvcFR5cGVzXCIsIHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZVxufSk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlQmVsb3dUaGVGb2xkQ29udGVudCwgXCJjb250ZXh0VHlwZVwiLCBQcmVmaXhDb250ZXh0KTtcblxuZXhwb3J0IHsgQ2xpY2thYmxlVGlsZSwgRXhwYW5kYWJsZVRpbGUsIFNlbGVjdGFibGVUaWxlLCBUaWxlLCBUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgVGlsZUJlbG93VGhlRm9sZENvbnRlbnQgfTtcbiJdLCJuYW1lcyI6WyJpbmhlcml0cyIsIl9pbmhlcml0cyIsImNyZWF0ZVN1cGVyIiwiX2NyZWF0ZVN1cGVyIiwiY2xhc3NDYWxsQ2hlY2siLCJfY2xhc3NDYWxsQ2hlY2siLCJjcmVhdGVDbGFzcyIsIl9jcmVhdGVDbGFzcyIsIm9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfZGVmaW5lUHJvcGVydHkiLCJleHRlbmRzIiwiX2V4dGVuZHMiLCJhc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwic2xpY2VkVG9BcnJheSIsIl9zbGljZWRUb0FycmF5IiwiUmVhY3RfX2RlZmF1bHQiLCJDb21wb25lbnQiLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsIlByb3BUeXBlcyIsImN4IiwiTGluayIsIkNoZWNrYm94Q2hlY2tlZEZpbGxlZCIsIkNoZWNrYm94IiwiQ2hldnJvbkRvd24iLCJkZXByZWNhdGUiLCJjb21wb3NlRXZlbnRIYW5kbGVycyIsIlByZWZpeENvbnRleHQiLCJ1c2VQcmVmaXgiLCJtYXRjaGVzIiwiRW50ZXIiLCJTcGFjZSIsIl9DaGVja2JveENoZWNrZWRGaWxsZSIsIl9DaGVja2JveCIsIl9DaGV2cm9uRG93biIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfZXhjbHVkZWQzIiwiX2V4Y2x1ZGVkNCIsIlRpbGUiLCJfQ29tcG9uZW50IiwiX3N1cGVyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJrZXkiLCJ2YWx1ZSIsInJlbmRlciIsInByZWZpeCIsImNvbnRleHQiLCJfdGhpcyRwcm9wcyIsInByb3BzIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJsaWdodCIsInJlc3QiLCJ0aWxlQ2xhc3NlcyIsImNvbmNhdCIsImNyZWF0ZUVsZW1lbnQiLCJub2RlIiwic3RyaW5nIiwiYm9vbCIsIkNsaWNrYWJsZVRpbGUiLCJfQ29tcG9uZW50MiIsIl9zdXBlcjIiLCJfdGhpcyIsIl9sZW4iLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsImV2dCIsInBlcnNpc3QiLCJzZXRTdGF0ZSIsImNsaWNrZWQiLCJzdGF0ZSIsIl90aGlzJHByb3BzJGhhbmRsZUNsaSIsIl90aGlzJHByb3BzMiIsIl90aGlzJHByb3BzJG9uQ2xpY2siLCJfdGhpcyRwcm9wczMiLCJoYW5kbGVDbGljayIsIm9uQ2xpY2siLCJfdGhpcyRwcm9wcyRoYW5kbGVLZXkiLCJfdGhpcyRwcm9wczQiLCJoYW5kbGVLZXlEb3duIiwib25LZXlEb3duIiwiX3RoaXMkcHJvcHMkaGFuZGxlS2V5MiIsIl90aGlzJHByb3BzNSIsIl9jeDIiLCJfdGhpcyRwcm9wczYiLCJocmVmIiwiY2xhc3NlcyIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsIl9yZWYiLCJwcmV2Q2xpY2tlZCIsImZ1bmMiLCJyZWwiLCJTZWxlY3RhYmxlVGlsZSIsImhhbmRsZU9uQ2xpY2siLCJwcmV2ZW50RGVmYXVsdCIsInNldElzU2VsZWN0ZWQiLCJpc1NlbGVjdGVkIiwiY2xpY2tIYW5kbGVyIiwib25DaGFuZ2UiLCJoYW5kbGVPbktleURvd24iLCJrZXlEb3duSGFuZGxlciIsImhhbmRsZUNoYW5nZSIsImV2ZW50IiwidGFyZ2V0IiwiY2hlY2tlZCIsIl9jeDMiLCJpZCIsInRhYkluZGV4IiwibmFtZSIsInRpdGxlIiwiaWNvbkRlc2NyaXB0aW9uIiwiZGlzYWJsZWQiLCJzZWxlY3RlZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJpbnB1dCIsImlucHV0Q2xhc3NlcyIsIkZyYWdtZW50IiwicmVmIiwidHlwZSIsImh0bWxGb3IiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJudW1iZXIiLCJvbmVPZlR5cGUiLCJpc1JlcXVpcmVkIiwiRXhwYW5kYWJsZVRpbGUiLCJfQ29tcG9uZW50MyIsIl9zdXBlcjMiLCJfdGhpczIiLCJfbGVuMiIsIl9rZXkyIiwicmVzaXplT2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImVudHJpZXMiLCJfZW50cmllcyIsImFib3ZlVGhlRm9sZCIsInRpbGVNYXhIZWlnaHQiLCJjb250ZW50UmVjdCIsImhlaWdodCIsInRpbGUiLCJnZXRTdHlsZSIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJvYnNlcnZlIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidGlsZVBhZGRpbmciLCJwYXJzZUludCIsImdldFByb3BlcnR5VmFsdWUiLCJwcmV2UHJvcHMiLCJleHBhbmRlZCIsInNldE1heEhlaWdodCIsInRpbGVDb250ZW50Iiwib25CZWZvcmVDbGljayIsInRhZ05hbWUiLCJfdGhpczIkcHJvcHMkaGFuZGxlQ2wiLCJfdGhpczIkcHJvcHMiLCJfdGhpczIkcHJvcHMkb25DbGljayIsIl90aGlzMiRwcm9wczIiLCJDaGlsZHJlbiIsInRvQXJyYXkiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImRpc2Nvbm5lY3QiLCJfY3g1IiwiX3RoaXMzIiwiX3RoaXMkcHJvcHM3Iiwib25LZXlVcCIsInRpbGVDb2xsYXBzZWRJY29uVGV4dCIsInRpbGVFeHBhbmRlZEljb25UZXh0IiwidGlsZUNvbGxhcHNlZExhYmVsIiwidGlsZUV4cGFuZGVkTGFiZWwiLCJpc0V4cGFuZGVkIiwidGlsZVN0eWxlIiwibWF4SGVpZ2h0IiwiY2hpbGRyZW5Bc0FycmF5IiwiZ2V0Q2hpbGRyZW4iLCJzdHlsZSIsImhhbmRsZUtleVVwIiwiX3JlZjIiLCJwcmV2RXhwYW5kZWQiLCJwcmV2VGlsZU1heEhlaWdodCIsInByZXZUaWxlUGFkZGluZyIsImN1cnJlbnRFeHBhbmRlZCIsImN1cnJlbnRUaWxlTWF4SGVpZ2h0IiwiY3VycmVudFRpbGVQYWRkaW5nIiwiZXhwYW5kZWRDaGFuZ2VkIiwidGlsZU1heEhlaWdodENoYW5nZWQiLCJ0aWxlUGFkZGluZ0NoYW5nZWQiLCJUaWxlQWJvdmVUaGVGb2xkQ29udGVudCIsIl9Db21wb25lbnQ0IiwiX3N1cGVyNCIsIlRpbGVCZWxvd1RoZUZvbGRDb250ZW50IiwiX0NvbXBvbmVudDUiLCJfc3VwZXI1Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../../node_modules/@carbon/react/es/components/Tile/Tile.js\n");
2604
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClickableTile\": () => (/* binding */ ClickableTile),\n/* harmony export */ \"ExpandableTile\": () => (/* binding */ ExpandableTile),\n/* harmony export */ \"SelectableTile\": () => (/* binding */ SelectableTile),\n/* harmony export */ \"Tile\": () => (/* binding */ Tile),\n/* harmony export */ \"TileAboveTheFoldContent\": () => (/* binding */ TileAboveTheFoldContent),\n/* harmony export */ \"TileBelowTheFoldContent\": () => (/* binding */ TileBelowTheFoldContent)\n/* harmony export */ });\n/* harmony import */ var _virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_virtual/_rollupPluginBabelHelpers.js */ \"../../../node_modules/@carbon/react/es/_virtual/_rollupPluginBabelHelpers.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"../../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"../../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Link_Link_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Link/Link.js */ \"../../../node_modules/@carbon/react/es/components/Link/Link.js\");\n/* harmony import */ var _carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @carbon/icons-react */ \"../../../node_modules/@carbon/icons-react/es/generated/bucket-2.js\");\n/* harmony import */ var _prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../prop-types/deprecate.js */ \"../../../node_modules/@carbon/react/es/prop-types/deprecate.js\");\n/* harmony import */ var _tools_events_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../tools/events.js */ \"../../../node_modules/@carbon/react/es/tools/events.js\");\n/* harmony import */ var _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../internal/usePrefix.js */ \"../../../node_modules/@carbon/react/es/internal/usePrefix.js\");\n/* harmony import */ var _internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../internal/keyboard/match.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/match.js\");\n/* harmony import */ var _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../internal/keyboard/keys.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/keys.js\");\n/**\n * Copyright IBM Corp. 2016, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */ \n\n\n\n\n\n\n\n\n\n\nvar _CheckboxCheckedFille, _Checkbox, _ChevronDown;\nvar _excluded = [\n \"children\",\n \"className\",\n \"light\"\n], _excluded2 = [\n \"children\",\n \"href\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onKeyDown\",\n \"clicked\",\n \"light\"\n], _excluded3 = [\n \"children\",\n \"id\",\n \"tabIndex\",\n \"value\",\n \"name\",\n \"title\",\n \"iconDescription\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onChange\",\n \"onKeyDown\",\n \"light\",\n \"disabled\",\n \"selected\"\n], _excluded4 = [\n \"tabIndex\",\n \"className\",\n \"expanded\",\n \"tileMaxHeight\",\n \"tilePadding\",\n \"handleClick\",\n \"onKeyUp\",\n \"tileCollapsedIconText\",\n \"tileExpandedIconText\",\n \"tileCollapsedLabel\",\n \"tileExpandedLabel\",\n \"onBeforeClick\",\n \"light\"\n];\nvar Tile = /*#__PURE__*/ function(_Component) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(Tile, _Component);\n var _super = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(Tile);\n function Tile() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, Tile);\n return _super.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(Tile, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var _this$props = this.props, children = _this$props.children, className = _this$props.className, light = _this$props.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props, _excluded);\n var tileClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile--light\"), light), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n className: tileClasses\n }, rest), children);\n }\n }\n ]);\n return Tile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"defaultProps\", {\n light: false\n});\nvar ClickableTile = /*#__PURE__*/ function(_Component2) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ClickableTile, _Component2);\n var _super2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ClickableTile);\n function ClickableTile() {\n var _this;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ClickableTile);\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n _this = _super2.call.apply(_super2, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleClick\", function(evt) {\n evt.persist();\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleCli, _this$props2, _this$props$onClick, _this$props3;\n // TODO: Remove handleClick prop when handleClick is deprecated\n ((_this$props$handleCli = (_this$props2 = _this.props).handleClick) === null || _this$props$handleCli === void 0 ? void 0 : _this$props$handleCli.call(_this$props2, evt)) || ((_this$props$onClick = (_this$props3 = _this.props).onClick) === null || _this$props$onClick === void 0 ? void 0 : _this$props$onClick.call(_this$props3, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleKeyDown\", function(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleKey, _this$props4;\n (// TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n (_this$props$handleKey = (_this$props4 = _this.props).handleKeyDown) === null || _this$props$handleKey === void 0 ? void 0 : _this$props$handleKey.call(_this$props4, evt)) || _this.props.onKeyDown(evt);\n });\n } else {\n var _this$props$handleKey2, _this$props5;\n (// TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n (_this$props$handleKey2 = (_this$props5 = _this.props).handleKeyDown) === null || _this$props$handleKey2 === void 0 ? void 0 : _this$props$handleKey2.call(_this$props5, evt)) || _this.props.onKeyDown(evt);\n }\n });\n return _this;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ClickableTile, [\n {\n key: \"render\",\n value: function render() {\n var _cx2;\n var prefix = this.context;\n var _this$props6 = this.props, children = _this$props6.children, href = _this$props6.href, className = _this$props6.className;\n _this$props6.handleClick;\n _this$props6.handleKeyDown;\n _this$props6.onClick;\n _this$props6.onKeyDown;\n _this$props6.clicked;\n var light = _this$props6.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props6, _excluded2);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--clickable\"), (_cx2 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--is-clicked\"), this.state.clicked), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--light\"), light), _cx2), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Link_Link_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"], (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n href: href,\n className: classes\n }, rest, {\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown\n }), children);\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, state) {\n var clicked = _ref.clicked;\n var prevClicked = state.prevClicked;\n return prevClicked === clicked ? null : {\n clicked: clicked,\n prevClicked: clicked\n };\n }\n }\n ]);\n return ClickableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ClickableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleKeyDown prop for ClickableTile has been deprecated in favor of onKeyDown. It will be removed in the next major release.\"),\n /**\n * The href for the link.\n */ href: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the ClickableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The rel property for the link.\n */ rel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"defaultProps\", {\n clicked: false,\n onClick: function onClick() {},\n onKeyDown: function onKeyDown() {},\n light: false\n});\nfunction SelectableTile(props) {\n var handleOnClick = function handleOnClick(evt) {\n evt.preventDefault();\n evt.persist();\n setIsSelected(!isSelected);\n clickHandler(evt);\n onChange(evt);\n } // TODO: rename to handleKeyDown when handleKeyDown prop is deprecated\n ;\n var handleOnKeyDown = function handleOnKeyDown(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n setIsSelected(!isSelected);\n onChange(evt);\n }\n keyDownHandler(evt);\n };\n var handleChange = function handleChange(event) {\n setIsSelected(event.target.checked);\n onChange(event);\n };\n var _cx3;\n var children = props.children, id = props.id, tabIndex = props.tabIndex, value = props.value, name = props.name, title = props.title;\n props.iconDescription;\n var className = props.className, handleClick = props.handleClick, handleKeyDown = props.handleKeyDown, onClick = props.onClick, onChange = props.onChange, onKeyDown = props.onKeyDown, light = props.light, disabled = props.disabled, selected = props.selected, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(props, _excluded3);\n var prefix = (0,_internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.usePrefix)(); // TODO: replace with onClick when handleClick prop is deprecated\n var clickHandler = handleClick || onClick; // TODO: replace with onKeyDown when handleKeyDown prop is deprecated\n var keyDownHandler = handleKeyDown || onKeyDown;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(selected), _useState2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(_useState, 2), isSelected = _useState2[0], setIsSelected = _useState2[1];\n var input = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--selectable\"), (_cx3 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--is-selected\"), isSelected), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--light\"), light), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--disabled\"), disabled), _cx3), className);\n var inputClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile-input\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile-input--checked\"), isSelected)); // TODO: rename to handleClick when handleClick prop is deprecated\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n setIsSelected(selected);\n }, [\n selected\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n ref: input,\n tabIndex: -1,\n id: id,\n className: inputClasses,\n value: value,\n onChange: !disabled ? handleChange : null,\n type: \"checkbox\",\n disabled: disabled,\n name: name,\n title: title,\n checked: isSelected\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n htmlFor: id,\n className: classes // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: !disabled ? tabIndex : null\n }, rest, {\n onClick: !disabled ? handleOnClick : null,\n onKeyDown: !disabled ? handleOnKeyDown : null\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile__checkmark \").concat(prefix, \"--tile__checkmark--persistent\")\n }, isSelected ? _CheckboxCheckedFille || (_CheckboxCheckedFille = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.CheckboxCheckedFilled, null)) : _Checkbox || (_Checkbox = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.Checkbox, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, children)));\n}\nSelectableTile.defaultProps = {\n value: \"value\",\n title: \"title\",\n selected: false,\n tabIndex: 0,\n light: false,\n onClick: function onClick() {},\n onChange: function onChange() {},\n onKeyDown: function onKeyDown() {}\n};\nSelectableTile.propTypes = {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Specify whether the SelectableTile should be disabled\n */ disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleClick` prop for `SelectableTile` has been deprecated in favor of `onClick`. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleKeyDown` prop for `SelectableTile` has been deprecated in favor of `onKeyDown`. It will be removed in the next major release.\"),\n /**\n * The description of the checkmark icon.\n */ iconDescription: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().string), \"The `iconDescription` prop for `SelectableTile` is no longer needed and has \" + \"been deprecated. It will be removed in the next major release.\"),\n /**\n * The ID of the `<input>`.\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * The `name` of the `<input>`.\n */ name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The empty handler of the `<input>`.\n */ onChange: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * `true` to select this tile.\n */ selected: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the tab index of the wrapper element\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The `title` of the `<input>`.\n */ title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The value of the `<input>`.\n */ value: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number)\n ]).isRequired\n};\nvar ExpandableTile = /*#__PURE__*/ function(_Component3) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ExpandableTile, _Component3);\n var _super3 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ExpandableTile);\n function ExpandableTile() {\n var _this2;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ExpandableTile);\n for(var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++){\n args[_key2] = arguments[_key2];\n }\n _this2 = _super3.call.apply(_super3, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"resizeObserver\", null);\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidMount\", function() {\n _this2.resizeObserver = new ResizeObserver(function(entries) {\n var _entries = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(entries, 1), aboveTheFold = _entries[0];\n _this2.setState({\n tileMaxHeight: aboveTheFold.contentRect.height\n });\n });\n if (_this2.tile) {\n var getStyle = window.getComputedStyle(_this2.tile, null);\n if (_this2.aboveTheFold) {\n _this2.resizeObserver.observe(_this2.aboveTheFold);\n _this2.setState({\n tileMaxHeight: _this2.aboveTheFold.getBoundingClientRect().height,\n tilePadding: parseInt(getStyle.getPropertyValue(\"padding-top\"), 10) + parseInt(getStyle.getPropertyValue(\"padding-bottom\"), 10)\n });\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidUpdate\", function(prevProps) {\n if (prevProps.expanded !== _this2.props.expanded) {\n _this2.setMaxHeight();\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"setMaxHeight\", function() {\n if (_this2.state.expanded ? _this2.tileContent : _this2.aboveTheFold) {\n _this2.setState({\n tileMaxHeight: _this2.state.expanded ? _this2.tileContent.getBoundingClientRect().height : _this2.aboveTheFold.getBoundingClientRect().height\n });\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleClick\", function(evt) {\n if (!_this2.props.onBeforeClick(evt) || evt.target.tagName === \"INPUT\") {\n return;\n }\n evt.persist();\n _this2.setState({\n expanded: !_this2.state.expanded\n }, function() {\n var _this2$props$handleCl, _this2$props, _this2$props$onClick, _this2$props2;\n _this2.setMaxHeight(); // TODO: Remove handleClick prop when handleClick is deprecated\n ((_this2$props$handleCl = (_this2$props = _this2.props).handleClick) === null || _this2$props$handleCl === void 0 ? void 0 : _this2$props$handleCl.call(_this2$props, evt)) || ((_this2$props$onClick = (_this2$props2 = _this2.props).onClick) === null || _this2$props$onClick === void 0 ? void 0 : _this2$props$onClick.call(_this2$props2, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleKeyUp\", function(evt) {\n if (evt.target !== _this2.tile) {\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"getChildren\", function() {\n return react__WEBPACK_IMPORTED_MODULE_0___default().Children.toArray(_this2.props.children);\n });\n return _this2;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ExpandableTile, [\n {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n },\n {\n key: \"render\",\n value: function render() {\n var _cx5, _this3 = this;\n var _this$props7 = this.props, tabIndex = _this$props7.tabIndex, className = _this$props7.className;\n _this$props7.expanded;\n _this$props7.tileMaxHeight;\n _this$props7.tilePadding;\n _this$props7.handleClick;\n var onKeyUp = _this$props7.onKeyUp, tileCollapsedIconText = _this$props7.tileCollapsedIconText, tileExpandedIconText = _this$props7.tileExpandedIconText, tileCollapsedLabel = _this$props7.tileCollapsedLabel, tileExpandedLabel = _this$props7.tileExpandedLabel;\n _this$props7.onBeforeClick;\n var light = _this$props7.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props7, _excluded4);\n var prefix = this.context;\n var isExpanded = this.state.expanded;\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--expandable\"), (_cx5 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--is-expanded\"), isExpanded), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--light\"), light), _cx5), className);\n var tileStyle = {\n maxHeight: isExpanded ? null : this.state.tileMaxHeight + this.state.tilePadding\n };\n var childrenAsArray = this.getChildren();\n return(/*#__PURE__*/ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n type: \"button\",\n ref: function ref(tile) {\n _this3.tile = tile;\n },\n style: tileStyle,\n className: classes,\n \"aria-expanded\": isExpanded,\n title: isExpanded ? tileExpandedIconText : tileCollapsedIconText\n }, rest, {\n onKeyUp: (0,_tools_events_js__WEBPACK_IMPORTED_MODULE_10__.composeEventHandlers)([\n onKeyUp,\n this.handleKeyUp\n ]),\n onClick: this.handleClick,\n tabIndex: tabIndex\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(tileContent) {\n _this3.tileContent = tileContent;\n }\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(aboveTheFold) {\n _this3.aboveTheFold = aboveTheFold;\n },\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[0]), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile__chevron\")\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, isExpanded ? tileExpandedLabel : tileCollapsedLabel), _ChevronDown || (_ChevronDown = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.ChevronDown, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[1]))));\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref2, state) {\n var expanded = _ref2.expanded, tileMaxHeight = _ref2.tileMaxHeight, tilePadding = _ref2.tilePadding;\n var prevExpanded = state.prevExpanded, prevTileMaxHeight = state.prevTileMaxHeight, prevTilePadding = state.prevTilePadding, currentExpanded = state.expanded, currentTileMaxHeight = state.tileMaxHeight, currentTilePadding = state.tilePadding;\n var expandedChanged = prevExpanded !== expanded;\n var tileMaxHeightChanged = prevTileMaxHeight !== tileMaxHeight;\n var tilePaddingChanged = prevTilePadding !== tilePadding;\n return !expandedChanged && !tileMaxHeightChanged && !tilePaddingChanged ? null : {\n expanded: !expandedChanged ? currentExpanded : expanded,\n tileMaxHeight: !tileMaxHeightChanged ? currentTileMaxHeight : tileMaxHeight,\n tilePadding: !tilePaddingChanged ? currentTilePadding : tilePadding,\n prevExpanded: expanded,\n prevTileMaxHeight: tileMaxHeight,\n prevTilePadding: tilePadding\n };\n }\n }\n ]);\n return ExpandableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` if the tile is expanded.\n */ expanded: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ExpandableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * An ID that can be provided to aria-labelledby\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * optional handler to decide whether to ignore a click. returns false if click should be ignored\n */ onBeforeClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ExpandableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * optional handler to trigger a function when a key is pressed\n */ onKeyUp: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The `tabindex` attribute.\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The description of the \"collapsed\" icon that can be read by screen readers.\n */ tileCollapsedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"collapsed\", a label to appear next to the chevron (e.g., \"View more\").\n */ tileCollapsedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The description of the \"expanded\" icon that can be read by screen readers.\n */ tileExpandedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"expanded\", a label to appear next to the chevron (e.g., \"View less\").\n */ tileExpandedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"defaultProps\", {\n tabIndex: 0,\n expanded: false,\n tileMaxHeight: 0,\n tilePadding: 0,\n onBeforeClick: function onBeforeClick() {\n return true;\n },\n onClick: function onClick() {},\n tileCollapsedIconText: \"Interact to expand Tile\",\n tileExpandedIconText: \"Interact to collapse Tile\",\n light: false\n});\nvar TileAboveTheFoldContent = /*#__PURE__*/ function(_Component4) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileAboveTheFoldContent, _Component4);\n var _super4 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileAboveTheFoldContent);\n function TileAboveTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileAboveTheFoldContent);\n return _super4.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileAboveTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var children = this.props.children;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__above-the-fold\")\n }, children);\n }\n }\n ]);\n return TileAboveTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\nvar TileBelowTheFoldContent = /*#__PURE__*/ function(_Component5) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileBelowTheFoldContent, _Component5);\n var _super5 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileBelowTheFoldContent);\n function TileBelowTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileBelowTheFoldContent);\n return _super5.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileBelowTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var prefix = this.context;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__below-the-fold\")\n }, children);\n }\n }\n ]);\n return TileBelowTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BjYXJib24vcmVhY3QvZXMvY29tcG9uZW50cy9UaWxlL1RpbGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUUrVztBQUNqUztBQUM1QztBQUNQO0FBQ087QUFDZ0Q7QUFDN0I7QUFDTztBQUNVO0FBQ1o7QUFDSTtBQUUvRCxJQUFJb0MsdUJBQXVCQyxXQUFXQztBQUV0QyxJQUFJQyxZQUFZO0lBQUM7SUFBWTtJQUFhO0NBQVEsRUFDOUNDLGFBQWE7SUFBQztJQUFZO0lBQVE7SUFBYTtJQUFlO0lBQWlCO0lBQVc7SUFBYTtJQUFXO0NBQVEsRUFDMUhDLGFBQWE7SUFBQztJQUFZO0lBQU07SUFBWTtJQUFTO0lBQVE7SUFBUztJQUFtQjtJQUFhO0lBQWU7SUFBaUI7SUFBVztJQUFZO0lBQWE7SUFBUztJQUFZO0NBQVcsRUFDMU1DLGFBQWE7SUFBQztJQUFZO0lBQWE7SUFBWTtJQUFpQjtJQUFlO0lBQWU7SUFBVztJQUF5QjtJQUF3QjtJQUFzQjtJQUFxQjtJQUFpQjtDQUFRO0FBQ3RPLElBQUlDLE9BQU8sV0FBVyxHQUFFLFNBQVVDLFVBQVUsRUFBRTtJQUM1QzNDLDhFQUFTQSxDQUFDMEMsTUFBTUM7SUFFaEIsSUFBSUMsU0FBUzFDLGlGQUFZQSxDQUFDd0M7SUFFMUIsU0FBU0EsT0FBTztRQUNkdEMsb0ZBQWVBLENBQUMsSUFBSSxFQUFFc0M7UUFFdEIsT0FBT0UsT0FBT0MsS0FBSyxDQUFDLElBQUksRUFBRUM7SUFDNUI7SUFFQXhDLGlGQUFZQSxDQUFDb0MsTUFBTTtRQUFDO1lBQ2xCSyxLQUFLO1lBQ0xDLE9BQU8sU0FBU0MsU0FBUztnQkFDdkIsSUFBSUMsU0FBUyxJQUFJLENBQUNDLE9BQU87Z0JBRXpCLElBQUlDLGNBQWMsSUFBSSxDQUFDQyxLQUFLLEVBQ3hCQyxXQUFXRixZQUFZRSxRQUFRLEVBQy9CQyxZQUFZSCxZQUFZRyxTQUFTLEVBQ2pDQyxRQUFR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QUM2TCx5QkFBeUIsZUFBZXpLLGlFQUFhQTtBQUU0QyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BjYXJib24vcmVhY3QvZXMvY29tcG9uZW50cy9UaWxlL1RpbGUuanM/MGNhNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxNiwgMjAyMlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZS0yLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQgeyBpbmhlcml0cyBhcyBfaW5oZXJpdHMsIGNyZWF0ZVN1cGVyIGFzIF9jcmVhdGVTdXBlciwgY2xhc3NDYWxsQ2hlY2sgYXMgX2NsYXNzQ2FsbENoZWNrLCBjcmVhdGVDbGFzcyBhcyBfY3JlYXRlQ2xhc3MsIG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGFzIF9vYmplY3RXaXRob3V0UHJvcGVydGllcywgZGVmaW5lUHJvcGVydHkgYXMgX2RlZmluZVByb3BlcnR5LCBleHRlbmRzIGFzIF9leHRlbmRzLCBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQgYXMgX2Fzc2VydFRoaXNJbml0aWFsaXplZCwgc2xpY2VkVG9BcnJheSBhcyBfc2xpY2VkVG9BcnJheSB9IGZyb20gJy4uLy4uL192aXJ0dWFsL19yb2xsdXBQbHVnaW5CYWJlbEhlbHBlcnMuanMnO1xuaW1wb3J0IFJlYWN0X19kZWZhdWx0LCB7IENvbXBvbmVudCwgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjeCBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBMaW5rIGZyb20gJy4uL0xpbmsvTGluay5qcyc7XG5pbXBvcnQgeyBDaGVja2JveENoZWNrZWRGaWxsZWQsIENoZWNrYm94LCBDaGV2cm9uRG93biB9IGZyb20gJ0BjYXJib24vaWNvbnMtcmVhY3QnO1xuaW1wb3J0IGRlcHJlY2F0ZSBmcm9tICcuLi8uLi9wcm9wLXR5cGVzL2RlcHJlY2F0ZS5qcyc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJy4uLy4uL3Rvb2xzL2V2ZW50cy5qcyc7XG5pbXBvcnQgeyBQcmVmaXhDb250ZXh0LCB1c2VQcmVmaXggfSBmcm9tICcuLi8uLi9pbnRlcm5hbC91c2VQcmVmaXguanMnO1xuaW1wb3J0IHsgbWF0Y2hlcyB9IGZyb20gJy4uLy4uL2ludGVybmFsL2tleWJvYXJkL21hdGNoLmpzJztcbmltcG9ydCB7IEVudGVyLCBTcGFjZSB9IGZyb20gJy4uLy4uL2ludGVybmFsL2tleWJvYXJkL2tleXMuanMnO1xuXG52YXIgX0NoZWNrYm94Q2hlY2tlZEZpbGxlLCBfQ2hlY2tib3gsIF9DaGV2cm9uRG93bjtcblxudmFyIF9leGNsdWRlZCA9IFtcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCIsIFwibGlnaHRcIl0sXG4gICAgX2V4Y2x1ZGVkMiA9IFtcImNoaWxkcmVuXCIsIFwiaHJlZlwiLCBcImNsYXNzTmFtZVwiLCBcImhhbmRsZUNsaWNrXCIsIFwiaGFuZGxlS2V5RG93blwiLCBcIm9uQ2xpY2tcIiwgXCJvbktleURvd25cIiwgXCJjbGlja2VkXCIsIFwibGlnaHRcIl0sXG4gICAgX2V4Y2x1ZGVkMyA9IFtcImNoaWxkcmVuXCIsIFwiaWRcIiwgXCJ0YWJJbmRleFwiLCBcInZhbHVlXCIsIFwibmFtZVwiLCBcInRpdGxlXCIsIFwiaWNvbkRlc2NyaXB0aW9uXCIsIFwiY2xhc3NOYW1lXCIsIFwiaGFuZGxlQ2xpY2tcIiwgXCJoYW5kbGVLZXlEb3duXCIsIFwib25DbGlja1wiLCBcIm9uQ2hhbmdlXCIsIFwib25LZXlEb3duXCIsIFwibGlnaHRcIiwgXCJkaXNhYmxlZFwiLCBcInNlbGVjdGVkXCJdLFxuICAgIF9leGNsdWRlZDQgPSBbXCJ0YWJJbmRleFwiLCBcImNsYXNzTmFtZVwiLCBcImV4cGFuZGVkXCIsIFwidGlsZU1heEhlaWdodFwiLCBcInRpbGVQYWRkaW5nXCIsIFwiaGFuZGxlQ2xpY2tcIiwgXCJvbktleVVwXCIsIFwidGlsZUNvbGxhcHNlZEljb25UZXh0XCIsIFwidGlsZUV4cGFuZGVkSWNvblRleHRcIiwgXCJ0aWxlQ29sbGFwc2VkTGFiZWxcIiwgXCJ0aWxlRXhwYW5kZWRMYWJlbFwiLCBcIm9uQmVmb3JlQ2xpY2tcIiwgXCJsaWdodFwiXTtcbnZhciBUaWxlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhUaWxlLCBfQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFRpbGUpO1xuXG4gIGZ1bmN0aW9uIFRpbGUoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRpbGUpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRpbGUsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgcHJlZml4ID0gdGhpcy5jb250ZXh0O1xuXG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIGxpZ2h0ID0gX3RoaXMkcHJvcHMubGlnaHQsXG4gICAgICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfdGhpcyRwcm9wcywgX2V4Y2x1ZGVkKTtcblxuICAgICAgdmFyIHRpbGVDbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZVwiKSwgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1saWdodFwiKSwgbGlnaHQpLCBjbGFzc05hbWUpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9leHRlbmRzKHtcbiAgICAgICAgY2xhc3NOYW1lOiB0aWxlQ2xhc3Nlc1xuICAgICAgfSwgcmVzdCksIGNoaWxkcmVuKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gVGlsZTtcbn0oQ29tcG9uZW50KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGUsIFwicHJvcFR5cGVzXCIsIHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBuYW1lcy5cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogYHRydWVgIHRvIHVzZSB0aGUgbGlnaHQgdmVyc2lvbi4gRm9yIHVzZSBvbiAkdWktMDEgYmFja2dyb3VuZHMgb25seS5cbiAgICogRG9uJ3QgdXNlIHRoaXMgdG8gbWFrZSB0aWxlIGJhY2tncm91bmQgY29sb3Igc2FtZSBhcyBjb250YWluZXIgYmFja2dyb3VuZCBjb2xvci5cbiAgICovXG4gIGxpZ2h0OiBQcm9wVHlwZXMuYm9vbFxufSk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlLCBcImNvbnRleHRUeXBlXCIsIFByZWZpeENvbnRleHQpO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZSwgXCJkZWZhdWx0UHJvcHNcIiwge1xuICBsaWdodDogZmFsc2Vcbn0pO1xuXG52YXIgQ2xpY2thYmxlVGlsZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudDIpIHtcbiAgX2luaGVyaXRzKENsaWNrYWJsZVRpbGUsIF9Db21wb25lbnQyKTtcblxuICB2YXIgX3N1cGVyMiA9IF9jcmVhdGVTdXBlcihDbGlja2FibGVUaWxlKTtcblxuICBmdW5jdGlvbiBDbGlja2FibGVUaWxlKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDbGlja2FibGVUaWxlKTtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBfdGhpcyA9IF9zdXBlcjIuY2FsbC5hcHBseShfc3VwZXIyLCBbdGhpc10uY29uY2F0KGFyZ3MpKTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzdGF0ZVwiLCB7fSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiaGFuZGxlQ2xpY2tcIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgZXZ0LnBlcnNpc3QoKTtcblxuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBjbGlja2VkOiAhX3RoaXMuc3RhdGUuY2xpY2tlZFxuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMkcHJvcHMkaGFuZGxlQ2xpLCBfdGhpcyRwcm9wczIsIF90aGlzJHByb3BzJG9uQ2xpY2ssIF90aGlzJHByb3BzMztcblxuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgaGFuZGxlQ2xpY2sgcHJvcCB3aGVuIGhhbmRsZUNsaWNrIGlzIGRlcHJlY2F0ZWRcbiAgICAgICAgKChfdGhpcyRwcm9wcyRoYW5kbGVDbGkgPSAoX3RoaXMkcHJvcHMyID0gX3RoaXMucHJvcHMpLmhhbmRsZUNsaWNrKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRoYW5kbGVDbGkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJGhhbmRsZUNsaS5jYWxsKF90aGlzJHByb3BzMiwgZXZ0KSkgfHwgKChfdGhpcyRwcm9wcyRvbkNsaWNrID0gKF90aGlzJHByb3BzMyA9IF90aGlzLnByb3BzKS5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRvbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyRwcm9wcyRvbkNsaWNrLmNhbGwoX3RoaXMkcHJvcHMzLCBldnQpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImhhbmRsZUtleURvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgZXZ0LnBlcnNpc3QoKTtcblxuICAgICAgaWYgKG1hdGNoZXMoZXZ0LCBbRW50ZXIsIFNwYWNlXSkpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGNsaWNrZWQ6ICFfdGhpcy5zdGF0ZS5jbGlja2VkXG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgX3RoaXMkcHJvcHMkaGFuZGxlS2V5LCBfdGhpcyRwcm9wczQ7XG5cbiAgICAgICAgICAvLyBUT0RPOiBSZW1vdmUgaGFuZGxlS2V5RG93biBwcm9wIHdoZW4gaGFuZGxlS2V5RG93biBpcyBkZXByZWNhdGVkXG4gICAgICAgICAgKChfdGhpcyRwcm9wcyRoYW5kbGVLZXkgPSAoX3RoaXMkcHJvcHM0ID0gX3RoaXMucHJvcHMpLmhhbmRsZUtleURvd24pID09PSBudWxsIHx8IF90aGlzJHByb3BzJGhhbmRsZUtleSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkcHJvcHMkaGFuZGxlS2V5LmNhbGwoX3RoaXMkcHJvcHM0LCBldnQpKSB8fCBfdGhpcy5wcm9wcy5vbktleURvd24oZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgX3RoaXMkcHJvcHMkaGFuZGxlS2V5MiwgX3RoaXMkcHJvcHM1O1xuXG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBoYW5kbGVLZXlEb3duIHByb3Agd2hlbiBoYW5kbGVLZXlEb3duIGlzIGRlcHJlY2F0ZWRcbiAgICAgICAgKChfdGhpcyRwcm9wcyRoYW5kbGVLZXkyID0gKF90aGlzJHByb3BzNSA9IF90aGlzLnByb3BzKS5oYW5kbGVLZXlEb3duKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRoYW5kbGVLZXkyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyRwcm9wcyRoYW5kbGVLZXkyLmNhbGwoX3RoaXMkcHJvcHM1LCBldnQpKSB8fCBfdGhpcy5wcm9wcy5vbktleURvd24oZXZ0KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDbGlja2FibGVUaWxlLCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF9jeDI7XG5cbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wczYgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHM2LmNoaWxkcmVuLFxuICAgICAgICAgIGhyZWYgPSBfdGhpcyRwcm9wczYuaHJlZixcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczYuY2xhc3NOYW1lO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5oYW5kbGVDbGljaztcbiAgICAgICAgICBfdGhpcyRwcm9wczYuaGFuZGxlS2V5RG93bjtcbiAgICAgICAgICBfdGhpcyRwcm9wczYub25DbGljaztcbiAgICAgICAgICBfdGhpcyRwcm9wczYub25LZXlEb3duO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5jbGlja2VkO1xuICAgICAgICAgIHZhciBsaWdodCA9IF90aGlzJHByb3BzNi5saWdodCxcbiAgICAgICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzJHByb3BzNiwgX2V4Y2x1ZGVkMik7XG5cbiAgICAgIHZhciBjbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZVwiKSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tY2xpY2thYmxlXCIpLCAoX2N4MiA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2N4MiwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0taXMtY2xpY2tlZFwiKSwgdGhpcy5zdGF0ZS5jbGlja2VkKSwgX2RlZmluZVByb3BlcnR5KF9jeDIsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWxpZ2h0XCIpLCBsaWdodCksIF9jeDIpLCBjbGFzc05hbWUpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KExpbmssIF9leHRlbmRzKHtcbiAgICAgICAgaHJlZjogaHJlZixcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzXG4gICAgICB9LCByZXN0LCB7XG4gICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQ2xpY2ssXG4gICAgICAgIG9uS2V5RG93bjogdGhpcy5oYW5kbGVLZXlEb3duXG4gICAgICB9KSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfV0sIFt7XG4gICAga2V5OiBcImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1wiLFxuICAgIHZhbHVlOiAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvcHJvcC10eXBlc1xuICAgIGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhfcmVmLCBzdGF0ZSkge1xuICAgICAgdmFyIGNsaWNrZWQgPSBfcmVmLmNsaWNrZWQ7XG4gICAgICB2YXIgcHJldkNsaWNrZWQgPSBzdGF0ZS5wcmV2Q2xpY2tlZDtcbiAgICAgIHJldHVybiBwcmV2Q2xpY2tlZCA9PT0gY2xpY2tlZCA/IG51bGwgOiB7XG4gICAgICAgIGNsaWNrZWQ6IGNsaWNrZWQsXG4gICAgICAgIHByZXZDbGlja2VkOiBjbGlja2VkXG4gICAgICB9O1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDbGlja2FibGVUaWxlO1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoQ2xpY2thYmxlVGlsZSwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIG5hbWVzLlxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBEZXByZWNhdGVkIGluIHYxMS4gVXNlICdvbkNsaWNrJyBpbnN0ZWFkLlxuICAgKi9cbiAgaGFuZGxlQ2xpY2s6IGRlcHJlY2F0ZShQcm9wVHlwZXMuZnVuYywgJ1RoZSBoYW5kbGVDbGljayBwcm9wIGZvciBDbGlja2FibGVUaWxlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Ygb25DbGljay4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBDbGlja2FibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgaGFuZGxlS2V5RG93bjogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGhhbmRsZUtleURvd24gcHJvcCBmb3IgQ2xpY2thYmxlVGlsZSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIG9uS2V5RG93bi4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIFRoZSBocmVmIGZvciB0aGUgbGluay5cbiAgICovXG4gIGhyZWY6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byB1c2UgdGhlIGxpZ2h0IHZlcnNpb24uIEZvciB1c2Ugb24gJHVpLTAxIGJhY2tncm91bmRzIG9ubHkuXG4gICAqIERvbid0IHVzZSB0aGlzIHRvIG1ha2UgdGlsZSBiYWNrZ3JvdW5kIGNvbG9yIHNhbWUgYXMgY29udGFpbmVyIGJhY2tncm91bmQgY29sb3IuXG4gICAqL1xuICBsaWdodDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBDbGlja2FibGVUaWxlIGlzIGNsaWNrZWRcbiAgICovXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgQ2xpY2thYmxlVGlsZSBpcyBpbnRlcmFjdGVkIHdpdGggdmlhIGEga2V5Ym9hcmRcbiAgICovXG4gIG9uS2V5RG93bjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFRoZSByZWwgcHJvcGVydHkgZm9yIHRoZSBsaW5rLlxuICAgKi9cbiAgcmVsOiBQcm9wVHlwZXMuc3RyaW5nXG59KTtcblxuX2RlZmluZVByb3BlcnR5KENsaWNrYWJsZVRpbGUsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShDbGlja2FibGVUaWxlLCBcImRlZmF1bHRQcm9wc1wiLCB7XG4gIGNsaWNrZWQ6IGZhbHNlLFxuICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKCkge30sXG4gIG9uS2V5RG93bjogZnVuY3Rpb24gb25LZXlEb3duKCkge30sXG4gIGxpZ2h0OiBmYWxzZVxufSk7XG5cbmZ1bmN0aW9uIFNlbGVjdGFibGVUaWxlKHByb3BzKSB7XG4gIHZhciBfY3gzO1xuXG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgaWQgPSBwcm9wcy5pZCxcbiAgICAgIHRhYkluZGV4ID0gcHJvcHMudGFiSW5kZXgsXG4gICAgICB2YWx1ZSA9IHByb3BzLnZhbHVlLFxuICAgICAgbmFtZSA9IHByb3BzLm5hbWUsXG4gICAgICB0aXRsZSA9IHByb3BzLnRpdGxlO1xuICAgICAgcHJvcHMuaWNvbkRlc2NyaXB0aW9uO1xuICAgICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgIGhhbmRsZUNsaWNrID0gcHJvcHMuaGFuZGxlQ2xpY2ssXG4gICAgICBoYW5kbGVLZXlEb3duID0gcHJvcHMuaGFuZGxlS2V5RG93bixcbiAgICAgIG9uQ2xpY2sgPSBwcm9wcy5vbkNsaWNrLFxuICAgICAgb25DaGFuZ2UgPSBwcm9wcy5vbkNoYW5nZSxcbiAgICAgIG9uS2V5RG93biA9IHByb3BzLm9uS2V5RG93bixcbiAgICAgIGxpZ2h0ID0gcHJvcHMubGlnaHQsXG4gICAgICBkaXNhYmxlZCA9IHByb3BzLmRpc2FibGVkLFxuICAgICAgc2VsZWN0ZWQgPSBwcm9wcy5zZWxlY3RlZCxcbiAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsIF9leGNsdWRlZDMpO1xuXG4gIHZhciBwcmVmaXggPSB1c2VQcmVmaXgoKTsgLy8gVE9ETzogcmVwbGFjZSB3aXRoIG9uQ2xpY2sgd2hlbiBoYW5kbGVDbGljayBwcm9wIGlzIGRlcHJlY2F0ZWRcblxuICB2YXIgY2xpY2tIYW5kbGVyID0gaGFuZGxlQ2xpY2sgfHwgb25DbGljazsgLy8gVE9ETzogcmVwbGFjZSB3aXRoIG9uS2V5RG93biB3aGVuIGhhbmRsZUtleURvd24gcHJvcCBpcyBkZXByZWNhdGVkXG5cbiAgdmFyIGtleURvd25IYW5kbGVyID0gaGFuZGxlS2V5RG93biB8fCBvbktleURvd247XG5cbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKHNlbGVjdGVkKSxcbiAgICAgIF91c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUsIDIpLFxuICAgICAgaXNTZWxlY3RlZCA9IF91c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRJc1NlbGVjdGVkID0gX3VzZVN0YXRlMlsxXTtcblxuICB2YXIgaW5wdXQgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBjbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZVwiKSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tc2VsZWN0YWJsZVwiKSwgKF9jeDMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jeDMsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWlzLXNlbGVjdGVkXCIpLCBpc1NlbGVjdGVkKSwgX2RlZmluZVByb3BlcnR5KF9jeDMsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWxpZ2h0XCIpLCBsaWdodCksIF9kZWZpbmVQcm9wZXJ0eShfY3gzLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1kaXNhYmxlZFwiKSwgZGlzYWJsZWQpLCBfY3gzKSwgY2xhc3NOYW1lKTtcbiAgdmFyIGlucHV0Q2xhc3NlcyA9IGN4KFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtaW5wdXRcIiksIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1pbnB1dC0tY2hlY2tlZFwiKSwgaXNTZWxlY3RlZCkpOyAvLyBUT0RPOiByZW5hbWUgdG8gaGFuZGxlQ2xpY2sgd2hlbiBoYW5kbGVDbGljayBwcm9wIGlzIGRlcHJlY2F0ZWRcblxuICBmdW5jdGlvbiBoYW5kbGVPbkNsaWNrKGV2dCkge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5wZXJzaXN0KCk7XG4gICAgc2V0SXNTZWxlY3RlZCghaXNTZWxlY3RlZCk7XG4gICAgY2xpY2tIYW5kbGVyKGV2dCk7XG4gICAgb25DaGFuZ2UoZXZ0KTtcbiAgfSAvLyBUT0RPOiByZW5hbWUgdG8gaGFuZGxlS2V5RG93biB3aGVuIGhhbmRsZUtleURvd24gcHJvcCBpcyBkZXByZWNhdGVkXG5cblxuICBmdW5jdGlvbiBoYW5kbGVPbktleURvd24oZXZ0KSB7XG4gICAgZXZ0LnBlcnNpc3QoKTtcblxuICAgIGlmIChtYXRjaGVzKGV2dCwgW0VudGVyLCBTcGFjZV0pKSB7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldElzU2VsZWN0ZWQoIWlzU2VsZWN0ZWQpO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9XG5cbiAgICBrZXlEb3duSGFuZGxlcihldnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgc2V0SXNTZWxlY3RlZChldmVudC50YXJnZXQuY2hlY2tlZCk7XG4gICAgb25DaGFuZ2UoZXZlbnQpO1xuICB9XG5cbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBzZXRJc1NlbGVjdGVkKHNlbGVjdGVkKTtcbiAgfSwgW3NlbGVjdGVkXSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChSZWFjdF9fZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7XG4gICAgcmVmOiBpbnB1dCxcbiAgICB0YWJJbmRleDogLTEsXG4gICAgaWQ6IGlkLFxuICAgIGNsYXNzTmFtZTogaW5wdXRDbGFzc2VzLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBvbkNoYW5nZTogIWRpc2FibGVkID8gaGFuZGxlQ2hhbmdlIDogbnVsbCxcbiAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgdGl0bGU6IHRpdGxlLFxuICAgIGNoZWNrZWQ6IGlzU2VsZWN0ZWRcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwgX2V4dGVuZHMoe1xuICAgIGh0bWxGb3I6IGlkLFxuICAgIGNsYXNzTmFtZTogY2xhc3NlcyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvbm8tbm9uaW50ZXJhY3RpdmUtdGFiaW5kZXhcbiAgICAsXG4gICAgdGFiSW5kZXg6ICFkaXNhYmxlZCA/IHRhYkluZGV4IDogbnVsbFxuICB9LCByZXN0LCB7XG4gICAgb25DbGljazogIWRpc2FibGVkID8gaGFuZGxlT25DbGljayA6IG51bGwsXG4gICAgb25LZXlEb3duOiAhZGlzYWJsZWQgPyBoYW5kbGVPbktleURvd24gOiBudWxsXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZV9fY2hlY2ttYXJrIFwiKS5jb25jYXQocHJlZml4LCBcIi0tdGlsZV9fY2hlY2ttYXJrLS1wZXJzaXN0ZW50XCIpXG4gIH0sIGlzU2VsZWN0ZWQgPyBfQ2hlY2tib3hDaGVja2VkRmlsbGUgfHwgKF9DaGVja2JveENoZWNrZWRGaWxsZSA9IC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KENoZWNrYm94Q2hlY2tlZEZpbGxlZCwgbnVsbCkpIDogX0NoZWNrYm94IHx8IChfQ2hlY2tib3ggPSAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChDaGVja2JveCwgbnVsbCkpKSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtY29udGVudFwiKVxuICB9LCBjaGlsZHJlbikpKTtcbn1cblNlbGVjdGFibGVUaWxlLmRlZmF1bHRQcm9wcyA9IHtcbiAgdmFsdWU6ICd2YWx1ZScsXG4gIHRpdGxlOiAndGl0bGUnLFxuICBzZWxlY3RlZDogZmFsc2UsXG4gIHRhYkluZGV4OiAwLFxuICBsaWdodDogZmFsc2UsXG4gIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7fSxcbiAgb25DaGFuZ2U6IGZ1bmN0aW9uIG9uQ2hhbmdlKCkge30sXG4gIG9uS2V5RG93bjogZnVuY3Rpb24gb25LZXlEb3duKCkge31cbn07XG5TZWxlY3RhYmxlVGlsZS5wcm9wVHlwZXMgPSB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgbmFtZXMuXG4gICAqL1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hldGhlciB0aGUgU2VsZWN0YWJsZVRpbGUgc2hvdWxkIGJlIGRpc2FibGVkXG4gICAqL1xuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBTZWxlY3RhYmxlVGlsZSBpcyBjbGlja2VkXG4gICAqL1xuICBoYW5kbGVDbGljazogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGBoYW5kbGVDbGlja2AgcHJvcCBmb3IgYFNlbGVjdGFibGVUaWxlYCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGBvbkNsaWNrYC4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBTZWxlY3RhYmxlVGlsZSBpcyBpbnRlcmFjdGVkIHdpdGggdmlhIGEga2V5Ym9hcmRcbiAgICovXG4gIGhhbmRsZUtleURvd246IGRlcHJlY2F0ZShQcm9wVHlwZXMuZnVuYywgJ1RoZSBgaGFuZGxlS2V5RG93bmAgcHJvcCBmb3IgYFNlbGVjdGFibGVUaWxlYCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGBvbktleURvd25gLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBjaGVja21hcmsgaWNvbi5cbiAgICovXG4gIGljb25EZXNjcmlwdGlvbjogZGVwcmVjYXRlKFByb3BUeXBlcy5zdHJpbmcsICdUaGUgYGljb25EZXNjcmlwdGlvbmAgcHJvcCBmb3IgYFNlbGVjdGFibGVUaWxlYCBpcyBubyBsb25nZXIgbmVlZGVkIGFuZCBoYXMgJyArICdiZWVuIGRlcHJlY2F0ZWQuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLicpLFxuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgdG8gdXNlIHRoZSBsaWdodCB2ZXJzaW9uLiBGb3IgdXNlIG9uICR1aS0wMSBiYWNrZ3JvdW5kcyBvbmx5LlxuICAgKiBEb24ndCB1c2UgdGhpcyB0byBtYWtlIHRpbGUgYmFja2dyb3VuZCBjb2xvciBzYW1lIGFzIGNvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgKi9cbiAgbGlnaHQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBUaGUgYG5hbWVgIG9mIHRoZSBgPGlucHV0PmAuXG4gICAqL1xuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgZW1wdHkgaGFuZGxlciBvZiB0aGUgYDxpbnB1dD5gLlxuICAgKi9cbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgU2VsZWN0YWJsZVRpbGUgaXMgY2xpY2tlZFxuICAgKi9cbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBTZWxlY3RhYmxlVGlsZSBpcyBpbnRlcmFjdGVkIHdpdGggdmlhIGEga2V5Ym9hcmRcbiAgICovXG4gIG9uS2V5RG93bjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byBzZWxlY3QgdGhpcyB0aWxlLlxuICAgKi9cbiAgc2VsZWN0ZWQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSB0YWIgaW5kZXggb2YgdGhlIHdyYXBwZXIgZWxlbWVudFxuICAgKi9cbiAgdGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cbiAgLyoqXG4gICAqIFRoZSBgdGl0bGVgIG9mIHRoZSBgPGlucHV0PmAuXG4gICAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBgPGlucHV0PmAuXG4gICAqL1xuICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLmlzUmVxdWlyZWRcbn07XG52YXIgRXhwYW5kYWJsZVRpbGUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQzKSB7XG4gIF9pbmhlcml0cyhFeHBhbmRhYmxlVGlsZSwgX0NvbXBvbmVudDMpO1xuXG4gIHZhciBfc3VwZXIzID0gX2NyZWF0ZVN1cGVyKEV4cGFuZGFibGVUaWxlKTtcblxuICBmdW5jdGlvbiBFeHBhbmRhYmxlVGlsZSgpIHtcbiAgICB2YXIgX3RoaXMyO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEV4cGFuZGFibGVUaWxlKTtcblxuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cblxuICAgIF90aGlzMiA9IF9zdXBlcjMuY2FsbC5hcHBseShfc3VwZXIzLCBbdGhpc10uY29uY2F0KGFyZ3MpKTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwic3RhdGVcIiwge30pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJyZXNpemVPYnNlcnZlclwiLCBudWxsKTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwiY29tcG9uZW50RGlkTW91bnRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMyLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGZ1bmN0aW9uIChlbnRyaWVzKSB7XG4gICAgICAgIHZhciBfZW50cmllcyA9IF9zbGljZWRUb0FycmF5KGVudHJpZXMsIDEpLFxuICAgICAgICAgICAgYWJvdmVUaGVGb2xkID0gX2VudHJpZXNbMF07XG5cbiAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICB0aWxlTWF4SGVpZ2h0OiBhYm92ZVRoZUZvbGQuY29udGVudFJlY3QuaGVpZ2h0XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChfdGhpczIudGlsZSkge1xuICAgICAgICB2YXIgZ2V0U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShfdGhpczIudGlsZSwgbnVsbCk7XG5cbiAgICAgICAgaWYgKF90aGlzMi5hYm92ZVRoZUZvbGQpIHtcbiAgICAgICAgICBfdGhpczIucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShfdGhpczIuYWJvdmVUaGVGb2xkKTtcblxuICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICB0aWxlTWF4SGVpZ2h0OiBfdGhpczIuYWJvdmVUaGVGb2xkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCxcbiAgICAgICAgICAgIHRpbGVQYWRkaW5nOiBwYXJzZUludChnZXRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLXRvcCcpLCAxMCkgKyBwYXJzZUludChnZXRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpLCAxMClcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJjb21wb25lbnREaWRVcGRhdGVcIiwgZnVuY3Rpb24gKHByZXZQcm9wcykge1xuICAgICAgaWYgKHByZXZQcm9wcy5leHBhbmRlZCAhPT0gX3RoaXMyLnByb3BzLmV4cGFuZGVkKSB7XG4gICAgICAgIF90aGlzMi5zZXRNYXhIZWlnaHQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwic2V0TWF4SGVpZ2h0XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChfdGhpczIuc3RhdGUuZXhwYW5kZWQgPyBfdGhpczIudGlsZUNvbnRlbnQgOiBfdGhpczIuYWJvdmVUaGVGb2xkKSB7XG4gICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgdGlsZU1heEhlaWdodDogX3RoaXMyLnN0YXRlLmV4cGFuZGVkID8gX3RoaXMyLnRpbGVDb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCA6IF90aGlzMi5hYm92ZVRoZUZvbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJoYW5kbGVDbGlja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBpZiAoIV90aGlzMi5wcm9wcy5vbkJlZm9yZUNsaWNrKGV2dCkgfHwgZXZ0LnRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZXZ0LnBlcnNpc3QoKTtcblxuICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgZXhwYW5kZWQ6ICFfdGhpczIuc3RhdGUuZXhwYW5kZWRcbiAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzMiRwcm9wcyRoYW5kbGVDbCwgX3RoaXMyJHByb3BzLCBfdGhpczIkcHJvcHMkb25DbGljaywgX3RoaXMyJHByb3BzMjtcblxuICAgICAgICBfdGhpczIuc2V0TWF4SGVpZ2h0KCk7IC8vIFRPRE86IFJlbW92ZSBoYW5kbGVDbGljayBwcm9wIHdoZW4gaGFuZGxlQ2xpY2sgaXMgZGVwcmVjYXRlZFxuXG5cbiAgICAgICAgKChfdGhpczIkcHJvcHMkaGFuZGxlQ2wgPSAoX3RoaXMyJHByb3BzID0gX3RoaXMyLnByb3BzKS5oYW5kbGVDbGljaykgPT09IG51bGwgfHwgX3RoaXMyJHByb3BzJGhhbmRsZUNsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpczIkcHJvcHMkaGFuZGxlQ2wuY2FsbChfdGhpczIkcHJvcHMsIGV2dCkpIHx8ICgoX3RoaXMyJHByb3BzJG9uQ2xpY2sgPSAoX3RoaXMyJHByb3BzMiA9IF90aGlzMi5wcm9wcykub25DbGljaykgPT09IG51bGwgfHwgX3RoaXMyJHByb3BzJG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzMiRwcm9wcyRvbkNsaWNrLmNhbGwoX3RoaXMyJHByb3BzMiwgZXZ0KSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwiaGFuZGxlS2V5VXBcIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgaWYgKGV2dC50YXJnZXQgIT09IF90aGlzMi50aWxlKSB7XG4gICAgICAgIGlmIChtYXRjaGVzKGV2dCwgW0VudGVyLCBTcGFjZV0pKSB7XG4gICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwiZ2V0Q2hpbGRyZW5cIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIFJlYWN0X19kZWZhdWx0LkNoaWxkcmVuLnRvQXJyYXkoX3RoaXMyLnByb3BzLmNoaWxkcmVuKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBfdGhpczI7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoRXhwYW5kYWJsZVRpbGUsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2N4NSxcbiAgICAgICAgICBfdGhpczMgPSB0aGlzO1xuXG4gICAgICB2YXIgX3RoaXMkcHJvcHM3ID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICB0YWJJbmRleCA9IF90aGlzJHByb3BzNy50YWJJbmRleCxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczcuY2xhc3NOYW1lO1xuICAgICAgICAgIF90aGlzJHByb3BzNy5leHBhbmRlZDtcbiAgICAgICAgICBfdGhpcyRwcm9wczcudGlsZU1heEhlaWdodDtcbiAgICAgICAgICBfdGhpcyRwcm9wczcudGlsZVBhZGRpbmc7XG4gICAgICAgICAgX3RoaXMkcHJvcHM3LmhhbmRsZUNsaWNrO1xuICAgICAgICAgIHZhciBvbktleVVwID0gX3RoaXMkcHJvcHM3Lm9uS2V5VXAsXG4gICAgICAgICAgdGlsZUNvbGxhcHNlZEljb25UZXh0ID0gX3RoaXMkcHJvcHM3LnRpbGVDb2xsYXBzZWRJY29uVGV4dCxcbiAgICAgICAgICB0aWxlRXhwYW5kZWRJY29uVGV4dCA9IF90aGlzJHByb3BzNy50aWxlRXhwYW5kZWRJY29uVGV4dCxcbiAgICAgICAgICB0aWxlQ29sbGFwc2VkTGFiZWwgPSBfdGhpcyRwcm9wczcudGlsZUNvbGxhcHNlZExhYmVsLFxuICAgICAgICAgIHRpbGVFeHBhbmRlZExhYmVsID0gX3RoaXMkcHJvcHM3LnRpbGVFeHBhbmRlZExhYmVsO1xuICAgICAgICAgIF90aGlzJHByb3BzNy5vbkJlZm9yZUNsaWNrO1xuICAgICAgICAgIHZhciBsaWdodCA9IF90aGlzJHByb3BzNy5saWdodCxcbiAgICAgICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzJHByb3BzNywgX2V4Y2x1ZGVkNCk7XG5cbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG4gICAgICB2YXIgaXNFeHBhbmRlZCA9IHRoaXMuc3RhdGUuZXhwYW5kZWQ7XG4gICAgICB2YXIgY2xhc3NlcyA9IGN4KFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGVcIiksIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWV4cGFuZGFibGVcIiksIChfY3g1ID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY3g1LCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1pcy1leHBhbmRlZFwiKSwgaXNFeHBhbmRlZCksIF9kZWZpbmVQcm9wZXJ0eShfY3g1LCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1saWdodFwiKSwgbGlnaHQpLCBfY3g1KSwgY2xhc3NOYW1lKTtcbiAgICAgIHZhciB0aWxlU3R5bGUgPSB7XG4gICAgICAgIG1heEhlaWdodDogaXNFeHBhbmRlZCA/IG51bGwgOiB0aGlzLnN0YXRlLnRpbGVNYXhIZWlnaHQgKyB0aGlzLnN0YXRlLnRpbGVQYWRkaW5nXG4gICAgICB9O1xuICAgICAgdmFyIGNoaWxkcmVuQXNBcnJheSA9IHRoaXMuZ2V0Q2hpbGRyZW4oKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIC8qI19fUFVSRV9fKi9cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMsanN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zXG4gICAgICAgIFJlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwgX2V4dGVuZHMoe1xuICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgcmVmOiBmdW5jdGlvbiByZWYodGlsZSkge1xuICAgICAgICAgICAgX3RoaXMzLnRpbGUgPSB0aWxlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc3R5bGU6IHRpbGVTdHlsZSxcbiAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMsXG4gICAgICAgICAgXCJhcmlhLWV4cGFuZGVkXCI6IGlzRXhwYW5kZWQsXG4gICAgICAgICAgdGl0bGU6IGlzRXhwYW5kZWQgPyB0aWxlRXhwYW5kZWRJY29uVGV4dCA6IHRpbGVDb2xsYXBzZWRJY29uVGV4dFxuICAgICAgICB9LCByZXN0LCB7XG4gICAgICAgICAgb25LZXlVcDogY29tcG9zZUV2ZW50SGFuZGxlcnMoW29uS2V5VXAsIHRoaXMuaGFuZGxlS2V5VXBdKSxcbiAgICAgICAgICBvbkNsaWNrOiB0aGlzLmhhbmRsZUNsaWNrLFxuICAgICAgICAgIHRhYkluZGV4OiB0YWJJbmRleFxuICAgICAgICB9KSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKHRpbGVDb250ZW50KSB7XG4gICAgICAgICAgICBfdGhpczMudGlsZUNvbnRlbnQgPSB0aWxlQ29udGVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICByZWY6IGZ1bmN0aW9uIHJlZihhYm92ZVRoZUZvbGQpIHtcbiAgICAgICAgICAgIF90aGlzMy5hYm92ZVRoZUZvbGQgPSBhYm92ZVRoZUZvbGQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtY29udGVudFwiKVxuICAgICAgICB9LCBjaGlsZHJlbkFzQXJyYXlbMF0pLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlX19jaGV2cm9uXCIpXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCBpc0V4cGFuZGVkID8gdGlsZUV4cGFuZGVkTGFiZWwgOiB0aWxlQ29sbGFwc2VkTGFiZWwpLCBfQ2hldnJvbkRvd24gfHwgKF9DaGV2cm9uRG93biA9IC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KENoZXZyb25Eb3duLCBudWxsKSkpLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWNvbnRlbnRcIilcbiAgICAgICAgfSwgY2hpbGRyZW5Bc0FycmF5WzFdKSkpXG4gICAgICApO1xuICAgIH1cbiAgfV0sIFt7XG4gICAga2V5OiBcImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9wcm9wLXR5cGVzXG4gICAgX3JlZjIsIHN0YXRlKSB7XG4gICAgICB2YXIgZXhwYW5kZWQgPSBfcmVmMi5leHBhbmRlZCxcbiAgICAgICAgICB0aWxlTWF4SGVpZ2h0ID0gX3JlZjIudGlsZU1heEhlaWdodCxcbiAgICAgICAgICB0aWxlUGFkZGluZyA9IF9yZWYyLnRpbGVQYWRkaW5nO1xuICAgICAgdmFyIHByZXZFeHBhbmRlZCA9IHN0YXRlLnByZXZFeHBhbmRlZCxcbiAgICAgICAgICBwcmV2VGlsZU1heEhlaWdodCA9IHN0YXRlLnByZXZUaWxlTWF4SGVpZ2h0LFxuICAgICAgICAgIHByZXZUaWxlUGFkZGluZyA9IHN0YXRlLnByZXZUaWxlUGFkZGluZyxcbiAgICAgICAgICBjdXJyZW50RXhwYW5kZWQgPSBzdGF0ZS5leHBhbmRlZCxcbiAgICAgICAgICBjdXJyZW50VGlsZU1heEhlaWdodCA9IHN0YXRlLnRpbGVNYXhIZWlnaHQsXG4gICAgICAgICAgY3VycmVudFRpbGVQYWRkaW5nID0gc3RhdGUudGlsZVBhZGRpbmc7XG4gICAgICB2YXIgZXhwYW5kZWRDaGFuZ2VkID0gcHJldkV4cGFuZGVkICE9PSBleHBhbmRlZDtcbiAgICAgIHZhciB0aWxlTWF4SGVpZ2h0Q2hhbmdlZCA9IHByZXZUaWxlTWF4SGVpZ2h0ICE9PSB0aWxlTWF4SGVpZ2h0O1xuICAgICAgdmFyIHRpbGVQYWRkaW5nQ2hhbmdlZCA9IHByZXZUaWxlUGFkZGluZyAhPT0gdGlsZVBhZGRpbmc7XG4gICAgICByZXR1cm4gIWV4cGFuZGVkQ2hhbmdlZCAmJiAhdGlsZU1heEhlaWdodENoYW5nZWQgJiYgIXRpbGVQYWRkaW5nQ2hhbmdlZCA/IG51bGwgOiB7XG4gICAgICAgIGV4cGFuZGVkOiAhZXhwYW5kZWRDaGFuZ2VkID8gY3VycmVudEV4cGFuZGVkIDogZXhwYW5kZWQsXG4gICAgICAgIHRpbGVNYXhIZWlnaHQ6ICF0aWxlTWF4SGVpZ2h0Q2hhbmdlZCA/IGN1cnJlbnRUaWxlTWF4SGVpZ2h0IDogdGlsZU1heEhlaWdodCxcbiAgICAgICAgdGlsZVBhZGRpbmc6ICF0aWxlUGFkZGluZ0NoYW5nZWQgPyBjdXJyZW50VGlsZVBhZGRpbmcgOiB0aWxlUGFkZGluZyxcbiAgICAgICAgcHJldkV4cGFuZGVkOiBleHBhbmRlZCxcbiAgICAgICAgcHJldlRpbGVNYXhIZWlnaHQ6IHRpbGVNYXhIZWlnaHQsXG4gICAgICAgIHByZXZUaWxlUGFkZGluZzogdGlsZVBhZGRpbmdcbiAgICAgIH07XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEV4cGFuZGFibGVUaWxlO1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoRXhwYW5kYWJsZVRpbGUsIFwicHJvcFR5cGVzXCIsIHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBuYW1lcy5cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogYHRydWVgIGlmIHRoZSB0aWxlIGlzIGV4cGFuZGVkLlxuICAgKi9cbiAgZXhwYW5kZWQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBEZXByZWNhdGVkIGluIHYxMS4gVXNlICdvbkNsaWNrJyBpbnN0ZWFkLlxuICAgKi9cbiAgaGFuZGxlQ2xpY2s6IGRlcHJlY2F0ZShQcm9wVHlwZXMuZnVuYywgJ1RoZSBoYW5kbGVDbGljayBwcm9wIGZvciBFeHBhbmRhYmxlVGlsZSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIG9uQ2xpY2suIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLicpLFxuXG4gIC8qKlxuICAgKiBBbiBJRCB0aGF0IGNhbiBiZSBwcm92aWRlZCB0byBhcmlhLWxhYmVsbGVkYnlcbiAgICovXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgdG8gdXNlIHRoZSBsaWdodCB2ZXJzaW9uLiBGb3IgdXNlIG9uICR1aS0wMSBiYWNrZ3JvdW5kcyBvbmx5LlxuICAgKiBEb24ndCB1c2UgdGhpcyB0byBtYWtlIHRpbGUgYmFja2dyb3VuZCBjb2xvciBzYW1lIGFzIGNvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgKi9cbiAgbGlnaHQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBvcHRpb25hbCBoYW5kbGVyIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGlnbm9yZSBhIGNsaWNrLiByZXR1cm5zIGZhbHNlIGlmIGNsaWNrIHNob3VsZCBiZSBpZ25vcmVkXG4gICAqL1xuICBvbkJlZm9yZUNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIEV4cGFuZGFibGVUaWxlIGlzIGNsaWNrZWRcbiAgICAqL1xuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogb3B0aW9uYWwgaGFuZGxlciB0byB0cmlnZ2VyIGEgZnVuY3Rpb24gd2hlbiBhIGtleSBpcyBwcmVzc2VkXG4gICAqL1xuICBvbktleVVwOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogVGhlIGB0YWJpbmRleGAgYXR0cmlidXRlLlxuICAgKi9cbiAgdGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgXCJjb2xsYXBzZWRcIiBpY29uIHRoYXQgY2FuIGJlIHJlYWQgYnkgc2NyZWVuIHJlYWRlcnMuXG4gICAqL1xuICB0aWxlQ29sbGFwc2VkSWNvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFdoZW4gXCJjb2xsYXBzZWRcIiwgYSBsYWJlbCB0byBhcHBlYXIgbmV4dCB0byB0aGUgY2hldnJvbiAoZS5nLiwgXCJWaWV3IG1vcmVcIikuXG4gICAqL1xuICB0aWxlQ29sbGFwc2VkTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgXCJleHBhbmRlZFwiIGljb24gdGhhdCBjYW4gYmUgcmVhZCBieSBzY3JlZW4gcmVhZGVycy5cbiAgICovXG4gIHRpbGVFeHBhbmRlZEljb25UZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBXaGVuIFwiZXhwYW5kZWRcIiwgYSBsYWJlbCB0byBhcHBlYXIgbmV4dCB0byB0aGUgY2hldnJvbiAoZS5nLiwgXCJWaWV3IGxlc3NcIikuXG4gICAqL1xuICB0aWxlRXhwYW5kZWRMYWJlbDogUHJvcFR5cGVzLnN0cmluZ1xufSk7XG5cbl9kZWZpbmVQcm9wZXJ0eShFeHBhbmRhYmxlVGlsZSwgXCJjb250ZXh0VHlwZVwiLCBQcmVmaXhDb250ZXh0KTtcblxuX2RlZmluZVByb3BlcnR5KEV4cGFuZGFibGVUaWxlLCBcImRlZmF1bHRQcm9wc1wiLCB7XG4gIHRhYkluZGV4OiAwLFxuICBleHBhbmRlZDogZmFsc2UsXG4gIHRpbGVNYXhIZWlnaHQ6IDAsXG4gIHRpbGVQYWRkaW5nOiAwLFxuICBvbkJlZm9yZUNsaWNrOiBmdW5jdGlvbiBvbkJlZm9yZUNsaWNrKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9LFxuICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKCkge30sXG4gIHRpbGVDb2xsYXBzZWRJY29uVGV4dDogJ0ludGVyYWN0IHRvIGV4cGFuZCBUaWxlJyxcbiAgdGlsZUV4cGFuZGVkSWNvblRleHQ6ICdJbnRlcmFjdCB0byBjb2xsYXBzZSBUaWxlJyxcbiAgbGlnaHQ6IGZhbHNlXG59KTtcblxudmFyIFRpbGVBYm92ZVRoZUZvbGRDb250ZW50ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50NCkge1xuICBfaW5oZXJpdHMoVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQsIF9Db21wb25lbnQ0KTtcblxuICB2YXIgX3N1cGVyNCA9IF9jcmVhdGVTdXBlcihUaWxlQWJvdmVUaGVGb2xkQ29udGVudCk7XG5cbiAgZnVuY3Rpb24gVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRpbGVBYm92ZVRoZUZvbGRDb250ZW50KTtcblxuICAgIHJldHVybiBfc3VwZXI0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgcHJlZml4ID0gdGhpcy5jb250ZXh0O1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtY29udGVudF9fYWJvdmUtdGhlLWZvbGRcIilcbiAgICAgIH0sIGNoaWxkcmVuKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQ7XG59KENvbXBvbmVudCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlXG59KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGVBYm92ZVRoZUZvbGRDb250ZW50LCBcImNvbnRleHRUeXBlXCIsIFByZWZpeENvbnRleHQpO1xuXG52YXIgVGlsZUJlbG93VGhlRm9sZENvbnRlbnQgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQ1KSB7XG4gIF9pbmhlcml0cyhUaWxlQmVsb3dUaGVGb2xkQ29udGVudCwgX0NvbXBvbmVudDUpO1xuXG4gIHZhciBfc3VwZXI1ID0gX2NyZWF0ZVN1cGVyKFRpbGVCZWxvd1RoZUZvbGRDb250ZW50KTtcblxuICBmdW5jdGlvbiBUaWxlQmVsb3dUaGVGb2xkQ29udGVudCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGlsZUJlbG93VGhlRm9sZENvbnRlbnQpO1xuXG4gICAgcmV0dXJuIF9zdXBlcjUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUaWxlQmVsb3dUaGVGb2xkQ29udGVudCwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgICB2YXIgcHJlZml4ID0gdGhpcy5jb250ZXh0O1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50X19iZWxvdy10aGUtZm9sZFwiKVxuICAgICAgfSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUaWxlQmVsb3dUaGVGb2xkQ29udGVudDtcbn0oQ29tcG9uZW50KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGVCZWxvd1RoZUZvbGRDb250ZW50LCBcInByb3BUeXBlc1wiLCB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbn0pO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZUJlbG93VGhlRm9sZENvbnRlbnQsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbmV4cG9ydCB7IENsaWNrYWJsZVRpbGUsIEV4cGFuZGFibGVUaWxlLCBTZWxlY3RhYmxlVGlsZSwgVGlsZSwgVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQsIFRpbGVCZWxvd1RoZUZvbGRDb250ZW50IH07XG4iXSwibmFtZXMiOlsiaW5oZXJpdHMiLCJfaW5oZXJpdHMiLCJjcmVhdGVTdXBlciIsIl9jcmVhdGVTdXBlciIsImNsYXNzQ2FsbENoZWNrIiwiX2NsYXNzQ2FsbENoZWNrIiwiY3JlYXRlQ2xhc3MiLCJfY3JlYXRlQ2xhc3MiLCJvYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX2RlZmluZVByb3BlcnR5IiwiZXh0ZW5kcyIsIl9leHRlbmRzIiwiYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsInNsaWNlZFRvQXJyYXkiLCJfc2xpY2VkVG9BcnJheSIsIlJlYWN0X19kZWZhdWx0IiwiQ29tcG9uZW50IiwidXNlU3RhdGUiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJQcm9wVHlwZXMiLCJjeCIsIkxpbmsiLCJDaGVja2JveENoZWNrZWRGaWxsZWQiLCJDaGVja2JveCIsIkNoZXZyb25Eb3duIiwiZGVwcmVjYXRlIiwiY29tcG9zZUV2ZW50SGFuZGxlcnMiLCJQcmVmaXhDb250ZXh0IiwidXNlUHJlZml4IiwibWF0Y2hlcyIsIkVudGVyIiwiU3BhY2UiLCJfQ2hlY2tib3hDaGVja2VkRmlsbGUiLCJfQ2hlY2tib3giLCJfQ2hldnJvbkRvd24iLCJfZXhjbHVkZWQiLCJfZXhjbHVkZWQyIiwiX2V4Y2x1ZGVkMyIsIl9leGNsdWRlZDQiLCJUaWxlIiwiX0NvbXBvbmVudCIsIl9zdXBlciIsImFwcGx5IiwiYXJndW1lbnRzIiwia2V5IiwidmFsdWUiLCJyZW5kZXIiLCJwcmVmaXgiLCJjb250ZXh0IiwiX3RoaXMkcHJvcHMiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwibGlnaHQiLCJyZXN0IiwidGlsZUNsYXNzZXMiLCJjb25jYXQiLCJjcmVhdGVFbGVtZW50Iiwibm9kZSIsInN0cmluZyIsImJvb2wiLCJDbGlja2FibGVUaWxlIiwiX0NvbXBvbmVudDIiLCJfc3VwZXIyIiwiX3RoaXMiLCJfbGVuIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJldnQiLCJwZXJzaXN0Iiwic2V0U3RhdGUiLCJjbGlja2VkIiwic3RhdGUiLCJfdGhpcyRwcm9wcyRoYW5kbGVDbGkiLCJfdGhpcyRwcm9wczIiLCJfdGhpcyRwcm9wcyRvbkNsaWNrIiwiX3RoaXMkcHJvcHMzIiwiaGFuZGxlQ2xpY2siLCJvbkNsaWNrIiwiX3RoaXMkcHJvcHMkaGFuZGxlS2V5IiwiX3RoaXMkcHJvcHM0IiwiaGFuZGxlS2V5RG93biIsIm9uS2V5RG93biIsIl90aGlzJHByb3BzJGhhbmRsZUtleTIiLCJfdGhpcyRwcm9wczUiLCJfY3gyIiwiX3RoaXMkcHJvcHM2IiwiaHJlZiIsImNsYXNzZXMiLCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCJfcmVmIiwicHJldkNsaWNrZWQiLCJmdW5jIiwicmVsIiwiU2VsZWN0YWJsZVRpbGUiLCJoYW5kbGVPbkNsaWNrIiwicHJldmVudERlZmF1bHQiLCJzZXRJc1NlbGVjdGVkIiwiaXNTZWxlY3RlZCIsImNsaWNrSGFuZGxlciIsIm9uQ2hhbmdlIiwiaGFuZGxlT25LZXlEb3duIiwia2V5RG93bkhhbmRsZXIiLCJoYW5kbGVDaGFuZ2UiLCJldmVudCIsInRhcmdldCIsImNoZWNrZWQiLCJfY3gzIiwiaWQiLCJ0YWJJbmRleCIsIm5hbWUiLCJ0aXRsZSIsImljb25EZXNjcmlwdGlvbiIsImRpc2FibGVkIiwic2VsZWN0ZWQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiaW5wdXQiLCJpbnB1dENsYXNzZXMiLCJGcmFnbWVudCIsInJlZiIsInR5cGUiLCJodG1sRm9yIiwiZGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIiwibnVtYmVyIiwib25lT2ZUeXBlIiwiaXNSZXF1aXJlZCIsIkV4cGFuZGFibGVUaWxlIiwiX0NvbXBvbmVudDMiLCJfc3VwZXIzIiwiX3RoaXMyIiwiX2xlbjIiLCJfa2V5MiIsInJlc2l6ZU9ic2VydmVyIiwiUmVzaXplT2JzZXJ2ZXIiLCJlbnRyaWVzIiwiX2VudHJpZXMiLCJhYm92ZVRoZUZvbGQiLCJ0aWxlTWF4SGVpZ2h0IiwiY29udGVudFJlY3QiLCJoZWlnaHQiLCJ0aWxlIiwiZ2V0U3R5bGUiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwib2JzZXJ2ZSIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInRpbGVQYWRkaW5nIiwicGFyc2VJbnQiLCJnZXRQcm9wZXJ0eVZhbHVlIiwicHJldlByb3BzIiwiZXhwYW5kZWQiLCJzZXRNYXhIZWlnaHQiLCJ0aWxlQ29udGVudCIsIm9uQmVmb3JlQ2xpY2siLCJ0YWdOYW1lIiwiX3RoaXMyJHByb3BzJGhhbmRsZUNsIiwiX3RoaXMyJHByb3BzIiwiX3RoaXMyJHByb3BzJG9uQ2xpY2siLCJfdGhpczIkcHJvcHMyIiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJkaXNjb25uZWN0IiwiX2N4NSIsIl90aGlzMyIsIl90aGlzJHByb3BzNyIsIm9uS2V5VXAiLCJ0aWxlQ29sbGFwc2VkSWNvblRleHQiLCJ0aWxlRXhwYW5kZWRJY29uVGV4dCIsInRpbGVDb2xsYXBzZWRMYWJlbCIsInRpbGVFeHBhbmRlZExhYmVsIiwiaXNFeHBhbmRlZCIsInRpbGVTdHlsZSIsIm1heEhlaWdodCIsImNoaWxkcmVuQXNBcnJheSIsImdldENoaWxkcmVuIiwic3R5bGUiLCJoYW5kbGVLZXlVcCIsIl9yZWYyIiwicHJldkV4cGFuZGVkIiwicHJldlRpbGVNYXhIZWlnaHQiLCJwcmV2VGlsZVBhZGRpbmciLCJjdXJyZW50RXhwYW5kZWQiLCJjdXJyZW50VGlsZU1heEhlaWdodCIsImN1cnJlbnRUaWxlUGFkZGluZyIsImV4cGFuZGVkQ2hhbmdlZCIsInRpbGVNYXhIZWlnaHRDaGFuZ2VkIiwidGlsZVBhZGRpbmdDaGFuZ2VkIiwiVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQiLCJfQ29tcG9uZW50NCIsIl9zdXBlcjQiLCJUaWxlQmVsb3dUaGVGb2xkQ29udGVudCIsIl9Db21wb25lbnQ1IiwiX3N1cGVyNSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../../node_modules/@carbon/react/es/components/Tile/Tile.js\n");
2605
2605
 
2606
2606
  /***/ }),
2607
2607
 
@@ -6895,7 +6895,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
6895
6895
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6896
6896
 
6897
6897
  "use strict";
6898
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"setupPaths\": () => (/* binding */ setupPaths),\n/* harmony export */ \"setupUtils\": () => (/* binding */ setupUtils)\n/* harmony export */ });\nfunction setupPaths(config) {\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = \"4.4.2-pre.733-20230522\";\n window.getOpenmrsSpaBase = function() {\n return \"\".concat(window.spaBase, \"/\");\n };\n}\nfunction setupUtils() {\n window.copyText = function(source) {\n var sel = window.getSelection();\n if (sel) {\n var r = document.createRange();\n r.selectNode(source);\n sel.removeAllRanges();\n sel.addRange(r);\n document.execCommand(\"copy\");\n sel.removeAllRanges();\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1nbG9iYWxzL3NyYy9nbG9iYWxzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBRU8sU0FBU0EsV0FBV0MsTUFBaUIsRUFBRTtJQUM1Q0MsT0FBT0MsV0FBVyxHQUFHRixPQUFPRyxNQUFNO0lBQ2xDRixPQUFPRyxPQUFPLEdBQUdKLE9BQU9LLE9BQU87SUFDL0JKLE9BQU9LLE1BQU0sR0FBR04sT0FBT08sR0FBRyxJQUFJO0lBQzlCTixPQUFPTyxVQUFVLEdBQUdDLHdCQUF5QjtJQUM3Q1IsT0FBT1UsaUJBQWlCLEdBQUc7ZUFBTSxHQUFrQixPQUFmVixPQUFPRyxPQUFPLEVBQUM7O0FBQ3JELENBQUM7QUFFTSxTQUFTUSxhQUFhO0lBQzNCWCxPQUFPWSxRQUFRLEdBQUcsU0FBQ0MsUUFBd0I7UUFDekMsSUFBTUMsTUFBTWQsT0FBT2UsWUFBWTtRQUUvQixJQUFJRCxLQUFLO1lBQ1AsSUFBTUUsSUFBSUMsU0FBU0MsV0FBVztZQUM5QkYsRUFBRUcsVUFBVSxDQUFDTjtZQUNiQyxJQUFJTSxlQUFlO1lBQ25CTixJQUFJTyxRQUFRLENBQUNMO1lBQ2JDLFNBQVNLLFdBQVcsQ0FBQztZQUNyQlIsSUFBSU0sZUFBZTtRQUNyQixDQUFDO0lBQ0g7QUFDRixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWdsb2JhbHMvc3JjL2dsb2JhbHMudHM/NDFiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNwYUNvbmZpZyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFBhdGhzKGNvbmZpZzogU3BhQ29uZmlnKSB7XG4gIHdpbmRvdy5vcGVubXJzQmFzZSA9IGNvbmZpZy5hcGlVcmw7XG4gIHdpbmRvdy5zcGFCYXNlID0gY29uZmlnLnNwYVBhdGg7XG4gIHdpbmRvdy5zcGFFbnYgPSBjb25maWcuZW52IHx8IFwicHJvZHVjdGlvblwiO1xuICB3aW5kb3cuc3BhVmVyc2lvbiA9IHByb2Nlc3MuZW52LkJVSUxEX1ZFUlNJT047XG4gIHdpbmRvdy5nZXRPcGVubXJzU3BhQmFzZSA9ICgpID0+IGAke3dpbmRvdy5zcGFCYXNlfS9gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBVdGlscygpIHtcbiAgd2luZG93LmNvcHlUZXh0ID0gKHNvdXJjZTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG5cbiAgICBpZiAoc2VsKSB7XG4gICAgICBjb25zdCByID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHIuc2VsZWN0Tm9kZShzb3VyY2UpO1xuICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsLmFkZFJhbmdlKHIpO1xuICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJzZXR1cFBhdGhzIiwiY29uZmlnIiwid2luZG93Iiwib3Blbm1yc0Jhc2UiLCJhcGlVcmwiLCJzcGFCYXNlIiwic3BhUGF0aCIsInNwYUVudiIsImVudiIsInNwYVZlcnNpb24iLCJwcm9jZXNzIiwiQlVJTERfVkVSU0lPTiIsImdldE9wZW5tcnNTcGFCYXNlIiwic2V0dXBVdGlscyIsImNvcHlUZXh0Iiwic291cmNlIiwic2VsIiwiZ2V0U2VsZWN0aW9uIiwiciIsImRvY3VtZW50IiwiY3JlYXRlUmFuZ2UiLCJzZWxlY3ROb2RlIiwicmVtb3ZlQWxsUmFuZ2VzIiwiYWRkUmFuZ2UiLCJleGVjQ29tbWFuZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-globals/src/globals.ts\n");
6898
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"setupPaths\": () => (/* binding */ setupPaths),\n/* harmony export */ \"setupUtils\": () => (/* binding */ setupUtils)\n/* harmony export */ });\nfunction setupPaths(config) {\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = \"4.4.2-pre.735-20230523\";\n window.getOpenmrsSpaBase = function() {\n return \"\".concat(window.spaBase, \"/\");\n };\n}\nfunction setupUtils() {\n window.copyText = function(source) {\n var sel = window.getSelection();\n if (sel) {\n var r = document.createRange();\n r.selectNode(source);\n sel.removeAllRanges();\n sel.addRange(r);\n document.execCommand(\"copy\");\n sel.removeAllRanges();\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1nbG9iYWxzL3NyYy9nbG9iYWxzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBRU8sU0FBU0EsV0FBV0MsTUFBaUIsRUFBRTtJQUM1Q0MsT0FBT0MsV0FBVyxHQUFHRixPQUFPRyxNQUFNO0lBQ2xDRixPQUFPRyxPQUFPLEdBQUdKLE9BQU9LLE9BQU87SUFDL0JKLE9BQU9LLE1BQU0sR0FBR04sT0FBT08sR0FBRyxJQUFJO0lBQzlCTixPQUFPTyxVQUFVLEdBQUdDLHdCQUF5QjtJQUM3Q1IsT0FBT1UsaUJBQWlCLEdBQUc7ZUFBTSxHQUFrQixPQUFmVixPQUFPRyxPQUFPLEVBQUM7O0FBQ3JELENBQUM7QUFFTSxTQUFTUSxhQUFhO0lBQzNCWCxPQUFPWSxRQUFRLEdBQUcsU0FBQ0MsUUFBd0I7UUFDekMsSUFBTUMsTUFBTWQsT0FBT2UsWUFBWTtRQUUvQixJQUFJRCxLQUFLO1lBQ1AsSUFBTUUsSUFBSUMsU0FBU0MsV0FBVztZQUM5QkYsRUFBRUcsVUFBVSxDQUFDTjtZQUNiQyxJQUFJTSxlQUFlO1lBQ25CTixJQUFJTyxRQUFRLENBQUNMO1lBQ2JDLFNBQVNLLFdBQVcsQ0FBQztZQUNyQlIsSUFBSU0sZUFBZTtRQUNyQixDQUFDO0lBQ0g7QUFDRixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWdsb2JhbHMvc3JjL2dsb2JhbHMudHM/NDFiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNwYUNvbmZpZyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFBhdGhzKGNvbmZpZzogU3BhQ29uZmlnKSB7XG4gIHdpbmRvdy5vcGVubXJzQmFzZSA9IGNvbmZpZy5hcGlVcmw7XG4gIHdpbmRvdy5zcGFCYXNlID0gY29uZmlnLnNwYVBhdGg7XG4gIHdpbmRvdy5zcGFFbnYgPSBjb25maWcuZW52IHx8IFwicHJvZHVjdGlvblwiO1xuICB3aW5kb3cuc3BhVmVyc2lvbiA9IHByb2Nlc3MuZW52LkJVSUxEX1ZFUlNJT047XG4gIHdpbmRvdy5nZXRPcGVubXJzU3BhQmFzZSA9ICgpID0+IGAke3dpbmRvdy5zcGFCYXNlfS9gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBVdGlscygpIHtcbiAgd2luZG93LmNvcHlUZXh0ID0gKHNvdXJjZTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG5cbiAgICBpZiAoc2VsKSB7XG4gICAgICBjb25zdCByID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHIuc2VsZWN0Tm9kZShzb3VyY2UpO1xuICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsLmFkZFJhbmdlKHIpO1xuICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJzZXR1cFBhdGhzIiwiY29uZmlnIiwid2luZG93Iiwib3Blbm1yc0Jhc2UiLCJhcGlVcmwiLCJzcGFCYXNlIiwic3BhUGF0aCIsInNwYUVudiIsImVudiIsInNwYVZlcnNpb24iLCJwcm9jZXNzIiwiQlVJTERfVkVSU0lPTiIsImdldE9wZW5tcnNTcGFCYXNlIiwic2V0dXBVdGlscyIsImNvcHlUZXh0Iiwic291cmNlIiwic2VsIiwiZ2V0U2VsZWN0aW9uIiwiciIsImRvY3VtZW50IiwiY3JlYXRlUmFuZ2UiLCJzZWxlY3ROb2RlIiwicmVtb3ZlQWxsUmFuZ2VzIiwiYWRkUmFuZ2UiLCJleGVjQ29tbWFuZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-globals/src/globals.ts\n");
6899
6899
 
6900
6900
  /***/ }),
6901
6901
 
@@ -7357,7 +7357,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
7357
7357
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7358
7358
 
7359
7359
  "use strict";
7360
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"useStore\": () => (/* binding */ useStore),\n/* harmony export */ \"useStoreWithActions\": () => (/* binding */ useStoreWithActions)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-state */ \"../../framework/esm-state/src/index.ts\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/** @module @category Store */ function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally{\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally{\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\n\nfunction bindActions(store, actions) {\n var _loop = function(i) {\n bound[i] = function() {\n var args = _arguments;\n store.setState(function(state) {\n var _args = [\n state\n ];\n for(var i1 = 0; i1 < args.length; i1++){\n _args.push(args[i1]);\n }\n return actions[i](_args);\n });\n };\n };\n var _arguments = arguments;\n if (typeof actions == \"function\") {\n actions = actions(store);\n }\n var bound = {};\n for(var i in actions)_loop(i);\n return bound;\n}\nvar defaultSelectFunction = function(x) {\n return x;\n};\nfunction useStore(store) {\n var select = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultSelectFunction, actions = arguments.length > 2 ? arguments[2] : void 0;\n var ref = _slicedToArray((0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(function() {\n return select(store.getState());\n }), 2), state = ref[0], setState = ref[1];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function() {\n return (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_0__.subscribeTo)(store, select, setState);\n }, [\n store,\n select\n ]);\n var boundActions = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {\n return actions ? bindActions(store, actions) : {};\n }, [\n store,\n actions\n ]);\n return _objectSpread({}, state, boundActions);\n}\nfunction useStoreWithActions(store, actions) {\n return useStore(store, defaultSelectFunction, actions);\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvdXNlU3RvcmUudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSw0QkFBNEIsR0FDNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQWlEO0FBQ0k7QUFJckQsU0FBU0ksWUFBZUMsS0FBa0IsRUFBRUMsT0FBZ0IsRUFBZ0I7NEJBT25EO1FBQ3JCQyxLQUFLLENBQUNDLEVBQUUsR0FBRyxXQUFNO1lBQ2YsSUFBTUM7WUFDTkosTUFBTUssUUFBUSxDQUFDLFNBQUNDLE9BQVU7Z0JBQ3hCLElBQUlDLFFBQVE7b0JBQUNEO2lCQUFNO2dCQUNuQixJQUFLLElBQUlILEtBQUksR0FBR0EsS0FBSUMsS0FBS0ksTUFBTSxFQUFFTCxLQUFLO29CQUNwQ0ksTUFBTUUsSUFBSSxDQUFDTCxJQUFJLENBQUNELEdBQUU7Z0JBQ3BCO2dCQUVBLE9BQU9GLE9BQU8sQ0FBQ0UsRUFBRSxDQUFDSTtZQUNwQjtRQUNGO0lBQ0Y7O0lBbEJBLElBQUksT0FBT04sV0FBVyxZQUFZO1FBQ2hDQSxVQUFVQSxRQUFRRDtJQUNwQixDQUFDO0lBRUQsSUFBTUUsUUFBUSxDQUFDO0lBRWYsSUFBSyxJQUFJQyxLQUFLRjtJQWNkLE9BQU9DO0FBQ1Q7QUFFQSxJQUFNUSx3QkFBd0IsU0FBQ0M7V0FBTUE7O0FBY3JDLFNBQVNDLFNBQ1BaLEtBQWtCLEVBR2xCO1FBRkFhLFNBQUFBLGlFQUEwQkgscUJBQXFCLEVBQy9DVDtJQUVBLElBQTBCSCxxQkFBQUEsK0NBQVFBLENBQUk7ZUFBTWUsT0FBT2IsTUFBTWMsUUFBUTtZQUExRFIsUUFBbUJSLFFBQVpPLFdBQVlQO0lBQzFCRixnREFBU0EsQ0FBQztlQUFNRCwrREFBV0EsQ0FBQ0ssT0FBT2EsUUFBUVI7T0FBVztRQUFDTDtRQUFPYTtLQUFPO0lBRXJFLElBQUlFLGVBQTZCbEIsOENBQU9BLENBQ3RDO2VBQU9JLFVBQVVGLFlBQVlDLE9BQU9DLFdBQVcsQ0FBQyxDQUFDO09BQ2pEO1FBQUNEO1FBQU9DO0tBQVE7SUFHbEIsT0FBTyxrQkFBS0ssT0FBVVM7QUFDeEI7QUFFQSxTQUFTQyxvQkFDUGhCLEtBQWtCLEVBQ2xCQyxPQUFnQixFQUNFO0lBQ2xCLE9BQU9XLFNBQVNaLE9BQU9VLHVCQUF1QlQ7QUFDaEQ7QUFFeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvc3JjL3VzZVN0b3JlLnRzPzk2NDQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IFN0b3JlICovXG5pbXBvcnQgeyBzdWJzY3JpYmVUbyB9IGZyb20gXCJAb3Blbm1ycy9lc20tc3RhdGVcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgU3RvcmVBcGkgfSBmcm9tIFwienVzdGFuZFwiO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25zLCBCb3VuZEFjdGlvbnMgfSBmcm9tIFwiLi9jcmVhdGVVc2VTdG9yZVwiO1xuXG5mdW5jdGlvbiBiaW5kQWN0aW9uczxUPihzdG9yZTogU3RvcmVBcGk8VD4sIGFjdGlvbnM6IEFjdGlvbnMpOiBCb3VuZEFjdGlvbnMge1xuICBpZiAodHlwZW9mIGFjdGlvbnMgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgYWN0aW9ucyA9IGFjdGlvbnMoc3RvcmUpO1xuICB9XG5cbiAgY29uc3QgYm91bmQgPSB7fTtcblxuICBmb3IgKGxldCBpIGluIGFjdGlvbnMpIHtcbiAgICBib3VuZFtpXSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICBzdG9yZS5zZXRTdGF0ZSgoc3RhdGUpID0+IHtcbiAgICAgICAgbGV0IF9hcmdzID0gW3N0YXRlXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgX2FyZ3MucHVzaChhcmdzW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY3Rpb25zW2ldKF9hcmdzKTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gYm91bmQ7XG59XG5cbmNvbnN0IGRlZmF1bHRTZWxlY3RGdW5jdGlvbiA9ICh4KSA9PiB4O1xuXG5mdW5jdGlvbiB1c2VTdG9yZTxULCBVPihzdG9yZTogU3RvcmVBcGk8VD4pOiBUO1xuZnVuY3Rpb24gdXNlU3RvcmU8VCwgVT4oc3RvcmU6IFN0b3JlQXBpPFQ+LCBzZWxlY3Q6IChzdGF0ZTogVCkgPT4gVSk6IFU7XG5mdW5jdGlvbiB1c2VTdG9yZTxULCBVPihcbiAgc3RvcmU6IFN0b3JlQXBpPFQ+LFxuICBzZWxlY3Q6IHVuZGVmaW5lZCxcbiAgYWN0aW9uczogQWN0aW9uc1xuKTogVCAmIEJvdW5kQWN0aW9ucztcbmZ1bmN0aW9uIHVzZVN0b3JlPFQsIFU+KFxuICBzdG9yZTogU3RvcmVBcGk8VD4sXG4gIHNlbGVjdDogKHN0YXRlOiBUKSA9PiBVLFxuICBhY3Rpb25zOiBBY3Rpb25zXG4pOiBVICYgQm91bmRBY3Rpb25zO1xuZnVuY3Rpb24gdXNlU3RvcmU8VCwgVT4oXG4gIHN0b3JlOiBTdG9yZUFwaTxUPixcbiAgc2VsZWN0OiAoc3RhdGU6IFQpID0+IFUgPSBkZWZhdWx0U2VsZWN0RnVuY3Rpb24sXG4gIGFjdGlvbnM/OiBBY3Rpb25zXG4pIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZTxVPigoKSA9PiBzZWxlY3Qoc3RvcmUuZ2V0U3RhdGUoKSkpO1xuICB1c2VFZmZlY3QoKCkgPT4gc3Vic2NyaWJlVG8oc3RvcmUsIHNlbGVjdCwgc2V0U3RhdGUpLCBbc3RvcmUsIHNlbGVjdF0pO1xuXG4gIGxldCBib3VuZEFjdGlvbnM6IEJvdW5kQWN0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGFjdGlvbnMgPyBiaW5kQWN0aW9ucyhzdG9yZSwgYWN0aW9ucykgOiB7fSksXG4gICAgW3N0b3JlLCBhY3Rpb25zXVxuICApO1xuXG4gIHJldHVybiB7IC4uLnN0YXRlLCAuLi5ib3VuZEFjdGlvbnMgfTtcbn1cblxuZnVuY3Rpb24gdXNlU3RvcmVXaXRoQWN0aW9uczxUPihcbiAgc3RvcmU6IFN0b3JlQXBpPFQ+LFxuICBhY3Rpb25zOiBBY3Rpb25zXG4pOiBUICYgQm91bmRBY3Rpb25zIHtcbiAgcmV0dXJuIHVzZVN0b3JlKHN0b3JlLCBkZWZhdWx0U2VsZWN0RnVuY3Rpb24sIGFjdGlvbnMpO1xufVxuXG5leHBvcnQgeyB1c2VTdG9yZSwgdXNlU3RvcmVXaXRoQWN0aW9ucyB9O1xuIl0sIm5hbWVzIjpbInN1YnNjcmliZVRvIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiYmluZEFjdGlvbnMiLCJzdG9yZSIsImFjdGlvbnMiLCJib3VuZCIsImkiLCJhcmdzIiwic2V0U3RhdGUiLCJzdGF0ZSIsIl9hcmdzIiwibGVuZ3RoIiwicHVzaCIsImRlZmF1bHRTZWxlY3RGdW5jdGlvbiIsIngiLCJ1c2VTdG9yZSIsInNlbGVjdCIsImdldFN0YXRlIiwiYm91bmRBY3Rpb25zIiwidXNlU3RvcmVXaXRoQWN0aW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/useStore.ts\n");
7360
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"useStore\": () => (/* binding */ useStore),\n/* harmony export */ \"useStoreWithActions\": () => (/* binding */ useStoreWithActions)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-state */ \"../../framework/esm-state/src/index.ts\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/** @module @category Store */ function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally{\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally{\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\n\nfunction bindActions(store, actions) {\n var _loop = function(i) {\n bound[i] = function() {\n var args = _arguments;\n store.setState(function(state) {\n var _actions;\n var _args = [\n state\n ];\n for(var i1 = 0; i1 < args.length; i1++){\n _args.push(args[i1]);\n }\n return (_actions = actions)[i].apply(_actions, _toConsumableArray(_args));\n });\n };\n };\n var _arguments = arguments;\n if (typeof actions == \"function\") {\n actions = actions(store);\n }\n var bound = {};\n for(var i in actions)_loop(i);\n return bound;\n}\nvar defaultSelectFunction = function(x) {\n return x;\n};\nfunction useStore(store) {\n var select = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultSelectFunction, actions = arguments.length > 2 ? arguments[2] : void 0;\n var ref = _slicedToArray((0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(function() {\n return select(store.getState());\n }), 2), state = ref[0], setState = ref[1];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function() {\n return (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_0__.subscribeTo)(store, select, setState);\n }, [\n store,\n select\n ]);\n var boundActions = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {\n return actions ? bindActions(store, actions) : {};\n }, [\n store,\n actions\n ]);\n return _objectSpread({}, state, boundActions);\n}\nfunction useStoreWithActions(store, actions) {\n return useStore(store, defaultSelectFunction, actions);\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvdXNlU3RvcmUudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSw0QkFBNEIsR0FDNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQWlEO0FBQ0k7QUFJckQsU0FBU0ksWUFBZUMsS0FBa0IsRUFBRUMsT0FBZ0IsRUFBZ0I7NEJBT25EO1FBQ3JCQyxLQUFLLENBQUNDLEVBQUUsR0FBRyxXQUFNO1lBQ2YsSUFBTUM7WUFDTkosTUFBTUssUUFBUSxDQUFDLFNBQUNDLE9BQVU7b0JBTWpCTDtnQkFMUCxJQUFJTSxRQUFRO29CQUFDRDtpQkFBTTtnQkFDbkIsSUFBSyxJQUFJSCxLQUFJLEdBQUdBLEtBQUlDLEtBQUtJLE1BQU0sRUFBRUwsS0FBSztvQkFDcENJLE1BQU1FLElBQUksQ0FBQ0wsSUFBSSxDQUFDRCxHQUFFO2dCQUNwQjtnQkFFQSxPQUFPRixDQUFBQSxXQUFBQSxRQUFPLENBQUNFLEVBQUUsQ0FBVkYsTUFBQUEsVUFBVyxtQkFBR007WUFDdkI7UUFDRjtJQUNGOztJQWxCQSxJQUFJLE9BQU9OLFdBQVcsWUFBWTtRQUNoQ0EsVUFBVUEsUUFBUUQ7SUFDcEIsQ0FBQztJQUVELElBQU1FLFFBQVEsQ0FBQztJQUVmLElBQUssSUFBSUMsS0FBS0Y7SUFjZCxPQUFPQztBQUNUO0FBRUEsSUFBTVEsd0JBQXdCLFNBQUNDO1dBQU1BOztBQWNyQyxTQUFTQyxTQUNQWixLQUFrQixFQUdsQjtRQUZBYSxTQUFBQSxpRUFBMEJILHFCQUFxQixFQUMvQ1Q7SUFFQSxJQUEwQkgscUJBQUFBLCtDQUFRQSxDQUFJO2VBQU1lLE9BQU9iLE1BQU1jLFFBQVE7WUFBMURSLFFBQW1CUixRQUFaTyxXQUFZUDtJQUMxQkYsZ0RBQVNBLENBQUM7ZUFBTUQsK0RBQVdBLENBQUNLLE9BQU9hLFFBQVFSO09BQVc7UUFBQ0w7UUFBT2E7S0FBTztJQUVyRSxJQUFJRSxlQUE2QmxCLDhDQUFPQSxDQUN0QztlQUFPSSxVQUFVRixZQUFZQyxPQUFPQyxXQUFXLENBQUMsQ0FBQztPQUNqRDtRQUFDRDtRQUFPQztLQUFRO0lBR2xCLE9BQU8sa0JBQUtLLE9BQVVTO0FBQ3hCO0FBRUEsU0FBU0Msb0JBQ1BoQixLQUFrQixFQUNsQkMsT0FBZ0IsRUFDRTtJQUNsQixPQUFPVyxTQUFTWixPQUFPVSx1QkFBdUJUO0FBQ2hEO0FBRXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL3NyYy91c2VTdG9yZS50cz85NjQ0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBTdG9yZSAqL1xuaW1wb3J0IHsgc3Vic2NyaWJlVG8gfSBmcm9tIFwiQG9wZW5tcnMvZXNtLXN0YXRlXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFN0b3JlQXBpIH0gZnJvbSBcInp1c3RhbmRcIjtcbmltcG9ydCB0eXBlIHsgQWN0aW9ucywgQm91bmRBY3Rpb25zIH0gZnJvbSBcIi4vY3JlYXRlVXNlU3RvcmVcIjtcblxuZnVuY3Rpb24gYmluZEFjdGlvbnM8VD4oc3RvcmU6IFN0b3JlQXBpPFQ+LCBhY3Rpb25zOiBBY3Rpb25zKTogQm91bmRBY3Rpb25zIHtcbiAgaWYgKHR5cGVvZiBhY3Rpb25zID09IFwiZnVuY3Rpb25cIikge1xuICAgIGFjdGlvbnMgPSBhY3Rpb25zKHN0b3JlKTtcbiAgfVxuXG4gIGNvbnN0IGJvdW5kID0ge307XG5cbiAgZm9yIChsZXQgaSBpbiBhY3Rpb25zKSB7XG4gICAgYm91bmRbaV0gPSAoKSA9PiB7XG4gICAgICBjb25zdCBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgc3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgICAgIGxldCBfYXJncyA9IFtzdGF0ZV07XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIF9hcmdzLnB1c2goYXJnc1tpXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWN0aW9uc1tpXSguLi5fYXJncyk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGJvdW5kO1xufVxuXG5jb25zdCBkZWZhdWx0U2VsZWN0RnVuY3Rpb24gPSAoeCkgPT4geDtcblxuZnVuY3Rpb24gdXNlU3RvcmU8VCwgVT4oc3RvcmU6IFN0b3JlQXBpPFQ+KTogVDtcbmZ1bmN0aW9uIHVzZVN0b3JlPFQsIFU+KHN0b3JlOiBTdG9yZUFwaTxUPiwgc2VsZWN0OiAoc3RhdGU6IFQpID0+IFUpOiBVO1xuZnVuY3Rpb24gdXNlU3RvcmU8VCwgVT4oXG4gIHN0b3JlOiBTdG9yZUFwaTxUPixcbiAgc2VsZWN0OiB1bmRlZmluZWQsXG4gIGFjdGlvbnM6IEFjdGlvbnNcbik6IFQgJiBCb3VuZEFjdGlvbnM7XG5mdW5jdGlvbiB1c2VTdG9yZTxULCBVPihcbiAgc3RvcmU6IFN0b3JlQXBpPFQ+LFxuICBzZWxlY3Q6IChzdGF0ZTogVCkgPT4gVSxcbiAgYWN0aW9uczogQWN0aW9uc1xuKTogVSAmIEJvdW5kQWN0aW9ucztcbmZ1bmN0aW9uIHVzZVN0b3JlPFQsIFU+KFxuICBzdG9yZTogU3RvcmVBcGk8VD4sXG4gIHNlbGVjdDogKHN0YXRlOiBUKSA9PiBVID0gZGVmYXVsdFNlbGVjdEZ1bmN0aW9uLFxuICBhY3Rpb25zPzogQWN0aW9uc1xuKSB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gdXNlU3RhdGU8VT4oKCkgPT4gc2VsZWN0KHN0b3JlLmdldFN0YXRlKCkpKTtcbiAgdXNlRWZmZWN0KCgpID0+IHN1YnNjcmliZVRvKHN0b3JlLCBzZWxlY3QsIHNldFN0YXRlKSwgW3N0b3JlLCBzZWxlY3RdKTtcblxuICBsZXQgYm91bmRBY3Rpb25zOiBCb3VuZEFjdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+IChhY3Rpb25zID8gYmluZEFjdGlvbnMoc3RvcmUsIGFjdGlvbnMpIDoge30pLFxuICAgIFtzdG9yZSwgYWN0aW9uc11cbiAgKTtcblxuICByZXR1cm4geyAuLi5zdGF0ZSwgLi4uYm91bmRBY3Rpb25zIH07XG59XG5cbmZ1bmN0aW9uIHVzZVN0b3JlV2l0aEFjdGlvbnM8VD4oXG4gIHN0b3JlOiBTdG9yZUFwaTxUPixcbiAgYWN0aW9uczogQWN0aW9uc1xuKTogVCAmIEJvdW5kQWN0aW9ucyB7XG4gIHJldHVybiB1c2VTdG9yZShzdG9yZSwgZGVmYXVsdFNlbGVjdEZ1bmN0aW9uLCBhY3Rpb25zKTtcbn1cblxuZXhwb3J0IHsgdXNlU3RvcmUsIHVzZVN0b3JlV2l0aEFjdGlvbnMgfTtcbiJdLCJuYW1lcyI6WyJzdWJzY3JpYmVUbyIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsImJpbmRBY3Rpb25zIiwic3RvcmUiLCJhY3Rpb25zIiwiYm91bmQiLCJpIiwiYXJncyIsInNldFN0YXRlIiwic3RhdGUiLCJfYXJncyIsImxlbmd0aCIsInB1c2giLCJkZWZhdWx0U2VsZWN0RnVuY3Rpb24iLCJ4IiwidXNlU3RvcmUiLCJzZWxlY3QiLCJnZXRTdGF0ZSIsImJvdW5kQWN0aW9ucyIsInVzZVN0b3JlV2l0aEFjdGlvbnMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/useStore.ts\n");
7361
7361
 
7362
7362
  /***/ }),
7363
7363
 
@@ -11941,8 +11941,8 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
11941
11941
  /******/ var promises = [];
11942
11942
  /******/ switch(name) {
11943
11943
  /******/ case "default": {
11944
- /******/ register("@openmrs/esm-framework/src/internal", "4.4.2-pre.733", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/internal.ts */ "../../framework/esm-framework/src/internal.ts"))), 1);
11945
- /******/ register("@openmrs/esm-framework", "4.4.2-pre.733", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/index.ts */ "../../framework/esm-framework/src/index.ts"))), 1);
11944
+ /******/ register("@openmrs/esm-framework/src/internal", "4.4.2-pre.735", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/internal.ts */ "../../framework/esm-framework/src/internal.ts"))), 1);
11945
+ /******/ register("@openmrs/esm-framework", "4.4.2-pre.735", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/index.ts */ "../../framework/esm-framework/src/index.ts"))), 1);
11946
11946
  /******/ register("dayjs", "1.11.5", () => (() => (__webpack_require__(/*! ../../../node_modules/dayjs/dayjs.min.js */ "../../../node_modules/dayjs/dayjs.min.js"))), 1);
11947
11947
  /******/ register("i18next", "19.9.2", () => (() => (__webpack_require__(/*! ../../../node_modules/i18next/dist/esm/i18next.js */ "../../../node_modules/i18next/dist/esm/i18next.js"))), 1);
11948
11948
  /******/ register("react-dom", "18.2.0", () => (() => (__webpack_require__(/*! ../../../node_modules/react-dom/index.js */ "../../../node_modules/react-dom/index.js"))), 1);
@@ -12104,7 +12104,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
12104
12104
  /******/ "webpack/sharing/consume/default/i18next/i18next": () => (loadSingletonVersionCheckFallback("default", "i18next", [1,19,6,0], () => (() => (__webpack_require__(/*! i18next */ "../../../node_modules/i18next/dist/esm/i18next.js"))))),
12105
12105
  /******/ "webpack/sharing/consume/default/react-i18next/react-i18next": () => (loadSingletonVersionCheckFallback("default", "react-i18next", [1,11,7,0], () => (() => (__webpack_require__(/*! react-i18next */ "../../../node_modules/react-i18next/dist/es/index.js"))))),
12106
12106
  /******/ "webpack/sharing/consume/default/dayjs/dayjs": () => (loadSingletonVersionCheckFallback("default", "dayjs", [1,1,10,4], () => (() => (__webpack_require__(/*! dayjs */ "../../../node_modules/dayjs/dayjs.min.js"))))),
12107
- /******/ "webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework": () => (loadSingletonVersionCheckFallback("default", "@openmrs/esm-framework", [7,4,4,2,,"pre",733], () => (() => (__webpack_require__(/*! @openmrs/esm-framework */ "../../framework/esm-framework/src/index.ts")))))
12107
+ /******/ "webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework": () => (loadSingletonVersionCheckFallback("default", "@openmrs/esm-framework", [7,4,4,2,,"pre",735], () => (() => (__webpack_require__(/*! @openmrs/esm-framework */ "../../framework/esm-framework/src/index.ts")))))
12108
12108
  /******/ };
12109
12109
  /******/ var initialConsumes = ["webpack/sharing/consume/default/@openmrs/esm-framework/src/internal/@openmrs/esm-framework/src/internal","webpack/sharing/consume/default/rxjs/rxjs","webpack/sharing/consume/default/react/react","webpack/sharing/consume/default/react-dom/react-dom","webpack/sharing/consume/default/i18next/i18next","webpack/sharing/consume/default/react-i18next/react-i18next","webpack/sharing/consume/default/dayjs/dayjs","webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework"];
12110
12110
  /******/ initialConsumes.forEach((id) => {