@madie/madie-design-system 1.2.3 → 1.2.4

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.
package/dist/browser.js CHANGED
@@ -1 +1 @@
1
- var QPPStyle;(()=>{var __webpack_modules__={368:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n "Portal": () => (/* binding */ Portal),\n "default": () => (/* binding */ reach_portal_esm)\n});\n\n// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js + 2 modules\nvar compat_module = __webpack_require__(776);\n// EXTERNAL MODULE: ./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js\nvar reach_utils_use_isomorphic_layout_effect_esm = __webpack_require__(637);\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/use-force-update/dist/reach-utils-use-force-update.esm.js\n\n\n/**\n * Forces a re-render, similar to `forceUpdate` in class components.\n */\n\nfunction useForceUpdate() {\n var _useState = (0,compat_module.useState)(Object.create(null)),\n dispatch = _useState[1];\n\n return (0,compat_module.useCallback)(function () {\n dispatch(Object.create(null));\n }, []);\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/portal/dist/reach-portal.esm.js\n\n\n\n\n\n\n/**\n * Welcome to @reach/portal!\n *\n * Creates and appends a DOM node to the end of `document.body` and renders a\n * React tree into it. Useful for rendering a natural React element hierarchy\n * with a different DOM hierarchy to prevent parent styles from clipping or\n * hiding content (for popovers, dropdowns, and modals).\n *\n * @see Docs https://reach.tech/portal\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/portal\n * @see React https://reactjs.org/docs/portals.html\n */\n/**\n * Portal\n *\n * @see Docs https://reach.tech/portal#portal\n */\n\nvar Portal = function Portal(_ref) {\n var children = _ref.children,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? "reach-portal" : _ref$type,\n containerRef = _ref.containerRef;\n var mountNode = (0,compat_module.useRef)(null);\n var portalNode = (0,compat_module.useRef)(null);\n var forceUpdate = useForceUpdate();\n\n if (false) {}\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.L)(function () {\n // This ref may be null when a hot-loader replaces components on the page\n if (!mountNode.current) return; // It\'s possible that the content of the portal has, itself, been portaled.\n // In that case, it\'s important to append to the correct document element.\n\n var ownerDocument = mountNode.current.ownerDocument;\n var body = (containerRef == null ? void 0 : containerRef.current) || ownerDocument.body;\n portalNode.current = ownerDocument == null ? void 0 : ownerDocument.createElement(type);\n body.appendChild(portalNode.current);\n forceUpdate();\n return function () {\n if (portalNode.current && body) {\n body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate, containerRef]);\n return portalNode.current ? /*#__PURE__*/(0,compat_module.createPortal)(children, portalNode.current) : /*#__PURE__*/(0,compat_module.createElement)("span", {\n ref: mountNode\n });\n};\n/**\n * @see Docs https://reach.tech/portal#portal-props\n */\n\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_portal_esm = (Portal);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzY4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQThDOztBQUU5QztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0IsMEJBQVE7QUFDMUI7O0FBRUEsU0FBUyw2QkFBVztBQUNwQjtBQUNBLEdBQUc7QUFDSDs7QUFFMEI7OztBQ2YrQjtBQUM2QjtBQUN2QjtBQUN0QjtBQUNOOztBQUVuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0JBQU07QUFDeEIsbUJBQW1CLHdCQUFNO0FBQ3pCLG9CQUFvQixjQUFjOztBQUVsQyxNQUFNLEtBQXFDLEVBQUUsRUFRMUM7O0FBRUgsRUFBRSxpRkFBeUI7QUFDM0I7QUFDQSxvQ0FBb0M7QUFDcEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsMkNBQTJDLDhCQUFZLDhDQUE4QywrQkFBYTtBQUNsSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7O0FBR0EsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7O0FBRUYsdURBQWUsTUFBTSxFQUFDO0FBQ0oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdXNlLWZvcmNlLXVwZGF0ZS9kaXN0L3JlYWNoLXV0aWxzLXVzZS1mb3JjZS11cGRhdGUuZXNtLmpzPzY5MWIiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3BvcnRhbC9kaXN0L3JlYWNoLXBvcnRhbC5lc20uanM/ZGRjOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5cbi8qKlxuICogRm9yY2VzIGEgcmUtcmVuZGVyLCBzaW1pbGFyIHRvIGBmb3JjZVVwZGF0ZWAgaW4gY2xhc3MgY29tcG9uZW50cy5cbiAqL1xuXG5mdW5jdGlvbiB1c2VGb3JjZVVwZGF0ZSgpIHtcbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKE9iamVjdC5jcmVhdGUobnVsbCkpLFxuICAgICAgZGlzcGF0Y2ggPSBfdXNlU3RhdGVbMV07XG5cbiAgcmV0dXJuIHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICBkaXNwYXRjaChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAgfSwgW10pO1xufVxuXG5leHBvcnQgeyB1c2VGb3JjZVVwZGF0ZSB9O1xuIiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QsIGNyZWF0ZUVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJlYWNoL3V0aWxzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgdXNlRm9yY2VVcGRhdGUgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWZvcmNlLXVwZGF0ZSc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHdhcm5pbmcgZnJvbSAndGlueS13YXJuaW5nJztcblxuLyoqXG4gKiBXZWxjb21lIHRvIEByZWFjaC9wb3J0YWwhXG4gKlxuICogQ3JlYXRlcyBhbmQgYXBwZW5kcyBhIERPTSBub2RlIHRvIHRoZSBlbmQgb2YgYGRvY3VtZW50LmJvZHlgIGFuZCByZW5kZXJzIGFcbiAqIFJlYWN0IHRyZWUgaW50byBpdC4gVXNlZnVsIGZvciByZW5kZXJpbmcgYSBuYXR1cmFsIFJlYWN0IGVsZW1lbnQgaGllcmFyY2h5XG4gKiB3aXRoIGEgZGlmZmVyZW50IERPTSBoaWVyYXJjaHkgdG8gcHJldmVudCBwYXJlbnQgc3R5bGVzIGZyb20gY2xpcHBpbmcgb3JcbiAqIGhpZGluZyBjb250ZW50IChmb3IgcG9wb3ZlcnMsIGRyb3Bkb3ducywgYW5kIG1vZGFscykuXG4gKlxuICogQHNlZSBEb2NzICAgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbFxuICogQHNlZSBTb3VyY2UgaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL3RyZWUvbWFpbi9wYWNrYWdlcy9wb3J0YWxcbiAqIEBzZWUgUmVhY3QgIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9wb3J0YWxzLmh0bWxcbiAqL1xuLyoqXG4gKiBQb3J0YWxcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbCNwb3J0YWxcbiAqL1xuXG52YXIgUG9ydGFsID0gZnVuY3Rpb24gUG9ydGFsKF9yZWYpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbixcbiAgICAgIF9yZWYkdHlwZSA9IF9yZWYudHlwZSxcbiAgICAgIHR5cGUgPSBfcmVmJHR5cGUgPT09IHZvaWQgMCA/IFwicmVhY2gtcG9ydGFsXCIgOiBfcmVmJHR5cGUsXG4gICAgICBjb250YWluZXJSZWYgPSBfcmVmLmNvbnRhaW5lclJlZjtcbiAgdmFyIG1vdW50Tm9kZSA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHBvcnRhbE5vZGUgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBmb3JjZVVwZGF0ZSA9IHVzZUZvcmNlVXBkYXRlKCk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoY29udGFpbmVyUmVmICE9IG51bGwpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyh0eXBlb2YgY29udGFpbmVyUmVmID09PSBcIm9iamVjdFwiICYmIFwiY3VycmVudFwiIGluIGNvbnRhaW5lclJlZiwgXCJAcmVhY2gvcG9ydGFsOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCB0byB0aGUgYGNvbnRhaW5lclJlZmAgb2YgYSBcIiArIFwiYFBvcnRhbGAuIFRoZSBwb3J0YWwgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZG9jdW1lbnQgYm9keSwgYnV0IGlmIFwiICsgXCJ5b3Ugd2FudCB0byBhdHRhY2ggaXQgdG8gYW5vdGhlciBET00gbm9kZSB5b3UgbXVzdCBwYXNzIGEgdmFsaWQgXCIgKyBcIlJlYWN0IHJlZiBvYmplY3QgdG8gYGNvbnRhaW5lclJlZmAuXCIpIDogdm9pZCAwO1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKGNvbnRhaW5lclJlZiA/IGNvbnRhaW5lclJlZi5jdXJyZW50ICE9IG51bGwgOiB0cnVlLCBcIkByZWFjaC9wb3J0YWw6IEEgcmVmIHdhcyBwYXNzZWQgdG8gdGhlIGBjb250YWluZXJSZWZgIHByb3Agb2YgYSBcIiArIFwiYFBvcnRhbGAsIGJ1dCBubyBET00gbm9kZSB3YXMgYXR0YWNoZWQgdG8gaXQuIEJlIHN1cmUgdG8gcGFzcyB0aGUgXCIgKyBcInJlZiB0byBhIERPTSBjb21wb25lbnQuXFxuXFxuSWYgeW91IGFyZSBmb3J3YXJkaW5nIHRoZSByZWYgZnJvbSBcIiArIFwiYW5vdGhlciBjb21wb25lbnQsIGJlIHN1cmUgdG8gdXNlIHRoZSBSZWFjdC5mb3J3YXJkUmVmIEFQSS4gXCIgKyBcIlNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvZm9yd2FyZGluZy1yZWZzLmh0bWwuXCIpIDogdm9pZCAwO1xuICAgICAgfVxuICAgIH0sIFtjb250YWluZXJSZWZdKTtcbiAgfVxuXG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIC8vIFRoaXMgcmVmIG1heSBiZSBudWxsIHdoZW4gYSBob3QtbG9hZGVyIHJlcGxhY2VzIGNvbXBvbmVudHMgb24gdGhlIHBhZ2VcbiAgICBpZiAoIW1vdW50Tm9kZS5jdXJyZW50KSByZXR1cm47IC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgY29udGVudCBvZiB0aGUgcG9ydGFsIGhhcywgaXRzZWxmLCBiZWVuIHBvcnRhbGVkLlxuICAgIC8vIEluIHRoYXQgY2FzZSwgaXQncyBpbXBvcnRhbnQgdG8gYXBwZW5kIHRvIHRoZSBjb3JyZWN0IGRvY3VtZW50IGVsZW1lbnQuXG5cbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IG1vdW50Tm9kZS5jdXJyZW50Lm93bmVyRG9jdW1lbnQ7XG4gICAgdmFyIGJvZHkgPSAoY29udGFpbmVyUmVmID09IG51bGwgPyB2b2lkIDAgOiBjb250YWluZXJSZWYuY3VycmVudCkgfHwgb3duZXJEb2N1bWVudC5ib2R5O1xuICAgIHBvcnRhbE5vZGUuY3VycmVudCA9IG93bmVyRG9jdW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlKTtcbiAgICBib2R5LmFwcGVuZENoaWxkKHBvcnRhbE5vZGUuY3VycmVudCk7XG4gICAgZm9yY2VVcGRhdGUoKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHBvcnRhbE5vZGUuY3VycmVudCAmJiBib2R5KSB7XG4gICAgICAgIGJvZHkucmVtb3ZlQ2hpbGQocG9ydGFsTm9kZS5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbdHlwZSwgZm9yY2VVcGRhdGUsIGNvbnRhaW5lclJlZl0pO1xuICByZXR1cm4gcG9ydGFsTm9kZS5jdXJyZW50ID8gLyojX19QVVJFX18qL2NyZWF0ZVBvcnRhbChjaGlsZHJlbiwgcG9ydGFsTm9kZS5jdXJyZW50KSA6IC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgcmVmOiBtb3VudE5vZGVcbiAgfSk7XG59O1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbCNwb3J0YWwtcHJvcHNcbiAqL1xuXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgUG9ydGFsLmRpc3BsYXlOYW1lID0gXCJQb3J0YWxcIjtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGRlZmF1bHQgUG9ydGFsO1xuZXhwb3J0IHsgUG9ydGFsIH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///368\n')},456:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n "LEAVE_TIMEOUT": () => (/* binding */ LEAVE_TIMEOUT),\n "MOUSE_REST_TIMEOUT": () => (/* binding */ MOUSE_REST_TIMEOUT),\n "Tooltip": () => (/* binding */ Tooltip),\n "TooltipPopup": () => (/* binding */ TooltipPopup),\n "default": () => (/* binding */ reach_tooltip_esm),\n "positionTooltip": () => (/* binding */ positionTooltip),\n "useTooltip": () => (/* binding */ useTooltip)\n});\n\n// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js + 2 modules\nvar compat_module = __webpack_require__(776);\n// EXTERNAL MODULE: ./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js\nvar reach_utils_use_isomorphic_layout_effect_esm = __webpack_require__(637);\n;// CONCATENATED MODULE: ./node_modules/@reach/auto-id/dist/reach-auto-id.esm.js\n\n\n\n/*\n * Welcome to @reach/auto-id!\n\n * Let\'s see if we can make sense of why this hook exists and its\n * implementation.\n *\n * Some background:\n * 1. Accessibility APIs rely heavily on element IDs\n * 2. Requiring developers to put IDs on every element in Reach UI is both\n * cumbersome and error-prone\n * 3. With a component model, we can generate IDs for them!\n *\n * Solution 1: Generate random IDs.\n *\n * This works great as long as you don\'t server render your app. When React (in\n * the client) tries to reuse the markup from the server, the IDs won\'t match\n * and React will then recreate the entire DOM tree.\n *\n * Solution 2: Increment an integer\n *\n * This sounds great. Since we\'re rendering the exact same tree on the server\n * and client, we can increment a counter and get a deterministic result between\n * client and server. Also, JS integers can go up to nine-quadrillion. I\'m\n * pretty sure the tab will be closed before an app never needs\n * 10 quadrillion IDs!\n *\n * Problem solved, right?\n *\n * Ah, but there\'s a catch! React\'s concurrent rendering makes this approach\n * non-deterministic. While the client and server will end up with the same\n * elements in the end, depending on suspense boundaries (and possibly some user\n * input during the initial render) the incrementing integers won\'t always match\n * up.\n *\n * Solution 3: Don\'t use IDs at all on the server; patch after first render.\n *\n * What we\'ve done here is solution 2 with some tricks. With this approach, the\n * ID returned is an empty string on the first render. This way the server and\n * client have the same markup no matter how wild the concurrent rendering may\n * have gotten.\n *\n * After the render, we patch up the components with an incremented ID. This\n * causes a double render on any components with `useId`. Shouldn\'t be a problem\n * since the components using this hook should be small, and we\'re only updating\n * the ID attribute on the DOM, nothing big is happening.\n *\n * It doesn\'t have to be an incremented number, though--we could do generate\n * random strings instead, but incrementing a number is probably the cheapest\n * thing we can do.\n *\n * Additionally, we only do this patchup on the very first client render ever.\n * Any calls to `useId` that happen dynamically in the client will be\n * populated immediately with a value. So, we only get the double render after\n * server hydration and never again, SO BACK OFF ALRIGHT?\n */\nvar serverHandoffComplete = false;\nvar id = 0;\n\nvar genId = function genId() {\n return ++id;\n};\n/**\n * useId\n *\n * Autogenerate IDs to facilitate WAI-ARIA and server rendering.\n *\n * Note: The returned ID will initially be `null` and will update after a\n * component mounts. Users may need to supply their own ID if they need\n * consistent values for SSR.\n *\n * @see Docs https://reach.tech/auto-id\n */\n\n\nfunction useId(idFromProps) {\n /*\n * If this instance isn\'t part of the initial render, we don\'t have to do the\n * double render/patch-up dance. We can just generate the ID and return it.\n */\n var initialId = idFromProps || (serverHandoffComplete ? genId() : null);\n\n var _React$useState = (0,compat_module.useState)(initialId),\n id = _React$useState[0],\n setId = _React$useState[1];\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.L)(function () {\n if (id === null) {\n /*\n * Patch the ID after render. We do this in `useLayoutEffect` to avoid any\n * rendering flicker, though it\'ll make the first render slower (unlikely\n * to matter, but you\'re welcome to measure your app and let us know if\n * it\'s a problem).\n */\n setId(genId());\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n (0,compat_module.useEffect)(function () {\n if (serverHandoffComplete === false) {\n /*\n * Flag all future uses of `useId` to skip the update dance. This is in\n * `useEffect` because it goes after `useLayoutEffect`, ensuring we don\'t\n * accidentally bail out of the patch-up dance prematurely.\n */\n serverHandoffComplete = true;\n }\n }, []);\n return id != null ? String(id) : undefined;\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/@reach/utils/can-use-dom/dist/reach-utils-can-use-dom.esm.js\nvar reach_utils_can_use_dom_esm = __webpack_require__(769);\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/owner-document/dist/reach-utils-owner-document.esm.js\n\n\n/**\n * Get an element\'s owner document. Useful when components are used in iframes\n * or other environments like dev tools.\n *\n * @param element\n */\n\nfunction getOwnerDocument(element) {\n return (0,reach_utils_can_use_dom_esm/* canUseDOM */.N)() ? element ? element.ownerDocument : document : null;\n}\n/**\n * TODO: Remove in 1.0\n */\n\nfunction getOwnerWindow(element) {\n var ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/get-document-dimensions/dist/reach-utils-get-document-dimensions.esm.js\n\n\n\n/**\n * Get the size of the working document minus the scrollbar offset.\n *\n * @param element\n */\n\nfunction getDocumentDimensions(element) {\n var _ownerDocument$docume, _ownerDocument$docume2;\n\n var ownerDocument = getOwnerDocument(element);\n var ownerWindow = ownerDocument.defaultView || window;\n\n if (!ownerDocument) {\n return {\n width: 0,\n height: 0\n };\n }\n\n return {\n width: (_ownerDocument$docume = ownerDocument.documentElement.clientWidth) != null ? _ownerDocument$docume : ownerWindow.innerWidth,\n height: (_ownerDocument$docume2 = ownerDocument.documentElement.clientHeight) != null ? _ownerDocument$docume2 : ownerWindow.innerHeight\n };\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/make-id/dist/reach-utils-make-id.esm.js\n/**\n * Joins strings to format IDs for compound components.\n *\n * @param args\n */\nfunction makeId() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.filter(function (val) {\n return val != null;\n }).join("--");\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/dev-utils/dist/reach-utils-dev-utils.esm.js\n\n\n/* eslint-disable react-hooks/rules-of-hooks */\nvar checkedPkgs = {};\n/**\n * Just a lil state logger\n *\n * @param state\n * @param DEBUG\n */\n\nfunction useStateLogger(state, DEBUG) {\n if (DEBUG === void 0) {\n DEBUG = false;\n }\n\n if (false) { var debugRef; }\n}\n/**\n * When in dev mode, checks that styles for a given `@reach` package are loaded.\n *\n * @param packageName Name of the package to check.\n * @example checkStyles("dialog") will check for styles for @reach/dialog\n */\n\nfunction checkStyles(packageName) {\n if (false) { var _ref, environment; }\n}\n/**\n * When in dev mode, checks that styles for a given `@reach` package are loaded.\n *\n * @param packageName Name of the package to check.\n * @example useCheckStyles("dialog") will check for styles for @reach/dialog\n */\n\nfunction useCheckStyles(packageName) {\n if (false) { var name; }\n}\n/**\n * Logs a warning in dev mode when a component switches from controlled to\n * uncontrolled, or vice versa\n *\n * A single prop should typically be used to determine whether or not a\n * component is controlled or not.\n *\n * @param controlledValue\n * @param controlledPropName\n * @param componentName\n */\n\nfunction useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n if (false) { var nameCache, controlledRef; }\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/type-check/dist/reach-utils-type-check.esm.js\n/**\n * Checks whether or not a value is a boolean.\n *\n * @param value\n */\nfunction isBoolean(value) {\n return typeof value === "boolean";\n}\n/**\n * Checks whether or not a value is a function.\n *\n * @param value\n */\n\nfunction isFunction(value) {\n // eslint-disable-next-line eqeqeq\n return !!(value && {}.toString.call(value) == "[object Function]");\n}\n/**\n * Checks whether or not a value is a number.\n *\n * @param value\n */\n\nfunction isNumber(value) {\n return typeof value === "number" && !isNaN(value);\n}\n/**\n * Checks whether or not a value is a string.\n *\n * @param value\n */\n\nfunction isString(value) {\n return typeof value === "string";\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/compose-refs/dist/reach-utils-compose-refs.esm.js\n\n\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\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(o);\n if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\n/**\n * Passes or assigns an arbitrary value to a ref function or object.\n *\n * @param ref\n * @param value\n */\nfunction assignRef(ref, value) {\n if (ref == null) return;\n\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error("Cannot assign value \\"" + value + "\\" to ref \\"" + ref + "\\"");\n }\n }\n}\n/**\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\n * dealing with components that need an explicit ref for DOM calculations but\n * also forwards refs assigned by an app.\n *\n * @param refs Refs to fork\n */\n\nfunction useComposedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return (0,compat_module.useCallback)(function (node) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n assignRef(ref, node);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, refs);\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/compose-event-handlers/dist/reach-utils-compose-event-handlers.esm.js\n/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return function (event) {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/@reach/portal/dist/reach-portal.esm.js + 1 modules\nvar reach_portal_esm = __webpack_require__(368);\n;// CONCATENATED MODULE: ./node_modules/@reach/visually-hidden/dist/reach-visually-hidden.esm.js\n\n\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = ["as", "style"];\n\n/**\n * VisuallyHidden\n *\n * Provides text for screen readers that is visually hidden.\n * It is the logical opposite of the `aria-hidden` attribute.\n */\nvar VisuallyHidden = /*#__PURE__*/(0,compat_module.forwardRef)(function VisuallyHidden(_ref, ref) {\n var _ref$as = _ref.as,\n Comp = _ref$as === void 0 ? "span" : _ref$as,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/(0,compat_module.createElement)(Comp, _extends({\n ref: ref,\n style: _extends({\n border: 0,\n clip: "rect(0 0 0 0)",\n height: "1px",\n margin: "-1px",\n overflow: "hidden",\n padding: 0,\n position: "absolute",\n width: "1px",\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: "nowrap",\n wordWrap: "normal"\n }, style)\n }, props));\n});\n/**\n * @see Docs https://reach.tech/visually-hidden#visuallyhidden-props\n */\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_visually_hidden_esm = ((/* unused pure expression or super */ null && (VisuallyHidden)));\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/observe-rect/dist/observe-rect.esm.js\nvar props = ["bottom", "height", "left", "right", "top", "width"];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes = /*#__PURE__*/new Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\n/* harmony default export */ const observe_rect_esm = (observeRect);\n//# sourceMappingURL=observe-rect.esm.js.map\n\n;// CONCATENATED MODULE: ./node_modules/@reach/rect/dist/reach-rect.esm.js\n\n\n\n\n\n\n\n/**\n * Welcome to @reach/rect!\n *\n * Measures DOM elements (aka. bounding client rect).\n *\n * @see getBoundingClientRect https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect\n * @see Docs https://reach.tech/rect\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/rect\n */\n\n/**\n * Rect\n *\n * @param props\n */\n\nvar Rect = function Rect(_ref) {\n var onChange = _ref.onChange,\n _ref$observe = _ref.observe,\n observe = _ref$observe === void 0 ? true : _ref$observe,\n children = _ref.children;\n var ref = useRef(null);\n var rect = useRect(ref, {\n observe: observe,\n onChange: onChange\n });\n return children({\n ref: ref,\n rect: rect\n });\n};\n/**\n * @see Docs https://reach.tech/rect#rect-props\n */\n\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n\n/**\n * useRect\n *\n * @param nodeRef\n * @param observe\n * @param onChange\n */\nfunction useRect(nodeRef, observeOrOptions, deprecated_onChange) {\n var observe;\n var onChange;\n\n if (isBoolean(observeOrOptions)) {\n observe = observeOrOptions;\n } else {\n var _observeOrOptions$obs;\n\n observe = (_observeOrOptions$obs = observeOrOptions == null ? void 0 : observeOrOptions.observe) != null ? _observeOrOptions$obs : true;\n onChange = observeOrOptions == null ? void 0 : observeOrOptions.onChange;\n }\n\n if (isFunction(deprecated_onChange)) {\n onChange = deprecated_onChange;\n }\n\n if (false) {}\n\n var _React$useState = (0,compat_module.useState)(nodeRef.current),\n element = _React$useState[0],\n setElement = _React$useState[1];\n\n var initialRectIsSet = (0,compat_module.useRef)(false);\n var initialRefIsSet = (0,compat_module.useRef)(false);\n\n var _React$useState2 = (0,compat_module.useState)(null),\n rect = _React$useState2[0],\n setRect = _React$useState2[1];\n\n var onChangeRef = (0,compat_module.useRef)(onChange); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.L)(function () {\n onChangeRef.current = onChange;\n\n if (nodeRef.current !== element) {\n setElement(nodeRef.current);\n }\n });\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.L)(function () {\n if (element && !initialRectIsSet.current) {\n initialRectIsSet.current = true;\n setRect(element.getBoundingClientRect());\n }\n }, [element]);\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.L)(function () {\n if (!observe) {\n return;\n }\n\n var elem = element; // State initializes before refs are placed, meaning the element state will\n // be undefined on the first render. We still want the rect on the first\n // render, so initially we\'ll use the nodeRef that was passed instead of\n // state for our measurements.\n\n if (!initialRefIsSet.current) {\n initialRefIsSet.current = true;\n elem = nodeRef.current;\n }\n\n if (!elem) {\n if (false) {}\n\n return;\n }\n\n var observer = observe_rect_esm(elem, function (rect) {\n onChangeRef.current == null ? void 0 : onChangeRef.current(rect);\n setRect(rect);\n });\n observer.observe();\n return function () {\n observer.unobserve();\n };\n }, [observe, element, nodeRef]);\n return rect;\n}\n\n/* harmony default export */ const reach_rect_esm = ((/* unused pure expression or super */ null && (Rect)));\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/tooltip/dist/reach-tooltip.esm.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction reach_tooltip_esm_extends() {\n reach_tooltip_esm_extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return reach_tooltip_esm_extends.apply(this, arguments);\n}\n\nfunction reach_tooltip_esm_objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar reach_tooltip_esm_excluded = ["children", "label", "ariaLabel", "id", "DEBUG_STYLE"],\n _excluded2 = ["label", "ariaLabel", "isVisible", "id"],\n _excluded3 = ["ariaLabel", "aria-label", "as", "id", "isVisible", "label", "position", "style", "triggerRect"],\n _excluded4 = ["type"];\n\nvar _on, _on2, _on3, _on4, _on5, _states;\nvar MOUSE_REST_TIMEOUT = 100;\nvar LEAVE_TIMEOUT = 500; ////////////////////////////////////////////////////////////////////////////////\n// States\n\nvar TooltipStates; ////////////////////////////////////////////////////////////////////////////////\n// Events\n\n(function (TooltipStates) {\n TooltipStates["Idle"] = "IDLE";\n TooltipStates["Focused"] = "FOCUSED";\n TooltipStates["Visible"] = "VISIBLE";\n TooltipStates["LeavingVisible"] = "LEAVING_VISIBLE";\n TooltipStates["Dismissed"] = "DISMISSED";\n})(TooltipStates || (TooltipStates = {}));\n\nvar TooltipEvents;\n\n(function (TooltipEvents) {\n TooltipEvents["Blur"] = "BLUR";\n TooltipEvents["Focus"] = "FOCUS";\n TooltipEvents["GlobalMouseMove"] = "GLOBAL_MOUSE_MOVE";\n TooltipEvents["MouseDown"] = "MOUSE_DOWN";\n TooltipEvents["MouseEnter"] = "MOUSE_ENTER";\n TooltipEvents["MouseLeave"] = "MOUSE_LEAVE";\n TooltipEvents["MouseMove"] = "MOUSE_MOVE";\n TooltipEvents["Rest"] = "REST";\n TooltipEvents["SelectWithKeyboard"] = "SELECT_WITH_KEYBOARD";\n TooltipEvents["TimeComplete"] = "TIME_COMPLETE";\n})(TooltipEvents || (TooltipEvents = {}));\n\nvar chart = {\n initial: TooltipStates.Idle,\n states: (_states = {}, _states[TooltipStates.Idle] = {\n enter: clearContextId,\n on: (_on = {}, _on[TooltipEvents.MouseEnter] = TooltipStates.Focused, _on[TooltipEvents.Focus] = TooltipStates.Visible, _on)\n }, _states[TooltipStates.Focused] = {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: (_on2 = {}, _on2[TooltipEvents.MouseMove] = TooltipStates.Focused, _on2[TooltipEvents.MouseLeave] = TooltipStates.Idle, _on2[TooltipEvents.MouseDown] = TooltipStates.Dismissed, _on2[TooltipEvents.Blur] = TooltipStates.Idle, _on2[TooltipEvents.Rest] = TooltipStates.Visible, _on2)\n }, _states[TooltipStates.Visible] = {\n on: (_on3 = {}, _on3[TooltipEvents.Focus] = TooltipStates.Focused, _on3[TooltipEvents.MouseEnter] = TooltipStates.Focused, _on3[TooltipEvents.MouseLeave] = TooltipStates.LeavingVisible, _on3[TooltipEvents.Blur] = TooltipStates.LeavingVisible, _on3[TooltipEvents.MouseDown] = TooltipStates.Dismissed, _on3[TooltipEvents.SelectWithKeyboard] = TooltipStates.Dismissed, _on3[TooltipEvents.GlobalMouseMove] = TooltipStates.LeavingVisible, _on3)\n }, _states[TooltipStates.LeavingVisible] = {\n enter: startLeavingVisibleTimer,\n leave: function leave() {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: (_on4 = {}, _on4[TooltipEvents.MouseEnter] = TooltipStates.Visible, _on4[TooltipEvents.Focus] = TooltipStates.Visible, _on4[TooltipEvents.TimeComplete] = TooltipStates.Idle, _on4)\n }, _states[TooltipStates.Dismissed] = {\n leave: function leave() {\n clearContextId();\n },\n on: (_on5 = {}, _on5[TooltipEvents.MouseLeave] = TooltipStates.Idle, _on5[TooltipEvents.Blur] = TooltipStates.Idle, _on5)\n }, _states)\n};\n/*\n * Chart context allows us to persist some data around, in Tooltip all we use\n * is the id of the current tooltip being interacted with.\n */\n\nvar state = {\n value: chart.initial,\n context: {\n id: null\n }\n}; ////////////////////////////////////////////////////////////////////////////////\n// Subscriptions:\n//\n// We could require apps to render a <TooltipProvider> around the app and use\n// React context to notify Tooltips of changes to our state machine, instead\n// we manage subscriptions ourselves and simplify the Tooltip API.\n//\n// Maybe if default context could take a hook (instead of just a static value)\n// that was rendered at the root for us, that\'d be cool! But it doesn\'t.\n\nvar subscriptions = [];\n\nfunction subscribe(fn) {\n subscriptions.push(fn);\n return function () {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n}\n\nfunction notify() {\n subscriptions.forEach(function (fn) {\n return fn(state);\n });\n} ////////////////////////////////////////////////////////////////////////////////\n// Timeouts:\n// Manages when the user "rests" on an element. Keeps the interface from being\n// flashing tooltips all the time as the user moves the mouse around the screen.\n\n\nvar restTimeout;\n\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(function () {\n send({\n type: TooltipEvents.Rest\n });\n }, MOUSE_REST_TIMEOUT);\n}\n\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n} // Manages the delay to hide the tooltip after rest leaves.\n\n\nvar leavingVisibleTimer;\n\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(function () {\n return send({\n type: TooltipEvents.TimeComplete\n });\n }, LEAVE_TIMEOUT);\n}\n\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n} // allows us to come on back later w/o entering something else first after the\n// user leaves or dismisses\n\n\nfunction clearContextId() {\n state.context.id = null;\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * useTooltip\n *\n * @param params\n */\n\n\nfunction useTooltip(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n idProp = _ref.id,\n onPointerEnter = _ref.onPointerEnter,\n onPointerMove = _ref.onPointerMove,\n onPointerLeave = _ref.onPointerLeave,\n onPointerDown = _ref.onPointerDown,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onMouseDown = _ref.onMouseDown,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onKeyDown = _ref.onKeyDown,\n disabled = _ref.disabled,\n forwardedRef = _ref.ref,\n DEBUG_STYLE = _ref.DEBUG_STYLE;\n\n var id = String(useId(idProp));\n\n var _React$useState = (0,compat_module.useState)(DEBUG_STYLE ? true : isTooltipVisible(id, true)),\n isVisible = _React$useState[0],\n setIsVisible = _React$useState[1]; // hopefully they always pass a ref if they ever pass one\n\n\n var ownRef = (0,compat_module.useRef)(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var triggerRect = useRect(ownRef, {\n observe: isVisible\n });\n (0,compat_module.useEffect)(function () {\n return subscribe(function () {\n setIsVisible(isTooltipVisible(id));\n });\n }, [id]);\n useCheckStyles("tooltip");\n (0,compat_module.useEffect)(function () {\n var ownerDocument = getOwnerDocument(ownRef.current);\n\n function listener(event) {\n if ((event.key === "Escape" || event.key === "Esc") && state.value === TooltipStates.Visible) {\n send({\n type: TooltipEvents.SelectWithKeyboard\n });\n }\n }\n\n ownerDocument.addEventListener("keydown", listener);\n return function () {\n return ownerDocument.removeEventListener("keydown", listener);\n };\n }, []);\n useDisabledTriggerOnSafari({\n disabled: disabled,\n isVisible: isVisible,\n ref: ownRef\n });\n\n function wrapMouseEvent(theirHandler, ourHandler) {\n // Use internal MouseEvent handler only if PointerEvent is not supported\n if (typeof window !== "undefined" && "PointerEvent" in window) {\n return theirHandler;\n }\n\n return composeEventHandlers(theirHandler, ourHandler);\n }\n\n function wrapPointerEventHandler(handler) {\n return function onPointerEvent(event) {\n // Handle pointer events only from mouse device\n if (event.pointerType !== "mouse") {\n return;\n }\n\n handler(event);\n };\n }\n\n function handleMouseEnter() {\n send({\n type: TooltipEvents.MouseEnter,\n id: id\n });\n }\n\n function handleMouseMove() {\n send({\n type: TooltipEvents.MouseMove,\n id: id\n });\n }\n\n function handleMouseLeave() {\n send({\n type: TooltipEvents.MouseLeave\n });\n }\n\n function handleMouseDown() {\n // Allow quick click from one tool to another\n if (state.context.id === id) {\n send({\n type: TooltipEvents.MouseDown\n });\n }\n }\n\n function handleFocus() {\n // @ts-ignore\n if (window.__REACH_DISABLE_TOOLTIPS) {\n return;\n }\n\n send({\n type: TooltipEvents.Focus,\n id: id\n });\n }\n\n function handleBlur() {\n // Allow quick click from one tool to another\n if (state.context.id === id) {\n send({\n type: TooltipEvents.Blur\n });\n }\n }\n\n function handleKeyDown(event) {\n if (event.key === "Enter" || event.key === " ") {\n send({\n type: TooltipEvents.SelectWithKeyboard\n });\n }\n }\n\n var trigger = {\n // The element that triggers the tooltip references the tooltip element with\n // `aria-describedby`.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip\n "aria-describedby": isVisible ? makeId("tooltip", id) : undefined,\n "data-state": isVisible ? "tooltip-visible" : "tooltip-hidden",\n "data-reach-tooltip-trigger": "",\n ref: ref,\n onPointerEnter: composeEventHandlers(onPointerEnter, wrapPointerEventHandler(handleMouseEnter)),\n onPointerMove: composeEventHandlers(onPointerMove, wrapPointerEventHandler(handleMouseMove)),\n onPointerLeave: composeEventHandlers(onPointerLeave, wrapPointerEventHandler(handleMouseLeave)),\n onPointerDown: composeEventHandlers(onPointerDown, wrapPointerEventHandler(handleMouseDown)),\n onMouseEnter: wrapMouseEvent(onMouseEnter, handleMouseEnter),\n onMouseMove: wrapMouseEvent(onMouseMove, handleMouseMove),\n onMouseLeave: wrapMouseEvent(onMouseLeave, handleMouseLeave),\n onMouseDown: wrapMouseEvent(onMouseDown, handleMouseDown),\n onFocus: composeEventHandlers(onFocus, handleFocus),\n onBlur: composeEventHandlers(onBlur, handleBlur),\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown)\n };\n var tooltip = {\n id: id,\n triggerRect: triggerRect,\n isVisible: isVisible\n };\n return [trigger, tooltip, isVisible];\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Tooltip\n *\n * @see Docs https://reach.tech/tooltip#tooltip\n */\n\n\nvar Tooltip = /*#__PURE__*/(0,compat_module.forwardRef)(function (_ref2, forwardedRef) {\n var children = _ref2.children,\n label = _ref2.label,\n DEPRECATED_ariaLabel = _ref2.ariaLabel,\n id = _ref2.id,\n DEBUG_STYLE = _ref2.DEBUG_STYLE,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref2, reach_tooltip_esm_excluded);\n\n var child = compat_module.Children.only(children);\n false ? 0 : void 0; // We need to pass some properties from the child into useTooltip\n // to make sure users can maintain control over the trigger\'s ref and events\n\n var _useTooltip = useTooltip({\n id: id,\n onPointerEnter: child.props.onPointerEnter,\n onPointerMove: child.props.onPointerMove,\n onPointerLeave: child.props.onPointerLeave,\n onPointerDown: child.props.onPointerDown,\n onMouseEnter: child.props.onMouseEnter,\n onMouseMove: child.props.onMouseMove,\n onMouseLeave: child.props.onMouseLeave,\n onMouseDown: child.props.onMouseDown,\n onFocus: child.props.onFocus,\n onBlur: child.props.onBlur,\n onKeyDown: child.props.onKeyDown,\n disabled: child.props.disabled,\n ref: child.ref,\n DEBUG_STYLE: DEBUG_STYLE\n }),\n trigger = _useTooltip[0],\n tooltip = _useTooltip[1];\n\n return /*#__PURE__*/(0,compat_module.createElement)(compat_module.Fragment, null, /*#__PURE__*/(0,compat_module.cloneElement)(child, trigger), /*#__PURE__*/(0,compat_module.createElement)(TooltipPopup, reach_tooltip_esm_extends({\n ref: forwardedRef,\n label: label,\n "aria-label": DEPRECATED_ariaLabel\n }, tooltip, props)));\n});\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * TooltipPopup\n *\n * @see Docs https://reach.tech/tooltip#tooltippopup\n */\n\n\nvar TooltipPopup = /*#__PURE__*/(0,compat_module.forwardRef)(function TooltipPopup(_ref3, forwardRef) {\n var label = _ref3.label,\n DEPRECATED_ariaLabel = _ref3.ariaLabel,\n isVisible = _ref3.isVisible,\n id = _ref3.id,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref3, _excluded2);\n\n return isVisible ? /*#__PURE__*/(0,compat_module.createElement)(reach_portal_esm.Portal, null, /*#__PURE__*/(0,compat_module.createElement)(TooltipContent, reach_tooltip_esm_extends({\n ref: forwardRef,\n label: label,\n "aria-label": DEPRECATED_ariaLabel,\n isVisible: isVisible\n }, props, {\n id: makeId("tooltip", String(id))\n }))) : null;\n});\n\nif (false) {}\n/**\n * TooltipContent\n *\n * We need a separate component so that useRect works inside the portal.\n *\n * @see Docs https://reach.tech/tooltip#tooltipcontent\n */\n\n\nvar TooltipContent = /*#__PURE__*/(0,compat_module.forwardRef)(function TooltipContent(_ref4, forwardedRef) {\n var ariaLabel = _ref4.ariaLabel,\n realAriaLabel = _ref4["aria-label"],\n _ref4$as = _ref4.as,\n Comp = _ref4$as === void 0 ? "div" : _ref4$as,\n id = _ref4.id,\n isVisible = _ref4.isVisible,\n label = _ref4.label,\n _ref4$position = _ref4.position,\n position = _ref4$position === void 0 ? positionTooltip : _ref4$position,\n style = _ref4.style,\n triggerRect = _ref4.triggerRect,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref4, _excluded3);\n\n // The element that serves as the tooltip container has role tooltip.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip When an app passes\n // an `aria-label`, we actually want to implement `role="tooltip"` on a\n // visually hidden element inside of the trigger. In these cases we want the\n // screen reader user to know both the content in the tooltip, but also the\n // content in the badge. For screen reader users, the only content announced\n // to them is whatever is in the tooltip.\n var hasAriaLabel = (realAriaLabel || ariaLabel) != null;\n var ownRef = (0,compat_module.useRef)(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var tooltipRect = useRect(ownRef, {\n observe: isVisible\n });\n return /*#__PURE__*/(0,compat_module.createElement)(compat_module.Fragment, null, /*#__PURE__*/(0,compat_module.createElement)(Comp, reach_tooltip_esm_extends({\n role: hasAriaLabel ? undefined : "tooltip"\n }, props, {\n ref: ref,\n "data-reach-tooltip": "",\n id: hasAriaLabel ? undefined : id,\n style: reach_tooltip_esm_extends({}, style, getStyles(position, triggerRect, tooltipRect))\n }), label), hasAriaLabel && /*#__PURE__*/(0,compat_module.createElement)(VisuallyHidden, {\n role: "tooltip",\n id: id\n }, realAriaLabel || ariaLabel));\n});\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction getStyles(position, triggerRect, tooltipRect) {\n var haventMeasuredTooltipYet = !tooltipRect;\n\n if (haventMeasuredTooltipYet) {\n return {\n visibility: "hidden"\n };\n }\n\n return position(triggerRect, tooltipRect);\n} // Default offset from the trigger (e.g., if the tooltip is positioned above,\n// there will be 8px between the bottom of the tooltip and the top of the trigger).\n// It feels awkward when it\'s perfectly aligned w/ the trigger\n\n\nvar OFFSET_DEFAULT = 8;\nvar positionTooltip = function positionTooltip(triggerRect, tooltipRect, offset) {\n if (offset === void 0) {\n offset = OFFSET_DEFAULT;\n }\n\n var _getDocumentDimension = getDocumentDimensions(),\n windowWidth = _getDocumentDimension.width,\n windowHeight = _getDocumentDimension.height;\n\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n\n var collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n right: windowWidth < triggerRect.left + tooltipRect.width,\n bottom: windowHeight < triggerRect.bottom + tooltipRect.height + offset,\n left: triggerRect.left - tooltipRect.width < 0\n };\n var directionRight = collisions.right && !collisions.left;\n var directionUp = collisions.bottom && !collisions.top;\n return {\n left: directionRight ? triggerRect.right - tooltipRect.width + window.pageXOffset + "px" : triggerRect.left + window.pageXOffset + "px",\n top: directionUp ? triggerRect.top - offset - tooltipRect.height + window.pageYOffset + "px" : triggerRect.top + offset + triggerRect.height + window.pageYOffset + "px"\n };\n};\n/**\n * This is a workaround for using tooltips with disabled controls in Safari.\n * Safari fires `pointerenter` but does not fire `pointerleave`, and\n * `onPointerEventLeave` added to the trigger element will not work.\n *\n * TODO: We may remove or modiify this behavior in a future version. Direction\n * from WAI-ARIA needed for guidance on handling disabled triggers. Tooltips\n * must be accessible by keyboard, and disabled form controls are generally\n * excluded from the tab sequence.\n *\n * @see https://github.com/reach/reach-ui/issues/564\n * @see https://github.com/w3c/aria-practices/issues/128#issuecomment-588625727\n */\n\nfunction useDisabledTriggerOnSafari(_ref5) {\n var disabled = _ref5.disabled,\n isVisible = _ref5.isVisible,\n ref = _ref5.ref;\n (0,compat_module.useEffect)(function () {\n if (!(typeof window !== "undefined" && "PointerEvent" in window) || !disabled || !isVisible) {\n return;\n }\n\n var ownerDocument = getOwnerDocument(ref.current);\n\n function handleMouseMove(event) {\n if (!isVisible) {\n return;\n }\n\n if (event.target instanceof Element && event.target.closest("[data-reach-tooltip-trigger][data-state=\'tooltip-visible\']")) {\n return;\n }\n\n send({\n type: TooltipEvents.GlobalMouseMove\n });\n }\n\n ownerDocument.addEventListener("mousemove", handleMouseMove);\n return function () {\n ownerDocument.removeEventListener("mousemove", handleMouseMove);\n };\n }, [disabled, isVisible, ref]);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Send an event to our state machine to find the next state from the current\n * state + action.\n *\n * It also manages lifecycles of the machine, (enter/leave hooks on the state\n * chart)\n *\n * @param event\n * @param payload\n */\n\n\nfunction send(event) {\n var _transition = transition(state, event),\n value = _transition.value,\n context = _transition.context,\n changed = _transition.changed;\n\n if (changed) {\n state = {\n value: value,\n context: context\n };\n notify();\n }\n}\n\nfunction transition(currentState, event) {\n var stateDef = chart.states[currentState.value];\n var nextState = stateDef && stateDef.on && stateDef.on[event.type]; // Really useful for debugging\n // console.log({ event, state, nextState, contextId: context.id });\n // !nextState && console.log("no transition taken");\n\n if (!nextState) {\n return reach_tooltip_esm_extends({}, currentState, {\n changed: false\n });\n }\n\n if (stateDef && stateDef.leave) {\n stateDef.leave(currentState.context, event);\n }\n\n event.type;\n var payload = reach_tooltip_esm_objectWithoutPropertiesLoose(event, _excluded4); // TODO: Use actions instead of directly setting context\n\n\n var context = reach_tooltip_esm_extends({}, state.context, payload);\n\n var nextStateValue = typeof nextState === "string" ? nextState : nextState.target;\n var nextDef = chart.states[nextStateValue];\n\n if (nextDef && nextDef.enter) {\n nextDef.enter(currentState.context, event);\n }\n\n return {\n value: nextStateValue,\n context: context,\n changed: true\n };\n}\n\nfunction isTooltipVisible(id, initial) {\n return state.context.id === id && (initial ? state.value === TooltipStates.Visible : state.value === TooltipStates.Visible || state.value === TooltipStates.LeavingVisible);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_tooltip_esm = (Tooltip);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLDJCQUFTO0FBQ1g7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixnQkFBZ0I7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0VBQXNFO0FBQ3RFLG1CQUFtQixnREFBZ0Q7QUFDbkU7O0FBRUE7QUFDQSxXQUFXLHlCQUFRLEdBQUc7QUFDdEI7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLDhDQUE2QixxQkFBcUI7OztBQUd0RSxnQkFBZ0IseUJBQVEsR0FBRzs7QUFFM0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOztBQUVGLHdEQUFlLE9BQU8sRUFBQztBQUMwRSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC9hdXRvLWlkL2Rpc3QvcmVhY2gtYXV0by1pZC5lc20uanM/Mjg3YSIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvb3duZXItZG9jdW1lbnQvZGlzdC9yZWFjaC11dGlscy1vd25lci1kb2N1bWVudC5lc20uanM/YTc2YyIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvZ2V0LWRvY3VtZW50LWRpbWVuc2lvbnMvZGlzdC9yZWFjaC11dGlscy1nZXQtZG9jdW1lbnQtZGltZW5zaW9ucy5lc20uanM/NzlkOCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvbWFrZS1pZC9kaXN0L3JlYWNoLXV0aWxzLW1ha2UtaWQuZXNtLmpzP2Q4ODYiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2Rldi11dGlscy9kaXN0L3JlYWNoLXV0aWxzLWRldi11dGlscy5lc20uanM/NjViNSIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdHlwZS1jaGVjay9kaXN0L3JlYWNoLXV0aWxzLXR5cGUtY2hlY2suZXNtLmpzP2I4ZWEiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2NvbXBvc2UtcmVmcy9kaXN0L3JlYWNoLXV0aWxzLWNvbXBvc2UtcmVmcy5lc20uanM/YTYzMCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvY29tcG9zZS1ldmVudC1oYW5kbGVycy9kaXN0L3JlYWNoLXV0aWxzLWNvbXBvc2UtZXZlbnQtaGFuZGxlcnMuZXNtLmpzP2YxOWMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3Zpc3VhbGx5LWhpZGRlbi9kaXN0L3JlYWNoLXZpc3VhbGx5LWhpZGRlbi5lc20uanM/ZTk3NCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvb2JzZXJ2ZS1yZWN0L2Rpc3Qvb2JzZXJ2ZS1yZWN0LmVzbS5qcz80NGJhIiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC9yZWN0L2Rpc3QvcmVhY2gtcmVjdC5lc20uanM/Y2JmNyIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdG9vbHRpcC9kaXN0L3JlYWNoLXRvb2x0aXAuZXNtLmpzP2UyNjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5cbi8qXG4gKiBXZWxjb21lIHRvIEByZWFjaC9hdXRvLWlkIVxuXG4gKiBMZXQncyBzZWUgaWYgd2UgY2FuIG1ha2Ugc2Vuc2Ugb2Ygd2h5IHRoaXMgaG9vayBleGlzdHMgYW5kIGl0c1xuICogaW1wbGVtZW50YXRpb24uXG4gKlxuICogU29tZSBiYWNrZ3JvdW5kOlxuICogICAxLiBBY2Nlc3NpYmlsaXR5IEFQSXMgcmVseSBoZWF2aWx5IG9uIGVsZW1lbnQgSURzXG4gKiAgIDIuIFJlcXVpcmluZyBkZXZlbG9wZXJzIHRvIHB1dCBJRHMgb24gZXZlcnkgZWxlbWVudCBpbiBSZWFjaCBVSSBpcyBib3RoXG4gKiAgICAgIGN1bWJlcnNvbWUgYW5kIGVycm9yLXByb25lXG4gKiAgIDMuIFdpdGggYSBjb21wb25lbnQgbW9kZWwsIHdlIGNhbiBnZW5lcmF0ZSBJRHMgZm9yIHRoZW0hXG4gKlxuICogU29sdXRpb24gMTogR2VuZXJhdGUgcmFuZG9tIElEcy5cbiAqXG4gKiBUaGlzIHdvcmtzIGdyZWF0IGFzIGxvbmcgYXMgeW91IGRvbid0IHNlcnZlciByZW5kZXIgeW91ciBhcHAuIFdoZW4gUmVhY3QgKGluXG4gKiB0aGUgY2xpZW50KSB0cmllcyB0byByZXVzZSB0aGUgbWFya3VwIGZyb20gdGhlIHNlcnZlciwgdGhlIElEcyB3b24ndCBtYXRjaFxuICogYW5kIFJlYWN0IHdpbGwgdGhlbiByZWNyZWF0ZSB0aGUgZW50aXJlIERPTSB0cmVlLlxuICpcbiAqIFNvbHV0aW9uIDI6IEluY3JlbWVudCBhbiBpbnRlZ2VyXG4gKlxuICogVGhpcyBzb3VuZHMgZ3JlYXQuIFNpbmNlIHdlJ3JlIHJlbmRlcmluZyB0aGUgZXhhY3Qgc2FtZSB0cmVlIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCBjbGllbnQsIHdlIGNhbiBpbmNyZW1lbnQgYSBjb3VudGVyIGFuZCBnZXQgYSBkZXRlcm1pbmlzdGljIHJlc3VsdCBiZXR3ZWVuXG4gKiBjbGllbnQgYW5kIHNlcnZlci4gQWxzbywgSlMgaW50ZWdlcnMgY2FuIGdvIHVwIHRvIG5pbmUtcXVhZHJpbGxpb24uIEknbVxuICogcHJldHR5IHN1cmUgdGhlIHRhYiB3aWxsIGJlIGNsb3NlZCBiZWZvcmUgYW4gYXBwIG5ldmVyIG5lZWRzXG4gKiAxMCBxdWFkcmlsbGlvbiBJRHMhXG4gKlxuICogUHJvYmxlbSBzb2x2ZWQsIHJpZ2h0P1xuICpcbiAqIEFoLCBidXQgdGhlcmUncyBhIGNhdGNoISBSZWFjdCdzIGNvbmN1cnJlbnQgcmVuZGVyaW5nIG1ha2VzIHRoaXMgYXBwcm9hY2hcbiAqIG5vbi1kZXRlcm1pbmlzdGljLiBXaGlsZSB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgd2lsbCBlbmQgdXAgd2l0aCB0aGUgc2FtZVxuICogZWxlbWVudHMgaW4gdGhlIGVuZCwgZGVwZW5kaW5nIG9uIHN1c3BlbnNlIGJvdW5kYXJpZXMgKGFuZCBwb3NzaWJseSBzb21lIHVzZXJcbiAqIGlucHV0IGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIpIHRoZSBpbmNyZW1lbnRpbmcgaW50ZWdlcnMgd29uJ3QgYWx3YXlzIG1hdGNoXG4gKiB1cC5cbiAqXG4gKiBTb2x1dGlvbiAzOiBEb24ndCB1c2UgSURzIGF0IGFsbCBvbiB0aGUgc2VydmVyOyBwYXRjaCBhZnRlciBmaXJzdCByZW5kZXIuXG4gKlxuICogV2hhdCB3ZSd2ZSBkb25lIGhlcmUgaXMgc29sdXRpb24gMiB3aXRoIHNvbWUgdHJpY2tzLiBXaXRoIHRoaXMgYXBwcm9hY2gsIHRoZVxuICogSUQgcmV0dXJuZWQgaXMgYW4gZW1wdHkgc3RyaW5nIG9uIHRoZSBmaXJzdCByZW5kZXIuIFRoaXMgd2F5IHRoZSBzZXJ2ZXIgYW5kXG4gKiBjbGllbnQgaGF2ZSB0aGUgc2FtZSBtYXJrdXAgbm8gbWF0dGVyIGhvdyB3aWxkIHRoZSBjb25jdXJyZW50IHJlbmRlcmluZyBtYXlcbiAqIGhhdmUgZ290dGVuLlxuICpcbiAqIEFmdGVyIHRoZSByZW5kZXIsIHdlIHBhdGNoIHVwIHRoZSBjb21wb25lbnRzIHdpdGggYW4gaW5jcmVtZW50ZWQgSUQuIFRoaXNcbiAqIGNhdXNlcyBhIGRvdWJsZSByZW5kZXIgb24gYW55IGNvbXBvbmVudHMgd2l0aCBgdXNlSWRgLiBTaG91bGRuJ3QgYmUgYSBwcm9ibGVtXG4gKiBzaW5jZSB0aGUgY29tcG9uZW50cyB1c2luZyB0aGlzIGhvb2sgc2hvdWxkIGJlIHNtYWxsLCBhbmQgd2UncmUgb25seSB1cGRhdGluZ1xuICogdGhlIElEIGF0dHJpYnV0ZSBvbiB0aGUgRE9NLCBub3RoaW5nIGJpZyBpcyBoYXBwZW5pbmcuXG4gKlxuICogSXQgZG9lc24ndCBoYXZlIHRvIGJlIGFuIGluY3JlbWVudGVkIG51bWJlciwgdGhvdWdoLS13ZSBjb3VsZCBkbyBnZW5lcmF0ZVxuICogcmFuZG9tIHN0cmluZ3MgaW5zdGVhZCwgYnV0IGluY3JlbWVudGluZyBhIG51bWJlciBpcyBwcm9iYWJseSB0aGUgY2hlYXBlc3RcbiAqIHRoaW5nIHdlIGNhbiBkby5cbiAqXG4gKiBBZGRpdGlvbmFsbHksIHdlIG9ubHkgZG8gdGhpcyBwYXRjaHVwIG9uIHRoZSB2ZXJ5IGZpcnN0IGNsaWVudCByZW5kZXIgZXZlci5cbiAqIEFueSBjYWxscyB0byBgdXNlSWRgIHRoYXQgaGFwcGVuIGR5bmFtaWNhbGx5IGluIHRoZSBjbGllbnQgd2lsbCBiZVxuICogcG9wdWxhdGVkIGltbWVkaWF0ZWx5IHdpdGggYSB2YWx1ZS4gU28sIHdlIG9ubHkgZ2V0IHRoZSBkb3VibGUgcmVuZGVyIGFmdGVyXG4gKiBzZXJ2ZXIgaHlkcmF0aW9uIGFuZCBuZXZlciBhZ2FpbiwgU08gQkFDSyBPRkYgQUxSSUdIVD9cbiAqL1xudmFyIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IGZhbHNlO1xudmFyIGlkID0gMDtcblxudmFyIGdlbklkID0gZnVuY3Rpb24gZ2VuSWQoKSB7XG4gIHJldHVybiArK2lkO1xufTtcbi8qKlxuICogdXNlSWRcbiAqXG4gKiBBdXRvZ2VuZXJhdGUgSURzIHRvIGZhY2lsaXRhdGUgV0FJLUFSSUEgYW5kIHNlcnZlciByZW5kZXJpbmcuXG4gKlxuICogTm90ZTogVGhlIHJldHVybmVkIElEIHdpbGwgaW5pdGlhbGx5IGJlIGBudWxsYCBhbmQgd2lsbCB1cGRhdGUgYWZ0ZXIgYVxuICogY29tcG9uZW50IG1vdW50cy4gVXNlcnMgbWF5IG5lZWQgdG8gc3VwcGx5IHRoZWlyIG93biBJRCBpZiB0aGV5IG5lZWRcbiAqIGNvbnNpc3RlbnQgdmFsdWVzIGZvciBTU1IuXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9hdXRvLWlkXG4gKi9cblxuXG5mdW5jdGlvbiB1c2VJZChpZEZyb21Qcm9wcykge1xuICAvKlxuICAgKiBJZiB0aGlzIGluc3RhbmNlIGlzbid0IHBhcnQgb2YgdGhlIGluaXRpYWwgcmVuZGVyLCB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoZVxuICAgKiBkb3VibGUgcmVuZGVyL3BhdGNoLXVwIGRhbmNlLiBXZSBjYW4ganVzdCBnZW5lcmF0ZSB0aGUgSUQgYW5kIHJldHVybiBpdC5cbiAgICovXG4gIHZhciBpbml0aWFsSWQgPSBpZEZyb21Qcm9wcyB8fCAoc2VydmVySGFuZG9mZkNvbXBsZXRlID8gZ2VuSWQoKSA6IG51bGwpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSB1c2VTdGF0ZShpbml0aWFsSWQpLFxuICAgICAgaWQgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRJZCA9IF9SZWFjdCR1c2VTdGF0ZVsxXTtcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaWQgPT09IG51bGwpIHtcbiAgICAgIC8qXG4gICAgICAgKiBQYXRjaCB0aGUgSUQgYWZ0ZXIgcmVuZGVyLiBXZSBkbyB0aGlzIGluIGB1c2VMYXlvdXRFZmZlY3RgIHRvIGF2b2lkIGFueVxuICAgICAgICogcmVuZGVyaW5nIGZsaWNrZXIsIHRob3VnaCBpdCdsbCBtYWtlIHRoZSBmaXJzdCByZW5kZXIgc2xvd2VyICh1bmxpa2VseVxuICAgICAgICogdG8gbWF0dGVyLCBidXQgeW91J3JlIHdlbGNvbWUgdG8gbWVhc3VyZSB5b3VyIGFwcCBhbmQgbGV0IHVzIGtub3cgaWZcbiAgICAgICAqIGl0J3MgYSBwcm9ibGVtKS5cbiAgICAgICAqL1xuICAgICAgc2V0SWQoZ2VuSWQoKSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cbiAgfSwgW10pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPT09IGZhbHNlKSB7XG4gICAgICAvKlxuICAgICAgICogRmxhZyBhbGwgZnV0dXJlIHVzZXMgb2YgYHVzZUlkYCB0byBza2lwIHRoZSB1cGRhdGUgZGFuY2UuIFRoaXMgaXMgaW5cbiAgICAgICAqIGB1c2VFZmZlY3RgIGJlY2F1c2UgaXQgZ29lcyBhZnRlciBgdXNlTGF5b3V0RWZmZWN0YCwgZW5zdXJpbmcgd2UgZG9uJ3RcbiAgICAgICAqIGFjY2lkZW50YWxseSBiYWlsIG91dCBvZiB0aGUgcGF0Y2gtdXAgZGFuY2UgcHJlbWF0dXJlbHkuXG4gICAgICAgKi9cbiAgICAgIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IHRydWU7XG4gICAgfVxuICB9LCBbXSk7XG4gIHJldHVybiBpZCAhPSBudWxsID8gU3RyaW5nKGlkKSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHsgdXNlSWQgfTtcbiIsImltcG9ydCB7IGNhblVzZURPTSB9IGZyb20gJy4uLy4uL2Nhbi11c2UtZG9tL2Rpc3QvcmVhY2gtdXRpbHMtY2FuLXVzZS1kb20uZXNtLmpzJztcblxuLyoqXG4gKiBHZXQgYW4gZWxlbWVudCdzIG93bmVyIGRvY3VtZW50LiBVc2VmdWwgd2hlbiBjb21wb25lbnRzIGFyZSB1c2VkIGluIGlmcmFtZXNcbiAqIG9yIG90aGVyIGVudmlyb25tZW50cyBsaWtlIGRldiB0b29scy5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGdldE93bmVyRG9jdW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gY2FuVXNlRE9NKCkgPyBlbGVtZW50ID8gZWxlbWVudC5vd25lckRvY3VtZW50IDogZG9jdW1lbnQgOiBudWxsO1xufVxuLyoqXG4gKiBUT0RPOiBSZW1vdmUgaW4gMS4wXG4gKi9cblxuZnVuY3Rpb24gZ2V0T3duZXJXaW5kb3coZWxlbWVudCkge1xuICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnQoZWxlbWVudCk7XG4gIHJldHVybiBvd25lckRvY3VtZW50ID8gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3cgOiBudWxsO1xufVxuXG5leHBvcnQgeyBnZXRPd25lckRvY3VtZW50LCBnZXRPd25lcldpbmRvdyB9O1xuIiwiaW1wb3J0IHsgZ2V0T3duZXJEb2N1bWVudCB9IGZyb20gJy4uLy4uL293bmVyLWRvY3VtZW50L2Rpc3QvcmVhY2gtdXRpbHMtb3duZXItZG9jdW1lbnQuZXNtLmpzJztcbmltcG9ydCAnLi4vLi4vY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanMnO1xuXG4vKipcbiAqIEdldCB0aGUgc2l6ZSBvZiB0aGUgd29ya2luZyBkb2N1bWVudCBtaW51cyB0aGUgc2Nyb2xsYmFyIG9mZnNldC5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGdldERvY3VtZW50RGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIHZhciBfb3duZXJEb2N1bWVudCRkb2N1bWUsIF9vd25lckRvY3VtZW50JGRvY3VtZTI7XG5cbiAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50KGVsZW1lbnQpO1xuICB2YXIgb3duZXJXaW5kb3cgPSBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdztcblxuICBpZiAoIW93bmVyRG9jdW1lbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogKF9vd25lckRvY3VtZW50JGRvY3VtZSA9IG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSAhPSBudWxsID8gX293bmVyRG9jdW1lbnQkZG9jdW1lIDogb3duZXJXaW5kb3cuaW5uZXJXaWR0aCxcbiAgICBoZWlnaHQ6IChfb3duZXJEb2N1bWVudCRkb2N1bWUyID0gb3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAhPSBudWxsID8gX293bmVyRG9jdW1lbnQkZG9jdW1lMiA6IG93bmVyV2luZG93LmlubmVySGVpZ2h0XG4gIH07XG59XG5cbmV4cG9ydCB7IGdldERvY3VtZW50RGltZW5zaW9ucyB9O1xuIiwiLyoqXG4gKiBKb2lucyBzdHJpbmdzIHRvIGZvcm1hdCBJRHMgZm9yIGNvbXBvdW5kIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtIGFyZ3NcbiAqL1xuZnVuY3Rpb24gbWFrZUlkKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIGFyZ3MuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICByZXR1cm4gdmFsICE9IG51bGw7XG4gIH0pLmpvaW4oXCItLVwiKTtcbn1cblxuZXhwb3J0IHsgbWFrZUlkIH07XG4iLCJpbXBvcnQgeyB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3MgKi9cbnZhciBjaGVja2VkUGtncyA9IHt9O1xuLyoqXG4gKiBKdXN0IGEgbGlsIHN0YXRlIGxvZ2dlclxuICpcbiAqIEBwYXJhbSBzdGF0ZVxuICogQHBhcmFtIERFQlVHXG4gKi9cblxuZnVuY3Rpb24gdXNlU3RhdGVMb2dnZXIoc3RhdGUsIERFQlVHKSB7XG4gIGlmIChERUJVRyA9PT0gdm9pZCAwKSB7XG4gICAgREVCVUcgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgZGVidWdSZWYgPSB1c2VSZWYoREVCVUcpO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBkZWJ1Z1JlZi5jdXJyZW50ID0gREVCVUc7XG4gICAgfSwgW0RFQlVHXSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChkZWJ1Z1JlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXAoXCJTdGF0ZSBVcGRhdGVkXCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhcIiVjXCIgKyBzdGF0ZSwgXCJmb250LXdlaWdodDogbm9ybWFsOyBmb250LXNpemU6IDEyMCU7IGZvbnQtc3R5bGU6IGl0YWxpYztcIik7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICAgIH1cbiAgICB9LCBbc3RhdGVdKTtcbiAgfVxufVxuLyoqXG4gKiBXaGVuIGluIGRldiBtb2RlLCBjaGVja3MgdGhhdCBzdHlsZXMgZm9yIGEgZ2l2ZW4gYEByZWFjaGAgcGFja2FnZSBhcmUgbG9hZGVkLlxuICpcbiAqIEBwYXJhbSBwYWNrYWdlTmFtZSBOYW1lIG9mIHRoZSBwYWNrYWdlIHRvIGNoZWNrLlxuICogQGV4YW1wbGUgY2hlY2tTdHlsZXMoXCJkaWFsb2dcIikgd2lsbCBjaGVjayBmb3Igc3R5bGVzIGZvciBAcmVhY2gvZGlhbG9nXG4gKi9cblxuZnVuY3Rpb24gY2hlY2tTdHlsZXMocGFja2FnZU5hbWUpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIEluIENKUyBmaWxlcywgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgaXMgc3RyaXBwZWQgZnJvbSBvdXIgYnVpbGQsIGJ1dCB3ZVxuICAgIC8vIG5lZWQgaXQgdG8gcHJldmVudCBzdHlsZSBjaGVja3MgZnJvbSBjbG9nZ2luZyB1cCB1c2VyIGxvZ3Mgd2hpbGUgdGVzdGluZy5cbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCB1bnRpbCB3ZSBjYW4gdHdlYWsgdGhlIGJ1aWxkIGEgYml0IHRvIGFjY29tbW9kYXRlLlxuICAgIHZhciBfcmVmID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgPyBwcm9jZXNzLmVudiA6IHtcbiAgICAgIE5PREVfRU5WOiBcImRldmVsb3BtZW50XCJcbiAgICB9LFxuICAgICAgICBlbnZpcm9ubWVudCA9IF9yZWYuTk9ERV9FTlY7IC8vIG9ubHkgY2hlY2sgb25jZSBwZXIgcGFja2FnZVxuXG5cbiAgICBpZiAoY2hlY2tlZFBrZ3NbcGFja2FnZU5hbWVdKSByZXR1cm47XG4gICAgY2hlY2tlZFBrZ3NbcGFja2FnZU5hbWVdID0gdHJ1ZTtcblxuICAgIGlmIChlbnZpcm9ubWVudCA9PT0gXCJkZXZlbG9wbWVudFwiICYmIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoXCItLXJlYWNoLVwiICsgcGFja2FnZU5hbWUpLCAxMCkgIT09IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIkByZWFjaC9cIiArIHBhY2thZ2VOYW1lICsgXCIgc3R5bGVzIG5vdCBmb3VuZC4gSWYgeW91IGFyZSB1c2luZyBhIGJ1bmRsZXIgbGlrZSB3ZWJwYWNrIG9yIHBhcmNlbCBpbmNsdWRlIHRoaXMgaW4gdGhlIGVudHJ5IGZpbGUgb2YgeW91ciBhcHAgYmVmb3JlIGFueSBvZiB5b3VyIG93biBzdHlsZXM6XFxuICBcXG4gICAgICBpbXBvcnQgXFxcIkByZWFjaC9cIiArIHBhY2thZ2VOYW1lICsgXCIvc3R5bGVzLmNzc1xcXCI7XFxuICBcXG4gICAgT3RoZXJ3aXNlIHlvdSdsbCBuZWVkIHRvIGluY2x1ZGUgdGhlbSBzb21lIG90aGVyIHdheTpcXG4gIFxcbiAgICAgIDxsaW5rIHJlbD1cXFwic3R5bGVzaGVldFxcXCIgdHlwZT1cXFwidGV4dC9jc3NcXFwiIGhyZWY9XFxcIm5vZGVfbW9kdWxlcy9AcmVhY2gvXCIgKyBwYWNrYWdlTmFtZSArIFwiL3N0eWxlcy5jc3NcXFwiIC8+XFxuICBcXG4gICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gdmlzaXQgaHR0cHM6Ly91aS5yZWFjaC50ZWNoL3N0eWxpbmcuXFxuICAgIFwiKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogV2hlbiBpbiBkZXYgbW9kZSwgY2hlY2tzIHRoYXQgc3R5bGVzIGZvciBhIGdpdmVuIGBAcmVhY2hgIHBhY2thZ2UgYXJlIGxvYWRlZC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZU5hbWUgTmFtZSBvZiB0aGUgcGFja2FnZSB0byBjaGVjay5cbiAqIEBleGFtcGxlIHVzZUNoZWNrU3R5bGVzKFwiZGlhbG9nXCIpIHdpbGwgY2hlY2sgZm9yIHN0eWxlcyBmb3IgQHJlYWNoL2RpYWxvZ1xuICovXG5cbmZ1bmN0aW9uIHVzZUNoZWNrU3R5bGVzKHBhY2thZ2VOYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgbmFtZSA9IHVzZVJlZihwYWNrYWdlTmFtZSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB2b2lkIChuYW1lLmN1cnJlbnQgPSBwYWNrYWdlTmFtZSk7XG4gICAgfSwgW3BhY2thZ2VOYW1lXSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBjaGVja1N0eWxlcyhuYW1lLmN1cnJlbnQpO1xuICAgIH0sIFtdKTtcbiAgfVxufVxuLyoqXG4gKiBMb2dzIGEgd2FybmluZyBpbiBkZXYgbW9kZSB3aGVuIGEgY29tcG9uZW50IHN3aXRjaGVzIGZyb20gY29udHJvbGxlZCB0b1xuICogdW5jb250cm9sbGVkLCBvciB2aWNlIHZlcnNhXG4gKlxuICogQSBzaW5nbGUgcHJvcCBzaG91bGQgdHlwaWNhbGx5IGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IGFcbiAqIGNvbXBvbmVudCBpcyBjb250cm9sbGVkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0gY29udHJvbGxlZFZhbHVlXG4gKiBAcGFyYW0gY29udHJvbGxlZFByb3BOYW1lXG4gKiBAcGFyYW0gY29tcG9uZW50TmFtZVxuICovXG5cbmZ1bmN0aW9uIHVzZUNvbnRyb2xsZWRTd2l0Y2hXYXJuaW5nKGNvbnRyb2xsZWRWYWx1ZSwgY29udHJvbGxlZFByb3BOYW1lLCBjb21wb25lbnROYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgY29udHJvbGxlZFJlZiA9IHVzZVJlZihjb250cm9sbGVkVmFsdWUgIT0gbnVsbCk7XG4gICAgdmFyIG5hbWVDYWNoZSA9IHVzZVJlZih7XG4gICAgICBjb21wb25lbnROYW1lOiBjb21wb25lbnROYW1lLFxuICAgICAgY29udHJvbGxlZFByb3BOYW1lOiBjb250cm9sbGVkUHJvcE5hbWVcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgbmFtZUNhY2hlLmN1cnJlbnQgPSB7XG4gICAgICAgIGNvbXBvbmVudE5hbWU6IGNvbXBvbmVudE5hbWUsXG4gICAgICAgIGNvbnRyb2xsZWRQcm9wTmFtZTogY29udHJvbGxlZFByb3BOYW1lXG4gICAgICB9O1xuICAgIH0sIFtjb21wb25lbnROYW1lLCBjb250cm9sbGVkUHJvcE5hbWVdKTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHdhc0NvbnRyb2xsZWQgPSBjb250cm9sbGVkUmVmLmN1cnJlbnQ7XG4gICAgICB2YXIgX25hbWVDYWNoZSRjdXJyZW50ID0gbmFtZUNhY2hlLmN1cnJlbnQsXG4gICAgICAgICAgY29tcG9uZW50TmFtZSA9IF9uYW1lQ2FjaGUkY3VycmVudC5jb21wb25lbnROYW1lLFxuICAgICAgICAgIGNvbnRyb2xsZWRQcm9wTmFtZSA9IF9uYW1lQ2FjaGUkY3VycmVudC5jb250cm9sbGVkUHJvcE5hbWU7XG4gICAgICB2YXIgaXNDb250cm9sbGVkID0gY29udHJvbGxlZFZhbHVlICE9IG51bGw7XG5cbiAgICAgIGlmICh3YXNDb250cm9sbGVkICE9PSBpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkEgY29tcG9uZW50IGlzIGNoYW5naW5nIGFuIFwiICsgKHdhc0NvbnRyb2xsZWQgPyBcIlwiIDogXCJ1blwiKSArIFwiY29udHJvbGxlZCBgXCIgKyBjb250cm9sbGVkUHJvcE5hbWUgKyBcImAgc3RhdGUgb2YgXCIgKyBjb21wb25lbnROYW1lICsgXCIgdG8gYmUgXCIgKyAod2FzQ29udHJvbGxlZCA/IFwidW5cIiA6IFwiXCIpICsgXCJjb250cm9sbGVkLiBUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgdGhlIHZhbHVlIGNoYW5naW5nIGZyb20gdW5kZWZpbmVkIHRvIGEgZGVmaW5lZCB2YWx1ZSwgd2hpY2ggc2hvdWxkIG5vdCBoYXBwZW4uIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgXCIgKyBjb21wb25lbnROYW1lICsgXCIgZWxlbWVudCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb21wb25lbnQuXFxuICAgICAgTW9yZSBpbmZvOiBodHRwczovL2ZiLm1lL3JlYWN0LWNvbnRyb2xsZWQtY29tcG9uZW50c1wiKTtcbiAgICAgIH1cbiAgICB9LCBbY29udHJvbGxlZFZhbHVlXSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgY2hlY2tTdHlsZXMsIHVzZUNoZWNrU3R5bGVzLCB1c2VDb250cm9sbGVkU3dpdGNoV2FybmluZywgdXNlU3RhdGVMb2dnZXIgfTtcbiIsIi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgYSBib29sZWFuLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5mdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCI7XG59XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGEgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHZhbHVlXG4gKi9cblxuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gIHJldHVybiAhISh2YWx1ZSAmJiB7fS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PSBcIltvYmplY3QgRnVuY3Rpb25dXCIpO1xufVxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBhIG51bWJlci5cbiAqXG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuXG5mdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmICFpc05hTih2YWx1ZSk7XG59XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5cbmZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCI7XG59XG5cbmV4cG9ydCB7IGlzQm9vbGVhbiwgaXNGdW5jdGlvbiwgaXNOdW1iZXIsIGlzU3RyaW5nIH07XG4iLCJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlLWNoZWNrL2Rpc3QvcmVhY2gtdXRpbHMtdHlwZS1jaGVjay5lc20uanMnO1xuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIGFycjJbaV0gPSBhcnJbaV07XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxuZnVuY3Rpb24gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShvLCBhbGxvd0FycmF5TGlrZSkge1xuICB2YXIgaXQ7XG5cbiAgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwidW5kZWZpbmVkXCIgfHwgb1tTeW1ib2wuaXRlcmF0b3JdID09IG51bGwpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvKSB8fCAoaXQgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobykpIHx8IGFsbG93QXJyYXlMaWtlICYmIG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSB7XG4gICAgICBpZiAoaXQpIG8gPSBpdDtcbiAgICAgIHZhciBpID0gMDtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChpID49IG8ubGVuZ3RoKSByZXR1cm4ge1xuICAgICAgICAgIGRvbmU6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkb25lOiBmYWxzZSxcbiAgICAgICAgICB2YWx1ZTogb1tpKytdXG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbiAgfVxuXG4gIGl0ID0gb1tTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIHJldHVybiBpdC5uZXh0LmJpbmQoaXQpO1xufVxuXG4vKipcbiAqIFBhc3NlcyBvciBhc3NpZ25zIGFuIGFyYml0cmFyeSB2YWx1ZSB0byBhIHJlZiBmdW5jdGlvbiBvciBvYmplY3QuXG4gKlxuICogQHBhcmFtIHJlZlxuICogQHBhcmFtIHZhbHVlXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblJlZihyZWYsIHZhbHVlKSB7XG4gIGlmIChyZWYgPT0gbnVsbCkgcmV0dXJuO1xuXG4gIGlmIChpc0Z1bmN0aW9uKHJlZikpIHtcbiAgICByZWYodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgYXNzaWduIHZhbHVlIFxcXCJcIiArIHZhbHVlICsgXCJcXFwiIHRvIHJlZiBcXFwiXCIgKyByZWYgKyBcIlxcXCJcIik7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIFBhc3NlcyBvciBhc3NpZ25zIGEgdmFsdWUgdG8gbXVsdGlwbGUgcmVmcyAodHlwaWNhbGx5IGEgRE9NIG5vZGUpLiBVc2VmdWwgZm9yXG4gKiBkZWFsaW5nIHdpdGggY29tcG9uZW50cyB0aGF0IG5lZWQgYW4gZXhwbGljaXQgcmVmIGZvciBET00gY2FsY3VsYXRpb25zIGJ1dFxuICogYWxzbyBmb3J3YXJkcyByZWZzIGFzc2lnbmVkIGJ5IGFuIGFwcC5cbiAqXG4gKiBAcGFyYW0gcmVmcyBSZWZzIHRvIGZvcmtcbiAqL1xuXG5mdW5jdGlvbiB1c2VDb21wb3NlZFJlZnMoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCByZWZzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIHJlZnNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlckxvb3NlKHJlZnMpLCBfc3RlcDsgIShfc3RlcCA9IF9pdGVyYXRvcigpKS5kb25lOykge1xuICAgICAgdmFyIHJlZiA9IF9zdGVwLnZhbHVlO1xuICAgICAgYXNzaWduUmVmKHJlZiwgbm9kZSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cbiAgfSwgcmVmcyk7XG59XG5cbmV4cG9ydCB7IGFzc2lnblJlZiwgdXNlQ29tcG9zZWRSZWZzIH07XG4iLCIvKipcbiAqIFdyYXBzIGEgbGliLWRlZmluZWQgZXZlbnQgaGFuZGxlciBhbmQgYSB1c2VyLWRlZmluZWQgZXZlbnQgaGFuZGxlciwgcmV0dXJuaW5nXG4gKiBhIHNpbmdsZSBoYW5kbGVyIHRoYXQgYWxsb3dzIGEgdXNlciB0byBwcmV2ZW50IGxpYi1kZWZpbmVkIGhhbmRsZXJzIGZyb21cbiAqIGZpcmluZy5cbiAqXG4gKiBAcGFyYW0gdGhlaXJIYW5kbGVyIFVzZXItc3VwcGxpZWQgZXZlbnQgaGFuZGxlclxuICogQHBhcmFtIG91ckhhbmRsZXIgTGlicmFyeS1zdXBwbGllZCBldmVudCBoYW5kbGVyXG4gKi9cbmZ1bmN0aW9uIGNvbXBvc2VFdmVudEhhbmRsZXJzKHRoZWlySGFuZGxlciwgb3VySGFuZGxlcikge1xuICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgdGhlaXJIYW5kbGVyICYmIHRoZWlySGFuZGxlcihldmVudCk7XG5cbiAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVybiBvdXJIYW5kbGVyKGV2ZW50KTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH07XG4iLCJpbXBvcnQgeyBmb3J3YXJkUmVmLCBjcmVhdGVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJhc1wiLCBcInN0eWxlXCJdO1xuXG4vKipcbiAqIFZpc3VhbGx5SGlkZGVuXG4gKlxuICogUHJvdmlkZXMgdGV4dCBmb3Igc2NyZWVuIHJlYWRlcnMgdGhhdCBpcyB2aXN1YWxseSBoaWRkZW4uXG4gKiBJdCBpcyB0aGUgbG9naWNhbCBvcHBvc2l0ZSBvZiB0aGUgYGFyaWEtaGlkZGVuYCBhdHRyaWJ1dGUuXG4gKi9cbnZhciBWaXN1YWxseUhpZGRlbiA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIFZpc3VhbGx5SGlkZGVuKF9yZWYsIHJlZikge1xuICB2YXIgX3JlZiRhcyA9IF9yZWYuYXMsXG4gICAgICBDb21wID0gX3JlZiRhcyA9PT0gdm9pZCAwID8gXCJzcGFuXCIgOiBfcmVmJGFzLFxuICAgICAgX3JlZiRzdHlsZSA9IF9yZWYuc3R5bGUsXG4gICAgICBzdHlsZSA9IF9yZWYkc3R5bGUgPT09IHZvaWQgMCA/IHt9IDogX3JlZiRzdHlsZSxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZiwgX2V4Y2x1ZGVkKTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoQ29tcCwgX2V4dGVuZHMoe1xuICAgIHJlZjogcmVmLFxuICAgIHN0eWxlOiBfZXh0ZW5kcyh7XG4gICAgICBib3JkZXI6IDAsXG4gICAgICBjbGlwOiBcInJlY3QoMCAwIDAgMClcIixcbiAgICAgIGhlaWdodDogXCIxcHhcIixcbiAgICAgIG1hcmdpbjogXCItMXB4XCIsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICAgIHBhZGRpbmc6IDAsXG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IFwiMXB4XCIsXG4gICAgICAvLyBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgd29yZFdyYXA6IFwibm9ybWFsXCJcbiAgICB9LCBzdHlsZSlcbiAgfSwgcHJvcHMpKTtcbn0pO1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Zpc3VhbGx5LWhpZGRlbiN2aXN1YWxseWhpZGRlbi1wcm9wc1xuICovXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVmlzdWFsbHlIaWRkZW4uZGlzcGxheU5hbWUgPSBcIlZpc3VhbGx5SGlkZGVuXCI7XG4gIFZpc3VhbGx5SGlkZGVuLnByb3BUeXBlcyA9IHtcbiAgICBhczogUHJvcFR5cGVzLmFueSxcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbiAgfTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsbHlIaWRkZW47XG5leHBvcnQgeyBWaXN1YWxseUhpZGRlbiB9O1xuIiwidmFyIHByb3BzID0gW1wiYm90dG9tXCIsIFwiaGVpZ2h0XCIsIFwibGVmdFwiLCBcInJpZ2h0XCIsIFwidG9wXCIsIFwid2lkdGhcIl07XG5cbnZhciByZWN0Q2hhbmdlZCA9IGZ1bmN0aW9uIHJlY3RDaGFuZ2VkKGEsIGIpIHtcbiAgaWYgKGEgPT09IHZvaWQgMCkge1xuICAgIGEgPSB7fTtcbiAgfVxuXG4gIGlmIChiID09PSB2b2lkIDApIHtcbiAgICBiID0ge307XG4gIH1cblxuICByZXR1cm4gcHJvcHMuc29tZShmdW5jdGlvbiAocHJvcCkge1xuICAgIHJldHVybiBhW3Byb3BdICE9PSBiW3Byb3BdO1xuICB9KTtcbn07XG5cbnZhciBvYnNlcnZlZE5vZGVzID0gLyojX19QVVJFX18qL25ldyBNYXAoKTtcbnZhciByYWZJZDtcblxudmFyIHJ1biA9IGZ1bmN0aW9uIHJ1bigpIHtcbiAgdmFyIGNoYW5nZWRTdGF0ZXMgPSBbXTtcbiAgb2JzZXJ2ZWROb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChzdGF0ZSwgbm9kZSkge1xuICAgIHZhciBuZXdSZWN0ID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGlmIChyZWN0Q2hhbmdlZChuZXdSZWN0LCBzdGF0ZS5yZWN0KSkge1xuICAgICAgc3RhdGUucmVjdCA9IG5ld1JlY3Q7XG4gICAgICBjaGFuZ2VkU3RhdGVzLnB1c2goc3RhdGUpO1xuICAgIH1cbiAgfSk7XG4gIGNoYW5nZWRTdGF0ZXMuZm9yRWFjaChmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICBzdGF0ZS5jYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbiAoY2IpIHtcbiAgICAgIHJldHVybiBjYihzdGF0ZS5yZWN0KTtcbiAgICB9KTtcbiAgfSk7XG4gIHJhZklkID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShydW4pO1xufTtcblxuZnVuY3Rpb24gb2JzZXJ2ZVJlY3Qobm9kZSwgY2IpIHtcbiAgcmV0dXJuIHtcbiAgICBvYnNlcnZlOiBmdW5jdGlvbiBvYnNlcnZlKCkge1xuICAgICAgdmFyIHdhc0VtcHR5ID0gb2JzZXJ2ZWROb2Rlcy5zaXplID09PSAwO1xuXG4gICAgICBpZiAob2JzZXJ2ZWROb2Rlcy5oYXMobm9kZSkpIHtcbiAgICAgICAgb2JzZXJ2ZWROb2Rlcy5nZXQobm9kZSkuY2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JzZXJ2ZWROb2Rlcy5zZXQobm9kZSwge1xuICAgICAgICAgIHJlY3Q6IHVuZGVmaW5lZCxcbiAgICAgICAgICBoYXNSZWN0Q2hhbmdlZDogZmFsc2UsXG4gICAgICAgICAgY2FsbGJhY2tzOiBbY2JdXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAod2FzRW1wdHkpIHJ1bigpO1xuICAgIH0sXG4gICAgdW5vYnNlcnZlOiBmdW5jdGlvbiB1bm9ic2VydmUoKSB7XG4gICAgICB2YXIgc3RhdGUgPSBvYnNlcnZlZE5vZGVzLmdldChub2RlKTtcblxuICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY2FsbGJhY2tcbiAgICAgICAgdmFyIGluZGV4ID0gc3RhdGUuY2FsbGJhY2tzLmluZGV4T2YoY2IpO1xuICAgICAgICBpZiAoaW5kZXggPj0gMCkgc3RhdGUuY2FsbGJhY2tzLnNwbGljZShpbmRleCwgMSk7IC8vIFJlbW92ZSB0aGUgbm9kZSByZWZlcmVuY2VcblxuICAgICAgICBpZiAoIXN0YXRlLmNhbGxiYWNrcy5sZW5ndGgpIG9ic2VydmVkTm9kZXNbXCJkZWxldGVcIl0obm9kZSk7IC8vIFN0b3AgdGhlIGxvb3BcblxuICAgICAgICBpZiAoIW9ic2VydmVkTm9kZXMuc2l6ZSkgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgb2JzZXJ2ZVJlY3Q7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1vYnNlcnZlLXJlY3QuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBvYnNlcnZlUmVjdCBmcm9tICdAcmVhY2gvb2JzZXJ2ZS1yZWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5pbXBvcnQgeyBpc0Jvb2xlYW4sIGlzRnVuY3Rpb24gfSBmcm9tICdAcmVhY2gvdXRpbHMvdHlwZS1jaGVjayc7XG5pbXBvcnQgd2FybmluZyBmcm9tICd0aW55LXdhcm5pbmcnO1xuXG4vKipcbiAqIFdlbGNvbWUgdG8gQHJlYWNoL3JlY3QhXG4gKlxuICogTWVhc3VyZXMgRE9NIGVsZW1lbnRzIChha2EuIGJvdW5kaW5nIGNsaWVudCByZWN0KS5cbiAqXG4gKiBAc2VlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC9nZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAqIEBzZWUgRG9jcyAgICAgICAgICAgICAgICAgIGh0dHBzOi8vcmVhY2gudGVjaC9yZWN0XG4gKiBAc2VlIFNvdXJjZSAgICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcmVhY2gvcmVhY2gtdWkvdHJlZS9tYWluL3BhY2thZ2VzL3JlY3RcbiAqL1xuXG4vKipcbiAqIFJlY3RcbiAqXG4gKiBAcGFyYW0gcHJvcHNcbiAqL1xuXG52YXIgUmVjdCA9IGZ1bmN0aW9uIFJlY3QoX3JlZikge1xuICB2YXIgb25DaGFuZ2UgPSBfcmVmLm9uQ2hhbmdlLFxuICAgICAgX3JlZiRvYnNlcnZlID0gX3JlZi5vYnNlcnZlLFxuICAgICAgb2JzZXJ2ZSA9IF9yZWYkb2JzZXJ2ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkb2JzZXJ2ZSxcbiAgICAgIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbjtcbiAgdmFyIHJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHJlY3QgPSB1c2VSZWN0KHJlZiwge1xuICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgb25DaGFuZ2U6IG9uQ2hhbmdlXG4gIH0pO1xuICByZXR1cm4gY2hpbGRyZW4oe1xuICAgIHJlZjogcmVmLFxuICAgIHJlY3Q6IHJlY3RcbiAgfSk7XG59O1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3JlY3QjcmVjdC1wcm9wc1xuICovXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICBSZWN0LmRpc3BsYXlOYW1lID0gXCJSZWN0XCI7XG4gIFJlY3QucHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9ic2VydmU6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuY1xuICB9O1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbi8qKlxuICogdXNlUmVjdFxuICpcbiAqIEBwYXJhbSBub2RlUmVmXG4gKiBAcGFyYW0gb2JzZXJ2ZVxuICogQHBhcmFtIG9uQ2hhbmdlXG4gKi9cbmZ1bmN0aW9uIHVzZVJlY3Qobm9kZVJlZiwgb2JzZXJ2ZU9yT3B0aW9ucywgZGVwcmVjYXRlZF9vbkNoYW5nZSkge1xuICB2YXIgb2JzZXJ2ZTtcbiAgdmFyIG9uQ2hhbmdlO1xuXG4gIGlmIChpc0Jvb2xlYW4ob2JzZXJ2ZU9yT3B0aW9ucykpIHtcbiAgICBvYnNlcnZlID0gb2JzZXJ2ZU9yT3B0aW9ucztcbiAgfSBlbHNlIHtcbiAgICB2YXIgX29ic2VydmVPck9wdGlvbnMkb2JzO1xuXG4gICAgb2JzZXJ2ZSA9IChfb2JzZXJ2ZU9yT3B0aW9ucyRvYnMgPSBvYnNlcnZlT3JPcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvYnNlcnZlT3JPcHRpb25zLm9ic2VydmUpICE9IG51bGwgPyBfb2JzZXJ2ZU9yT3B0aW9ucyRvYnMgOiB0cnVlO1xuICAgIG9uQ2hhbmdlID0gb2JzZXJ2ZU9yT3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb2JzZXJ2ZU9yT3B0aW9ucy5vbkNoYW5nZTtcbiAgfVxuXG4gIGlmIChpc0Z1bmN0aW9uKGRlcHJlY2F0ZWRfb25DaGFuZ2UpKSB7XG4gICAgb25DaGFuZ2UgPSBkZXByZWNhdGVkX29uQ2hhbmdlO1xuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKCFpc0Jvb2xlYW4ob2JzZXJ2ZU9yT3B0aW9ucyksIFwiUGFzc2luZyBgb2JzZXJ2ZWAgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBgdXNlUmVjdGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgUmVhY2ggVUkuIEluc3RlYWQsIHlvdSBjYW4gcGFzcyBhbiBvYmplY3Qgb2Ygb3B0aW9ucyB3aXRoIGFuIGBvYnNlcnZlYCBwcm9wZXJ0eSBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IChgdXNlUmVjdChyZWYsIHsgb2JzZXJ2ZSB9KWApLlxcblwiICsgXCJTZWUgaHR0cHM6Ly9yZWFjaC50ZWNoL3JlY3QjdXNlcmVjdC1vYnNlcnZlXCIpIDogdm9pZCAwO1xuICAgIH0sIFtvYnNlcnZlT3JPcHRpb25zXSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuXG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcoIWlzRnVuY3Rpb24oZGVwcmVjYXRlZF9vbkNoYW5nZSksIFwiUGFzc2luZyBgb25DaGFuZ2VgIGFzIHRoZSB0aGlyZCBhcmd1bWVudCB0byBgdXNlUmVjdGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgUmVhY2ggVUkuIEluc3RlYWQsIHlvdSBjYW4gcGFzcyBhbiBvYmplY3Qgb2Ygb3B0aW9ucyB3aXRoIGFuIGBvbkNoYW5nZWAgcHJvcGVydHkgYXMgdGhlIHNlY29uZCBhcmd1bWVudCAoYHVzZVJlY3QocmVmLCB7IG9uQ2hhbmdlIH0pYCkuXFxuXCIgKyBcIlNlZSBodHRwczovL3JlYWNoLnRlY2gvcmVjdCN1c2VyZWN0LW9uY2hhbmdlXCIpIDogdm9pZCAwO1xuICAgIH0sIFtkZXByZWNhdGVkX29uQ2hhbmdlXSk7XG4gIH1cblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gdXNlU3RhdGUobm9kZVJlZi5jdXJyZW50KSxcbiAgICAgIGVsZW1lbnQgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRFbGVtZW50ID0gX1JlYWN0JHVzZVN0YXRlWzFdO1xuXG4gIHZhciBpbml0aWFsUmVjdElzU2V0ID0gdXNlUmVmKGZhbHNlKTtcbiAgdmFyIGluaXRpYWxSZWZJc1NldCA9IHVzZVJlZihmYWxzZSk7XG5cbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZTIgPSB1c2VTdGF0ZShudWxsKSxcbiAgICAgIHJlY3QgPSBfUmVhY3QkdXNlU3RhdGUyWzBdLFxuICAgICAgc2V0UmVjdCA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgdmFyIG9uQ2hhbmdlUmVmID0gdXNlUmVmKG9uQ2hhbmdlKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPSBvbkNoYW5nZTtcblxuICAgIGlmIChub2RlUmVmLmN1cnJlbnQgIT09IGVsZW1lbnQpIHtcbiAgICAgIHNldEVsZW1lbnQobm9kZVJlZi5jdXJyZW50KTtcbiAgICB9XG4gIH0pO1xuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZWxlbWVudCAmJiAhaW5pdGlhbFJlY3RJc1NldC5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsUmVjdElzU2V0LmN1cnJlbnQgPSB0cnVlO1xuICAgICAgc2V0UmVjdChlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcbiAgICB9XG4gIH0sIFtlbGVtZW50XSk7XG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghb2JzZXJ2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBlbGVtID0gZWxlbWVudDsgLy8gU3RhdGUgaW5pdGlhbGl6ZXMgYmVmb3JlIHJlZnMgYXJlIHBsYWNlZCwgbWVhbmluZyB0aGUgZWxlbWVudCBzdGF0ZSB3aWxsXG4gICAgLy8gYmUgdW5kZWZpbmVkIG9uIHRoZSBmaXJzdCByZW5kZXIuIFdlIHN0aWxsIHdhbnQgdGhlIHJlY3Qgb24gdGhlIGZpcnN0XG4gICAgLy8gcmVuZGVyLCBzbyBpbml0aWFsbHkgd2UnbGwgdXNlIHRoZSBub2RlUmVmIHRoYXQgd2FzIHBhc3NlZCBpbnN0ZWFkIG9mXG4gICAgLy8gc3RhdGUgZm9yIG91ciBtZWFzdXJlbWVudHMuXG5cbiAgICBpZiAoIWluaXRpYWxSZWZJc1NldC5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsUmVmSXNTZXQuY3VycmVudCA9IHRydWU7XG4gICAgICBlbGVtID0gbm9kZVJlZi5jdXJyZW50O1xuICAgIH1cblxuICAgIGlmICghZWxlbSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJZb3UgbmVlZCB0byBwbGFjZSB0aGUgcmVmXCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIG9ic2VydmVyID0gb2JzZXJ2ZVJlY3QoZWxlbSwgZnVuY3Rpb24gKHJlY3QpIHtcbiAgICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IG9uQ2hhbmdlUmVmLmN1cnJlbnQocmVjdCk7XG4gICAgICBzZXRSZWN0KHJlY3QpO1xuICAgIH0pO1xuICAgIG9ic2VydmVyLm9ic2VydmUoKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKCk7XG4gICAgfTtcbiAgfSwgW29ic2VydmUsIGVsZW1lbnQsIG5vZGVSZWZdKTtcbiAgcmV0dXJuIHJlY3Q7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlY3Q7XG5leHBvcnQgeyBSZWN0LCB1c2VSZWN0IH07XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QsIGZvcndhcmRSZWYsIENoaWxkcmVuLCBjcmVhdGVFbGVtZW50LCBGcmFnbWVudCwgY2xvbmVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAcmVhY2gvYXV0by1pZCc7XG5pbXBvcnQgeyBnZXREb2N1bWVudERpbWVuc2lvbnMgfSBmcm9tICdAcmVhY2gvdXRpbHMvZ2V0LWRvY3VtZW50LWRpbWVuc2lvbnMnO1xuaW1wb3J0IHsgZ2V0T3duZXJEb2N1bWVudCB9IGZyb20gJ0ByZWFjaC91dGlscy9vd25lci1kb2N1bWVudCc7XG5pbXBvcnQgeyBtYWtlSWQgfSBmcm9tICdAcmVhY2gvdXRpbHMvbWFrZS1pZCc7XG5pbXBvcnQgeyB1c2VDaGVja1N0eWxlcyB9IGZyb20gJ0ByZWFjaC91dGlscy9kZXYtdXRpbHMnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJlYWNoL3V0aWxzL2NvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByZWFjaC91dGlscy9jb21wb3NlLWV2ZW50LWhhbmRsZXJzJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJ0ByZWFjaC9wb3J0YWwnO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tICdAcmVhY2gvdmlzdWFsbHktaGlkZGVuJztcbmltcG9ydCB7IHVzZVJlY3QgfSBmcm9tICdAcmVhY2gvcmVjdCc7XG5pbXBvcnQgd2FybmluZyBmcm9tICd0aW55LXdhcm5pbmcnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJjaGlsZHJlblwiLCBcImxhYmVsXCIsIFwiYXJpYUxhYmVsXCIsIFwiaWRcIiwgXCJERUJVR19TVFlMRVwiXSxcbiAgICBfZXhjbHVkZWQyID0gW1wibGFiZWxcIiwgXCJhcmlhTGFiZWxcIiwgXCJpc1Zpc2libGVcIiwgXCJpZFwiXSxcbiAgICBfZXhjbHVkZWQzID0gW1wiYXJpYUxhYmVsXCIsIFwiYXJpYS1sYWJlbFwiLCBcImFzXCIsIFwiaWRcIiwgXCJpc1Zpc2libGVcIiwgXCJsYWJlbFwiLCBcInBvc2l0aW9uXCIsIFwic3R5bGVcIiwgXCJ0cmlnZ2VyUmVjdFwiXSxcbiAgICBfZXhjbHVkZWQ0ID0gW1widHlwZVwiXTtcblxudmFyIF9vbiwgX29uMiwgX29uMywgX29uNCwgX29uNSwgX3N0YXRlcztcbnZhciBNT1VTRV9SRVNUX1RJTUVPVVQgPSAxMDA7XG52YXIgTEVBVkVfVElNRU9VVCA9IDUwMDsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFN0YXRlc1xuXG52YXIgVG9vbHRpcFN0YXRlczsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEV2ZW50c1xuXG4oZnVuY3Rpb24gKFRvb2x0aXBTdGF0ZXMpIHtcbiAgVG9vbHRpcFN0YXRlc1tcIklkbGVcIl0gPSBcIklETEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkZvY3VzZWRcIl0gPSBcIkZPQ1VTRURcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIlZpc2libGVcIl0gPSBcIlZJU0lCTEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkxlYXZpbmdWaXNpYmxlXCJdID0gXCJMRUFWSU5HX1ZJU0lCTEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkRpc21pc3NlZFwiXSA9IFwiRElTTUlTU0VEXCI7XG59KShUb29sdGlwU3RhdGVzIHx8IChUb29sdGlwU3RhdGVzID0ge30pKTtcblxudmFyIFRvb2x0aXBFdmVudHM7XG5cbihmdW5jdGlvbiAoVG9vbHRpcEV2ZW50cykge1xuICBUb29sdGlwRXZlbnRzW1wiQmx1clwiXSA9IFwiQkxVUlwiO1xuICBUb29sdGlwRXZlbnRzW1wiRm9jdXNcIl0gPSBcIkZPQ1VTXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJHbG9iYWxNb3VzZU1vdmVcIl0gPSBcIkdMT0JBTF9NT1VTRV9NT1ZFXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJNb3VzZURvd25cIl0gPSBcIk1PVVNFX0RPV05cIjtcbiAgVG9vbHRpcEV2ZW50c1tcIk1vdXNlRW50ZXJcIl0gPSBcIk1PVVNFX0VOVEVSXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJNb3VzZUxlYXZlXCJdID0gXCJNT1VTRV9MRUFWRVwiO1xuICBUb29sdGlwRXZlbnRzW1wiTW91c2VNb3ZlXCJdID0gXCJNT1VTRV9NT1ZFXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJSZXN0XCJdID0gXCJSRVNUXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJTZWxlY3RXaXRoS2V5Ym9hcmRcIl0gPSBcIlNFTEVDVF9XSVRIX0tFWUJPQVJEXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJUaW1lQ29tcGxldGVcIl0gPSBcIlRJTUVfQ09NUExFVEVcIjtcbn0pKFRvb2x0aXBFdmVudHMgfHwgKFRvb2x0aXBFdmVudHMgPSB7fSkpO1xuXG52YXIgY2hhcnQgPSB7XG4gIGluaXRpYWw6IFRvb2x0aXBTdGF0ZXMuSWRsZSxcbiAgc3RhdGVzOiAoX3N0YXRlcyA9IHt9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuSWRsZV0gPSB7XG4gICAgZW50ZXI6IGNsZWFyQ29udGV4dElkLFxuICAgIG9uOiAoX29uID0ge30sIF9vbltUb29sdGlwRXZlbnRzLk1vdXNlRW50ZXJdID0gVG9vbHRpcFN0YXRlcy5Gb2N1c2VkLCBfb25bVG9vbHRpcEV2ZW50cy5Gb2N1c10gPSBUb29sdGlwU3RhdGVzLlZpc2libGUsIF9vbilcbiAgfSwgX3N0YXRlc1tUb29sdGlwU3RhdGVzLkZvY3VzZWRdID0ge1xuICAgIGVudGVyOiBzdGFydFJlc3RUaW1lcixcbiAgICBsZWF2ZTogY2xlYXJSZXN0VGltZXIsXG4gICAgb246IChfb24yID0ge30sIF9vbjJbVG9vbHRpcEV2ZW50cy5Nb3VzZU1vdmVdID0gVG9vbHRpcFN0YXRlcy5Gb2N1c2VkLCBfb24yW1Rvb2x0aXBFdmVudHMuTW91c2VMZWF2ZV0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjJbVG9vbHRpcEV2ZW50cy5Nb3VzZURvd25dID0gVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWQsIF9vbjJbVG9vbHRpcEV2ZW50cy5CbHVyXSA9IFRvb2x0aXBTdGF0ZXMuSWRsZSwgX29uMltUb29sdGlwRXZlbnRzLlJlc3RdID0gVG9vbHRpcFN0YXRlcy5WaXNpYmxlLCBfb24yKVxuICB9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuVmlzaWJsZV0gPSB7XG4gICAgb246IChfb24zID0ge30sIF9vbjNbVG9vbHRpcEV2ZW50cy5Gb2N1c10gPSBUb29sdGlwU3RhdGVzLkZvY3VzZWQsIF9vbjNbVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyXSA9IFRvb2x0aXBTdGF0ZXMuRm9jdXNlZCwgX29uM1tUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVdID0gVG9vbHRpcFN0YXRlcy5MZWF2aW5nVmlzaWJsZSwgX29uM1tUb29sdGlwRXZlbnRzLkJsdXJdID0gVG9vbHRpcFN0YXRlcy5MZWF2aW5nVmlzaWJsZSwgX29uM1tUb29sdGlwRXZlbnRzLk1vdXNlRG93bl0gPSBUb29sdGlwU3RhdGVzLkRpc21pc3NlZCwgX29uM1tUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZF0gPSBUb29sdGlwU3RhdGVzLkRpc21pc3NlZCwgX29uM1tUb29sdGlwRXZlbnRzLkdsb2JhbE1vdXNlTW92ZV0gPSBUb29sdGlwU3RhdGVzLkxlYXZpbmdWaXNpYmxlLCBfb24zKVxuICB9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGVdID0ge1xuICAgIGVudGVyOiBzdGFydExlYXZpbmdWaXNpYmxlVGltZXIsXG4gICAgbGVhdmU6IGZ1bmN0aW9uIGxlYXZlKCkge1xuICAgICAgY2xlYXJMZWF2aW5nVmlzaWJsZVRpbWVyKCk7XG4gICAgICBjbGVhckNvbnRleHRJZCgpO1xuICAgIH0sXG4gICAgb246IChfb240ID0ge30sIF9vbjRbVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyXSA9IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSwgX29uNFtUb29sdGlwRXZlbnRzLkZvY3VzXSA9IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSwgX29uNFtUb29sdGlwRXZlbnRzLlRpbWVDb21wbGV0ZV0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjQpXG4gIH0sIF9zdGF0ZXNbVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWRdID0ge1xuICAgIGxlYXZlOiBmdW5jdGlvbiBsZWF2ZSgpIHtcbiAgICAgIGNsZWFyQ29udGV4dElkKCk7XG4gICAgfSxcbiAgICBvbjogKF9vbjUgPSB7fSwgX29uNVtUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVdID0gVG9vbHRpcFN0YXRlcy5JZGxlLCBfb241W1Rvb2x0aXBFdmVudHMuQmx1cl0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjUpXG4gIH0sIF9zdGF0ZXMpXG59O1xuLypcbiAqIENoYXJ0IGNvbnRleHQgYWxsb3dzIHVzIHRvIHBlcnNpc3Qgc29tZSBkYXRhIGFyb3VuZCwgaW4gVG9vbHRpcCBhbGwgd2UgdXNlXG4gKiBpcyB0aGUgaWQgb2YgdGhlIGN1cnJlbnQgdG9vbHRpcCBiZWluZyBpbnRlcmFjdGVkIHdpdGguXG4gKi9cblxudmFyIHN0YXRlID0ge1xuICB2YWx1ZTogY2hhcnQuaW5pdGlhbCxcbiAgY29udGV4dDoge1xuICAgIGlkOiBudWxsXG4gIH1cbn07IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTdWJzY3JpcHRpb25zOlxuLy9cbi8vIFdlIGNvdWxkIHJlcXVpcmUgYXBwcyB0byByZW5kZXIgYSA8VG9vbHRpcFByb3ZpZGVyPiBhcm91bmQgdGhlIGFwcCBhbmQgdXNlXG4vLyBSZWFjdCBjb250ZXh0IHRvIG5vdGlmeSBUb29sdGlwcyBvZiBjaGFuZ2VzIHRvIG91ciBzdGF0ZSBtYWNoaW5lLCBpbnN0ZWFkXG4vLyB3ZSBtYW5hZ2Ugc3Vic2NyaXB0aW9ucyBvdXJzZWx2ZXMgYW5kIHNpbXBsaWZ5IHRoZSBUb29sdGlwIEFQSS5cbi8vXG4vLyBNYXliZSBpZiBkZWZhdWx0IGNvbnRleHQgY291bGQgdGFrZSBhIGhvb2sgKGluc3RlYWQgb2YganVzdCBhIHN0YXRpYyB2YWx1ZSlcbi8vIHRoYXQgd2FzIHJlbmRlcmVkIGF0IHRoZSByb290IGZvciB1cywgdGhhdCdkIGJlIGNvb2whIEJ1dCBpdCBkb2Vzbid0LlxuXG52YXIgc3Vic2NyaXB0aW9ucyA9IFtdO1xuXG5mdW5jdGlvbiBzdWJzY3JpYmUoZm4pIHtcbiAgc3Vic2NyaXB0aW9ucy5wdXNoKGZuKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBzdWJzY3JpcHRpb25zLnNwbGljZShzdWJzY3JpcHRpb25zLmluZGV4T2YoZm4pLCAxKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gbm90aWZ5KCkge1xuICBzdWJzY3JpcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgcmV0dXJuIGZuKHN0YXRlKTtcbiAgfSk7XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBUaW1lb3V0czpcbi8vIE1hbmFnZXMgd2hlbiB0aGUgdXNlciBcInJlc3RzXCIgb24gYW4gZWxlbWVudC4gS2VlcHMgdGhlIGludGVyZmFjZSBmcm9tIGJlaW5nXG4vLyBmbGFzaGluZyB0b29sdGlwcyBhbGwgdGhlIHRpbWUgYXMgdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIGFyb3VuZCB0aGUgc2NyZWVuLlxuXG5cbnZhciByZXN0VGltZW91dDtcblxuZnVuY3Rpb24gc3RhcnRSZXN0VGltZXIoKSB7XG4gIHdpbmRvdy5jbGVhclRpbWVvdXQocmVzdFRpbWVvdXQpO1xuICByZXN0VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuUmVzdFxuICAgIH0pO1xuICB9LCBNT1VTRV9SRVNUX1RJTUVPVVQpO1xufVxuXG5mdW5jdGlvbiBjbGVhclJlc3RUaW1lcigpIHtcbiAgd2luZG93LmNsZWFyVGltZW91dChyZXN0VGltZW91dCk7XG59IC8vIE1hbmFnZXMgdGhlIGRlbGF5IHRvIGhpZGUgdGhlIHRvb2x0aXAgYWZ0ZXIgcmVzdCBsZWF2ZXMuXG5cblxudmFyIGxlYXZpbmdWaXNpYmxlVGltZXI7XG5cbmZ1bmN0aW9uIHN0YXJ0TGVhdmluZ1Zpc2libGVUaW1lcigpIHtcbiAgd2luZG93LmNsZWFyVGltZW91dChsZWF2aW5nVmlzaWJsZVRpbWVyKTtcbiAgbGVhdmluZ1Zpc2libGVUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlRpbWVDb21wbGV0ZVxuICAgIH0pO1xuICB9LCBMRUFWRV9USU1FT1VUKTtcbn1cblxuZnVuY3Rpb24gY2xlYXJMZWF2aW5nVmlzaWJsZVRpbWVyKCkge1xuICB3aW5kb3cuY2xlYXJUaW1lb3V0KGxlYXZpbmdWaXNpYmxlVGltZXIpO1xufSAvLyBhbGxvd3MgdXMgdG8gY29tZSBvbiBiYWNrIGxhdGVyIHcvbyBlbnRlcmluZyBzb21ldGhpbmcgZWxzZSBmaXJzdCBhZnRlciB0aGVcbi8vIHVzZXIgbGVhdmVzIG9yIGRpc21pc3Nlc1xuXG5cbmZ1bmN0aW9uIGNsZWFyQ29udGV4dElkKCkge1xuICBzdGF0ZS5jb250ZXh0LmlkID0gbnVsbDtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiB1c2VUb29sdGlwXG4gKlxuICogQHBhcmFtIHBhcmFtc1xuICovXG5cblxuZnVuY3Rpb24gdXNlVG9vbHRpcChfdGVtcCkge1xuICB2YXIgX3JlZiA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wLFxuICAgICAgaWRQcm9wID0gX3JlZi5pZCxcbiAgICAgIG9uUG9pbnRlckVudGVyID0gX3JlZi5vblBvaW50ZXJFbnRlcixcbiAgICAgIG9uUG9pbnRlck1vdmUgPSBfcmVmLm9uUG9pbnRlck1vdmUsXG4gICAgICBvblBvaW50ZXJMZWF2ZSA9IF9yZWYub25Qb2ludGVyTGVhdmUsXG4gICAgICBvblBvaW50ZXJEb3duID0gX3JlZi5vblBvaW50ZXJEb3duLFxuICAgICAgb25Nb3VzZUVudGVyID0gX3JlZi5vbk1vdXNlRW50ZXIsXG4gICAgICBvbk1vdXNlTW92ZSA9IF9yZWYub25Nb3VzZU1vdmUsXG4gICAgICBvbk1vdXNlTGVhdmUgPSBfcmVmLm9uTW91c2VMZWF2ZSxcbiAgICAgIG9uTW91c2VEb3duID0gX3JlZi5vbk1vdXNlRG93bixcbiAgICAgIG9uRm9jdXMgPSBfcmVmLm9uRm9jdXMsXG4gICAgICBvbkJsdXIgPSBfcmVmLm9uQmx1cixcbiAgICAgIG9uS2V5RG93biA9IF9yZWYub25LZXlEb3duLFxuICAgICAgZGlzYWJsZWQgPSBfcmVmLmRpc2FibGVkLFxuICAgICAgZm9yd2FyZGVkUmVmID0gX3JlZi5yZWYsXG4gICAgICBERUJVR19TVFlMRSA9IF9yZWYuREVCVUdfU1RZTEU7XG5cbiAgdmFyIGlkID0gU3RyaW5nKHVzZUlkKGlkUHJvcCkpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSB1c2VTdGF0ZShERUJVR19TVFlMRSA/IHRydWUgOiBpc1Rvb2x0aXBWaXNpYmxlKGlkLCB0cnVlKSksXG4gICAgICBpc1Zpc2libGUgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRJc1Zpc2libGUgPSBfUmVhY3QkdXNlU3RhdGVbMV07IC8vIGhvcGVmdWxseSB0aGV5IGFsd2F5cyBwYXNzIGEgcmVmIGlmIHRoZXkgZXZlciBwYXNzIG9uZVxuXG5cbiAgdmFyIG93blJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHJlZiA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIG93blJlZik7XG4gIHZhciB0cmlnZ2VyUmVjdCA9IHVzZVJlY3Qob3duUmVmLCB7XG4gICAgb2JzZXJ2ZTogaXNWaXNpYmxlXG4gIH0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBzdWJzY3JpYmUoZnVuY3Rpb24gKCkge1xuICAgICAgc2V0SXNWaXNpYmxlKGlzVG9vbHRpcFZpc2libGUoaWQpKTtcbiAgICB9KTtcbiAgfSwgW2lkXSk7XG4gIHVzZUNoZWNrU3R5bGVzKFwidG9vbHRpcFwiKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnQob3duUmVmLmN1cnJlbnQpO1xuXG4gICAgZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQpIHtcbiAgICAgIGlmICgoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiIHx8IGV2ZW50LmtleSA9PT0gXCJFc2NcIikgJiYgc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSkge1xuICAgICAgICBzZW5kKHtcbiAgICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgbGlzdGVuZXIpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgdXNlRGlzYWJsZWRUcmlnZ2VyT25TYWZhcmkoe1xuICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBpc1Zpc2libGU6IGlzVmlzaWJsZSxcbiAgICByZWY6IG93blJlZlxuICB9KTtcblxuICBmdW5jdGlvbiB3cmFwTW91c2VFdmVudCh0aGVpckhhbmRsZXIsIG91ckhhbmRsZXIpIHtcbiAgICAvLyBVc2UgaW50ZXJuYWwgTW91c2VFdmVudCBoYW5kbGVyIG9ubHkgaWYgUG9pbnRlckV2ZW50IGlzIG5vdCBzdXBwb3J0ZWRcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBcIlBvaW50ZXJFdmVudFwiIGluIHdpbmRvdykge1xuICAgICAgcmV0dXJuIHRoZWlySGFuZGxlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9zZUV2ZW50SGFuZGxlcnModGhlaXJIYW5kbGVyLCBvdXJIYW5kbGVyKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdyYXBQb2ludGVyRXZlbnRIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gb25Qb2ludGVyRXZlbnQoZXZlbnQpIHtcbiAgICAgIC8vIEhhbmRsZSBwb2ludGVyIGV2ZW50cyBvbmx5IGZyb20gbW91c2UgZGV2aWNlXG4gICAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgIT09IFwibW91c2VcIikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZXIoZXZlbnQpO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVNb3VzZUVudGVyKCkge1xuICAgIHNlbmQoe1xuICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyLFxuICAgICAgaWQ6IGlkXG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVNb3VzZU1vdmUoKSB7XG4gICAgc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLk1vdXNlTW92ZSxcbiAgICAgIGlkOiBpZFxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VMZWF2ZSgpIHtcbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuTW91c2VMZWF2ZVxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VEb3duKCkge1xuICAgIC8vIEFsbG93IHF1aWNrIGNsaWNrIGZyb20gb25lIHRvb2wgdG8gYW5vdGhlclxuICAgIGlmIChzdGF0ZS5jb250ZXh0LmlkID09PSBpZCkge1xuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuTW91c2VEb3duXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVGb2N1cygpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKHdpbmRvdy5fX1JFQUNIX0RJU0FCTEVfVE9PTFRJUFMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuRm9jdXMsXG4gICAgICBpZDogaWRcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUJsdXIoKSB7XG4gICAgLy8gQWxsb3cgcXVpY2sgY2xpY2sgZnJvbSBvbmUgdG9vbCB0byBhbm90aGVyXG4gICAgaWYgKHN0YXRlLmNvbnRleHQuaWQgPT09IGlkKSB7XG4gICAgICBzZW5kKHtcbiAgICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5CbHVyXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHRyaWdnZXIgPSB7XG4gICAgLy8gVGhlIGVsZW1lbnQgdGhhdCB0cmlnZ2VycyB0aGUgdG9vbHRpcCByZWZlcmVuY2VzIHRoZSB0b29sdGlwIGVsZW1lbnQgd2l0aFxuICAgIC8vIGBhcmlhLWRlc2NyaWJlZGJ5YC5cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMi8jdG9vbHRpcFxuICAgIFwiYXJpYS1kZXNjcmliZWRieVwiOiBpc1Zpc2libGUgPyBtYWtlSWQoXCJ0b29sdGlwXCIsIGlkKSA6IHVuZGVmaW5lZCxcbiAgICBcImRhdGEtc3RhdGVcIjogaXNWaXNpYmxlID8gXCJ0b29sdGlwLXZpc2libGVcIiA6IFwidG9vbHRpcC1oaWRkZW5cIixcbiAgICBcImRhdGEtcmVhY2gtdG9vbHRpcC10cmlnZ2VyXCI6IFwiXCIsXG4gICAgcmVmOiByZWYsXG4gICAgb25Qb2ludGVyRW50ZXI6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlckVudGVyLCB3cmFwUG9pbnRlckV2ZW50SGFuZGxlcihoYW5kbGVNb3VzZUVudGVyKSksXG4gICAgb25Qb2ludGVyTW92ZTogY29tcG9zZUV2ZW50SGFuZGxlcnMob25Qb2ludGVyTW92ZSwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VNb3ZlKSksXG4gICAgb25Qb2ludGVyTGVhdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlckxlYXZlLCB3cmFwUG9pbnRlckV2ZW50SGFuZGxlcihoYW5kbGVNb3VzZUxlYXZlKSksXG4gICAgb25Qb2ludGVyRG93bjogY29tcG9zZUV2ZW50SGFuZGxlcnMob25Qb2ludGVyRG93biwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VEb3duKSksXG4gICAgb25Nb3VzZUVudGVyOiB3cmFwTW91c2VFdmVudChvbk1vdXNlRW50ZXIsIGhhbmRsZU1vdXNlRW50ZXIpLFxuICAgIG9uTW91c2VNb3ZlOiB3cmFwTW91c2VFdmVudChvbk1vdXNlTW92ZSwgaGFuZGxlTW91c2VNb3ZlKSxcbiAgICBvbk1vdXNlTGVhdmU6IHdyYXBNb3VzZUV2ZW50KG9uTW91c2VMZWF2ZSwgaGFuZGxlTW91c2VMZWF2ZSksXG4gICAgb25Nb3VzZURvd246IHdyYXBNb3VzZUV2ZW50KG9uTW91c2VEb3duLCBoYW5kbGVNb3VzZURvd24pLFxuICAgIG9uRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uRm9jdXMsIGhhbmRsZUZvY3VzKSxcbiAgICBvbkJsdXI6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uQmx1ciwgaGFuZGxlQmx1ciksXG4gICAgb25LZXlEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvbktleURvd24sIGhhbmRsZUtleURvd24pXG4gIH07XG4gIHZhciB0b29sdGlwID0ge1xuICAgIGlkOiBpZCxcbiAgICB0cmlnZ2VyUmVjdDogdHJpZ2dlclJlY3QsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGVcbiAgfTtcbiAgcmV0dXJuIFt0cmlnZ2VyLCB0b29sdGlwLCBpc1Zpc2libGVdO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFRvb2x0aXBcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Rvb2x0aXAjdG9vbHRpcFxuICovXG5cblxudmFyIFRvb2x0aXAgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiAoX3JlZjIsIGZvcndhcmRlZFJlZikge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmMi5jaGlsZHJlbixcbiAgICAgIGxhYmVsID0gX3JlZjIubGFiZWwsXG4gICAgICBERVBSRUNBVEVEX2FyaWFMYWJlbCA9IF9yZWYyLmFyaWFMYWJlbCxcbiAgICAgIGlkID0gX3JlZjIuaWQsXG4gICAgICBERUJVR19TVFlMRSA9IF9yZWYyLkRFQlVHX1NUWUxFLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmMiwgX2V4Y2x1ZGVkKTtcblxuICB2YXIgY2hpbGQgPSBDaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyghREVQUkVDQVRFRF9hcmlhTGFiZWwsIFwiVGhlIGBhcmlhTGFiZWwgcHJvcCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBAcmVhY2gvdG9vbHRpcCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFJlYWNoIFVJLiBQbGVhc2UgdXNlIGBhcmlhLWxhYmVsYCBpbnN0ZWFkLlwiKSA6IHZvaWQgMDsgLy8gV2UgbmVlZCB0byBwYXNzIHNvbWUgcHJvcGVydGllcyBmcm9tIHRoZSBjaGlsZCBpbnRvIHVzZVRvb2x0aXBcbiAgLy8gdG8gbWFrZSBzdXJlIHVzZXJzIGNhbiBtYWludGFpbiBjb250cm9sIG92ZXIgdGhlIHRyaWdnZXIncyByZWYgYW5kIGV2ZW50c1xuXG4gIHZhciBfdXNlVG9vbHRpcCA9IHVzZVRvb2x0aXAoe1xuICAgIGlkOiBpZCxcbiAgICBvblBvaW50ZXJFbnRlcjogY2hpbGQucHJvcHMub25Qb2ludGVyRW50ZXIsXG4gICAgb25Qb2ludGVyTW92ZTogY2hpbGQucHJvcHMub25Qb2ludGVyTW92ZSxcbiAgICBvblBvaW50ZXJMZWF2ZTogY2hpbGQucHJvcHMub25Qb2ludGVyTGVhdmUsXG4gICAgb25Qb2ludGVyRG93bjogY2hpbGQucHJvcHMub25Qb2ludGVyRG93bixcbiAgICBvbk1vdXNlRW50ZXI6IGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcixcbiAgICBvbk1vdXNlTW92ZTogY2hpbGQucHJvcHMub25Nb3VzZU1vdmUsXG4gICAgb25Nb3VzZUxlYXZlOiBjaGlsZC5wcm9wcy5vbk1vdXNlTGVhdmUsXG4gICAgb25Nb3VzZURvd246IGNoaWxkLnByb3BzLm9uTW91c2VEb3duLFxuICAgIG9uRm9jdXM6IGNoaWxkLnByb3BzLm9uRm9jdXMsXG4gICAgb25CbHVyOiBjaGlsZC5wcm9wcy5vbkJsdXIsXG4gICAgb25LZXlEb3duOiBjaGlsZC5wcm9wcy5vbktleURvd24sXG4gICAgZGlzYWJsZWQ6IGNoaWxkLnByb3BzLmRpc2FibGVkLFxuICAgIHJlZjogY2hpbGQucmVmLFxuICAgIERFQlVHX1NUWUxFOiBERUJVR19TVFlMRVxuICB9KSxcbiAgICAgIHRyaWdnZXIgPSBfdXNlVG9vbHRpcFswXSxcbiAgICAgIHRvb2x0aXAgPSBfdXNlVG9vbHRpcFsxXTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9jbG9uZUVsZW1lbnQoY2hpbGQsIHRyaWdnZXIpLCAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChUb29sdGlwUG9wdXAsIF9leHRlbmRzKHtcbiAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICBsYWJlbDogbGFiZWwsXG4gICAgXCJhcmlhLWxhYmVsXCI6IERFUFJFQ0FURURfYXJpYUxhYmVsXG4gIH0sIHRvb2x0aXAsIHByb3BzKSkpO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcC5kaXNwbGF5TmFtZSA9IFwiVG9vbHRpcFwiO1xuICBUb29sdGlwLnByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmdcbiAgfTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBUb29sdGlwUG9wdXBcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Rvb2x0aXAjdG9vbHRpcHBvcHVwXG4gKi9cblxuXG52YXIgVG9vbHRpcFBvcHVwID0gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoZnVuY3Rpb24gVG9vbHRpcFBvcHVwKF9yZWYzLCBmb3J3YXJkUmVmKSB7XG4gIHZhciBsYWJlbCA9IF9yZWYzLmxhYmVsLFxuICAgICAgREVQUkVDQVRFRF9hcmlhTGFiZWwgPSBfcmVmMy5hcmlhTGFiZWwsXG4gICAgICBpc1Zpc2libGUgPSBfcmVmMy5pc1Zpc2libGUsXG4gICAgICBpZCA9IF9yZWYzLmlkLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmMywgX2V4Y2x1ZGVkMik7XG5cbiAgcmV0dXJuIGlzVmlzaWJsZSA/IC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFBvcnRhbCwgbnVsbCwgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoVG9vbHRpcENvbnRlbnQsIF9leHRlbmRzKHtcbiAgICByZWY6IGZvcndhcmRSZWYsXG4gICAgbGFiZWw6IGxhYmVsLFxuICAgIFwiYXJpYS1sYWJlbFwiOiBERVBSRUNBVEVEX2FyaWFMYWJlbCxcbiAgICBpc1Zpc2libGU6IGlzVmlzaWJsZVxuICB9LCBwcm9wcywge1xuICAgIGlkOiBtYWtlSWQoXCJ0b29sdGlwXCIsIFN0cmluZyhpZCkpXG4gIH0pKSkgOiBudWxsO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcFBvcHVwLmRpc3BsYXlOYW1lID0gXCJUb29sdGlwUG9wdXBcIjtcbiAgVG9vbHRpcFBvcHVwLnByb3BUeXBlcyA9IHtcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgcG9zaXRpb246IFByb3BUeXBlcy5mdW5jXG4gIH07XG59XG4vKipcbiAqIFRvb2x0aXBDb250ZW50XG4gKlxuICogV2UgbmVlZCBhIHNlcGFyYXRlIGNvbXBvbmVudCBzbyB0aGF0IHVzZVJlY3Qgd29ya3MgaW5zaWRlIHRoZSBwb3J0YWwuXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC90b29sdGlwI3Rvb2x0aXBjb250ZW50XG4gKi9cblxuXG52YXIgVG9vbHRpcENvbnRlbnQgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiBUb29sdGlwQ29udGVudChfcmVmNCwgZm9yd2FyZGVkUmVmKSB7XG4gIHZhciBhcmlhTGFiZWwgPSBfcmVmNC5hcmlhTGFiZWwsXG4gICAgICByZWFsQXJpYUxhYmVsID0gX3JlZjRbXCJhcmlhLWxhYmVsXCJdLFxuICAgICAgX3JlZjQkYXMgPSBfcmVmNC5hcyxcbiAgICAgIENvbXAgPSBfcmVmNCRhcyA9PT0gdm9pZCAwID8gXCJkaXZcIiA6IF9yZWY0JGFzLFxuICAgICAgaWQgPSBfcmVmNC5pZCxcbiAgICAgIGlzVmlzaWJsZSA9IF9yZWY0LmlzVmlzaWJsZSxcbiAgICAgIGxhYmVsID0gX3JlZjQubGFiZWwsXG4gICAgICBfcmVmNCRwb3NpdGlvbiA9IF9yZWY0LnBvc2l0aW9uLFxuICAgICAgcG9zaXRpb24gPSBfcmVmNCRwb3NpdGlvbiA9PT0gdm9pZCAwID8gcG9zaXRpb25Ub29sdGlwIDogX3JlZjQkcG9zaXRpb24sXG4gICAgICBzdHlsZSA9IF9yZWY0LnN0eWxlLFxuICAgICAgdHJpZ2dlclJlY3QgPSBfcmVmNC50cmlnZ2VyUmVjdCxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZjQsIF9leGNsdWRlZDMpO1xuXG4gIC8vIFRoZSBlbGVtZW50IHRoYXQgc2VydmVzIGFzIHRoZSB0b29sdGlwIGNvbnRhaW5lciBoYXMgcm9sZSB0b29sdGlwLlxuICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMi8jdG9vbHRpcCBXaGVuIGFuIGFwcCBwYXNzZXNcbiAgLy8gYW4gYGFyaWEtbGFiZWxgLCB3ZSBhY3R1YWxseSB3YW50IHRvIGltcGxlbWVudCBgcm9sZT1cInRvb2x0aXBcImAgb24gYVxuICAvLyB2aXN1YWxseSBoaWRkZW4gZWxlbWVudCBpbnNpZGUgb2YgdGhlIHRyaWdnZXIuIEluIHRoZXNlIGNhc2VzIHdlIHdhbnQgdGhlXG4gIC8vIHNjcmVlbiByZWFkZXIgdXNlciB0byBrbm93IGJvdGggdGhlIGNvbnRlbnQgaW4gdGhlIHRvb2x0aXAsIGJ1dCBhbHNvIHRoZVxuICAvLyBjb250ZW50IGluIHRoZSBiYWRnZS4gRm9yIHNjcmVlbiByZWFkZXIgdXNlcnMsIHRoZSBvbmx5IGNvbnRlbnQgYW5ub3VuY2VkXG4gIC8vIHRvIHRoZW0gaXMgd2hhdGV2ZXIgaXMgaW4gdGhlIHRvb2x0aXAuXG4gIHZhciBoYXNBcmlhTGFiZWwgPSAocmVhbEFyaWFMYWJlbCB8fCBhcmlhTGFiZWwpICE9IG51bGw7XG4gIHZhciBvd25SZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciByZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBvd25SZWYpO1xuICB2YXIgdG9vbHRpcFJlY3QgPSB1c2VSZWN0KG93blJlZiwge1xuICAgIG9ic2VydmU6IGlzVmlzaWJsZVxuICB9KTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KEZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChDb21wLCBfZXh0ZW5kcyh7XG4gICAgcm9sZTogaGFzQXJpYUxhYmVsID8gdW5kZWZpbmVkIDogXCJ0b29sdGlwXCJcbiAgfSwgcHJvcHMsIHtcbiAgICByZWY6IHJlZixcbiAgICBcImRhdGEtcmVhY2gtdG9vbHRpcFwiOiBcIlwiLFxuICAgIGlkOiBoYXNBcmlhTGFiZWwgPyB1bmRlZmluZWQgOiBpZCxcbiAgICBzdHlsZTogX2V4dGVuZHMoe30sIHN0eWxlLCBnZXRTdHlsZXMocG9zaXRpb24sIHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkpXG4gIH0pLCBsYWJlbCksIGhhc0FyaWFMYWJlbCAmJiAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChWaXN1YWxseUhpZGRlbiwge1xuICAgIHJvbGU6IFwidG9vbHRpcFwiLFxuICAgIGlkOiBpZFxuICB9LCByZWFsQXJpYUxhYmVsIHx8IGFyaWFMYWJlbCkpO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcENvbnRlbnQuZGlzcGxheU5hbWUgPSBcIlRvb2x0aXBDb250ZW50XCI7XG4gIFRvb2x0aXBDb250ZW50LnByb3BUeXBlcyA9IHt9O1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbmZ1bmN0aW9uIGdldFN0eWxlcyhwb3NpdGlvbiwgdHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KSB7XG4gIHZhciBoYXZlbnRNZWFzdXJlZFRvb2x0aXBZZXQgPSAhdG9vbHRpcFJlY3Q7XG5cbiAgaWYgKGhhdmVudE1lYXN1cmVkVG9vbHRpcFlldCkge1xuICAgIHJldHVybiB7XG4gICAgICB2aXNpYmlsaXR5OiBcImhpZGRlblwiXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBwb3NpdGlvbih0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpO1xufSAvLyBEZWZhdWx0IG9mZnNldCBmcm9tIHRoZSB0cmlnZ2VyIChlLmcuLCBpZiB0aGUgdG9vbHRpcCBpcyBwb3NpdGlvbmVkIGFib3ZlLFxuLy8gdGhlcmUgd2lsbCBiZSA4cHggYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSB0b29sdGlwIGFuZCB0aGUgdG9wIG9mIHRoZSB0cmlnZ2VyKS5cbi8vIEl0IGZlZWxzIGF3a3dhcmQgd2hlbiBpdCdzIHBlcmZlY3RseSBhbGlnbmVkIHcvIHRoZSB0cmlnZ2VyXG5cblxudmFyIE9GRlNFVF9ERUZBVUxUID0gODtcbnZhciBwb3NpdGlvblRvb2x0aXAgPSBmdW5jdGlvbiBwb3NpdGlvblRvb2x0aXAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCBvZmZzZXQpIHtcbiAgaWYgKG9mZnNldCA9PT0gdm9pZCAwKSB7XG4gICAgb2Zmc2V0ID0gT0ZGU0VUX0RFRkFVTFQ7XG4gIH1cblxuICB2YXIgX2dldERvY3VtZW50RGltZW5zaW9uID0gZ2V0RG9jdW1lbnREaW1lbnNpb25zKCksXG4gICAgICB3aW5kb3dXaWR0aCA9IF9nZXREb2N1bWVudERpbWVuc2lvbi53aWR0aCxcbiAgICAgIHdpbmRvd0hlaWdodCA9IF9nZXREb2N1bWVudERpbWVuc2lvbi5oZWlnaHQ7XG5cbiAgaWYgKCF0cmlnZ2VyUmVjdCB8fCAhdG9vbHRpcFJlY3QpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICB2YXIgY29sbGlzaW9ucyA9IHtcbiAgICB0b3A6IHRyaWdnZXJSZWN0LnRvcCAtIHRvb2x0aXBSZWN0LmhlaWdodCA8IDAsXG4gICAgcmlnaHQ6IHdpbmRvd1dpZHRoIDwgdHJpZ2dlclJlY3QubGVmdCArIHRvb2x0aXBSZWN0LndpZHRoLFxuICAgIGJvdHRvbTogd2luZG93SGVpZ2h0IDwgdHJpZ2dlclJlY3QuYm90dG9tICsgdG9vbHRpcFJlY3QuaGVpZ2h0ICsgb2Zmc2V0LFxuICAgIGxlZnQ6IHRyaWdnZXJSZWN0LmxlZnQgLSB0b29sdGlwUmVjdC53aWR0aCA8IDBcbiAgfTtcbiAgdmFyIGRpcmVjdGlvblJpZ2h0ID0gY29sbGlzaW9ucy5yaWdodCAmJiAhY29sbGlzaW9ucy5sZWZ0O1xuICB2YXIgZGlyZWN0aW9uVXAgPSBjb2xsaXNpb25zLmJvdHRvbSAmJiAhY29sbGlzaW9ucy50b3A7XG4gIHJldHVybiB7XG4gICAgbGVmdDogZGlyZWN0aW9uUmlnaHQgPyB0cmlnZ2VyUmVjdC5yaWdodCAtIHRvb2x0aXBSZWN0LndpZHRoICsgd2luZG93LnBhZ2VYT2Zmc2V0ICsgXCJweFwiIDogdHJpZ2dlclJlY3QubGVmdCArIHdpbmRvdy5wYWdlWE9mZnNldCArIFwicHhcIixcbiAgICB0b3A6IGRpcmVjdGlvblVwID8gdHJpZ2dlclJlY3QudG9wIC0gb2Zmc2V0IC0gdG9vbHRpcFJlY3QuaGVpZ2h0ICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgXCJweFwiIDogdHJpZ2dlclJlY3QudG9wICsgb2Zmc2V0ICsgdHJpZ2dlclJlY3QuaGVpZ2h0ICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgXCJweFwiXG4gIH07XG59O1xuLyoqXG4gKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgdXNpbmcgdG9vbHRpcHMgd2l0aCBkaXNhYmxlZCBjb250cm9scyBpbiBTYWZhcmkuXG4gKiBTYWZhcmkgZmlyZXMgYHBvaW50ZXJlbnRlcmAgYnV0IGRvZXMgbm90IGZpcmUgYHBvaW50ZXJsZWF2ZWAsIGFuZFxuICogYG9uUG9pbnRlckV2ZW50TGVhdmVgIGFkZGVkIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQgd2lsbCBub3Qgd29yay5cbiAqXG4gKiBUT0RPOiBXZSBtYXkgcmVtb3ZlIG9yIG1vZGlpZnkgdGhpcyBiZWhhdmlvciBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBEaXJlY3Rpb25cbiAqIGZyb20gV0FJLUFSSUEgbmVlZGVkIGZvciBndWlkYW5jZSBvbiBoYW5kbGluZyBkaXNhYmxlZCB0cmlnZ2Vycy4gVG9vbHRpcHNcbiAqIG11c3QgYmUgYWNjZXNzaWJsZSBieSBrZXlib2FyZCwgYW5kIGRpc2FibGVkIGZvcm0gY29udHJvbHMgYXJlIGdlbmVyYWxseVxuICogZXhjbHVkZWQgZnJvbSB0aGUgdGFiIHNlcXVlbmNlLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL2lzc3Vlcy81NjRcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9hcmlhLXByYWN0aWNlcy9pc3N1ZXMvMTI4I2lzc3VlY29tbWVudC01ODg2MjU3MjdcbiAqL1xuXG5mdW5jdGlvbiB1c2VEaXNhYmxlZFRyaWdnZXJPblNhZmFyaShfcmVmNSkge1xuICB2YXIgZGlzYWJsZWQgPSBfcmVmNS5kaXNhYmxlZCxcbiAgICAgIGlzVmlzaWJsZSA9IF9yZWY1LmlzVmlzaWJsZSxcbiAgICAgIHJlZiA9IF9yZWY1LnJlZjtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIFwiUG9pbnRlckV2ZW50XCIgaW4gd2luZG93KSB8fCAhZGlzYWJsZWQgfHwgIWlzVmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2V0T3duZXJEb2N1bWVudChyZWYuY3VycmVudCk7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVNb3VzZU1vdmUoZXZlbnQpIHtcbiAgICAgIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgZXZlbnQudGFyZ2V0LmNsb3Nlc3QoXCJbZGF0YS1yZWFjaC10b29sdGlwLXRyaWdnZXJdW2RhdGEtc3RhdGU9J3Rvb2x0aXAtdmlzaWJsZSddXCIpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuR2xvYmFsTW91c2VNb3ZlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlTW91c2VNb3ZlKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGhhbmRsZU1vdXNlTW92ZSk7XG4gICAgfTtcbiAgfSwgW2Rpc2FibGVkLCBpc1Zpc2libGUsIHJlZl0pO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFNlbmQgYW4gZXZlbnQgdG8gb3VyIHN0YXRlIG1hY2hpbmUgdG8gZmluZCB0aGUgbmV4dCBzdGF0ZSBmcm9tIHRoZSBjdXJyZW50XG4gKiBzdGF0ZSArIGFjdGlvbi5cbiAqXG4gKiBJdCBhbHNvIG1hbmFnZXMgbGlmZWN5Y2xlcyBvZiB0aGUgbWFjaGluZSwgKGVudGVyL2xlYXZlIGhvb2tzIG9uIHRoZSBzdGF0ZVxuICogY2hhcnQpXG4gKlxuICogQHBhcmFtIGV2ZW50XG4gKiBAcGFyYW0gcGF5bG9hZFxuICovXG5cblxuZnVuY3Rpb24gc2VuZChldmVudCkge1xuICB2YXIgX3RyYW5zaXRpb24gPSB0cmFuc2l0aW9uKHN0YXRlLCBldmVudCksXG4gICAgICB2YWx1ZSA9IF90cmFuc2l0aW9uLnZhbHVlLFxuICAgICAgY29udGV4dCA9IF90cmFuc2l0aW9uLmNvbnRleHQsXG4gICAgICBjaGFuZ2VkID0gX3RyYW5zaXRpb24uY2hhbmdlZDtcblxuICBpZiAoY2hhbmdlZCkge1xuICAgIHN0YXRlID0ge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH07XG4gICAgbm90aWZ5KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNpdGlvbihjdXJyZW50U3RhdGUsIGV2ZW50KSB7XG4gIHZhciBzdGF0ZURlZiA9IGNoYXJ0LnN0YXRlc1tjdXJyZW50U3RhdGUudmFsdWVdO1xuICB2YXIgbmV4dFN0YXRlID0gc3RhdGVEZWYgJiYgc3RhdGVEZWYub24gJiYgc3RhdGVEZWYub25bZXZlbnQudHlwZV07IC8vIFJlYWxseSB1c2VmdWwgZm9yIGRlYnVnZ2luZ1xuICAvLyBjb25zb2xlLmxvZyh7IGV2ZW50LCBzdGF0ZSwgbmV4dFN0YXRlLCBjb250ZXh0SWQ6IGNvbnRleHQuaWQgfSk7XG4gIC8vICFuZXh0U3RhdGUgJiYgY29uc29sZS5sb2coXCJubyB0cmFuc2l0aW9uIHRha2VuXCIpO1xuXG4gIGlmICghbmV4dFN0YXRlKSB7XG4gICAgcmV0dXJuIF9leHRlbmRzKHt9LCBjdXJyZW50U3RhdGUsIHtcbiAgICAgIGNoYW5nZWQ6IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICBpZiAoc3RhdGVEZWYgJiYgc3RhdGVEZWYubGVhdmUpIHtcbiAgICBzdGF0ZURlZi5sZWF2ZShjdXJyZW50U3RhdGUuY29udGV4dCwgZXZlbnQpO1xuICB9XG5cbiAgZXZlbnQudHlwZTtcbiAgICAgIHZhciBwYXlsb2FkID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZXZlbnQsIF9leGNsdWRlZDQpOyAvLyBUT0RPOiBVc2UgYWN0aW9ucyBpbnN0ZWFkIG9mIGRpcmVjdGx5IHNldHRpbmcgY29udGV4dFxuXG5cbiAgdmFyIGNvbnRleHQgPSBfZXh0ZW5kcyh7fSwgc3RhdGUuY29udGV4dCwgcGF5bG9hZCk7XG5cbiAgdmFyIG5leHRTdGF0ZVZhbHVlID0gdHlwZW9mIG5leHRTdGF0ZSA9PT0gXCJzdHJpbmdcIiA/IG5leHRTdGF0ZSA6IG5leHRTdGF0ZS50YXJnZXQ7XG4gIHZhciBuZXh0RGVmID0gY2hhcnQuc3RhdGVzW25leHRTdGF0ZVZhbHVlXTtcblxuICBpZiAobmV4dERlZiAmJiBuZXh0RGVmLmVudGVyKSB7XG4gICAgbmV4dERlZi5lbnRlcihjdXJyZW50U3RhdGUuY29udGV4dCwgZXZlbnQpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogbmV4dFN0YXRlVmFsdWUsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgICBjaGFuZ2VkOiB0cnVlXG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzVG9vbHRpcFZpc2libGUoaWQsIGluaXRpYWwpIHtcbiAgcmV0dXJuIHN0YXRlLmNvbnRleHQuaWQgPT09IGlkICYmIChpbml0aWFsID8gc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSA6IHN0YXRlLnZhbHVlID09PSBUb29sdGlwU3RhdGVzLlZpc2libGUgfHwgc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGUpO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZGVmYXVsdCBUb29sdGlwO1xuZXhwb3J0IHsgTEVBVkVfVElNRU9VVCwgTU9VU0VfUkVTVF9USU1FT1VULCBUb29sdGlwLCBUb29sdGlwUG9wdXAsIHBvc2l0aW9uVG9vbHRpcCwgdXNlVG9vbHRpcCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///456\n')},769:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "N": () => (/* binding */ canUseDOM)\n/* harmony export */ });\nfunction canUseDOM() {\n return !!(typeof window !== "undefined" && window.document && window.document.createElement);\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzY5LmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTs7QUFFcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanM/ZjM3ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBjYW5Vc2VET00oKSB7XG4gIHJldHVybiAhISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG59XG5cbmV4cG9ydCB7IGNhblVzZURPTSB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///769\n')},637:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"L\": () => (/* binding */ useIsomorphicLayoutEffect)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(776);\n/* harmony import */ var _can_use_dom_dist_reach_utils_can_use_dom_esm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(769);\n\n\n\n/**\n * React currently throws a warning when using useLayoutEffect on the server. To\n * get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\n * ensure we don't get a render flash for certain operations, but we may also\n * need affected components to render on the server. One example is when setting\n * a component's descendants to retrieve their index values.\n *\n * Important to note that using this hook as an escape hatch will break the\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\n * any server/client mismatch.\n *\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\n * likely that the component in question shouldn't be rendered on the server at\n * all, so a better approach would be to lazily render those in a parent\n * component after client-side hydration.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n *\n * @param effect\n * @param deps\n */\n\nvar useIsomorphicLayoutEffect = /*#__PURE__*/(0,_can_use_dom_dist_reach_utils_can_use_dom_esm_js__WEBPACK_IMPORTED_MODULE_1__/* .canUseDOM */ .N)() ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjM3LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW1EO0FBQytCOztBQUVsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNkNBQTZDLG9HQUFTLEtBQUssa0RBQWUsR0FBRyw0Q0FBUzs7QUFFakQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdC9kaXN0L3JlYWNoLXV0aWxzLXVzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QuZXNtLmpzPzE0MmQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjYW5Vc2VET00gfSBmcm9tICcuLi8uLi9jYW4tdXNlLWRvbS9kaXN0L3JlYWNoLXV0aWxzLWNhbi11c2UtZG9tLmVzbS5qcyc7XG5cbi8qKlxuICogUmVhY3QgY3VycmVudGx5IHRocm93cyBhIHdhcm5pbmcgd2hlbiB1c2luZyB1c2VMYXlvdXRFZmZlY3Qgb24gdGhlIHNlcnZlci4gVG9cbiAqIGdldCBhcm91bmQgaXQsIHdlIGNhbiBjb25kaXRpb25hbGx5IHVzZUVmZmVjdCBvbiB0aGUgc2VydmVyIChuby1vcCkgYW5kXG4gKiB1c2VMYXlvdXRFZmZlY3QgaW4gdGhlIGJyb3dzZXIuIFdlIG9jY2FzaW9uYWxseSBuZWVkIHVzZUxheW91dEVmZmVjdCB0b1xuICogZW5zdXJlIHdlIGRvbid0IGdldCBhIHJlbmRlciBmbGFzaCBmb3IgY2VydGFpbiBvcGVyYXRpb25zLCBidXQgd2UgbWF5IGFsc29cbiAqIG5lZWQgYWZmZWN0ZWQgY29tcG9uZW50cyB0byByZW5kZXIgb24gdGhlIHNlcnZlci4gT25lIGV4YW1wbGUgaXMgd2hlbiBzZXR0aW5nXG4gKiBhIGNvbXBvbmVudCdzIGRlc2NlbmRhbnRzIHRvIHJldHJpZXZlIHRoZWlyIGluZGV4IHZhbHVlcy5cbiAqXG4gKiBJbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHVzaW5nIHRoaXMgaG9vayBhcyBhbiBlc2NhcGUgaGF0Y2ggd2lsbCBicmVhayB0aGVcbiAqIGVzbGludCBkZXBlbmRlbmN5IHdhcm5pbmdzIHVubGVzcyB5b3UgcmVuYW1lIHRoZSBpbXBvcnQgdG8gYHVzZUxheW91dEVmZmVjdGAuXG4gKiBVc2Ugc3BhcmluZ2x5IG9ubHkgd2hlbiB0aGUgZWZmZWN0IHdvbid0IGVmZmVjdCB0aGUgcmVuZGVyZWQgSFRNTCB0byBhdm9pZFxuICogYW55IHNlcnZlci9jbGllbnQgbWlzbWF0Y2guXG4gKlxuICogSWYgYSB1c2VMYXlvdXRFZmZlY3QgaXMgbmVlZGVkIGFuZCB0aGUgcmVzdWx0IHdvdWxkIGNyZWF0ZSBhIG1pc21hdGNoLCBpdCdzXG4gKiBsaWtlbHkgdGhhdCB0aGUgY29tcG9uZW50IGluIHF1ZXN0aW9uIHNob3VsZG4ndCBiZSByZW5kZXJlZCBvbiB0aGUgc2VydmVyIGF0XG4gKiBhbGwsIHNvIGEgYmV0dGVyIGFwcHJvYWNoIHdvdWxkIGJlIHRvIGxhemlseSByZW5kZXIgdGhvc2UgaW4gYSBwYXJlbnRcbiAqIGNvbXBvbmVudCBhZnRlciBjbGllbnQtc2lkZSBoeWRyYXRpb24uXG4gKlxuICogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZ2FlYXJvbi9lN2Q5N2NkZjM4YTI5MDc5MjRlYTEyZTRlYmRmM2M4NVxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlZHV4anMvcmVhY3QtcmVkdXgvYmxvYi9tYXN0ZXIvc3JjL3V0aWxzL3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QuanNcbiAqXG4gKiBAcGFyYW0gZWZmZWN0XG4gKiBAcGFyYW0gZGVwc1xuICovXG5cbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gLyojX19QVVJFX18qL2NhblVzZURPTSgpID8gdXNlTGF5b3V0RWZmZWN0IDogdXNlRWZmZWN0O1xuXG5leHBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///637\n")},438:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, "prototype", {\n writable: false\n });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, "string");\n return typeof key === "symbol" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== "object" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || "default");\n if (typeof res !== "object") return res;\n throw new TypeError("@@toPrimitive must return a primitive value.");\n }\n return (hint === "string" ? String : Number)(input);\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== "function" && superClass !== null) {\n throw new TypeError("Super expression must either be null or a function");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, "prototype", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n }\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === "object" || typeof call === "function")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError("Derived constructors may only return object or undefined");\n }\n return _assertThisInitialized(self);\n }\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n }\n return self;\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === "undefined" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === "function") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n var Collapsible = function (_Component) {\n _inherits(Collapsible, _Component);\n var _super = _createSuper(Collapsible);\n function Collapsible(props) {\n var _this;\n _classCallCheck(this, Collapsible);\n _this = _super.call(this, props);\n _this.state = {\n isExpanded: false\n };\n _this._toggleExpanded = _this.toggleExpanded.bind(_assertThisInitialized(_this));\n _this._renderShowButton = _this.renderShowButton.bind(_assertThisInitialized(_this));\n _this._renderHideButton = _this.renderHideButton.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(Collapsible, [{\n key: "toggleExpanded",\n value: function toggleExpanded() {\n this.setState({\n isExpanded: !this.state.isExpanded\n });\n }\n }, {\n key: "renderShowButton",\n value: function renderShowButton() {\n return /*#__PURE__*/_react2["default"].createElement("span", {\n className: "collapsible-show-label"\n }, this.props.showLabel);\n }\n }, {\n key: "renderHideButton",\n value: function renderHideButton() {\n if (this.props.hideLabel) {\n return /*#__PURE__*/_react2["default"].createElement("span", {\n className: "collapsible-hide-label"\n }, this.props.hideLabel);\n } else {\n return "";\n }\n }\n }, {\n key: "render",\n value: function render() {\n var isArray = Array.isArray(this.props.content);\n var isHidden = this.state.isExpanded ? undefined : true;\n return /*#__PURE__*/_react2["default"].createElement("div", {\n className: "collapsible-container"\n }, /*#__PURE__*/_react2["default"].createElement("button", {\n onClick: this._toggleExpanded,\n className: "collapsible-summary",\n type: "button",\n "aria-expanded": this.state.isExpanded ? true : false\n }, this._renderShowButton(), this._renderHideButton()), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "collapsible-details",\n hidden: isHidden\n }, isArray ? /*#__PURE__*/_react2["default"].createElement("ul", {\n className: "items"\n }, this.props.content.map(function (c) {\n return /*#__PURE__*/_react2["default"].createElement("li", {\n key: c.contentTitle\n }, /*#__PURE__*/_react2["default"].createElement("p", null, /*#__PURE__*/_react2["default"].createElement("b", null, c.contentTitle)), /*#__PURE__*/_react2["default"].createElement("p", null, c.content));\n })) : /*#__PURE__*/_react2["default"].createElement("div", null, /*#__PURE__*/_react2["default"].createElement("p", null, /*#__PURE__*/_react2["default"].createElement("b", null, this.props.contentTitle)), /*#__PURE__*/_react2["default"].createElement("p", null, this.props.content))));\n }\n }]);\n return Collapsible;\n }(_react.Component);\n Collapsible.propTypes = {\n showLabel: _propTypes2["default"].string.isRequired,\n hideLabel: _propTypes2["default"].string.isRequired,\n content: _propTypes2["default"].oneOfType([_propTypes2["default"].array, _propTypes2["default"].string]).isRequired,\n contentTitle: _propTypes2["default"].string\n };\n exports["default"] = Collapsible;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UFBTdHlsZS8uL2NvbXBvbmVudHMvRXJyb3IvQ29sbGFwc2libGUuanN4PzU1OWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuXG5jbGFzcyBDb2xsYXBzaWJsZSBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBpc0V4cGFuZGVkOiBmYWxzZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl90b2dnbGVFeHBhbmRlZCA9IHRoaXMudG9nZ2xlRXhwYW5kZWQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyU2hvd0J1dHRvbiA9IHRoaXMucmVuZGVyU2hvd0J1dHRvbi5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLl9yZW5kZXJIaWRlQnV0dG9uID0gdGhpcy5yZW5kZXJIaWRlQnV0dG9uLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgdG9nZ2xlRXhwYW5kZWQoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgaXNFeHBhbmRlZDogIXRoaXMuc3RhdGUuaXNFeHBhbmRlZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVuZGVyU2hvd0J1dHRvbigpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImNvbGxhcHNpYmxlLXNob3ctbGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5zaG93TGFiZWx9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVySGlkZUJ1dHRvbigpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuaGlkZUxhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImNvbGxhcHNpYmxlLWhpZGUtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMuaGlkZUxhYmVsfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkodGhpcy5wcm9wcy5jb250ZW50KTtcbiAgICAgICAgY29uc3QgaXNIaWRkZW4gPSB0aGlzLnN0YXRlLmlzRXhwYW5kZWQgPyB1bmRlZmluZWQgOiB0cnVlO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNpYmxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5fdG9nZ2xlRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNvbGxhcHNpYmxlLXN1bW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17dGhpcy5zdGF0ZS5pc0V4cGFuZGVkID8gdHJ1ZSA6IGZhbHNlfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3RoaXMuX3JlbmRlclNob3dCdXR0b24oKX1cbiAgICAgICAgICAgICAgICAgICAge3RoaXMuX3JlbmRlckhpZGVCdXR0b24oKX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sbGFwc2libGUtZGV0YWlsc1wiIGhpZGRlbj17aXNIaWRkZW59PlxuICAgICAgICAgICAgICAgICAgICB7aXNBcnJheSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJpdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNvbnRlbnQubWFwKChjKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2MuY29udGVudFRpdGxlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPntjLmNvbnRlbnRUaXRsZX08L2I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57Yy5jb250ZW50fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj57dGhpcy5wcm9wcy5jb250ZW50VGl0bGV9PC9iPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57dGhpcy5wcm9wcy5jb250ZW50fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5Db2xsYXBzaWJsZS5wcm9wVHlwZXMgPSB7XG4gICAgc2hvd0xhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgaGlkZUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgY29udGVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5LCBQcm9wVHlwZXMuc3RyaW5nXSlcbiAgICAgICAgLmlzUmVxdWlyZWQsXG4gICAgY29udGVudFRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29sbGFwc2libGU7XG4iXSwibmFtZXMiOlsiQ29sbGFwc2libGUiLCJfQ29tcG9uZW50IiwiX2luaGVyaXRzIiwiX3N1cGVyIiwiX2NyZWF0ZVN1cGVyIiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsImNhbGwiLCJzdGF0ZSIsImlzRXhwYW5kZWQiLCJfdG9nZ2xlRXhwYW5kZWQiLCJ0b2dnbGVFeHBhbmRlZCIsImJpbmQiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiX3JlbmRlclNob3dCdXR0b24iLCJyZW5kZXJTaG93QnV0dG9uIiwiX3JlbmRlckhpZGVCdXR0b24iLCJyZW5kZXJIaWRlQnV0dG9uIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJzZXRTdGF0ZSIsIl9yZWFjdDIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic2hvd0xhYmVsIiwiaGlkZUxhYmVsIiwicmVuZGVyIiwiaXNBcnJheSIsIkFycmF5IiwiY29udGVudCIsImlzSGlkZGVuIiwidW5kZWZpbmVkIiwib25DbGljayIsInR5cGUiLCJoaWRkZW4iLCJtYXAiLCJjIiwiY29udGVudFRpdGxlIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9uZU9mVHlwZSIsImFycmF5IiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///438\n')},446:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(438), __webpack_require__(697)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _Collapsible, _propTypes) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _Collapsible2 = _interopRequireDefault(_Collapsible);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var ErrorUI = function ErrorUI(props) {\n var errorTitle = "".concat(props.type || "Error", " ").concat(props.code || "");\n var errorDetails = props.message;\n return /*#__PURE__*/_react2["default"].createElement("section", {\n className: "page-error"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "responsive-container"\n }, /*#__PURE__*/_react2["default"].createElement("h1", null, "We\\u2019re sorry."), /*#__PURE__*/_react2["default"].createElement("p", {\n className: "h2"\n }, "We cannot access this page."), /*#__PURE__*/_react2["default"].createElement(_Collapsible2["default"], {\n showLabel: "Open technical details about the error",\n hideLabel: "Close technical details about the error",\n contentTitle: errorTitle,\n content: errorDetails\n })));\n };\n ErrorUI.propTypes = {\n code: _propTypes2["default"].string,\n message: _propTypes2["default"].oneOfType([_propTypes2["default"].array, _propTypes2["default"].string]),\n type: _propTypes2["default"].string\n };\n exports["default"] = ErrorUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQ2LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUlBLElBQU1BLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFJQyxLQUFLLEVBQUs7SUFDdkIsSUFBSUMsVUFBVSxNQUFBQyxNQUFBLENBQU1GLEtBQUssQ0FBQ0csSUFBSSxJQUFJLE9BQU8sT0FBQUQsTUFBQSxDQUFJRixLQUFLLENBQUNJLElBQUksSUFBSSxFQUFFLENBQUU7SUFDL0QsSUFBSUMsWUFBWSxHQUFHTCxLQUFLLENBQUNNLE9BQU87SUFFaEMsb0JBQ0lDLE9BQUEsWUFBQUMsYUFBQTtNQUFTQyxTQUFTLEVBQUM7SUFBWSxnQkFDM0JGLE9BQUEsWUFBQUMsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBc0IsZ0JBQ2pDRixPQUFBLFlBQUFDLGFBQUEsYUFBSSxtQkFBZ0IsQ0FBQyxlQUNyQkQsT0FBQSxZQUFBQyxhQUFBO01BQUdDLFNBQVMsRUFBQztJQUFJLEdBQUMsNkJBQThCLENBQUMsZUFDakRGLE9BQUEsWUFBQUMsYUFBQSxDQUFDRSxhQUFBLFdBQVc7TUFDUkMsU0FBUyxFQUFDLHdDQUF3QztNQUNsREMsU0FBUyxFQUFDLHlDQUF5QztNQUNuREMsWUFBWSxFQUFFWixVQUFXO01BQ3pCYSxPQUFPLEVBQUVUO0lBQWEsQ0FDekIsQ0FDQSxDQUNBLENBQUM7RUFFbEIsQ0FBQztFQUVETixPQUFPLENBQUNnQixTQUFTLEdBQUc7SUFDaEJYLElBQUksRUFBRVksc0JBQVMsQ0FBQ0MsTUFBTTtJQUN0QlgsT0FBTyxFQUFFVSxzQkFBUyxDQUFDRSxTQUFTLENBQUMsQ0FBQ0Ysc0JBQVMsQ0FBQ0csS0FBSyxFQUFFSCxzQkFBUyxDQUFDQyxNQUFNLENBQUMsQ0FBQztJQUNqRWQsSUFBSSxFQUFFYSxzQkFBUyxDQUFDQztFQUNwQixDQUFDO0VBQUNHLE9BQUEsY0FFYXJCLE9BQU87QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9FcnJvci9FcnJvclVJLmpzeD9mNGNlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBDb2xsYXBzaWJsZSBmcm9tIFwiLi9Db2xsYXBzaWJsZVwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuXG5jb25zdCBFcnJvclVJID0gKHByb3BzKSA9PiB7XG4gICAgbGV0IGVycm9yVGl0bGUgPSBgJHtwcm9wcy50eXBlIHx8IFwiRXJyb3JcIn0gJHtwcm9wcy5jb2RlIHx8IFwiXCJ9YDtcbiAgICBsZXQgZXJyb3JEZXRhaWxzID0gcHJvcHMubWVzc2FnZTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInBhZ2UtZXJyb3JcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVzcG9uc2l2ZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8aDE+V2XigJlyZSBzb3JyeS48L2gxPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImgyXCI+V2UgY2Fubm90IGFjY2VzcyB0aGlzIHBhZ2UuPC9wPlxuICAgICAgICAgICAgICAgIDxDb2xsYXBzaWJsZVxuICAgICAgICAgICAgICAgICAgICBzaG93TGFiZWw9XCJPcGVuIHRlY2huaWNhbCBkZXRhaWxzIGFib3V0IHRoZSBlcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIGhpZGVMYWJlbD1cIkNsb3NlIHRlY2huaWNhbCBkZXRhaWxzIGFib3V0IHRoZSBlcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUaXRsZT17ZXJyb3JUaXRsZX1cbiAgICAgICAgICAgICAgICAgICAgY29udGVudD17ZXJyb3JEZXRhaWxzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICk7XG59O1xuXG5FcnJvclVJLnByb3BUeXBlcyA9IHtcbiAgICBjb2RlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1lc3NhZ2U6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheSwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFcnJvclVJO1xuIl0sIm5hbWVzIjpbIkVycm9yVUkiLCJwcm9wcyIsImVycm9yVGl0bGUiLCJjb25jYXQiLCJ0eXBlIiwiY29kZSIsImVycm9yRGV0YWlscyIsIm1lc3NhZ2UiLCJfcmVhY3QyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIl9Db2xsYXBzaWJsZTIiLCJzaG93TGFiZWwiLCJoaWRlTGFiZWwiLCJjb250ZW50VGl0bGUiLCJjb250ZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwib25lT2ZUeXBlIiwiYXJyYXkiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///446\n')},228:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(776), __webpack_require__(446)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _reactDom, _ErrorUI) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n exports.default = undefined;\n var _react2 = _interopRequireDefault(_react);\n var _ErrorUI2 = _interopRequireDefault(_ErrorUI);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, "prototype", {\n writable: false\n });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, "string");\n return typeof key === "symbol" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== "object" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || "default");\n if (typeof res !== "object") return res;\n throw new TypeError("@@toPrimitive must return a primitive value.");\n }\n return (hint === "string" ? String : Number)(input);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n var ErrorPage = _createClass(\n /**\n * @param {Object} options - An object containing content and config data\n * @param {String} options.type - The error type\n * @param {String} options.code - The error code\n * @param {String} options.message - The error message\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n function ErrorPage(options) {\n _classCallCheck(this, ErrorPage);\n (0, _reactDom.render)( /*#__PURE__*/_react2["default"].createElement(_ErrorUI2["default"], {\n type: options.type,\n code: options.code,\n message: options.message\n }), options.rootElement);\n });\n exports.default = ErrorPage;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjI4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQU9xQkEsU0FBUyxHQUFBQyxZQUFBO0VBQzFCO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0ksU0FBQUQsVUFBWUUsT0FBTyxFQUFFO0lBQUFDLGVBQUEsT0FBQUgsU0FBQTtJQUNqQixJQUFBSSxnQkFBTSxnQkFDRkMsT0FBQSxZQUFBQyxhQUFBLENBQUNDLFNBQUEsV0FBTztNQUNKQyxJQUFJLEVBQUVOLE9BQU8sQ0FBQ00sSUFBSztNQUNuQkMsSUFBSSxFQUFFUCxPQUFPLENBQUNPLElBQUs7TUFDbkJDLE9BQU8sRUFBRVIsT0FBTyxDQUFDUTtJQUFRLENBQzVCLENBQUMsRUFDRlIsT0FBTyxDQUFDUyxXQUNaLENBQUM7RUFDTCxDQUFDO0VBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQWpCZ0JiLFNBQVM7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9FcnJvci9lcnJvci5qcz9mMGMwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCBFcnJvclVJIGZyb20gXCIuL0Vycm9yVUlcIjtcblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBRUFAgRXJyb3IgUGFnZSBjb250ZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFcnJvclBhZ2Uge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgY29udGVudCBhbmQgY29uZmlnIGRhdGFcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9ucy50eXBlIC0gVGhlIGVycm9yIHR5cGVcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9ucy5jb2RlIC0gVGhlIGVycm9yIGNvZGVcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9ucy5tZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBvcHRpb25zLnJvb3RFbGVtZW50IC0gRWxlbSBpbnNpZGUgd2hpY2ggdG8gcmVuZGVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICA8RXJyb3JVSVxuICAgICAgICAgICAgICAgIHR5cGU9e29wdGlvbnMudHlwZX1cbiAgICAgICAgICAgICAgICBjb2RlPXtvcHRpb25zLmNvZGV9XG4gICAgICAgICAgICAgICAgbWVzc2FnZT17b3B0aW9ucy5tZXNzYWdlfVxuICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICBvcHRpb25zLnJvb3RFbGVtZW50XG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIkVycm9yUGFnZSIsIl9jcmVhdGVDbGFzcyIsIm9wdGlvbnMiLCJfY2xhc3NDYWxsQ2hlY2siLCJyZW5kZXIiLCJfcmVhY3QyIiwiY3JlYXRlRWxlbWVudCIsIl9FcnJvclVJMiIsInR5cGUiLCJjb2RlIiwibWVzc2FnZSIsInJvb3RFbGVtZW50IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///228\n')},546:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697), __webpack_require__(222)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes, _LegacyFooterUI) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n var _LegacyFooterUI2 = _interopRequireDefault(_LegacyFooterUI);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _typeof(obj) {\n "@babel/helpers - typeof";\n\n return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;\n }, _typeof(obj);\n }\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n }\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\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 }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, "string");\n return typeof key === "symbol" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== "object" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || "default");\n if (_typeof(res) !== "object") return res;\n throw new TypeError("@@toPrimitive must return a primitive value.");\n }\n return (hint === "string" ? String : Number)(input);\n }\n var FooterUI = function FooterUI(props) {\n var isNewFooter = props.isNewFooter;\n var isIESupportPage = props.isIESupportPage;\n var signUpNowLink = props.showHcdResearch ? "/about/hcd-research" : "mailto:madie@cms.hhs.gov?subject=Sign up for feedback sessions";\n\n // Default footer assets\n var assets = _objectSpread(_objectSpread({}, {\n hhsLogo: /*#__PURE__*/_react2["default"].createElement("img", {\n className: "hhs-logo",\n alt: "Department of Health & Human Services USA",\n src: "/images/hhs-logo-black.svg"\n }),\n madieLogo: /*#__PURE__*/_react2["default"].createElement("img", {\n className: "qpp-logo",\n src: "/images/qpp_logo_rgb_color.png",\n alt: "MADiE Measure Authoring Development Integrated Environment logo"\n })\n }), props.assets);\n var setLink = function setLink(link) {\n return isIESupportPage ? "/" : link;\n };\n if (isNewFooter) {\n return /*#__PURE__*/_react2["default"].createElement(_react2["default"].Fragment, null, !isIESupportPage && /*#__PURE__*/_react2["default"].createElement("div", {\n className: "feedback-session-sign-up"\n }), /*#__PURE__*/_react2["default"].createElement("footer", {\n "aria-label": "Site footer",\n className: "global-footer"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "build-version",\n id: "build-version"\n }, props.buildVersion), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "responsive-container"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "other-links"\n }, /*#__PURE__*/_react2["default"].createElement("hr", {\n className: "divider-top"\n }), /*#__PURE__*/_react2["default"].createElement("ul", {\n className: "small"\n }, /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: setLink("https://harp.cms.gov/login/terms-of-use"),\n "aria-label": "Terms of Use",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenTermsOfService",\n "data-track-label": "Terms of Use"\n }, "Terms of Use")), /*#__PURE__*/_react2["default"].createElement("li", {\n className: "divider"\n }), " ", /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: setLink("https://www.cms.gov/privacy"),\n "aria-label": "Privacy Policy",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenPrivacyPolicy",\n "data-track-label": "Privacy Policy"\n }, "Privacy Policy")), /*#__PURE__*/_react2["default"].createElement("li", {\n className: "divider"\n }), " ", /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: setLink("https://www.hhs.gov/web/governance/digital-strategy/it-policy-archive/hhs-rules-of-behavior-for-the-use-of-hhs-information-and-it-resources-policy.html"),\n "aria-label": "Rules of Behavior",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenRulesofBehavior",\n "data-track-label": "Rules of Behavior"\n }, "Rules of Behavior"))), /*#__PURE__*/_react2["default"].createElement("hr", {\n className: "divider-bottom"\n })), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "qpp-hhs-logo-container"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "qpp-logo-container"\n }, assets.qppLogo), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "hhs-logo-container"\n }, assets.hhsLogo, /*#__PURE__*/_react2["default"].createElement("p", null, "A federal government website managed and paid for by the U.S Centers for Medicare & Medicaid Services. 7500 Security Boulevard, Baltimore MD 21244"))))));\n }\n return /*#__PURE__*/_react2["default"].createElement(_LegacyFooterUI2["default"], {\n buildVersion: props.buildVersion,\n isFullWidth: props.isFullWidth,\n signUpNowLink: signUpNowLink\n });\n };\n FooterUI.propTypes = {\n buildVersion: _propTypes2["default"].string,\n isFullWidth: _propTypes2["default"].bool,\n isNewFooter: _propTypes2["default"].bool,\n isIESupportPage: _propTypes2["default"].bool,\n showHcdResearch: _propTypes2["default"].bool,\n assets: _propTypes2["default"].shape({\n cmsLogo: _propTypes2["default"].element,\n madieLogo: _propTypes2["default"].element\n })\n };\n exports["default"] = FooterUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UUFBUTtBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXJVSS5qc3g/Y2Q4YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmltcG9ydCBMZWdhY3lGb290ZXJVSSBmcm9tIFwiLi9MZWdhY3lGb290ZXJVSVwiO1xuXG5jb25zdCBGb290ZXJVSSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGlzTmV3Rm9vdGVyID0gcHJvcHMuaXNOZXdGb290ZXI7XG4gICAgY29uc3QgaXNJRVN1cHBvcnRQYWdlID0gcHJvcHMuaXNJRVN1cHBvcnRQYWdlO1xuICAgIGNvbnN0IHNpZ25VcE5vd0xpbmsgPSBwcm9wcy5zaG93SGNkUmVzZWFyY2hcbiAgICAgICAgPyBcIi9hYm91dC9oY2QtcmVzZWFyY2hcIlxuICAgICAgICA6IFwibWFpbHRvOm1hZGllQGNtcy5oaHMuZ292P3N1YmplY3Q9U2lnbiB1cCBmb3IgZmVlZGJhY2sgc2Vzc2lvbnNcIjtcblxuICAgIC8vIERlZmF1bHQgZm9vdGVyIGFzc2V0c1xuICAgIGNvbnN0IGFzc2V0cyA9IHtcbiAgICAgICAgLi4ue1xuICAgICAgICAgICAgaGhzTG9nbzogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGhzLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJEZXBhcnRtZW50IG9mIEhlYWx0aCAmYW1wOyBIdW1hbiBTZXJ2aWNlcyBVU0FcIlxuICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1hZ2VzL2hocy1sb2dvLWJsYWNrLnN2Z1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYWRpZUxvZ286IChcbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInFwcC1sb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltYWdlcy9xcHBfbG9nb19yZ2JfY29sb3IucG5nXCJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiTUFEaUUgTWVhc3VyZSBBdXRob3JpbmcgRGV2ZWxvcG1lbnQgSW50ZWdyYXRlZCBFbnZpcm9ubWVudCBsb2dvXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4ucHJvcHMuYXNzZXRzLFxuICAgIH07XG5cbiAgICBjb25zdCBzZXRMaW5rID0gKGxpbmspID0+IHtcbiAgICAgICAgcmV0dXJuIGlzSUVTdXBwb3J0UGFnZSA/IFwiL1wiIDogbGluaztcbiAgICB9O1xuXG4gICAgaWYgKGlzTmV3Rm9vdGVyKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHshaXNJRVN1cHBvcnRQYWdlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmZWVkYmFjay1zZXNzaW9uLXNpZ24tdXBcIiAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPGZvb3RlciBhcmlhLWxhYmVsPVwiU2l0ZSBmb290ZXJcIiBjbGFzc05hbWU9XCJnbG9iYWwtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnVpbGQtdmVyc2lvblwiIGlkPVwiYnVpbGQtdmVyc2lvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLmJ1aWxkVmVyc2lvbn1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvdGhlci1saW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzc05hbWU9XCJkaXZpZGVyLXRvcFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17c2V0TGluayhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJodHRwczovL2hhcnAuY21zLmdvdi9sb2dpbi90ZXJtcy1vZi11c2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlRlcm1zIG9mIFVzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuVGVybXNPZlNlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJUZXJtcyBvZiBVc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlcm1zIG9mIFVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvbGk+e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3NldExpbmsoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly93d3cuY21zLmdvdi9wcml2YWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJQcml2YWN5IFBvbGljeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuUHJpdmFjeVBvbGljeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlByaXZhY3kgUG9saWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcml2YWN5IFBvbGljeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvbGk+e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3NldExpbmsoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly93d3cuaGhzLmdvdi93ZWIvZ292ZXJuYW5jZS9kaWdpdGFsLXN0cmF0ZWd5L2l0LXBvbGljeS1hcmNoaXZlL2hocy1ydWxlcy1vZi1iZWhhdmlvci1mb3ItdGhlLXVzZS1vZi1oaHMtaW5mb3JtYXRpb24tYW5kLWl0LXJlc291cmNlcy1wb2xpY3kuaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUnVsZXMgb2YgQmVoYXZpb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlblJ1bGVzb2ZCZWhhdmlvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlJ1bGVzIG9mIEJlaGF2aW9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlcyBvZiBCZWhhdmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzTmFtZT1cImRpdmlkZXItYm90dG9tXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJxcHAtaGhzLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJxcHAtbG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Fzc2V0cy5xcHBMb2dvfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGhzLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthc3NldHMuaGhzTG9nb31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIGZlZGVyYWwgZ292ZXJubWVudCB3ZWJzaXRlIG1hbmFnZWQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWlkIGZvciBieSB0aGUgVS5TIENlbnRlcnMgZm9yIE1lZGljYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYW1wOyBNZWRpY2FpZCBTZXJ2aWNlcy4gNzUwMCBTZWN1cml0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm91bGV2YXJkLCBCYWx0aW1vcmUgTUQgMjEyNDRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAgIDxMZWdhY3lGb290ZXJVSVxuICAgICAgICAgICAgYnVpbGRWZXJzaW9uPXtwcm9wcy5idWlsZFZlcnNpb259XG4gICAgICAgICAgICBpc0Z1bGxXaWR0aD17cHJvcHMuaXNGdWxsV2lkdGh9XG4gICAgICAgICAgICBzaWduVXBOb3dMaW5rPXtzaWduVXBOb3dMaW5rfVxuICAgICAgICAvPlxuICAgICk7XG59O1xuXG5Gb290ZXJVSS5wcm9wVHlwZXMgPSB7XG4gICAgYnVpbGRWZXJzaW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGlzRnVsbFdpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0Zvb3RlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNJRVN1cHBvcnRQYWdlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93SGNkUmVzZWFyY2g6IFByb3BUeXBlcy5ib29sLFxuICAgIGFzc2V0czogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgY21zTG9nbzogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgICAgIG1hZGllTG9nbzogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgfSksXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGb290ZXJVSTtcbiJdLCJuYW1lcyI6WyJGb290ZXJVSSIsInByb3BzIiwiaXNOZXdGb290ZXIiLCJpc0lFU3VwcG9ydFBhZ2UiLCJzaWduVXBOb3dMaW5rIiwic2hvd0hjZFJlc2VhcmNoIiwiYXNzZXRzIiwiX29iamVjdFNwcmVhZCIsImhoc0xvZ28iLCJfcmVhY3QyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImFsdCIsInNyYyIsIm1hZGllTG9nbyIsInNldExpbmsiLCJsaW5rIiwiRnJhZ21lbnQiLCJpZCIsImJ1aWxkVmVyc2lvbiIsImhyZWYiLCJxcHBMb2dvIiwiX0xlZ2FjeUZvb3RlclVJMiIsImlzRnVsbFdpZHRoIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsInNoYXBlIiwiY21zTG9nbyIsImVsZW1lbnQiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///546\n')},222:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697), __webpack_require__(609)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes, _Infotip) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n var _Infotip2 = _interopRequireDefault(_Infotip);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var infoTipLabel = "When dialing 711, you will automatically be connected to a TRS Communications Assistant who will relay your conversation to the help desk agent with strict confidentiality.";\n var LegacyFooterUI = function LegacyFooterUI(_ref) {\n var buildVersion = _ref.buildVersion,\n isFullWidth = _ref.isFullWidth,\n signUpNowLink = _ref.signUpNowLink;\n return /*#__PURE__*/_react2["default"].createElement("footer", {\n className: "legacy-footer"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "build-version",\n id: "build-version"\n }, buildVersion), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "banner"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: isFullWidth ? "container-full-width" : "responsive-container"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "row"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "col-sm-12 col-md-12 col-lg-12"\n }, /*#__PURE__*/_react2["default"].createElement("span", null, "Help shape the future of MADiE"), " by participating in user feedback sessions.", " ", /*#__PURE__*/_react2["default"].createElement("a", {\n className: "email-note-link",\n href: signUpNowLink\n }, "Send us an email to sign up"))))), /*#__PURE__*/_react2["default"].createElement("div", {\n className: isFullWidth ? "container-full-width" : "responsive-container"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "row"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: isFullWidth ? "col-sm-12 col-md-8 col-lg-8" : "col-sm-8 col-md-9 col-lg-9"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "logo-container"\n }, /*#__PURE__*/_react2["default"].createElement("img", {\n src: "/images/qpp_logo_reversed.png",\n alt: "Quality Payment Program",\n className: "qpp-logo"\n }), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "social-container"\n }, /*#__PURE__*/_react2["default"].createElement("a", {\n rel: "noopener noreferrer",\n target: "_blank",\n className: "social-link",\n href: "https://twitter.com/CMSGov",\n "aria-label": "Follow us on Twitter. This link opens in a new window."\n }, /*#__PURE__*/_react2["default"].createElement("span", {\n className: "glyphicon glyphicon-twitter"\n })), /*#__PURE__*/_react2["default"].createElement("a", {\n rel: "noopener noreferrer",\n target: "_blank",\n className: "social-link",\n href: "https://www.youtube.com/playlist?list=PLaV7m2-zFKpj_6fBsqav6GvFzzq9oOpkk",\n "aria-label": "Follow us on YouTube. This link opens in a new window."\n }, /*#__PURE__*/_react2["default"].createElement("span", {\n className: "glyphicon glyphicon-youtube"\n })))), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "links"\n }, /*#__PURE__*/_react2["default"].createElement("ul", null, /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "/developers",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenDeveloperTools",\n "data-track-label": "Quality Payment Program"\n }, "Developer Tools")), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "/about/resource-library",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenEducationAndTools",\n "data-track-label": "Education and Tools"\n }, "Resource Library")), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "/glossary",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenGlossary",\n "data-track-label": "Glossary"\n }, "Glossary")), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "/resources/help-and-support",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenHelpAndSupport",\n "data-track-label": "Help and Support"\n }, "Help and Support"))), /*#__PURE__*/_react2["default"].createElement("ul", {\n className: "small"\n }, /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "https://www.cms.gov/privacy",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenPrivacyDisclaimer",\n "data-track-label": "Notice of Privacy and Disclaimer"\n }, "CMS Privacy Notice")), /*#__PURE__*/_react2["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "https://www.cms.gov/About-CMS/Agency-Information/Aboutwebsite/Policiesforaccessibility",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenAccessibility",\n "data-track-label": "Accessibility"\n }, "Accessibility")), /*#__PURE__*/_react2["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n className: "adobe-link",\n rel: "noopener noreferrer",\n target: "_blank",\n href: "https://get.adobe.com/reader",\n "data-track-category": "FooterNav",\n "data-track-action": "DownloadAdobeReader",\n "data-track-label": "AdobeReader"\n }, /*#__PURE__*/_react2["default"].createElement("svg", {\n className: "icon"\n }, /*#__PURE__*/_react2["default"].createElement("use", {\n xlinkHref: "#icon-download"\n })), "Download Adobe Reader")), /*#__PURE__*/_react2["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "mailto:sb-mat-help@semanticbits.com",\n className: "email-link"\n }, "sb-mat-help@semanticbits.com")), /*#__PURE__*/_react2["default"].createElement("li", null, "1-866-288-8292 (TRS: 711)", /*#__PURE__*/_react2["default"].createElement("div", {\n className: "footer-trs-infotip"\n }, /*#__PURE__*/_react2["default"].createElement(_Infotip2["default"], {\n lightIcon: true,\n label: infoTipLabel\n })))))), /*#__PURE__*/_react2["default"].createElement("div", {\n className: isFullWidth ? "col-sm-12 col-md-4 col-lg-4" : "col-sm-4 col-md-3 col-lg-3"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "hhs-logo-container"\n }, /*#__PURE__*/_react2["default"].createElement("img", {\n alt: "Department of Health & Human Services USA",\n src: "/images/hhs-logo-white.svg"\n }))))));\n };\n LegacyFooterUI.propTypes = {\n buildVersion: _propTypes2["default"].string,\n isFullWidth: _propTypes2["default"].bool,\n signUpNowLink: _propTypes2["default"].string\n };\n exports["default"] = LegacyFooterUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjIyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUlBLElBQU1BLFlBQVksR0FDZCw4S0FBOEs7RUFFbEwsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFBQyxJQUFBLEVBQXFEO0lBQUEsSUFBL0NDLFlBQVksR0FBQUQsSUFBQSxDQUFaQyxZQUFZO01BQUVDLFdBQVcsR0FBQUYsSUFBQSxDQUFYRSxXQUFXO01BQUVDLGFBQWEsR0FBQUgsSUFBQSxDQUFiRyxhQUFhO0lBQzlELG9CQUNJQyxPQUFBLFlBQUFDLGFBQUE7TUFBUUMsU0FBUyxFQUFDO0lBQWUsZ0JBQzdCRixPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDLGVBQWU7TUFBQ0MsRUFBRSxFQUFDO0lBQWUsR0FDNUNOLFlBQ0EsQ0FBQyxlQUNORyxPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQVEsZ0JBQ25CRixPQUFBLFlBQUFDLGFBQUE7TUFDSUMsU0FBUyxFQUNMSixXQUFXLEdBQ0wsc0JBQXNCLEdBQ3RCO0lBQ1QsZ0JBRURFLE9BQUEsWUFBQUMsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBSyxnQkFDaEJGLE9BQUEsWUFBQUMsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBK0IsZ0JBQzFDRixPQUFBLFlBQUFDLGFBQUEsZUFBTSxnQ0FBb0MsQ0FBQyxnREFDSCxFQUFDLEdBQUcsZUFDNUNELE9BQUEsWUFBQUMsYUFBQTtNQUFHQyxTQUFTLEVBQUMsaUJBQWlCO01BQUNFLElBQUksRUFBRUw7SUFBYyxHQUFDLDZCQUVqRCxDQUNGLENBQ0osQ0FDSixDQUNKLENBQUMsZUFDTkMsT0FBQSxZQUFBQyxhQUFBO01BQ0lDLFNBQVMsRUFDTEosV0FBVyxHQUNMLHNCQUFzQixHQUN0QjtJQUNULGdCQUVERSxPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQUssZ0JBQ2hCRixPQUFBLFlBQUFDLGFBQUE7TUFDSUMsU0FBUyxFQUNMSixXQUFXLEdBQ0wsNkJBQTZCLEdBQzdCO0lBQ1QsZ0JBRURFLE9BQUEsWUFBQUMsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBZ0IsZ0JBQzNCRixPQUFBLFlBQUFDLGFBQUE7TUFDSUksR0FBRyxFQUFDLCtCQUErQjtNQUNuQ0MsR0FBRyxFQUFDLHlCQUF5QjtNQUM3QkosU0FBUyxFQUFDO0lBQVUsQ0FDdkIsQ0FBQyxlQUNGRixPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQWtCLGdCQUM3QkYsT0FBQSxZQUFBQyxhQUFBO01BQ0lNLEdBQUcsRUFBQyxxQkFBcUI7TUFDekJDLE1BQU0sRUFBQyxRQUFRO01BQ2ZOLFNBQVMsRUFBQyxhQUFhO01BQ3ZCRSxJQUFJLEVBQUMsNEJBQTRCO01BQ2pDLGNBQVc7SUFBd0QsZ0JBRW5FSixPQUFBLFlBQUFDLGFBQUE7TUFBTUMsU0FBUyxFQUFDO0lBQTZCLENBQU8sQ0FDckQsQ0FBQyxlQUNKRixPQUFBLFlBQUFDLGFBQUE7TUFDSU0sR0FBRyxFQUFDLHFCQUFxQjtNQUN6QkMsTUFBTSxFQUFDLFFBQVE7TUFDZk4sU0FBUyxFQUFDLGFBQWE7TUFDdkJFLElBQUksRUFBQywwRUFBMEU7TUFDL0UsY0FBVztJQUF3RCxnQkFFbkVKLE9BQUEsWUFBQUMsYUFBQTtNQUFNQyxTQUFTLEVBQUM7SUFBNkIsQ0FBTyxDQUNyRCxDQUNGLENBQ0osQ0FBQyxlQUNORixPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQU8sZ0JBQ2xCRixPQUFBLFlBQUFDLGFBQUEsMEJBQ0lELE9BQUEsWUFBQUMsYUFBQSwwQkFDSUQsT0FBQSxZQUFBQyxhQUFBO01BQ0lHLElBQUksRUFBQyxhQUFhO01BQ2xCLHVCQUFvQixXQUFXO01BQy9CLHFCQUFrQixvQkFBb0I7TUFDdEMsb0JBQWlCO0lBQXlCLEdBQzdDLGlCQUVFLENBQ0gsQ0FBQyxlQUNMSixPQUFBLFlBQUFDLGFBQUEsMEJBQ0lELE9BQUEsWUFBQUMsYUFBQTtNQUNJRyxJQUFJLEVBQUMseUJBQXlCO01BQzlCLHVCQUFvQixXQUFXO01BQy9CLHFCQUFrQix1QkFBdUI7TUFDekMsb0JBQWlCO0lBQXFCLEdBQ3pDLGtCQUVFLENBQ0gsQ0FBQyxlQUNMSixPQUFBLFlBQUFDLGFBQUEsMEJBQ0lELE9BQUEsWUFBQUMsYUFBQTtNQUNJRyxJQUFJLEVBQUMsV0FBVztNQUNoQix1QkFBb0IsV0FBVztNQUMvQixxQkFBa0IsY0FBYztNQUNoQyxvQkFBaUI7SUFBVSxHQUM5QixVQUVFLENBQ0gsQ0FBQyxlQUNMSixPQUFBLFlBQUFDLGFBQUEsMEJBQ0lELE9BQUEsWUFBQUMsYUFBQTtNQUNJRyxJQUFJLEVBQUMsNkJBQTZCO01BQ2xDLHVCQUFvQixXQUFXO01BQy9CLHFCQUFrQixvQkFBb0I7TUFDdEMsb0JBQWlCO0lBQWtCLEdBQ3RDLGtCQUVFLENBQ0gsQ0FDSixDQUFDLGVBQ0xKLE9BQUEsWUFBQUMsYUFBQTtNQUFJQyxTQUFTLEVBQUM7SUFBTyxnQkFDakJGLE9BQUEsWUFBQUMsYUFBQSwwQkFDSUQsT0FBQSxZQUFBQyxhQUFBO01BQ0lHLElBQUksRUFBQyw2QkFBNkI7TUFDbEMsdUJBQW9CLFdBQVc7TUFDL0IscUJBQWtCLHVCQUF1QjtNQUN6QyxvQkFBaUI7SUFBa0MsR0FDdEQsb0JBRUUsQ0FDSCxDQUFDLGVBQ0xKLE9BQUEsWUFBQUMsYUFBQTtNQUFNQyxTQUFTLEVBQUM7SUFBUyxDQUFPLENBQUMsZUFDakNGLE9BQUEsWUFBQUMsYUFBQSwwQkFDSUQsT0FBQSxZQUFBQyxhQUFBO01BQ0lHLElBQUksRUFBQyx3RkFBd0Y7TUFDN0YsdUJBQW9CLFdBQVc7TUFDL0IscUJBQWtCLG1CQUFtQjtNQUNyQyxvQkFBaUI7SUFBZSxHQUNuQyxlQUVFLENBQ0gsQ0FBQyxlQUNMSixPQUFBLFlBQUFDLGFBQUE7TUFBTUMsU0FBUyxFQUFDO0lBQVMsQ0FBTyxDQUFDLGVBQ2pDRixPQUFBLFlBQUFDLGFBQUEsMEJBQ0lELE9BQUEsWUFBQUMsYUFBQTtNQUNJQyxTQUFTLEVBQUMsWUFBWTtNQUN0QkssR0FBRyxFQUFDLHFCQUFxQjtNQUN6QkMsTUFBTSxFQUFDLFFBQVE7TUFDZkosSUFBSSxFQUFDLDhCQUE4QjtNQUNuQyx1QkFBb0IsV0FBVztNQUMvQixxQkFBa0IscUJBQXFCO01BQ3ZDLG9CQUFpQjtJQUFhLGdCQUU5QkosT0FBQSxZQUFBQyxhQUFBO01BQUtDLFNBQVMsRUFBQztJQUFNLGdCQUNqQkYsT0FBQSxZQUFBQyxhQUFBO01BQUtRLFNBQVMsRUFBQztJQUFnQixDQUFFLENBQ2hDLENBQUMseUJBRVAsQ0FDSCxDQUFDLGVBQ0xULE9BQUEsWUFBQUMsYUFBQTtNQUFNQyxTQUFTLEVBQUM7SUFBUyxDQUFPLENBQUMsZUFDakNGLE9BQUEsWUFBQUMsYUFBQSwwQkFDSUQsT0FBQSxZQUFBQyxhQUFBO01BQ0lHLElBQUksRUFBQyxxQ0FBcUM7TUFDMUNGLFNBQVMsRUFBQztJQUFZLEdBQ3pCLDhCQUVFLENBQ0gsQ0FBQyxlQUNMRixPQUFBLFlBQUFDLGFBQUEsYUFBSSwyQkFFQSxlQUFBRCxPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQW9CLGdCQUMvQkYsT0FBQSxZQUFBQyxhQUFBLENBQUNTLFNBQUEsV0FBTztNQUNKQyxTQUFTO01BQ1RDLEtBQUssRUFBRWxCO0lBQWEsQ0FDdkIsQ0FDQSxDQUNMLENBQ0osQ0FDSCxDQUNKLENBQUMsZUFDTk0sT0FBQSxZQUFBQyxhQUFBO01BQ0lDLFNBQVMsRUFDTEosV0FBVyxHQUNMLDZCQUE2QixHQUM3QjtJQUNULGdCQUVERSxPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQW9CLGdCQUMvQkYsT0FBQSxZQUFBQyxhQUFBO01BQ0lLLEdBQUcsRUFBQywyQ0FBK0M7TUFDbkRELEdBQUcsRUFBQztJQUE0QixDQUNuQyxDQUNBLENBQ0osQ0FDSixDQUNKLENBQ0QsQ0FBQztFQUVqQixDQUFDO0VBRURWLGNBQWMsQ0FBQ2tCLFNBQVMsR0FBRztJQUN2QmhCLFlBQVksRUFBRWlCLHNCQUFTLENBQUNDLE1BQU07SUFDOUJqQixXQUFXLEVBQUVnQixzQkFBUyxDQUFDRSxJQUFJO0lBQzNCakIsYUFBYSxFQUFFZSxzQkFBUyxDQUFDQztFQUM3QixDQUFDO0VBQUNFLE9BQUEsY0FFYXRCLGNBQWM7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9Gb290ZXIvTGVnYWN5Rm9vdGVyVUkuanN4PzhlYzkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IEluZm9UaXAgZnJvbSBcIi4uL0luZm90aXAvSW5mb3RpcFwiO1xuXG5jb25zdCBpbmZvVGlwTGFiZWwgPVxuICAgIFwiV2hlbiBkaWFsaW5nIDcxMSwgeW91IHdpbGwgYXV0b21hdGljYWxseSBiZSBjb25uZWN0ZWQgdG8gYSBUUlMgQ29tbXVuaWNhdGlvbnMgQXNzaXN0YW50IHdobyB3aWxsIHJlbGF5IHlvdXIgY29udmVyc2F0aW9uIHRvIHRoZSBoZWxwIGRlc2sgYWdlbnQgd2l0aCBzdHJpY3QgY29uZmlkZW50aWFsaXR5LlwiO1xuXG5jb25zdCBMZWdhY3lGb290ZXJVSSA9ICh7IGJ1aWxkVmVyc2lvbiwgaXNGdWxsV2lkdGgsIHNpZ25VcE5vd0xpbmsgfSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxmb290ZXIgY2xhc3NOYW1lPVwibGVnYWN5LWZvb3RlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidWlsZC12ZXJzaW9uXCIgaWQ9XCJidWlsZC12ZXJzaW9uXCI+XG4gICAgICAgICAgICAgICAge2J1aWxkVmVyc2lvbn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiYW5uZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb250YWluZXItZnVsbC13aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcInJlc3BvbnNpdmUtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLXNtLTEyIGNvbC1tZC0xMiBjb2wtbGctMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5IZWxwIHNoYXBlIHRoZSBmdXR1cmUgb2YgTUFEaUU8L3NwYW4+IGJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGljaXBhdGluZyBpbiB1c2VyIGZlZWRiYWNrIHNlc3Npb25zLntcIiBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJlbWFpbC1ub3RlLWxpbmtcIiBocmVmPXtzaWduVXBOb3dMaW5rfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZCB1cyBhbiBlbWFpbCB0byBzaWduIHVwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgaXNGdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb250YWluZXItZnVsbC13aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwicmVzcG9uc2l2ZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb2wtc20tMTIgY29sLW1kLTggY29sLWxnLThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiY29sLXNtLTggY29sLW1kLTkgY29sLWxnLTlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1hZ2VzL3FwcF9sb2dvX3JldmVyc2VkLnBuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlF1YWxpdHkgUGF5bWVudCBQcm9ncmFtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicXBwLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzb2NpYWwtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly90d2l0dGVyLmNvbS9DTVNHb3ZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkZvbGxvdyB1cyBvbiBUd2l0dGVyLiBUaGlzIGxpbmsgb3BlbnMgaW4gYSBuZXcgd2luZG93LlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImdseXBoaWNvbiBnbHlwaGljb24tdHdpdHRlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic29jaWFsLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3BsYXlsaXN0P2xpc3Q9UExhVjdtMi16Rktwal82ZkJzcWF2Nkd2Rnp6cTlvT3Bra1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRm9sbG93IHVzIG9uIFlvdVR1YmUuIFRoaXMgbGluayBvcGVucyBpbiBhIG5ldyB3aW5kb3cuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZ2x5cGhpY29uIGdseXBoaWNvbi15b3V0dWJlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGlua3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9kZXZlbG9wZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5EZXZlbG9wZXJUb29sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlF1YWxpdHkgUGF5bWVudCBQcm9ncmFtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZlbG9wZXIgVG9vbHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fib3V0L3Jlc291cmNlLWxpYnJhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlbkVkdWNhdGlvbkFuZFRvb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiRWR1Y2F0aW9uIGFuZCBUb29sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2UgTGlicmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvZ2xvc3NhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3Blbkdsb3NzYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiR2xvc3NhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdsb3NzYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9yZXNvdXJjZXMvaGVscC1hbmQtc3VwcG9ydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuSGVscEFuZFN1cHBvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJIZWxwIGFuZCBTdXBwb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwIGFuZCBTdXBwb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuY21zLmdvdi9wcml2YWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5Qcml2YWN5RGlzY2xhaW1lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIk5vdGljZSBvZiBQcml2YWN5IGFuZCBEaXNjbGFpbWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVMgUHJpdmFjeSBOb3RpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuY21zLmdvdi9BYm91dC1DTVMvQWdlbmN5LUluZm9ybWF0aW9uL0Fib3V0d2Vic2l0ZS9Qb2xpY2llc2ZvcmFjY2Vzc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlbkFjY2Vzc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJBY2Nlc3NpYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRpdmlkZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWRvYmUtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9nZXQuYWRvYmUuY29tL3JlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJEb3dubG9hZEFkb2JlUmVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiQWRvYmVSZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwiaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNpY29uLWRvd25sb2FkXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3dubG9hZCBBZG9iZSBSZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwibWFpbHRvOnNiLW1hdC1oZWxwQHNlbWFudGljYml0cy5jb21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImVtYWlsLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNiLW1hdC1oZWxwQHNlbWFudGljYml0cy5jb21cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS04NjYtMjg4LTgyOTIgKFRSUzogNzExKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXItdHJzLWluZm90aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5mb1RpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWdodEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2luZm9UaXBMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLXNtLTEyIGNvbC1tZC00IGNvbC1sZy00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImNvbC1zbS00IGNvbC1tZC0zIGNvbC1sZy0zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaHMtbG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkRlcGFydG1lbnQgb2YgSGVhbHRoICZhbXA7IEh1bWFuIFNlcnZpY2VzIFVTQVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9pbWFnZXMvaGhzLWxvZ28td2hpdGUuc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9vdGVyPlxuICAgICk7XG59O1xuXG5MZWdhY3lGb290ZXJVSS5wcm9wVHlwZXMgPSB7XG4gICAgYnVpbGRWZXJzaW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGlzRnVsbFdpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaWduVXBOb3dMaW5rOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgTGVnYWN5Rm9vdGVyVUk7XG4iXSwibmFtZXMiOlsiaW5mb1RpcExhYmVsIiwiTGVnYWN5Rm9vdGVyVUkiLCJfcmVmIiwiYnVpbGRWZXJzaW9uIiwiaXNGdWxsV2lkdGgiLCJzaWduVXBOb3dMaW5rIiwiX3JlYWN0MiIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJpZCIsImhyZWYiLCJzcmMiLCJhbHQiLCJyZWwiLCJ0YXJnZXQiLCJ4bGlua0hyZWYiLCJfSW5mb3RpcDIiLCJsaWdodEljb24iLCJsYWJlbCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImJvb2wiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///222\n')},823:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(776), __webpack_require__(546)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _reactDom, _FooterUI) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n exports.default = undefined;\n var _react2 = _interopRequireDefault(_react);\n var _FooterUI2 = _interopRequireDefault(_FooterUI);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, "prototype", {\n writable: false\n });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, "string");\n return typeof key === "symbol" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== "object" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || "default");\n if (typeof res !== "object") return res;\n throw new TypeError("@@toPrimitive must return a primitive value.");\n }\n return (hint === "string" ? String : Number)(input);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n var Footer = _createClass(\n /**\n * @param {Object} options - An object containing content and config data\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n function Footer(options) {\n _classCallCheck(this, Footer);\n if (options.hasOwnProperty("rootElement")) {\n (0, _reactDom.render)( /*#__PURE__*/_react2["default"].createElement(_FooterUI2["default"], {\n buildVersion: "1.2.3",\n isFullWidth: options.isFullWidth,\n isNewFooter: options.isNewFooter,\n showHcdResearch: options.showHcdResearch\n }), options.rootElement);\n } else {\n (0, _reactDom.render)( /*#__PURE__*/_react2["default"].createElement(_FooterUI2["default"], {\n buildVersion: "1.2.3"\n }), options);\n }\n });\n exports.default = Footer;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODIzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQVNxQkEsTUFBTSxHQUFBQyxZQUFBO0VBQ3ZCO0FBQ0o7QUFDQTtBQUNBO0VBQ0ksU0FBQUQsT0FBWUUsT0FBTyxFQUFFO0lBQUFDLGVBQUEsT0FBQUgsTUFBQTtJQUNqQixJQUFJRSxPQUFPLENBQUNFLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRTtNQUN2QyxJQUFBQyxnQkFBTSxnQkFDRkMsT0FBQSxZQUFBQyxhQUFBLENBQUNDLFVBQUEsV0FBUTtRQUNMQyxZQUFZLEVBQUVBLE9BQWE7UUFDM0JDLFdBQVcsRUFBRVIsT0FBTyxDQUFDUSxXQUFZO1FBQ2pDQyxXQUFXLEVBQUVULE9BQU8sQ0FBQ1MsV0FBWTtRQUNqQ0MsZUFBZSxFQUFFVixPQUFPLENBQUNVO01BQWdCLENBQzVDLENBQUMsRUFDRlYsT0FBTyxDQUFDVyxXQUNaLENBQUM7SUFDTCxDQUFDLE1BQU07TUFDSCxJQUFBUixnQkFBTSxnQkFBQ0MsT0FBQSxZQUFBQyxhQUFBLENBQUNDLFVBQUEsV0FBUTtRQUFDQyxZQUFZLEVBQUVBLE9BQVlBO01BQUMsQ0FBRSxDQUFDLEVBQUVQLE9BQU8sQ0FBQztJQUM3RDtFQUNKLENBQUM7RUFBQVksT0FBQSxDQUFBQyxPQUFBLEdBbkJnQmYsTUFBTTtBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanM/NDlhZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgYnVpbGRWZXJzaW9uICovXG4vLyBidWlsZFZlcnNpb24gYWJvdmUgaXMgZGVmaW5lZCBpbiB3ZWJwYWNrLmNvbmZpZy5qc1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IEZvb3RlclVJIGZyb20gXCIuL0Zvb3RlclVJXCI7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgUVBQIEZvb3RlciBjb250ZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb290ZXIge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgY29udGVudCBhbmQgY29uZmlnIGRhdGFcbiAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBvcHRpb25zLnJvb3RFbGVtZW50IC0gRWxlbSBpbnNpZGUgd2hpY2ggdG8gcmVuZGVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShcInJvb3RFbGVtZW50XCIpKSB7XG4gICAgICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICAgICAgPEZvb3RlclVJXG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkVmVyc2lvbj17YnVpbGRWZXJzaW9ufVxuICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aD17b3B0aW9ucy5pc0Z1bGxXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgaXNOZXdGb290ZXI9e29wdGlvbnMuaXNOZXdGb290ZXJ9XG4gICAgICAgICAgICAgICAgICAgIHNob3dIY2RSZXNlYXJjaD17b3B0aW9ucy5zaG93SGNkUmVzZWFyY2h9XG4gICAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5yb290RWxlbWVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbmRlcig8Rm9vdGVyVUkgYnVpbGRWZXJzaW9uPXtidWlsZFZlcnNpb259IC8+LCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJGb290ZXIiLCJfY3JlYXRlQ2xhc3MiLCJvcHRpb25zIiwiX2NsYXNzQ2FsbENoZWNrIiwiaGFzT3duUHJvcGVydHkiLCJyZW5kZXIiLCJfcmVhY3QyIiwiY3JlYXRlRWxlbWVudCIsIl9Gb290ZXJVSTIiLCJidWlsZFZlcnNpb24iLCJpc0Z1bGxXaWR0aCIsImlzTmV3Rm9vdGVyIiwic2hvd0hjZFJlc2VhcmNoIiwicm9vdEVsZW1lbnQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///823\n')},609:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697), __webpack_require__(733), __webpack_require__(445)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes, _Tooltip, _InfotipIcon) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n var _Tooltip2 = _interopRequireDefault(_Tooltip);\n var _InfotipIcon2 = _interopRequireDefault(_InfotipIcon);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n }\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n }\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n }\n var _excluded = ["label", "lightIcon"];\n var BUTTON_SIZE = "16px";\n var buttonStyle = {\n background: "transparent",\n border: 0,\n padding: 0,\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n WebkitTouchCallout: "none",\n WebkitUserSelect: "none",\n userSelect: "none"\n };\n\n // Use basic touch handlers for mobile "tap-to-open" ui. Mobile touch\n // is currently not supported by @reach/tooltip; this may change in future.\n // Leverages @reach/tooltip "focus" behavior to open tooltip on tap,\n // and close tooltip on second tap or loss of focus.\n // TODO: We may want to improve this by tracking touch positions to ensure\n // that a \'touchend\' event must be reasonably close to the tooltip target.\n var touchHandlers = {\n onTouchStart: function onTouchStart(e) {\n e.stopPropagation();\n },\n onTouchEnd: function onTouchEnd(e) {\n if (document.activeElement !== e.currentTarget) {\n e.preventDefault();\n e.currentTarget.focus();\n } else {\n e.preventDefault();\n e.currentTarget.blur();\n }\n }\n };\n\n /**\n * Tooltip with styled information icon\n */\n var Infotip = function Infotip(_ref) {\n var label = _ref.label,\n lightIcon = _ref.lightIcon,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_react2["default"].createElement(_Tooltip2["default"], _extends({\n label: label\n }, props), /*#__PURE__*/_react2["default"].createElement("button", _extends({\n type: "button",\n "aria-label": "Information",\n style: buttonStyle\n }, touchHandlers), /*#__PURE__*/_react2["default"].createElement(_InfotipIcon2["default"], {\n lightIcon: lightIcon,\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n "aria-hidden": true,\n style: {\n "float": "left"\n }\n })));\n };\n Infotip.propTypes = {\n label: _propTypes2["default"].string.isRequired,\n ariaLabel: _propTypes2["default"].string,\n lightIcon: _propTypes2["default"].bool,\n DEBUG_STYLE: _propTypes2["default"].bool\n };\n Infotip.defaultProps = {\n ariaLabel: undefined,\n lightIcon: false,\n DEBUG_STYLE: undefined\n };\n exports["default"] = Infotip;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjA5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFLQSxJQUFNQSxXQUFXLEdBQUcsTUFBTTtFQUUxQixJQUFNQyxXQUFXLEdBQUc7SUFDaEJDLFVBQVUsRUFBRSxhQUFhO0lBQ3pCQyxNQUFNLEVBQUUsQ0FBQztJQUNUQyxPQUFPLEVBQUUsQ0FBQztJQUNWQyxLQUFLLEVBQUVMLFdBQVc7SUFDbEJNLE1BQU0sRUFBRU4sV0FBVztJQUNuQk8sa0JBQWtCLEVBQUUsTUFBTTtJQUMxQkMsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QkMsVUFBVSxFQUFFO0VBQ2hCLENBQUM7O0VBRUQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsYUFBYSxHQUFHO0lBQ2xCQyxZQUFZLEVBQUUsU0FBQUEsYUFBQ0MsQ0FBQyxFQUFLO01BQ2pCQSxDQUFDLENBQUNDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDREMsVUFBVSxFQUFFLFNBQUFBLFdBQUNGLENBQUMsRUFBSztNQUNmLElBQUlHLFFBQVEsQ0FBQ0MsYUFBYSxLQUFLSixDQUFDLENBQUNLLGFBQWEsRUFBRTtRQUM1Q0wsQ0FBQyxDQUFDTSxjQUFjLENBQUMsQ0FBQztRQUNsQk4sQ0FBQyxDQUFDSyxhQUFhLENBQUNFLEtBQUssQ0FBQyxDQUFDO01BQzNCLENBQUMsTUFBTTtRQUNIUCxDQUFDLENBQUNNLGNBQWMsQ0FBQyxDQUFDO1FBQ2xCTixDQUFDLENBQUNLLGFBQWEsQ0FBQ0csSUFBSSxDQUFDLENBQUM7TUFDMUI7SUFDSjtFQUNKLENBQUM7O0VBRUQ7QUFDQTtBQUNBO0VBQ0EsSUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUFDLElBQUE7SUFBQSxJQUFNQyxLQUFLLEdBQUFELElBQUEsQ0FBTEMsS0FBSztNQUFFQyxTQUFTLEdBQUFGLElBQUEsQ0FBVEUsU0FBUztNQUFLQyxLQUFLLEdBQUFDLHdCQUFBLENBQUFKLElBQUEsRUFBQUssU0FBQTtJQUFBLG9CQUN6Q0MsT0FBQSxZQUFBQyxhQUFBLENBQUNDLFNBQUEsV0FBTyxFQUFBQyxRQUFBO01BQUNSLEtBQUssRUFBRUE7SUFBTSxHQUFLRSxLQUFLLGdCQUM1QkcsT0FBQSxZQUFBQyxhQUFBLFdBQUFFLFFBQUE7TUFDSUMsSUFBSSxFQUFDLFFBQVE7TUFDYixjQUFXLGFBQWE7TUFDeEJDLEtBQUssRUFBRWhDO0lBQVksR0FDZlMsYUFBYSxnQkFFakJrQixPQUFBLFlBQUFDLGFBQUEsQ0FBQ0ssYUFBQSxXQUFXO01BQ1JWLFNBQVMsRUFBRUEsU0FBVTtNQUNyQm5CLEtBQUssRUFBRUwsV0FBWTtNQUNuQk0sTUFBTSxFQUFFTixXQUFZO01BQ3BCLG1CQUFXO01BQ1hpQyxLQUFLLEVBQUU7UUFBRSxTQUFPO01BQU87SUFBRSxDQUM1QixDQUNHLENBQ0gsQ0FBQztFQUFBLENBQ2I7RUFFRFosT0FBTyxDQUFDYyxTQUFTLEdBQUc7SUFDaEJaLEtBQUssRUFBRWEsc0JBQVMsQ0FBQ0MsTUFBTSxDQUFDQyxVQUFVO0lBQ2xDQyxTQUFTLEVBQUVILHNCQUFTLENBQUNDLE1BQU07SUFDM0JiLFNBQVMsRUFBRVksc0JBQVMsQ0FBQ0ksSUFBSTtJQUN6QkMsV0FBVyxFQUFFTCxzQkFBUyxDQUFDSTtFQUMzQixDQUFDO0VBRURuQixPQUFPLENBQUNxQixZQUFZLEdBQUc7SUFDbkJILFNBQVMsRUFBRUksU0FBUztJQUNwQm5CLFNBQVMsRUFBRSxLQUFLO0lBQ2hCaUIsV0FBVyxFQUFFRTtFQUNqQixDQUFDO0VBQUNDLE9BQUEsY0FFYXZCLE9BQU87QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9JbmZvdGlwL0luZm90aXAuanN4P2NjODgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSBcIi4uL1Rvb2x0aXBcIjtcbmltcG9ydCBJbmZvdGlwSWNvbiBmcm9tIFwiLi9JbmZvdGlwSWNvblwiO1xuXG5jb25zdCBCVVRUT05fU0laRSA9IFwiMTZweFwiO1xuXG5jb25zdCBidXR0b25TdHlsZSA9IHtcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgYm9yZGVyOiAwLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgd2lkdGg6IEJVVFRPTl9TSVpFLFxuICAgIGhlaWdodDogQlVUVE9OX1NJWkUsXG4gICAgV2Via2l0VG91Y2hDYWxsb3V0OiBcIm5vbmVcIixcbiAgICBXZWJraXRVc2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbn07XG5cbi8vIFVzZSBiYXNpYyB0b3VjaCBoYW5kbGVycyBmb3IgbW9iaWxlIFwidGFwLXRvLW9wZW5cIiB1aS4gIE1vYmlsZSB0b3VjaFxuLy8gaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkgQHJlYWNoL3Rvb2x0aXA7IHRoaXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuXG4vLyBMZXZlcmFnZXMgQHJlYWNoL3Rvb2x0aXAgXCJmb2N1c1wiIGJlaGF2aW9yIHRvIG9wZW4gdG9vbHRpcCBvbiB0YXAsXG4vLyBhbmQgY2xvc2UgdG9vbHRpcCBvbiBzZWNvbmQgdGFwIG9yIGxvc3Mgb2YgZm9jdXMuXG4vLyBUT0RPOiBXZSBtYXkgd2FudCB0byBpbXByb3ZlIHRoaXMgYnkgdHJhY2tpbmcgdG91Y2ggcG9zaXRpb25zIHRvIGVuc3VyZVxuLy8gdGhhdCBhICd0b3VjaGVuZCcgZXZlbnQgbXVzdCBiZSByZWFzb25hYmx5IGNsb3NlIHRvIHRoZSB0b29sdGlwIHRhcmdldC5cbmNvbnN0IHRvdWNoSGFuZGxlcnMgPSB7XG4gICAgb25Ub3VjaFN0YXJ0OiAoZSkgPT4ge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0sXG4gICAgb25Ub3VjaEVuZDogKGUpID0+IHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGUuY3VycmVudFRhcmdldCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5jdXJyZW50VGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLmN1cnJlbnRUYXJnZXQuYmx1cigpO1xuICAgICAgICB9XG4gICAgfSxcbn07XG5cbi8qKlxuICogVG9vbHRpcCB3aXRoIHN0eWxlZCBpbmZvcm1hdGlvbiBpY29uXG4gKi9cbmNvbnN0IEluZm90aXAgPSAoeyBsYWJlbCwgbGlnaHRJY29uLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPFRvb2x0aXAgbGFiZWw9e2xhYmVsfSB7Li4ucHJvcHN9PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJJbmZvcm1hdGlvblwiXG4gICAgICAgICAgICBzdHlsZT17YnV0dG9uU3R5bGV9XG4gICAgICAgICAgICB7Li4udG91Y2hIYW5kbGVyc31cbiAgICAgICAgPlxuICAgICAgICAgICAgPEluZm90aXBJY29uXG4gICAgICAgICAgICAgICAgbGlnaHRJY29uPXtsaWdodEljb259XG4gICAgICAgICAgICAgICAgd2lkdGg9e0JVVFRPTl9TSVpFfVxuICAgICAgICAgICAgICAgIGhlaWdodD17QlVUVE9OX1NJWkV9XG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICBzdHlsZT17eyBmbG9hdDogXCJsZWZ0XCIgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvVG9vbHRpcD5cbik7XG5cbkluZm90aXAucHJvcFR5cGVzID0ge1xuICAgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgYXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxpZ2h0SWNvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgREVCVUdfU1RZTEU6IFByb3BUeXBlcy5ib29sLFxufTtcblxuSW5mb3RpcC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgYXJpYUxhYmVsOiB1bmRlZmluZWQsXG4gICAgbGlnaHRJY29uOiBmYWxzZSxcbiAgICBERUJVR19TVFlMRTogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5mb3RpcDtcbiJdLCJuYW1lcyI6WyJCVVRUT05fU0laRSIsImJ1dHRvblN0eWxlIiwiYmFja2dyb3VuZCIsImJvcmRlciIsInBhZGRpbmciLCJ3aWR0aCIsImhlaWdodCIsIldlYmtpdFRvdWNoQ2FsbG91dCIsIldlYmtpdFVzZXJTZWxlY3QiLCJ1c2VyU2VsZWN0IiwidG91Y2hIYW5kbGVycyIsIm9uVG91Y2hTdGFydCIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJvblRvdWNoRW5kIiwiZG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50IiwiY3VycmVudFRhcmdldCIsInByZXZlbnREZWZhdWx0IiwiZm9jdXMiLCJibHVyIiwiSW5mb3RpcCIsIl9yZWYiLCJsYWJlbCIsImxpZ2h0SWNvbiIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX3JlYWN0MiIsImNyZWF0ZUVsZW1lbnQiLCJfVG9vbHRpcDIiLCJfZXh0ZW5kcyIsInR5cGUiLCJzdHlsZSIsIl9JbmZvdGlwSWNvbjIiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiYXJpYUxhYmVsIiwiYm9vbCIsIkRFQlVHX1NUWUxFIiwiZGVmYXVsdFByb3BzIiwidW5kZWZpbmVkIiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///609\n')},445:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n }\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n }\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n }\n var _excluded = ["lightIcon"];\n var InfotipIcon = function InfotipIcon(_ref) {\n var lightIcon = _ref.lightIcon,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_react2["default"].createElement("svg", _extends({\n width: "20px",\n height: "20px",\n viewBox: "0 0 20 20",\n xmlns: "http://www.w3.org/2000/svg"\n }, props), /*#__PURE__*/_react2["default"].createElement("g", {\n fill: "none",\n fillRule: "evenodd"\n }, /*#__PURE__*/_react2["default"].createElement("path", {\n d: "M9.721 19.158c-4.947 0-8.973-4.126-8.973-9.196C.748 4.892 4.774.766 9.72.766c4.948 0 8.974 4.126 8.974 9.196 0 5.07-4.026 9.196-8.974 9.196z",\n fill: "#2EB1ED",\n fillRule: "nonzero"\n }), /*#__PURE__*/_react2["default"].createElement("path", {\n d: "M9.721 0C4.361 0 0 4.469 0 9.962c0 5.493 4.36 9.962 9.721 9.962 5.36 0 9.722-4.469 9.722-9.962C19.443 4.469 15.082 0 9.72 0z",\n fill: lightIcon ? "#FFF" : "#04838A"\n }), /*#__PURE__*/_react2["default"].createElement("path", {\n d: "M9.721 14.765c-.206 0-.374.112-.374.25v.5c0 .138.168.25.374.25.207 0 .374-.112.374-.25v-.5c0-.138-.167-.25-.374-.25zM9.764 4.706H9.72c-.792 0-1.536.29-2.1.821a2.767 2.767 0 0 0-.89 2.03c0 .197.166.356.373.356s.374-.159.374-.356c0-.577.237-1.118.668-1.523a2.268 2.268 0 0 1 1.607-.615c1.182.016 2.195.98 2.211 2.107.011.743-.373 1.427-1.028 1.83-.995.61-1.589 1.691-1.589 2.89v1.013c0 .197.168.357.374.357.207 0 .374-.16.374-.357v-1.013c0-.941.477-1.82 1.246-2.292.873-.537 1.386-1.448 1.371-2.438-.022-1.527-1.345-2.788-2.948-2.81z",\n stroke: lightIcon ? "#04838A" : "#FFF",\n strokeWidth: ".5",\n fill: lightIcon ? "#04838A" : "#FFF",\n fillRule: "nonzero"\n })));\n };\n exports["default"] = InfotipIcon;\n InfotipIcon.propTypes = {\n lightIcon: _propTypes2["default"].bool\n };\n InfotipIcon.defaultProps = {\n lightIcon: false\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQ1LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBR0EsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUFDLElBQUE7SUFBQSxJQUFNQyxTQUFTLEdBQUFELElBQUEsQ0FBVEMsU0FBUztNQUFLQyxLQUFLLEdBQUFDLHdCQUFBLENBQUFILElBQUEsRUFBQUksU0FBQTtJQUFBLG9CQUN0Q0MsT0FBQSxZQUFBQyxhQUFBLFFBQUFDLFFBQUE7TUFDSUMsS0FBSyxFQUFDLE1BQU07TUFDWkMsTUFBTSxFQUFDLE1BQU07TUFDYkMsT0FBTyxFQUFDLFdBQVc7TUFDbkJDLEtBQUssRUFBQztJQUE0QixHQUM5QlQsS0FBSyxnQkFFVEcsT0FBQSxZQUFBQyxhQUFBO01BQUdNLElBQUksRUFBQyxNQUFNO01BQUNDLFFBQVEsRUFBQztJQUFTLGdCQUM3QlIsT0FBQSxZQUFBQyxhQUFBO01BQ0lRLENBQUMsRUFBQyw4SUFBOEk7TUFDaEpGLElBQUksRUFBQyxTQUFTO01BQ2RDLFFBQVEsRUFBQztJQUFTLENBQ3JCLENBQUMsZUFDRlIsT0FBQSxZQUFBQyxhQUFBO01BQ0lRLENBQUMsRUFBQyw4SEFBOEg7TUFDaElGLElBQUksRUFBRVgsU0FBUyxHQUFHLE1BQU0sR0FBRztJQUFVLENBQ3hDLENBQUMsZUFDRkksT0FBQSxZQUFBQyxhQUFBO01BQ0lRLENBQUMsRUFBQyxxaEJBQXFoQjtNQUN2aEJDLE1BQU0sRUFBRWQsU0FBUyxHQUFHLFNBQVMsR0FBRyxNQUFPO01BQ3ZDZSxXQUFXLEVBQUMsSUFBSTtNQUNoQkosSUFBSSxFQUFFWCxTQUFTLEdBQUcsU0FBUyxHQUFHLE1BQU87TUFDckNZLFFBQVEsRUFBQztJQUFTLENBQ3JCLENBQ0YsQ0FDRixDQUFDO0VBQUEsQ0FDVDtFQUFDSSxPQUFBLGNBRWFsQixXQUFXO0VBRTFCQSxXQUFXLENBQUNtQixTQUFTLEdBQUc7SUFDcEJqQixTQUFTLEVBQUVrQixzQkFBUyxDQUFDQztFQUN6QixDQUFDO0VBRURyQixXQUFXLENBQUNzQixZQUFZLEdBQUc7SUFDdkJwQixTQUFTLEVBQUU7RUFDZixDQUFDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvSW5mb3RpcC9JbmZvdGlwSWNvbi5qc3g/NjBjMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmNvbnN0IEluZm90aXBJY29uID0gKHsgbGlnaHRJY29uLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPHN2Z1xuICAgICAgICB3aWR0aD1cIjIwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIyMHB4XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAgICA8ZyBmaWxsPVwibm9uZVwiIGZpbGxSdWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTkuNzIxIDE5LjE1OGMtNC45NDcgMC04Ljk3My00LjEyNi04Ljk3My05LjE5NkMuNzQ4IDQuODkyIDQuNzc0Ljc2NiA5LjcyLjc2NmM0Ljk0OCAwIDguOTc0IDQuMTI2IDguOTc0IDkuMTk2IDAgNS4wNy00LjAyNiA5LjE5Ni04Ljk3NCA5LjE5NnpcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCIjMkVCMUVEXCJcbiAgICAgICAgICAgICAgICBmaWxsUnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk05LjcyMSAwQzQuMzYxIDAgMCA0LjQ2OSAwIDkuOTYyYzAgNS40OTMgNC4zNiA5Ljk2MiA5LjcyMSA5Ljk2MiA1LjM2IDAgOS43MjItNC40NjkgOS43MjItOS45NjJDMTkuNDQzIDQuNDY5IDE1LjA4MiAwIDkuNzIgMHpcIlxuICAgICAgICAgICAgICAgIGZpbGw9e2xpZ2h0SWNvbiA/IFwiI0ZGRlwiIDogXCIjMDQ4MzhBXCJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTkuNzIxIDE0Ljc2NWMtLjIwNiAwLS4zNzQuMTEyLS4zNzQuMjV2LjVjMCAuMTM4LjE2OC4yNS4zNzQuMjUuMjA3IDAgLjM3NC0uMTEyLjM3NC0uMjV2LS41YzAtLjEzOC0uMTY3LS4yNS0uMzc0LS4yNXpNOS43NjQgNC43MDZIOS43MmMtLjc5MiAwLTEuNTM2LjI5LTIuMS44MjFhMi43NjcgMi43NjcgMCAwIDAtLjg5IDIuMDNjMCAuMTk3LjE2Ni4zNTYuMzczLjM1NnMuMzc0LS4xNTkuMzc0LS4zNTZjMC0uNTc3LjIzNy0xLjExOC42NjgtMS41MjNhMi4yNjggMi4yNjggMCAwIDEgMS42MDctLjYxNWMxLjE4Mi4wMTYgMi4xOTUuOTggMi4yMTEgMi4xMDcuMDExLjc0My0uMzczIDEuNDI3LTEuMDI4IDEuODMtLjk5NS42MS0xLjU4OSAxLjY5MS0xLjU4OSAyLjg5djEuMDEzYzAgLjE5Ny4xNjguMzU3LjM3NC4zNTcuMjA3IDAgLjM3NC0uMTYuMzc0LS4zNTd2LTEuMDEzYzAtLjk0MS40NzctMS44MiAxLjI0Ni0yLjI5Mi44NzMtLjUzNyAxLjM4Ni0xLjQ0OCAxLjM3MS0yLjQzOC0uMDIyLTEuNTI3LTEuMzQ1LTIuNzg4LTIuOTQ4LTIuODF6XCJcbiAgICAgICAgICAgICAgICBzdHJva2U9e2xpZ2h0SWNvbiA/IFwiIzA0ODM4QVwiIDogXCIjRkZGXCJ9XG4gICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIuNVwiXG4gICAgICAgICAgICAgICAgZmlsbD17bGlnaHRJY29uID8gXCIjMDQ4MzhBXCIgOiBcIiNGRkZcIn1cbiAgICAgICAgICAgICAgICBmaWxsUnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgSW5mb3RpcEljb247XG5cbkluZm90aXBJY29uLnByb3BUeXBlcyA9IHtcbiAgICBsaWdodEljb246IFByb3BUeXBlcy5ib29sLFxufTtcblxuSW5mb3RpcEljb24uZGVmYXVsdFByb3BzID0ge1xuICAgIGxpZ2h0SWNvbjogZmFsc2UsXG59O1xuIl0sIm5hbWVzIjpbIkluZm90aXBJY29uIiwiX3JlZiIsImxpZ2h0SWNvbiIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX3JlYWN0MiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsInhtbG5zIiwiZmlsbCIsImZpbGxSdWxlIiwiZCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwiZXhwb3J0cyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImJvb2wiLCJkZWZhdWx0UHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///445\n')},472:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697), __webpack_require__(507), __webpack_require__(456), __webpack_require__(368)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes, _position, _tooltip, _portal) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n var _position2 = _interopRequireDefault(_position);\n var _portal2 = _interopRequireDefault(_portal);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _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 }\n function _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(o);\n if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n 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 }\n function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n // TODO: investigate ways to allow more styling via css? the triangle\n // positioning effect issue may need to be resolved to allow for this.\n var TEXT_COLOR = "#FFF";\n var BACKGROUND_COLOR = "#333";\n\n /**\n * Generic styled tooltip component.\n * Corresponding styles: /styles/components/_tooltip.scss\n *\n * Extends implementation from @reach/tooltip:\n * https://reacttraining.com/reach-ui/tooltip\n */\n var Tooltip = function Tooltip(_ref) {\n var children = _ref.children,\n label = _ref.label,\n ariaLabel = _ref.ariaLabel,\n DEBUG_STYLE = _ref.DEBUG_STYLE;\n var _useTooltip = (0, _tooltip.useTooltip)({\n DEBUG_STYLE: DEBUG_STYLE\n }),\n _useTooltip2 = _slicedToArray(_useTooltip, 2),\n trigger = _useTooltip2[0],\n tooltip = _useTooltip2[1];\n var isVisible = tooltip.isVisible,\n triggerRect = tooltip.triggerRect;\n var tooltipPopupRef = (0, _react.useRef)();\n var triangleRef = (0, _react.useRef)();\n (0, _react.useLayoutEffect)(function () {\n // For some reason, the forwardRef for the tooltipPopup points to an undefined\n // dom element when we first render the portal containing the triangle. Using\n // an effect here will ensure that the ref is available when applying styles.\n // TODO: investigate and make issue for @reach-ui/tooltip?\n if (isVisible && tooltipPopupRef.current && triggerRect) {\n var tooltipRect = tooltipPopupRef.current.getBoundingClientRect();\n var positionCssText = (0, _position.positionTriangle)(triggerRect, tooltipRect);\n var cssText = "\\n position: absolute;\\n width: 0;\\n height: 0;\\n ".concat(positionCssText, "\\n border-top-color: ").concat(BACKGROUND_COLOR, ";\\n border-bottom-color: ").concat(BACKGROUND_COLOR, ";\\n z-index: 1;\\n ");\n triangleRef.current.style.cssText = cssText;\n }\n });\n return /*#__PURE__*/_react2["default"].createElement(_react2["default"].Fragment, null, /*#__PURE__*/(0, _react.cloneElement)(children, trigger), /*#__PURE__*/_react2["default"].createElement(_tooltip.TooltipPopup, _extends({}, tooltip, {\n label: label,\n ariaLabel: ariaLabel,\n style: {\n background: BACKGROUND_COLOR,\n color: TEXT_COLOR\n },\n ref: tooltipPopupRef,\n position: _position2["default"]\n })), isVisible && /*#__PURE__*/_react2["default"].createElement(_portal2["default"], null, /*#__PURE__*/_react2["default"].createElement("div", {\n ref: triangleRef,\n style: {\n position: "absolute",\n width: 0,\n height: 0\n }\n })));\n };\n Tooltip.propTypes = {\n children: _propTypes2["default"].node.isRequired,\n label: _propTypes2["default"].node.isRequired,\n ariaLabel: _propTypes2["default"].string,\n DEBUG_STYLE: _propTypes2["default"].bool\n };\n Tooltip.defaultProps = {\n ariaLabel: undefined,\n DEBUG_STYLE: undefined\n };\n exports["default"] = Tooltip;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQ0MsVUFBVTtJQUNoQ3hDLFNBQVMsRUFBRXNDLHNCQUFTLENBQUNHLE1BQU07SUFDM0J4QyxXQUFXLEVBQUVxQyxzQkFBUyxDQUFDSTtFQUMzQixDQUFDO0VBRUQ5QyxPQUFPLENBQUMrQyxZQUFZLEdBQUc7SUFDbkIzQyxTQUFTLEVBQUU0QyxTQUFTO0lBQ3BCM0MsV0FBVyxFQUFFMkM7RUFDakIsQ0FBQztFQUFDQyxPQUFBLGNBRWFqRCxPQUFPO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwLmpzeD82OTliIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjbG9uZUVsZW1lbnQsIHVzZUxheW91dEVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgcG9zaXRpb25UaXAsIHsgcG9zaXRpb25UcmlhbmdsZSB9IGZyb20gXCIuL3Bvc2l0aW9uXCI7XG5pbXBvcnQgeyB1c2VUb29sdGlwLCBUb29sdGlwUG9wdXAgfSBmcm9tIFwiQHJlYWNoL3Rvb2x0aXBcIjtcbmltcG9ydCBQb3J0YWwgZnJvbSBcIkByZWFjaC9wb3J0YWxcIjtcblxuLy8gVE9ETzogaW52ZXN0aWdhdGUgd2F5cyB0byBhbGxvdyBtb3JlIHN0eWxpbmcgdmlhIGNzcz8gdGhlIHRyaWFuZ2xlXG4vLyBwb3NpdGlvbmluZyBlZmZlY3QgaXNzdWUgbWF5IG5lZWQgdG8gYmUgcmVzb2x2ZWQgdG8gYWxsb3cgZm9yIHRoaXMuXG5jb25zdCBURVhUX0NPTE9SID0gXCIjRkZGXCI7XG5jb25zdCBCQUNLR1JPVU5EX0NPTE9SID0gXCIjMzMzXCI7XG5cbi8qKlxuICogR2VuZXJpYyBzdHlsZWQgdG9vbHRpcCBjb21wb25lbnQuXG4gKiBDb3JyZXNwb25kaW5nIHN0eWxlczogL3N0eWxlcy9jb21wb25lbnRzL190b29sdGlwLnNjc3NcbiAqXG4gKiBFeHRlbmRzIGltcGxlbWVudGF0aW9uIGZyb20gQHJlYWNoL3Rvb2x0aXA6XG4gKiBodHRwczovL3JlYWN0dHJhaW5pbmcuY29tL3JlYWNoLXVpL3Rvb2x0aXBcbiAqL1xuY29uc3QgVG9vbHRpcCA9ICh7IGNoaWxkcmVuLCBsYWJlbCwgYXJpYUxhYmVsLCBERUJVR19TVFlMRSB9KSA9PiB7XG4gICAgY29uc3QgW3RyaWdnZXIsIHRvb2x0aXBdID0gdXNlVG9vbHRpcCh7IERFQlVHX1NUWUxFIH0pO1xuICAgIGNvbnN0IHsgaXNWaXNpYmxlLCB0cmlnZ2VyUmVjdCB9ID0gdG9vbHRpcDtcbiAgICBjb25zdCB0b29sdGlwUG9wdXBSZWYgPSB1c2VSZWYoKTtcbiAgICBjb25zdCB0cmlhbmdsZVJlZiA9IHVzZVJlZigpO1xuXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29uLCB0aGUgZm9yd2FyZFJlZiBmb3IgdGhlIHRvb2x0aXBQb3B1cCBwb2ludHMgdG8gYW4gdW5kZWZpbmVkXG4gICAgICAgIC8vIGRvbSBlbGVtZW50IHdoZW4gd2UgZmlyc3QgcmVuZGVyIHRoZSBwb3J0YWwgY29udGFpbmluZyB0aGUgdHJpYW5nbGUuIFVzaW5nXG4gICAgICAgIC8vIGFuIGVmZmVjdCBoZXJlIHdpbGwgZW5zdXJlIHRoYXQgdGhlIHJlZiBpcyBhdmFpbGFibGUgd2hlbiBhcHBseWluZyBzdHlsZXMuXG4gICAgICAgIC8vIFRPRE86IGludmVzdGlnYXRlIGFuZCBtYWtlIGlzc3VlIGZvciBAcmVhY2gtdWkvdG9vbHRpcD9cbiAgICAgICAgaWYgKGlzVmlzaWJsZSAmJiB0b29sdGlwUG9wdXBSZWYuY3VycmVudCAmJiB0cmlnZ2VyUmVjdCkge1xuICAgICAgICAgICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0b29sdGlwUG9wdXBSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uQ3NzVGV4dCA9IHBvc2l0aW9uVHJpYW5nbGUodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KTtcbiAgICAgICAgICAgIGNvbnN0IGNzc1RleHQgPSBgXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICR7cG9zaXRpb25Dc3NUZXh0fVxuICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtCQUNLR1JPVU5EX0NPTE9SfTtcbiAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7QkFDS0dST1VORF9DT0xPUn07XG4gICAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIGA7XG4gICAgICAgICAgICB0cmlhbmdsZVJlZi5jdXJyZW50LnN0eWxlLmNzc1RleHQgPSBjc3NUZXh0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAge2Nsb25lRWxlbWVudChjaGlsZHJlbiwgdHJpZ2dlcil9XG4gICAgICAgICAgICA8VG9vbHRpcFBvcHVwXG4gICAgICAgICAgICAgICAgey4uLnRvb2x0aXB9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIGFyaWFMYWJlbD17YXJpYUxhYmVsfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEJBQ0tHUk9VTkRfQ09MT1IsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBURVhUX0NPTE9SLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgcmVmPXt0b29sdGlwUG9wdXBSZWZ9XG4gICAgICAgICAgICAgICAgcG9zaXRpb249e3Bvc2l0aW9uVGlwfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtpc1Zpc2libGUgJiYgKFxuICAgICAgICAgICAgICAgIDxQb3J0YWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17dHJpYW5nbGVSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1BvcnRhbD5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5Ub29sdGlwLnByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgREVCVUdfU1RZTEU6IFByb3BUeXBlcy5ib29sLFxufTtcblxuVG9vbHRpcC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgYXJpYUxhYmVsOiB1bmRlZmluZWQsXG4gICAgREVCVUdfU1RZTEU6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRvb2x0aXA7XG4iXSwibmFtZXMiOlsiVEVYVF9DT0xPUiIsIkJBQ0tHUk9VTkRfQ09MT1IiLCJUb29sdGlwIiwiX3JlZiIsImNoaWxkcmVuIiwibGFiZWwiLCJhcmlhTGFiZWwiLCJERUJVR19TVFlMRSIsIl91c2VUb29sdGlwIiwidXNlVG9vbHRpcCIsIl91c2VUb29sdGlwMiIsIl9zbGljZWRUb0FycmF5IiwidHJpZ2dlciIsInRvb2x0aXAiLCJpc1Zpc2libGUiLCJ0cmlnZ2VyUmVjdCIsInRvb2x0aXBQb3B1cFJlZiIsInVzZVJlZiIsInRyaWFuZ2xlUmVmIiwidXNlTGF5b3V0RWZmZWN0IiwiY3VycmVudCIsInRvb2x0aXBSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwicG9zaXRpb25Dc3NUZXh0IiwicG9zaXRpb25UcmlhbmdsZSIsImNzc1RleHQiLCJjb25jYXQiLCJzdHlsZSIsIl9yZWFjdDIiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjbG9uZUVsZW1lbnQiLCJfdG9vbHRpcCIsIlRvb2x0aXBQb3B1cCIsIl9leHRlbmRzIiwiYmFja2dyb3VuZCIsImNvbG9yIiwicmVmIiwicG9zaXRpb24iLCJwb3NpdGlvblRpcCIsIl9wb3J0YWwyIiwid2lkdGgiLCJoZWlnaHQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJub2RlIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImJvb2wiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///472\n')},733:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(472)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _Tooltip) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _Tooltip2 = _interopRequireDefault(_Tooltip);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n exports["default"] = _Tooltip2["default"];\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzMzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBRWVBLG9CQUFPO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvVG9vbHRpcC9pbmRleC5qcz8wNTRhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUb29sdGlwIGZyb20gXCIuL1Rvb2x0aXBcIjtcblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcDtcbiJdLCJuYW1lcyI6WyJUb29sdGlwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///733\n')},507:function(module,exports){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var OFFSET = 12; // modified from reach-ui/tooltip OFFSET value\n var TRIANGLE_SCALE_X = 6;\n var TRIANGLE_SCALE_Y = 8;\n var isDirectionUp = function isDirectionUp(triggerRect, tooltipRect) {\n var collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n bottom: window.innerHeight < triggerRect.bottom + tooltipRect.height + OFFSET\n };\n return !collisions.top || collisions.bottom;\n };\n\n // modified from @reach/tooltip default positioning function\n // positions Tooltip relative to trigger\n // https://github.com/reach/reach-ui/blob/master/packages/tooltip/src/index.tsx#L532\n var positionTip = function positionTip(triggerRect, tooltipRect) {\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n var triggerCenter = triggerRect.left + triggerRect.width / 2;\n var left = triggerCenter - tooltipRect.width / 2;\n var maxLeft = window.innerWidth - tooltipRect.width - 2;\n var centerLeft = Math.min(Math.max(2, left), maxLeft) + window.pageXOffset;\n var directionUp = isDirectionUp(triggerRect, tooltipRect);\n return {\n left: "".concat(centerLeft, "px"),\n top: directionUp ? "".concat(triggerRect.top - OFFSET - tooltipRect.height + window.pageYOffset, "px") : "".concat(triggerRect.top + OFFSET + triggerRect.height + window.pageYOffset, "px")\n };\n };\n exports["default"] = positionTip;\n // position triangle relative to tooltip position\n // TODO: figure out a better way to render these updates from within react\n // rendering. This method causes an additional repaint after the Tooltip\n // has been rendered. may require changes to @reach/tooltip.\n var positionTriangle = exports.positionTriangle = function positionTriangle(triggerRect, tooltipRect) {\n var directionUp = isDirectionUp(triggerRect, tooltipRect);\n var triangleTop = directionUp ? triggerRect.top + window.pageYOffset - OFFSET : triggerRect.bottom + window.pageYOffset + OFFSET - TRIANGLE_SCALE_Y;\n var triangleLeft = triggerRect.left - TRIANGLE_SCALE_X + triggerRect.width / 2;\n var triangleBorder = directionUp ? "border-top: ".concat(TRIANGLE_SCALE_Y, "px solid;") : "border-bottom: ".concat(TRIANGLE_SCALE_Y, "px solid;");\n return "\\n border-left: ".concat(TRIANGLE_SCALE_X, "px solid transparent;\\n border-right: ").concat(TRIANGLE_SCALE_X, "px solid transparent;\\n left: ").concat(triangleLeft, "px;\\n top: ").concat(triangleTop, "px;\\n ").concat(triangleBorder, "\\n ");\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNtQnZCLGdCQUFnQixtREFBQXVCLE1BQUEsQ0FDZnZCLGdCQUFnQiwyQ0FBQXVCLE1BQUEsQ0FDeEJLLFlBQVksd0JBQUFMLE1BQUEsQ0FDYkksV0FBVyxtQkFBQUosTUFBQSxDQUNoQk0sY0FBYztFQUV4QixDQUFDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvVG9vbHRpcC9wb3NpdGlvbi5qcz82MWIxIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE9GRlNFVCA9IDEyOyAvLyBtb2RpZmllZCBmcm9tIHJlYWNoLXVpL3Rvb2x0aXAgT0ZGU0VUIHZhbHVlXG5jb25zdCBUUklBTkdMRV9TQ0FMRV9YID0gNjtcbmNvbnN0IFRSSUFOR0xFX1NDQUxFX1kgPSA4O1xuXG5jb25zdCBpc0RpcmVjdGlvblVwID0gKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkgPT4ge1xuICAgIGNvbnN0IGNvbGxpc2lvbnMgPSB7XG4gICAgICAgIHRvcDogdHJpZ2dlclJlY3QudG9wIC0gdG9vbHRpcFJlY3QuaGVpZ2h0IDwgMCxcbiAgICAgICAgYm90dG9tOlxuICAgICAgICAgICAgd2luZG93LmlubmVySGVpZ2h0IDxcbiAgICAgICAgICAgIHRyaWdnZXJSZWN0LmJvdHRvbSArIHRvb2x0aXBSZWN0LmhlaWdodCArIE9GRlNFVCxcbiAgICB9O1xuXG4gICAgcmV0dXJuICFjb2xsaXNpb25zLnRvcCB8fCBjb2xsaXNpb25zLmJvdHRvbTtcbn07XG5cbi8vIG1vZGlmaWVkIGZyb20gQHJlYWNoL3Rvb2x0aXAgZGVmYXVsdCBwb3NpdGlvbmluZyBmdW5jdGlvblxuLy8gcG9zaXRpb25zIFRvb2x0aXAgcmVsYXRpdmUgdG8gdHJpZ2dlclxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3Rvb2x0aXAvc3JjL2luZGV4LnRzeCNMNTMyXG5jb25zdCBwb3NpdGlvblRpcCA9ICh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpID0+IHtcbiAgICBpZiAoIXRyaWdnZXJSZWN0IHx8ICF0b29sdGlwUmVjdCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgdHJpZ2dlckNlbnRlciA9IHRyaWdnZXJSZWN0LmxlZnQgKyB0cmlnZ2VyUmVjdC53aWR0aCAvIDI7XG4gICAgY29uc3QgbGVmdCA9IHRyaWdnZXJDZW50ZXIgLSB0b29sdGlwUmVjdC53aWR0aCAvIDI7XG4gICAgY29uc3QgbWF4TGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gdG9vbHRpcFJlY3Qud2lkdGggLSAyO1xuICAgIGNvbnN0IGNlbnRlckxlZnQgPVxuICAgICAgICBNYXRoLm1pbihNYXRoLm1heCgyLCBsZWZ0KSwgbWF4TGVmdCkgKyB3aW5kb3cucGFnZVhPZmZzZXQ7XG5cbiAgICBjb25zdCBkaXJlY3Rpb25VcCA9IGlzRGlyZWN0aW9uVXAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6IGAke2NlbnRlckxlZnR9cHhgLFxuICAgICAgICB0b3A6IGRpcmVjdGlvblVwXG4gICAgICAgICAgICA/IGAke1xuICAgICAgICAgICAgICAgICAgdHJpZ2dlclJlY3QudG9wIC1cbiAgICAgICAgICAgICAgICAgIE9GRlNFVCAtXG4gICAgICAgICAgICAgICAgICB0b29sdGlwUmVjdC5oZWlnaHQgK1xuICAgICAgICAgICAgICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0XG4gICAgICAgICAgICAgIH1weGBcbiAgICAgICAgICAgIDogYCR7XG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyUmVjdC50b3AgK1xuICAgICAgICAgICAgICAgICAgT0ZGU0VUICtcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJSZWN0LmhlaWdodCArXG4gICAgICAgICAgICAgICAgICB3aW5kb3cucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgfXB4YCxcbiAgICB9O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgcG9zaXRpb25UaXA7XG5cbi8vIHBvc2l0aW9uIHRyaWFuZ2xlIHJlbGF0aXZlIHRvIHRvb2x0aXAgcG9zaXRpb25cbi8vIFRPRE86IGZpZ3VyZSBvdXQgYSBiZXR0ZXIgd2F5IHRvIHJlbmRlciB0aGVzZSB1cGRhdGVzIGZyb20gd2l0aGluIHJlYWN0XG4vLyByZW5kZXJpbmcuIFRoaXMgbWV0aG9kIGNhdXNlcyBhbiBhZGRpdGlvbmFsIHJlcGFpbnQgYWZ0ZXIgdGhlIFRvb2x0aXBcbi8vIGhhcyBiZWVuIHJlbmRlcmVkLiBtYXkgcmVxdWlyZSBjaGFuZ2VzIHRvIEByZWFjaC90b29sdGlwLlxuZXhwb3J0IGNvbnN0IHBvc2l0aW9uVHJpYW5nbGUgPSAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KSA9PiB7XG4gICAgY29uc3QgZGlyZWN0aW9uVXAgPSBpc0RpcmVjdGlvblVwKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCk7XG4gICAgY29uc3QgdHJpYW5nbGVUb3AgPSBkaXJlY3Rpb25VcFxuICAgICAgICA/IHRyaWdnZXJSZWN0LnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCAtIE9GRlNFVFxuICAgICAgICA6IHRyaWdnZXJSZWN0LmJvdHRvbSArIHdpbmRvdy5wYWdlWU9mZnNldCArIE9GRlNFVCAtIFRSSUFOR0xFX1NDQUxFX1k7XG5cbiAgICBjb25zdCB0cmlhbmdsZUxlZnQgPVxuICAgICAgICB0cmlnZ2VyUmVjdC5sZWZ0IC0gVFJJQU5HTEVfU0NBTEVfWCArIHRyaWdnZXJSZWN0LndpZHRoIC8gMjtcblxuICAgIGNvbnN0IHRyaWFuZ2xlQm9yZGVyID0gZGlyZWN0aW9uVXBcbiAgICAgICAgPyBgYm9yZGVyLXRvcDogJHtUUklBTkdMRV9TQ0FMRV9ZfXB4IHNvbGlkO2BcbiAgICAgICAgOiBgYm9yZGVyLWJvdHRvbTogJHtUUklBTkdMRV9TQ0FMRV9ZfXB4IHNvbGlkO2A7XG5cbiAgICByZXR1cm4gYFxuICAgICAgICBib3JkZXItbGVmdDogJHtUUklBTkdMRV9TQ0FMRV9YfXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6ICR7VFJJQU5HTEVfU0NBTEVfWH1weCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgbGVmdDogJHt0cmlhbmdsZUxlZnR9cHg7XG4gICAgICAgIHRvcDogJHt0cmlhbmdsZVRvcH1weDtcbiAgICAgICAgJHt0cmlhbmdsZUJvcmRlcn1cbiAgICBgO1xufTtcbiJdLCJuYW1lcyI6WyJPRkZTRVQiLCJUUklBTkdMRV9TQ0FMRV9YIiwiVFJJQU5HTEVfU0NBTEVfWSIsImlzRGlyZWN0aW9uVXAiLCJ0cmlnZ2VyUmVjdCIsInRvb2x0aXBSZWN0IiwiY29sbGlzaW9ucyIsInRvcCIsImhlaWdodCIsImJvdHRvbSIsIndpbmRvdyIsImlubmVySGVpZ2h0IiwicG9zaXRpb25UaXAiLCJ0cmlnZ2VyQ2VudGVyIiwibGVmdCIsIndpZHRoIiwibWF4TGVmdCIsImlubmVyV2lkdGgiLCJjZW50ZXJMZWZ0IiwiTWF0aCIsIm1pbiIsIm1heCIsInBhZ2VYT2Zmc2V0IiwiZGlyZWN0aW9uVXAiLCJjb25jYXQiLCJwYWdlWU9mZnNldCIsImV4cG9ydHMiLCJwb3NpdGlvblRyaWFuZ2xlIiwidHJpYW5nbGVUb3AiLCJ0cmlhbmdsZUxlZnQiLCJ0cmlhbmdsZUJvcmRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///507\n')},45:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(228), __webpack_require__(823), __webpack_require__(474)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _error, _footer) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _error2 = _interopRequireDefault(_error);\n var _footer2 = _interopRequireDefault(_footer);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var QppStyleComponents = {\n errorPage: function errorPage(options) {\n return new _error2["default"](options);\n },\n footer: function footer(options) {\n return new _footer2["default"](options);\n }\n };\n exports["default"] = QppStyleComponents;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFLQSxJQUFNQSxrQkFBa0IsR0FBRztJQUN2QkMsU0FBUyxXQUFBQSxVQUFDQyxPQUFPLEVBQUU7TUFDZixPQUFPLElBQUlDLGtCQUFTLENBQUNELE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRURFLE1BQU0sV0FBQUEsT0FBQ0YsT0FBTyxFQUFFO01BQ1osT0FBTyxJQUFJRyxtQkFBTSxDQUFDSCxPQUFPLENBQUM7SUFDOUI7RUFDSixDQUFDO0VBQUNJLE9BQUEsY0FFYU4sa0JBQWtCO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2luZGV4LmpzPzQxZjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVycm9yUGFnZSBmcm9tIFwiLi9jb21wb25lbnRzL0Vycm9yL2Vycm9yXCI7XG5pbXBvcnQgRm9vdGVyIGZyb20gXCIuL2NvbXBvbmVudHMvRm9vdGVyL2Zvb3RlclwiO1xuXG5pbXBvcnQgXCJ3aGF0LWlucHV0XCI7XG5cbmNvbnN0IFFwcFN0eWxlQ29tcG9uZW50cyA9IHtcbiAgICBlcnJvclBhZ2Uob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEVycm9yUGFnZShvcHRpb25zKTtcbiAgICB9LFxuXG4gICAgZm9vdGVyKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGb290ZXIob3B0aW9ucyk7XG4gICAgfSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFFwcFN0eWxlQ29tcG9uZW50cztcbiJdLCJuYW1lcyI6WyJRcHBTdHlsZUNvbXBvbmVudHMiLCJlcnJvclBhZ2UiLCJvcHRpb25zIiwiRXJyb3JQYWdlIiwiZm9vdGVyIiwiRm9vdGVyIiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///45\n')},776:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n "Children": () => (/* binding */ compat_module_O),\n "Component": () => (/* reexport */ d),\n "Fragment": () => (/* reexport */ p),\n "PureComponent": () => (/* binding */ compat_module_w),\n "StrictMode": () => (/* binding */ vn),\n "Suspense": () => (/* binding */ D),\n "SuspenseList": () => (/* binding */ compat_module_V),\n "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED": () => (/* binding */ rn),\n "cloneElement": () => (/* binding */ cn),\n "createContext": () => (/* reexport */ B),\n "createElement": () => (/* reexport */ h),\n "createFactory": () => (/* binding */ on),\n "createPortal": () => (/* binding */ compat_module_j),\n "createRef": () => (/* reexport */ y),\n "default": () => (/* binding */ bn),\n "findDOMNode": () => (/* binding */ an),\n "flushSync": () => (/* binding */ hn),\n "forwardRef": () => (/* binding */ compat_module_k),\n "hydrate": () => (/* binding */ compat_module_q),\n "isValidElement": () => (/* binding */ ln),\n "lazy": () => (/* binding */ compat_module_M),\n "memo": () => (/* binding */ R),\n "render": () => (/* binding */ Y),\n "startTransition": () => (/* binding */ dn),\n "unmountComponentAtNode": () => (/* binding */ fn),\n "unstable_batchedUpdates": () => (/* binding */ sn),\n "useCallback": () => (/* reexport */ hooks_module_T),\n "useContext": () => (/* reexport */ hooks_module_q),\n "useDebugValue": () => (/* reexport */ hooks_module_x),\n "useDeferredValue": () => (/* binding */ pn),\n "useEffect": () => (/* reexport */ hooks_module_h),\n "useErrorBoundary": () => (/* reexport */ hooks_module_P),\n "useId": () => (/* reexport */ V),\n "useImperativeHandle": () => (/* reexport */ hooks_module_A),\n "useInsertionEffect": () => (/* binding */ yn),\n "useLayoutEffect": () => (/* reexport */ hooks_module_s),\n "useMemo": () => (/* reexport */ F),\n "useReducer": () => (/* reexport */ hooks_module_y),\n "useRef": () => (/* reexport */ hooks_module_),\n "useState": () => (/* reexport */ hooks_module_p),\n "useSyncExternalStore": () => (/* binding */ _n),\n "useTransition": () => (/* binding */ mn),\n "version": () => (/* binding */ un)\n});\n\n;// CONCATENATED MODULE: ./node_modules/preact/dist/preact.module.js\nvar n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v(l,f,t,o,null)}function v(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function y(){return{current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?_(n):null}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function b(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||setTimeout)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=s({},t)).__v=t.__v+1,j(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_(t):o,t.__h),z(u,t),t.__e!=o&&k(t)))})}function w(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e,C=x.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k||"bigint"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(p,{children:k},null,null,null):k.__b>0?v(k.type,k.props,k.key,k.ref?k.ref:null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y<C;y++){if((d=x[y])&&k.key==d.key&&k.type===d.type){x[y]=void 0;break}d=null}j(n,k,d=d||f,t,o,r,c,s,a),b=k.__e,(y=k.ref)&&d.ref!=y&&(w||(w=[]),d.ref&&w.push(d.ref,null,k),w.push(y,k.__c||b,k)),null!=b?(null==g&&(g=b),"function"==typeof k.type&&k.__k===d.__k?k.__d=s=m(k,s,n):s=A(n,k,d,x,b,s),"function"==typeof u.type&&(u.__d=s)):s&&d.__e==s&&s.parentNode!=n&&(s=_(d))}for(u.__e=g,h=C;h--;)null!=x[h]&&N(x[h],x[h]);if(w)for(h=0;h<w.length;h++)M(w[h],w[++h],w[++h])}function m(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l="function"==typeof i.type?m(i,l,u):A(u,i,i,t,i.__e,l));return l}function x(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){x(n,l)}):l.push(n)),l}function A(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||c.test(l)?u:u+"px"}function H(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&-1==l.indexOf("-")?n.removeAttribute(l):n.setAttribute(l,u))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,o,r,f,e,c){var a,h,v,y,_,k,b,g,m,x,A,C,$,H,I,T=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=l.__b)&&a(u);try{n:if("function"==typeof T){if(g=u.props,m=(a=T.contextType)&&t[a.__c],x=a?m?m.props.value:a.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in T&&T.prototype.render?u.__c=h=new T(g,x):(u.__c=h=new d(g,x),h.constructor=T,h.render=O),m&&m.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[],h._sb=[]),null==h.__s&&(h.__s=h.state),null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,T.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==T.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){for(h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),A=0;A<h._sb.length;A++)h.__h.push(h._sb[A]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,k)})}if(h.context=x,h.props=g,h.__v=u,h.__P=n,C=l.__r,$=0,"prototype"in T&&T.prototype.render){for(h.state=h.__s,h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++$<25);h.state=h.__s,null!=h.getChildContext&&(t=s(s({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),I=null!=a&&a.type===p&&null==a.key?a.props.children:a,w(n,Array.isArray(I)?I:[I],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(a=l.diffed)&&a(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,o,r,e,c){var s,h,v,y=i.props,p=u.props,d=u.type,k=0;if("svg"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&n.call(l.childNodes),h=(y=i.props||f).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},k=0;k<l.attributes.length;k++)y[l.attributes[k].name]=l.attributes[k].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""))}if(C(l,p,y,o,c),v)u.__k=[];else if(k=u.props.children,w(l,Array.isArray(k)?k:[k],u,i,t,o&&"foreignObject"!==d,r,e,r?r[0]:i.__k&&_(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a(r[k]);c||("value"in p&&void 0!==(k=p.value)&&(k!==l.value||"progress"===d&&!k||"option"===d&&k!==y.value)&&H(l,"value",k,y.value,!1),"checked"in p&&void 0!==(k=p.checked)&&k!==l.checked&&H(l,"checked",k,y.checked,!1))}return l}function M(n,u,i){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null,n.__c=void 0}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,i||"function"!=typeof n.type);i||null==n.__e||a(n.__e),n.__=n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function P(u,i,t){var o,r,e;l.__&&l.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,e=[],j(i,u=(!o&&t||i).__k=h(p,null,[u]),r||f,f,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,e,!o&&t?t:r?r.__e:i.firstChild,o),z(e,u)}function S(n,l){P(n,l,S)}function q(l,u,i){var t,o,r,f=s({},l.props);for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),v(l.type,f,t||l.key,o||l.ref,null)}function B(n,l){var u={__c:l="__cC"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(b)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=e.slice,l={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),"function"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),b(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b(this))},d.prototype.render=p,t=[],g.__r=0,r=0;\n//# sourceMappingURL=preact.module.js.map\n\n;// CONCATENATED MODULE: ./node_modules/preact/hooks/dist/hooks.module.js\nvar hooks_module_t,hooks_module_r,hooks_module_u,hooks_module_i,hooks_module_o=0,hooks_module_f=[],hooks_module_c=[],hooks_module_e=l.__b,hooks_module_a=l.__r,hooks_module_v=l.diffed,hooks_module_l=l.__c,hooks_module_m=l.unmount;function hooks_module_d(t,u){l.__h&&l.__h(hooks_module_r,t,hooks_module_o||u),hooks_module_o=0;var i=hooks_module_r.__H||(hooks_module_r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:hooks_module_c}),i.__[t]}function hooks_module_p(n){return hooks_module_o=1,hooks_module_y(hooks_module_B,n)}function hooks_module_y(n,u,i){var o=hooks_module_d(hooks_module_t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):hooks_module_B(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=hooks_module_r,!hooks_module_r.u)){hooks_module_r.u=!0;var f=hooks_module_r.shouldComponentUpdate;hooks_module_r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!f||f.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!f||f.call(this,n,t,r))}}return o.__N||o.__}function hooks_module_h(u,i){var o=hooks_module_d(hooks_module_t++,3);!l.__s&&hooks_module_z(o.__H,i)&&(o.__=u,o.i=i,hooks_module_r.__H.__h.push(o))}function hooks_module_s(u,i){var o=hooks_module_d(hooks_module_t++,4);!l.__s&&hooks_module_z(o.__H,i)&&(o.__=u,o.i=i,hooks_module_r.__h.push(o))}function hooks_module_(n){return hooks_module_o=5,F(function(){return{current:n}},[])}function hooks_module_A(n,t,r){hooks_module_o=6,hooks_module_s(function(){return"function"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=hooks_module_d(hooks_module_t++,7);return hooks_module_z(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function hooks_module_T(n,t){return hooks_module_o=8,F(function(){return n},t)}function hooks_module_q(n){var u=hooks_module_r.context[n.__c],i=hooks_module_d(hooks_module_t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(hooks_module_r)),u.props.value):n.__}function hooks_module_x(t,r){l.useDebugValue&&l.useDebugValue(r?r(t):t)}function hooks_module_P(n){var u=hooks_module_d(hooks_module_t++,10),i=hooks_module_p();return u.__=n,hooks_module_r.componentDidCatch||(hooks_module_r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function V(){var n=hooks_module_d(hooks_module_t++,11);if(!n.__){for(var u=hooks_module_r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__="P"+i[0]+"-"+i[1]++}return n.__}function hooks_module_b(){for(var t;t=hooks_module_f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(hooks_module_k),t.__H.__h.forEach(hooks_module_w),t.__H.__h=[]}catch(r){t.__H.__h=[],l.__e(r,t.__v)}}l.__b=function(n){hooks_module_r=null,hooks_module_e&&hooks_module_e(n)},l.__r=function(n){hooks_module_a&&hooks_module_a(n),hooks_module_t=0;var i=(hooks_module_r=n.__c).__H;i&&(hooks_module_u===hooks_module_r?(i.__h=[],hooks_module_r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=hooks_module_c,n.__N=n.i=void 0})):(i.__h.forEach(hooks_module_k),i.__h.forEach(hooks_module_w),i.__h=[])),hooks_module_u=hooks_module_r},l.diffed=function(t){hooks_module_v&&hooks_module_v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==hooks_module_f.push(o)&&hooks_module_i===l.requestAnimationFrame||((hooks_module_i=l.requestAnimationFrame)||hooks_module_j)(hooks_module_b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==hooks_module_c&&(n.__=n.__V),n.i=void 0,n.__V=hooks_module_c})),hooks_module_u=hooks_module_r=null},l.__c=function(t,r){r.some(function(t){try{t.__h.forEach(hooks_module_k),t.__h=t.__h.filter(function(n){return!n.__||hooks_module_w(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],l.__e(u,t.__v)}}),hooks_module_l&&hooks_module_l(t,r)},l.unmount=function(t){hooks_module_m&&hooks_module_m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{hooks_module_k(n)}catch(n){r=n}}),u.__H=void 0,r&&l.__e(r,u.__v))};var hooks_module_g="function"==typeof requestAnimationFrame;function hooks_module_j(n){var t,r=function(){clearTimeout(u),hooks_module_g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);hooks_module_g&&(t=requestAnimationFrame(r))}function hooks_module_k(n){var t=hooks_module_r,u=n.__c;"function"==typeof u&&(n.__c=void 0,u()),hooks_module_r=t}function hooks_module_w(n){var t=hooks_module_r;n.__c=n.__(),hooks_module_r=t}function hooks_module_z(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function hooks_module_B(n,t){return"function"==typeof t?t(n):t}\n//# sourceMappingURL=hooks.module.js.map\n\n;// CONCATENATED MODULE: ./node_modules/preact/compat/dist/compat.module.js\nfunction compat_module_g(n,t){for(var e in t)n[e]=t[e];return n}function compat_module_C(n,t){for(var e in n)if("__source"!==e&&!(e in t))return!0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return!0;return!1}function E(n,t){return n===t&&(0!==n||1/n==1/t)||n!=n&&t!=t}function compat_module_w(n){this.props=n}function R(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:compat_module_C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,h(n,e)}return u.displayName="Memo("+(n.displayName||n.name)+")",u.prototype.isReactComponent=!0,u.__f=!0,u}(compat_module_w.prototype=new d).isPureReactComponent=!0,compat_module_w.prototype.shouldComponentUpdate=function(n,t){return compat_module_C(this.props,n)||compat_module_C(this.state,t)};var compat_module_x=l.__b;l.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),compat_module_x&&compat_module_x(n)};var compat_module_N="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function compat_module_k(n){function t(t){var e=compat_module_g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=compat_module_N,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var compat_module_A=function(n,t){return null==n?null:x(x(n).map(t))},compat_module_O={map:compat_module_A,forEach:compat_module_A,count:function(n){return n?x(n).length:0},only:function(n){var t=x(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:x},compat_module_T=l.__e;l.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);compat_module_T(n,t,e,r)};var compat_module_I=l.unmount;function compat_module_L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=compat_module_g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return compat_module_L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null}function compat_module_F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function compat_module_M(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return h(r,o)}return o.displayName="Lazy",o.__f=!0,o}function compat_module_V(){this.u=null,this.o=null}l.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),compat_module_I&&compat_module_I(n)},(D.prototype=new d).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=compat_module_F(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},D.prototype.componentWillUnmount=function(){this.t=[]},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=compat_module_L(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&h(p,null,n.fallback);return i&&(i.__h=null),[h(p,null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function compat_module_P(n){return this.getChildContext=function(){return n.context},n.children}function compat_module_$(n){var e=this,r=n.i;e.componentWillUnmount=function(){P(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),n.__v?(e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),P(h(compat_module_P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount()}function compat_module_j(n,e){var r=h(compat_module_$,{__v:n,i:e});return r.containerInfo=e,r}(compat_module_V.prototype=new d).__a=function(n){var t=this,e=compat_module_F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u()};e?e(o):o()}},compat_module_V.prototype.render=function(n){this.u=null,this.o=new Map;var t=x(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},compat_module_V.prototype.componentDidUpdate=compat_module_V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t)})};var compat_module_z="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,compat_module_B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,compat_module_H="undefined"!=typeof document,Z=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function Y(n,t,e){return null==t.__k&&(t.textContent=""),P(n,t),"function"==typeof e&&e(),n?n.__c:null}function compat_module_q(n,t,e){return S(n,t),"function"==typeof e&&e(),n?n.__c:null}d.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(d.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var G=l.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}l.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var X,nn={configurable:!0,get:function(){return this.class}},tn=l.vnode;l.vnode=function(n){var t=n.type,e=n.props,u=e;if("string"==typeof t){var o=-1===t.indexOf("-");for(var i in u={},e){var l=e[i];compat_module_H&&"children"===i&&"noscript"===t||"value"===i&&"defaultValue"in e&&null==l||("defaultValue"===i&&"value"in e&&null==e.value?i="value":"download"===i&&!0===l?l="":/ondoubleclick/i.test(i)?i="ondblclick":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i="oninput":/^onfocus$/i.test(i)?i="onfocusin":/^onblur$/i.test(i)?i="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&compat_module_B.test(i)?i=i.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i="oninputCapture")),u[i]=l)}"select"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=x(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),"select"==t&&null!=u.defaultValue&&(u.value=x(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),n.props=u,e.class!=e.className&&(nn.enumerable="className"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,"className",nn))}n.$$typeof=compat_module_z,tn&&tn(n)};var en=l.__r;l.__r=function(n){en&&en(n),X=n.__c};var rn={ReactCurrentDispatcher:{current:{readContext:function(n){return X.__n[n.__c].props.value}}}},un="17.0.2";function on(n){return h.bind(null,n)}function ln(n){return!!n&&n.$$typeof===compat_module_z}function cn(n){return ln(n)?q.apply(null,arguments):n}function fn(n){return!!n.__k&&(P(null,n),!0)}function an(n){return n&&(n.base||1===n.nodeType&&n)||null}var sn=function(n,t){return n(t)},hn=function(n,t){return n(t)},vn=p;function dn(n){n()}function pn(n){return n}function mn(){return[!1,dn]}var yn=hooks_module_s;function _n(n,t){var e=t(),r=hooks_module_p({h:{__:e,v:t}}),u=r[0].h,o=r[1];return hooks_module_s(function(){u.__=e,u.v=t,E(u.__,t())||o({h:u})},[n,e,t]),hooks_module_h(function(){return E(u.__,u.v())||o({h:u}),n(function(){E(u.__,u.v())||o({h:u})})},[n]),e}var bn={useState:hooks_module_p,useId:V,useReducer:hooks_module_y,useEffect:hooks_module_h,useLayoutEffect:hooks_module_s,useInsertionEffect:yn,useTransition:mn,useDeferredValue:pn,useSyncExternalStore:_n,startTransition:dn,useRef:hooks_module_,useImperativeHandle:hooks_module_A,useMemo:F,useCallback:hooks_module_T,useContext:hooks_module_q,useDebugValue:hooks_module_x,version:"17.0.2",Children:compat_module_O,render:Y,hydrate:compat_module_q,unmountComponentAtNode:fn,createPortal:compat_module_j,createElement:h,createContext:B,createFactory:on,cloneElement:cn,createRef:y,Fragment:p,isValidElement:ln,findDOMNode:an,Component:d,PureComponent:compat_module_w,memo:R,forwardRef:compat_module_k,flushSync:hn,unstable_batchedUpdates:sn,StrictMode:vn,Suspense:D,SuspenseList:compat_module_V,lazy:compat_module_M,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:rn};\n//# sourceMappingURL=compat.module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzc2LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNCQUFzQiw0RUFBNEUsZ0JBQWdCLHlCQUF5QixTQUFTLGNBQWMsbUJBQW1CLG9CQUFvQixrQkFBa0IsZUFBZSxxREFBcUQsd0xBQXdMLHVCQUF1QixzQkFBc0IsT0FBTyw4SEFBOEgsNENBQTRDLGFBQWEsT0FBTyxjQUFjLGNBQWMsa0JBQWtCLGdCQUFnQiw0QkFBNEIsZ0JBQWdCLDBEQUEwRCxVQUFVLGVBQWUsb0RBQW9ELDBDQUEwQyxjQUFjLFFBQVEsZ0NBQWdDLDhCQUE4QixlQUFlLHdDQUF3Qyx1QkFBdUIsTUFBTSxhQUFhLGNBQWMsNkdBQTZHLGFBQWEsVUFBVSxlQUFlLHdCQUF3QiwyQkFBMkIsMEJBQTBCLGdCQUFnQixvREFBb0QsK0hBQStILEVBQUUsZ0NBQWdDLDJDQUEyQyxpQkFBaUIsV0FBVyx5S0FBeUssV0FBVyw0RUFBNEUsc0ZBQXNGLGFBQWEsSUFBSSxLQUFLLDRDQUE0QyxZQUFZLE1BQU0sT0FBTyxvU0FBb1MsZ0JBQWdCLElBQUksMEJBQTBCLGFBQWEsV0FBVywwQkFBMEIsa0JBQWtCLHNCQUFzQixjQUFjLCtFQUErRSxTQUFTLGdCQUFnQixrRkFBa0YsT0FBTyxlQUFlLHdCQUF3QixVQUFVLHVDQUF1QyxpR0FBaUcsS0FBSyxZQUFZLDhCQUE4QixxQkFBcUIsd0JBQXdCLGtDQUFrQyxzQkFBc0IsTUFBTSxpRUFBaUUsOEhBQThILGtCQUFrQixxRkFBcUYsc0JBQXNCLE1BQU0seURBQXlELEtBQUssc0ZBQXNGLGtEQUFrRCx3SUFBd0ksaUZBQWlGLHVDQUF1QywwREFBMEQsdUZBQXVGLGtCQUFrQixRQUFRLFVBQVUsc0dBQXNHLGNBQWMsd0NBQXdDLGNBQWMsd0NBQXdDLDhCQUE4QiwyQ0FBMkMsc0NBQXNDLHNFQUFzRSxJQUFJLDJCQUEyQix5UEFBeVAsK0lBQStJLDZOQUE2TixLQUFLLCtNQUErTSxnSEFBZ0gsWUFBWSxNQUFNLGVBQWUseUJBQXlCLGlDQUFpQyxRQUFRLGdIQUFnSCw0QkFBNEIsRUFBRSwwRkFBMEYsNkVBQTZFLGVBQWUseUJBQXlCLFNBQVMsUUFBUSxxRUFBcUUscUJBQXFCLGdEQUFnRCxpUkFBaVIsbUZBQW1GLG1CQUFtQixTQUFTLGdGQUFnRixnQkFBZ0IscUNBQXFDLElBQUksb0NBQW9DLFVBQVUsRUFBRSxTQUFTLGdCQUFnQixFQUFFLDRCQUE0QiwyQ0FBMkMsa0NBQWtDLFdBQVcsOEVBQThFLGNBQWMsTUFBTSxZQUFZLDhDQUE4QywyR0FBMkcsNkNBQTZDLEtBQUssc0dBQXNHLG1CQUFtQixLQUFLLHNCQUFzQixrREFBa0QsNEZBQTRGLDJCQUEyQixzSUFBc0ksSUFBSSxxQkFBcUIsb05BQW9OLFNBQVMsa0JBQWtCLElBQUksc0NBQXNDLFNBQVMsWUFBWSxrQkFBa0IsUUFBUSxtR0FBbUcsOEJBQThCLHlCQUF5QixTQUFTLFdBQVcsK0JBQStCLG1CQUFtQixXQUFXLGlEQUFpRCxpREFBaUQsa0JBQWtCLDZCQUE2QixrQkFBa0IsVUFBVSwyT0FBMk8sZ0JBQWdCLFNBQVMsa0JBQWtCLGdCQUFnQixVQUFVLHFEQUFxRCxvSEFBb0gsZ0JBQWdCLE9BQU8sNkNBQTZDLHFCQUFxQixzQkFBc0IsUUFBUSx3Q0FBd0MsMENBQTBDLFNBQVMsd0NBQXdDLHNDQUFzQyxzQkFBc0IsVUFBVSw2QkFBNkIsa0NBQWtDLHVDQUF1QyxlQUFlLDhDQUE4QyxhQUFhLHNCQUFzQixjQUFjLE9BQU8seUJBQXlCLG1LQUFtSyw0QkFBNEIsU0FBUyxJQUFJLFNBQVMsbUJBQW1CLHVDQUF1QyxvQ0FBb0MsTUFBTSw4REFBOEQsNENBQTRDLDRFQUE0RSxxQ0FBcUMsb0RBQW9ELHVDQUFpTztBQUM1NFQ7OztBQ0RpQyxJQUFJLGNBQUMsQ0FBQyxjQUFDLENBQUMsY0FBQyxDQUFDLGNBQUMsQ0FBQyxjQUFDLEdBQUcsY0FBQyxJQUFJLGNBQUMsSUFBSSxjQUFDLENBQUMsS0FBSyxDQUFDLGNBQUMsQ0FBQyxLQUFLLENBQUMsY0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFDLENBQUMsS0FBSyxDQUFDLGNBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxjQUFDLE1BQU0sS0FBSyxFQUFFLEtBQUssQ0FBQyxjQUFDLEdBQUcsY0FBQyxLQUFLLGNBQUMsR0FBRyxNQUFNLGNBQUMsT0FBTyxjQUFDLE1BQU0sYUFBYSxFQUFFLGtDQUFrQyxJQUFJLGNBQUMsQ0FBQyxVQUFVLFNBQVMsY0FBQyxJQUFJLE9BQU8sY0FBQyxHQUFHLGNBQUMsQ0FBQyxjQUFDLElBQUksU0FBUyxjQUFDLFFBQVEsTUFBTSxjQUFDLENBQUMsY0FBQyxNQUFNLCtCQUErQixjQUFDLHVCQUF1Qix3Q0FBd0MsMkNBQTJDLEdBQUcsUUFBUSxjQUFDLEVBQUUsY0FBQyxLQUFLLGNBQUMsTUFBTSxNQUFNLGNBQUMsdUJBQXVCLGNBQUMsdUNBQXVDLHVCQUF1QixzQ0FBc0MsYUFBYSxFQUFFLHVCQUF1QixhQUFhLCtCQUErQixTQUFTLDZCQUE2QixVQUFVLGNBQWMsNkNBQTZDLG9EQUFvRCxtQkFBbUIsU0FBUyxjQUFDLE1BQU0sTUFBTSxjQUFDLENBQUMsY0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGNBQUMseUJBQXlCLGNBQUMsa0JBQWtCLFNBQVMsY0FBQyxNQUFNLE1BQU0sY0FBQyxDQUFDLGNBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxjQUFDLHlCQUF5QixjQUFDLGNBQWMsU0FBUyxhQUFDLElBQUksT0FBTyxjQUFDLGdCQUFnQixPQUFPLFdBQVcsS0FBSyxTQUFTLGNBQUMsUUFBUSxjQUFDLEdBQUcsY0FBQyxZQUFZLDhDQUE4QyxlQUFlLDhCQUE4QixzQkFBc0IsU0FBUyx3QkFBd0IsZ0JBQWdCLE1BQU0sY0FBQyxDQUFDLGNBQUMsTUFBTSxPQUFPLGNBQUMsK0NBQStDLFNBQVMsY0FBQyxNQUFNLE9BQU8sY0FBQyxnQkFBZ0IsU0FBUyxJQUFJLFNBQVMsY0FBQyxJQUFJLE1BQU0sY0FBQyxrQkFBa0IsY0FBQyxDQUFDLGNBQUMsTUFBTSwyQ0FBMkMsY0FBQyx1QkFBdUIsU0FBUyxjQUFDLE1BQU0sZUFBZSxFQUFFLGVBQWUsV0FBVyxTQUFTLGNBQUMsSUFBSSxNQUFNLGNBQUMsQ0FBQyxjQUFDLFNBQVMsY0FBQyxHQUFHLGNBQWMsY0FBQyxxQkFBcUIsY0FBQyxpQ0FBaUMsd0JBQXdCLG1CQUFtQixhQUFhLEVBQUUsYUFBYSxNQUFNLGNBQUMsQ0FBQyxjQUFDLE9BQU8sVUFBVSxVQUFVLGNBQUMsS0FBSyw4QkFBOEIsUUFBUSwyQkFBMkIseUJBQXlCLFlBQVksU0FBUyxjQUFDLEdBQUcsVUFBVSxFQUFFLGNBQUMsU0FBUyxxQkFBcUIsa0JBQWtCLGNBQUMsb0JBQW9CLGNBQUMsZUFBZSxTQUFTLGFBQWEsS0FBSyxXQUFXLEtBQUssYUFBYSxjQUFDLE1BQU0sY0FBQyxFQUFFLGNBQUMsSUFBSSxDQUFDLEtBQUssYUFBYSxjQUFDLEVBQUUsY0FBQyxJQUFJLGNBQUMsR0FBRyxPQUFPLGNBQUMsWUFBWSxJQUFJLGNBQUMsR0FBRyxjQUFDLFdBQVcsY0FBQyxpQ0FBaUMsMEJBQTBCLGNBQUMsa0JBQWtCLGtCQUFrQixjQUFDLGdCQUFnQixjQUFDLGFBQWEsY0FBQyxDQUFDLGNBQUMsQ0FBQyxDQUFDLFFBQVEsYUFBYSxjQUFDLEVBQUUsY0FBQyxJQUFJLFlBQVksa0NBQWtDLGNBQUMsVUFBVSxjQUFDLEdBQUcsdUJBQXVCLElBQUksY0FBQyxDQUFDLHVCQUF1QixHQUFHLGNBQUMsRUFBRSxjQUFDLGdDQUFnQyx5QkFBeUIsY0FBQyxnQ0FBZ0MsY0FBQyxDQUFDLEdBQUcsY0FBQyxDQUFDLGNBQUMsTUFBTSxDQUFDLEtBQUssZUFBZSxtQkFBbUIsSUFBSSxjQUFjLGNBQUMsaUNBQWlDLGFBQWEsY0FBQyxJQUFJLEVBQUUsU0FBUyxtQkFBbUIsa0JBQWtCLE9BQU8sS0FBSyxXQUFXLEVBQUUsY0FBQyxFQUFFLGNBQUMsTUFBTSxDQUFDLFNBQVMsYUFBYSxjQUFDLEVBQUUsY0FBQyxJQUFJLGNBQWMsd0NBQXdDLElBQUksY0FBQyxJQUFJLFNBQVMsS0FBSyxrQkFBa0IsS0FBSyxZQUFZLElBQUksY0FBQywwQ0FBMEMsU0FBUyxjQUFDLElBQUksbUJBQW1CLGdCQUFnQixjQUFDLHdDQUF3QyxxQkFBcUIsY0FBQywrQkFBK0IsU0FBUyxjQUFDLElBQUksTUFBTSxjQUFDLFNBQVMseUNBQXlDLGNBQUMsR0FBRyxTQUFTLGNBQUMsSUFBSSxNQUFNLGNBQUMsQ0FBQyxhQUFhLGNBQUMsR0FBRyxTQUFTLGNBQUMsTUFBTSxvREFBb0QsZ0JBQWdCLEVBQUUsU0FBUyxjQUFDLE1BQU0sa0NBQW1QO0FBQ2g4Rzs7O0FDRG9lLFNBQVMsZUFBQyxNQUFNLHlCQUF5QixTQUFTLFNBQVMsZUFBQyxNQUFNLHFEQUFxRCx1REFBdUQsU0FBUyxnQkFBZ0IsNENBQTRDLFNBQVMsZUFBQyxJQUFJLGFBQWEsZ0JBQWdCLGNBQWMsZ0NBQWdDLG9FQUFvRSxlQUFDLGVBQWUsY0FBYyxvQ0FBb0MsQ0FBQyxNQUFNLG9HQUFvRyxDQUFDLGVBQUMsZUFBZSxDQUFDLDBCQUEwQixlQUFDLCtDQUErQyxPQUFPLGVBQUMsZ0JBQWdCLGVBQUMsZ0JBQWdCLElBQUksZUFBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLGFBQWEsMERBQTBELGVBQUMsRUFBRSxlQUFDLEtBQUssSUFBSSxlQUFDLCtFQUErRSxTQUFTLGVBQUMsSUFBSSxjQUFjLE1BQU0sZUFBQyxHQUFHLElBQUkscUNBQXFDLGtCQUFrQixlQUFDLDRHQUE0RyxJQUFJLGVBQUMsZUFBZSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGVBQUMsRUFBRSxJQUFJLGVBQUMsU0FBUyxlQUFDLG1CQUFtQixTQUFTLENBQUMsYUFBYSxrQkFBa0IsTUFBTSxDQUFDLElBQUkscUNBQXFDLFlBQVksU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssbUJBQW1CLHdCQUF3QixPQUFPLDhFQUE4RSxlQUFDLFdBQVcsSUFBSSxlQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsZUFBQyxRQUFRLCtEQUErRCxrQ0FBa0MsMkJBQTJCLGVBQUMsR0FBRyx1RkFBdUYsT0FBTyxlQUFDLFFBQVEsS0FBSyxrQkFBa0IseURBQXlELGdCQUFnQix5RkFBeUYsYUFBYSxxQ0FBcUMsU0FBUyxlQUFDLElBQUksZUFBZSwwQkFBMEIsU0FBUyxlQUFDLElBQUksVUFBVSxjQUFjLCtCQUErQixlQUFlLGFBQWEsSUFBSSxZQUFZLGNBQWMsT0FBTyxDQUFDLE1BQU0sdUNBQXVDLFNBQVMsZUFBQyxHQUFHLHdCQUF3QixTQUFTLGFBQWEsWUFBWSwrQ0FBK0MsZUFBQyxFQUFFLGVBQUMsSUFBSSxrQkFBa0IsQ0FBQyxvQkFBb0IsbUJBQW1CLGdDQUFnQyxNQUFNLGVBQUMsMEJBQTBCLGlDQUFpQyxRQUFRLGlCQUFpQixhQUFhLGdCQUFnQixrQkFBa0Isc0NBQXNDLE1BQU0sZ0JBQWdCLGVBQWUsRUFBRSxZQUFZLGtCQUFrQixjQUFjLHdCQUF3Qix1QkFBdUIsY0FBYyw2Q0FBNkMsVUFBVSxrQ0FBa0MsYUFBYSxpQkFBaUIsMERBQTBELGdCQUFnQixlQUFDLHlCQUF5QixjQUFjLGFBQWEsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsc0JBQXNCLHlHQUF5RyxFQUFFLEVBQUUsS0FBSyxXQUFXLFdBQVcsbUJBQW1CLGFBQWEsU0FBUyxlQUFDLElBQUksdUNBQXVDLGlCQUFpQixZQUFZLFNBQVMsZUFBQyxJQUFJLGlCQUFpQixrQ0FBa0MsQ0FBQyw2QkFBNkIsZ0VBQWdFLDhEQUE4RCwyQ0FBMkMsNEJBQTRCLDJDQUEyQyx5QkFBeUIsNkVBQTZFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFDLEVBQUUsa0JBQWtCLDRDQUE0QyxTQUFTLGVBQUMsTUFBTSxNQUFNLENBQUMsQ0FBQyxlQUFDLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixDQUFDLGVBQUMsZUFBZSxDQUFDLGtCQUFrQixhQUFhLGVBQUMscUJBQXFCLDBCQUEwQixpQkFBaUIsOENBQThDLFlBQVksQ0FBQyxlQUFDLDhCQUE4QiwyQkFBMkIsTUFBTSxDQUFDLGFBQWEsbURBQW1ELG1CQUFtQixJQUFJLHNDQUFzQyxrQkFBa0IsQ0FBQyxlQUFDLDhCQUE4QixlQUFDLHdDQUF3QyxXQUFXLDZCQUE2QixTQUFTLEdBQUcsSUFBSSxlQUFDLDRFQUE0RSxlQUFDLDJSQUEyUixlQUFDLDRDQUE0QyxvR0FBb0csa0JBQWtCLHVDQUF1QyxDQUFDLDZDQUE2QyxTQUFTLGVBQUMsUUFBUSxPQUFPLENBQUMsNkNBQTZDLDRCQUE0QixHQUFHLDhGQUE4RixzQkFBc0IsV0FBVyxJQUFJLCtCQUErQix5QkFBeUIsaUJBQWlCLDhCQUE4QixvQ0FBb0MsR0FBRyxFQUFFLEVBQUUsTUFBTSxPQUFPLENBQUMsY0FBYyxhQUFhLHlCQUF5QixhQUFhLDZCQUE2QixPQUFPLGFBQWEsZ0dBQWdHLFVBQVUsK0JBQStCLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxPQUFPLGFBQWEsMkJBQTJCLHVCQUF1QiwwQkFBMEIsaUJBQWlCLElBQUksV0FBVyxlQUFDLCtZQUErWSxlQUFDLHdKQUF3SiwwREFBMEQsQ0FBQyxpQ0FBaUMsb0RBQW9ELCtDQUErQyxDQUFDLGlDQUFpQyxvR0FBb0csb0pBQW9KLFdBQVcsZUFBQyxZQUFZLE9BQU8sS0FBSyxDQUFDLEtBQUssYUFBYSxtQkFBbUIsUUFBUSx3QkFBd0IsU0FBUyx3QkFBd0IsbUNBQW1DLGFBQWEsZUFBZSxPQUFPLE1BQU0sU0FBUyxlQUFlLHdCQUF3QixlQUFDLENBQUMsZUFBZSxhQUFhLE9BQU8sbUJBQW1CLGVBQWUsZ0JBQWdCLENBQUMsYUFBYSxlQUFlLDRDQUE0QyxxQkFBcUIsWUFBWSxrQkFBa0IsWUFBWSxJQUFJLENBQUMsQ0FBQyxlQUFlLElBQUksZUFBZSxTQUFTLGNBQWMsY0FBYyxPQUFPLGNBQUMsQ0FBQyxpQkFBaUIsWUFBWSxjQUFDLEVBQUUsR0FBRyxVQUFVLGtCQUFrQixPQUFPLGNBQUMsWUFBWSw2QkFBNkIsSUFBSSxFQUFFLFVBQVUsY0FBQyxZQUFZLHlCQUF5QixJQUFJLGVBQWUsa0JBQWtCLElBQUksRUFBRSxFQUFFLFFBQVEsUUFBUSxTQUFTLGNBQUMsT0FBTyxDQUFDLFlBQVksY0FBQyxXQUFXLGNBQUMsaUJBQWlCLGNBQUMsOEdBQThHLGFBQUMscUJBQXFCLGNBQUMsU0FBUyxDQUFDLGFBQWEsY0FBQyxZQUFZLGNBQUMsZUFBZSxjQUFDLDJCQUEyQixlQUFDLGtCQUFrQixlQUFDLHdDQUF3QyxlQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsNENBQTRDLENBQUMsVUFBVSxDQUFDLDRDQUE0QyxDQUFDLGVBQWUsZUFBQyxtQkFBbUIsZUFBQywrRUFBK0UsZUFBQyxNQUFNLGVBQUMsd0RBQW9rQjtBQUNsbFMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9wcmVhY3QvZGlzdC9wcmVhY3QubW9kdWxlLmpzP2RhNjUiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2hvb2tzL2Rpc3QvaG9va3MubW9kdWxlLmpzPzMwZWMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9kaXN0L2NvbXBhdC5tb2R1bGUuanM/MTVkMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbixsLHUsaSx0LG8scixmPXt9LGU9W10sYz0vYWNpdHxleCg/OnN8Z3xufHB8JCl8cnBofGdyaWR8b3dzfG1uY3xudHd8aW5lW2NoXXx6b298Xm9yZHxpdGVyYS9pO2Z1bmN0aW9uIHMobixsKXtmb3IodmFyIHUgaW4gbCluW3VdPWxbdV07cmV0dXJuIG59ZnVuY3Rpb24gYShuKXt2YXIgbD1uLnBhcmVudE5vZGU7bCYmbC5yZW1vdmVDaGlsZChuKX1mdW5jdGlvbiBoKGwsdSxpKXt2YXIgdCxvLHIsZj17fTtmb3IociBpbiB1KVwia2V5XCI9PXI/dD11W3JdOlwicmVmXCI9PXI/bz11W3JdOmZbcl09dVtyXTtpZihhcmd1bWVudHMubGVuZ3RoPjImJihmLmNoaWxkcmVuPWFyZ3VtZW50cy5sZW5ndGg+Mz9uLmNhbGwoYXJndW1lbnRzLDIpOmkpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGwmJm51bGwhPWwuZGVmYXVsdFByb3BzKWZvcihyIGluIGwuZGVmYXVsdFByb3BzKXZvaWQgMD09PWZbcl0mJihmW3JdPWwuZGVmYXVsdFByb3BzW3JdKTtyZXR1cm4gdihsLGYsdCxvLG51bGwpfWZ1bmN0aW9uIHYobixpLHQsbyxyKXt2YXIgZj17dHlwZTpuLHByb3BzOmksa2V5OnQscmVmOm8sX19rOm51bGwsX186bnVsbCxfX2I6MCxfX2U6bnVsbCxfX2Q6dm9pZCAwLF9fYzpudWxsLF9faDpudWxsLGNvbnN0cnVjdG9yOnZvaWQgMCxfX3Y6bnVsbD09cj8rK3U6cn07cmV0dXJuIG51bGw9PXImJm51bGwhPWwudm5vZGUmJmwudm5vZGUoZiksZn1mdW5jdGlvbiB5KCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19ZnVuY3Rpb24gcChuKXtyZXR1cm4gbi5jaGlsZHJlbn1mdW5jdGlvbiBkKG4sbCl7dGhpcy5wcm9wcz1uLHRoaXMuY29udGV4dD1sfWZ1bmN0aW9uIF8obixsKXtpZihudWxsPT1sKXJldHVybiBuLl9fP18obi5fXyxuLl9fLl9fay5pbmRleE9mKG4pKzEpOm51bGw7Zm9yKHZhciB1O2w8bi5fX2subGVuZ3RoO2wrKylpZihudWxsIT0odT1uLl9fa1tsXSkmJm51bGwhPXUuX19lKXJldHVybiB1Ll9fZTtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBuLnR5cGU/XyhuKTpudWxsfWZ1bmN0aW9uIGsobil7dmFyIGwsdTtpZihudWxsIT0obj1uLl9fKSYmbnVsbCE9bi5fX2Mpe2ZvcihuLl9fZT1uLl9fYy5iYXNlPW51bGwsbD0wO2w8bi5fX2subGVuZ3RoO2wrKylpZihudWxsIT0odT1uLl9fa1tsXSkmJm51bGwhPXUuX19lKXtuLl9fZT1uLl9fYy5iYXNlPXUuX19lO2JyZWFrfXJldHVybiBrKG4pfX1mdW5jdGlvbiBiKG4peyghbi5fX2QmJihuLl9fZD0hMCkmJnQucHVzaChuKSYmIWcuX19yKyt8fG8hPT1sLmRlYm91bmNlUmVuZGVyaW5nKSYmKChvPWwuZGVib3VuY2VSZW5kZXJpbmcpfHxzZXRUaW1lb3V0KShnKX1mdW5jdGlvbiBnKCl7Zm9yKHZhciBuO2cuX19yPXQubGVuZ3RoOyluPXQuc29ydChmdW5jdGlvbihuLGwpe3JldHVybiBuLl9fdi5fX2ItbC5fX3YuX19ifSksdD1bXSxuLnNvbWUoZnVuY3Rpb24obil7dmFyIGwsdSxpLHQsbyxyO24uX19kJiYobz0odD0obD1uKS5fX3YpLl9fZSwocj1sLl9fUCkmJih1PVtdLChpPXMoe30sdCkpLl9fdj10Ll9fdisxLGoocix0LGksbC5fX24sdm9pZCAwIT09ci5vd25lclNWR0VsZW1lbnQsbnVsbCE9dC5fX2g/W29dOm51bGwsdSxudWxsPT1vP18odCk6byx0Ll9faCkseih1LHQpLHQuX19lIT1vJiZrKHQpKSl9KX1mdW5jdGlvbiB3KG4sbCx1LGksdCxvLHIsYyxzLGEpe3ZhciBoLHksZCxrLGIsZyx3LHg9aSYmaS5fX2t8fGUsQz14Lmxlbmd0aDtmb3IodS5fX2s9W10saD0wO2g8bC5sZW5ndGg7aCsrKWlmKG51bGwhPShrPXUuX19rW2hdPW51bGw9PShrPWxbaF0pfHxcImJvb2xlYW5cIj09dHlwZW9mIGs/bnVsbDpcInN0cmluZ1wiPT10eXBlb2Yga3x8XCJudW1iZXJcIj09dHlwZW9mIGt8fFwiYmlnaW50XCI9PXR5cGVvZiBrP3YobnVsbCxrLG51bGwsbnVsbCxrKTpBcnJheS5pc0FycmF5KGspP3YocCx7Y2hpbGRyZW46a30sbnVsbCxudWxsLG51bGwpOmsuX19iPjA/dihrLnR5cGUsay5wcm9wcyxrLmtleSxrLnJlZj9rLnJlZjpudWxsLGsuX192KTprKSl7aWYoay5fXz11LGsuX19iPXUuX19iKzEsbnVsbD09PShkPXhbaF0pfHxkJiZrLmtleT09ZC5rZXkmJmsudHlwZT09PWQudHlwZSl4W2hdPXZvaWQgMDtlbHNlIGZvcih5PTA7eTxDO3krKyl7aWYoKGQ9eFt5XSkmJmsua2V5PT1kLmtleSYmay50eXBlPT09ZC50eXBlKXt4W3ldPXZvaWQgMDticmVha31kPW51bGx9aihuLGssZD1kfHxmLHQsbyxyLGMscyxhKSxiPWsuX19lLCh5PWsucmVmKSYmZC5yZWYhPXkmJih3fHwodz1bXSksZC5yZWYmJncucHVzaChkLnJlZixudWxsLGspLHcucHVzaCh5LGsuX19jfHxiLGspKSxudWxsIT1iPyhudWxsPT1nJiYoZz1iKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBrLnR5cGUmJmsuX19rPT09ZC5fX2s/ay5fX2Q9cz1tKGsscyxuKTpzPUEobixrLGQseCxiLHMpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHUudHlwZSYmKHUuX19kPXMpKTpzJiZkLl9fZT09cyYmcy5wYXJlbnROb2RlIT1uJiYocz1fKGQpKX1mb3IodS5fX2U9ZyxoPUM7aC0tOyludWxsIT14W2hdJiZOKHhbaF0seFtoXSk7aWYodylmb3IoaD0wO2g8dy5sZW5ndGg7aCsrKU0od1toXSx3WysraF0sd1srK2hdKX1mdW5jdGlvbiBtKG4sbCx1KXtmb3IodmFyIGksdD1uLl9fayxvPTA7dCYmbzx0Lmxlbmd0aDtvKyspKGk9dFtvXSkmJihpLl9fPW4sbD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBpLnR5cGU/bShpLGwsdSk6QSh1LGksaSx0LGkuX19lLGwpKTtyZXR1cm4gbH1mdW5jdGlvbiB4KG4sbCl7cmV0dXJuIGw9bHx8W10sbnVsbD09bnx8XCJib29sZWFuXCI9PXR5cGVvZiBufHwoQXJyYXkuaXNBcnJheShuKT9uLnNvbWUoZnVuY3Rpb24obil7eChuLGwpfSk6bC5wdXNoKG4pKSxsfWZ1bmN0aW9uIEEobixsLHUsaSx0LG8pe3ZhciByLGYsZTtpZih2b2lkIDAhPT1sLl9fZClyPWwuX19kLGwuX19kPXZvaWQgMDtlbHNlIGlmKG51bGw9PXV8fHQhPW98fG51bGw9PXQucGFyZW50Tm9kZSluOmlmKG51bGw9PW98fG8ucGFyZW50Tm9kZSE9PW4pbi5hcHBlbmRDaGlsZCh0KSxyPW51bGw7ZWxzZXtmb3IoZj1vLGU9MDsoZj1mLm5leHRTaWJsaW5nKSYmZTxpLmxlbmd0aDtlKz0xKWlmKGY9PXQpYnJlYWsgbjtuLmluc2VydEJlZm9yZSh0LG8pLHI9b31yZXR1cm4gdm9pZCAwIT09cj9yOnQubmV4dFNpYmxpbmd9ZnVuY3Rpb24gQyhuLGwsdSxpLHQpe3ZhciBvO2ZvcihvIGluIHUpXCJjaGlsZHJlblwiPT09b3x8XCJrZXlcIj09PW98fG8gaW4gbHx8SChuLG8sbnVsbCx1W29dLGkpO2ZvcihvIGluIGwpdCYmXCJmdW5jdGlvblwiIT10eXBlb2YgbFtvXXx8XCJjaGlsZHJlblwiPT09b3x8XCJrZXlcIj09PW98fFwidmFsdWVcIj09PW98fFwiY2hlY2tlZFwiPT09b3x8dVtvXT09PWxbb118fEgobixvLGxbb10sdVtvXSxpKX1mdW5jdGlvbiAkKG4sbCx1KXtcIi1cIj09PWxbMF0/bi5zZXRQcm9wZXJ0eShsLHUpOm5bbF09bnVsbD09dT9cIlwiOlwibnVtYmVyXCIhPXR5cGVvZiB1fHxjLnRlc3QobCk/dTp1K1wicHhcIn1mdW5jdGlvbiBIKG4sbCx1LGksdCl7dmFyIG87bjppZihcInN0eWxlXCI9PT1sKWlmKFwic3RyaW5nXCI9PXR5cGVvZiB1KW4uc3R5bGUuY3NzVGV4dD11O2Vsc2V7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGkmJihuLnN0eWxlLmNzc1RleHQ9aT1cIlwiKSxpKWZvcihsIGluIGkpdSYmbCBpbiB1fHwkKG4uc3R5bGUsbCxcIlwiKTtpZih1KWZvcihsIGluIHUpaSYmdVtsXT09PWlbbF18fCQobi5zdHlsZSxsLHVbbF0pfWVsc2UgaWYoXCJvXCI9PT1sWzBdJiZcIm5cIj09PWxbMV0pbz1sIT09KGw9bC5yZXBsYWNlKC9DYXB0dXJlJC8sXCJcIikpLGw9bC50b0xvd2VyQ2FzZSgpaW4gbj9sLnRvTG93ZXJDYXNlKCkuc2xpY2UoMik6bC5zbGljZSgyKSxuLmx8fChuLmw9e30pLG4ubFtsK29dPXUsdT9pfHxuLmFkZEV2ZW50TGlzdGVuZXIobCxvP1Q6SSxvKTpuLnJlbW92ZUV2ZW50TGlzdGVuZXIobCxvP1Q6SSxvKTtlbHNlIGlmKFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIiE9PWwpe2lmKHQpbD1sLnJlcGxhY2UoL3hsaW5rKEh8OmgpLyxcImhcIikucmVwbGFjZSgvc05hbWUkLyxcInNcIik7ZWxzZSBpZihcImhyZWZcIiE9PWwmJlwibGlzdFwiIT09bCYmXCJmb3JtXCIhPT1sJiZcInRhYkluZGV4XCIhPT1sJiZcImRvd25sb2FkXCIhPT1sJiZsIGluIG4pdHJ5e25bbF09bnVsbD09dT9cIlwiOnU7YnJlYWsgbn1jYXRjaChuKXt9XCJmdW5jdGlvblwiPT10eXBlb2YgdXx8KG51bGw9PXV8fCExPT09dSYmLTE9PWwuaW5kZXhPZihcIi1cIik/bi5yZW1vdmVBdHRyaWJ1dGUobCk6bi5zZXRBdHRyaWJ1dGUobCx1KSl9fWZ1bmN0aW9uIEkobil7dGhpcy5sW24udHlwZSshMV0obC5ldmVudD9sLmV2ZW50KG4pOm4pfWZ1bmN0aW9uIFQobil7dGhpcy5sW24udHlwZSshMF0obC5ldmVudD9sLmV2ZW50KG4pOm4pfWZ1bmN0aW9uIGoobix1LGksdCxvLHIsZixlLGMpe3ZhciBhLGgsdix5LF8sayxiLGcsbSx4LEEsQywkLEgsSSxUPXUudHlwZTtpZih2b2lkIDAhPT11LmNvbnN0cnVjdG9yKXJldHVybiBudWxsO251bGwhPWkuX19oJiYoYz1pLl9faCxlPXUuX19lPWkuX19lLHUuX19oPW51bGwscj1bZV0pLChhPWwuX19iKSYmYSh1KTt0cnl7bjppZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBUKXtpZihnPXUucHJvcHMsbT0oYT1ULmNvbnRleHRUeXBlKSYmdFthLl9fY10seD1hP20/bS5wcm9wcy52YWx1ZTphLl9fOnQsaS5fX2M/Yj0oaD11Ll9fYz1pLl9fYykuX189aC5fX0U6KFwicHJvdG90eXBlXCJpbiBUJiZULnByb3RvdHlwZS5yZW5kZXI/dS5fX2M9aD1uZXcgVChnLHgpOih1Ll9fYz1oPW5ldyBkKGcseCksaC5jb25zdHJ1Y3Rvcj1ULGgucmVuZGVyPU8pLG0mJm0uc3ViKGgpLGgucHJvcHM9ZyxoLnN0YXRlfHwoaC5zdGF0ZT17fSksaC5jb250ZXh0PXgsaC5fX249dCx2PWguX19kPSEwLGguX19oPVtdLGguX3NiPVtdKSxudWxsPT1oLl9fcyYmKGguX19zPWguc3RhdGUpLG51bGwhPVQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzJiYoaC5fX3M9PWguc3RhdGUmJihoLl9fcz1zKHt9LGguX19zKSkscyhoLl9fcyxULmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhnLGguX19zKSkpLHk9aC5wcm9wcyxfPWguc3RhdGUsdiludWxsPT1ULmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmbnVsbCE9aC5jb21wb25lbnRXaWxsTW91bnQmJmguY29tcG9uZW50V2lsbE1vdW50KCksbnVsbCE9aC5jb21wb25lbnREaWRNb3VudCYmaC5fX2gucHVzaChoLmNvbXBvbmVudERpZE1vdW50KTtlbHNle2lmKG51bGw9PVQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzJiZnIT09eSYmbnVsbCE9aC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZoLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoZyx4KSwhaC5fX2UmJm51bGwhPWguc2hvdWxkQ29tcG9uZW50VXBkYXRlJiYhMT09PWguc2hvdWxkQ29tcG9uZW50VXBkYXRlKGcsaC5fX3MseCl8fHUuX192PT09aS5fX3Ype2ZvcihoLnByb3BzPWcsaC5zdGF0ZT1oLl9fcyx1Ll9fdiE9PWkuX192JiYoaC5fX2Q9ITEpLGguX192PXUsdS5fX2U9aS5fX2UsdS5fX2s9aS5fX2ssdS5fX2suZm9yRWFjaChmdW5jdGlvbihuKXtuJiYobi5fXz11KX0pLEE9MDtBPGguX3NiLmxlbmd0aDtBKyspaC5fX2gucHVzaChoLl9zYltBXSk7aC5fc2I9W10saC5fX2gubGVuZ3RoJiZmLnB1c2goaCk7YnJlYWsgbn1udWxsIT1oLmNvbXBvbmVudFdpbGxVcGRhdGUmJmguY29tcG9uZW50V2lsbFVwZGF0ZShnLGguX19zLHgpLG51bGwhPWguY29tcG9uZW50RGlkVXBkYXRlJiZoLl9faC5wdXNoKGZ1bmN0aW9uKCl7aC5jb21wb25lbnREaWRVcGRhdGUoeSxfLGspfSl9aWYoaC5jb250ZXh0PXgsaC5wcm9wcz1nLGguX192PXUsaC5fX1A9bixDPWwuX19yLCQ9MCxcInByb3RvdHlwZVwiaW4gVCYmVC5wcm90b3R5cGUucmVuZGVyKXtmb3IoaC5zdGF0ZT1oLl9fcyxoLl9fZD0hMSxDJiZDKHUpLGE9aC5yZW5kZXIoaC5wcm9wcyxoLnN0YXRlLGguY29udGV4dCksSD0wO0g8aC5fc2IubGVuZ3RoO0grKyloLl9faC5wdXNoKGguX3NiW0hdKTtoLl9zYj1bXX1lbHNlIGRve2guX19kPSExLEMmJkModSksYT1oLnJlbmRlcihoLnByb3BzLGguc3RhdGUsaC5jb250ZXh0KSxoLnN0YXRlPWguX19zfXdoaWxlKGguX19kJiYrKyQ8MjUpO2guc3RhdGU9aC5fX3MsbnVsbCE9aC5nZXRDaGlsZENvbnRleHQmJih0PXMocyh7fSx0KSxoLmdldENoaWxkQ29udGV4dCgpKSksdnx8bnVsbD09aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8KGs9aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSh5LF8pKSxJPW51bGwhPWEmJmEudHlwZT09PXAmJm51bGw9PWEua2V5P2EucHJvcHMuY2hpbGRyZW46YSx3KG4sQXJyYXkuaXNBcnJheShJKT9JOltJXSx1LGksdCxvLHIsZixlLGMpLGguYmFzZT11Ll9fZSx1Ll9faD1udWxsLGguX19oLmxlbmd0aCYmZi5wdXNoKGgpLGImJihoLl9fRT1oLl9fPW51bGwpLGguX19lPSExfWVsc2UgbnVsbD09ciYmdS5fX3Y9PT1pLl9fdj8odS5fX2s9aS5fX2ssdS5fX2U9aS5fX2UpOnUuX19lPUwoaS5fX2UsdSxpLHQsbyxyLGYsYyk7KGE9bC5kaWZmZWQpJiZhKHUpfWNhdGNoKG4pe3UuX192PW51bGwsKGN8fG51bGwhPXIpJiYodS5fX2U9ZSx1Ll9faD0hIWMscltyLmluZGV4T2YoZSldPW51bGwpLGwuX19lKG4sdSxpKX19ZnVuY3Rpb24geihuLHUpe2wuX19jJiZsLl9fYyh1LG4pLG4uc29tZShmdW5jdGlvbih1KXt0cnl7bj11Ll9faCx1Ll9faD1bXSxuLnNvbWUoZnVuY3Rpb24obil7bi5jYWxsKHUpfSl9Y2F0Y2gobil7bC5fX2Uobix1Ll9fdil9fSl9ZnVuY3Rpb24gTChsLHUsaSx0LG8scixlLGMpe3ZhciBzLGgsdix5PWkucHJvcHMscD11LnByb3BzLGQ9dS50eXBlLGs9MDtpZihcInN2Z1wiPT09ZCYmKG89ITApLG51bGwhPXIpZm9yKDtrPHIubGVuZ3RoO2srKylpZigocz1yW2tdKSYmXCJzZXRBdHRyaWJ1dGVcImluIHM9PSEhZCYmKGQ/cy5sb2NhbE5hbWU9PT1kOjM9PT1zLm5vZGVUeXBlKSl7bD1zLHJba109bnVsbDticmVha31pZihudWxsPT1sKXtpZihudWxsPT09ZClyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocCk7bD1vP2RvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsZCk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChkLHAuaXMmJnApLHI9bnVsbCxjPSExfWlmKG51bGw9PT1kKXk9PT1wfHxjJiZsLmRhdGE9PT1wfHwobC5kYXRhPXApO2Vsc2V7aWYocj1yJiZuLmNhbGwobC5jaGlsZE5vZGVzKSxoPSh5PWkucHJvcHN8fGYpLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLHY9cC5kYW5nZXJvdXNseVNldElubmVySFRNTCwhYyl7aWYobnVsbCE9cilmb3IoeT17fSxrPTA7azxsLmF0dHJpYnV0ZXMubGVuZ3RoO2srKyl5W2wuYXR0cmlidXRlc1trXS5uYW1lXT1sLmF0dHJpYnV0ZXNba10udmFsdWU7KHZ8fGgpJiYodiYmKGgmJnYuX19odG1sPT1oLl9faHRtbHx8di5fX2h0bWw9PT1sLmlubmVySFRNTCl8fChsLmlubmVySFRNTD12JiZ2Ll9faHRtbHx8XCJcIikpfWlmKEMobCxwLHksbyxjKSx2KXUuX19rPVtdO2Vsc2UgaWYoaz11LnByb3BzLmNoaWxkcmVuLHcobCxBcnJheS5pc0FycmF5KGspP2s6W2tdLHUsaSx0LG8mJlwiZm9yZWlnbk9iamVjdFwiIT09ZCxyLGUscj9yWzBdOmkuX19rJiZfKGksMCksYyksbnVsbCE9cilmb3Ioaz1yLmxlbmd0aDtrLS07KW51bGwhPXJba10mJmEocltrXSk7Y3x8KFwidmFsdWVcImluIHAmJnZvaWQgMCE9PShrPXAudmFsdWUpJiYoayE9PWwudmFsdWV8fFwicHJvZ3Jlc3NcIj09PWQmJiFrfHxcIm9wdGlvblwiPT09ZCYmayE9PXkudmFsdWUpJiZIKGwsXCJ2YWx1ZVwiLGsseS52YWx1ZSwhMSksXCJjaGVja2VkXCJpbiBwJiZ2b2lkIDAhPT0oaz1wLmNoZWNrZWQpJiZrIT09bC5jaGVja2VkJiZIKGwsXCJjaGVja2VkXCIsayx5LmNoZWNrZWQsITEpKX1yZXR1cm4gbH1mdW5jdGlvbiBNKG4sdSxpKXt0cnl7XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uKHUpOm4uY3VycmVudD11fWNhdGNoKG4pe2wuX19lKG4saSl9fWZ1bmN0aW9uIE4obix1LGkpe3ZhciB0LG87aWYobC51bm1vdW50JiZsLnVubW91bnQobiksKHQ9bi5yZWYpJiYodC5jdXJyZW50JiZ0LmN1cnJlbnQhPT1uLl9fZXx8TSh0LG51bGwsdSkpLG51bGwhPSh0PW4uX19jKSl7aWYodC5jb21wb25lbnRXaWxsVW5tb3VudCl0cnl7dC5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKG4pe2wuX19lKG4sdSl9dC5iYXNlPXQuX19QPW51bGwsbi5fX2M9dm9pZCAwfWlmKHQ9bi5fX2spZm9yKG89MDtvPHQubGVuZ3RoO28rKyl0W29dJiZOKHRbb10sdSxpfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBuLnR5cGUpO2l8fG51bGw9PW4uX19lfHxhKG4uX19lKSxuLl9fPW4uX19lPW4uX19kPXZvaWQgMH1mdW5jdGlvbiBPKG4sbCx1KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcihuLHUpfWZ1bmN0aW9uIFAodSxpLHQpe3ZhciBvLHIsZTtsLl9fJiZsLl9fKHUsaSkscj0obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0KT9udWxsOnQmJnQuX19rfHxpLl9fayxlPVtdLGooaSx1PSghbyYmdHx8aSkuX19rPWgocCxudWxsLFt1XSkscnx8ZixmLHZvaWQgMCE9PWkub3duZXJTVkdFbGVtZW50LCFvJiZ0P1t0XTpyP251bGw6aS5maXJzdENoaWxkP24uY2FsbChpLmNoaWxkTm9kZXMpOm51bGwsZSwhbyYmdD90OnI/ci5fX2U6aS5maXJzdENoaWxkLG8pLHooZSx1KX1mdW5jdGlvbiBTKG4sbCl7UChuLGwsUyl9ZnVuY3Rpb24gcShsLHUsaSl7dmFyIHQsbyxyLGY9cyh7fSxsLnByb3BzKTtmb3IociBpbiB1KVwia2V5XCI9PXI/dD11W3JdOlwicmVmXCI9PXI/bz11W3JdOmZbcl09dVtyXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4yJiYoZi5jaGlsZHJlbj1hcmd1bWVudHMubGVuZ3RoPjM/bi5jYWxsKGFyZ3VtZW50cywyKTppKSx2KGwudHlwZSxmLHR8fGwua2V5LG98fGwucmVmLG51bGwpfWZ1bmN0aW9uIEIobixsKXt2YXIgdT17X19jOmw9XCJfX2NDXCIrcisrLF9fOm4sQ29uc3VtZXI6ZnVuY3Rpb24obixsKXtyZXR1cm4gbi5jaGlsZHJlbihsKX0sUHJvdmlkZXI6ZnVuY3Rpb24obil7dmFyIHUsaTtyZXR1cm4gdGhpcy5nZXRDaGlsZENvbnRleHR8fCh1PVtdLChpPXt9KVtsXT10aGlzLHRoaXMuZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIGl9LHRoaXMuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMucHJvcHMudmFsdWUhPT1uLnZhbHVlJiZ1LnNvbWUoYil9LHRoaXMuc3ViPWZ1bmN0aW9uKG4pe3UucHVzaChuKTt2YXIgbD1uLmNvbXBvbmVudFdpbGxVbm1vdW50O24uY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt1LnNwbGljZSh1LmluZGV4T2YobiksMSksbCYmbC5jYWxsKG4pfX0pLG4uY2hpbGRyZW59fTtyZXR1cm4gdS5Qcm92aWRlci5fXz11LkNvbnN1bWVyLmNvbnRleHRUeXBlPXV9bj1lLnNsaWNlLGw9e19fZTpmdW5jdGlvbihuLGwsdSxpKXtmb3IodmFyIHQsbyxyO2w9bC5fXzspaWYoKHQ9bC5fX2MpJiYhdC5fXyl0cnl7aWYoKG89dC5jb25zdHJ1Y3RvcikmJm51bGwhPW8uZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yJiYodC5zZXRTdGF0ZShvLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihuKSkscj10Ll9fZCksbnVsbCE9dC5jb21wb25lbnREaWRDYXRjaCYmKHQuY29tcG9uZW50RGlkQ2F0Y2gobixpfHx7fSkscj10Ll9fZCkscilyZXR1cm4gdC5fX0U9dH1jYXRjaChsKXtuPWx9dGhyb3cgbn19LHU9MCxpPWZ1bmN0aW9uKG4pe3JldHVybiBudWxsIT1uJiZ2b2lkIDA9PT1uLmNvbnN0cnVjdG9yfSxkLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihuLGwpe3ZhciB1O3U9bnVsbCE9dGhpcy5fX3MmJnRoaXMuX19zIT09dGhpcy5zdGF0ZT90aGlzLl9fczp0aGlzLl9fcz1zKHt9LHRoaXMuc3RhdGUpLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4mJihuPW4ocyh7fSx1KSx0aGlzLnByb3BzKSksbiYmcyh1LG4pLG51bGwhPW4mJnRoaXMuX192JiYobCYmdGhpcy5fc2IucHVzaChsKSxiKHRoaXMpKX0sZC5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24obil7dGhpcy5fX3YmJih0aGlzLl9fZT0hMCxuJiZ0aGlzLl9faC5wdXNoKG4pLGIodGhpcykpfSxkLnByb3RvdHlwZS5yZW5kZXI9cCx0PVtdLGcuX19yPTAscj0wO2V4cG9ydHtkIGFzIENvbXBvbmVudCxwIGFzIEZyYWdtZW50LHEgYXMgY2xvbmVFbGVtZW50LEIgYXMgY3JlYXRlQ29udGV4dCxoIGFzIGNyZWF0ZUVsZW1lbnQseSBhcyBjcmVhdGVSZWYsaCxTIGFzIGh5ZHJhdGUsaSBhcyBpc1ZhbGlkRWxlbWVudCxsIGFzIG9wdGlvbnMsUCBhcyByZW5kZXIseCBhcyB0b0NoaWxkQXJyYXl9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlYWN0Lm1vZHVsZS5qcy5tYXBcbiIsImltcG9ydHtvcHRpb25zIGFzIG59ZnJvbVwicHJlYWN0XCI7dmFyIHQscix1LGksbz0wLGY9W10sYz1bXSxlPW4uX19iLGE9bi5fX3Isdj1uLmRpZmZlZCxsPW4uX19jLG09bi51bm1vdW50O2Z1bmN0aW9uIGQodCx1KXtuLl9faCYmbi5fX2gocix0LG98fHUpLG89MDt2YXIgaT1yLl9fSHx8KHIuX19IPXtfXzpbXSxfX2g6W119KTtyZXR1cm4gdD49aS5fXy5sZW5ndGgmJmkuX18ucHVzaCh7X19WOmN9KSxpLl9fW3RdfWZ1bmN0aW9uIHAobil7cmV0dXJuIG89MSx5KEIsbil9ZnVuY3Rpb24geShuLHUsaSl7dmFyIG89ZCh0KyssMik7aWYoby50PW4sIW8uX19jJiYoby5fXz1baT9pKHUpOkIodm9pZCAwLHUpLGZ1bmN0aW9uKG4pe3ZhciB0PW8uX19OP28uX19OWzBdOm8uX19bMF0scj1vLnQodCxuKTt0IT09ciYmKG8uX19OPVtyLG8uX19bMV1dLG8uX19jLnNldFN0YXRlKHt9KSl9XSxvLl9fYz1yLCFyLnUpKXtyLnU9ITA7dmFyIGY9ci5zaG91bGRDb21wb25lbnRVcGRhdGU7ci5zaG91bGRDb21wb25lbnRVcGRhdGU9ZnVuY3Rpb24obix0LHIpe2lmKCFvLl9fYy5fX0gpcmV0dXJuITA7dmFyIHU9by5fX2MuX19ILl9fLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5fX2N9KTtpZih1LmV2ZXJ5KGZ1bmN0aW9uKG4pe3JldHVybiFuLl9fTn0pKXJldHVybiFmfHxmLmNhbGwodGhpcyxuLHQscik7dmFyIGk9ITE7cmV0dXJuIHUuZm9yRWFjaChmdW5jdGlvbihuKXtpZihuLl9fTil7dmFyIHQ9bi5fX1swXTtuLl9fPW4uX19OLG4uX19OPXZvaWQgMCx0IT09bi5fX1swXSYmKGk9ITApfX0pLCEoIWkmJm8uX19jLnByb3BzPT09bikmJighZnx8Zi5jYWxsKHRoaXMsbix0LHIpKX19cmV0dXJuIG8uX19OfHxvLl9ffWZ1bmN0aW9uIGgodSxpKXt2YXIgbz1kKHQrKywzKTshbi5fX3MmJnooby5fX0gsaSkmJihvLl9fPXUsby5pPWksci5fX0guX19oLnB1c2gobykpfWZ1bmN0aW9uIHModSxpKXt2YXIgbz1kKHQrKyw0KTshbi5fX3MmJnooby5fX0gsaSkmJihvLl9fPXUsby5pPWksci5fX2gucHVzaChvKSl9ZnVuY3Rpb24gXyhuKXtyZXR1cm4gbz01LEYoZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpufX0sW10pfWZ1bmN0aW9uIEEobix0LHIpe289NixzKGZ1bmN0aW9uKCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2Ygbj8obih0KCkpLGZ1bmN0aW9uKCl7cmV0dXJuIG4obnVsbCl9KTpuPyhuLmN1cnJlbnQ9dCgpLGZ1bmN0aW9uKCl7cmV0dXJuIG4uY3VycmVudD1udWxsfSk6dm9pZCAwfSxudWxsPT1yP3I6ci5jb25jYXQobikpfWZ1bmN0aW9uIEYobixyKXt2YXIgdT1kKHQrKyw3KTtyZXR1cm4geih1Ll9fSCxyKT8odS5fX1Y9bigpLHUuaT1yLHUuX19oPW4sdS5fX1YpOnUuX199ZnVuY3Rpb24gVChuLHQpe3JldHVybiBvPTgsRihmdW5jdGlvbigpe3JldHVybiBufSx0KX1mdW5jdGlvbiBxKG4pe3ZhciB1PXIuY29udGV4dFtuLl9fY10saT1kKHQrKyw5KTtyZXR1cm4gaS5jPW4sdT8obnVsbD09aS5fXyYmKGkuX189ITAsdS5zdWIocikpLHUucHJvcHMudmFsdWUpOm4uX199ZnVuY3Rpb24geCh0LHIpe24udXNlRGVidWdWYWx1ZSYmbi51c2VEZWJ1Z1ZhbHVlKHI/cih0KTp0KX1mdW5jdGlvbiBQKG4pe3ZhciB1PWQodCsrLDEwKSxpPXAoKTtyZXR1cm4gdS5fXz1uLHIuY29tcG9uZW50RGlkQ2F0Y2h8fChyLmNvbXBvbmVudERpZENhdGNoPWZ1bmN0aW9uKG4sdCl7dS5fXyYmdS5fXyhuLHQpLGlbMV0obil9KSxbaVswXSxmdW5jdGlvbigpe2lbMV0odm9pZCAwKX1dfWZ1bmN0aW9uIFYoKXt2YXIgbj1kKHQrKywxMSk7aWYoIW4uX18pe2Zvcih2YXIgdT1yLl9fdjtudWxsIT09dSYmIXUuX19tJiZudWxsIT09dS5fXzspdT11Ll9fO3ZhciBpPXUuX19tfHwodS5fX209WzAsMF0pO24uX189XCJQXCIraVswXStcIi1cIitpWzFdKyt9cmV0dXJuIG4uX199ZnVuY3Rpb24gYigpe2Zvcih2YXIgdDt0PWYuc2hpZnQoKTspaWYodC5fX1AmJnQuX19IKXRyeXt0Ll9fSC5fX2guZm9yRWFjaChrKSx0Ll9fSC5fX2guZm9yRWFjaCh3KSx0Ll9fSC5fX2g9W119Y2F0Y2gocil7dC5fX0guX19oPVtdLG4uX19lKHIsdC5fX3YpfX1uLl9fYj1mdW5jdGlvbihuKXtyPW51bGwsZSYmZShuKX0sbi5fX3I9ZnVuY3Rpb24obil7YSYmYShuKSx0PTA7dmFyIGk9KHI9bi5fX2MpLl9fSDtpJiYodT09PXI/KGkuX19oPVtdLHIuX19oPVtdLGkuX18uZm9yRWFjaChmdW5jdGlvbihuKXtuLl9fTiYmKG4uX189bi5fX04pLG4uX19WPWMsbi5fX049bi5pPXZvaWQgMH0pKTooaS5fX2guZm9yRWFjaChrKSxpLl9faC5mb3JFYWNoKHcpLGkuX19oPVtdKSksdT1yfSxuLmRpZmZlZD1mdW5jdGlvbih0KXt2JiZ2KHQpO3ZhciBvPXQuX19jO28mJm8uX19IJiYoby5fX0guX19oLmxlbmd0aCYmKDEhPT1mLnB1c2gobykmJmk9PT1uLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8KChpPW4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKXx8aikoYikpLG8uX19ILl9fLmZvckVhY2goZnVuY3Rpb24obil7bi5pJiYobi5fX0g9bi5pKSxuLl9fViE9PWMmJihuLl9fPW4uX19WKSxuLmk9dm9pZCAwLG4uX19WPWN9KSksdT1yPW51bGx9LG4uX19jPWZ1bmN0aW9uKHQscil7ci5zb21lKGZ1bmN0aW9uKHQpe3RyeXt0Ll9faC5mb3JFYWNoKGspLHQuX19oPXQuX19oLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hbi5fX3x8dyhuKX0pfWNhdGNoKHUpe3Iuc29tZShmdW5jdGlvbihuKXtuLl9faCYmKG4uX19oPVtdKX0pLHI9W10sbi5fX2UodSx0Ll9fdil9fSksbCYmbCh0LHIpfSxuLnVubW91bnQ9ZnVuY3Rpb24odCl7bSYmbSh0KTt2YXIgcix1PXQuX19jO3UmJnUuX19IJiYodS5fX0guX18uZm9yRWFjaChmdW5jdGlvbihuKXt0cnl7ayhuKX1jYXRjaChuKXtyPW59fSksdS5fX0g9dm9pZCAwLHImJm4uX19lKHIsdS5fX3YpKX07dmFyIGc9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lO2Z1bmN0aW9uIGoobil7dmFyIHQscj1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh1KSxnJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0KSxzZXRUaW1lb3V0KG4pfSx1PXNldFRpbWVvdXQociwxMDApO2cmJih0PXJlcXVlc3RBbmltYXRpb25GcmFtZShyKSl9ZnVuY3Rpb24gayhuKXt2YXIgdD1yLHU9bi5fX2M7XCJmdW5jdGlvblwiPT10eXBlb2YgdSYmKG4uX19jPXZvaWQgMCx1KCkpLHI9dH1mdW5jdGlvbiB3KG4pe3ZhciB0PXI7bi5fX2M9bi5fXygpLHI9dH1mdW5jdGlvbiB6KG4sdCl7cmV0dXJuIW58fG4ubGVuZ3RoIT09dC5sZW5ndGh8fHQuc29tZShmdW5jdGlvbih0LHIpe3JldHVybiB0IT09bltyXX0pfWZ1bmN0aW9uIEIobix0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Qobik6dH1leHBvcnR7VCBhcyB1c2VDYWxsYmFjayxxIGFzIHVzZUNvbnRleHQseCBhcyB1c2VEZWJ1Z1ZhbHVlLGggYXMgdXNlRWZmZWN0LFAgYXMgdXNlRXJyb3JCb3VuZGFyeSxWIGFzIHVzZUlkLEEgYXMgdXNlSW1wZXJhdGl2ZUhhbmRsZSxzIGFzIHVzZUxheW91dEVmZmVjdCxGIGFzIHVzZU1lbW8seSBhcyB1c2VSZWR1Y2VyLF8gYXMgdXNlUmVmLHAgYXMgdXNlU3RhdGV9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG9va3MubW9kdWxlLmpzLm1hcFxuIiwiaW1wb3J0e0NvbXBvbmVudCBhcyBuLGNyZWF0ZUVsZW1lbnQgYXMgdCxvcHRpb25zIGFzIGUsdG9DaGlsZEFycmF5IGFzIHIsRnJhZ21lbnQgYXMgdSxyZW5kZXIgYXMgbyxoeWRyYXRlIGFzIGksY3JlYXRlQ29udGV4dCBhcyBsLGNyZWF0ZVJlZiBhcyBjLGNsb25lRWxlbWVudCBhcyBmfWZyb21cInByZWFjdFwiO2V4cG9ydHtDb21wb25lbnQsRnJhZ21lbnQsY3JlYXRlQ29udGV4dCxjcmVhdGVFbGVtZW50LGNyZWF0ZVJlZn1mcm9tXCJwcmVhY3RcIjtpbXBvcnR7dXNlU3RhdGUgYXMgYSx1c2VJZCBhcyBzLHVzZVJlZHVjZXIgYXMgaCx1c2VFZmZlY3QgYXMgdix1c2VMYXlvdXRFZmZlY3QgYXMgZCx1c2VSZWYgYXMgcCx1c2VJbXBlcmF0aXZlSGFuZGxlIGFzIG0sdXNlTWVtbyBhcyB5LHVzZUNhbGxiYWNrIGFzIF8sdXNlQ29udGV4dCBhcyBiLHVzZURlYnVnVmFsdWUgYXMgU31mcm9tXCJwcmVhY3QvaG9va3NcIjtleHBvcnQqZnJvbVwicHJlYWN0L2hvb2tzXCI7ZnVuY3Rpb24gZyhuLHQpe2Zvcih2YXIgZSBpbiB0KW5bZV09dFtlXTtyZXR1cm4gbn1mdW5jdGlvbiBDKG4sdCl7Zm9yKHZhciBlIGluIG4paWYoXCJfX3NvdXJjZVwiIT09ZSYmIShlIGluIHQpKXJldHVybiEwO2Zvcih2YXIgciBpbiB0KWlmKFwiX19zb3VyY2VcIiE9PXImJm5bcl0hPT10W3JdKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEUobix0KXtyZXR1cm4gbj09PXQmJigwIT09bnx8MS9uPT0xL3QpfHxuIT1uJiZ0IT10fWZ1bmN0aW9uIHcobil7dGhpcy5wcm9wcz1ufWZ1bmN0aW9uIFIobixlKXtmdW5jdGlvbiByKG4pe3ZhciB0PXRoaXMucHJvcHMucmVmLHI9dD09bi5yZWY7cmV0dXJuIXImJnQmJih0LmNhbGw/dChudWxsKTp0LmN1cnJlbnQ9bnVsbCksZT8hZSh0aGlzLnByb3BzLG4pfHwhcjpDKHRoaXMucHJvcHMsbil9ZnVuY3Rpb24gdShlKXtyZXR1cm4gdGhpcy5zaG91bGRDb21wb25lbnRVcGRhdGU9cix0KG4sZSl9cmV0dXJuIHUuZGlzcGxheU5hbWU9XCJNZW1vKFwiKyhuLmRpc3BsYXlOYW1lfHxuLm5hbWUpK1wiKVwiLHUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9ITAsdS5fX2Y9ITAsdX0ody5wcm90b3R5cGU9bmV3IG4pLmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwLHcucHJvdG90eXBlLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mdW5jdGlvbihuLHQpe3JldHVybiBDKHRoaXMucHJvcHMsbil8fEModGhpcy5zdGF0ZSx0KX07dmFyIHg9ZS5fX2I7ZS5fX2I9ZnVuY3Rpb24obil7bi50eXBlJiZuLnR5cGUuX19mJiZuLnJlZiYmKG4ucHJvcHMucmVmPW4ucmVmLG4ucmVmPW51bGwpLHgmJngobil9O3ZhciBOPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3ImJlN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKXx8MzkxMTtmdW5jdGlvbiBrKG4pe2Z1bmN0aW9uIHQodCl7dmFyIGU9Zyh7fSx0KTtyZXR1cm4gZGVsZXRlIGUucmVmLG4oZSx0LnJlZnx8bnVsbCl9cmV0dXJuIHQuJCR0eXBlb2Y9Tix0LnJlbmRlcj10LHQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9dC5fX2Y9ITAsdC5kaXNwbGF5TmFtZT1cIkZvcndhcmRSZWYoXCIrKG4uZGlzcGxheU5hbWV8fG4ubmFtZSkrXCIpXCIsdH12YXIgQT1mdW5jdGlvbihuLHQpe3JldHVybiBudWxsPT1uP251bGw6cihyKG4pLm1hcCh0KSl9LE89e21hcDpBLGZvckVhY2g6QSxjb3VudDpmdW5jdGlvbihuKXtyZXR1cm4gbj9yKG4pLmxlbmd0aDowfSxvbmx5OmZ1bmN0aW9uKG4pe3ZhciB0PXIobik7aWYoMSE9PXQubGVuZ3RoKXRocm93XCJDaGlsZHJlbi5vbmx5XCI7cmV0dXJuIHRbMF19LHRvQXJyYXk6cn0sVD1lLl9fZTtlLl9fZT1mdW5jdGlvbihuLHQsZSxyKXtpZihuLnRoZW4pZm9yKHZhciB1LG89dDtvPW8uX187KWlmKCh1PW8uX19jKSYmdS5fX2MpcmV0dXJuIG51bGw9PXQuX19lJiYodC5fX2U9ZS5fX2UsdC5fX2s9ZS5fX2spLHUuX19jKG4sdCk7VChuLHQsZSxyKX07dmFyIEk9ZS51bm1vdW50O2Z1bmN0aW9uIEwobix0LGUpe3JldHVybiBuJiYobi5fX2MmJm4uX19jLl9fSCYmKG4uX19jLl9fSC5fXy5mb3JFYWNoKGZ1bmN0aW9uKG4pe1wiZnVuY3Rpb25cIj09dHlwZW9mIG4uX19jJiZuLl9fYygpfSksbi5fX2MuX19IPW51bGwpLG51bGwhPShuPWcoe30sbikpLl9fYyYmKG4uX19jLl9fUD09PWUmJihuLl9fYy5fX1A9dCksbi5fX2M9bnVsbCksbi5fX2s9bi5fX2smJm4uX19rLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gTChuLHQsZSl9KSksbn1mdW5jdGlvbiBVKG4sdCxlKXtyZXR1cm4gbiYmKG4uX192PW51bGwsbi5fX2s9bi5fX2smJm4uX19rLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gVShuLHQsZSl9KSxuLl9fYyYmbi5fX2MuX19QPT09dCYmKG4uX19lJiZlLmluc2VydEJlZm9yZShuLl9fZSxuLl9fZCksbi5fX2MuX19lPSEwLG4uX19jLl9fUD1lKSksbn1mdW5jdGlvbiBEKCl7dGhpcy5fX3U9MCx0aGlzLnQ9bnVsbCx0aGlzLl9fYj1udWxsfWZ1bmN0aW9uIEYobil7dmFyIHQ9bi5fXy5fX2M7cmV0dXJuIHQmJnQuX19hJiZ0Ll9fYShuKX1mdW5jdGlvbiBNKG4pe3ZhciBlLHIsdTtmdW5jdGlvbiBvKG8pe2lmKGV8fChlPW4oKSkudGhlbihmdW5jdGlvbihuKXtyPW4uZGVmYXVsdHx8bn0sZnVuY3Rpb24obil7dT1ufSksdSl0aHJvdyB1O2lmKCFyKXRocm93IGU7cmV0dXJuIHQocixvKX1yZXR1cm4gby5kaXNwbGF5TmFtZT1cIkxhenlcIixvLl9fZj0hMCxvfWZ1bmN0aW9uIFYoKXt0aGlzLnU9bnVsbCx0aGlzLm89bnVsbH1lLnVubW91bnQ9ZnVuY3Rpb24obil7dmFyIHQ9bi5fX2M7dCYmdC5fX1ImJnQuX19SKCksdCYmITA9PT1uLl9faCYmKG4udHlwZT1udWxsKSxJJiZJKG4pfSwoRC5wcm90b3R5cGU9bmV3IG4pLl9fYz1mdW5jdGlvbihuLHQpe3ZhciBlPXQuX19jLHI9dGhpcztudWxsPT1yLnQmJihyLnQ9W10pLHIudC5wdXNoKGUpO3ZhciB1PUYoci5fX3YpLG89ITEsaT1mdW5jdGlvbigpe298fChvPSEwLGUuX19SPW51bGwsdT91KGwpOmwoKSl9O2UuX19SPWk7dmFyIGw9ZnVuY3Rpb24oKXtpZighLS1yLl9fdSl7aWYoci5zdGF0ZS5fX2Epe3ZhciBuPXIuc3RhdGUuX19hO3IuX192Ll9fa1swXT1VKG4sbi5fX2MuX19QLG4uX19jLl9fTyl9dmFyIHQ7Zm9yKHIuc2V0U3RhdGUoe19fYTpyLl9fYj1udWxsfSk7dD1yLnQucG9wKCk7KXQuZm9yY2VVcGRhdGUoKX19LGM9ITA9PT10Ll9faDtyLl9fdSsrfHxjfHxyLnNldFN0YXRlKHtfX2E6ci5fX2I9ci5fX3YuX19rWzBdfSksbi50aGVuKGksaSl9LEQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dGhpcy50PVtdfSxELnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24obixlKXtpZih0aGlzLl9fYil7aWYodGhpcy5fX3YuX19rKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLG89dGhpcy5fX3YuX19rWzBdLl9fYzt0aGlzLl9fdi5fX2tbMF09TCh0aGlzLl9fYixyLG8uX19PPW8uX19QKX10aGlzLl9fYj1udWxsfXZhciBpPWUuX19hJiZ0KHUsbnVsbCxuLmZhbGxiYWNrKTtyZXR1cm4gaSYmKGkuX19oPW51bGwpLFt0KHUsbnVsbCxlLl9fYT9udWxsOm4uY2hpbGRyZW4pLGldfTt2YXIgVz1mdW5jdGlvbihuLHQsZSl7aWYoKytlWzFdPT09ZVswXSYmbi5vLmRlbGV0ZSh0KSxuLnByb3BzLnJldmVhbE9yZGVyJiYoXCJ0XCIhPT1uLnByb3BzLnJldmVhbE9yZGVyWzBdfHwhbi5vLnNpemUpKWZvcihlPW4udTtlOyl7Zm9yKDtlLmxlbmd0aD4zOyllLnBvcCgpKCk7aWYoZVsxXTxlWzBdKWJyZWFrO24udT1lPWVbMl19fTtmdW5jdGlvbiBQKG4pe3JldHVybiB0aGlzLmdldENoaWxkQ29udGV4dD1mdW5jdGlvbigpe3JldHVybiBuLmNvbnRleHR9LG4uY2hpbGRyZW59ZnVuY3Rpb24gJChuKXt2YXIgZT10aGlzLHI9bi5pO2UuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXtvKG51bGwsZS5sKSxlLmw9bnVsbCxlLmk9bnVsbH0sZS5pJiZlLmkhPT1yJiZlLmNvbXBvbmVudFdpbGxVbm1vdW50KCksbi5fX3Y/KGUubHx8KGUuaT1yLGUubD17bm9kZVR5cGU6MSxwYXJlbnROb2RlOnIsY2hpbGROb2RlczpbXSxhcHBlbmRDaGlsZDpmdW5jdGlvbihuKXt0aGlzLmNoaWxkTm9kZXMucHVzaChuKSxlLmkuYXBwZW5kQ2hpbGQobil9LGluc2VydEJlZm9yZTpmdW5jdGlvbihuLHQpe3RoaXMuY2hpbGROb2Rlcy5wdXNoKG4pLGUuaS5hcHBlbmRDaGlsZChuKX0scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24obil7dGhpcy5jaGlsZE5vZGVzLnNwbGljZSh0aGlzLmNoaWxkTm9kZXMuaW5kZXhPZihuKT4+PjEsMSksZS5pLnJlbW92ZUNoaWxkKG4pfX0pLG8odChQLHtjb250ZXh0OmUuY29udGV4dH0sbi5fX3YpLGUubCkpOmUubCYmZS5jb21wb25lbnRXaWxsVW5tb3VudCgpfWZ1bmN0aW9uIGoobixlKXt2YXIgcj10KCQse19fdjpuLGk6ZX0pO3JldHVybiByLmNvbnRhaW5lckluZm89ZSxyfShWLnByb3RvdHlwZT1uZXcgbikuX19hPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMsZT1GKHQuX192KSxyPXQuby5nZXQobik7cmV0dXJuIHJbMF0rKyxmdW5jdGlvbih1KXt2YXIgbz1mdW5jdGlvbigpe3QucHJvcHMucmV2ZWFsT3JkZXI/KHIucHVzaCh1KSxXKHQsbixyKSk6dSgpfTtlP2Uobyk6bygpfX0sVi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4pe3RoaXMudT1udWxsLHRoaXMubz1uZXcgTWFwO3ZhciB0PXIobi5jaGlsZHJlbik7bi5yZXZlYWxPcmRlciYmXCJiXCI9PT1uLnJldmVhbE9yZGVyWzBdJiZ0LnJldmVyc2UoKTtmb3IodmFyIGU9dC5sZW5ndGg7ZS0tOyl0aGlzLm8uc2V0KHRbZV0sdGhpcy51PVsxLDAsdGhpcy51XSk7cmV0dXJuIG4uY2hpbGRyZW59LFYucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZT1WLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5vLmZvckVhY2goZnVuY3Rpb24odCxlKXtXKG4sZSx0KX0pfTt2YXIgej1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yJiZTeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKXx8NjAxMDMsQj0vXig/OmFjY2VudHxhbGlnbm1lbnR8YXJhYmljfGJhc2VsaW5lfGNhcHxjbGlwKD8hUGF0aFUpfGNvbG9yfGRvbWluYW50fGZpbGx8Zmxvb2R8Zm9udHxnbHlwaCg/IVIpfGhvcml6fGltYWdlfGxldHRlcnxsaWdodGluZ3xtYXJrZXIoPyFIfFd8VSl8b3ZlcmxpbmV8cGFpbnR8cG9pbnRlcnxzaGFwZXxzdG9wfHN0cmlrZXRocm91Z2h8c3Ryb2tlfHRleHQoPyFMKXx0cmFuc2Zvcm18dW5kZXJsaW5lfHVuaWNvZGV8dW5pdHN8dnx2ZWN0b3J8dmVydHx3b3JkfHdyaXRpbmd8eCg/IUMpKVtBLVpdLyxIPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudCxaPWZ1bmN0aW9uKG4pe3JldHVybihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sKCk/L2ZpbHxjaGV8cmFkL2k6L2ZpbHxjaGV8cmEvaSkudGVzdChuKX07ZnVuY3Rpb24gWShuLHQsZSl7cmV0dXJuIG51bGw9PXQuX19rJiYodC50ZXh0Q29udGVudD1cIlwiKSxvKG4sdCksXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZSgpLG4/bi5fX2M6bnVsbH1mdW5jdGlvbiBxKG4sdCxlKXtyZXR1cm4gaShuLHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJmUoKSxuP24uX19jOm51bGx9bi5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fSxbXCJjb21wb25lbnRXaWxsTW91bnRcIixcImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNcIixcImNvbXBvbmVudFdpbGxVcGRhdGVcIl0uZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsdCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW1wiVU5TQUZFX1wiK3RdfSxzZXQ6ZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KX19KX0pO3ZhciBHPWUuZXZlbnQ7ZnVuY3Rpb24gSigpe31mdW5jdGlvbiBLKCl7cmV0dXJuIHRoaXMuY2FuY2VsQnViYmxlfWZ1bmN0aW9uIFEoKXtyZXR1cm4gdGhpcy5kZWZhdWx0UHJldmVudGVkfWUuZXZlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIEcmJihuPUcobikpLG4ucGVyc2lzdD1KLG4uaXNQcm9wYWdhdGlvblN0b3BwZWQ9SyxuLmlzRGVmYXVsdFByZXZlbnRlZD1RLG4ubmF0aXZlRXZlbnQ9bn07dmFyIFgsbm49e2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGFzc319LHRuPWUudm5vZGU7ZS52bm9kZT1mdW5jdGlvbihuKXt2YXIgdD1uLnR5cGUsZT1uLnByb3BzLHU9ZTtpZihcInN0cmluZ1wiPT10eXBlb2YgdCl7dmFyIG89LTE9PT10LmluZGV4T2YoXCItXCIpO2Zvcih2YXIgaSBpbiB1PXt9LGUpe3ZhciBsPWVbaV07SCYmXCJjaGlsZHJlblwiPT09aSYmXCJub3NjcmlwdFwiPT09dHx8XCJ2YWx1ZVwiPT09aSYmXCJkZWZhdWx0VmFsdWVcImluIGUmJm51bGw9PWx8fChcImRlZmF1bHRWYWx1ZVwiPT09aSYmXCJ2YWx1ZVwiaW4gZSYmbnVsbD09ZS52YWx1ZT9pPVwidmFsdWVcIjpcImRvd25sb2FkXCI9PT1pJiYhMD09PWw/bD1cIlwiOi9vbmRvdWJsZWNsaWNrL2kudGVzdChpKT9pPVwib25kYmxjbGlja1wiOi9eb25jaGFuZ2UodGV4dGFyZWF8aW5wdXQpL2kudGVzdChpK3QpJiYhWihlLnR5cGUpP2k9XCJvbmlucHV0XCI6L15vbmZvY3VzJC9pLnRlc3QoaSk/aT1cIm9uZm9jdXNpblwiOi9eb25ibHVyJC9pLnRlc3QoaSk/aT1cIm9uZm9jdXNvdXRcIjovXm9uKEFuaXxUcmF8VG91fEJlZm9yZUlucHxDb21wbykvLnRlc3QoaSk/aT1pLnRvTG93ZXJDYXNlKCk6byYmQi50ZXN0KGkpP2k9aS5yZXBsYWNlKC9bQS1aMC05XS9nLFwiLSQmXCIpLnRvTG93ZXJDYXNlKCk6bnVsbD09PWwmJihsPXZvaWQgMCksL15vbmlucHV0JC9pLnRlc3QoaSkmJihpPWkudG9Mb3dlckNhc2UoKSx1W2ldJiYoaT1cIm9uaW5wdXRDYXB0dXJlXCIpKSx1W2ldPWwpfVwic2VsZWN0XCI9PXQmJnUubXVsdGlwbGUmJkFycmF5LmlzQXJyYXkodS52YWx1ZSkmJih1LnZhbHVlPXIoZS5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuLnByb3BzLnNlbGVjdGVkPS0xIT11LnZhbHVlLmluZGV4T2Yobi5wcm9wcy52YWx1ZSl9KSksXCJzZWxlY3RcIj09dCYmbnVsbCE9dS5kZWZhdWx0VmFsdWUmJih1LnZhbHVlPXIoZS5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuLnByb3BzLnNlbGVjdGVkPXUubXVsdGlwbGU/LTEhPXUuZGVmYXVsdFZhbHVlLmluZGV4T2Yobi5wcm9wcy52YWx1ZSk6dS5kZWZhdWx0VmFsdWU9PW4ucHJvcHMudmFsdWV9KSksbi5wcm9wcz11LGUuY2xhc3MhPWUuY2xhc3NOYW1lJiYobm4uZW51bWVyYWJsZT1cImNsYXNzTmFtZVwiaW4gZSxudWxsIT1lLmNsYXNzTmFtZSYmKHUuY2xhc3M9ZS5jbGFzc05hbWUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LFwiY2xhc3NOYW1lXCIsbm4pKX1uLiQkdHlwZW9mPXosdG4mJnRuKG4pfTt2YXIgZW49ZS5fX3I7ZS5fX3I9ZnVuY3Rpb24obil7ZW4mJmVuKG4pLFg9bi5fX2N9O3ZhciBybj17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjp7Y3VycmVudDp7cmVhZENvbnRleHQ6ZnVuY3Rpb24obil7cmV0dXJuIFguX19uW24uX19jXS5wcm9wcy52YWx1ZX19fX0sdW49XCIxNy4wLjJcIjtmdW5jdGlvbiBvbihuKXtyZXR1cm4gdC5iaW5kKG51bGwsbil9ZnVuY3Rpb24gbG4obil7cmV0dXJuISFuJiZuLiQkdHlwZW9mPT09en1mdW5jdGlvbiBjbihuKXtyZXR1cm4gbG4obik/Zi5hcHBseShudWxsLGFyZ3VtZW50cyk6bn1mdW5jdGlvbiBmbihuKXtyZXR1cm4hIW4uX19rJiYobyhudWxsLG4pLCEwKX1mdW5jdGlvbiBhbihuKXtyZXR1cm4gbiYmKG4uYmFzZXx8MT09PW4ubm9kZVR5cGUmJm4pfHxudWxsfXZhciBzbj1mdW5jdGlvbihuLHQpe3JldHVybiBuKHQpfSxobj1mdW5jdGlvbihuLHQpe3JldHVybiBuKHQpfSx2bj11O2Z1bmN0aW9uIGRuKG4pe24oKX1mdW5jdGlvbiBwbihuKXtyZXR1cm4gbn1mdW5jdGlvbiBtbigpe3JldHVyblshMSxkbl19dmFyIHluPWQ7ZnVuY3Rpb24gX24obix0KXt2YXIgZT10KCkscj1hKHtoOntfXzplLHY6dH19KSx1PXJbMF0uaCxvPXJbMV07cmV0dXJuIGQoZnVuY3Rpb24oKXt1Ll9fPWUsdS52PXQsRSh1Ll9fLHQoKSl8fG8oe2g6dX0pfSxbbixlLHRdKSx2KGZ1bmN0aW9uKCl7cmV0dXJuIEUodS5fXyx1LnYoKSl8fG8oe2g6dX0pLG4oZnVuY3Rpb24oKXtFKHUuX18sdS52KCkpfHxvKHtoOnV9KX0pfSxbbl0pLGV9dmFyIGJuPXt1c2VTdGF0ZTphLHVzZUlkOnMsdXNlUmVkdWNlcjpoLHVzZUVmZmVjdDp2LHVzZUxheW91dEVmZmVjdDpkLHVzZUluc2VydGlvbkVmZmVjdDp5bix1c2VUcmFuc2l0aW9uOm1uLHVzZURlZmVycmVkVmFsdWU6cG4sdXNlU3luY0V4dGVybmFsU3RvcmU6X24sc3RhcnRUcmFuc2l0aW9uOmRuLHVzZVJlZjpwLHVzZUltcGVyYXRpdmVIYW5kbGU6bSx1c2VNZW1vOnksdXNlQ2FsbGJhY2s6Xyx1c2VDb250ZXh0OmIsdXNlRGVidWdWYWx1ZTpTLHZlcnNpb246XCIxNy4wLjJcIixDaGlsZHJlbjpPLHJlbmRlcjpZLGh5ZHJhdGU6cSx1bm1vdW50Q29tcG9uZW50QXROb2RlOmZuLGNyZWF0ZVBvcnRhbDpqLGNyZWF0ZUVsZW1lbnQ6dCxjcmVhdGVDb250ZXh0OmwsY3JlYXRlRmFjdG9yeTpvbixjbG9uZUVsZW1lbnQ6Y24sY3JlYXRlUmVmOmMsRnJhZ21lbnQ6dSxpc1ZhbGlkRWxlbWVudDpsbixmaW5kRE9NTm9kZTphbixDb21wb25lbnQ6bixQdXJlQ29tcG9uZW50OncsbWVtbzpSLGZvcndhcmRSZWY6ayxmbHVzaFN5bmM6aG4sdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM6c24sU3RyaWN0TW9kZTp2bixTdXNwZW5zZTpELFN1c3BlbnNlTGlzdDpWLGxhenk6TSxfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDpybn07ZXhwb3J0e08gYXMgQ2hpbGRyZW4sdyBhcyBQdXJlQ29tcG9uZW50LHZuIGFzIFN0cmljdE1vZGUsRCBhcyBTdXNwZW5zZSxWIGFzIFN1c3BlbnNlTGlzdCxybiBhcyBfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCxjbiBhcyBjbG9uZUVsZW1lbnQsb24gYXMgY3JlYXRlRmFjdG9yeSxqIGFzIGNyZWF0ZVBvcnRhbCxibiBhcyBkZWZhdWx0LGFuIGFzIGZpbmRET01Ob2RlLGhuIGFzIGZsdXNoU3luYyxrIGFzIGZvcndhcmRSZWYscSBhcyBoeWRyYXRlLGxuIGFzIGlzVmFsaWRFbGVtZW50LE0gYXMgbGF6eSxSIGFzIG1lbW8sWSBhcyByZW5kZXIsZG4gYXMgc3RhcnRUcmFuc2l0aW9uLGZuIGFzIHVubW91bnRDb21wb25lbnRBdE5vZGUsc24gYXMgdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMscG4gYXMgdXNlRGVmZXJyZWRWYWx1ZSx5biBhcyB1c2VJbnNlcnRpb25FZmZlY3QsX24gYXMgdXNlU3luY0V4dGVybmFsU3RvcmUsbW4gYXMgdXNlVHJhbnNpdGlvbix1biBhcyB2ZXJzaW9ufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbXBhdC5tb2R1bGUuanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///776\n')},703:(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(414);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzAzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYiwyQkFBMkIsbUJBQU8sQ0FBQyxHQUE0Qjs7QUFFL0Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzP2Q3YTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG5cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKSB7fVxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbldpdGhSZXNldCgpIHt9XG5lbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LnJlc2V0V2FybmluZ0NhY2hlID0gZW1wdHlGdW5jdGlvbjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gc2hpbShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgIGlmIChzZWNyZXQgPT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAvLyBJdCBpcyBzdGlsbCBzYWZlIHdoZW4gY2FsbGVkIGZyb20gUmVhY3QuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAnVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gJyArXG4gICAgICAnUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcydcbiAgICApO1xuICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIHRocm93IGVycjtcbiAgfTtcbiAgc2hpbS5pc1JlcXVpcmVkID0gc2hpbTtcbiAgZnVuY3Rpb24gZ2V0U2hpbSgpIHtcbiAgICByZXR1cm4gc2hpbTtcbiAgfTtcbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBzaGltLFxuICAgIGJpZ2ludDogc2hpbSxcbiAgICBib29sOiBzaGltLFxuICAgIGZ1bmM6IHNoaW0sXG4gICAgbnVtYmVyOiBzaGltLFxuICAgIG9iamVjdDogc2hpbSxcbiAgICBzdHJpbmc6IHNoaW0sXG4gICAgc3ltYm9sOiBzaGltLFxuXG4gICAgYW55OiBzaGltLFxuICAgIGFycmF5T2Y6IGdldFNoaW0sXG4gICAgZWxlbWVudDogc2hpbSxcbiAgICBlbGVtZW50VHlwZTogc2hpbSxcbiAgICBpbnN0YW5jZU9mOiBnZXRTaGltLFxuICAgIG5vZGU6IHNoaW0sXG4gICAgb2JqZWN0T2Y6IGdldFNoaW0sXG4gICAgb25lT2Y6IGdldFNoaW0sXG4gICAgb25lT2ZUeXBlOiBnZXRTaGltLFxuICAgIHNoYXBlOiBnZXRTaGltLFxuICAgIGV4YWN0OiBnZXRTaGltLFxuXG4gICAgY2hlY2tQcm9wVHlwZXM6IGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQsXG4gICAgcmVzZXRXYXJuaW5nQ2FjaGU6IGVtcHR5RnVuY3Rpb25cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///703\n")},697:(module,__unused_webpack_exports,__webpack_require__)=>{eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) { var throwOnDirectAccess, ReactIs; } else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(703)();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjk3LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLEtBQXFDLEVBQUUscUNBTzFDLENBQUM7QUFDRjtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFPLENBQUMsR0FBNEI7QUFDdkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzP2Q3YmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///697\n")},414:module=>{"use strict";eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDE0LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYjs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzPzU5YjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9ICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZXNTZWNyZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///414\n")},474:function(module){eval("/**\n * what-input - A global utility for tracking the current input method (mouse, keyboard or touch).\n * @version v5.2.12\n * @link https://github.com/ten1seven/what-input\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __nested_webpack_require_738__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_738__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__nested_webpack_require_738__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__nested_webpack_require_738__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__nested_webpack_require_738__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __nested_webpack_require_738__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = function () {\n\t /*\n\t * bail out if there is no document or window\n\t * (i.e. in a node/non-DOM environment)\n\t *\n\t * Return a stubbed API instead\n\t */\n\t if (typeof document === 'undefined' || typeof window === 'undefined') {\n\t return {\n\t // always return \"initial\" because no interaction will ever be detected\n\t ask: function ask() {\n\t return 'initial';\n\t },\n\n\t // always return null\n\t element: function element() {\n\t return null;\n\t },\n\n\t // no-op\n\t ignoreKeys: function ignoreKeys() {},\n\n\t // no-op\n\t specificKeys: function specificKeys() {},\n\n\t // no-op\n\t registerOnChange: function registerOnChange() {},\n\n\t // no-op\n\t unRegisterOnChange: function unRegisterOnChange() {}\n\t };\n\t }\n\n\t /*\n\t * variables\n\t */\n\n\t // cache document.documentElement\n\t var docElem = document.documentElement;\n\n\t // currently focused dom element\n\t var currentElement = null;\n\n\t // last used input type\n\t var currentInput = 'initial';\n\n\t // last used input intent\n\t var currentIntent = currentInput;\n\n\t // UNIX timestamp of current event\n\t var currentTimestamp = Date.now();\n\n\t // check for a `data-whatpersist` attribute on either the `html` or `body` elements, defaults to `true`\n\t var shouldPersist = false;\n\n\t // form input types\n\t var formInputs = ['button', 'input', 'select', 'textarea'];\n\n\t // empty array for holding callback functions\n\t var functionList = [];\n\n\t // list of modifier keys commonly used with the mouse and\n\t // can be safely ignored to prevent false keyboard detection\n\t var ignoreMap = [16, // shift\n\t 17, // control\n\t 18, // alt\n\t 91, // Windows key / left Apple cmd\n\t 93 // Windows menu / right Apple cmd\n\t ];\n\n\t var specificMap = [];\n\n\t // mapping of events to input types\n\t var inputMap = {\n\t keydown: 'keyboard',\n\t keyup: 'keyboard',\n\t mousedown: 'mouse',\n\t mousemove: 'mouse',\n\t MSPointerDown: 'pointer',\n\t MSPointerMove: 'pointer',\n\t pointerdown: 'pointer',\n\t pointermove: 'pointer',\n\t touchstart: 'touch',\n\t touchend: 'touch'\n\n\t // boolean: true if the page is being scrolled\n\t };var isScrolling = false;\n\n\t // store current mouse position\n\t var mousePos = {\n\t x: null,\n\t y: null\n\n\t // map of IE 10 pointer events\n\t };var pointerMap = {\n\t 2: 'touch',\n\t 3: 'touch', // treat pen like touch\n\t 4: 'mouse'\n\n\t // check support for passive event listeners\n\t };var supportsPassive = false;\n\n\t try {\n\t var opts = Object.defineProperty({}, 'passive', {\n\t get: function get() {\n\t supportsPassive = true;\n\t }\n\t });\n\n\t window.addEventListener('test', null, opts);\n\t } catch (e) {}\n\t // fail silently\n\n\n\t /*\n\t * set up\n\t */\n\n\t var setUp = function setUp() {\n\t // add correct mouse wheel event mapping to `inputMap`\n\t inputMap[detectWheel()] = 'mouse';\n\n\t addListeners();\n\t };\n\n\t /*\n\t * events\n\t */\n\n\t var addListeners = function addListeners() {\n\t // `pointermove`, `MSPointerMove`, `mousemove` and mouse wheel event binding\n\t // can only demonstrate potential, but not actual, interaction\n\t // and are treated separately\n\t var options = supportsPassive ? { passive: true, capture: true } : true;\n\n\t document.addEventListener('DOMContentLoaded', setPersist, true);\n\n\t // pointer events (mouse, pen, touch)\n\t if (window.PointerEvent) {\n\t window.addEventListener('pointerdown', setInput, true);\n\t window.addEventListener('pointermove', setIntent, true);\n\t } else if (window.MSPointerEvent) {\n\t window.addEventListener('MSPointerDown', setInput, true);\n\t window.addEventListener('MSPointerMove', setIntent, true);\n\t } else {\n\t // mouse events\n\t window.addEventListener('mousedown', setInput, true);\n\t window.addEventListener('mousemove', setIntent, true);\n\n\t // touch events\n\t if ('ontouchstart' in window) {\n\t window.addEventListener('touchstart', setInput, options);\n\t window.addEventListener('touchend', setInput, true);\n\t }\n\t }\n\n\t // mouse wheel\n\t window.addEventListener(detectWheel(), setIntent, options);\n\n\t // keyboard events\n\t window.addEventListener('keydown', setInput, true);\n\t window.addEventListener('keyup', setInput, true);\n\n\t // focus events\n\t window.addEventListener('focusin', setElement, true);\n\t window.addEventListener('focusout', clearElement, true);\n\t };\n\n\t // checks if input persistence should happen and\n\t // get saved state from session storage if true (defaults to `false`)\n\t var setPersist = function setPersist() {\n\t shouldPersist = !(docElem.getAttribute('data-whatpersist') === 'false' || document.body.getAttribute('data-whatpersist') === 'false');\n\n\t if (shouldPersist) {\n\t // check for session variables and use if available\n\t try {\n\t if (window.sessionStorage.getItem('what-input')) {\n\t currentInput = window.sessionStorage.getItem('what-input');\n\t }\n\n\t if (window.sessionStorage.getItem('what-intent')) {\n\t currentIntent = window.sessionStorage.getItem('what-intent');\n\t }\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\n\t // always run these so at least `initial` state is set\n\t doUpdate('input');\n\t doUpdate('intent');\n\t };\n\n\t // checks conditions before updating new input\n\t var setInput = function setInput(event) {\n\t var eventKey = event.which;\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t var ignoreMatch = !specificMap.length && ignoreMap.indexOf(eventKey) === -1;\n\n\t var specificMatch = specificMap.length && specificMap.indexOf(eventKey) !== -1;\n\n\t var shouldUpdate = value === 'keyboard' && eventKey && (ignoreMatch || specificMatch) || value === 'mouse' || value === 'touch';\n\n\t // prevent touch detection from being overridden by event execution order\n\t if (validateTouch(value)) {\n\t shouldUpdate = false;\n\t }\n\n\t if (shouldUpdate && currentInput !== value) {\n\t currentInput = value;\n\n\t persistInput('input', currentInput);\n\t doUpdate('input');\n\t }\n\n\t if (shouldUpdate && currentIntent !== value) {\n\t // preserve intent for keyboard interaction with form fields\n\t var activeElem = document.activeElement;\n\t var notFormInput = activeElem && activeElem.nodeName && (formInputs.indexOf(activeElem.nodeName.toLowerCase()) === -1 || activeElem.nodeName.toLowerCase() === 'button' && !checkClosest(activeElem, 'form'));\n\n\t if (notFormInput) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t }\n\t };\n\n\t // updates the doc and `inputTypes` array with new input\n\t var doUpdate = function doUpdate(which) {\n\t docElem.setAttribute('data-what' + which, which === 'input' ? currentInput : currentIntent);\n\n\t fireFunctions(which);\n\t };\n\n\t // updates input intent for `mousemove` and `pointermove`\n\t var setIntent = function setIntent(event) {\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t // test to see if `mousemove` happened relative to the screen to detect scrolling versus mousemove\n\t detectScrolling(event);\n\n\t // only execute if scrolling isn't happening\n\t if ((!isScrolling && !validateTouch(value) || isScrolling && event.type === 'wheel' || event.type === 'mousewheel' || event.type === 'DOMMouseScroll') && currentIntent !== value) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t };\n\n\t var setElement = function setElement(event) {\n\t if (!event.target.nodeName) {\n\t // If nodeName is undefined, clear the element\n\t // This can happen if click inside an <svg> element.\n\t clearElement();\n\t return;\n\t }\n\n\t currentElement = event.target.nodeName.toLowerCase();\n\t docElem.setAttribute('data-whatelement', currentElement);\n\n\t if (event.target.classList && event.target.classList.length) {\n\t docElem.setAttribute('data-whatclasses', event.target.classList.toString().replace(' ', ','));\n\t }\n\t };\n\n\t var clearElement = function clearElement() {\n\t currentElement = null;\n\n\t docElem.removeAttribute('data-whatelement');\n\t docElem.removeAttribute('data-whatclasses');\n\t };\n\n\t var persistInput = function persistInput(which, value) {\n\t if (shouldPersist) {\n\t try {\n\t window.sessionStorage.setItem('what-' + which, value);\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\t };\n\n\t /*\n\t * utilities\n\t */\n\n\t var pointerType = function pointerType(event) {\n\t if (typeof event.pointerType === 'number') {\n\t return pointerMap[event.pointerType];\n\t } else {\n\t // treat pen like touch\n\t return event.pointerType === 'pen' ? 'touch' : event.pointerType;\n\t }\n\t };\n\n\t // prevent touch detection from being overridden by event execution order\n\t var validateTouch = function validateTouch(value) {\n\t var timestamp = Date.now();\n\n\t var touchIsValid = value === 'mouse' && currentInput === 'touch' && timestamp - currentTimestamp < 200;\n\n\t currentTimestamp = timestamp;\n\n\t return touchIsValid;\n\t };\n\n\t // detect version of mouse wheel event to use\n\t // via https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event\n\t var detectWheel = function detectWheel() {\n\t var wheelType = null;\n\n\t // Modern browsers support \"wheel\"\n\t if ('onwheel' in document.createElement('div')) {\n\t wheelType = 'wheel';\n\t } else {\n\t // Webkit and IE support at least \"mousewheel\"\n\t // or assume that remaining browsers are older Firefox\n\t wheelType = document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';\n\t }\n\n\t return wheelType;\n\t };\n\n\t // runs callback functions\n\t var fireFunctions = function fireFunctions(type) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].type === type) {\n\t functionList[i].fn.call(undefined, type === 'input' ? currentInput : currentIntent);\n\t }\n\t }\n\t };\n\n\t // finds matching element in an object\n\t var objPos = function objPos(match) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].fn === match) {\n\t return i;\n\t }\n\t }\n\t };\n\n\t var detectScrolling = function detectScrolling(event) {\n\t if (mousePos.x !== event.screenX || mousePos.y !== event.screenY) {\n\t isScrolling = false;\n\n\t mousePos.x = event.screenX;\n\t mousePos.y = event.screenY;\n\t } else {\n\t isScrolling = true;\n\t }\n\t };\n\n\t // manual version of `closest()`\n\t var checkClosest = function checkClosest(elem, tag) {\n\t var ElementPrototype = window.Element.prototype;\n\n\t if (!ElementPrototype.matches) {\n\t ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.webkitMatchesSelector;\n\t }\n\n\t if (!ElementPrototype.closest) {\n\t do {\n\t if (elem.matches(tag)) {\n\t return elem;\n\t }\n\n\t elem = elem.parentElement || elem.parentNode;\n\t } while (elem !== null && elem.nodeType === 1);\n\n\t return null;\n\t } else {\n\t return elem.closest(tag);\n\t }\n\t };\n\n\t /*\n\t * init\n\t */\n\n\t // don't start script unless browser cuts the mustard\n\t // (also passes if polyfills are used)\n\t if ('addEventListener' in window && Array.prototype.indexOf) {\n\t setUp();\n\t }\n\n\t /*\n\t * api\n\t */\n\n\t return {\n\t // returns string: the current input type\n\t // opt: 'intent'|'input'\n\t // 'input' (default): returns the same value as the `data-whatinput` attribute\n\t // 'intent': includes `data-whatintent` value if it's different than `data-whatinput`\n\t ask: function ask(opt) {\n\t return opt === 'intent' ? currentIntent : currentInput;\n\t },\n\n\t // returns string: the currently focused element or null\n\t element: function element() {\n\t return currentElement;\n\t },\n\n\t // overwrites ignored keys with provided array\n\t ignoreKeys: function ignoreKeys(arr) {\n\t ignoreMap = arr;\n\t },\n\n\t // overwrites specific char keys to update on\n\t specificKeys: function specificKeys(arr) {\n\t specificMap = arr;\n\t },\n\n\t // attach functions to input and intent \"events\"\n\t // funct: function to fire on change\n\t // eventType: 'input'|'intent'\n\t registerOnChange: function registerOnChange(fn, eventType) {\n\t functionList.push({\n\t fn: fn,\n\t type: eventType || 'input'\n\t });\n\t },\n\n\t unRegisterOnChange: function unRegisterOnChange(fn) {\n\t var position = objPos(fn);\n\n\t if (position || position === 0) {\n\t functionList.splice(position, 1);\n\t }\n\t },\n\n\t clearStorage: function clearStorage() {\n\t window.sessionStorage.clear();\n\t }\n\t };\n\t}();\n\n/***/ })\n/******/ ])\n});\n;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDc0LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUF5RDtBQUM3RDtBQUNBLE1BQU0sRUFLMEI7QUFDaEMsQ0FBQztBQUNELHFDQUFxQztBQUNyQztBQUNBOztBQUVBO0FBQ0EsbUJBQW1CLDhCQUFtQjs7QUFFdEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMEVBQTBFLDhCQUFtQjs7QUFFN0Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0EsVUFBVSw4QkFBbUI7O0FBRTdCO0FBQ0EsVUFBVSw4QkFBbUI7O0FBRTdCO0FBQ0EsVUFBVSw4QkFBbUI7O0FBRTdCO0FBQ0EsaUJBQWlCLDhCQUFtQjtBQUNwQyxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7QUFFUjtBQUNBO0FBQ0E7QUFDQSxRQUFROztBQUVSO0FBQ0EsMkNBQTJDOztBQUUzQztBQUNBLCtDQUErQzs7QUFFL0M7QUFDQSx1REFBdUQ7O0FBRXZEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBLEtBQUs7QUFDTDs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QywrQkFBK0I7O0FBRXRFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnREFBZ0QsU0FBUztBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnREFBZ0QsU0FBUztBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxTQUFTOztBQUVUO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSLE1BQU07O0FBRU47QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRixPQUFPO0FBQ1A7QUFDQSxDQUFDO0FBQ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy93aGF0LWlucHV0L2Rpc3Qvd2hhdC1pbnB1dC5qcz84ZTNiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogd2hhdC1pbnB1dCAtIEEgZ2xvYmFsIHV0aWxpdHkgZm9yIHRyYWNraW5nIHRoZSBjdXJyZW50IGlucHV0IG1ldGhvZCAobW91c2UsIGtleWJvYXJkIG9yIHRvdWNoKS5cbiAqIEB2ZXJzaW9uIHY1LjIuMTJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS90ZW4xc2V2ZW4vd2hhdC1pbnB1dFxuICogQGxpY2Vuc2UgTUlUXG4gKi9cbihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFwid2hhdElucHV0XCIsIFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIndoYXRJbnB1dFwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJ3aGF0SW5wdXRcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4vKioqKioqLyBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbi8qKioqKiovIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fSxcbi8qKioqKiovIFx0XHRcdGlkOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdGxvYWRlZDogZmFsc2Vcbi8qKioqKiovIFx0XHR9O1xuXG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG5cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuXG5cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4vKioqKioqLyBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyoqKioqKi8gfSlcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyAoW1xuLyogMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5cdCd1c2Ugc3RyaWN0JztcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcblx0ICAvKlxuXHQgICAqIGJhaWwgb3V0IGlmIHRoZXJlIGlzIG5vIGRvY3VtZW50IG9yIHdpbmRvd1xuXHQgICAqIChpLmUuIGluIGEgbm9kZS9ub24tRE9NIGVudmlyb25tZW50KVxuXHQgICAqXG5cdCAgICogUmV0dXJuIGEgc3R1YmJlZCBBUEkgaW5zdGVhZFxuXHQgICAqL1xuXHQgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG5cdCAgICByZXR1cm4ge1xuXHQgICAgICAvLyBhbHdheXMgcmV0dXJuIFwiaW5pdGlhbFwiIGJlY2F1c2Ugbm8gaW50ZXJhY3Rpb24gd2lsbCBldmVyIGJlIGRldGVjdGVkXG5cdCAgICAgIGFzazogZnVuY3Rpb24gYXNrKCkge1xuXHQgICAgICAgIHJldHVybiAnaW5pdGlhbCc7XG5cdCAgICAgIH0sXG5cblx0ICAgICAgLy8gYWx3YXlzIHJldHVybiBudWxsXG5cdCAgICAgIGVsZW1lbnQ6IGZ1bmN0aW9uIGVsZW1lbnQoKSB7XG5cdCAgICAgICAgcmV0dXJuIG51bGw7XG5cdCAgICAgIH0sXG5cblx0ICAgICAgLy8gbm8tb3Bcblx0ICAgICAgaWdub3JlS2V5czogZnVuY3Rpb24gaWdub3JlS2V5cygpIHt9LFxuXG5cdCAgICAgIC8vIG5vLW9wXG5cdCAgICAgIHNwZWNpZmljS2V5czogZnVuY3Rpb24gc3BlY2lmaWNLZXlzKCkge30sXG5cblx0ICAgICAgLy8gbm8tb3Bcblx0ICAgICAgcmVnaXN0ZXJPbkNoYW5nZTogZnVuY3Rpb24gcmVnaXN0ZXJPbkNoYW5nZSgpIHt9LFxuXG5cdCAgICAgIC8vIG5vLW9wXG5cdCAgICAgIHVuUmVnaXN0ZXJPbkNoYW5nZTogZnVuY3Rpb24gdW5SZWdpc3Rlck9uQ2hhbmdlKCkge31cblx0ICAgIH07XG5cdCAgfVxuXG5cdCAgLypcblx0ICAgKiB2YXJpYWJsZXNcblx0ICAgKi9cblxuXHQgIC8vIGNhY2hlIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuXHQgIHZhciBkb2NFbGVtID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG5cdCAgLy8gY3VycmVudGx5IGZvY3VzZWQgZG9tIGVsZW1lbnRcblx0ICB2YXIgY3VycmVudEVsZW1lbnQgPSBudWxsO1xuXG5cdCAgLy8gbGFzdCB1c2VkIGlucHV0IHR5cGVcblx0ICB2YXIgY3VycmVudElucHV0ID0gJ2luaXRpYWwnO1xuXG5cdCAgLy8gbGFzdCB1c2VkIGlucHV0IGludGVudFxuXHQgIHZhciBjdXJyZW50SW50ZW50ID0gY3VycmVudElucHV0O1xuXG5cdCAgLy8gVU5JWCB0aW1lc3RhbXAgb2YgY3VycmVudCBldmVudFxuXHQgIHZhciBjdXJyZW50VGltZXN0YW1wID0gRGF0ZS5ub3coKTtcblxuXHQgIC8vIGNoZWNrIGZvciBhIGBkYXRhLXdoYXRwZXJzaXN0YCBhdHRyaWJ1dGUgb24gZWl0aGVyIHRoZSBgaHRtbGAgb3IgYGJvZHlgIGVsZW1lbnRzLCBkZWZhdWx0cyB0byBgdHJ1ZWBcblx0ICB2YXIgc2hvdWxkUGVyc2lzdCA9IGZhbHNlO1xuXG5cdCAgLy8gZm9ybSBpbnB1dCB0eXBlc1xuXHQgIHZhciBmb3JtSW5wdXRzID0gWydidXR0b24nLCAnaW5wdXQnLCAnc2VsZWN0JywgJ3RleHRhcmVhJ107XG5cblx0ICAvLyBlbXB0eSBhcnJheSBmb3IgaG9sZGluZyBjYWxsYmFjayBmdW5jdGlvbnNcblx0ICB2YXIgZnVuY3Rpb25MaXN0ID0gW107XG5cblx0ICAvLyBsaXN0IG9mIG1vZGlmaWVyIGtleXMgY29tbW9ubHkgdXNlZCB3aXRoIHRoZSBtb3VzZSBhbmRcblx0ICAvLyBjYW4gYmUgc2FmZWx5IGlnbm9yZWQgdG8gcHJldmVudCBmYWxzZSBrZXlib2FyZCBkZXRlY3Rpb25cblx0ICB2YXIgaWdub3JlTWFwID0gWzE2LCAvLyBzaGlmdFxuXHQgIDE3LCAvLyBjb250cm9sXG5cdCAgMTgsIC8vIGFsdFxuXHQgIDkxLCAvLyBXaW5kb3dzIGtleSAvIGxlZnQgQXBwbGUgY21kXG5cdCAgOTMgLy8gV2luZG93cyBtZW51IC8gcmlnaHQgQXBwbGUgY21kXG5cdCAgXTtcblxuXHQgIHZhciBzcGVjaWZpY01hcCA9IFtdO1xuXG5cdCAgLy8gbWFwcGluZyBvZiBldmVudHMgdG8gaW5wdXQgdHlwZXNcblx0ICB2YXIgaW5wdXRNYXAgPSB7XG5cdCAgICBrZXlkb3duOiAna2V5Ym9hcmQnLFxuXHQgICAga2V5dXA6ICdrZXlib2FyZCcsXG5cdCAgICBtb3VzZWRvd246ICdtb3VzZScsXG5cdCAgICBtb3VzZW1vdmU6ICdtb3VzZScsXG5cdCAgICBNU1BvaW50ZXJEb3duOiAncG9pbnRlcicsXG5cdCAgICBNU1BvaW50ZXJNb3ZlOiAncG9pbnRlcicsXG5cdCAgICBwb2ludGVyZG93bjogJ3BvaW50ZXInLFxuXHQgICAgcG9pbnRlcm1vdmU6ICdwb2ludGVyJyxcblx0ICAgIHRvdWNoc3RhcnQ6ICd0b3VjaCcsXG5cdCAgICB0b3VjaGVuZDogJ3RvdWNoJ1xuXG5cdCAgICAvLyBib29sZWFuOiB0cnVlIGlmIHRoZSBwYWdlIGlzIGJlaW5nIHNjcm9sbGVkXG5cdCAgfTt2YXIgaXNTY3JvbGxpbmcgPSBmYWxzZTtcblxuXHQgIC8vIHN0b3JlIGN1cnJlbnQgbW91c2UgcG9zaXRpb25cblx0ICB2YXIgbW91c2VQb3MgPSB7XG5cdCAgICB4OiBudWxsLFxuXHQgICAgeTogbnVsbFxuXG5cdCAgICAvLyBtYXAgb2YgSUUgMTAgcG9pbnRlciBldmVudHNcblx0ICB9O3ZhciBwb2ludGVyTWFwID0ge1xuXHQgICAgMjogJ3RvdWNoJyxcblx0ICAgIDM6ICd0b3VjaCcsIC8vIHRyZWF0IHBlbiBsaWtlIHRvdWNoXG5cdCAgICA0OiAnbW91c2UnXG5cblx0ICAgIC8vIGNoZWNrIHN1cHBvcnQgZm9yIHBhc3NpdmUgZXZlbnQgbGlzdGVuZXJzXG5cdCAgfTt2YXIgc3VwcG9ydHNQYXNzaXZlID0gZmFsc2U7XG5cblx0ICB0cnkge1xuXHQgICAgdmFyIG9wdHMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xuXHQgICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcblx0ICAgICAgICBzdXBwb3J0c1Bhc3NpdmUgPSB0cnVlO1xuXHQgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBudWxsLCBvcHRzKTtcblx0ICB9IGNhdGNoIChlKSB7fVxuXHQgIC8vIGZhaWwgc2lsZW50bHlcblxuXG5cdCAgLypcblx0ICAgKiBzZXQgdXBcblx0ICAgKi9cblxuXHQgIHZhciBzZXRVcCA9IGZ1bmN0aW9uIHNldFVwKCkge1xuXHQgICAgLy8gYWRkIGNvcnJlY3QgbW91c2Ugd2hlZWwgZXZlbnQgbWFwcGluZyB0byBgaW5wdXRNYXBgXG5cdCAgICBpbnB1dE1hcFtkZXRlY3RXaGVlbCgpXSA9ICdtb3VzZSc7XG5cblx0ICAgIGFkZExpc3RlbmVycygpO1xuXHQgIH07XG5cblx0ICAvKlxuXHQgICAqIGV2ZW50c1xuXHQgICAqL1xuXG5cdCAgdmFyIGFkZExpc3RlbmVycyA9IGZ1bmN0aW9uIGFkZExpc3RlbmVycygpIHtcblx0ICAgIC8vIGBwb2ludGVybW92ZWAsIGBNU1BvaW50ZXJNb3ZlYCwgYG1vdXNlbW92ZWAgYW5kIG1vdXNlIHdoZWVsIGV2ZW50IGJpbmRpbmdcblx0ICAgIC8vIGNhbiBvbmx5IGRlbW9uc3RyYXRlIHBvdGVudGlhbCwgYnV0IG5vdCBhY3R1YWwsIGludGVyYWN0aW9uXG5cdCAgICAvLyBhbmQgYXJlIHRyZWF0ZWQgc2VwYXJhdGVseVxuXHQgICAgdmFyIG9wdGlvbnMgPSBzdXBwb3J0c1Bhc3NpdmUgPyB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSA6IHRydWU7XG5cblx0ICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBzZXRQZXJzaXN0LCB0cnVlKTtcblxuXHQgICAgLy8gcG9pbnRlciBldmVudHMgKG1vdXNlLCBwZW4sIHRvdWNoKVxuXHQgICAgaWYgKHdpbmRvdy5Qb2ludGVyRXZlbnQpIHtcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgc2V0SW5wdXQsIHRydWUpO1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBzZXRJbnRlbnQsIHRydWUpO1xuXHQgICAgfSBlbHNlIGlmICh3aW5kb3cuTVNQb2ludGVyRXZlbnQpIHtcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ01TUG9pbnRlckRvd24nLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdNU1BvaW50ZXJNb3ZlJywgc2V0SW50ZW50LCB0cnVlKTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIC8vIG1vdXNlIGV2ZW50c1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgc2V0SW5wdXQsIHRydWUpO1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgc2V0SW50ZW50LCB0cnVlKTtcblxuXHQgICAgICAvLyB0b3VjaCBldmVudHNcblx0ICAgICAgaWYgKCdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdykge1xuXHQgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywgc2V0SW5wdXQsIG9wdGlvbnMpO1xuXHQgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHNldElucHV0LCB0cnVlKTtcblx0ICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICAvLyBtb3VzZSB3aGVlbFxuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZGV0ZWN0V2hlZWwoKSwgc2V0SW50ZW50LCBvcHRpb25zKTtcblxuXHQgICAgLy8ga2V5Ym9hcmQgZXZlbnRzXG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHNldElucHV0LCB0cnVlKTtcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHNldElucHV0LCB0cnVlKTtcblxuXHQgICAgLy8gZm9jdXMgZXZlbnRzXG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIHNldEVsZW1lbnQsIHRydWUpO1xuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgY2xlYXJFbGVtZW50LCB0cnVlKTtcblx0ICB9O1xuXG5cdCAgLy8gY2hlY2tzIGlmIGlucHV0IHBlcnNpc3RlbmNlIHNob3VsZCBoYXBwZW4gYW5kXG5cdCAgLy8gZ2V0IHNhdmVkIHN0YXRlIGZyb20gc2Vzc2lvbiBzdG9yYWdlIGlmIHRydWUgKGRlZmF1bHRzIHRvIGBmYWxzZWApXG5cdCAgdmFyIHNldFBlcnNpc3QgPSBmdW5jdGlvbiBzZXRQZXJzaXN0KCkge1xuXHQgICAgc2hvdWxkUGVyc2lzdCA9ICEoZG9jRWxlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtd2hhdHBlcnNpc3QnKSA9PT0gJ2ZhbHNlJyB8fCBkb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgnZGF0YS13aGF0cGVyc2lzdCcpID09PSAnZmFsc2UnKTtcblxuXHQgICAgaWYgKHNob3VsZFBlcnNpc3QpIHtcblx0ICAgICAgLy8gY2hlY2sgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCB1c2UgaWYgYXZhaWxhYmxlXG5cdCAgICAgIHRyeSB7XG5cdCAgICAgICAgaWYgKHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd3aGF0LWlucHV0JykpIHtcblx0ICAgICAgICAgIGN1cnJlbnRJbnB1dCA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd3aGF0LWlucHV0Jyk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd3aGF0LWludGVudCcpKSB7XG5cdCAgICAgICAgICBjdXJyZW50SW50ZW50ID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3doYXQtaW50ZW50Jyk7XG5cdCAgICAgICAgfVxuXHQgICAgICB9IGNhdGNoIChlKSB7XG5cdCAgICAgICAgLy8gZmFpbCBzaWxlbnRseVxuXHQgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIC8vIGFsd2F5cyBydW4gdGhlc2Ugc28gYXQgbGVhc3QgYGluaXRpYWxgIHN0YXRlIGlzIHNldFxuXHQgICAgZG9VcGRhdGUoJ2lucHV0Jyk7XG5cdCAgICBkb1VwZGF0ZSgnaW50ZW50Jyk7XG5cdCAgfTtcblxuXHQgIC8vIGNoZWNrcyBjb25kaXRpb25zIGJlZm9yZSB1cGRhdGluZyBuZXcgaW5wdXRcblx0ICB2YXIgc2V0SW5wdXQgPSBmdW5jdGlvbiBzZXRJbnB1dChldmVudCkge1xuXHQgICAgdmFyIGV2ZW50S2V5ID0gZXZlbnQud2hpY2g7XG5cdCAgICB2YXIgdmFsdWUgPSBpbnB1dE1hcFtldmVudC50eXBlXTtcblxuXHQgICAgaWYgKHZhbHVlID09PSAncG9pbnRlcicpIHtcblx0ICAgICAgdmFsdWUgPSBwb2ludGVyVHlwZShldmVudCk7XG5cdCAgICB9XG5cblx0ICAgIHZhciBpZ25vcmVNYXRjaCA9ICFzcGVjaWZpY01hcC5sZW5ndGggJiYgaWdub3JlTWFwLmluZGV4T2YoZXZlbnRLZXkpID09PSAtMTtcblxuXHQgICAgdmFyIHNwZWNpZmljTWF0Y2ggPSBzcGVjaWZpY01hcC5sZW5ndGggJiYgc3BlY2lmaWNNYXAuaW5kZXhPZihldmVudEtleSkgIT09IC0xO1xuXG5cdCAgICB2YXIgc2hvdWxkVXBkYXRlID0gdmFsdWUgPT09ICdrZXlib2FyZCcgJiYgZXZlbnRLZXkgJiYgKGlnbm9yZU1hdGNoIHx8IHNwZWNpZmljTWF0Y2gpIHx8IHZhbHVlID09PSAnbW91c2UnIHx8IHZhbHVlID09PSAndG91Y2gnO1xuXG5cdCAgICAvLyBwcmV2ZW50IHRvdWNoIGRldGVjdGlvbiBmcm9tIGJlaW5nIG92ZXJyaWRkZW4gYnkgZXZlbnQgZXhlY3V0aW9uIG9yZGVyXG5cdCAgICBpZiAodmFsaWRhdGVUb3VjaCh2YWx1ZSkpIHtcblx0ICAgICAgc2hvdWxkVXBkYXRlID0gZmFsc2U7XG5cdCAgICB9XG5cblx0ICAgIGlmIChzaG91bGRVcGRhdGUgJiYgY3VycmVudElucHV0ICE9PSB2YWx1ZSkge1xuXHQgICAgICBjdXJyZW50SW5wdXQgPSB2YWx1ZTtcblxuXHQgICAgICBwZXJzaXN0SW5wdXQoJ2lucHV0JywgY3VycmVudElucHV0KTtcblx0ICAgICAgZG9VcGRhdGUoJ2lucHV0Jyk7XG5cdCAgICB9XG5cblx0ICAgIGlmIChzaG91bGRVcGRhdGUgJiYgY3VycmVudEludGVudCAhPT0gdmFsdWUpIHtcblx0ICAgICAgLy8gcHJlc2VydmUgaW50ZW50IGZvciBrZXlib2FyZCBpbnRlcmFjdGlvbiB3aXRoIGZvcm0gZmllbGRzXG5cdCAgICAgIHZhciBhY3RpdmVFbGVtID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblx0ICAgICAgdmFyIG5vdEZvcm1JbnB1dCA9IGFjdGl2ZUVsZW0gJiYgYWN0aXZlRWxlbS5ub2RlTmFtZSAmJiAoZm9ybUlucHV0cy5pbmRleE9mKGFjdGl2ZUVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkgPT09IC0xIHx8IGFjdGl2ZUVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2J1dHRvbicgJiYgIWNoZWNrQ2xvc2VzdChhY3RpdmVFbGVtLCAnZm9ybScpKTtcblxuXHQgICAgICBpZiAobm90Rm9ybUlucHV0KSB7XG5cdCAgICAgICAgY3VycmVudEludGVudCA9IHZhbHVlO1xuXG5cdCAgICAgICAgcGVyc2lzdElucHV0KCdpbnRlbnQnLCBjdXJyZW50SW50ZW50KTtcblx0ICAgICAgICBkb1VwZGF0ZSgnaW50ZW50Jyk7XG5cdCAgICAgIH1cblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLy8gdXBkYXRlcyB0aGUgZG9jIGFuZCBgaW5wdXRUeXBlc2AgYXJyYXkgd2l0aCBuZXcgaW5wdXRcblx0ICB2YXIgZG9VcGRhdGUgPSBmdW5jdGlvbiBkb1VwZGF0ZSh3aGljaCkge1xuXHQgICAgZG9jRWxlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEtd2hhdCcgKyB3aGljaCwgd2hpY2ggPT09ICdpbnB1dCcgPyBjdXJyZW50SW5wdXQgOiBjdXJyZW50SW50ZW50KTtcblxuXHQgICAgZmlyZUZ1bmN0aW9ucyh3aGljaCk7XG5cdCAgfTtcblxuXHQgIC8vIHVwZGF0ZXMgaW5wdXQgaW50ZW50IGZvciBgbW91c2Vtb3ZlYCBhbmQgYHBvaW50ZXJtb3ZlYFxuXHQgIHZhciBzZXRJbnRlbnQgPSBmdW5jdGlvbiBzZXRJbnRlbnQoZXZlbnQpIHtcblx0ICAgIHZhciB2YWx1ZSA9IGlucHV0TWFwW2V2ZW50LnR5cGVdO1xuXG5cdCAgICBpZiAodmFsdWUgPT09ICdwb2ludGVyJykge1xuXHQgICAgICB2YWx1ZSA9IHBvaW50ZXJUeXBlKGV2ZW50KTtcblx0ICAgIH1cblxuXHQgICAgLy8gdGVzdCB0byBzZWUgaWYgYG1vdXNlbW92ZWAgaGFwcGVuZWQgcmVsYXRpdmUgdG8gdGhlIHNjcmVlbiB0byBkZXRlY3Qgc2Nyb2xsaW5nIHZlcnN1cyBtb3VzZW1vdmVcblx0ICAgIGRldGVjdFNjcm9sbGluZyhldmVudCk7XG5cblx0ICAgIC8vIG9ubHkgZXhlY3V0ZSBpZiBzY3JvbGxpbmcgaXNuJ3QgaGFwcGVuaW5nXG5cdCAgICBpZiAoKCFpc1Njcm9sbGluZyAmJiAhdmFsaWRhdGVUb3VjaCh2YWx1ZSkgfHwgaXNTY3JvbGxpbmcgJiYgZXZlbnQudHlwZSA9PT0gJ3doZWVsJyB8fCBldmVudC50eXBlID09PSAnbW91c2V3aGVlbCcgfHwgZXZlbnQudHlwZSA9PT0gJ0RPTU1vdXNlU2Nyb2xsJykgJiYgY3VycmVudEludGVudCAhPT0gdmFsdWUpIHtcblx0ICAgICAgY3VycmVudEludGVudCA9IHZhbHVlO1xuXG5cdCAgICAgIHBlcnNpc3RJbnB1dCgnaW50ZW50JywgY3VycmVudEludGVudCk7XG5cdCAgICAgIGRvVXBkYXRlKCdpbnRlbnQnKTtcblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgdmFyIHNldEVsZW1lbnQgPSBmdW5jdGlvbiBzZXRFbGVtZW50KGV2ZW50KSB7XG5cdCAgICBpZiAoIWV2ZW50LnRhcmdldC5ub2RlTmFtZSkge1xuXHQgICAgICAvLyBJZiBub2RlTmFtZSBpcyB1bmRlZmluZWQsIGNsZWFyIHRoZSBlbGVtZW50XG5cdCAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiBjbGljayBpbnNpZGUgYW4gPHN2Zz4gZWxlbWVudC5cblx0ICAgICAgY2xlYXJFbGVtZW50KCk7XG5cdCAgICAgIHJldHVybjtcblx0ICAgIH1cblxuXHQgICAgY3VycmVudEVsZW1lbnQgPSBldmVudC50YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0ICAgIGRvY0VsZW0uc2V0QXR0cmlidXRlKCdkYXRhLXdoYXRlbGVtZW50JywgY3VycmVudEVsZW1lbnQpO1xuXG5cdCAgICBpZiAoZXZlbnQudGFyZ2V0LmNsYXNzTGlzdCAmJiBldmVudC50YXJnZXQuY2xhc3NMaXN0Lmxlbmd0aCkge1xuXHQgICAgICBkb2NFbGVtLnNldEF0dHJpYnV0ZSgnZGF0YS13aGF0Y2xhc3NlcycsIGV2ZW50LnRhcmdldC5jbGFzc0xpc3QudG9TdHJpbmcoKS5yZXBsYWNlKCcgJywgJywnKSk7XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIHZhciBjbGVhckVsZW1lbnQgPSBmdW5jdGlvbiBjbGVhckVsZW1lbnQoKSB7XG5cdCAgICBjdXJyZW50RWxlbWVudCA9IG51bGw7XG5cblx0ICAgIGRvY0VsZW0ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXdoYXRlbGVtZW50Jyk7XG5cdCAgICBkb2NFbGVtLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS13aGF0Y2xhc3NlcycpO1xuXHQgIH07XG5cblx0ICB2YXIgcGVyc2lzdElucHV0ID0gZnVuY3Rpb24gcGVyc2lzdElucHV0KHdoaWNoLCB2YWx1ZSkge1xuXHQgICAgaWYgKHNob3VsZFBlcnNpc3QpIHtcblx0ICAgICAgdHJ5IHtcblx0ICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnd2hhdC0nICsgd2hpY2gsIHZhbHVlKTtcblx0ICAgICAgfSBjYXRjaCAoZSkge1xuXHQgICAgICAgIC8vIGZhaWwgc2lsZW50bHlcblx0ICAgICAgfVxuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvKlxuXHQgICAqIHV0aWxpdGllc1xuXHQgICAqL1xuXG5cdCAgdmFyIHBvaW50ZXJUeXBlID0gZnVuY3Rpb24gcG9pbnRlclR5cGUoZXZlbnQpIHtcblx0ICAgIGlmICh0eXBlb2YgZXZlbnQucG9pbnRlclR5cGUgPT09ICdudW1iZXInKSB7XG5cdCAgICAgIHJldHVybiBwb2ludGVyTWFwW2V2ZW50LnBvaW50ZXJUeXBlXTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIC8vIHRyZWF0IHBlbiBsaWtlIHRvdWNoXG5cdCAgICAgIHJldHVybiBldmVudC5wb2ludGVyVHlwZSA9PT0gJ3BlbicgPyAndG91Y2gnIDogZXZlbnQucG9pbnRlclR5cGU7XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8vIHByZXZlbnQgdG91Y2ggZGV0ZWN0aW9uIGZyb20gYmVpbmcgb3ZlcnJpZGRlbiBieSBldmVudCBleGVjdXRpb24gb3JkZXJcblx0ICB2YXIgdmFsaWRhdGVUb3VjaCA9IGZ1bmN0aW9uIHZhbGlkYXRlVG91Y2godmFsdWUpIHtcblx0ICAgIHZhciB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuXG5cdCAgICB2YXIgdG91Y2hJc1ZhbGlkID0gdmFsdWUgPT09ICdtb3VzZScgJiYgY3VycmVudElucHV0ID09PSAndG91Y2gnICYmIHRpbWVzdGFtcCAtIGN1cnJlbnRUaW1lc3RhbXAgPCAyMDA7XG5cblx0ICAgIGN1cnJlbnRUaW1lc3RhbXAgPSB0aW1lc3RhbXA7XG5cblx0ICAgIHJldHVybiB0b3VjaElzVmFsaWQ7XG5cdCAgfTtcblxuXHQgIC8vIGRldGVjdCB2ZXJzaW9uIG9mIG1vdXNlIHdoZWVsIGV2ZW50IHRvIHVzZVxuXHQgIC8vIHZpYSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC93aGVlbF9ldmVudFxuXHQgIHZhciBkZXRlY3RXaGVlbCA9IGZ1bmN0aW9uIGRldGVjdFdoZWVsKCkge1xuXHQgICAgdmFyIHdoZWVsVHlwZSA9IG51bGw7XG5cblx0ICAgIC8vIE1vZGVybiBicm93c2VycyBzdXBwb3J0IFwid2hlZWxcIlxuXHQgICAgaWYgKCdvbndoZWVsJyBpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSkge1xuXHQgICAgICB3aGVlbFR5cGUgPSAnd2hlZWwnO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgLy8gV2Via2l0IGFuZCBJRSBzdXBwb3J0IGF0IGxlYXN0IFwibW91c2V3aGVlbFwiXG5cdCAgICAgIC8vIG9yIGFzc3VtZSB0aGF0IHJlbWFpbmluZyBicm93c2VycyBhcmUgb2xkZXIgRmlyZWZveFxuXHQgICAgICB3aGVlbFR5cGUgPSBkb2N1bWVudC5vbm1vdXNld2hlZWwgIT09IHVuZGVmaW5lZCA/ICdtb3VzZXdoZWVsJyA6ICdET01Nb3VzZVNjcm9sbCc7XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiB3aGVlbFR5cGU7XG5cdCAgfTtcblxuXHQgIC8vIHJ1bnMgY2FsbGJhY2sgZnVuY3Rpb25zXG5cdCAgdmFyIGZpcmVGdW5jdGlvbnMgPSBmdW5jdGlvbiBmaXJlRnVuY3Rpb25zKHR5cGUpIHtcblx0ICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBmdW5jdGlvbkxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0ICAgICAgaWYgKGZ1bmN0aW9uTGlzdFtpXS50eXBlID09PSB0eXBlKSB7XG5cdCAgICAgICAgZnVuY3Rpb25MaXN0W2ldLmZuLmNhbGwodW5kZWZpbmVkLCB0eXBlID09PSAnaW5wdXQnID8gY3VycmVudElucHV0IDogY3VycmVudEludGVudCk7XG5cdCAgICAgIH1cblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLy8gZmluZHMgbWF0Y2hpbmcgZWxlbWVudCBpbiBhbiBvYmplY3Rcblx0ICB2YXIgb2JqUG9zID0gZnVuY3Rpb24gb2JqUG9zKG1hdGNoKSB7XG5cdCAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gZnVuY3Rpb25MaXN0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG5cdCAgICAgIGlmIChmdW5jdGlvbkxpc3RbaV0uZm4gPT09IG1hdGNoKSB7XG5cdCAgICAgICAgcmV0dXJuIGk7XG5cdCAgICAgIH1cblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgdmFyIGRldGVjdFNjcm9sbGluZyA9IGZ1bmN0aW9uIGRldGVjdFNjcm9sbGluZyhldmVudCkge1xuXHQgICAgaWYgKG1vdXNlUG9zLnggIT09IGV2ZW50LnNjcmVlblggfHwgbW91c2VQb3MueSAhPT0gZXZlbnQuc2NyZWVuWSkge1xuXHQgICAgICBpc1Njcm9sbGluZyA9IGZhbHNlO1xuXG5cdCAgICAgIG1vdXNlUG9zLnggPSBldmVudC5zY3JlZW5YO1xuXHQgICAgICBtb3VzZVBvcy55ID0gZXZlbnQuc2NyZWVuWTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIGlzU2Nyb2xsaW5nID0gdHJ1ZTtcblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLy8gbWFudWFsIHZlcnNpb24gb2YgYGNsb3Nlc3QoKWBcblx0ICB2YXIgY2hlY2tDbG9zZXN0ID0gZnVuY3Rpb24gY2hlY2tDbG9zZXN0KGVsZW0sIHRhZykge1xuXHQgICAgdmFyIEVsZW1lbnRQcm90b3R5cGUgPSB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGU7XG5cblx0ICAgIGlmICghRWxlbWVudFByb3RvdHlwZS5tYXRjaGVzKSB7XG5cdCAgICAgIEVsZW1lbnRQcm90b3R5cGUubWF0Y2hlcyA9IEVsZW1lbnRQcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3IgfHwgRWxlbWVudFByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3I7XG5cdCAgICB9XG5cblx0ICAgIGlmICghRWxlbWVudFByb3RvdHlwZS5jbG9zZXN0KSB7XG5cdCAgICAgIGRvIHtcblx0ICAgICAgICBpZiAoZWxlbS5tYXRjaGVzKHRhZykpIHtcblx0ICAgICAgICAgIHJldHVybiBlbGVtO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGVsZW0gPSBlbGVtLnBhcmVudEVsZW1lbnQgfHwgZWxlbS5wYXJlbnROb2RlO1xuXHQgICAgICB9IHdoaWxlIChlbGVtICE9PSBudWxsICYmIGVsZW0ubm9kZVR5cGUgPT09IDEpO1xuXG5cdCAgICAgIHJldHVybiBudWxsO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgcmV0dXJuIGVsZW0uY2xvc2VzdCh0YWcpO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvKlxuXHQgICAqIGluaXRcblx0ICAgKi9cblxuXHQgIC8vIGRvbid0IHN0YXJ0IHNjcmlwdCB1bmxlc3MgYnJvd3NlciBjdXRzIHRoZSBtdXN0YXJkXG5cdCAgLy8gKGFsc28gcGFzc2VzIGlmIHBvbHlmaWxscyBhcmUgdXNlZClcblx0ICBpZiAoJ2FkZEV2ZW50TGlzdGVuZXInIGluIHdpbmRvdyAmJiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZikge1xuXHQgICAgc2V0VXAoKTtcblx0ICB9XG5cblx0ICAvKlxuXHQgICAqIGFwaVxuXHQgICAqL1xuXG5cdCAgcmV0dXJuIHtcblx0ICAgIC8vIHJldHVybnMgc3RyaW5nOiB0aGUgY3VycmVudCBpbnB1dCB0eXBlXG5cdCAgICAvLyBvcHQ6ICdpbnRlbnQnfCdpbnB1dCdcblx0ICAgIC8vICdpbnB1dCcgKGRlZmF1bHQpOiByZXR1cm5zIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBgZGF0YS13aGF0aW5wdXRgIGF0dHJpYnV0ZVxuXHQgICAgLy8gJ2ludGVudCc6IGluY2x1ZGVzIGBkYXRhLXdoYXRpbnRlbnRgIHZhbHVlIGlmIGl0J3MgZGlmZmVyZW50IHRoYW4gYGRhdGEtd2hhdGlucHV0YFxuXHQgICAgYXNrOiBmdW5jdGlvbiBhc2sob3B0KSB7XG5cdCAgICAgIHJldHVybiBvcHQgPT09ICdpbnRlbnQnID8gY3VycmVudEludGVudCA6IGN1cnJlbnRJbnB1dDtcblx0ICAgIH0sXG5cblx0ICAgIC8vIHJldHVybnMgc3RyaW5nOiB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCBvciBudWxsXG5cdCAgICBlbGVtZW50OiBmdW5jdGlvbiBlbGVtZW50KCkge1xuXHQgICAgICByZXR1cm4gY3VycmVudEVsZW1lbnQ7XG5cdCAgICB9LFxuXG5cdCAgICAvLyBvdmVyd3JpdGVzIGlnbm9yZWQga2V5cyB3aXRoIHByb3ZpZGVkIGFycmF5XG5cdCAgICBpZ25vcmVLZXlzOiBmdW5jdGlvbiBpZ25vcmVLZXlzKGFycikge1xuXHQgICAgICBpZ25vcmVNYXAgPSBhcnI7XG5cdCAgICB9LFxuXG5cdCAgICAvLyBvdmVyd3JpdGVzIHNwZWNpZmljIGNoYXIga2V5cyB0byB1cGRhdGUgb25cblx0ICAgIHNwZWNpZmljS2V5czogZnVuY3Rpb24gc3BlY2lmaWNLZXlzKGFycikge1xuXHQgICAgICBzcGVjaWZpY01hcCA9IGFycjtcblx0ICAgIH0sXG5cblx0ICAgIC8vIGF0dGFjaCBmdW5jdGlvbnMgdG8gaW5wdXQgYW5kIGludGVudCBcImV2ZW50c1wiXG5cdCAgICAvLyBmdW5jdDogZnVuY3Rpb24gdG8gZmlyZSBvbiBjaGFuZ2Vcblx0ICAgIC8vIGV2ZW50VHlwZTogJ2lucHV0J3wnaW50ZW50J1xuXHQgICAgcmVnaXN0ZXJPbkNoYW5nZTogZnVuY3Rpb24gcmVnaXN0ZXJPbkNoYW5nZShmbiwgZXZlbnRUeXBlKSB7XG5cdCAgICAgIGZ1bmN0aW9uTGlzdC5wdXNoKHtcblx0ICAgICAgICBmbjogZm4sXG5cdCAgICAgICAgdHlwZTogZXZlbnRUeXBlIHx8ICdpbnB1dCdcblx0ICAgICAgfSk7XG5cdCAgICB9LFxuXG5cdCAgICB1blJlZ2lzdGVyT25DaGFuZ2U6IGZ1bmN0aW9uIHVuUmVnaXN0ZXJPbkNoYW5nZShmbikge1xuXHQgICAgICB2YXIgcG9zaXRpb24gPSBvYmpQb3MoZm4pO1xuXG5cdCAgICAgIGlmIChwb3NpdGlvbiB8fCBwb3NpdGlvbiA9PT0gMCkge1xuXHQgICAgICAgIGZ1bmN0aW9uTGlzdC5zcGxpY2UocG9zaXRpb24sIDEpO1xuXHQgICAgICB9XG5cdCAgICB9LFxuXG5cdCAgICBjbGVhclN0b3JhZ2U6IGZ1bmN0aW9uIGNsZWFyU3RvcmFnZSgpIHtcblx0ICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG5cdCAgICB9XG5cdCAgfTtcblx0fSgpO1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSlcbn0pO1xuOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///474\n")}},__webpack_module_cache__={};function __webpack_require__(n){var e=__webpack_module_cache__[n];if(void 0!==e)return e.exports;var t=__webpack_module_cache__[n]={exports:{}};return __webpack_modules__[n].call(t.exports,t,t.exports,__webpack_require__),t.exports}__webpack_require__.d=(n,e)=>{for(var t in e)__webpack_require__.o(e,t)&&!__webpack_require__.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:e[t]})},__webpack_require__.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),__webpack_require__.r=n=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(45);QPPStyle=__webpack_exports__})();
1
+ var QPPStyle;(()=>{var __webpack_modules__={368:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n "Portal": () => (/* binding */ Portal),\n "default": () => (/* binding */ reach_portal_esm)\n});\n\n// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js + 2 modules\nvar compat_module = __webpack_require__(776);\n// EXTERNAL MODULE: ./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js\nvar reach_utils_use_isomorphic_layout_effect_esm = __webpack_require__(637);\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/use-force-update/dist/reach-utils-use-force-update.esm.js\n\n\n/**\n * Forces a re-render, similar to `forceUpdate` in class components.\n */\n\nfunction useForceUpdate() {\n var _useState = (0,compat_module.useState)(Object.create(null)),\n dispatch = _useState[1];\n\n return (0,compat_module.useCallback)(function () {\n dispatch(Object.create(null));\n }, []);\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/portal/dist/reach-portal.esm.js\n\n\n\n\n\n\n/**\n * Welcome to @reach/portal!\n *\n * Creates and appends a DOM node to the end of `document.body` and renders a\n * React tree into it. Useful for rendering a natural React element hierarchy\n * with a different DOM hierarchy to prevent parent styles from clipping or\n * hiding content (for popovers, dropdowns, and modals).\n *\n * @see Docs https://reach.tech/portal\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/portal\n * @see React https://reactjs.org/docs/portals.html\n */\n/**\n * Portal\n *\n * @see Docs https://reach.tech/portal#portal\n */\n\nvar Portal = function Portal(_ref) {\n var children = _ref.children,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? "reach-portal" : _ref$type,\n containerRef = _ref.containerRef;\n var mountNode = (0,compat_module.useRef)(null);\n var portalNode = (0,compat_module.useRef)(null);\n var forceUpdate = useForceUpdate();\n\n if (false) {}\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.L)(function () {\n // This ref may be null when a hot-loader replaces components on the page\n if (!mountNode.current) return; // It\'s possible that the content of the portal has, itself, been portaled.\n // In that case, it\'s important to append to the correct document element.\n\n var ownerDocument = mountNode.current.ownerDocument;\n var body = (containerRef == null ? void 0 : containerRef.current) || ownerDocument.body;\n portalNode.current = ownerDocument == null ? void 0 : ownerDocument.createElement(type);\n body.appendChild(portalNode.current);\n forceUpdate();\n return function () {\n if (portalNode.current && body) {\n body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate, containerRef]);\n return portalNode.current ? /*#__PURE__*/(0,compat_module.createPortal)(children, portalNode.current) : /*#__PURE__*/(0,compat_module.createElement)("span", {\n ref: mountNode\n });\n};\n/**\n * @see Docs https://reach.tech/portal#portal-props\n */\n\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_portal_esm = (Portal);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzY4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQThDOztBQUU5QztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0IsMEJBQVE7QUFDMUI7O0FBRUEsU0FBUyw2QkFBVztBQUNwQjtBQUNBLEdBQUc7QUFDSDs7QUFFMEI7OztBQ2YrQjtBQUM2QjtBQUN2QjtBQUN0QjtBQUNOOztBQUVuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0JBQU07QUFDeEIsbUJBQW1CLHdCQUFNO0FBQ3pCLG9CQUFvQixjQUFjOztBQUVsQyxNQUFNLEtBQXFDLEVBQUUsRUFRMUM7O0FBRUgsRUFBRSxpRkFBeUI7QUFDM0I7QUFDQSxvQ0FBb0M7QUFDcEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsMkNBQTJDLDhCQUFZLDhDQUE4QywrQkFBYTtBQUNsSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7O0FBR0EsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7O0FBRUYsdURBQWUsTUFBTSxFQUFDO0FBQ0oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdXNlLWZvcmNlLXVwZGF0ZS9kaXN0L3JlYWNoLXV0aWxzLXVzZS1mb3JjZS11cGRhdGUuZXNtLmpzPzY5MWIiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3BvcnRhbC9kaXN0L3JlYWNoLXBvcnRhbC5lc20uanM/ZGRjOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5cbi8qKlxuICogRm9yY2VzIGEgcmUtcmVuZGVyLCBzaW1pbGFyIHRvIGBmb3JjZVVwZGF0ZWAgaW4gY2xhc3MgY29tcG9uZW50cy5cbiAqL1xuXG5mdW5jdGlvbiB1c2VGb3JjZVVwZGF0ZSgpIHtcbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKE9iamVjdC5jcmVhdGUobnVsbCkpLFxuICAgICAgZGlzcGF0Y2ggPSBfdXNlU3RhdGVbMV07XG5cbiAgcmV0dXJuIHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICBkaXNwYXRjaChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAgfSwgW10pO1xufVxuXG5leHBvcnQgeyB1c2VGb3JjZVVwZGF0ZSB9O1xuIiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QsIGNyZWF0ZUVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJlYWNoL3V0aWxzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgdXNlRm9yY2VVcGRhdGUgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWZvcmNlLXVwZGF0ZSc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHdhcm5pbmcgZnJvbSAndGlueS13YXJuaW5nJztcblxuLyoqXG4gKiBXZWxjb21lIHRvIEByZWFjaC9wb3J0YWwhXG4gKlxuICogQ3JlYXRlcyBhbmQgYXBwZW5kcyBhIERPTSBub2RlIHRvIHRoZSBlbmQgb2YgYGRvY3VtZW50LmJvZHlgIGFuZCByZW5kZXJzIGFcbiAqIFJlYWN0IHRyZWUgaW50byBpdC4gVXNlZnVsIGZvciByZW5kZXJpbmcgYSBuYXR1cmFsIFJlYWN0IGVsZW1lbnQgaGllcmFyY2h5XG4gKiB3aXRoIGEgZGlmZmVyZW50IERPTSBoaWVyYXJjaHkgdG8gcHJldmVudCBwYXJlbnQgc3R5bGVzIGZyb20gY2xpcHBpbmcgb3JcbiAqIGhpZGluZyBjb250ZW50IChmb3IgcG9wb3ZlcnMsIGRyb3Bkb3ducywgYW5kIG1vZGFscykuXG4gKlxuICogQHNlZSBEb2NzICAgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbFxuICogQHNlZSBTb3VyY2UgaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL3RyZWUvbWFpbi9wYWNrYWdlcy9wb3J0YWxcbiAqIEBzZWUgUmVhY3QgIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9wb3J0YWxzLmh0bWxcbiAqL1xuLyoqXG4gKiBQb3J0YWxcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbCNwb3J0YWxcbiAqL1xuXG52YXIgUG9ydGFsID0gZnVuY3Rpb24gUG9ydGFsKF9yZWYpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbixcbiAgICAgIF9yZWYkdHlwZSA9IF9yZWYudHlwZSxcbiAgICAgIHR5cGUgPSBfcmVmJHR5cGUgPT09IHZvaWQgMCA/IFwicmVhY2gtcG9ydGFsXCIgOiBfcmVmJHR5cGUsXG4gICAgICBjb250YWluZXJSZWYgPSBfcmVmLmNvbnRhaW5lclJlZjtcbiAgdmFyIG1vdW50Tm9kZSA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHBvcnRhbE5vZGUgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBmb3JjZVVwZGF0ZSA9IHVzZUZvcmNlVXBkYXRlKCk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoY29udGFpbmVyUmVmICE9IG51bGwpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyh0eXBlb2YgY29udGFpbmVyUmVmID09PSBcIm9iamVjdFwiICYmIFwiY3VycmVudFwiIGluIGNvbnRhaW5lclJlZiwgXCJAcmVhY2gvcG9ydGFsOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCB0byB0aGUgYGNvbnRhaW5lclJlZmAgb2YgYSBcIiArIFwiYFBvcnRhbGAuIFRoZSBwb3J0YWwgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZG9jdW1lbnQgYm9keSwgYnV0IGlmIFwiICsgXCJ5b3Ugd2FudCB0byBhdHRhY2ggaXQgdG8gYW5vdGhlciBET00gbm9kZSB5b3UgbXVzdCBwYXNzIGEgdmFsaWQgXCIgKyBcIlJlYWN0IHJlZiBvYmplY3QgdG8gYGNvbnRhaW5lclJlZmAuXCIpIDogdm9pZCAwO1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKGNvbnRhaW5lclJlZiA/IGNvbnRhaW5lclJlZi5jdXJyZW50ICE9IG51bGwgOiB0cnVlLCBcIkByZWFjaC9wb3J0YWw6IEEgcmVmIHdhcyBwYXNzZWQgdG8gdGhlIGBjb250YWluZXJSZWZgIHByb3Agb2YgYSBcIiArIFwiYFBvcnRhbGAsIGJ1dCBubyBET00gbm9kZSB3YXMgYXR0YWNoZWQgdG8gaXQuIEJlIHN1cmUgdG8gcGFzcyB0aGUgXCIgKyBcInJlZiB0byBhIERPTSBjb21wb25lbnQuXFxuXFxuSWYgeW91IGFyZSBmb3J3YXJkaW5nIHRoZSByZWYgZnJvbSBcIiArIFwiYW5vdGhlciBjb21wb25lbnQsIGJlIHN1cmUgdG8gdXNlIHRoZSBSZWFjdC5mb3J3YXJkUmVmIEFQSS4gXCIgKyBcIlNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvZm9yd2FyZGluZy1yZWZzLmh0bWwuXCIpIDogdm9pZCAwO1xuICAgICAgfVxuICAgIH0sIFtjb250YWluZXJSZWZdKTtcbiAgfVxuXG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIC8vIFRoaXMgcmVmIG1heSBiZSBudWxsIHdoZW4gYSBob3QtbG9hZGVyIHJlcGxhY2VzIGNvbXBvbmVudHMgb24gdGhlIHBhZ2VcbiAgICBpZiAoIW1vdW50Tm9kZS5jdXJyZW50KSByZXR1cm47IC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgY29udGVudCBvZiB0aGUgcG9ydGFsIGhhcywgaXRzZWxmLCBiZWVuIHBvcnRhbGVkLlxuICAgIC8vIEluIHRoYXQgY2FzZSwgaXQncyBpbXBvcnRhbnQgdG8gYXBwZW5kIHRvIHRoZSBjb3JyZWN0IGRvY3VtZW50IGVsZW1lbnQuXG5cbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IG1vdW50Tm9kZS5jdXJyZW50Lm93bmVyRG9jdW1lbnQ7XG4gICAgdmFyIGJvZHkgPSAoY29udGFpbmVyUmVmID09IG51bGwgPyB2b2lkIDAgOiBjb250YWluZXJSZWYuY3VycmVudCkgfHwgb3duZXJEb2N1bWVudC5ib2R5O1xuICAgIHBvcnRhbE5vZGUuY3VycmVudCA9IG93bmVyRG9jdW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlKTtcbiAgICBib2R5LmFwcGVuZENoaWxkKHBvcnRhbE5vZGUuY3VycmVudCk7XG4gICAgZm9yY2VVcGRhdGUoKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHBvcnRhbE5vZGUuY3VycmVudCAmJiBib2R5KSB7XG4gICAgICAgIGJvZHkucmVtb3ZlQ2hpbGQocG9ydGFsTm9kZS5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbdHlwZSwgZm9yY2VVcGRhdGUsIGNvbnRhaW5lclJlZl0pO1xuICByZXR1cm4gcG9ydGFsTm9kZS5jdXJyZW50ID8gLyojX19QVVJFX18qL2NyZWF0ZVBvcnRhbChjaGlsZHJlbiwgcG9ydGFsTm9kZS5jdXJyZW50KSA6IC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgcmVmOiBtb3VudE5vZGVcbiAgfSk7XG59O1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbCNwb3J0YWwtcHJvcHNcbiAqL1xuXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgUG9ydGFsLmRpc3BsYXlOYW1lID0gXCJQb3J0YWxcIjtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGRlZmF1bHQgUG9ydGFsO1xuZXhwb3J0IHsgUG9ydGFsIH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///368\n')},456:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n "LEAVE_TIMEOUT": () => (/* binding */ LEAVE_TIMEOUT),\n "MOUSE_REST_TIMEOUT": () => (/* binding */ MOUSE_REST_TIMEOUT),\n "Tooltip": () => (/* binding */ Tooltip),\n "TooltipPopup": () => (/* binding */ TooltipPopup),\n "default": () => (/* binding */ reach_tooltip_esm),\n "positionTooltip": () => (/* binding */ positionTooltip),\n "useTooltip": () => (/* binding */ useTooltip)\n});\n\n// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js + 2 modules\nvar compat_module = __webpack_require__(776);\n// EXTERNAL MODULE: ./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js\nvar reach_utils_use_isomorphic_layout_effect_esm = __webpack_require__(637);\n;// CONCATENATED MODULE: ./node_modules/@reach/auto-id/dist/reach-auto-id.esm.js\n\n\n\n/*\n * Welcome to @reach/auto-id!\n\n * Let\'s see if we can make sense of why this hook exists and its\n * implementation.\n *\n * Some background:\n * 1. Accessibility APIs rely heavily on element IDs\n * 2. Requiring developers to put IDs on every element in Reach UI is both\n * cumbersome and error-prone\n * 3. With a component model, we can generate IDs for them!\n *\n * Solution 1: Generate random IDs.\n *\n * This works great as long as you don\'t server render your app. When React (in\n * the client) tries to reuse the markup from the server, the IDs won\'t match\n * and React will then recreate the entire DOM tree.\n *\n * Solution 2: Increment an integer\n *\n * This sounds great. Since we\'re rendering the exact same tree on the server\n * and client, we can increment a counter and get a deterministic result between\n * client and server. Also, JS integers can go up to nine-quadrillion. I\'m\n * pretty sure the tab will be closed before an app never needs\n * 10 quadrillion IDs!\n *\n * Problem solved, right?\n *\n * Ah, but there\'s a catch! React\'s concurrent rendering makes this approach\n * non-deterministic. While the client and server will end up with the same\n * elements in the end, depending on suspense boundaries (and possibly some user\n * input during the initial render) the incrementing integers won\'t always match\n * up.\n *\n * Solution 3: Don\'t use IDs at all on the server; patch after first render.\n *\n * What we\'ve done here is solution 2 with some tricks. With this approach, the\n * ID returned is an empty string on the first render. This way the server and\n * client have the same markup no matter how wild the concurrent rendering may\n * have gotten.\n *\n * After the render, we patch up the components with an incremented ID. This\n * causes a double render on any components with `useId`. Shouldn\'t be a problem\n * since the components using this hook should be small, and we\'re only updating\n * the ID attribute on the DOM, nothing big is happening.\n *\n * It doesn\'t have to be an incremented number, though--we could do generate\n * random strings instead, but incrementing a number is probably the cheapest\n * thing we can do.\n *\n * Additionally, we only do this patchup on the very first client render ever.\n * Any calls to `useId` that happen dynamically in the client will be\n * populated immediately with a value. So, we only get the double render after\n * server hydration and never again, SO BACK OFF ALRIGHT?\n */\nvar serverHandoffComplete = false;\nvar id = 0;\n\nvar genId = function genId() {\n return ++id;\n};\n/**\n * useId\n *\n * Autogenerate IDs to facilitate WAI-ARIA and server rendering.\n *\n * Note: The returned ID will initially be `null` and will update after a\n * component mounts. Users may need to supply their own ID if they need\n * consistent values for SSR.\n *\n * @see Docs https://reach.tech/auto-id\n */\n\n\nfunction useId(idFromProps) {\n /*\n * If this instance isn\'t part of the initial render, we don\'t have to do the\n * double render/patch-up dance. We can just generate the ID and return it.\n */\n var initialId = idFromProps || (serverHandoffComplete ? genId() : null);\n\n var _React$useState = (0,compat_module.useState)(initialId),\n id = _React$useState[0],\n setId = _React$useState[1];\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.L)(function () {\n if (id === null) {\n /*\n * Patch the ID after render. We do this in `useLayoutEffect` to avoid any\n * rendering flicker, though it\'ll make the first render slower (unlikely\n * to matter, but you\'re welcome to measure your app and let us know if\n * it\'s a problem).\n */\n setId(genId());\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n (0,compat_module.useEffect)(function () {\n if (serverHandoffComplete === false) {\n /*\n * Flag all future uses of `useId` to skip the update dance. This is in\n * `useEffect` because it goes after `useLayoutEffect`, ensuring we don\'t\n * accidentally bail out of the patch-up dance prematurely.\n */\n serverHandoffComplete = true;\n }\n }, []);\n return id != null ? String(id) : undefined;\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/@reach/utils/can-use-dom/dist/reach-utils-can-use-dom.esm.js\nvar reach_utils_can_use_dom_esm = __webpack_require__(769);\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/owner-document/dist/reach-utils-owner-document.esm.js\n\n\n/**\n * Get an element\'s owner document. Useful when components are used in iframes\n * or other environments like dev tools.\n *\n * @param element\n */\n\nfunction getOwnerDocument(element) {\n return (0,reach_utils_can_use_dom_esm/* canUseDOM */.N)() ? element ? element.ownerDocument : document : null;\n}\n/**\n * TODO: Remove in 1.0\n */\n\nfunction getOwnerWindow(element) {\n var ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/get-document-dimensions/dist/reach-utils-get-document-dimensions.esm.js\n\n\n\n/**\n * Get the size of the working document minus the scrollbar offset.\n *\n * @param element\n */\n\nfunction getDocumentDimensions(element) {\n var _ownerDocument$docume, _ownerDocument$docume2;\n\n var ownerDocument = getOwnerDocument(element);\n var ownerWindow = ownerDocument.defaultView || window;\n\n if (!ownerDocument) {\n return {\n width: 0,\n height: 0\n };\n }\n\n return {\n width: (_ownerDocument$docume = ownerDocument.documentElement.clientWidth) != null ? _ownerDocument$docume : ownerWindow.innerWidth,\n height: (_ownerDocument$docume2 = ownerDocument.documentElement.clientHeight) != null ? _ownerDocument$docume2 : ownerWindow.innerHeight\n };\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/make-id/dist/reach-utils-make-id.esm.js\n/**\n * Joins strings to format IDs for compound components.\n *\n * @param args\n */\nfunction makeId() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.filter(function (val) {\n return val != null;\n }).join("--");\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/dev-utils/dist/reach-utils-dev-utils.esm.js\n\n\n/* eslint-disable react-hooks/rules-of-hooks */\nvar checkedPkgs = {};\n/**\n * Just a lil state logger\n *\n * @param state\n * @param DEBUG\n */\n\nfunction useStateLogger(state, DEBUG) {\n if (DEBUG === void 0) {\n DEBUG = false;\n }\n\n if (false) { var debugRef; }\n}\n/**\n * When in dev mode, checks that styles for a given `@reach` package are loaded.\n *\n * @param packageName Name of the package to check.\n * @example checkStyles("dialog") will check for styles for @reach/dialog\n */\n\nfunction checkStyles(packageName) {\n if (false) { var _ref, environment; }\n}\n/**\n * When in dev mode, checks that styles for a given `@reach` package are loaded.\n *\n * @param packageName Name of the package to check.\n * @example useCheckStyles("dialog") will check for styles for @reach/dialog\n */\n\nfunction useCheckStyles(packageName) {\n if (false) { var name; }\n}\n/**\n * Logs a warning in dev mode when a component switches from controlled to\n * uncontrolled, or vice versa\n *\n * A single prop should typically be used to determine whether or not a\n * component is controlled or not.\n *\n * @param controlledValue\n * @param controlledPropName\n * @param componentName\n */\n\nfunction useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n if (false) { var nameCache, controlledRef; }\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/type-check/dist/reach-utils-type-check.esm.js\n/**\n * Checks whether or not a value is a boolean.\n *\n * @param value\n */\nfunction isBoolean(value) {\n return typeof value === "boolean";\n}\n/**\n * Checks whether or not a value is a function.\n *\n * @param value\n */\n\nfunction isFunction(value) {\n // eslint-disable-next-line eqeqeq\n return !!(value && {}.toString.call(value) == "[object Function]");\n}\n/**\n * Checks whether or not a value is a number.\n *\n * @param value\n */\n\nfunction isNumber(value) {\n return typeof value === "number" && !isNaN(value);\n}\n/**\n * Checks whether or not a value is a string.\n *\n * @param value\n */\n\nfunction isString(value) {\n return typeof value === "string";\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/compose-refs/dist/reach-utils-compose-refs.esm.js\n\n\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\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(o);\n if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\n/**\n * Passes or assigns an arbitrary value to a ref function or object.\n *\n * @param ref\n * @param value\n */\nfunction assignRef(ref, value) {\n if (ref == null) return;\n\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error("Cannot assign value \\"" + value + "\\" to ref \\"" + ref + "\\"");\n }\n }\n}\n/**\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\n * dealing with components that need an explicit ref for DOM calculations but\n * also forwards refs assigned by an app.\n *\n * @param refs Refs to fork\n */\n\nfunction useComposedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return (0,compat_module.useCallback)(function (node) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n assignRef(ref, node);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, refs);\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/compose-event-handlers/dist/reach-utils-compose-event-handlers.esm.js\n/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return function (event) {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/@reach/portal/dist/reach-portal.esm.js + 1 modules\nvar reach_portal_esm = __webpack_require__(368);\n;// CONCATENATED MODULE: ./node_modules/@reach/visually-hidden/dist/reach-visually-hidden.esm.js\n\n\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = ["as", "style"];\n\n/**\n * VisuallyHidden\n *\n * Provides text for screen readers that is visually hidden.\n * It is the logical opposite of the `aria-hidden` attribute.\n */\nvar VisuallyHidden = /*#__PURE__*/(0,compat_module.forwardRef)(function VisuallyHidden(_ref, ref) {\n var _ref$as = _ref.as,\n Comp = _ref$as === void 0 ? "span" : _ref$as,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/(0,compat_module.createElement)(Comp, _extends({\n ref: ref,\n style: _extends({\n border: 0,\n clip: "rect(0 0 0 0)",\n height: "1px",\n margin: "-1px",\n overflow: "hidden",\n padding: 0,\n position: "absolute",\n width: "1px",\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: "nowrap",\n wordWrap: "normal"\n }, style)\n }, props));\n});\n/**\n * @see Docs https://reach.tech/visually-hidden#visuallyhidden-props\n */\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_visually_hidden_esm = ((/* unused pure expression or super */ null && (VisuallyHidden)));\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/observe-rect/dist/observe-rect.esm.js\nvar props = ["bottom", "height", "left", "right", "top", "width"];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes = /*#__PURE__*/new Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\n/* harmony default export */ const observe_rect_esm = (observeRect);\n//# sourceMappingURL=observe-rect.esm.js.map\n\n;// CONCATENATED MODULE: ./node_modules/@reach/rect/dist/reach-rect.esm.js\n\n\n\n\n\n\n\n/**\n * Welcome to @reach/rect!\n *\n * Measures DOM elements (aka. bounding client rect).\n *\n * @see getBoundingClientRect https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect\n * @see Docs https://reach.tech/rect\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/rect\n */\n\n/**\n * Rect\n *\n * @param props\n */\n\nvar Rect = function Rect(_ref) {\n var onChange = _ref.onChange,\n _ref$observe = _ref.observe,\n observe = _ref$observe === void 0 ? true : _ref$observe,\n children = _ref.children;\n var ref = useRef(null);\n var rect = useRect(ref, {\n observe: observe,\n onChange: onChange\n });\n return children({\n ref: ref,\n rect: rect\n });\n};\n/**\n * @see Docs https://reach.tech/rect#rect-props\n */\n\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n\n/**\n * useRect\n *\n * @param nodeRef\n * @param observe\n * @param onChange\n */\nfunction useRect(nodeRef, observeOrOptions, deprecated_onChange) {\n var observe;\n var onChange;\n\n if (isBoolean(observeOrOptions)) {\n observe = observeOrOptions;\n } else {\n var _observeOrOptions$obs;\n\n observe = (_observeOrOptions$obs = observeOrOptions == null ? void 0 : observeOrOptions.observe) != null ? _observeOrOptions$obs : true;\n onChange = observeOrOptions == null ? void 0 : observeOrOptions.onChange;\n }\n\n if (isFunction(deprecated_onChange)) {\n onChange = deprecated_onChange;\n }\n\n if (false) {}\n\n var _React$useState = (0,compat_module.useState)(nodeRef.current),\n element = _React$useState[0],\n setElement = _React$useState[1];\n\n var initialRectIsSet = (0,compat_module.useRef)(false);\n var initialRefIsSet = (0,compat_module.useRef)(false);\n\n var _React$useState2 = (0,compat_module.useState)(null),\n rect = _React$useState2[0],\n setRect = _React$useState2[1];\n\n var onChangeRef = (0,compat_module.useRef)(onChange); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.L)(function () {\n onChangeRef.current = onChange;\n\n if (nodeRef.current !== element) {\n setElement(nodeRef.current);\n }\n });\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.L)(function () {\n if (element && !initialRectIsSet.current) {\n initialRectIsSet.current = true;\n setRect(element.getBoundingClientRect());\n }\n }, [element]);\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.L)(function () {\n if (!observe) {\n return;\n }\n\n var elem = element; // State initializes before refs are placed, meaning the element state will\n // be undefined on the first render. We still want the rect on the first\n // render, so initially we\'ll use the nodeRef that was passed instead of\n // state for our measurements.\n\n if (!initialRefIsSet.current) {\n initialRefIsSet.current = true;\n elem = nodeRef.current;\n }\n\n if (!elem) {\n if (false) {}\n\n return;\n }\n\n var observer = observe_rect_esm(elem, function (rect) {\n onChangeRef.current == null ? void 0 : onChangeRef.current(rect);\n setRect(rect);\n });\n observer.observe();\n return function () {\n observer.unobserve();\n };\n }, [observe, element, nodeRef]);\n return rect;\n}\n\n/* harmony default export */ const reach_rect_esm = ((/* unused pure expression or super */ null && (Rect)));\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/tooltip/dist/reach-tooltip.esm.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction reach_tooltip_esm_extends() {\n reach_tooltip_esm_extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return reach_tooltip_esm_extends.apply(this, arguments);\n}\n\nfunction reach_tooltip_esm_objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar reach_tooltip_esm_excluded = ["children", "label", "ariaLabel", "id", "DEBUG_STYLE"],\n _excluded2 = ["label", "ariaLabel", "isVisible", "id"],\n _excluded3 = ["ariaLabel", "aria-label", "as", "id", "isVisible", "label", "position", "style", "triggerRect"],\n _excluded4 = ["type"];\n\nvar _on, _on2, _on3, _on4, _on5, _states;\nvar MOUSE_REST_TIMEOUT = 100;\nvar LEAVE_TIMEOUT = 500; ////////////////////////////////////////////////////////////////////////////////\n// States\n\nvar TooltipStates; ////////////////////////////////////////////////////////////////////////////////\n// Events\n\n(function (TooltipStates) {\n TooltipStates["Idle"] = "IDLE";\n TooltipStates["Focused"] = "FOCUSED";\n TooltipStates["Visible"] = "VISIBLE";\n TooltipStates["LeavingVisible"] = "LEAVING_VISIBLE";\n TooltipStates["Dismissed"] = "DISMISSED";\n})(TooltipStates || (TooltipStates = {}));\n\nvar TooltipEvents;\n\n(function (TooltipEvents) {\n TooltipEvents["Blur"] = "BLUR";\n TooltipEvents["Focus"] = "FOCUS";\n TooltipEvents["GlobalMouseMove"] = "GLOBAL_MOUSE_MOVE";\n TooltipEvents["MouseDown"] = "MOUSE_DOWN";\n TooltipEvents["MouseEnter"] = "MOUSE_ENTER";\n TooltipEvents["MouseLeave"] = "MOUSE_LEAVE";\n TooltipEvents["MouseMove"] = "MOUSE_MOVE";\n TooltipEvents["Rest"] = "REST";\n TooltipEvents["SelectWithKeyboard"] = "SELECT_WITH_KEYBOARD";\n TooltipEvents["TimeComplete"] = "TIME_COMPLETE";\n})(TooltipEvents || (TooltipEvents = {}));\n\nvar chart = {\n initial: TooltipStates.Idle,\n states: (_states = {}, _states[TooltipStates.Idle] = {\n enter: clearContextId,\n on: (_on = {}, _on[TooltipEvents.MouseEnter] = TooltipStates.Focused, _on[TooltipEvents.Focus] = TooltipStates.Visible, _on)\n }, _states[TooltipStates.Focused] = {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: (_on2 = {}, _on2[TooltipEvents.MouseMove] = TooltipStates.Focused, _on2[TooltipEvents.MouseLeave] = TooltipStates.Idle, _on2[TooltipEvents.MouseDown] = TooltipStates.Dismissed, _on2[TooltipEvents.Blur] = TooltipStates.Idle, _on2[TooltipEvents.Rest] = TooltipStates.Visible, _on2)\n }, _states[TooltipStates.Visible] = {\n on: (_on3 = {}, _on3[TooltipEvents.Focus] = TooltipStates.Focused, _on3[TooltipEvents.MouseEnter] = TooltipStates.Focused, _on3[TooltipEvents.MouseLeave] = TooltipStates.LeavingVisible, _on3[TooltipEvents.Blur] = TooltipStates.LeavingVisible, _on3[TooltipEvents.MouseDown] = TooltipStates.Dismissed, _on3[TooltipEvents.SelectWithKeyboard] = TooltipStates.Dismissed, _on3[TooltipEvents.GlobalMouseMove] = TooltipStates.LeavingVisible, _on3)\n }, _states[TooltipStates.LeavingVisible] = {\n enter: startLeavingVisibleTimer,\n leave: function leave() {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: (_on4 = {}, _on4[TooltipEvents.MouseEnter] = TooltipStates.Visible, _on4[TooltipEvents.Focus] = TooltipStates.Visible, _on4[TooltipEvents.TimeComplete] = TooltipStates.Idle, _on4)\n }, _states[TooltipStates.Dismissed] = {\n leave: function leave() {\n clearContextId();\n },\n on: (_on5 = {}, _on5[TooltipEvents.MouseLeave] = TooltipStates.Idle, _on5[TooltipEvents.Blur] = TooltipStates.Idle, _on5)\n }, _states)\n};\n/*\n * Chart context allows us to persist some data around, in Tooltip all we use\n * is the id of the current tooltip being interacted with.\n */\n\nvar state = {\n value: chart.initial,\n context: {\n id: null\n }\n}; ////////////////////////////////////////////////////////////////////////////////\n// Subscriptions:\n//\n// We could require apps to render a <TooltipProvider> around the app and use\n// React context to notify Tooltips of changes to our state machine, instead\n// we manage subscriptions ourselves and simplify the Tooltip API.\n//\n// Maybe if default context could take a hook (instead of just a static value)\n// that was rendered at the root for us, that\'d be cool! But it doesn\'t.\n\nvar subscriptions = [];\n\nfunction subscribe(fn) {\n subscriptions.push(fn);\n return function () {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n}\n\nfunction notify() {\n subscriptions.forEach(function (fn) {\n return fn(state);\n });\n} ////////////////////////////////////////////////////////////////////////////////\n// Timeouts:\n// Manages when the user "rests" on an element. Keeps the interface from being\n// flashing tooltips all the time as the user moves the mouse around the screen.\n\n\nvar restTimeout;\n\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(function () {\n send({\n type: TooltipEvents.Rest\n });\n }, MOUSE_REST_TIMEOUT);\n}\n\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n} // Manages the delay to hide the tooltip after rest leaves.\n\n\nvar leavingVisibleTimer;\n\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(function () {\n return send({\n type: TooltipEvents.TimeComplete\n });\n }, LEAVE_TIMEOUT);\n}\n\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n} // allows us to come on back later w/o entering something else first after the\n// user leaves or dismisses\n\n\nfunction clearContextId() {\n state.context.id = null;\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * useTooltip\n *\n * @param params\n */\n\n\nfunction useTooltip(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n idProp = _ref.id,\n onPointerEnter = _ref.onPointerEnter,\n onPointerMove = _ref.onPointerMove,\n onPointerLeave = _ref.onPointerLeave,\n onPointerDown = _ref.onPointerDown,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onMouseDown = _ref.onMouseDown,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onKeyDown = _ref.onKeyDown,\n disabled = _ref.disabled,\n forwardedRef = _ref.ref,\n DEBUG_STYLE = _ref.DEBUG_STYLE;\n\n var id = String(useId(idProp));\n\n var _React$useState = (0,compat_module.useState)(DEBUG_STYLE ? true : isTooltipVisible(id, true)),\n isVisible = _React$useState[0],\n setIsVisible = _React$useState[1]; // hopefully they always pass a ref if they ever pass one\n\n\n var ownRef = (0,compat_module.useRef)(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var triggerRect = useRect(ownRef, {\n observe: isVisible\n });\n (0,compat_module.useEffect)(function () {\n return subscribe(function () {\n setIsVisible(isTooltipVisible(id));\n });\n }, [id]);\n useCheckStyles("tooltip");\n (0,compat_module.useEffect)(function () {\n var ownerDocument = getOwnerDocument(ownRef.current);\n\n function listener(event) {\n if ((event.key === "Escape" || event.key === "Esc") && state.value === TooltipStates.Visible) {\n send({\n type: TooltipEvents.SelectWithKeyboard\n });\n }\n }\n\n ownerDocument.addEventListener("keydown", listener);\n return function () {\n return ownerDocument.removeEventListener("keydown", listener);\n };\n }, []);\n useDisabledTriggerOnSafari({\n disabled: disabled,\n isVisible: isVisible,\n ref: ownRef\n });\n\n function wrapMouseEvent(theirHandler, ourHandler) {\n // Use internal MouseEvent handler only if PointerEvent is not supported\n if (typeof window !== "undefined" && "PointerEvent" in window) {\n return theirHandler;\n }\n\n return composeEventHandlers(theirHandler, ourHandler);\n }\n\n function wrapPointerEventHandler(handler) {\n return function onPointerEvent(event) {\n // Handle pointer events only from mouse device\n if (event.pointerType !== "mouse") {\n return;\n }\n\n handler(event);\n };\n }\n\n function handleMouseEnter() {\n send({\n type: TooltipEvents.MouseEnter,\n id: id\n });\n }\n\n function handleMouseMove() {\n send({\n type: TooltipEvents.MouseMove,\n id: id\n });\n }\n\n function handleMouseLeave() {\n send({\n type: TooltipEvents.MouseLeave\n });\n }\n\n function handleMouseDown() {\n // Allow quick click from one tool to another\n if (state.context.id === id) {\n send({\n type: TooltipEvents.MouseDown\n });\n }\n }\n\n function handleFocus() {\n // @ts-ignore\n if (window.__REACH_DISABLE_TOOLTIPS) {\n return;\n }\n\n send({\n type: TooltipEvents.Focus,\n id: id\n });\n }\n\n function handleBlur() {\n // Allow quick click from one tool to another\n if (state.context.id === id) {\n send({\n type: TooltipEvents.Blur\n });\n }\n }\n\n function handleKeyDown(event) {\n if (event.key === "Enter" || event.key === " ") {\n send({\n type: TooltipEvents.SelectWithKeyboard\n });\n }\n }\n\n var trigger = {\n // The element that triggers the tooltip references the tooltip element with\n // `aria-describedby`.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip\n "aria-describedby": isVisible ? makeId("tooltip", id) : undefined,\n "data-state": isVisible ? "tooltip-visible" : "tooltip-hidden",\n "data-reach-tooltip-trigger": "",\n ref: ref,\n onPointerEnter: composeEventHandlers(onPointerEnter, wrapPointerEventHandler(handleMouseEnter)),\n onPointerMove: composeEventHandlers(onPointerMove, wrapPointerEventHandler(handleMouseMove)),\n onPointerLeave: composeEventHandlers(onPointerLeave, wrapPointerEventHandler(handleMouseLeave)),\n onPointerDown: composeEventHandlers(onPointerDown, wrapPointerEventHandler(handleMouseDown)),\n onMouseEnter: wrapMouseEvent(onMouseEnter, handleMouseEnter),\n onMouseMove: wrapMouseEvent(onMouseMove, handleMouseMove),\n onMouseLeave: wrapMouseEvent(onMouseLeave, handleMouseLeave),\n onMouseDown: wrapMouseEvent(onMouseDown, handleMouseDown),\n onFocus: composeEventHandlers(onFocus, handleFocus),\n onBlur: composeEventHandlers(onBlur, handleBlur),\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown)\n };\n var tooltip = {\n id: id,\n triggerRect: triggerRect,\n isVisible: isVisible\n };\n return [trigger, tooltip, isVisible];\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Tooltip\n *\n * @see Docs https://reach.tech/tooltip#tooltip\n */\n\n\nvar Tooltip = /*#__PURE__*/(0,compat_module.forwardRef)(function (_ref2, forwardedRef) {\n var children = _ref2.children,\n label = _ref2.label,\n DEPRECATED_ariaLabel = _ref2.ariaLabel,\n id = _ref2.id,\n DEBUG_STYLE = _ref2.DEBUG_STYLE,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref2, reach_tooltip_esm_excluded);\n\n var child = compat_module.Children.only(children);\n false ? 0 : void 0; // We need to pass some properties from the child into useTooltip\n // to make sure users can maintain control over the trigger\'s ref and events\n\n var _useTooltip = useTooltip({\n id: id,\n onPointerEnter: child.props.onPointerEnter,\n onPointerMove: child.props.onPointerMove,\n onPointerLeave: child.props.onPointerLeave,\n onPointerDown: child.props.onPointerDown,\n onMouseEnter: child.props.onMouseEnter,\n onMouseMove: child.props.onMouseMove,\n onMouseLeave: child.props.onMouseLeave,\n onMouseDown: child.props.onMouseDown,\n onFocus: child.props.onFocus,\n onBlur: child.props.onBlur,\n onKeyDown: child.props.onKeyDown,\n disabled: child.props.disabled,\n ref: child.ref,\n DEBUG_STYLE: DEBUG_STYLE\n }),\n trigger = _useTooltip[0],\n tooltip = _useTooltip[1];\n\n return /*#__PURE__*/(0,compat_module.createElement)(compat_module.Fragment, null, /*#__PURE__*/(0,compat_module.cloneElement)(child, trigger), /*#__PURE__*/(0,compat_module.createElement)(TooltipPopup, reach_tooltip_esm_extends({\n ref: forwardedRef,\n label: label,\n "aria-label": DEPRECATED_ariaLabel\n }, tooltip, props)));\n});\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * TooltipPopup\n *\n * @see Docs https://reach.tech/tooltip#tooltippopup\n */\n\n\nvar TooltipPopup = /*#__PURE__*/(0,compat_module.forwardRef)(function TooltipPopup(_ref3, forwardRef) {\n var label = _ref3.label,\n DEPRECATED_ariaLabel = _ref3.ariaLabel,\n isVisible = _ref3.isVisible,\n id = _ref3.id,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref3, _excluded2);\n\n return isVisible ? /*#__PURE__*/(0,compat_module.createElement)(reach_portal_esm.Portal, null, /*#__PURE__*/(0,compat_module.createElement)(TooltipContent, reach_tooltip_esm_extends({\n ref: forwardRef,\n label: label,\n "aria-label": DEPRECATED_ariaLabel,\n isVisible: isVisible\n }, props, {\n id: makeId("tooltip", String(id))\n }))) : null;\n});\n\nif (false) {}\n/**\n * TooltipContent\n *\n * We need a separate component so that useRect works inside the portal.\n *\n * @see Docs https://reach.tech/tooltip#tooltipcontent\n */\n\n\nvar TooltipContent = /*#__PURE__*/(0,compat_module.forwardRef)(function TooltipContent(_ref4, forwardedRef) {\n var ariaLabel = _ref4.ariaLabel,\n realAriaLabel = _ref4["aria-label"],\n _ref4$as = _ref4.as,\n Comp = _ref4$as === void 0 ? "div" : _ref4$as,\n id = _ref4.id,\n isVisible = _ref4.isVisible,\n label = _ref4.label,\n _ref4$position = _ref4.position,\n position = _ref4$position === void 0 ? positionTooltip : _ref4$position,\n style = _ref4.style,\n triggerRect = _ref4.triggerRect,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref4, _excluded3);\n\n // The element that serves as the tooltip container has role tooltip.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip When an app passes\n // an `aria-label`, we actually want to implement `role="tooltip"` on a\n // visually hidden element inside of the trigger. In these cases we want the\n // screen reader user to know both the content in the tooltip, but also the\n // content in the badge. For screen reader users, the only content announced\n // to them is whatever is in the tooltip.\n var hasAriaLabel = (realAriaLabel || ariaLabel) != null;\n var ownRef = (0,compat_module.useRef)(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var tooltipRect = useRect(ownRef, {\n observe: isVisible\n });\n return /*#__PURE__*/(0,compat_module.createElement)(compat_module.Fragment, null, /*#__PURE__*/(0,compat_module.createElement)(Comp, reach_tooltip_esm_extends({\n role: hasAriaLabel ? undefined : "tooltip"\n }, props, {\n ref: ref,\n "data-reach-tooltip": "",\n id: hasAriaLabel ? undefined : id,\n style: reach_tooltip_esm_extends({}, style, getStyles(position, triggerRect, tooltipRect))\n }), label), hasAriaLabel && /*#__PURE__*/(0,compat_module.createElement)(VisuallyHidden, {\n role: "tooltip",\n id: id\n }, realAriaLabel || ariaLabel));\n});\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction getStyles(position, triggerRect, tooltipRect) {\n var haventMeasuredTooltipYet = !tooltipRect;\n\n if (haventMeasuredTooltipYet) {\n return {\n visibility: "hidden"\n };\n }\n\n return position(triggerRect, tooltipRect);\n} // Default offset from the trigger (e.g., if the tooltip is positioned above,\n// there will be 8px between the bottom of the tooltip and the top of the trigger).\n// It feels awkward when it\'s perfectly aligned w/ the trigger\n\n\nvar OFFSET_DEFAULT = 8;\nvar positionTooltip = function positionTooltip(triggerRect, tooltipRect, offset) {\n if (offset === void 0) {\n offset = OFFSET_DEFAULT;\n }\n\n var _getDocumentDimension = getDocumentDimensions(),\n windowWidth = _getDocumentDimension.width,\n windowHeight = _getDocumentDimension.height;\n\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n\n var collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n right: windowWidth < triggerRect.left + tooltipRect.width,\n bottom: windowHeight < triggerRect.bottom + tooltipRect.height + offset,\n left: triggerRect.left - tooltipRect.width < 0\n };\n var directionRight = collisions.right && !collisions.left;\n var directionUp = collisions.bottom && !collisions.top;\n return {\n left: directionRight ? triggerRect.right - tooltipRect.width + window.pageXOffset + "px" : triggerRect.left + window.pageXOffset + "px",\n top: directionUp ? triggerRect.top - offset - tooltipRect.height + window.pageYOffset + "px" : triggerRect.top + offset + triggerRect.height + window.pageYOffset + "px"\n };\n};\n/**\n * This is a workaround for using tooltips with disabled controls in Safari.\n * Safari fires `pointerenter` but does not fire `pointerleave`, and\n * `onPointerEventLeave` added to the trigger element will not work.\n *\n * TODO: We may remove or modiify this behavior in a future version. Direction\n * from WAI-ARIA needed for guidance on handling disabled triggers. Tooltips\n * must be accessible by keyboard, and disabled form controls are generally\n * excluded from the tab sequence.\n *\n * @see https://github.com/reach/reach-ui/issues/564\n * @see https://github.com/w3c/aria-practices/issues/128#issuecomment-588625727\n */\n\nfunction useDisabledTriggerOnSafari(_ref5) {\n var disabled = _ref5.disabled,\n isVisible = _ref5.isVisible,\n ref = _ref5.ref;\n (0,compat_module.useEffect)(function () {\n if (!(typeof window !== "undefined" && "PointerEvent" in window) || !disabled || !isVisible) {\n return;\n }\n\n var ownerDocument = getOwnerDocument(ref.current);\n\n function handleMouseMove(event) {\n if (!isVisible) {\n return;\n }\n\n if (event.target instanceof Element && event.target.closest("[data-reach-tooltip-trigger][data-state=\'tooltip-visible\']")) {\n return;\n }\n\n send({\n type: TooltipEvents.GlobalMouseMove\n });\n }\n\n ownerDocument.addEventListener("mousemove", handleMouseMove);\n return function () {\n ownerDocument.removeEventListener("mousemove", handleMouseMove);\n };\n }, [disabled, isVisible, ref]);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Send an event to our state machine to find the next state from the current\n * state + action.\n *\n * It also manages lifecycles of the machine, (enter/leave hooks on the state\n * chart)\n *\n * @param event\n * @param payload\n */\n\n\nfunction send(event) {\n var _transition = transition(state, event),\n value = _transition.value,\n context = _transition.context,\n changed = _transition.changed;\n\n if (changed) {\n state = {\n value: value,\n context: context\n };\n notify();\n }\n}\n\nfunction transition(currentState, event) {\n var stateDef = chart.states[currentState.value];\n var nextState = stateDef && stateDef.on && stateDef.on[event.type]; // Really useful for debugging\n // console.log({ event, state, nextState, contextId: context.id });\n // !nextState && console.log("no transition taken");\n\n if (!nextState) {\n return reach_tooltip_esm_extends({}, currentState, {\n changed: false\n });\n }\n\n if (stateDef && stateDef.leave) {\n stateDef.leave(currentState.context, event);\n }\n\n event.type;\n var payload = reach_tooltip_esm_objectWithoutPropertiesLoose(event, _excluded4); // TODO: Use actions instead of directly setting context\n\n\n var context = reach_tooltip_esm_extends({}, state.context, payload);\n\n var nextStateValue = typeof nextState === "string" ? nextState : nextState.target;\n var nextDef = chart.states[nextStateValue];\n\n if (nextDef && nextDef.enter) {\n nextDef.enter(currentState.context, event);\n }\n\n return {\n value: nextStateValue,\n context: context,\n changed: true\n };\n}\n\nfunction isTooltipVisible(id, initial) {\n return state.context.id === id && (initial ? state.value === TooltipStates.Visible : state.value === TooltipStates.Visible || state.value === TooltipStates.LeavingVisible);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_tooltip_esm = (Tooltip);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLDJCQUFTO0FBQ1g7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixnQkFBZ0I7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0VBQXNFO0FBQ3RFLG1CQUFtQixnREFBZ0Q7QUFDbkU7O0FBRUE7QUFDQSxXQUFXLHlCQUFRLEdBQUc7QUFDdEI7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLDhDQUE2QixxQkFBcUI7OztBQUd0RSxnQkFBZ0IseUJBQVEsR0FBRzs7QUFFM0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOztBQUVGLHdEQUFlLE9BQU8sRUFBQztBQUMwRSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC9hdXRvLWlkL2Rpc3QvcmVhY2gtYXV0by1pZC5lc20uanM/Mjg3YSIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvb3duZXItZG9jdW1lbnQvZGlzdC9yZWFjaC11dGlscy1vd25lci1kb2N1bWVudC5lc20uanM/YTc2YyIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvZ2V0LWRvY3VtZW50LWRpbWVuc2lvbnMvZGlzdC9yZWFjaC11dGlscy1nZXQtZG9jdW1lbnQtZGltZW5zaW9ucy5lc20uanM/NzlkOCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvbWFrZS1pZC9kaXN0L3JlYWNoLXV0aWxzLW1ha2UtaWQuZXNtLmpzP2Q4ODYiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2Rldi11dGlscy9kaXN0L3JlYWNoLXV0aWxzLWRldi11dGlscy5lc20uanM/NjViNSIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdHlwZS1jaGVjay9kaXN0L3JlYWNoLXV0aWxzLXR5cGUtY2hlY2suZXNtLmpzP2I4ZWEiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2NvbXBvc2UtcmVmcy9kaXN0L3JlYWNoLXV0aWxzLWNvbXBvc2UtcmVmcy5lc20uanM/YTYzMCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvY29tcG9zZS1ldmVudC1oYW5kbGVycy9kaXN0L3JlYWNoLXV0aWxzLWNvbXBvc2UtZXZlbnQtaGFuZGxlcnMuZXNtLmpzP2YxOWMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3Zpc3VhbGx5LWhpZGRlbi9kaXN0L3JlYWNoLXZpc3VhbGx5LWhpZGRlbi5lc20uanM/ZTk3NCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvb2JzZXJ2ZS1yZWN0L2Rpc3Qvb2JzZXJ2ZS1yZWN0LmVzbS5qcz80NGJhIiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC9yZWN0L2Rpc3QvcmVhY2gtcmVjdC5lc20uanM/Y2JmNyIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdG9vbHRpcC9kaXN0L3JlYWNoLXRvb2x0aXAuZXNtLmpzP2UyNjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5cbi8qXG4gKiBXZWxjb21lIHRvIEByZWFjaC9hdXRvLWlkIVxuXG4gKiBMZXQncyBzZWUgaWYgd2UgY2FuIG1ha2Ugc2Vuc2Ugb2Ygd2h5IHRoaXMgaG9vayBleGlzdHMgYW5kIGl0c1xuICogaW1wbGVtZW50YXRpb24uXG4gKlxuICogU29tZSBiYWNrZ3JvdW5kOlxuICogICAxLiBBY2Nlc3NpYmlsaXR5IEFQSXMgcmVseSBoZWF2aWx5IG9uIGVsZW1lbnQgSURzXG4gKiAgIDIuIFJlcXVpcmluZyBkZXZlbG9wZXJzIHRvIHB1dCBJRHMgb24gZXZlcnkgZWxlbWVudCBpbiBSZWFjaCBVSSBpcyBib3RoXG4gKiAgICAgIGN1bWJlcnNvbWUgYW5kIGVycm9yLXByb25lXG4gKiAgIDMuIFdpdGggYSBjb21wb25lbnQgbW9kZWwsIHdlIGNhbiBnZW5lcmF0ZSBJRHMgZm9yIHRoZW0hXG4gKlxuICogU29sdXRpb24gMTogR2VuZXJhdGUgcmFuZG9tIElEcy5cbiAqXG4gKiBUaGlzIHdvcmtzIGdyZWF0IGFzIGxvbmcgYXMgeW91IGRvbid0IHNlcnZlciByZW5kZXIgeW91ciBhcHAuIFdoZW4gUmVhY3QgKGluXG4gKiB0aGUgY2xpZW50KSB0cmllcyB0byByZXVzZSB0aGUgbWFya3VwIGZyb20gdGhlIHNlcnZlciwgdGhlIElEcyB3b24ndCBtYXRjaFxuICogYW5kIFJlYWN0IHdpbGwgdGhlbiByZWNyZWF0ZSB0aGUgZW50aXJlIERPTSB0cmVlLlxuICpcbiAqIFNvbHV0aW9uIDI6IEluY3JlbWVudCBhbiBpbnRlZ2VyXG4gKlxuICogVGhpcyBzb3VuZHMgZ3JlYXQuIFNpbmNlIHdlJ3JlIHJlbmRlcmluZyB0aGUgZXhhY3Qgc2FtZSB0cmVlIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCBjbGllbnQsIHdlIGNhbiBpbmNyZW1lbnQgYSBjb3VudGVyIGFuZCBnZXQgYSBkZXRlcm1pbmlzdGljIHJlc3VsdCBiZXR3ZWVuXG4gKiBjbGllbnQgYW5kIHNlcnZlci4gQWxzbywgSlMgaW50ZWdlcnMgY2FuIGdvIHVwIHRvIG5pbmUtcXVhZHJpbGxpb24uIEknbVxuICogcHJldHR5IHN1cmUgdGhlIHRhYiB3aWxsIGJlIGNsb3NlZCBiZWZvcmUgYW4gYXBwIG5ldmVyIG5lZWRzXG4gKiAxMCBxdWFkcmlsbGlvbiBJRHMhXG4gKlxuICogUHJvYmxlbSBzb2x2ZWQsIHJpZ2h0P1xuICpcbiAqIEFoLCBidXQgdGhlcmUncyBhIGNhdGNoISBSZWFjdCdzIGNvbmN1cnJlbnQgcmVuZGVyaW5nIG1ha2VzIHRoaXMgYXBwcm9hY2hcbiAqIG5vbi1kZXRlcm1pbmlzdGljLiBXaGlsZSB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgd2lsbCBlbmQgdXAgd2l0aCB0aGUgc2FtZVxuICogZWxlbWVudHMgaW4gdGhlIGVuZCwgZGVwZW5kaW5nIG9uIHN1c3BlbnNlIGJvdW5kYXJpZXMgKGFuZCBwb3NzaWJseSBzb21lIHVzZXJcbiAqIGlucHV0IGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIpIHRoZSBpbmNyZW1lbnRpbmcgaW50ZWdlcnMgd29uJ3QgYWx3YXlzIG1hdGNoXG4gKiB1cC5cbiAqXG4gKiBTb2x1dGlvbiAzOiBEb24ndCB1c2UgSURzIGF0IGFsbCBvbiB0aGUgc2VydmVyOyBwYXRjaCBhZnRlciBmaXJzdCByZW5kZXIuXG4gKlxuICogV2hhdCB3ZSd2ZSBkb25lIGhlcmUgaXMgc29sdXRpb24gMiB3aXRoIHNvbWUgdHJpY2tzLiBXaXRoIHRoaXMgYXBwcm9hY2gsIHRoZVxuICogSUQgcmV0dXJuZWQgaXMgYW4gZW1wdHkgc3RyaW5nIG9uIHRoZSBmaXJzdCByZW5kZXIuIFRoaXMgd2F5IHRoZSBzZXJ2ZXIgYW5kXG4gKiBjbGllbnQgaGF2ZSB0aGUgc2FtZSBtYXJrdXAgbm8gbWF0dGVyIGhvdyB3aWxkIHRoZSBjb25jdXJyZW50IHJlbmRlcmluZyBtYXlcbiAqIGhhdmUgZ290dGVuLlxuICpcbiAqIEFmdGVyIHRoZSByZW5kZXIsIHdlIHBhdGNoIHVwIHRoZSBjb21wb25lbnRzIHdpdGggYW4gaW5jcmVtZW50ZWQgSUQuIFRoaXNcbiAqIGNhdXNlcyBhIGRvdWJsZSByZW5kZXIgb24gYW55IGNvbXBvbmVudHMgd2l0aCBgdXNlSWRgLiBTaG91bGRuJ3QgYmUgYSBwcm9ibGVtXG4gKiBzaW5jZSB0aGUgY29tcG9uZW50cyB1c2luZyB0aGlzIGhvb2sgc2hvdWxkIGJlIHNtYWxsLCBhbmQgd2UncmUgb25seSB1cGRhdGluZ1xuICogdGhlIElEIGF0dHJpYnV0ZSBvbiB0aGUgRE9NLCBub3RoaW5nIGJpZyBpcyBoYXBwZW5pbmcuXG4gKlxuICogSXQgZG9lc24ndCBoYXZlIHRvIGJlIGFuIGluY3JlbWVudGVkIG51bWJlciwgdGhvdWdoLS13ZSBjb3VsZCBkbyBnZW5lcmF0ZVxuICogcmFuZG9tIHN0cmluZ3MgaW5zdGVhZCwgYnV0IGluY3JlbWVudGluZyBhIG51bWJlciBpcyBwcm9iYWJseSB0aGUgY2hlYXBlc3RcbiAqIHRoaW5nIHdlIGNhbiBkby5cbiAqXG4gKiBBZGRpdGlvbmFsbHksIHdlIG9ubHkgZG8gdGhpcyBwYXRjaHVwIG9uIHRoZSB2ZXJ5IGZpcnN0IGNsaWVudCByZW5kZXIgZXZlci5cbiAqIEFueSBjYWxscyB0byBgdXNlSWRgIHRoYXQgaGFwcGVuIGR5bmFtaWNhbGx5IGluIHRoZSBjbGllbnQgd2lsbCBiZVxuICogcG9wdWxhdGVkIGltbWVkaWF0ZWx5IHdpdGggYSB2YWx1ZS4gU28sIHdlIG9ubHkgZ2V0IHRoZSBkb3VibGUgcmVuZGVyIGFmdGVyXG4gKiBzZXJ2ZXIgaHlkcmF0aW9uIGFuZCBuZXZlciBhZ2FpbiwgU08gQkFDSyBPRkYgQUxSSUdIVD9cbiAqL1xudmFyIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IGZhbHNlO1xudmFyIGlkID0gMDtcblxudmFyIGdlbklkID0gZnVuY3Rpb24gZ2VuSWQoKSB7XG4gIHJldHVybiArK2lkO1xufTtcbi8qKlxuICogdXNlSWRcbiAqXG4gKiBBdXRvZ2VuZXJhdGUgSURzIHRvIGZhY2lsaXRhdGUgV0FJLUFSSUEgYW5kIHNlcnZlciByZW5kZXJpbmcuXG4gKlxuICogTm90ZTogVGhlIHJldHVybmVkIElEIHdpbGwgaW5pdGlhbGx5IGJlIGBudWxsYCBhbmQgd2lsbCB1cGRhdGUgYWZ0ZXIgYVxuICogY29tcG9uZW50IG1vdW50cy4gVXNlcnMgbWF5IG5lZWQgdG8gc3VwcGx5IHRoZWlyIG93biBJRCBpZiB0aGV5IG5lZWRcbiAqIGNvbnNpc3RlbnQgdmFsdWVzIGZvciBTU1IuXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9hdXRvLWlkXG4gKi9cblxuXG5mdW5jdGlvbiB1c2VJZChpZEZyb21Qcm9wcykge1xuICAvKlxuICAgKiBJZiB0aGlzIGluc3RhbmNlIGlzbid0IHBhcnQgb2YgdGhlIGluaXRpYWwgcmVuZGVyLCB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoZVxuICAgKiBkb3VibGUgcmVuZGVyL3BhdGNoLXVwIGRhbmNlLiBXZSBjYW4ganVzdCBnZW5lcmF0ZSB0aGUgSUQgYW5kIHJldHVybiBpdC5cbiAgICovXG4gIHZhciBpbml0aWFsSWQgPSBpZEZyb21Qcm9wcyB8fCAoc2VydmVySGFuZG9mZkNvbXBsZXRlID8gZ2VuSWQoKSA6IG51bGwpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSB1c2VTdGF0ZShpbml0aWFsSWQpLFxuICAgICAgaWQgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRJZCA9IF9SZWFjdCR1c2VTdGF0ZVsxXTtcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaWQgPT09IG51bGwpIHtcbiAgICAgIC8qXG4gICAgICAgKiBQYXRjaCB0aGUgSUQgYWZ0ZXIgcmVuZGVyLiBXZSBkbyB0aGlzIGluIGB1c2VMYXlvdXRFZmZlY3RgIHRvIGF2b2lkIGFueVxuICAgICAgICogcmVuZGVyaW5nIGZsaWNrZXIsIHRob3VnaCBpdCdsbCBtYWtlIHRoZSBmaXJzdCByZW5kZXIgc2xvd2VyICh1bmxpa2VseVxuICAgICAgICogdG8gbWF0dGVyLCBidXQgeW91J3JlIHdlbGNvbWUgdG8gbWVhc3VyZSB5b3VyIGFwcCBhbmQgbGV0IHVzIGtub3cgaWZcbiAgICAgICAqIGl0J3MgYSBwcm9ibGVtKS5cbiAgICAgICAqL1xuICAgICAgc2V0SWQoZ2VuSWQoKSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cbiAgfSwgW10pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPT09IGZhbHNlKSB7XG4gICAgICAvKlxuICAgICAgICogRmxhZyBhbGwgZnV0dXJlIHVzZXMgb2YgYHVzZUlkYCB0byBza2lwIHRoZSB1cGRhdGUgZGFuY2UuIFRoaXMgaXMgaW5cbiAgICAgICAqIGB1c2VFZmZlY3RgIGJlY2F1c2UgaXQgZ29lcyBhZnRlciBgdXNlTGF5b3V0RWZmZWN0YCwgZW5zdXJpbmcgd2UgZG9uJ3RcbiAgICAgICAqIGFjY2lkZW50YWxseSBiYWlsIG91dCBvZiB0aGUgcGF0Y2gtdXAgZGFuY2UgcHJlbWF0dXJlbHkuXG4gICAgICAgKi9cbiAgICAgIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IHRydWU7XG4gICAgfVxuICB9LCBbXSk7XG4gIHJldHVybiBpZCAhPSBudWxsID8gU3RyaW5nKGlkKSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHsgdXNlSWQgfTtcbiIsImltcG9ydCB7IGNhblVzZURPTSB9IGZyb20gJy4uLy4uL2Nhbi11c2UtZG9tL2Rpc3QvcmVhY2gtdXRpbHMtY2FuLXVzZS1kb20uZXNtLmpzJztcblxuLyoqXG4gKiBHZXQgYW4gZWxlbWVudCdzIG93bmVyIGRvY3VtZW50LiBVc2VmdWwgd2hlbiBjb21wb25lbnRzIGFyZSB1c2VkIGluIGlmcmFtZXNcbiAqIG9yIG90aGVyIGVudmlyb25tZW50cyBsaWtlIGRldiB0b29scy5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGdldE93bmVyRG9jdW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gY2FuVXNlRE9NKCkgPyBlbGVtZW50ID8gZWxlbWVudC5vd25lckRvY3VtZW50IDogZG9jdW1lbnQgOiBudWxsO1xufVxuLyoqXG4gKiBUT0RPOiBSZW1vdmUgaW4gMS4wXG4gKi9cblxuZnVuY3Rpb24gZ2V0T3duZXJXaW5kb3coZWxlbWVudCkge1xuICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnQoZWxlbWVudCk7XG4gIHJldHVybiBvd25lckRvY3VtZW50ID8gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3cgOiBudWxsO1xufVxuXG5leHBvcnQgeyBnZXRPd25lckRvY3VtZW50LCBnZXRPd25lcldpbmRvdyB9O1xuIiwiaW1wb3J0IHsgZ2V0T3duZXJEb2N1bWVudCB9IGZyb20gJy4uLy4uL293bmVyLWRvY3VtZW50L2Rpc3QvcmVhY2gtdXRpbHMtb3duZXItZG9jdW1lbnQuZXNtLmpzJztcbmltcG9ydCAnLi4vLi4vY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanMnO1xuXG4vKipcbiAqIEdldCB0aGUgc2l6ZSBvZiB0aGUgd29ya2luZyBkb2N1bWVudCBtaW51cyB0aGUgc2Nyb2xsYmFyIG9mZnNldC5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGdldERvY3VtZW50RGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIHZhciBfb3duZXJEb2N1bWVudCRkb2N1bWUsIF9vd25lckRvY3VtZW50JGRvY3VtZTI7XG5cbiAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50KGVsZW1lbnQpO1xuICB2YXIgb3duZXJXaW5kb3cgPSBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdztcblxuICBpZiAoIW93bmVyRG9jdW1lbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogKF9vd25lckRvY3VtZW50JGRvY3VtZSA9IG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSAhPSBudWxsID8gX293bmVyRG9jdW1lbnQkZG9jdW1lIDogb3duZXJXaW5kb3cuaW5uZXJXaWR0aCxcbiAgICBoZWlnaHQ6IChfb3duZXJEb2N1bWVudCRkb2N1bWUyID0gb3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAhPSBudWxsID8gX293bmVyRG9jdW1lbnQkZG9jdW1lMiA6IG93bmVyV2luZG93LmlubmVySGVpZ2h0XG4gIH07XG59XG5cbmV4cG9ydCB7IGdldERvY3VtZW50RGltZW5zaW9ucyB9O1xuIiwiLyoqXG4gKiBKb2lucyBzdHJpbmdzIHRvIGZvcm1hdCBJRHMgZm9yIGNvbXBvdW5kIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtIGFyZ3NcbiAqL1xuZnVuY3Rpb24gbWFrZUlkKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIGFyZ3MuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICByZXR1cm4gdmFsICE9IG51bGw7XG4gIH0pLmpvaW4oXCItLVwiKTtcbn1cblxuZXhwb3J0IHsgbWFrZUlkIH07XG4iLCJpbXBvcnQgeyB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3MgKi9cbnZhciBjaGVja2VkUGtncyA9IHt9O1xuLyoqXG4gKiBKdXN0IGEgbGlsIHN0YXRlIGxvZ2dlclxuICpcbiAqIEBwYXJhbSBzdGF0ZVxuICogQHBhcmFtIERFQlVHXG4gKi9cblxuZnVuY3Rpb24gdXNlU3RhdGVMb2dnZXIoc3RhdGUsIERFQlVHKSB7XG4gIGlmIChERUJVRyA9PT0gdm9pZCAwKSB7XG4gICAgREVCVUcgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgZGVidWdSZWYgPSB1c2VSZWYoREVCVUcpO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBkZWJ1Z1JlZi5jdXJyZW50ID0gREVCVUc7XG4gICAgfSwgW0RFQlVHXSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChkZWJ1Z1JlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXAoXCJTdGF0ZSBVcGRhdGVkXCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhcIiVjXCIgKyBzdGF0ZSwgXCJmb250LXdlaWdodDogbm9ybWFsOyBmb250LXNpemU6IDEyMCU7IGZvbnQtc3R5bGU6IGl0YWxpYztcIik7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICAgIH1cbiAgICB9LCBbc3RhdGVdKTtcbiAgfVxufVxuLyoqXG4gKiBXaGVuIGluIGRldiBtb2RlLCBjaGVja3MgdGhhdCBzdHlsZXMgZm9yIGEgZ2l2ZW4gYEByZWFjaGAgcGFja2FnZSBhcmUgbG9hZGVkLlxuICpcbiAqIEBwYXJhbSBwYWNrYWdlTmFtZSBOYW1lIG9mIHRoZSBwYWNrYWdlIHRvIGNoZWNrLlxuICogQGV4YW1wbGUgY2hlY2tTdHlsZXMoXCJkaWFsb2dcIikgd2lsbCBjaGVjayBmb3Igc3R5bGVzIGZvciBAcmVhY2gvZGlhbG9nXG4gKi9cblxuZnVuY3Rpb24gY2hlY2tTdHlsZXMocGFja2FnZU5hbWUpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIEluIENKUyBmaWxlcywgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgaXMgc3RyaXBwZWQgZnJvbSBvdXIgYnVpbGQsIGJ1dCB3ZVxuICAgIC8vIG5lZWQgaXQgdG8gcHJldmVudCBzdHlsZSBjaGVja3MgZnJvbSBjbG9nZ2luZyB1cCB1c2VyIGxvZ3Mgd2hpbGUgdGVzdGluZy5cbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCB1bnRpbCB3ZSBjYW4gdHdlYWsgdGhlIGJ1aWxkIGEgYml0IHRvIGFjY29tbW9kYXRlLlxuICAgIHZhciBfcmVmID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgPyBwcm9jZXNzLmVudiA6IHtcbiAgICAgIE5PREVfRU5WOiBcImRldmVsb3BtZW50XCJcbiAgICB9LFxuICAgICAgICBlbnZpcm9ubWVudCA9IF9yZWYuTk9ERV9FTlY7IC8vIG9ubHkgY2hlY2sgb25jZSBwZXIgcGFja2FnZVxuXG5cbiAgICBpZiAoY2hlY2tlZFBrZ3NbcGFja2FnZU5hbWVdKSByZXR1cm47XG4gICAgY2hlY2tlZFBrZ3NbcGFja2FnZU5hbWVdID0gdHJ1ZTtcblxuICAgIGlmIChlbnZpcm9ubWVudCA9PT0gXCJkZXZlbG9wbWVudFwiICYmIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoXCItLXJlYWNoLVwiICsgcGFja2FnZU5hbWUpLCAxMCkgIT09IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIkByZWFjaC9cIiArIHBhY2thZ2VOYW1lICsgXCIgc3R5bGVzIG5vdCBmb3VuZC4gSWYgeW91IGFyZSB1c2luZyBhIGJ1bmRsZXIgbGlrZSB3ZWJwYWNrIG9yIHBhcmNlbCBpbmNsdWRlIHRoaXMgaW4gdGhlIGVudHJ5IGZpbGUgb2YgeW91ciBhcHAgYmVmb3JlIGFueSBvZiB5b3VyIG93biBzdHlsZXM6XFxuICBcXG4gICAgICBpbXBvcnQgXFxcIkByZWFjaC9cIiArIHBhY2thZ2VOYW1lICsgXCIvc3R5bGVzLmNzc1xcXCI7XFxuICBcXG4gICAgT3RoZXJ3aXNlIHlvdSdsbCBuZWVkIHRvIGluY2x1ZGUgdGhlbSBzb21lIG90aGVyIHdheTpcXG4gIFxcbiAgICAgIDxsaW5rIHJlbD1cXFwic3R5bGVzaGVldFxcXCIgdHlwZT1cXFwidGV4dC9jc3NcXFwiIGhyZWY9XFxcIm5vZGVfbW9kdWxlcy9AcmVhY2gvXCIgKyBwYWNrYWdlTmFtZSArIFwiL3N0eWxlcy5jc3NcXFwiIC8+XFxuICBcXG4gICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gdmlzaXQgaHR0cHM6Ly91aS5yZWFjaC50ZWNoL3N0eWxpbmcuXFxuICAgIFwiKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogV2hlbiBpbiBkZXYgbW9kZSwgY2hlY2tzIHRoYXQgc3R5bGVzIGZvciBhIGdpdmVuIGBAcmVhY2hgIHBhY2thZ2UgYXJlIGxvYWRlZC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZU5hbWUgTmFtZSBvZiB0aGUgcGFja2FnZSB0byBjaGVjay5cbiAqIEBleGFtcGxlIHVzZUNoZWNrU3R5bGVzKFwiZGlhbG9nXCIpIHdpbGwgY2hlY2sgZm9yIHN0eWxlcyBmb3IgQHJlYWNoL2RpYWxvZ1xuICovXG5cbmZ1bmN0aW9uIHVzZUNoZWNrU3R5bGVzKHBhY2thZ2VOYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgbmFtZSA9IHVzZVJlZihwYWNrYWdlTmFtZSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB2b2lkIChuYW1lLmN1cnJlbnQgPSBwYWNrYWdlTmFtZSk7XG4gICAgfSwgW3BhY2thZ2VOYW1lXSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBjaGVja1N0eWxlcyhuYW1lLmN1cnJlbnQpO1xuICAgIH0sIFtdKTtcbiAgfVxufVxuLyoqXG4gKiBMb2dzIGEgd2FybmluZyBpbiBkZXYgbW9kZSB3aGVuIGEgY29tcG9uZW50IHN3aXRjaGVzIGZyb20gY29udHJvbGxlZCB0b1xuICogdW5jb250cm9sbGVkLCBvciB2aWNlIHZlcnNhXG4gKlxuICogQSBzaW5nbGUgcHJvcCBzaG91bGQgdHlwaWNhbGx5IGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IGFcbiAqIGNvbXBvbmVudCBpcyBjb250cm9sbGVkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0gY29udHJvbGxlZFZhbHVlXG4gKiBAcGFyYW0gY29udHJvbGxlZFByb3BOYW1lXG4gKiBAcGFyYW0gY29tcG9uZW50TmFtZVxuICovXG5cbmZ1bmN0aW9uIHVzZUNvbnRyb2xsZWRTd2l0Y2hXYXJuaW5nKGNvbnRyb2xsZWRWYWx1ZSwgY29udHJvbGxlZFByb3BOYW1lLCBjb21wb25lbnROYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgY29udHJvbGxlZFJlZiA9IHVzZVJlZihjb250cm9sbGVkVmFsdWUgIT0gbnVsbCk7XG4gICAgdmFyIG5hbWVDYWNoZSA9IHVzZVJlZih7XG4gICAgICBjb21wb25lbnROYW1lOiBjb21wb25lbnROYW1lLFxuICAgICAgY29udHJvbGxlZFByb3BOYW1lOiBjb250cm9sbGVkUHJvcE5hbWVcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgbmFtZUNhY2hlLmN1cnJlbnQgPSB7XG4gICAgICAgIGNvbXBvbmVudE5hbWU6IGNvbXBvbmVudE5hbWUsXG4gICAgICAgIGNvbnRyb2xsZWRQcm9wTmFtZTogY29udHJvbGxlZFByb3BOYW1lXG4gICAgICB9O1xuICAgIH0sIFtjb21wb25lbnROYW1lLCBjb250cm9sbGVkUHJvcE5hbWVdKTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHdhc0NvbnRyb2xsZWQgPSBjb250cm9sbGVkUmVmLmN1cnJlbnQ7XG4gICAgICB2YXIgX25hbWVDYWNoZSRjdXJyZW50ID0gbmFtZUNhY2hlLmN1cnJlbnQsXG4gICAgICAgICAgY29tcG9uZW50TmFtZSA9IF9uYW1lQ2FjaGUkY3VycmVudC5jb21wb25lbnROYW1lLFxuICAgICAgICAgIGNvbnRyb2xsZWRQcm9wTmFtZSA9IF9uYW1lQ2FjaGUkY3VycmVudC5jb250cm9sbGVkUHJvcE5hbWU7XG4gICAgICB2YXIgaXNDb250cm9sbGVkID0gY29udHJvbGxlZFZhbHVlICE9IG51bGw7XG5cbiAgICAgIGlmICh3YXNDb250cm9sbGVkICE9PSBpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkEgY29tcG9uZW50IGlzIGNoYW5naW5nIGFuIFwiICsgKHdhc0NvbnRyb2xsZWQgPyBcIlwiIDogXCJ1blwiKSArIFwiY29udHJvbGxlZCBgXCIgKyBjb250cm9sbGVkUHJvcE5hbWUgKyBcImAgc3RhdGUgb2YgXCIgKyBjb21wb25lbnROYW1lICsgXCIgdG8gYmUgXCIgKyAod2FzQ29udHJvbGxlZCA/IFwidW5cIiA6IFwiXCIpICsgXCJjb250cm9sbGVkLiBUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgdGhlIHZhbHVlIGNoYW5naW5nIGZyb20gdW5kZWZpbmVkIHRvIGEgZGVmaW5lZCB2YWx1ZSwgd2hpY2ggc2hvdWxkIG5vdCBoYXBwZW4uIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgXCIgKyBjb21wb25lbnROYW1lICsgXCIgZWxlbWVudCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb21wb25lbnQuXFxuICAgICAgTW9yZSBpbmZvOiBodHRwczovL2ZiLm1lL3JlYWN0LWNvbnRyb2xsZWQtY29tcG9uZW50c1wiKTtcbiAgICAgIH1cbiAgICB9LCBbY29udHJvbGxlZFZhbHVlXSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgY2hlY2tTdHlsZXMsIHVzZUNoZWNrU3R5bGVzLCB1c2VDb250cm9sbGVkU3dpdGNoV2FybmluZywgdXNlU3RhdGVMb2dnZXIgfTtcbiIsIi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgYSBib29sZWFuLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5mdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCI7XG59XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGEgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHZhbHVlXG4gKi9cblxuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gIHJldHVybiAhISh2YWx1ZSAmJiB7fS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PSBcIltvYmplY3QgRnVuY3Rpb25dXCIpO1xufVxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBhIG51bWJlci5cbiAqXG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuXG5mdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmICFpc05hTih2YWx1ZSk7XG59XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5cbmZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCI7XG59XG5cbmV4cG9ydCB7IGlzQm9vbGVhbiwgaXNGdW5jdGlvbiwgaXNOdW1iZXIsIGlzU3RyaW5nIH07XG4iLCJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlLWNoZWNrL2Rpc3QvcmVhY2gtdXRpbHMtdHlwZS1jaGVjay5lc20uanMnO1xuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIGFycjJbaV0gPSBhcnJbaV07XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxuZnVuY3Rpb24gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShvLCBhbGxvd0FycmF5TGlrZSkge1xuICB2YXIgaXQ7XG5cbiAgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwidW5kZWZpbmVkXCIgfHwgb1tTeW1ib2wuaXRlcmF0b3JdID09IG51bGwpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvKSB8fCAoaXQgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobykpIHx8IGFsbG93QXJyYXlMaWtlICYmIG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSB7XG4gICAgICBpZiAoaXQpIG8gPSBpdDtcbiAgICAgIHZhciBpID0gMDtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChpID49IG8ubGVuZ3RoKSByZXR1cm4ge1xuICAgICAgICAgIGRvbmU6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkb25lOiBmYWxzZSxcbiAgICAgICAgICB2YWx1ZTogb1tpKytdXG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbiAgfVxuXG4gIGl0ID0gb1tTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIHJldHVybiBpdC5uZXh0LmJpbmQoaXQpO1xufVxuXG4vKipcbiAqIFBhc3NlcyBvciBhc3NpZ25zIGFuIGFyYml0cmFyeSB2YWx1ZSB0byBhIHJlZiBmdW5jdGlvbiBvciBvYmplY3QuXG4gKlxuICogQHBhcmFtIHJlZlxuICogQHBhcmFtIHZhbHVlXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblJlZihyZWYsIHZhbHVlKSB7XG4gIGlmIChyZWYgPT0gbnVsbCkgcmV0dXJuO1xuXG4gIGlmIChpc0Z1bmN0aW9uKHJlZikpIHtcbiAgICByZWYodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgYXNzaWduIHZhbHVlIFxcXCJcIiArIHZhbHVlICsgXCJcXFwiIHRvIHJlZiBcXFwiXCIgKyByZWYgKyBcIlxcXCJcIik7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIFBhc3NlcyBvciBhc3NpZ25zIGEgdmFsdWUgdG8gbXVsdGlwbGUgcmVmcyAodHlwaWNhbGx5IGEgRE9NIG5vZGUpLiBVc2VmdWwgZm9yXG4gKiBkZWFsaW5nIHdpdGggY29tcG9uZW50cyB0aGF0IG5lZWQgYW4gZXhwbGljaXQgcmVmIGZvciBET00gY2FsY3VsYXRpb25zIGJ1dFxuICogYWxzbyBmb3J3YXJkcyByZWZzIGFzc2lnbmVkIGJ5IGFuIGFwcC5cbiAqXG4gKiBAcGFyYW0gcmVmcyBSZWZzIHRvIGZvcmtcbiAqL1xuXG5mdW5jdGlvbiB1c2VDb21wb3NlZFJlZnMoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCByZWZzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIHJlZnNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlckxvb3NlKHJlZnMpLCBfc3RlcDsgIShfc3RlcCA9IF9pdGVyYXRvcigpKS5kb25lOykge1xuICAgICAgdmFyIHJlZiA9IF9zdGVwLnZhbHVlO1xuICAgICAgYXNzaWduUmVmKHJlZiwgbm9kZSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cbiAgfSwgcmVmcyk7XG59XG5cbmV4cG9ydCB7IGFzc2lnblJlZiwgdXNlQ29tcG9zZWRSZWZzIH07XG4iLCIvKipcbiAqIFdyYXBzIGEgbGliLWRlZmluZWQgZXZlbnQgaGFuZGxlciBhbmQgYSB1c2VyLWRlZmluZWQgZXZlbnQgaGFuZGxlciwgcmV0dXJuaW5nXG4gKiBhIHNpbmdsZSBoYW5kbGVyIHRoYXQgYWxsb3dzIGEgdXNlciB0byBwcmV2ZW50IGxpYi1kZWZpbmVkIGhhbmRsZXJzIGZyb21cbiAqIGZpcmluZy5cbiAqXG4gKiBAcGFyYW0gdGhlaXJIYW5kbGVyIFVzZXItc3VwcGxpZWQgZXZlbnQgaGFuZGxlclxuICogQHBhcmFtIG91ckhhbmRsZXIgTGlicmFyeS1zdXBwbGllZCBldmVudCBoYW5kbGVyXG4gKi9cbmZ1bmN0aW9uIGNvbXBvc2VFdmVudEhhbmRsZXJzKHRoZWlySGFuZGxlciwgb3VySGFuZGxlcikge1xuICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgdGhlaXJIYW5kbGVyICYmIHRoZWlySGFuZGxlcihldmVudCk7XG5cbiAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVybiBvdXJIYW5kbGVyKGV2ZW50KTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH07XG4iLCJpbXBvcnQgeyBmb3J3YXJkUmVmLCBjcmVhdGVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJhc1wiLCBcInN0eWxlXCJdO1xuXG4vKipcbiAqIFZpc3VhbGx5SGlkZGVuXG4gKlxuICogUHJvdmlkZXMgdGV4dCBmb3Igc2NyZWVuIHJlYWRlcnMgdGhhdCBpcyB2aXN1YWxseSBoaWRkZW4uXG4gKiBJdCBpcyB0aGUgbG9naWNhbCBvcHBvc2l0ZSBvZiB0aGUgYGFyaWEtaGlkZGVuYCBhdHRyaWJ1dGUuXG4gKi9cbnZhciBWaXN1YWxseUhpZGRlbiA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIFZpc3VhbGx5SGlkZGVuKF9yZWYsIHJlZikge1xuICB2YXIgX3JlZiRhcyA9IF9yZWYuYXMsXG4gICAgICBDb21wID0gX3JlZiRhcyA9PT0gdm9pZCAwID8gXCJzcGFuXCIgOiBfcmVmJGFzLFxuICAgICAgX3JlZiRzdHlsZSA9IF9yZWYuc3R5bGUsXG4gICAgICBzdHlsZSA9IF9yZWYkc3R5bGUgPT09IHZvaWQgMCA/IHt9IDogX3JlZiRzdHlsZSxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZiwgX2V4Y2x1ZGVkKTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoQ29tcCwgX2V4dGVuZHMoe1xuICAgIHJlZjogcmVmLFxuICAgIHN0eWxlOiBfZXh0ZW5kcyh7XG4gICAgICBib3JkZXI6IDAsXG4gICAgICBjbGlwOiBcInJlY3QoMCAwIDAgMClcIixcbiAgICAgIGhlaWdodDogXCIxcHhcIixcbiAgICAgIG1hcmdpbjogXCItMXB4XCIsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICAgIHBhZGRpbmc6IDAsXG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IFwiMXB4XCIsXG4gICAgICAvLyBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgd29yZFdyYXA6IFwibm9ybWFsXCJcbiAgICB9LCBzdHlsZSlcbiAgfSwgcHJvcHMpKTtcbn0pO1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Zpc3VhbGx5LWhpZGRlbiN2aXN1YWxseWhpZGRlbi1wcm9wc1xuICovXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVmlzdWFsbHlIaWRkZW4uZGlzcGxheU5hbWUgPSBcIlZpc3VhbGx5SGlkZGVuXCI7XG4gIFZpc3VhbGx5SGlkZGVuLnByb3BUeXBlcyA9IHtcbiAgICBhczogUHJvcFR5cGVzLmFueSxcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbiAgfTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsbHlIaWRkZW47XG5leHBvcnQgeyBWaXN1YWxseUhpZGRlbiB9O1xuIiwidmFyIHByb3BzID0gW1wiYm90dG9tXCIsIFwiaGVpZ2h0XCIsIFwibGVmdFwiLCBcInJpZ2h0XCIsIFwidG9wXCIsIFwid2lkdGhcIl07XG5cbnZhciByZWN0Q2hhbmdlZCA9IGZ1bmN0aW9uIHJlY3RDaGFuZ2VkKGEsIGIpIHtcbiAgaWYgKGEgPT09IHZvaWQgMCkge1xuICAgIGEgPSB7fTtcbiAgfVxuXG4gIGlmIChiID09PSB2b2lkIDApIHtcbiAgICBiID0ge307XG4gIH1cblxuICByZXR1cm4gcHJvcHMuc29tZShmdW5jdGlvbiAocHJvcCkge1xuICAgIHJldHVybiBhW3Byb3BdICE9PSBiW3Byb3BdO1xuICB9KTtcbn07XG5cbnZhciBvYnNlcnZlZE5vZGVzID0gLyojX19QVVJFX18qL25ldyBNYXAoKTtcbnZhciByYWZJZDtcblxudmFyIHJ1biA9IGZ1bmN0aW9uIHJ1bigpIHtcbiAgdmFyIGNoYW5nZWRTdGF0ZXMgPSBbXTtcbiAgb2JzZXJ2ZWROb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChzdGF0ZSwgbm9kZSkge1xuICAgIHZhciBuZXdSZWN0ID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGlmIChyZWN0Q2hhbmdlZChuZXdSZWN0LCBzdGF0ZS5yZWN0KSkge1xuICAgICAgc3RhdGUucmVjdCA9IG5ld1JlY3Q7XG4gICAgICBjaGFuZ2VkU3RhdGVzLnB1c2goc3RhdGUpO1xuICAgIH1cbiAgfSk7XG4gIGNoYW5nZWRTdGF0ZXMuZm9yRWFjaChmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICBzdGF0ZS5jYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbiAoY2IpIHtcbiAgICAgIHJldHVybiBjYihzdGF0ZS5yZWN0KTtcbiAgICB9KTtcbiAgfSk7XG4gIHJhZklkID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShydW4pO1xufTtcblxuZnVuY3Rpb24gb2JzZXJ2ZVJlY3Qobm9kZSwgY2IpIHtcbiAgcmV0dXJuIHtcbiAgICBvYnNlcnZlOiBmdW5jdGlvbiBvYnNlcnZlKCkge1xuICAgICAgdmFyIHdhc0VtcHR5ID0gb2JzZXJ2ZWROb2Rlcy5zaXplID09PSAwO1xuXG4gICAgICBpZiAob2JzZXJ2ZWROb2Rlcy5oYXMobm9kZSkpIHtcbiAgICAgICAgb2JzZXJ2ZWROb2Rlcy5nZXQobm9kZSkuY2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JzZXJ2ZWROb2Rlcy5zZXQobm9kZSwge1xuICAgICAgICAgIHJlY3Q6IHVuZGVmaW5lZCxcbiAgICAgICAgICBoYXNSZWN0Q2hhbmdlZDogZmFsc2UsXG4gICAgICAgICAgY2FsbGJhY2tzOiBbY2JdXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAod2FzRW1wdHkpIHJ1bigpO1xuICAgIH0sXG4gICAgdW5vYnNlcnZlOiBmdW5jdGlvbiB1bm9ic2VydmUoKSB7XG4gICAgICB2YXIgc3RhdGUgPSBvYnNlcnZlZE5vZGVzLmdldChub2RlKTtcblxuICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY2FsbGJhY2tcbiAgICAgICAgdmFyIGluZGV4ID0gc3RhdGUuY2FsbGJhY2tzLmluZGV4T2YoY2IpO1xuICAgICAgICBpZiAoaW5kZXggPj0gMCkgc3RhdGUuY2FsbGJhY2tzLnNwbGljZShpbmRleCwgMSk7IC8vIFJlbW92ZSB0aGUgbm9kZSByZWZlcmVuY2VcblxuICAgICAgICBpZiAoIXN0YXRlLmNhbGxiYWNrcy5sZW5ndGgpIG9ic2VydmVkTm9kZXNbXCJkZWxldGVcIl0obm9kZSk7IC8vIFN0b3AgdGhlIGxvb3BcblxuICAgICAgICBpZiAoIW9ic2VydmVkTm9kZXMuc2l6ZSkgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgb2JzZXJ2ZVJlY3Q7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1vYnNlcnZlLXJlY3QuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBvYnNlcnZlUmVjdCBmcm9tICdAcmVhY2gvb2JzZXJ2ZS1yZWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5pbXBvcnQgeyBpc0Jvb2xlYW4sIGlzRnVuY3Rpb24gfSBmcm9tICdAcmVhY2gvdXRpbHMvdHlwZS1jaGVjayc7XG5pbXBvcnQgd2FybmluZyBmcm9tICd0aW55LXdhcm5pbmcnO1xuXG4vKipcbiAqIFdlbGNvbWUgdG8gQHJlYWNoL3JlY3QhXG4gKlxuICogTWVhc3VyZXMgRE9NIGVsZW1lbnRzIChha2EuIGJvdW5kaW5nIGNsaWVudCByZWN0KS5cbiAqXG4gKiBAc2VlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC9nZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAqIEBzZWUgRG9jcyAgICAgICAgICAgICAgICAgIGh0dHBzOi8vcmVhY2gudGVjaC9yZWN0XG4gKiBAc2VlIFNvdXJjZSAgICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcmVhY2gvcmVhY2gtdWkvdHJlZS9tYWluL3BhY2thZ2VzL3JlY3RcbiAqL1xuXG4vKipcbiAqIFJlY3RcbiAqXG4gKiBAcGFyYW0gcHJvcHNcbiAqL1xuXG52YXIgUmVjdCA9IGZ1bmN0aW9uIFJlY3QoX3JlZikge1xuICB2YXIgb25DaGFuZ2UgPSBfcmVmLm9uQ2hhbmdlLFxuICAgICAgX3JlZiRvYnNlcnZlID0gX3JlZi5vYnNlcnZlLFxuICAgICAgb2JzZXJ2ZSA9IF9yZWYkb2JzZXJ2ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkb2JzZXJ2ZSxcbiAgICAgIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbjtcbiAgdmFyIHJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHJlY3QgPSB1c2VSZWN0KHJlZiwge1xuICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgb25DaGFuZ2U6IG9uQ2hhbmdlXG4gIH0pO1xuICByZXR1cm4gY2hpbGRyZW4oe1xuICAgIHJlZjogcmVmLFxuICAgIHJlY3Q6IHJlY3RcbiAgfSk7XG59O1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3JlY3QjcmVjdC1wcm9wc1xuICovXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICBSZWN0LmRpc3BsYXlOYW1lID0gXCJSZWN0XCI7XG4gIFJlY3QucHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9ic2VydmU6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuY1xuICB9O1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbi8qKlxuICogdXNlUmVjdFxuICpcbiAqIEBwYXJhbSBub2RlUmVmXG4gKiBAcGFyYW0gb2JzZXJ2ZVxuICogQHBhcmFtIG9uQ2hhbmdlXG4gKi9cbmZ1bmN0aW9uIHVzZVJlY3Qobm9kZVJlZiwgb2JzZXJ2ZU9yT3B0aW9ucywgZGVwcmVjYXRlZF9vbkNoYW5nZSkge1xuICB2YXIgb2JzZXJ2ZTtcbiAgdmFyIG9uQ2hhbmdlO1xuXG4gIGlmIChpc0Jvb2xlYW4ob2JzZXJ2ZU9yT3B0aW9ucykpIHtcbiAgICBvYnNlcnZlID0gb2JzZXJ2ZU9yT3B0aW9ucztcbiAgfSBlbHNlIHtcbiAgICB2YXIgX29ic2VydmVPck9wdGlvbnMkb2JzO1xuXG4gICAgb2JzZXJ2ZSA9IChfb2JzZXJ2ZU9yT3B0aW9ucyRvYnMgPSBvYnNlcnZlT3JPcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvYnNlcnZlT3JPcHRpb25zLm9ic2VydmUpICE9IG51bGwgPyBfb2JzZXJ2ZU9yT3B0aW9ucyRvYnMgOiB0cnVlO1xuICAgIG9uQ2hhbmdlID0gb2JzZXJ2ZU9yT3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb2JzZXJ2ZU9yT3B0aW9ucy5vbkNoYW5nZTtcbiAgfVxuXG4gIGlmIChpc0Z1bmN0aW9uKGRlcHJlY2F0ZWRfb25DaGFuZ2UpKSB7XG4gICAgb25DaGFuZ2UgPSBkZXByZWNhdGVkX29uQ2hhbmdlO1xuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKCFpc0Jvb2xlYW4ob2JzZXJ2ZU9yT3B0aW9ucyksIFwiUGFzc2luZyBgb2JzZXJ2ZWAgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBgdXNlUmVjdGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgUmVhY2ggVUkuIEluc3RlYWQsIHlvdSBjYW4gcGFzcyBhbiBvYmplY3Qgb2Ygb3B0aW9ucyB3aXRoIGFuIGBvYnNlcnZlYCBwcm9wZXJ0eSBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IChgdXNlUmVjdChyZWYsIHsgb2JzZXJ2ZSB9KWApLlxcblwiICsgXCJTZWUgaHR0cHM6Ly9yZWFjaC50ZWNoL3JlY3QjdXNlcmVjdC1vYnNlcnZlXCIpIDogdm9pZCAwO1xuICAgIH0sIFtvYnNlcnZlT3JPcHRpb25zXSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuXG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcoIWlzRnVuY3Rpb24oZGVwcmVjYXRlZF9vbkNoYW5nZSksIFwiUGFzc2luZyBgb25DaGFuZ2VgIGFzIHRoZSB0aGlyZCBhcmd1bWVudCB0byBgdXNlUmVjdGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgUmVhY2ggVUkuIEluc3RlYWQsIHlvdSBjYW4gcGFzcyBhbiBvYmplY3Qgb2Ygb3B0aW9ucyB3aXRoIGFuIGBvbkNoYW5nZWAgcHJvcGVydHkgYXMgdGhlIHNlY29uZCBhcmd1bWVudCAoYHVzZVJlY3QocmVmLCB7IG9uQ2hhbmdlIH0pYCkuXFxuXCIgKyBcIlNlZSBodHRwczovL3JlYWNoLnRlY2gvcmVjdCN1c2VyZWN0LW9uY2hhbmdlXCIpIDogdm9pZCAwO1xuICAgIH0sIFtkZXByZWNhdGVkX29uQ2hhbmdlXSk7XG4gIH1cblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gdXNlU3RhdGUobm9kZVJlZi5jdXJyZW50KSxcbiAgICAgIGVsZW1lbnQgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRFbGVtZW50ID0gX1JlYWN0JHVzZVN0YXRlWzFdO1xuXG4gIHZhciBpbml0aWFsUmVjdElzU2V0ID0gdXNlUmVmKGZhbHNlKTtcbiAgdmFyIGluaXRpYWxSZWZJc1NldCA9IHVzZVJlZihmYWxzZSk7XG5cbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZTIgPSB1c2VTdGF0ZShudWxsKSxcbiAgICAgIHJlY3QgPSBfUmVhY3QkdXNlU3RhdGUyWzBdLFxuICAgICAgc2V0UmVjdCA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgdmFyIG9uQ2hhbmdlUmVmID0gdXNlUmVmKG9uQ2hhbmdlKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPSBvbkNoYW5nZTtcblxuICAgIGlmIChub2RlUmVmLmN1cnJlbnQgIT09IGVsZW1lbnQpIHtcbiAgICAgIHNldEVsZW1lbnQobm9kZVJlZi5jdXJyZW50KTtcbiAgICB9XG4gIH0pO1xuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZWxlbWVudCAmJiAhaW5pdGlhbFJlY3RJc1NldC5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsUmVjdElzU2V0LmN1cnJlbnQgPSB0cnVlO1xuICAgICAgc2V0UmVjdChlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcbiAgICB9XG4gIH0sIFtlbGVtZW50XSk7XG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghb2JzZXJ2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBlbGVtID0gZWxlbWVudDsgLy8gU3RhdGUgaW5pdGlhbGl6ZXMgYmVmb3JlIHJlZnMgYXJlIHBsYWNlZCwgbWVhbmluZyB0aGUgZWxlbWVudCBzdGF0ZSB3aWxsXG4gICAgLy8gYmUgdW5kZWZpbmVkIG9uIHRoZSBmaXJzdCByZW5kZXIuIFdlIHN0aWxsIHdhbnQgdGhlIHJlY3Qgb24gdGhlIGZpcnN0XG4gICAgLy8gcmVuZGVyLCBzbyBpbml0aWFsbHkgd2UnbGwgdXNlIHRoZSBub2RlUmVmIHRoYXQgd2FzIHBhc3NlZCBpbnN0ZWFkIG9mXG4gICAgLy8gc3RhdGUgZm9yIG91ciBtZWFzdXJlbWVudHMuXG5cbiAgICBpZiAoIWluaXRpYWxSZWZJc1NldC5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsUmVmSXNTZXQuY3VycmVudCA9IHRydWU7XG4gICAgICBlbGVtID0gbm9kZVJlZi5jdXJyZW50O1xuICAgIH1cblxuICAgIGlmICghZWxlbSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJZb3UgbmVlZCB0byBwbGFjZSB0aGUgcmVmXCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIG9ic2VydmVyID0gb2JzZXJ2ZVJlY3QoZWxlbSwgZnVuY3Rpb24gKHJlY3QpIHtcbiAgICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IG9uQ2hhbmdlUmVmLmN1cnJlbnQocmVjdCk7XG4gICAgICBzZXRSZWN0KHJlY3QpO1xuICAgIH0pO1xuICAgIG9ic2VydmVyLm9ic2VydmUoKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKCk7XG4gICAgfTtcbiAgfSwgW29ic2VydmUsIGVsZW1lbnQsIG5vZGVSZWZdKTtcbiAgcmV0dXJuIHJlY3Q7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlY3Q7XG5leHBvcnQgeyBSZWN0LCB1c2VSZWN0IH07XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QsIGZvcndhcmRSZWYsIENoaWxkcmVuLCBjcmVhdGVFbGVtZW50LCBGcmFnbWVudCwgY2xvbmVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAcmVhY2gvYXV0by1pZCc7XG5pbXBvcnQgeyBnZXREb2N1bWVudERpbWVuc2lvbnMgfSBmcm9tICdAcmVhY2gvdXRpbHMvZ2V0LWRvY3VtZW50LWRpbWVuc2lvbnMnO1xuaW1wb3J0IHsgZ2V0T3duZXJEb2N1bWVudCB9IGZyb20gJ0ByZWFjaC91dGlscy9vd25lci1kb2N1bWVudCc7XG5pbXBvcnQgeyBtYWtlSWQgfSBmcm9tICdAcmVhY2gvdXRpbHMvbWFrZS1pZCc7XG5pbXBvcnQgeyB1c2VDaGVja1N0eWxlcyB9IGZyb20gJ0ByZWFjaC91dGlscy9kZXYtdXRpbHMnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJlYWNoL3V0aWxzL2NvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByZWFjaC91dGlscy9jb21wb3NlLWV2ZW50LWhhbmRsZXJzJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJ0ByZWFjaC9wb3J0YWwnO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tICdAcmVhY2gvdmlzdWFsbHktaGlkZGVuJztcbmltcG9ydCB7IHVzZVJlY3QgfSBmcm9tICdAcmVhY2gvcmVjdCc7XG5pbXBvcnQgd2FybmluZyBmcm9tICd0aW55LXdhcm5pbmcnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJjaGlsZHJlblwiLCBcImxhYmVsXCIsIFwiYXJpYUxhYmVsXCIsIFwiaWRcIiwgXCJERUJVR19TVFlMRVwiXSxcbiAgICBfZXhjbHVkZWQyID0gW1wibGFiZWxcIiwgXCJhcmlhTGFiZWxcIiwgXCJpc1Zpc2libGVcIiwgXCJpZFwiXSxcbiAgICBfZXhjbHVkZWQzID0gW1wiYXJpYUxhYmVsXCIsIFwiYXJpYS1sYWJlbFwiLCBcImFzXCIsIFwiaWRcIiwgXCJpc1Zpc2libGVcIiwgXCJsYWJlbFwiLCBcInBvc2l0aW9uXCIsIFwic3R5bGVcIiwgXCJ0cmlnZ2VyUmVjdFwiXSxcbiAgICBfZXhjbHVkZWQ0ID0gW1widHlwZVwiXTtcblxudmFyIF9vbiwgX29uMiwgX29uMywgX29uNCwgX29uNSwgX3N0YXRlcztcbnZhciBNT1VTRV9SRVNUX1RJTUVPVVQgPSAxMDA7XG52YXIgTEVBVkVfVElNRU9VVCA9IDUwMDsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFN0YXRlc1xuXG52YXIgVG9vbHRpcFN0YXRlczsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEV2ZW50c1xuXG4oZnVuY3Rpb24gKFRvb2x0aXBTdGF0ZXMpIHtcbiAgVG9vbHRpcFN0YXRlc1tcIklkbGVcIl0gPSBcIklETEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkZvY3VzZWRcIl0gPSBcIkZPQ1VTRURcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIlZpc2libGVcIl0gPSBcIlZJU0lCTEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkxlYXZpbmdWaXNpYmxlXCJdID0gXCJMRUFWSU5HX1ZJU0lCTEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkRpc21pc3NlZFwiXSA9IFwiRElTTUlTU0VEXCI7XG59KShUb29sdGlwU3RhdGVzIHx8IChUb29sdGlwU3RhdGVzID0ge30pKTtcblxudmFyIFRvb2x0aXBFdmVudHM7XG5cbihmdW5jdGlvbiAoVG9vbHRpcEV2ZW50cykge1xuICBUb29sdGlwRXZlbnRzW1wiQmx1clwiXSA9IFwiQkxVUlwiO1xuICBUb29sdGlwRXZlbnRzW1wiRm9jdXNcIl0gPSBcIkZPQ1VTXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJHbG9iYWxNb3VzZU1vdmVcIl0gPSBcIkdMT0JBTF9NT1VTRV9NT1ZFXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJNb3VzZURvd25cIl0gPSBcIk1PVVNFX0RPV05cIjtcbiAgVG9vbHRpcEV2ZW50c1tcIk1vdXNlRW50ZXJcIl0gPSBcIk1PVVNFX0VOVEVSXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJNb3VzZUxlYXZlXCJdID0gXCJNT1VTRV9MRUFWRVwiO1xuICBUb29sdGlwRXZlbnRzW1wiTW91c2VNb3ZlXCJdID0gXCJNT1VTRV9NT1ZFXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJSZXN0XCJdID0gXCJSRVNUXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJTZWxlY3RXaXRoS2V5Ym9hcmRcIl0gPSBcIlNFTEVDVF9XSVRIX0tFWUJPQVJEXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJUaW1lQ29tcGxldGVcIl0gPSBcIlRJTUVfQ09NUExFVEVcIjtcbn0pKFRvb2x0aXBFdmVudHMgfHwgKFRvb2x0aXBFdmVudHMgPSB7fSkpO1xuXG52YXIgY2hhcnQgPSB7XG4gIGluaXRpYWw6IFRvb2x0aXBTdGF0ZXMuSWRsZSxcbiAgc3RhdGVzOiAoX3N0YXRlcyA9IHt9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuSWRsZV0gPSB7XG4gICAgZW50ZXI6IGNsZWFyQ29udGV4dElkLFxuICAgIG9uOiAoX29uID0ge30sIF9vbltUb29sdGlwRXZlbnRzLk1vdXNlRW50ZXJdID0gVG9vbHRpcFN0YXRlcy5Gb2N1c2VkLCBfb25bVG9vbHRpcEV2ZW50cy5Gb2N1c10gPSBUb29sdGlwU3RhdGVzLlZpc2libGUsIF9vbilcbiAgfSwgX3N0YXRlc1tUb29sdGlwU3RhdGVzLkZvY3VzZWRdID0ge1xuICAgIGVudGVyOiBzdGFydFJlc3RUaW1lcixcbiAgICBsZWF2ZTogY2xlYXJSZXN0VGltZXIsXG4gICAgb246IChfb24yID0ge30sIF9vbjJbVG9vbHRpcEV2ZW50cy5Nb3VzZU1vdmVdID0gVG9vbHRpcFN0YXRlcy5Gb2N1c2VkLCBfb24yW1Rvb2x0aXBFdmVudHMuTW91c2VMZWF2ZV0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjJbVG9vbHRpcEV2ZW50cy5Nb3VzZURvd25dID0gVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWQsIF9vbjJbVG9vbHRpcEV2ZW50cy5CbHVyXSA9IFRvb2x0aXBTdGF0ZXMuSWRsZSwgX29uMltUb29sdGlwRXZlbnRzLlJlc3RdID0gVG9vbHRpcFN0YXRlcy5WaXNpYmxlLCBfb24yKVxuICB9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuVmlzaWJsZV0gPSB7XG4gICAgb246IChfb24zID0ge30sIF9vbjNbVG9vbHRpcEV2ZW50cy5Gb2N1c10gPSBUb29sdGlwU3RhdGVzLkZvY3VzZWQsIF9vbjNbVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyXSA9IFRvb2x0aXBTdGF0ZXMuRm9jdXNlZCwgX29uM1tUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVdID0gVG9vbHRpcFN0YXRlcy5MZWF2aW5nVmlzaWJsZSwgX29uM1tUb29sdGlwRXZlbnRzLkJsdXJdID0gVG9vbHRpcFN0YXRlcy5MZWF2aW5nVmlzaWJsZSwgX29uM1tUb29sdGlwRXZlbnRzLk1vdXNlRG93bl0gPSBUb29sdGlwU3RhdGVzLkRpc21pc3NlZCwgX29uM1tUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZF0gPSBUb29sdGlwU3RhdGVzLkRpc21pc3NlZCwgX29uM1tUb29sdGlwRXZlbnRzLkdsb2JhbE1vdXNlTW92ZV0gPSBUb29sdGlwU3RhdGVzLkxlYXZpbmdWaXNpYmxlLCBfb24zKVxuICB9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGVdID0ge1xuICAgIGVudGVyOiBzdGFydExlYXZpbmdWaXNpYmxlVGltZXIsXG4gICAgbGVhdmU6IGZ1bmN0aW9uIGxlYXZlKCkge1xuICAgICAgY2xlYXJMZWF2aW5nVmlzaWJsZVRpbWVyKCk7XG4gICAgICBjbGVhckNvbnRleHRJZCgpO1xuICAgIH0sXG4gICAgb246IChfb240ID0ge30sIF9vbjRbVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyXSA9IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSwgX29uNFtUb29sdGlwRXZlbnRzLkZvY3VzXSA9IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSwgX29uNFtUb29sdGlwRXZlbnRzLlRpbWVDb21wbGV0ZV0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjQpXG4gIH0sIF9zdGF0ZXNbVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWRdID0ge1xuICAgIGxlYXZlOiBmdW5jdGlvbiBsZWF2ZSgpIHtcbiAgICAgIGNsZWFyQ29udGV4dElkKCk7XG4gICAgfSxcbiAgICBvbjogKF9vbjUgPSB7fSwgX29uNVtUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVdID0gVG9vbHRpcFN0YXRlcy5JZGxlLCBfb241W1Rvb2x0aXBFdmVudHMuQmx1cl0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjUpXG4gIH0sIF9zdGF0ZXMpXG59O1xuLypcbiAqIENoYXJ0IGNvbnRleHQgYWxsb3dzIHVzIHRvIHBlcnNpc3Qgc29tZSBkYXRhIGFyb3VuZCwgaW4gVG9vbHRpcCBhbGwgd2UgdXNlXG4gKiBpcyB0aGUgaWQgb2YgdGhlIGN1cnJlbnQgdG9vbHRpcCBiZWluZyBpbnRlcmFjdGVkIHdpdGguXG4gKi9cblxudmFyIHN0YXRlID0ge1xuICB2YWx1ZTogY2hhcnQuaW5pdGlhbCxcbiAgY29udGV4dDoge1xuICAgIGlkOiBudWxsXG4gIH1cbn07IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTdWJzY3JpcHRpb25zOlxuLy9cbi8vIFdlIGNvdWxkIHJlcXVpcmUgYXBwcyB0byByZW5kZXIgYSA8VG9vbHRpcFByb3ZpZGVyPiBhcm91bmQgdGhlIGFwcCBhbmQgdXNlXG4vLyBSZWFjdCBjb250ZXh0IHRvIG5vdGlmeSBUb29sdGlwcyBvZiBjaGFuZ2VzIHRvIG91ciBzdGF0ZSBtYWNoaW5lLCBpbnN0ZWFkXG4vLyB3ZSBtYW5hZ2Ugc3Vic2NyaXB0aW9ucyBvdXJzZWx2ZXMgYW5kIHNpbXBsaWZ5IHRoZSBUb29sdGlwIEFQSS5cbi8vXG4vLyBNYXliZSBpZiBkZWZhdWx0IGNvbnRleHQgY291bGQgdGFrZSBhIGhvb2sgKGluc3RlYWQgb2YganVzdCBhIHN0YXRpYyB2YWx1ZSlcbi8vIHRoYXQgd2FzIHJlbmRlcmVkIGF0IHRoZSByb290IGZvciB1cywgdGhhdCdkIGJlIGNvb2whIEJ1dCBpdCBkb2Vzbid0LlxuXG52YXIgc3Vic2NyaXB0aW9ucyA9IFtdO1xuXG5mdW5jdGlvbiBzdWJzY3JpYmUoZm4pIHtcbiAgc3Vic2NyaXB0aW9ucy5wdXNoKGZuKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBzdWJzY3JpcHRpb25zLnNwbGljZShzdWJzY3JpcHRpb25zLmluZGV4T2YoZm4pLCAxKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gbm90aWZ5KCkge1xuICBzdWJzY3JpcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgcmV0dXJuIGZuKHN0YXRlKTtcbiAgfSk7XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBUaW1lb3V0czpcbi8vIE1hbmFnZXMgd2hlbiB0aGUgdXNlciBcInJlc3RzXCIgb24gYW4gZWxlbWVudC4gS2VlcHMgdGhlIGludGVyZmFjZSBmcm9tIGJlaW5nXG4vLyBmbGFzaGluZyB0b29sdGlwcyBhbGwgdGhlIHRpbWUgYXMgdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIGFyb3VuZCB0aGUgc2NyZWVuLlxuXG5cbnZhciByZXN0VGltZW91dDtcblxuZnVuY3Rpb24gc3RhcnRSZXN0VGltZXIoKSB7XG4gIHdpbmRvdy5jbGVhclRpbWVvdXQocmVzdFRpbWVvdXQpO1xuICByZXN0VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuUmVzdFxuICAgIH0pO1xuICB9LCBNT1VTRV9SRVNUX1RJTUVPVVQpO1xufVxuXG5mdW5jdGlvbiBjbGVhclJlc3RUaW1lcigpIHtcbiAgd2luZG93LmNsZWFyVGltZW91dChyZXN0VGltZW91dCk7XG59IC8vIE1hbmFnZXMgdGhlIGRlbGF5IHRvIGhpZGUgdGhlIHRvb2x0aXAgYWZ0ZXIgcmVzdCBsZWF2ZXMuXG5cblxudmFyIGxlYXZpbmdWaXNpYmxlVGltZXI7XG5cbmZ1bmN0aW9uIHN0YXJ0TGVhdmluZ1Zpc2libGVUaW1lcigpIHtcbiAgd2luZG93LmNsZWFyVGltZW91dChsZWF2aW5nVmlzaWJsZVRpbWVyKTtcbiAgbGVhdmluZ1Zpc2libGVUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlRpbWVDb21wbGV0ZVxuICAgIH0pO1xuICB9LCBMRUFWRV9USU1FT1VUKTtcbn1cblxuZnVuY3Rpb24gY2xlYXJMZWF2aW5nVmlzaWJsZVRpbWVyKCkge1xuICB3aW5kb3cuY2xlYXJUaW1lb3V0KGxlYXZpbmdWaXNpYmxlVGltZXIpO1xufSAvLyBhbGxvd3MgdXMgdG8gY29tZSBvbiBiYWNrIGxhdGVyIHcvbyBlbnRlcmluZyBzb21ldGhpbmcgZWxzZSBmaXJzdCBhZnRlciB0aGVcbi8vIHVzZXIgbGVhdmVzIG9yIGRpc21pc3Nlc1xuXG5cbmZ1bmN0aW9uIGNsZWFyQ29udGV4dElkKCkge1xuICBzdGF0ZS5jb250ZXh0LmlkID0gbnVsbDtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiB1c2VUb29sdGlwXG4gKlxuICogQHBhcmFtIHBhcmFtc1xuICovXG5cblxuZnVuY3Rpb24gdXNlVG9vbHRpcChfdGVtcCkge1xuICB2YXIgX3JlZiA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wLFxuICAgICAgaWRQcm9wID0gX3JlZi5pZCxcbiAgICAgIG9uUG9pbnRlckVudGVyID0gX3JlZi5vblBvaW50ZXJFbnRlcixcbiAgICAgIG9uUG9pbnRlck1vdmUgPSBfcmVmLm9uUG9pbnRlck1vdmUsXG4gICAgICBvblBvaW50ZXJMZWF2ZSA9IF9yZWYub25Qb2ludGVyTGVhdmUsXG4gICAgICBvblBvaW50ZXJEb3duID0gX3JlZi5vblBvaW50ZXJEb3duLFxuICAgICAgb25Nb3VzZUVudGVyID0gX3JlZi5vbk1vdXNlRW50ZXIsXG4gICAgICBvbk1vdXNlTW92ZSA9IF9yZWYub25Nb3VzZU1vdmUsXG4gICAgICBvbk1vdXNlTGVhdmUgPSBfcmVmLm9uTW91c2VMZWF2ZSxcbiAgICAgIG9uTW91c2VEb3duID0gX3JlZi5vbk1vdXNlRG93bixcbiAgICAgIG9uRm9jdXMgPSBfcmVmLm9uRm9jdXMsXG4gICAgICBvbkJsdXIgPSBfcmVmLm9uQmx1cixcbiAgICAgIG9uS2V5RG93biA9IF9yZWYub25LZXlEb3duLFxuICAgICAgZGlzYWJsZWQgPSBfcmVmLmRpc2FibGVkLFxuICAgICAgZm9yd2FyZGVkUmVmID0gX3JlZi5yZWYsXG4gICAgICBERUJVR19TVFlMRSA9IF9yZWYuREVCVUdfU1RZTEU7XG5cbiAgdmFyIGlkID0gU3RyaW5nKHVzZUlkKGlkUHJvcCkpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSB1c2VTdGF0ZShERUJVR19TVFlMRSA/IHRydWUgOiBpc1Rvb2x0aXBWaXNpYmxlKGlkLCB0cnVlKSksXG4gICAgICBpc1Zpc2libGUgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRJc1Zpc2libGUgPSBfUmVhY3QkdXNlU3RhdGVbMV07IC8vIGhvcGVmdWxseSB0aGV5IGFsd2F5cyBwYXNzIGEgcmVmIGlmIHRoZXkgZXZlciBwYXNzIG9uZVxuXG5cbiAgdmFyIG93blJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHJlZiA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIG93blJlZik7XG4gIHZhciB0cmlnZ2VyUmVjdCA9IHVzZVJlY3Qob3duUmVmLCB7XG4gICAgb2JzZXJ2ZTogaXNWaXNpYmxlXG4gIH0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBzdWJzY3JpYmUoZnVuY3Rpb24gKCkge1xuICAgICAgc2V0SXNWaXNpYmxlKGlzVG9vbHRpcFZpc2libGUoaWQpKTtcbiAgICB9KTtcbiAgfSwgW2lkXSk7XG4gIHVzZUNoZWNrU3R5bGVzKFwidG9vbHRpcFwiKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnQob3duUmVmLmN1cnJlbnQpO1xuXG4gICAgZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQpIHtcbiAgICAgIGlmICgoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiIHx8IGV2ZW50LmtleSA9PT0gXCJFc2NcIikgJiYgc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSkge1xuICAgICAgICBzZW5kKHtcbiAgICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgbGlzdGVuZXIpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgdXNlRGlzYWJsZWRUcmlnZ2VyT25TYWZhcmkoe1xuICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBpc1Zpc2libGU6IGlzVmlzaWJsZSxcbiAgICByZWY6IG93blJlZlxuICB9KTtcblxuICBmdW5jdGlvbiB3cmFwTW91c2VFdmVudCh0aGVpckhhbmRsZXIsIG91ckhhbmRsZXIpIHtcbiAgICAvLyBVc2UgaW50ZXJuYWwgTW91c2VFdmVudCBoYW5kbGVyIG9ubHkgaWYgUG9pbnRlckV2ZW50IGlzIG5vdCBzdXBwb3J0ZWRcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBcIlBvaW50ZXJFdmVudFwiIGluIHdpbmRvdykge1xuICAgICAgcmV0dXJuIHRoZWlySGFuZGxlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9zZUV2ZW50SGFuZGxlcnModGhlaXJIYW5kbGVyLCBvdXJIYW5kbGVyKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdyYXBQb2ludGVyRXZlbnRIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gb25Qb2ludGVyRXZlbnQoZXZlbnQpIHtcbiAgICAgIC8vIEhhbmRsZSBwb2ludGVyIGV2ZW50cyBvbmx5IGZyb20gbW91c2UgZGV2aWNlXG4gICAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgIT09IFwibW91c2VcIikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZXIoZXZlbnQpO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVNb3VzZUVudGVyKCkge1xuICAgIHNlbmQoe1xuICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyLFxuICAgICAgaWQ6IGlkXG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVNb3VzZU1vdmUoKSB7XG4gICAgc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLk1vdXNlTW92ZSxcbiAgICAgIGlkOiBpZFxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VMZWF2ZSgpIHtcbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuTW91c2VMZWF2ZVxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VEb3duKCkge1xuICAgIC8vIEFsbG93IHF1aWNrIGNsaWNrIGZyb20gb25lIHRvb2wgdG8gYW5vdGhlclxuICAgIGlmIChzdGF0ZS5jb250ZXh0LmlkID09PSBpZCkge1xuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuTW91c2VEb3duXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVGb2N1cygpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKHdpbmRvdy5fX1JFQUNIX0RJU0FCTEVfVE9PTFRJUFMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuRm9jdXMsXG4gICAgICBpZDogaWRcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUJsdXIoKSB7XG4gICAgLy8gQWxsb3cgcXVpY2sgY2xpY2sgZnJvbSBvbmUgdG9vbCB0byBhbm90aGVyXG4gICAgaWYgKHN0YXRlLmNvbnRleHQuaWQgPT09IGlkKSB7XG4gICAgICBzZW5kKHtcbiAgICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5CbHVyXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHRyaWdnZXIgPSB7XG4gICAgLy8gVGhlIGVsZW1lbnQgdGhhdCB0cmlnZ2VycyB0aGUgdG9vbHRpcCByZWZlcmVuY2VzIHRoZSB0b29sdGlwIGVsZW1lbnQgd2l0aFxuICAgIC8vIGBhcmlhLWRlc2NyaWJlZGJ5YC5cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMi8jdG9vbHRpcFxuICAgIFwiYXJpYS1kZXNjcmliZWRieVwiOiBpc1Zpc2libGUgPyBtYWtlSWQoXCJ0b29sdGlwXCIsIGlkKSA6IHVuZGVmaW5lZCxcbiAgICBcImRhdGEtc3RhdGVcIjogaXNWaXNpYmxlID8gXCJ0b29sdGlwLXZpc2libGVcIiA6IFwidG9vbHRpcC1oaWRkZW5cIixcbiAgICBcImRhdGEtcmVhY2gtdG9vbHRpcC10cmlnZ2VyXCI6IFwiXCIsXG4gICAgcmVmOiByZWYsXG4gICAgb25Qb2ludGVyRW50ZXI6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlckVudGVyLCB3cmFwUG9pbnRlckV2ZW50SGFuZGxlcihoYW5kbGVNb3VzZUVudGVyKSksXG4gICAgb25Qb2ludGVyTW92ZTogY29tcG9zZUV2ZW50SGFuZGxlcnMob25Qb2ludGVyTW92ZSwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VNb3ZlKSksXG4gICAgb25Qb2ludGVyTGVhdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlckxlYXZlLCB3cmFwUG9pbnRlckV2ZW50SGFuZGxlcihoYW5kbGVNb3VzZUxlYXZlKSksXG4gICAgb25Qb2ludGVyRG93bjogY29tcG9zZUV2ZW50SGFuZGxlcnMob25Qb2ludGVyRG93biwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VEb3duKSksXG4gICAgb25Nb3VzZUVudGVyOiB3cmFwTW91c2VFdmVudChvbk1vdXNlRW50ZXIsIGhhbmRsZU1vdXNlRW50ZXIpLFxuICAgIG9uTW91c2VNb3ZlOiB3cmFwTW91c2VFdmVudChvbk1vdXNlTW92ZSwgaGFuZGxlTW91c2VNb3ZlKSxcbiAgICBvbk1vdXNlTGVhdmU6IHdyYXBNb3VzZUV2ZW50KG9uTW91c2VMZWF2ZSwgaGFuZGxlTW91c2VMZWF2ZSksXG4gICAgb25Nb3VzZURvd246IHdyYXBNb3VzZUV2ZW50KG9uTW91c2VEb3duLCBoYW5kbGVNb3VzZURvd24pLFxuICAgIG9uRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uRm9jdXMsIGhhbmRsZUZvY3VzKSxcbiAgICBvbkJsdXI6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uQmx1ciwgaGFuZGxlQmx1ciksXG4gICAgb25LZXlEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvbktleURvd24sIGhhbmRsZUtleURvd24pXG4gIH07XG4gIHZhciB0b29sdGlwID0ge1xuICAgIGlkOiBpZCxcbiAgICB0cmlnZ2VyUmVjdDogdHJpZ2dlclJlY3QsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGVcbiAgfTtcbiAgcmV0dXJuIFt0cmlnZ2VyLCB0b29sdGlwLCBpc1Zpc2libGVdO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFRvb2x0aXBcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Rvb2x0aXAjdG9vbHRpcFxuICovXG5cblxudmFyIFRvb2x0aXAgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiAoX3JlZjIsIGZvcndhcmRlZFJlZikge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmMi5jaGlsZHJlbixcbiAgICAgIGxhYmVsID0gX3JlZjIubGFiZWwsXG4gICAgICBERVBSRUNBVEVEX2FyaWFMYWJlbCA9IF9yZWYyLmFyaWFMYWJlbCxcbiAgICAgIGlkID0gX3JlZjIuaWQsXG4gICAgICBERUJVR19TVFlMRSA9IF9yZWYyLkRFQlVHX1NUWUxFLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmMiwgX2V4Y2x1ZGVkKTtcblxuICB2YXIgY2hpbGQgPSBDaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyghREVQUkVDQVRFRF9hcmlhTGFiZWwsIFwiVGhlIGBhcmlhTGFiZWwgcHJvcCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBAcmVhY2gvdG9vbHRpcCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFJlYWNoIFVJLiBQbGVhc2UgdXNlIGBhcmlhLWxhYmVsYCBpbnN0ZWFkLlwiKSA6IHZvaWQgMDsgLy8gV2UgbmVlZCB0byBwYXNzIHNvbWUgcHJvcGVydGllcyBmcm9tIHRoZSBjaGlsZCBpbnRvIHVzZVRvb2x0aXBcbiAgLy8gdG8gbWFrZSBzdXJlIHVzZXJzIGNhbiBtYWludGFpbiBjb250cm9sIG92ZXIgdGhlIHRyaWdnZXIncyByZWYgYW5kIGV2ZW50c1xuXG4gIHZhciBfdXNlVG9vbHRpcCA9IHVzZVRvb2x0aXAoe1xuICAgIGlkOiBpZCxcbiAgICBvblBvaW50ZXJFbnRlcjogY2hpbGQucHJvcHMub25Qb2ludGVyRW50ZXIsXG4gICAgb25Qb2ludGVyTW92ZTogY2hpbGQucHJvcHMub25Qb2ludGVyTW92ZSxcbiAgICBvblBvaW50ZXJMZWF2ZTogY2hpbGQucHJvcHMub25Qb2ludGVyTGVhdmUsXG4gICAgb25Qb2ludGVyRG93bjogY2hpbGQucHJvcHMub25Qb2ludGVyRG93bixcbiAgICBvbk1vdXNlRW50ZXI6IGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcixcbiAgICBvbk1vdXNlTW92ZTogY2hpbGQucHJvcHMub25Nb3VzZU1vdmUsXG4gICAgb25Nb3VzZUxlYXZlOiBjaGlsZC5wcm9wcy5vbk1vdXNlTGVhdmUsXG4gICAgb25Nb3VzZURvd246IGNoaWxkLnByb3BzLm9uTW91c2VEb3duLFxuICAgIG9uRm9jdXM6IGNoaWxkLnByb3BzLm9uRm9jdXMsXG4gICAgb25CbHVyOiBjaGlsZC5wcm9wcy5vbkJsdXIsXG4gICAgb25LZXlEb3duOiBjaGlsZC5wcm9wcy5vbktleURvd24sXG4gICAgZGlzYWJsZWQ6IGNoaWxkLnByb3BzLmRpc2FibGVkLFxuICAgIHJlZjogY2hpbGQucmVmLFxuICAgIERFQlVHX1NUWUxFOiBERUJVR19TVFlMRVxuICB9KSxcbiAgICAgIHRyaWdnZXIgPSBfdXNlVG9vbHRpcFswXSxcbiAgICAgIHRvb2x0aXAgPSBfdXNlVG9vbHRpcFsxXTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9jbG9uZUVsZW1lbnQoY2hpbGQsIHRyaWdnZXIpLCAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChUb29sdGlwUG9wdXAsIF9leHRlbmRzKHtcbiAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICBsYWJlbDogbGFiZWwsXG4gICAgXCJhcmlhLWxhYmVsXCI6IERFUFJFQ0FURURfYXJpYUxhYmVsXG4gIH0sIHRvb2x0aXAsIHByb3BzKSkpO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcC5kaXNwbGF5TmFtZSA9IFwiVG9vbHRpcFwiO1xuICBUb29sdGlwLnByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmdcbiAgfTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBUb29sdGlwUG9wdXBcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Rvb2x0aXAjdG9vbHRpcHBvcHVwXG4gKi9cblxuXG52YXIgVG9vbHRpcFBvcHVwID0gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoZnVuY3Rpb24gVG9vbHRpcFBvcHVwKF9yZWYzLCBmb3J3YXJkUmVmKSB7XG4gIHZhciBsYWJlbCA9IF9yZWYzLmxhYmVsLFxuICAgICAgREVQUkVDQVRFRF9hcmlhTGFiZWwgPSBfcmVmMy5hcmlhTGFiZWwsXG4gICAgICBpc1Zpc2libGUgPSBfcmVmMy5pc1Zpc2libGUsXG4gICAgICBpZCA9IF9yZWYzLmlkLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmMywgX2V4Y2x1ZGVkMik7XG5cbiAgcmV0dXJuIGlzVmlzaWJsZSA/IC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFBvcnRhbCwgbnVsbCwgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoVG9vbHRpcENvbnRlbnQsIF9leHRlbmRzKHtcbiAgICByZWY6IGZvcndhcmRSZWYsXG4gICAgbGFiZWw6IGxhYmVsLFxuICAgIFwiYXJpYS1sYWJlbFwiOiBERVBSRUNBVEVEX2FyaWFMYWJlbCxcbiAgICBpc1Zpc2libGU6IGlzVmlzaWJsZVxuICB9LCBwcm9wcywge1xuICAgIGlkOiBtYWtlSWQoXCJ0b29sdGlwXCIsIFN0cmluZyhpZCkpXG4gIH0pKSkgOiBudWxsO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcFBvcHVwLmRpc3BsYXlOYW1lID0gXCJUb29sdGlwUG9wdXBcIjtcbiAgVG9vbHRpcFBvcHVwLnByb3BUeXBlcyA9IHtcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgcG9zaXRpb246IFByb3BUeXBlcy5mdW5jXG4gIH07XG59XG4vKipcbiAqIFRvb2x0aXBDb250ZW50XG4gKlxuICogV2UgbmVlZCBhIHNlcGFyYXRlIGNvbXBvbmVudCBzbyB0aGF0IHVzZVJlY3Qgd29ya3MgaW5zaWRlIHRoZSBwb3J0YWwuXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC90b29sdGlwI3Rvb2x0aXBjb250ZW50XG4gKi9cblxuXG52YXIgVG9vbHRpcENvbnRlbnQgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiBUb29sdGlwQ29udGVudChfcmVmNCwgZm9yd2FyZGVkUmVmKSB7XG4gIHZhciBhcmlhTGFiZWwgPSBfcmVmNC5hcmlhTGFiZWwsXG4gICAgICByZWFsQXJpYUxhYmVsID0gX3JlZjRbXCJhcmlhLWxhYmVsXCJdLFxuICAgICAgX3JlZjQkYXMgPSBfcmVmNC5hcyxcbiAgICAgIENvbXAgPSBfcmVmNCRhcyA9PT0gdm9pZCAwID8gXCJkaXZcIiA6IF9yZWY0JGFzLFxuICAgICAgaWQgPSBfcmVmNC5pZCxcbiAgICAgIGlzVmlzaWJsZSA9IF9yZWY0LmlzVmlzaWJsZSxcbiAgICAgIGxhYmVsID0gX3JlZjQubGFiZWwsXG4gICAgICBfcmVmNCRwb3NpdGlvbiA9IF9yZWY0LnBvc2l0aW9uLFxuICAgICAgcG9zaXRpb24gPSBfcmVmNCRwb3NpdGlvbiA9PT0gdm9pZCAwID8gcG9zaXRpb25Ub29sdGlwIDogX3JlZjQkcG9zaXRpb24sXG4gICAgICBzdHlsZSA9IF9yZWY0LnN0eWxlLFxuICAgICAgdHJpZ2dlclJlY3QgPSBfcmVmNC50cmlnZ2VyUmVjdCxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZjQsIF9leGNsdWRlZDMpO1xuXG4gIC8vIFRoZSBlbGVtZW50IHRoYXQgc2VydmVzIGFzIHRoZSB0b29sdGlwIGNvbnRhaW5lciBoYXMgcm9sZSB0b29sdGlwLlxuICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMi8jdG9vbHRpcCBXaGVuIGFuIGFwcCBwYXNzZXNcbiAgLy8gYW4gYGFyaWEtbGFiZWxgLCB3ZSBhY3R1YWxseSB3YW50IHRvIGltcGxlbWVudCBgcm9sZT1cInRvb2x0aXBcImAgb24gYVxuICAvLyB2aXN1YWxseSBoaWRkZW4gZWxlbWVudCBpbnNpZGUgb2YgdGhlIHRyaWdnZXIuIEluIHRoZXNlIGNhc2VzIHdlIHdhbnQgdGhlXG4gIC8vIHNjcmVlbiByZWFkZXIgdXNlciB0byBrbm93IGJvdGggdGhlIGNvbnRlbnQgaW4gdGhlIHRvb2x0aXAsIGJ1dCBhbHNvIHRoZVxuICAvLyBjb250ZW50IGluIHRoZSBiYWRnZS4gRm9yIHNjcmVlbiByZWFkZXIgdXNlcnMsIHRoZSBvbmx5IGNvbnRlbnQgYW5ub3VuY2VkXG4gIC8vIHRvIHRoZW0gaXMgd2hhdGV2ZXIgaXMgaW4gdGhlIHRvb2x0aXAuXG4gIHZhciBoYXNBcmlhTGFiZWwgPSAocmVhbEFyaWFMYWJlbCB8fCBhcmlhTGFiZWwpICE9IG51bGw7XG4gIHZhciBvd25SZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciByZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBvd25SZWYpO1xuICB2YXIgdG9vbHRpcFJlY3QgPSB1c2VSZWN0KG93blJlZiwge1xuICAgIG9ic2VydmU6IGlzVmlzaWJsZVxuICB9KTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KEZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChDb21wLCBfZXh0ZW5kcyh7XG4gICAgcm9sZTogaGFzQXJpYUxhYmVsID8gdW5kZWZpbmVkIDogXCJ0b29sdGlwXCJcbiAgfSwgcHJvcHMsIHtcbiAgICByZWY6IHJlZixcbiAgICBcImRhdGEtcmVhY2gtdG9vbHRpcFwiOiBcIlwiLFxuICAgIGlkOiBoYXNBcmlhTGFiZWwgPyB1bmRlZmluZWQgOiBpZCxcbiAgICBzdHlsZTogX2V4dGVuZHMoe30sIHN0eWxlLCBnZXRTdHlsZXMocG9zaXRpb24sIHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkpXG4gIH0pLCBsYWJlbCksIGhhc0FyaWFMYWJlbCAmJiAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChWaXN1YWxseUhpZGRlbiwge1xuICAgIHJvbGU6IFwidG9vbHRpcFwiLFxuICAgIGlkOiBpZFxuICB9LCByZWFsQXJpYUxhYmVsIHx8IGFyaWFMYWJlbCkpO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcENvbnRlbnQuZGlzcGxheU5hbWUgPSBcIlRvb2x0aXBDb250ZW50XCI7XG4gIFRvb2x0aXBDb250ZW50LnByb3BUeXBlcyA9IHt9O1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbmZ1bmN0aW9uIGdldFN0eWxlcyhwb3NpdGlvbiwgdHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KSB7XG4gIHZhciBoYXZlbnRNZWFzdXJlZFRvb2x0aXBZZXQgPSAhdG9vbHRpcFJlY3Q7XG5cbiAgaWYgKGhhdmVudE1lYXN1cmVkVG9vbHRpcFlldCkge1xuICAgIHJldHVybiB7XG4gICAgICB2aXNpYmlsaXR5OiBcImhpZGRlblwiXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBwb3NpdGlvbih0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpO1xufSAvLyBEZWZhdWx0IG9mZnNldCBmcm9tIHRoZSB0cmlnZ2VyIChlLmcuLCBpZiB0aGUgdG9vbHRpcCBpcyBwb3NpdGlvbmVkIGFib3ZlLFxuLy8gdGhlcmUgd2lsbCBiZSA4cHggYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSB0b29sdGlwIGFuZCB0aGUgdG9wIG9mIHRoZSB0cmlnZ2VyKS5cbi8vIEl0IGZlZWxzIGF3a3dhcmQgd2hlbiBpdCdzIHBlcmZlY3RseSBhbGlnbmVkIHcvIHRoZSB0cmlnZ2VyXG5cblxudmFyIE9GRlNFVF9ERUZBVUxUID0gODtcbnZhciBwb3NpdGlvblRvb2x0aXAgPSBmdW5jdGlvbiBwb3NpdGlvblRvb2x0aXAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCBvZmZzZXQpIHtcbiAgaWYgKG9mZnNldCA9PT0gdm9pZCAwKSB7XG4gICAgb2Zmc2V0ID0gT0ZGU0VUX0RFRkFVTFQ7XG4gIH1cblxuICB2YXIgX2dldERvY3VtZW50RGltZW5zaW9uID0gZ2V0RG9jdW1lbnREaW1lbnNpb25zKCksXG4gICAgICB3aW5kb3dXaWR0aCA9IF9nZXREb2N1bWVudERpbWVuc2lvbi53aWR0aCxcbiAgICAgIHdpbmRvd0hlaWdodCA9IF9nZXREb2N1bWVudERpbWVuc2lvbi5oZWlnaHQ7XG5cbiAgaWYgKCF0cmlnZ2VyUmVjdCB8fCAhdG9vbHRpcFJlY3QpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICB2YXIgY29sbGlzaW9ucyA9IHtcbiAgICB0b3A6IHRyaWdnZXJSZWN0LnRvcCAtIHRvb2x0aXBSZWN0LmhlaWdodCA8IDAsXG4gICAgcmlnaHQ6IHdpbmRvd1dpZHRoIDwgdHJpZ2dlclJlY3QubGVmdCArIHRvb2x0aXBSZWN0LndpZHRoLFxuICAgIGJvdHRvbTogd2luZG93SGVpZ2h0IDwgdHJpZ2dlclJlY3QuYm90dG9tICsgdG9vbHRpcFJlY3QuaGVpZ2h0ICsgb2Zmc2V0LFxuICAgIGxlZnQ6IHRyaWdnZXJSZWN0LmxlZnQgLSB0b29sdGlwUmVjdC53aWR0aCA8IDBcbiAgfTtcbiAgdmFyIGRpcmVjdGlvblJpZ2h0ID0gY29sbGlzaW9ucy5yaWdodCAmJiAhY29sbGlzaW9ucy5sZWZ0O1xuICB2YXIgZGlyZWN0aW9uVXAgPSBjb2xsaXNpb25zLmJvdHRvbSAmJiAhY29sbGlzaW9ucy50b3A7XG4gIHJldHVybiB7XG4gICAgbGVmdDogZGlyZWN0aW9uUmlnaHQgPyB0cmlnZ2VyUmVjdC5yaWdodCAtIHRvb2x0aXBSZWN0LndpZHRoICsgd2luZG93LnBhZ2VYT2Zmc2V0ICsgXCJweFwiIDogdHJpZ2dlclJlY3QubGVmdCArIHdpbmRvdy5wYWdlWE9mZnNldCArIFwicHhcIixcbiAgICB0b3A6IGRpcmVjdGlvblVwID8gdHJpZ2dlclJlY3QudG9wIC0gb2Zmc2V0IC0gdG9vbHRpcFJlY3QuaGVpZ2h0ICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgXCJweFwiIDogdHJpZ2dlclJlY3QudG9wICsgb2Zmc2V0ICsgdHJpZ2dlclJlY3QuaGVpZ2h0ICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgXCJweFwiXG4gIH07XG59O1xuLyoqXG4gKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgdXNpbmcgdG9vbHRpcHMgd2l0aCBkaXNhYmxlZCBjb250cm9scyBpbiBTYWZhcmkuXG4gKiBTYWZhcmkgZmlyZXMgYHBvaW50ZXJlbnRlcmAgYnV0IGRvZXMgbm90IGZpcmUgYHBvaW50ZXJsZWF2ZWAsIGFuZFxuICogYG9uUG9pbnRlckV2ZW50TGVhdmVgIGFkZGVkIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQgd2lsbCBub3Qgd29yay5cbiAqXG4gKiBUT0RPOiBXZSBtYXkgcmVtb3ZlIG9yIG1vZGlpZnkgdGhpcyBiZWhhdmlvciBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBEaXJlY3Rpb25cbiAqIGZyb20gV0FJLUFSSUEgbmVlZGVkIGZvciBndWlkYW5jZSBvbiBoYW5kbGluZyBkaXNhYmxlZCB0cmlnZ2Vycy4gVG9vbHRpcHNcbiAqIG11c3QgYmUgYWNjZXNzaWJsZSBieSBrZXlib2FyZCwgYW5kIGRpc2FibGVkIGZvcm0gY29udHJvbHMgYXJlIGdlbmVyYWxseVxuICogZXhjbHVkZWQgZnJvbSB0aGUgdGFiIHNlcXVlbmNlLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL2lzc3Vlcy81NjRcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9hcmlhLXByYWN0aWNlcy9pc3N1ZXMvMTI4I2lzc3VlY29tbWVudC01ODg2MjU3MjdcbiAqL1xuXG5mdW5jdGlvbiB1c2VEaXNhYmxlZFRyaWdnZXJPblNhZmFyaShfcmVmNSkge1xuICB2YXIgZGlzYWJsZWQgPSBfcmVmNS5kaXNhYmxlZCxcbiAgICAgIGlzVmlzaWJsZSA9IF9yZWY1LmlzVmlzaWJsZSxcbiAgICAgIHJlZiA9IF9yZWY1LnJlZjtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIFwiUG9pbnRlckV2ZW50XCIgaW4gd2luZG93KSB8fCAhZGlzYWJsZWQgfHwgIWlzVmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2V0T3duZXJEb2N1bWVudChyZWYuY3VycmVudCk7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVNb3VzZU1vdmUoZXZlbnQpIHtcbiAgICAgIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgZXZlbnQudGFyZ2V0LmNsb3Nlc3QoXCJbZGF0YS1yZWFjaC10b29sdGlwLXRyaWdnZXJdW2RhdGEtc3RhdGU9J3Rvb2x0aXAtdmlzaWJsZSddXCIpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuR2xvYmFsTW91c2VNb3ZlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlTW91c2VNb3ZlKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGhhbmRsZU1vdXNlTW92ZSk7XG4gICAgfTtcbiAgfSwgW2Rpc2FibGVkLCBpc1Zpc2libGUsIHJlZl0pO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFNlbmQgYW4gZXZlbnQgdG8gb3VyIHN0YXRlIG1hY2hpbmUgdG8gZmluZCB0aGUgbmV4dCBzdGF0ZSBmcm9tIHRoZSBjdXJyZW50XG4gKiBzdGF0ZSArIGFjdGlvbi5cbiAqXG4gKiBJdCBhbHNvIG1hbmFnZXMgbGlmZWN5Y2xlcyBvZiB0aGUgbWFjaGluZSwgKGVudGVyL2xlYXZlIGhvb2tzIG9uIHRoZSBzdGF0ZVxuICogY2hhcnQpXG4gKlxuICogQHBhcmFtIGV2ZW50XG4gKiBAcGFyYW0gcGF5bG9hZFxuICovXG5cblxuZnVuY3Rpb24gc2VuZChldmVudCkge1xuICB2YXIgX3RyYW5zaXRpb24gPSB0cmFuc2l0aW9uKHN0YXRlLCBldmVudCksXG4gICAgICB2YWx1ZSA9IF90cmFuc2l0aW9uLnZhbHVlLFxuICAgICAgY29udGV4dCA9IF90cmFuc2l0aW9uLmNvbnRleHQsXG4gICAgICBjaGFuZ2VkID0gX3RyYW5zaXRpb24uY2hhbmdlZDtcblxuICBpZiAoY2hhbmdlZCkge1xuICAgIHN0YXRlID0ge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH07XG4gICAgbm90aWZ5KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNpdGlvbihjdXJyZW50U3RhdGUsIGV2ZW50KSB7XG4gIHZhciBzdGF0ZURlZiA9IGNoYXJ0LnN0YXRlc1tjdXJyZW50U3RhdGUudmFsdWVdO1xuICB2YXIgbmV4dFN0YXRlID0gc3RhdGVEZWYgJiYgc3RhdGVEZWYub24gJiYgc3RhdGVEZWYub25bZXZlbnQudHlwZV07IC8vIFJlYWxseSB1c2VmdWwgZm9yIGRlYnVnZ2luZ1xuICAvLyBjb25zb2xlLmxvZyh7IGV2ZW50LCBzdGF0ZSwgbmV4dFN0YXRlLCBjb250ZXh0SWQ6IGNvbnRleHQuaWQgfSk7XG4gIC8vICFuZXh0U3RhdGUgJiYgY29uc29sZS5sb2coXCJubyB0cmFuc2l0aW9uIHRha2VuXCIpO1xuXG4gIGlmICghbmV4dFN0YXRlKSB7XG4gICAgcmV0dXJuIF9leHRlbmRzKHt9LCBjdXJyZW50U3RhdGUsIHtcbiAgICAgIGNoYW5nZWQ6IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICBpZiAoc3RhdGVEZWYgJiYgc3RhdGVEZWYubGVhdmUpIHtcbiAgICBzdGF0ZURlZi5sZWF2ZShjdXJyZW50U3RhdGUuY29udGV4dCwgZXZlbnQpO1xuICB9XG5cbiAgZXZlbnQudHlwZTtcbiAgICAgIHZhciBwYXlsb2FkID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZXZlbnQsIF9leGNsdWRlZDQpOyAvLyBUT0RPOiBVc2UgYWN0aW9ucyBpbnN0ZWFkIG9mIGRpcmVjdGx5IHNldHRpbmcgY29udGV4dFxuXG5cbiAgdmFyIGNvbnRleHQgPSBfZXh0ZW5kcyh7fSwgc3RhdGUuY29udGV4dCwgcGF5bG9hZCk7XG5cbiAgdmFyIG5leHRTdGF0ZVZhbHVlID0gdHlwZW9mIG5leHRTdGF0ZSA9PT0gXCJzdHJpbmdcIiA/IG5leHRTdGF0ZSA6IG5leHRTdGF0ZS50YXJnZXQ7XG4gIHZhciBuZXh0RGVmID0gY2hhcnQuc3RhdGVzW25leHRTdGF0ZVZhbHVlXTtcblxuICBpZiAobmV4dERlZiAmJiBuZXh0RGVmLmVudGVyKSB7XG4gICAgbmV4dERlZi5lbnRlcihjdXJyZW50U3RhdGUuY29udGV4dCwgZXZlbnQpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogbmV4dFN0YXRlVmFsdWUsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgICBjaGFuZ2VkOiB0cnVlXG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzVG9vbHRpcFZpc2libGUoaWQsIGluaXRpYWwpIHtcbiAgcmV0dXJuIHN0YXRlLmNvbnRleHQuaWQgPT09IGlkICYmIChpbml0aWFsID8gc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSA6IHN0YXRlLnZhbHVlID09PSBUb29sdGlwU3RhdGVzLlZpc2libGUgfHwgc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGUpO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZGVmYXVsdCBUb29sdGlwO1xuZXhwb3J0IHsgTEVBVkVfVElNRU9VVCwgTU9VU0VfUkVTVF9USU1FT1VULCBUb29sdGlwLCBUb29sdGlwUG9wdXAsIHBvc2l0aW9uVG9vbHRpcCwgdXNlVG9vbHRpcCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///456\n')},769:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "N": () => (/* binding */ canUseDOM)\n/* harmony export */ });\nfunction canUseDOM() {\n return !!(typeof window !== "undefined" && window.document && window.document.createElement);\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzY5LmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTs7QUFFcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanM/ZjM3ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBjYW5Vc2VET00oKSB7XG4gIHJldHVybiAhISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG59XG5cbmV4cG9ydCB7IGNhblVzZURPTSB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///769\n')},637:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"L\": () => (/* binding */ useIsomorphicLayoutEffect)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(776);\n/* harmony import */ var _can_use_dom_dist_reach_utils_can_use_dom_esm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(769);\n\n\n\n/**\n * React currently throws a warning when using useLayoutEffect on the server. To\n * get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\n * ensure we don't get a render flash for certain operations, but we may also\n * need affected components to render on the server. One example is when setting\n * a component's descendants to retrieve their index values.\n *\n * Important to note that using this hook as an escape hatch will break the\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\n * any server/client mismatch.\n *\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\n * likely that the component in question shouldn't be rendered on the server at\n * all, so a better approach would be to lazily render those in a parent\n * component after client-side hydration.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n *\n * @param effect\n * @param deps\n */\n\nvar useIsomorphicLayoutEffect = /*#__PURE__*/(0,_can_use_dom_dist_reach_utils_can_use_dom_esm_js__WEBPACK_IMPORTED_MODULE_1__/* .canUseDOM */ .N)() ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjM3LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW1EO0FBQytCOztBQUVsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNkNBQTZDLG9HQUFTLEtBQUssa0RBQWUsR0FBRyw0Q0FBUzs7QUFFakQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdC9kaXN0L3JlYWNoLXV0aWxzLXVzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QuZXNtLmpzPzE0MmQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjYW5Vc2VET00gfSBmcm9tICcuLi8uLi9jYW4tdXNlLWRvbS9kaXN0L3JlYWNoLXV0aWxzLWNhbi11c2UtZG9tLmVzbS5qcyc7XG5cbi8qKlxuICogUmVhY3QgY3VycmVudGx5IHRocm93cyBhIHdhcm5pbmcgd2hlbiB1c2luZyB1c2VMYXlvdXRFZmZlY3Qgb24gdGhlIHNlcnZlci4gVG9cbiAqIGdldCBhcm91bmQgaXQsIHdlIGNhbiBjb25kaXRpb25hbGx5IHVzZUVmZmVjdCBvbiB0aGUgc2VydmVyIChuby1vcCkgYW5kXG4gKiB1c2VMYXlvdXRFZmZlY3QgaW4gdGhlIGJyb3dzZXIuIFdlIG9jY2FzaW9uYWxseSBuZWVkIHVzZUxheW91dEVmZmVjdCB0b1xuICogZW5zdXJlIHdlIGRvbid0IGdldCBhIHJlbmRlciBmbGFzaCBmb3IgY2VydGFpbiBvcGVyYXRpb25zLCBidXQgd2UgbWF5IGFsc29cbiAqIG5lZWQgYWZmZWN0ZWQgY29tcG9uZW50cyB0byByZW5kZXIgb24gdGhlIHNlcnZlci4gT25lIGV4YW1wbGUgaXMgd2hlbiBzZXR0aW5nXG4gKiBhIGNvbXBvbmVudCdzIGRlc2NlbmRhbnRzIHRvIHJldHJpZXZlIHRoZWlyIGluZGV4IHZhbHVlcy5cbiAqXG4gKiBJbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHVzaW5nIHRoaXMgaG9vayBhcyBhbiBlc2NhcGUgaGF0Y2ggd2lsbCBicmVhayB0aGVcbiAqIGVzbGludCBkZXBlbmRlbmN5IHdhcm5pbmdzIHVubGVzcyB5b3UgcmVuYW1lIHRoZSBpbXBvcnQgdG8gYHVzZUxheW91dEVmZmVjdGAuXG4gKiBVc2Ugc3BhcmluZ2x5IG9ubHkgd2hlbiB0aGUgZWZmZWN0IHdvbid0IGVmZmVjdCB0aGUgcmVuZGVyZWQgSFRNTCB0byBhdm9pZFxuICogYW55IHNlcnZlci9jbGllbnQgbWlzbWF0Y2guXG4gKlxuICogSWYgYSB1c2VMYXlvdXRFZmZlY3QgaXMgbmVlZGVkIGFuZCB0aGUgcmVzdWx0IHdvdWxkIGNyZWF0ZSBhIG1pc21hdGNoLCBpdCdzXG4gKiBsaWtlbHkgdGhhdCB0aGUgY29tcG9uZW50IGluIHF1ZXN0aW9uIHNob3VsZG4ndCBiZSByZW5kZXJlZCBvbiB0aGUgc2VydmVyIGF0XG4gKiBhbGwsIHNvIGEgYmV0dGVyIGFwcHJvYWNoIHdvdWxkIGJlIHRvIGxhemlseSByZW5kZXIgdGhvc2UgaW4gYSBwYXJlbnRcbiAqIGNvbXBvbmVudCBhZnRlciBjbGllbnQtc2lkZSBoeWRyYXRpb24uXG4gKlxuICogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZ2FlYXJvbi9lN2Q5N2NkZjM4YTI5MDc5MjRlYTEyZTRlYmRmM2M4NVxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlZHV4anMvcmVhY3QtcmVkdXgvYmxvYi9tYXN0ZXIvc3JjL3V0aWxzL3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QuanNcbiAqXG4gKiBAcGFyYW0gZWZmZWN0XG4gKiBAcGFyYW0gZGVwc1xuICovXG5cbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gLyojX19QVVJFX18qL2NhblVzZURPTSgpID8gdXNlTGF5b3V0RWZmZWN0IDogdXNlRWZmZWN0O1xuXG5leHBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///637\n")},438:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, "prototype", {\n writable: false\n });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, "string");\n return typeof key === "symbol" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== "object" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || "default");\n if (typeof res !== "object") return res;\n throw new TypeError("@@toPrimitive must return a primitive value.");\n }\n return (hint === "string" ? String : Number)(input);\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== "function" && superClass !== null) {\n throw new TypeError("Super expression must either be null or a function");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, "prototype", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n }\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === "object" || typeof call === "function")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError("Derived constructors may only return object or undefined");\n }\n return _assertThisInitialized(self);\n }\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n }\n return self;\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === "undefined" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === "function") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n var Collapsible = function (_Component) {\n _inherits(Collapsible, _Component);\n var _super = _createSuper(Collapsible);\n function Collapsible(props) {\n var _this;\n _classCallCheck(this, Collapsible);\n _this = _super.call(this, props);\n _this.state = {\n isExpanded: false\n };\n _this._toggleExpanded = _this.toggleExpanded.bind(_assertThisInitialized(_this));\n _this._renderShowButton = _this.renderShowButton.bind(_assertThisInitialized(_this));\n _this._renderHideButton = _this.renderHideButton.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(Collapsible, [{\n key: "toggleExpanded",\n value: function toggleExpanded() {\n this.setState({\n isExpanded: !this.state.isExpanded\n });\n }\n }, {\n key: "renderShowButton",\n value: function renderShowButton() {\n return /*#__PURE__*/_react2["default"].createElement("span", {\n className: "collapsible-show-label"\n }, this.props.showLabel);\n }\n }, {\n key: "renderHideButton",\n value: function renderHideButton() {\n if (this.props.hideLabel) {\n return /*#__PURE__*/_react2["default"].createElement("span", {\n className: "collapsible-hide-label"\n }, this.props.hideLabel);\n } else {\n return "";\n }\n }\n }, {\n key: "render",\n value: function render() {\n var isArray = Array.isArray(this.props.content);\n var isHidden = this.state.isExpanded ? undefined : true;\n return /*#__PURE__*/_react2["default"].createElement("div", {\n className: "collapsible-container"\n }, /*#__PURE__*/_react2["default"].createElement("button", {\n onClick: this._toggleExpanded,\n className: "collapsible-summary",\n type: "button",\n "aria-expanded": this.state.isExpanded ? true : false\n }, this._renderShowButton(), this._renderHideButton()), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "collapsible-details",\n hidden: isHidden\n }, isArray ? /*#__PURE__*/_react2["default"].createElement("ul", {\n className: "items"\n }, this.props.content.map(function (c) {\n return /*#__PURE__*/_react2["default"].createElement("li", {\n key: c.contentTitle\n }, /*#__PURE__*/_react2["default"].createElement("p", null, /*#__PURE__*/_react2["default"].createElement("b", null, c.contentTitle)), /*#__PURE__*/_react2["default"].createElement("p", null, c.content));\n })) : /*#__PURE__*/_react2["default"].createElement("div", null, /*#__PURE__*/_react2["default"].createElement("p", null, /*#__PURE__*/_react2["default"].createElement("b", null, this.props.contentTitle)), /*#__PURE__*/_react2["default"].createElement("p", null, this.props.content))));\n }\n }]);\n return Collapsible;\n }(_react.Component);\n Collapsible.propTypes = {\n showLabel: _propTypes2["default"].string.isRequired,\n hideLabel: _propTypes2["default"].string.isRequired,\n content: _propTypes2["default"].oneOfType([_propTypes2["default"].array, _propTypes2["default"].string]).isRequired,\n contentTitle: _propTypes2["default"].string\n };\n exports["default"] = Collapsible;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UFBTdHlsZS8uL2NvbXBvbmVudHMvRXJyb3IvQ29sbGFwc2libGUuanN4PzU1OWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuXG5jbGFzcyBDb2xsYXBzaWJsZSBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBpc0V4cGFuZGVkOiBmYWxzZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl90b2dnbGVFeHBhbmRlZCA9IHRoaXMudG9nZ2xlRXhwYW5kZWQuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyU2hvd0J1dHRvbiA9IHRoaXMucmVuZGVyU2hvd0J1dHRvbi5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLl9yZW5kZXJIaWRlQnV0dG9uID0gdGhpcy5yZW5kZXJIaWRlQnV0dG9uLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgdG9nZ2xlRXhwYW5kZWQoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgaXNFeHBhbmRlZDogIXRoaXMuc3RhdGUuaXNFeHBhbmRlZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVuZGVyU2hvd0J1dHRvbigpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImNvbGxhcHNpYmxlLXNob3ctbGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5zaG93TGFiZWx9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVySGlkZUJ1dHRvbigpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuaGlkZUxhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImNvbGxhcHNpYmxlLWhpZGUtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMuaGlkZUxhYmVsfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkodGhpcy5wcm9wcy5jb250ZW50KTtcbiAgICAgICAgY29uc3QgaXNIaWRkZW4gPSB0aGlzLnN0YXRlLmlzRXhwYW5kZWQgPyB1bmRlZmluZWQgOiB0cnVlO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbGxhcHNpYmxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5fdG9nZ2xlRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNvbGxhcHNpYmxlLXN1bW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17dGhpcy5zdGF0ZS5pc0V4cGFuZGVkID8gdHJ1ZSA6IGZhbHNlfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3RoaXMuX3JlbmRlclNob3dCdXR0b24oKX1cbiAgICAgICAgICAgICAgICAgICAge3RoaXMuX3JlbmRlckhpZGVCdXR0b24oKX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sbGFwc2libGUtZGV0YWlsc1wiIGhpZGRlbj17aXNIaWRkZW59PlxuICAgICAgICAgICAgICAgICAgICB7aXNBcnJheSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJpdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNvbnRlbnQubWFwKChjKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2MuY29udGVudFRpdGxlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPntjLmNvbnRlbnRUaXRsZX08L2I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57Yy5jb250ZW50fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj57dGhpcy5wcm9wcy5jb250ZW50VGl0bGV9PC9iPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57dGhpcy5wcm9wcy5jb250ZW50fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5Db2xsYXBzaWJsZS5wcm9wVHlwZXMgPSB7XG4gICAgc2hvd0xhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgaGlkZUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgY29udGVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5LCBQcm9wVHlwZXMuc3RyaW5nXSlcbiAgICAgICAgLmlzUmVxdWlyZWQsXG4gICAgY29udGVudFRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29sbGFwc2libGU7XG4iXSwibmFtZXMiOlsiQ29sbGFwc2libGUiLCJfQ29tcG9uZW50IiwiX2luaGVyaXRzIiwiX3N1cGVyIiwiX2NyZWF0ZVN1cGVyIiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsImNhbGwiLCJzdGF0ZSIsImlzRXhwYW5kZWQiLCJfdG9nZ2xlRXhwYW5kZWQiLCJ0b2dnbGVFeHBhbmRlZCIsImJpbmQiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiX3JlbmRlclNob3dCdXR0b24iLCJyZW5kZXJTaG93QnV0dG9uIiwiX3JlbmRlckhpZGVCdXR0b24iLCJyZW5kZXJIaWRlQnV0dG9uIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJzZXRTdGF0ZSIsIl9yZWFjdDIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic2hvd0xhYmVsIiwiaGlkZUxhYmVsIiwicmVuZGVyIiwiaXNBcnJheSIsIkFycmF5IiwiY29udGVudCIsImlzSGlkZGVuIiwidW5kZWZpbmVkIiwib25DbGljayIsInR5cGUiLCJoaWRkZW4iLCJtYXAiLCJjIiwiY29udGVudFRpdGxlIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9uZU9mVHlwZSIsImFycmF5IiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///438\n')},446:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(438), __webpack_require__(697)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _Collapsible, _propTypes) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _Collapsible2 = _interopRequireDefault(_Collapsible);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var ErrorUI = function ErrorUI(props) {\n var errorTitle = "".concat(props.type || "Error", " ").concat(props.code || "");\n var errorDetails = props.message;\n return /*#__PURE__*/_react2["default"].createElement("section", {\n className: "page-error"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "responsive-container"\n }, /*#__PURE__*/_react2["default"].createElement("h1", null, "We\\u2019re sorry."), /*#__PURE__*/_react2["default"].createElement("p", {\n className: "h2"\n }, "We cannot access this page."), /*#__PURE__*/_react2["default"].createElement(_Collapsible2["default"], {\n showLabel: "Open technical details about the error",\n hideLabel: "Close technical details about the error",\n contentTitle: errorTitle,\n content: errorDetails\n })));\n };\n ErrorUI.propTypes = {\n code: _propTypes2["default"].string,\n message: _propTypes2["default"].oneOfType([_propTypes2["default"].array, _propTypes2["default"].string]),\n type: _propTypes2["default"].string\n };\n exports["default"] = ErrorUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQ2LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUlBLElBQU1BLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFJQyxLQUFLLEVBQUs7SUFDdkIsSUFBSUMsVUFBVSxNQUFBQyxNQUFBLENBQU1GLEtBQUssQ0FBQ0csSUFBSSxJQUFJLE9BQU8sT0FBQUQsTUFBQSxDQUFJRixLQUFLLENBQUNJLElBQUksSUFBSSxFQUFFLENBQUU7SUFDL0QsSUFBSUMsWUFBWSxHQUFHTCxLQUFLLENBQUNNLE9BQU87SUFFaEMsb0JBQ0lDLE9BQUEsWUFBQUMsYUFBQTtNQUFTQyxTQUFTLEVBQUM7SUFBWSxnQkFDM0JGLE9BQUEsWUFBQUMsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBc0IsZ0JBQ2pDRixPQUFBLFlBQUFDLGFBQUEsYUFBSSxtQkFBZ0IsQ0FBQyxlQUNyQkQsT0FBQSxZQUFBQyxhQUFBO01BQUdDLFNBQVMsRUFBQztJQUFJLEdBQUMsNkJBQThCLENBQUMsZUFDakRGLE9BQUEsWUFBQUMsYUFBQSxDQUFDRSxhQUFBLFdBQVc7TUFDUkMsU0FBUyxFQUFDLHdDQUF3QztNQUNsREMsU0FBUyxFQUFDLHlDQUF5QztNQUNuREMsWUFBWSxFQUFFWixVQUFXO01BQ3pCYSxPQUFPLEVBQUVUO0lBQWEsQ0FDekIsQ0FDQSxDQUNBLENBQUM7RUFFbEIsQ0FBQztFQUVETixPQUFPLENBQUNnQixTQUFTLEdBQUc7SUFDaEJYLElBQUksRUFBRVksc0JBQVMsQ0FBQ0MsTUFBTTtJQUN0QlgsT0FBTyxFQUFFVSxzQkFBUyxDQUFDRSxTQUFTLENBQUMsQ0FBQ0Ysc0JBQVMsQ0FBQ0csS0FBSyxFQUFFSCxzQkFBUyxDQUFDQyxNQUFNLENBQUMsQ0FBQztJQUNqRWQsSUFBSSxFQUFFYSxzQkFBUyxDQUFDQztFQUNwQixDQUFDO0VBQUNHLE9BQUEsY0FFYXJCLE9BQU87QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9FcnJvci9FcnJvclVJLmpzeD9mNGNlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBDb2xsYXBzaWJsZSBmcm9tIFwiLi9Db2xsYXBzaWJsZVwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuXG5jb25zdCBFcnJvclVJID0gKHByb3BzKSA9PiB7XG4gICAgbGV0IGVycm9yVGl0bGUgPSBgJHtwcm9wcy50eXBlIHx8IFwiRXJyb3JcIn0gJHtwcm9wcy5jb2RlIHx8IFwiXCJ9YDtcbiAgICBsZXQgZXJyb3JEZXRhaWxzID0gcHJvcHMubWVzc2FnZTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInBhZ2UtZXJyb3JcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVzcG9uc2l2ZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8aDE+V2XigJlyZSBzb3JyeS48L2gxPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImgyXCI+V2UgY2Fubm90IGFjY2VzcyB0aGlzIHBhZ2UuPC9wPlxuICAgICAgICAgICAgICAgIDxDb2xsYXBzaWJsZVxuICAgICAgICAgICAgICAgICAgICBzaG93TGFiZWw9XCJPcGVuIHRlY2huaWNhbCBkZXRhaWxzIGFib3V0IHRoZSBlcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIGhpZGVMYWJlbD1cIkNsb3NlIHRlY2huaWNhbCBkZXRhaWxzIGFib3V0IHRoZSBlcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUaXRsZT17ZXJyb3JUaXRsZX1cbiAgICAgICAgICAgICAgICAgICAgY29udGVudD17ZXJyb3JEZXRhaWxzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICk7XG59O1xuXG5FcnJvclVJLnByb3BUeXBlcyA9IHtcbiAgICBjb2RlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1lc3NhZ2U6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheSwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFcnJvclVJO1xuIl0sIm5hbWVzIjpbIkVycm9yVUkiLCJwcm9wcyIsImVycm9yVGl0bGUiLCJjb25jYXQiLCJ0eXBlIiwiY29kZSIsImVycm9yRGV0YWlscyIsIm1lc3NhZ2UiLCJfcmVhY3QyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIl9Db2xsYXBzaWJsZTIiLCJzaG93TGFiZWwiLCJoaWRlTGFiZWwiLCJjb250ZW50VGl0bGUiLCJjb250ZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwib25lT2ZUeXBlIiwiYXJyYXkiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///446\n')},228:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(776), __webpack_require__(446)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _reactDom, _ErrorUI) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n exports.default = undefined;\n var _react2 = _interopRequireDefault(_react);\n var _ErrorUI2 = _interopRequireDefault(_ErrorUI);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, "prototype", {\n writable: false\n });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, "string");\n return typeof key === "symbol" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== "object" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || "default");\n if (typeof res !== "object") return res;\n throw new TypeError("@@toPrimitive must return a primitive value.");\n }\n return (hint === "string" ? String : Number)(input);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n var ErrorPage = _createClass(\n /**\n * @param {Object} options - An object containing content and config data\n * @param {String} options.type - The error type\n * @param {String} options.code - The error code\n * @param {String} options.message - The error message\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n function ErrorPage(options) {\n _classCallCheck(this, ErrorPage);\n (0, _reactDom.render)( /*#__PURE__*/_react2["default"].createElement(_ErrorUI2["default"], {\n type: options.type,\n code: options.code,\n message: options.message\n }), options.rootElement);\n });\n exports.default = ErrorPage;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjI4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQU9xQkEsU0FBUyxHQUFBQyxZQUFBO0VBQzFCO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0ksU0FBQUQsVUFBWUUsT0FBTyxFQUFFO0lBQUFDLGVBQUEsT0FBQUgsU0FBQTtJQUNqQixJQUFBSSxnQkFBTSxnQkFDRkMsT0FBQSxZQUFBQyxhQUFBLENBQUNDLFNBQUEsV0FBTztNQUNKQyxJQUFJLEVBQUVOLE9BQU8sQ0FBQ00sSUFBSztNQUNuQkMsSUFBSSxFQUFFUCxPQUFPLENBQUNPLElBQUs7TUFDbkJDLE9BQU8sRUFBRVIsT0FBTyxDQUFDUTtJQUFRLENBQzVCLENBQUMsRUFDRlIsT0FBTyxDQUFDUyxXQUNaLENBQUM7RUFDTCxDQUFDO0VBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQWpCZ0JiLFNBQVM7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9FcnJvci9lcnJvci5qcz9mMGMwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCBFcnJvclVJIGZyb20gXCIuL0Vycm9yVUlcIjtcblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBRUFAgRXJyb3IgUGFnZSBjb250ZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFcnJvclBhZ2Uge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgY29udGVudCBhbmQgY29uZmlnIGRhdGFcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9ucy50eXBlIC0gVGhlIGVycm9yIHR5cGVcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9ucy5jb2RlIC0gVGhlIGVycm9yIGNvZGVcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9ucy5tZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBvcHRpb25zLnJvb3RFbGVtZW50IC0gRWxlbSBpbnNpZGUgd2hpY2ggdG8gcmVuZGVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICA8RXJyb3JVSVxuICAgICAgICAgICAgICAgIHR5cGU9e29wdGlvbnMudHlwZX1cbiAgICAgICAgICAgICAgICBjb2RlPXtvcHRpb25zLmNvZGV9XG4gICAgICAgICAgICAgICAgbWVzc2FnZT17b3B0aW9ucy5tZXNzYWdlfVxuICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICBvcHRpb25zLnJvb3RFbGVtZW50XG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIkVycm9yUGFnZSIsIl9jcmVhdGVDbGFzcyIsIm9wdGlvbnMiLCJfY2xhc3NDYWxsQ2hlY2siLCJyZW5kZXIiLCJfcmVhY3QyIiwiY3JlYXRlRWxlbWVudCIsIl9FcnJvclVJMiIsInR5cGUiLCJjb2RlIiwibWVzc2FnZSIsInJvb3RFbGVtZW50IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///228\n')},546:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697), __webpack_require__(222)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes, _LegacyFooterUI) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n var _LegacyFooterUI2 = _interopRequireDefault(_LegacyFooterUI);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _typeof(obj) {\n "@babel/helpers - typeof";\n\n return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;\n }, _typeof(obj);\n }\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n }\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\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 }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, "string");\n return typeof key === "symbol" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== "object" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || "default");\n if (_typeof(res) !== "object") return res;\n throw new TypeError("@@toPrimitive must return a primitive value.");\n }\n return (hint === "string" ? String : Number)(input);\n }\n var FooterUI = function FooterUI(props) {\n var isNewFooter = props.isNewFooter;\n var isIESupportPage = props.isIESupportPage;\n var signUpNowLink = props.showHcdResearch ? "/about/hcd-research" : "mailto:madie@cms.hhs.gov?subject=Sign up for feedback sessions";\n\n // Default footer assets\n var assets = _objectSpread(_objectSpread({}, {\n hhsLogo: /*#__PURE__*/_react2["default"].createElement("img", {\n className: "hhs-logo",\n alt: "Department of Health & Human Services USA",\n src: "/images/hhs-logo-black.svg"\n }),\n madieLogo: /*#__PURE__*/_react2["default"].createElement("img", {\n className: "qpp-logo",\n src: "/images/qpp_logo_rgb_color.png",\n alt: "MADiE Measure Authoring Development Integrated Environment logo"\n })\n }), props.assets);\n var setLink = function setLink(link) {\n return isIESupportPage ? "/" : link;\n };\n if (isNewFooter) {\n return /*#__PURE__*/_react2["default"].createElement(_react2["default"].Fragment, null, !isIESupportPage && /*#__PURE__*/_react2["default"].createElement("div", {\n className: "feedback-session-sign-up"\n }), /*#__PURE__*/_react2["default"].createElement("footer", {\n "aria-label": "Site footer",\n className: "global-footer"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "build-version",\n id: "build-version"\n }, props.buildVersion), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "responsive-container"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "other-links"\n }, /*#__PURE__*/_react2["default"].createElement("hr", {\n className: "divider-top"\n }), /*#__PURE__*/_react2["default"].createElement("ul", {\n className: "small"\n }, /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: setLink("https://harp.cms.gov/login/terms-of-use"),\n "aria-label": "Terms of Use",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenTermsOfService",\n "data-track-label": "Terms of Use"\n }, "Terms of Use")), /*#__PURE__*/_react2["default"].createElement("li", {\n className: "divider"\n }), " ", /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: setLink("https://www.cms.gov/privacy"),\n "aria-label": "Privacy Policy",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenPrivacyPolicy",\n "data-track-label": "Privacy Policy"\n }, "Privacy Policy")), /*#__PURE__*/_react2["default"].createElement("li", {\n className: "divider"\n }), " ", /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: setLink("https://www.hhs.gov/web/governance/digital-strategy/it-policy-archive/hhs-rules-of-behavior-for-the-use-of-hhs-information-and-it-resources-policy.html"),\n "aria-label": "Rules of Behavior",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenRulesofBehavior",\n "data-track-label": "Rules of Behavior"\n }, "Rules of Behavior"))), /*#__PURE__*/_react2["default"].createElement("hr", {\n className: "divider-bottom"\n })), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "qpp-hhs-logo-container"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "qpp-logo-container"\n }, assets.qppLogo), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "hhs-logo-container"\n }, assets.hhsLogo, /*#__PURE__*/_react2["default"].createElement("p", null, "A federal government website managed and paid for by the U.S Centers for Medicare & Medicaid Services. 7500 Security Boulevard, Baltimore MD 21244"))))));\n }\n return /*#__PURE__*/_react2["default"].createElement(_LegacyFooterUI2["default"], {\n buildVersion: props.buildVersion,\n isFullWidth: props.isFullWidth,\n signUpNowLink: signUpNowLink\n });\n };\n FooterUI.propTypes = {\n buildVersion: _propTypes2["default"].string,\n isFullWidth: _propTypes2["default"].bool,\n isNewFooter: _propTypes2["default"].bool,\n isIESupportPage: _propTypes2["default"].bool,\n showHcdResearch: _propTypes2["default"].bool,\n assets: _propTypes2["default"].shape({\n cmsLogo: _propTypes2["default"].element,\n madieLogo: _propTypes2["default"].element\n })\n };\n exports["default"] = FooterUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UUFBUTtBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXJVSS5qc3g/Y2Q4YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmltcG9ydCBMZWdhY3lGb290ZXJVSSBmcm9tIFwiLi9MZWdhY3lGb290ZXJVSVwiO1xuXG5jb25zdCBGb290ZXJVSSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGlzTmV3Rm9vdGVyID0gcHJvcHMuaXNOZXdGb290ZXI7XG4gICAgY29uc3QgaXNJRVN1cHBvcnRQYWdlID0gcHJvcHMuaXNJRVN1cHBvcnRQYWdlO1xuICAgIGNvbnN0IHNpZ25VcE5vd0xpbmsgPSBwcm9wcy5zaG93SGNkUmVzZWFyY2hcbiAgICAgICAgPyBcIi9hYm91dC9oY2QtcmVzZWFyY2hcIlxuICAgICAgICA6IFwibWFpbHRvOm1hZGllQGNtcy5oaHMuZ292P3N1YmplY3Q9U2lnbiB1cCBmb3IgZmVlZGJhY2sgc2Vzc2lvbnNcIjtcblxuICAgIC8vIERlZmF1bHQgZm9vdGVyIGFzc2V0c1xuICAgIGNvbnN0IGFzc2V0cyA9IHtcbiAgICAgICAgLi4ue1xuICAgICAgICAgICAgaGhzTG9nbzogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGhzLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJEZXBhcnRtZW50IG9mIEhlYWx0aCAmYW1wOyBIdW1hbiBTZXJ2aWNlcyBVU0FcIlxuICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1hZ2VzL2hocy1sb2dvLWJsYWNrLnN2Z1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYWRpZUxvZ286IChcbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInFwcC1sb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltYWdlcy9xcHBfbG9nb19yZ2JfY29sb3IucG5nXCJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiTUFEaUUgTWVhc3VyZSBBdXRob3JpbmcgRGV2ZWxvcG1lbnQgSW50ZWdyYXRlZCBFbnZpcm9ubWVudCBsb2dvXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4ucHJvcHMuYXNzZXRzLFxuICAgIH07XG5cbiAgICBjb25zdCBzZXRMaW5rID0gKGxpbmspID0+IHtcbiAgICAgICAgcmV0dXJuIGlzSUVTdXBwb3J0UGFnZSA/IFwiL1wiIDogbGluaztcbiAgICB9O1xuXG4gICAgaWYgKGlzTmV3Rm9vdGVyKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHshaXNJRVN1cHBvcnRQYWdlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmZWVkYmFjay1zZXNzaW9uLXNpZ24tdXBcIiAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPGZvb3RlciBhcmlhLWxhYmVsPVwiU2l0ZSBmb290ZXJcIiBjbGFzc05hbWU9XCJnbG9iYWwtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnVpbGQtdmVyc2lvblwiIGlkPVwiYnVpbGQtdmVyc2lvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLmJ1aWxkVmVyc2lvbn1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvdGhlci1saW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzc05hbWU9XCJkaXZpZGVyLXRvcFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17c2V0TGluayhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJodHRwczovL2hhcnAuY21zLmdvdi9sb2dpbi90ZXJtcy1vZi11c2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlRlcm1zIG9mIFVzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuVGVybXNPZlNlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJUZXJtcyBvZiBVc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlcm1zIG9mIFVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvbGk+e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3NldExpbmsoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly93d3cuY21zLmdvdi9wcml2YWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJQcml2YWN5IFBvbGljeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuUHJpdmFjeVBvbGljeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlByaXZhY3kgUG9saWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcml2YWN5IFBvbGljeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvbGk+e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3NldExpbmsoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly93d3cuaGhzLmdvdi93ZWIvZ292ZXJuYW5jZS9kaWdpdGFsLXN0cmF0ZWd5L2l0LXBvbGljeS1hcmNoaXZlL2hocy1ydWxlcy1vZi1iZWhhdmlvci1mb3ItdGhlLXVzZS1vZi1oaHMtaW5mb3JtYXRpb24tYW5kLWl0LXJlc291cmNlcy1wb2xpY3kuaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUnVsZXMgb2YgQmVoYXZpb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlblJ1bGVzb2ZCZWhhdmlvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlJ1bGVzIG9mIEJlaGF2aW9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlcyBvZiBCZWhhdmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzTmFtZT1cImRpdmlkZXItYm90dG9tXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJxcHAtaGhzLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJxcHAtbG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Fzc2V0cy5xcHBMb2dvfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGhzLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthc3NldHMuaGhzTG9nb31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIGZlZGVyYWwgZ292ZXJubWVudCB3ZWJzaXRlIG1hbmFnZWQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWlkIGZvciBieSB0aGUgVS5TIENlbnRlcnMgZm9yIE1lZGljYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYW1wOyBNZWRpY2FpZCBTZXJ2aWNlcy4gNzUwMCBTZWN1cml0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm91bGV2YXJkLCBCYWx0aW1vcmUgTUQgMjEyNDRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAgIDxMZWdhY3lGb290ZXJVSVxuICAgICAgICAgICAgYnVpbGRWZXJzaW9uPXtwcm9wcy5idWlsZFZlcnNpb259XG4gICAgICAgICAgICBpc0Z1bGxXaWR0aD17cHJvcHMuaXNGdWxsV2lkdGh9XG4gICAgICAgICAgICBzaWduVXBOb3dMaW5rPXtzaWduVXBOb3dMaW5rfVxuICAgICAgICAvPlxuICAgICk7XG59O1xuXG5Gb290ZXJVSS5wcm9wVHlwZXMgPSB7XG4gICAgYnVpbGRWZXJzaW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGlzRnVsbFdpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0Zvb3RlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNJRVN1cHBvcnRQYWdlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93SGNkUmVzZWFyY2g6IFByb3BUeXBlcy5ib29sLFxuICAgIGFzc2V0czogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgY21zTG9nbzogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgICAgIG1hZGllTG9nbzogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgfSksXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGb290ZXJVSTtcbiJdLCJuYW1lcyI6WyJGb290ZXJVSSIsInByb3BzIiwiaXNOZXdGb290ZXIiLCJpc0lFU3VwcG9ydFBhZ2UiLCJzaWduVXBOb3dMaW5rIiwic2hvd0hjZFJlc2VhcmNoIiwiYXNzZXRzIiwiX29iamVjdFNwcmVhZCIsImhoc0xvZ28iLCJfcmVhY3QyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImFsdCIsInNyYyIsIm1hZGllTG9nbyIsInNldExpbmsiLCJsaW5rIiwiRnJhZ21lbnQiLCJpZCIsImJ1aWxkVmVyc2lvbiIsImhyZWYiLCJxcHBMb2dvIiwiX0xlZ2FjeUZvb3RlclVJMiIsImlzRnVsbFdpZHRoIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsInNoYXBlIiwiY21zTG9nbyIsImVsZW1lbnQiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///546\n')},222:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697), __webpack_require__(609)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes, _Infotip) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n var _Infotip2 = _interopRequireDefault(_Infotip);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var infoTipLabel = "When dialing 711, you will automatically be connected to a TRS Communications Assistant who will relay your conversation to the help desk agent with strict confidentiality.";\n var LegacyFooterUI = function LegacyFooterUI(_ref) {\n var buildVersion = _ref.buildVersion,\n isFullWidth = _ref.isFullWidth,\n signUpNowLink = _ref.signUpNowLink;\n return /*#__PURE__*/_react2["default"].createElement("footer", {\n className: "legacy-footer"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "build-version",\n id: "build-version"\n }, buildVersion), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "banner"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: isFullWidth ? "container-full-width" : "responsive-container"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "row"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "col-sm-12 col-md-12 col-lg-12"\n }, /*#__PURE__*/_react2["default"].createElement("span", null, "Help shape the future of MADiE"), " by participating in user feedback sessions.", " ", /*#__PURE__*/_react2["default"].createElement("a", {\n className: "email-note-link",\n href: signUpNowLink\n }, "Send us an email to sign up"))))), /*#__PURE__*/_react2["default"].createElement("div", {\n className: isFullWidth ? "container-full-width" : "responsive-container"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "row"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: isFullWidth ? "col-sm-12 col-md-8 col-lg-8" : "col-sm-8 col-md-9 col-lg-9"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "logo-container"\n }, /*#__PURE__*/_react2["default"].createElement("img", {\n src: "/images/qpp_logo_reversed.png",\n alt: "Quality Payment Program",\n className: "qpp-logo"\n }), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "social-container"\n }, /*#__PURE__*/_react2["default"].createElement("a", {\n rel: "noopener noreferrer",\n target: "_blank",\n className: "social-link",\n href: "https://twitter.com/CMSGov",\n "aria-label": "Follow us on Twitter. This link opens in a new window."\n }, /*#__PURE__*/_react2["default"].createElement("span", {\n className: "glyphicon glyphicon-twitter"\n })), /*#__PURE__*/_react2["default"].createElement("a", {\n rel: "noopener noreferrer",\n target: "_blank",\n className: "social-link",\n href: "https://www.youtube.com/playlist?list=PLaV7m2-zFKpj_6fBsqav6GvFzzq9oOpkk",\n "aria-label": "Follow us on YouTube. This link opens in a new window."\n }, /*#__PURE__*/_react2["default"].createElement("span", {\n className: "glyphicon glyphicon-youtube"\n })))), /*#__PURE__*/_react2["default"].createElement("div", {\n className: "links"\n }, /*#__PURE__*/_react2["default"].createElement("ul", null, /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "/developers",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenDeveloperTools",\n "data-track-label": "Quality Payment Program"\n }, "Developer Tools")), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "/about/resource-library",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenEducationAndTools",\n "data-track-label": "Education and Tools"\n }, "Resource Library")), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "/glossary",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenGlossary",\n "data-track-label": "Glossary"\n }, "Glossary")), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "/resources/help-and-support",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenHelpAndSupport",\n "data-track-label": "Help and Support"\n }, "Help and Support"))), /*#__PURE__*/_react2["default"].createElement("ul", {\n className: "small"\n }, /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "https://www.cms.gov/privacy",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenPrivacyDisclaimer",\n "data-track-label": "Notice of Privacy and Disclaimer"\n }, "CMS Privacy Notice")), /*#__PURE__*/_react2["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "https://www.cms.gov/About-CMS/Agency-Information/Aboutwebsite/Policiesforaccessibility",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenAccessibility",\n "data-track-label": "Accessibility"\n }, "Accessibility")), /*#__PURE__*/_react2["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n className: "adobe-link",\n rel: "noopener noreferrer",\n target: "_blank",\n href: "https://get.adobe.com/reader",\n "data-track-category": "FooterNav",\n "data-track-action": "DownloadAdobeReader",\n "data-track-label": "AdobeReader"\n }, /*#__PURE__*/_react2["default"].createElement("svg", {\n className: "icon"\n }, /*#__PURE__*/_react2["default"].createElement("use", {\n xlinkHref: "#icon-download"\n })), "Download Adobe Reader")), /*#__PURE__*/_react2["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react2["default"].createElement("li", null, /*#__PURE__*/_react2["default"].createElement("a", {\n href: "mailto:sb-mat-help@semanticbits.com",\n className: "email-link"\n }, "sb-mat-help@semanticbits.com")), /*#__PURE__*/_react2["default"].createElement("li", null, "1-866-288-8292 (TRS: 711)", /*#__PURE__*/_react2["default"].createElement("div", {\n className: "footer-trs-infotip"\n }, /*#__PURE__*/_react2["default"].createElement(_Infotip2["default"], {\n lightIcon: true,\n label: infoTipLabel\n })))))), /*#__PURE__*/_react2["default"].createElement("div", {\n className: isFullWidth ? "col-sm-12 col-md-4 col-lg-4" : "col-sm-4 col-md-3 col-lg-3"\n }, /*#__PURE__*/_react2["default"].createElement("div", {\n className: "hhs-logo-container"\n }, /*#__PURE__*/_react2["default"].createElement("img", {\n alt: "Department of Health & Human Services USA",\n src: "/images/hhs-logo-white.svg"\n }))))));\n };\n LegacyFooterUI.propTypes = {\n buildVersion: _propTypes2["default"].string,\n isFullWidth: _propTypes2["default"].bool,\n signUpNowLink: _propTypes2["default"].string\n };\n exports["default"] = LegacyFooterUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjIyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUlBLElBQU1BLFlBQVksR0FDZCw4S0FBOEs7RUFFbEwsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFBQyxJQUFBLEVBQXFEO0lBQUEsSUFBL0NDLFlBQVksR0FBQUQsSUFBQSxDQUFaQyxZQUFZO01BQUVDLFdBQVcsR0FBQUYsSUFBQSxDQUFYRSxXQUFXO01BQUVDLGFBQWEsR0FBQUgsSUFBQSxDQUFiRyxhQUFhO0lBQzlELG9CQUNJQyxPQUFBLFlBQUFDLGFBQUE7TUFBUUMsU0FBUyxFQUFDO0lBQWUsZ0JBQzdCRixPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDLGVBQWU7TUFBQ0MsRUFBRSxFQUFDO0lBQWUsR0FDNUNOLFlBQ0EsQ0FBQyxlQUNORyxPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQVEsZ0JBQ25CRixPQUFBLFlBQUFDLGFBQUE7TUFDSUMsU0FBUyxFQUNMSixXQUFXLEdBQ0wsc0JBQXNCLEdBQ3RCO0lBQ1QsZ0JBRURFLE9BQUEsWUFBQUMsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBSyxnQkFDaEJGLE9BQUEsWUFBQUMsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBK0IsZ0JBQzFDRixPQUFBLFlBQUFDLGFBQUEsZUFBTSxnQ0FBb0MsQ0FBQyxnREFDSCxFQUFDLEdBQUcsZUFDNUNELE9BQUEsWUFBQUMsYUFBQTtNQUFHQyxTQUFTLEVBQUMsaUJBQWlCO01BQUNFLElBQUksRUFBRUw7SUFBYyxHQUFDLDZCQUVqRCxDQUNGLENBQ0osQ0FDSixDQUNKLENBQUMsZUFDTkMsT0FBQSxZQUFBQyxhQUFBO01BQ0lDLFNBQVMsRUFDTEosV0FBVyxHQUNMLHNCQUFzQixHQUN0QjtJQUNULGdCQUVERSxPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQUssZ0JBQ2hCRixPQUFBLFlBQUFDLGFBQUE7TUFDSUMsU0FBUyxFQUNMSixXQUFXLEdBQ0wsNkJBQTZCLEdBQzdCO0lBQ1QsZ0JBRURFLE9BQUEsWUFBQUMsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBZ0IsZ0JBQzNCRixPQUFBLFlBQUFDLGFBQUE7TUFDSUksR0FBRyxFQUFDLCtCQUErQjtNQUNuQ0MsR0FBRyxFQUFDLHlCQUF5QjtNQUM3QkosU0FBUyxFQUFDO0lBQVUsQ0FDdkIsQ0FBQyxlQUNGRixPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQWtCLGdCQUM3QkYsT0FBQSxZQUFBQyxhQUFBO01BQ0lNLEdBQUcsRUFBQyxxQkFBcUI7TUFDekJDLE1BQU0sRUFBQyxRQUFRO01BQ2ZOLFNBQVMsRUFBQyxhQUFhO01BQ3ZCRSxJQUFJLEVBQUMsNEJBQTRCO01BQ2pDLGNBQVc7SUFBd0QsZ0JBRW5FSixPQUFBLFlBQUFDLGFBQUE7TUFBTUMsU0FBUyxFQUFDO0lBQTZCLENBQU8sQ0FDckQsQ0FBQyxlQUNKRixPQUFBLFlBQUFDLGFBQUE7TUFDSU0sR0FBRyxFQUFDLHFCQUFxQjtNQUN6QkMsTUFBTSxFQUFDLFFBQVE7TUFDZk4sU0FBUyxFQUFDLGFBQWE7TUFDdkJFLElBQUksRUFBQywwRUFBMEU7TUFDL0UsY0FBVztJQUF3RCxnQkFFbkVKLE9BQUEsWUFBQUMsYUFBQTtNQUFNQyxTQUFTLEVBQUM7SUFBNkIsQ0FBTyxDQUNyRCxDQUNGLENBQ0osQ0FBQyxlQUNORixPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQU8sZ0JBQ2xCRixPQUFBLFlBQUFDLGFBQUEsMEJBQ0lELE9BQUEsWUFBQUMsYUFBQSwwQkFDSUQsT0FBQSxZQUFBQyxhQUFBO01BQ0lHLElBQUksRUFBQyxhQUFhO01BQ2xCLHVCQUFvQixXQUFXO01BQy9CLHFCQUFrQixvQkFBb0I7TUFDdEMsb0JBQWlCO0lBQXlCLEdBQzdDLGlCQUVFLENBQ0gsQ0FBQyxlQUNMSixPQUFBLFlBQUFDLGFBQUEsMEJBQ0lELE9BQUEsWUFBQUMsYUFBQTtNQUNJRyxJQUFJLEVBQUMseUJBQXlCO01BQzlCLHVCQUFvQixXQUFXO01BQy9CLHFCQUFrQix1QkFBdUI7TUFDekMsb0JBQWlCO0lBQXFCLEdBQ3pDLGtCQUVFLENBQ0gsQ0FBQyxlQUNMSixPQUFBLFlBQUFDLGFBQUEsMEJBQ0lELE9BQUEsWUFBQUMsYUFBQTtNQUNJRyxJQUFJLEVBQUMsV0FBVztNQUNoQix1QkFBb0IsV0FBVztNQUMvQixxQkFBa0IsY0FBYztNQUNoQyxvQkFBaUI7SUFBVSxHQUM5QixVQUVFLENBQ0gsQ0FBQyxlQUNMSixPQUFBLFlBQUFDLGFBQUEsMEJBQ0lELE9BQUEsWUFBQUMsYUFBQTtNQUNJRyxJQUFJLEVBQUMsNkJBQTZCO01BQ2xDLHVCQUFvQixXQUFXO01BQy9CLHFCQUFrQixvQkFBb0I7TUFDdEMsb0JBQWlCO0lBQWtCLEdBQ3RDLGtCQUVFLENBQ0gsQ0FDSixDQUFDLGVBQ0xKLE9BQUEsWUFBQUMsYUFBQTtNQUFJQyxTQUFTLEVBQUM7SUFBTyxnQkFDakJGLE9BQUEsWUFBQUMsYUFBQSwwQkFDSUQsT0FBQSxZQUFBQyxhQUFBO01BQ0lHLElBQUksRUFBQyw2QkFBNkI7TUFDbEMsdUJBQW9CLFdBQVc7TUFDL0IscUJBQWtCLHVCQUF1QjtNQUN6QyxvQkFBaUI7SUFBa0MsR0FDdEQsb0JBRUUsQ0FDSCxDQUFDLGVBQ0xKLE9BQUEsWUFBQUMsYUFBQTtNQUFNQyxTQUFTLEVBQUM7SUFBUyxDQUFPLENBQUMsZUFDakNGLE9BQUEsWUFBQUMsYUFBQSwwQkFDSUQsT0FBQSxZQUFBQyxhQUFBO01BQ0lHLElBQUksRUFBQyx3RkFBd0Y7TUFDN0YsdUJBQW9CLFdBQVc7TUFDL0IscUJBQWtCLG1CQUFtQjtNQUNyQyxvQkFBaUI7SUFBZSxHQUNuQyxlQUVFLENBQ0gsQ0FBQyxlQUNMSixPQUFBLFlBQUFDLGFBQUE7TUFBTUMsU0FBUyxFQUFDO0lBQVMsQ0FBTyxDQUFDLGVBQ2pDRixPQUFBLFlBQUFDLGFBQUEsMEJBQ0lELE9BQUEsWUFBQUMsYUFBQTtNQUNJQyxTQUFTLEVBQUMsWUFBWTtNQUN0QkssR0FBRyxFQUFDLHFCQUFxQjtNQUN6QkMsTUFBTSxFQUFDLFFBQVE7TUFDZkosSUFBSSxFQUFDLDhCQUE4QjtNQUNuQyx1QkFBb0IsV0FBVztNQUMvQixxQkFBa0IscUJBQXFCO01BQ3ZDLG9CQUFpQjtJQUFhLGdCQUU5QkosT0FBQSxZQUFBQyxhQUFBO01BQUtDLFNBQVMsRUFBQztJQUFNLGdCQUNqQkYsT0FBQSxZQUFBQyxhQUFBO01BQUtRLFNBQVMsRUFBQztJQUFnQixDQUFFLENBQ2hDLENBQUMseUJBRVAsQ0FDSCxDQUFDLGVBQ0xULE9BQUEsWUFBQUMsYUFBQTtNQUFNQyxTQUFTLEVBQUM7SUFBUyxDQUFPLENBQUMsZUFDakNGLE9BQUEsWUFBQUMsYUFBQSwwQkFDSUQsT0FBQSxZQUFBQyxhQUFBO01BQ0lHLElBQUksRUFBQyxxQ0FBcUM7TUFDMUNGLFNBQVMsRUFBQztJQUFZLEdBQ3pCLDhCQUVFLENBQ0gsQ0FBQyxlQUNMRixPQUFBLFlBQUFDLGFBQUEsYUFBSSwyQkFFQSxlQUFBRCxPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQW9CLGdCQUMvQkYsT0FBQSxZQUFBQyxhQUFBLENBQUNTLFNBQUEsV0FBTztNQUNKQyxTQUFTO01BQ1RDLEtBQUssRUFBRWxCO0lBQWEsQ0FDdkIsQ0FDQSxDQUNMLENBQ0osQ0FDSCxDQUNKLENBQUMsZUFDTk0sT0FBQSxZQUFBQyxhQUFBO01BQ0lDLFNBQVMsRUFDTEosV0FBVyxHQUNMLDZCQUE2QixHQUM3QjtJQUNULGdCQUVERSxPQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQW9CLGdCQUMvQkYsT0FBQSxZQUFBQyxhQUFBO01BQ0lLLEdBQUcsRUFBQywyQ0FBK0M7TUFDbkRELEdBQUcsRUFBQztJQUE0QixDQUNuQyxDQUNBLENBQ0osQ0FDSixDQUNKLENBQ0QsQ0FBQztFQUVqQixDQUFDO0VBRURWLGNBQWMsQ0FBQ2tCLFNBQVMsR0FBRztJQUN2QmhCLFlBQVksRUFBRWlCLHNCQUFTLENBQUNDLE1BQU07SUFDOUJqQixXQUFXLEVBQUVnQixzQkFBUyxDQUFDRSxJQUFJO0lBQzNCakIsYUFBYSxFQUFFZSxzQkFBUyxDQUFDQztFQUM3QixDQUFDO0VBQUNFLE9BQUEsY0FFYXRCLGNBQWM7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9Gb290ZXIvTGVnYWN5Rm9vdGVyVUkuanN4PzhlYzkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IEluZm9UaXAgZnJvbSBcIi4uL0luZm90aXAvSW5mb3RpcFwiO1xuXG5jb25zdCBpbmZvVGlwTGFiZWwgPVxuICAgIFwiV2hlbiBkaWFsaW5nIDcxMSwgeW91IHdpbGwgYXV0b21hdGljYWxseSBiZSBjb25uZWN0ZWQgdG8gYSBUUlMgQ29tbXVuaWNhdGlvbnMgQXNzaXN0YW50IHdobyB3aWxsIHJlbGF5IHlvdXIgY29udmVyc2F0aW9uIHRvIHRoZSBoZWxwIGRlc2sgYWdlbnQgd2l0aCBzdHJpY3QgY29uZmlkZW50aWFsaXR5LlwiO1xuXG5jb25zdCBMZWdhY3lGb290ZXJVSSA9ICh7IGJ1aWxkVmVyc2lvbiwgaXNGdWxsV2lkdGgsIHNpZ25VcE5vd0xpbmsgfSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxmb290ZXIgY2xhc3NOYW1lPVwibGVnYWN5LWZvb3RlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidWlsZC12ZXJzaW9uXCIgaWQ9XCJidWlsZC12ZXJzaW9uXCI+XG4gICAgICAgICAgICAgICAge2J1aWxkVmVyc2lvbn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiYW5uZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb250YWluZXItZnVsbC13aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcInJlc3BvbnNpdmUtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLXNtLTEyIGNvbC1tZC0xMiBjb2wtbGctMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5IZWxwIHNoYXBlIHRoZSBmdXR1cmUgb2YgTUFEaUU8L3NwYW4+IGJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGljaXBhdGluZyBpbiB1c2VyIGZlZWRiYWNrIHNlc3Npb25zLntcIiBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJlbWFpbC1ub3RlLWxpbmtcIiBocmVmPXtzaWduVXBOb3dMaW5rfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZCB1cyBhbiBlbWFpbCB0byBzaWduIHVwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgaXNGdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb250YWluZXItZnVsbC13aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwicmVzcG9uc2l2ZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb2wtc20tMTIgY29sLW1kLTggY29sLWxnLThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiY29sLXNtLTggY29sLW1kLTkgY29sLWxnLTlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1hZ2VzL3FwcF9sb2dvX3JldmVyc2VkLnBuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlF1YWxpdHkgUGF5bWVudCBQcm9ncmFtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicXBwLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzb2NpYWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzb2NpYWwtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly90d2l0dGVyLmNvbS9DTVNHb3ZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkZvbGxvdyB1cyBvbiBUd2l0dGVyLiBUaGlzIGxpbmsgb3BlbnMgaW4gYSBuZXcgd2luZG93LlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImdseXBoaWNvbiBnbHlwaGljb24tdHdpdHRlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic29jaWFsLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3BsYXlsaXN0P2xpc3Q9UExhVjdtMi16Rktwal82ZkJzcWF2Nkd2Rnp6cTlvT3Bra1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRm9sbG93IHVzIG9uIFlvdVR1YmUuIFRoaXMgbGluayBvcGVucyBpbiBhIG5ldyB3aW5kb3cuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZ2x5cGhpY29uIGdseXBoaWNvbi15b3V0dWJlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGlua3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9kZXZlbG9wZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5EZXZlbG9wZXJUb29sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlF1YWxpdHkgUGF5bWVudCBQcm9ncmFtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZlbG9wZXIgVG9vbHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fib3V0L3Jlc291cmNlLWxpYnJhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlbkVkdWNhdGlvbkFuZFRvb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiRWR1Y2F0aW9uIGFuZCBUb29sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2UgTGlicmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvZ2xvc3NhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3Blbkdsb3NzYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiR2xvc3NhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdsb3NzYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9yZXNvdXJjZXMvaGVscC1hbmQtc3VwcG9ydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuSGVscEFuZFN1cHBvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJIZWxwIGFuZCBTdXBwb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwIGFuZCBTdXBwb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuY21zLmdvdi9wcml2YWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5Qcml2YWN5RGlzY2xhaW1lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIk5vdGljZSBvZiBQcml2YWN5IGFuZCBEaXNjbGFpbWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVMgUHJpdmFjeSBOb3RpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cuY21zLmdvdi9BYm91dC1DTVMvQWdlbmN5LUluZm9ybWF0aW9uL0Fib3V0d2Vic2l0ZS9Qb2xpY2llc2ZvcmFjY2Vzc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlbkFjY2Vzc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJBY2Nlc3NpYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRpdmlkZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYWRvYmUtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9nZXQuYWRvYmUuY29tL3JlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJEb3dubG9hZEFkb2JlUmVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiQWRvYmVSZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwiaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rSHJlZj1cIiNpY29uLWRvd25sb2FkXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3dubG9hZCBBZG9iZSBSZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwibWFpbHRvOnNiLW1hdC1oZWxwQHNlbWFudGljYml0cy5jb21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImVtYWlsLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNiLW1hdC1oZWxwQHNlbWFudGljYml0cy5jb21cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS04NjYtMjg4LTgyOTIgKFRSUzogNzExKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXItdHJzLWluZm90aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5mb1RpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWdodEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2luZm9UaXBMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLXNtLTEyIGNvbC1tZC00IGNvbC1sZy00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImNvbC1zbS00IGNvbC1tZC0zIGNvbC1sZy0zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaHMtbG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkRlcGFydG1lbnQgb2YgSGVhbHRoICZhbXA7IEh1bWFuIFNlcnZpY2VzIFVTQVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9pbWFnZXMvaGhzLWxvZ28td2hpdGUuc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9vdGVyPlxuICAgICk7XG59O1xuXG5MZWdhY3lGb290ZXJVSS5wcm9wVHlwZXMgPSB7XG4gICAgYnVpbGRWZXJzaW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGlzRnVsbFdpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaWduVXBOb3dMaW5rOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgTGVnYWN5Rm9vdGVyVUk7XG4iXSwibmFtZXMiOlsiaW5mb1RpcExhYmVsIiwiTGVnYWN5Rm9vdGVyVUkiLCJfcmVmIiwiYnVpbGRWZXJzaW9uIiwiaXNGdWxsV2lkdGgiLCJzaWduVXBOb3dMaW5rIiwiX3JlYWN0MiIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJpZCIsImhyZWYiLCJzcmMiLCJhbHQiLCJyZWwiLCJ0YXJnZXQiLCJ4bGlua0hyZWYiLCJfSW5mb3RpcDIiLCJsaWdodEljb24iLCJsYWJlbCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImJvb2wiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///222\n')},823:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(776), __webpack_require__(546)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _reactDom, _FooterUI) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n exports.default = undefined;\n var _react2 = _interopRequireDefault(_react);\n var _FooterUI2 = _interopRequireDefault(_FooterUI);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, "prototype", {\n writable: false\n });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, "string");\n return typeof key === "symbol" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== "object" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || "default");\n if (typeof res !== "object") return res;\n throw new TypeError("@@toPrimitive must return a primitive value.");\n }\n return (hint === "string" ? String : Number)(input);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n var Footer = _createClass(\n /**\n * @param {Object} options - An object containing content and config data\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n function Footer(options) {\n _classCallCheck(this, Footer);\n if (options.hasOwnProperty("rootElement")) {\n (0, _reactDom.render)( /*#__PURE__*/_react2["default"].createElement(_FooterUI2["default"], {\n buildVersion: "1.2.4",\n isFullWidth: options.isFullWidth,\n isNewFooter: options.isNewFooter,\n showHcdResearch: options.showHcdResearch\n }), options.rootElement);\n } else {\n (0, _reactDom.render)( /*#__PURE__*/_react2["default"].createElement(_FooterUI2["default"], {\n buildVersion: "1.2.4"\n }), options);\n }\n });\n exports.default = Footer;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODIzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQVNxQkEsTUFBTSxHQUFBQyxZQUFBO0VBQ3ZCO0FBQ0o7QUFDQTtBQUNBO0VBQ0ksU0FBQUQsT0FBWUUsT0FBTyxFQUFFO0lBQUFDLGVBQUEsT0FBQUgsTUFBQTtJQUNqQixJQUFJRSxPQUFPLENBQUNFLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRTtNQUN2QyxJQUFBQyxnQkFBTSxnQkFDRkMsT0FBQSxZQUFBQyxhQUFBLENBQUNDLFVBQUEsV0FBUTtRQUNMQyxZQUFZLEVBQUVBLE9BQWE7UUFDM0JDLFdBQVcsRUFBRVIsT0FBTyxDQUFDUSxXQUFZO1FBQ2pDQyxXQUFXLEVBQUVULE9BQU8sQ0FBQ1MsV0FBWTtRQUNqQ0MsZUFBZSxFQUFFVixPQUFPLENBQUNVO01BQWdCLENBQzVDLENBQUMsRUFDRlYsT0FBTyxDQUFDVyxXQUNaLENBQUM7SUFDTCxDQUFDLE1BQU07TUFDSCxJQUFBUixnQkFBTSxnQkFBQ0MsT0FBQSxZQUFBQyxhQUFBLENBQUNDLFVBQUEsV0FBUTtRQUFDQyxZQUFZLEVBQUVBLE9BQVlBO01BQUMsQ0FBRSxDQUFDLEVBQUVQLE9BQU8sQ0FBQztJQUM3RDtFQUNKLENBQUM7RUFBQVksT0FBQSxDQUFBQyxPQUFBLEdBbkJnQmYsTUFBTTtBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanM/NDlhZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgYnVpbGRWZXJzaW9uICovXG4vLyBidWlsZFZlcnNpb24gYWJvdmUgaXMgZGVmaW5lZCBpbiB3ZWJwYWNrLmNvbmZpZy5qc1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IEZvb3RlclVJIGZyb20gXCIuL0Zvb3RlclVJXCI7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgUVBQIEZvb3RlciBjb250ZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb290ZXIge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgY29udGVudCBhbmQgY29uZmlnIGRhdGFcbiAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBvcHRpb25zLnJvb3RFbGVtZW50IC0gRWxlbSBpbnNpZGUgd2hpY2ggdG8gcmVuZGVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShcInJvb3RFbGVtZW50XCIpKSB7XG4gICAgICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICAgICAgPEZvb3RlclVJXG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkVmVyc2lvbj17YnVpbGRWZXJzaW9ufVxuICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aD17b3B0aW9ucy5pc0Z1bGxXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgaXNOZXdGb290ZXI9e29wdGlvbnMuaXNOZXdGb290ZXJ9XG4gICAgICAgICAgICAgICAgICAgIHNob3dIY2RSZXNlYXJjaD17b3B0aW9ucy5zaG93SGNkUmVzZWFyY2h9XG4gICAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5yb290RWxlbWVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbmRlcig8Rm9vdGVyVUkgYnVpbGRWZXJzaW9uPXtidWlsZFZlcnNpb259IC8+LCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJGb290ZXIiLCJfY3JlYXRlQ2xhc3MiLCJvcHRpb25zIiwiX2NsYXNzQ2FsbENoZWNrIiwiaGFzT3duUHJvcGVydHkiLCJyZW5kZXIiLCJfcmVhY3QyIiwiY3JlYXRlRWxlbWVudCIsIl9Gb290ZXJVSTIiLCJidWlsZFZlcnNpb24iLCJpc0Z1bGxXaWR0aCIsImlzTmV3Rm9vdGVyIiwic2hvd0hjZFJlc2VhcmNoIiwicm9vdEVsZW1lbnQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///823\n')},609:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697), __webpack_require__(733), __webpack_require__(445)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes, _Tooltip, _InfotipIcon) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n var _Tooltip2 = _interopRequireDefault(_Tooltip);\n var _InfotipIcon2 = _interopRequireDefault(_InfotipIcon);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n }\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n }\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n }\n var _excluded = ["label", "lightIcon"];\n var BUTTON_SIZE = "16px";\n var buttonStyle = {\n background: "transparent",\n border: 0,\n padding: 0,\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n WebkitTouchCallout: "none",\n WebkitUserSelect: "none",\n userSelect: "none"\n };\n\n // Use basic touch handlers for mobile "tap-to-open" ui. Mobile touch\n // is currently not supported by @reach/tooltip; this may change in future.\n // Leverages @reach/tooltip "focus" behavior to open tooltip on tap,\n // and close tooltip on second tap or loss of focus.\n // TODO: We may want to improve this by tracking touch positions to ensure\n // that a \'touchend\' event must be reasonably close to the tooltip target.\n var touchHandlers = {\n onTouchStart: function onTouchStart(e) {\n e.stopPropagation();\n },\n onTouchEnd: function onTouchEnd(e) {\n if (document.activeElement !== e.currentTarget) {\n e.preventDefault();\n e.currentTarget.focus();\n } else {\n e.preventDefault();\n e.currentTarget.blur();\n }\n }\n };\n\n /**\n * Tooltip with styled information icon\n */\n var Infotip = function Infotip(_ref) {\n var label = _ref.label,\n lightIcon = _ref.lightIcon,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_react2["default"].createElement(_Tooltip2["default"], _extends({\n label: label\n }, props), /*#__PURE__*/_react2["default"].createElement("button", _extends({\n type: "button",\n "aria-label": "Information",\n style: buttonStyle\n }, touchHandlers), /*#__PURE__*/_react2["default"].createElement(_InfotipIcon2["default"], {\n lightIcon: lightIcon,\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n "aria-hidden": true,\n style: {\n "float": "left"\n }\n })));\n };\n Infotip.propTypes = {\n label: _propTypes2["default"].string.isRequired,\n ariaLabel: _propTypes2["default"].string,\n lightIcon: _propTypes2["default"].bool,\n DEBUG_STYLE: _propTypes2["default"].bool\n };\n Infotip.defaultProps = {\n ariaLabel: undefined,\n lightIcon: false,\n DEBUG_STYLE: undefined\n };\n exports["default"] = Infotip;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjA5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFLQSxJQUFNQSxXQUFXLEdBQUcsTUFBTTtFQUUxQixJQUFNQyxXQUFXLEdBQUc7SUFDaEJDLFVBQVUsRUFBRSxhQUFhO0lBQ3pCQyxNQUFNLEVBQUUsQ0FBQztJQUNUQyxPQUFPLEVBQUUsQ0FBQztJQUNWQyxLQUFLLEVBQUVMLFdBQVc7SUFDbEJNLE1BQU0sRUFBRU4sV0FBVztJQUNuQk8sa0JBQWtCLEVBQUUsTUFBTTtJQUMxQkMsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QkMsVUFBVSxFQUFFO0VBQ2hCLENBQUM7O0VBRUQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsYUFBYSxHQUFHO0lBQ2xCQyxZQUFZLEVBQUUsU0FBQUEsYUFBQ0MsQ0FBQyxFQUFLO01BQ2pCQSxDQUFDLENBQUNDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDREMsVUFBVSxFQUFFLFNBQUFBLFdBQUNGLENBQUMsRUFBSztNQUNmLElBQUlHLFFBQVEsQ0FBQ0MsYUFBYSxLQUFLSixDQUFDLENBQUNLLGFBQWEsRUFBRTtRQUM1Q0wsQ0FBQyxDQUFDTSxjQUFjLENBQUMsQ0FBQztRQUNsQk4sQ0FBQyxDQUFDSyxhQUFhLENBQUNFLEtBQUssQ0FBQyxDQUFDO01BQzNCLENBQUMsTUFBTTtRQUNIUCxDQUFDLENBQUNNLGNBQWMsQ0FBQyxDQUFDO1FBQ2xCTixDQUFDLENBQUNLLGFBQWEsQ0FBQ0csSUFBSSxDQUFDLENBQUM7TUFDMUI7SUFDSjtFQUNKLENBQUM7O0VBRUQ7QUFDQTtBQUNBO0VBQ0EsSUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUFDLElBQUE7SUFBQSxJQUFNQyxLQUFLLEdBQUFELElBQUEsQ0FBTEMsS0FBSztNQUFFQyxTQUFTLEdBQUFGLElBQUEsQ0FBVEUsU0FBUztNQUFLQyxLQUFLLEdBQUFDLHdCQUFBLENBQUFKLElBQUEsRUFBQUssU0FBQTtJQUFBLG9CQUN6Q0MsT0FBQSxZQUFBQyxhQUFBLENBQUNDLFNBQUEsV0FBTyxFQUFBQyxRQUFBO01BQUNSLEtBQUssRUFBRUE7SUFBTSxHQUFLRSxLQUFLLGdCQUM1QkcsT0FBQSxZQUFBQyxhQUFBLFdBQUFFLFFBQUE7TUFDSUMsSUFBSSxFQUFDLFFBQVE7TUFDYixjQUFXLGFBQWE7TUFDeEJDLEtBQUssRUFBRWhDO0lBQVksR0FDZlMsYUFBYSxnQkFFakJrQixPQUFBLFlBQUFDLGFBQUEsQ0FBQ0ssYUFBQSxXQUFXO01BQ1JWLFNBQVMsRUFBRUEsU0FBVTtNQUNyQm5CLEtBQUssRUFBRUwsV0FBWTtNQUNuQk0sTUFBTSxFQUFFTixXQUFZO01BQ3BCLG1CQUFXO01BQ1hpQyxLQUFLLEVBQUU7UUFBRSxTQUFPO01BQU87SUFBRSxDQUM1QixDQUNHLENBQ0gsQ0FBQztFQUFBLENBQ2I7RUFFRFosT0FBTyxDQUFDYyxTQUFTLEdBQUc7SUFDaEJaLEtBQUssRUFBRWEsc0JBQVMsQ0FBQ0MsTUFBTSxDQUFDQyxVQUFVO0lBQ2xDQyxTQUFTLEVBQUVILHNCQUFTLENBQUNDLE1BQU07SUFDM0JiLFNBQVMsRUFBRVksc0JBQVMsQ0FBQ0ksSUFBSTtJQUN6QkMsV0FBVyxFQUFFTCxzQkFBUyxDQUFDSTtFQUMzQixDQUFDO0VBRURuQixPQUFPLENBQUNxQixZQUFZLEdBQUc7SUFDbkJILFNBQVMsRUFBRUksU0FBUztJQUNwQm5CLFNBQVMsRUFBRSxLQUFLO0lBQ2hCaUIsV0FBVyxFQUFFRTtFQUNqQixDQUFDO0VBQUNDLE9BQUEsY0FFYXZCLE9BQU87QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9JbmZvdGlwL0luZm90aXAuanN4P2NjODgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSBcIi4uL1Rvb2x0aXBcIjtcbmltcG9ydCBJbmZvdGlwSWNvbiBmcm9tIFwiLi9JbmZvdGlwSWNvblwiO1xuXG5jb25zdCBCVVRUT05fU0laRSA9IFwiMTZweFwiO1xuXG5jb25zdCBidXR0b25TdHlsZSA9IHtcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgYm9yZGVyOiAwLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgd2lkdGg6IEJVVFRPTl9TSVpFLFxuICAgIGhlaWdodDogQlVUVE9OX1NJWkUsXG4gICAgV2Via2l0VG91Y2hDYWxsb3V0OiBcIm5vbmVcIixcbiAgICBXZWJraXRVc2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbn07XG5cbi8vIFVzZSBiYXNpYyB0b3VjaCBoYW5kbGVycyBmb3IgbW9iaWxlIFwidGFwLXRvLW9wZW5cIiB1aS4gIE1vYmlsZSB0b3VjaFxuLy8gaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkgQHJlYWNoL3Rvb2x0aXA7IHRoaXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuXG4vLyBMZXZlcmFnZXMgQHJlYWNoL3Rvb2x0aXAgXCJmb2N1c1wiIGJlaGF2aW9yIHRvIG9wZW4gdG9vbHRpcCBvbiB0YXAsXG4vLyBhbmQgY2xvc2UgdG9vbHRpcCBvbiBzZWNvbmQgdGFwIG9yIGxvc3Mgb2YgZm9jdXMuXG4vLyBUT0RPOiBXZSBtYXkgd2FudCB0byBpbXByb3ZlIHRoaXMgYnkgdHJhY2tpbmcgdG91Y2ggcG9zaXRpb25zIHRvIGVuc3VyZVxuLy8gdGhhdCBhICd0b3VjaGVuZCcgZXZlbnQgbXVzdCBiZSByZWFzb25hYmx5IGNsb3NlIHRvIHRoZSB0b29sdGlwIHRhcmdldC5cbmNvbnN0IHRvdWNoSGFuZGxlcnMgPSB7XG4gICAgb25Ub3VjaFN0YXJ0OiAoZSkgPT4ge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0sXG4gICAgb25Ub3VjaEVuZDogKGUpID0+IHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGUuY3VycmVudFRhcmdldCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5jdXJyZW50VGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLmN1cnJlbnRUYXJnZXQuYmx1cigpO1xuICAgICAgICB9XG4gICAgfSxcbn07XG5cbi8qKlxuICogVG9vbHRpcCB3aXRoIHN0eWxlZCBpbmZvcm1hdGlvbiBpY29uXG4gKi9cbmNvbnN0IEluZm90aXAgPSAoeyBsYWJlbCwgbGlnaHRJY29uLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPFRvb2x0aXAgbGFiZWw9e2xhYmVsfSB7Li4ucHJvcHN9PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJJbmZvcm1hdGlvblwiXG4gICAgICAgICAgICBzdHlsZT17YnV0dG9uU3R5bGV9XG4gICAgICAgICAgICB7Li4udG91Y2hIYW5kbGVyc31cbiAgICAgICAgPlxuICAgICAgICAgICAgPEluZm90aXBJY29uXG4gICAgICAgICAgICAgICAgbGlnaHRJY29uPXtsaWdodEljb259XG4gICAgICAgICAgICAgICAgd2lkdGg9e0JVVFRPTl9TSVpFfVxuICAgICAgICAgICAgICAgIGhlaWdodD17QlVUVE9OX1NJWkV9XG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICBzdHlsZT17eyBmbG9hdDogXCJsZWZ0XCIgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvVG9vbHRpcD5cbik7XG5cbkluZm90aXAucHJvcFR5cGVzID0ge1xuICAgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgYXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxpZ2h0SWNvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgREVCVUdfU1RZTEU6IFByb3BUeXBlcy5ib29sLFxufTtcblxuSW5mb3RpcC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgYXJpYUxhYmVsOiB1bmRlZmluZWQsXG4gICAgbGlnaHRJY29uOiBmYWxzZSxcbiAgICBERUJVR19TVFlMRTogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5mb3RpcDtcbiJdLCJuYW1lcyI6WyJCVVRUT05fU0laRSIsImJ1dHRvblN0eWxlIiwiYmFja2dyb3VuZCIsImJvcmRlciIsInBhZGRpbmciLCJ3aWR0aCIsImhlaWdodCIsIldlYmtpdFRvdWNoQ2FsbG91dCIsIldlYmtpdFVzZXJTZWxlY3QiLCJ1c2VyU2VsZWN0IiwidG91Y2hIYW5kbGVycyIsIm9uVG91Y2hTdGFydCIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJvblRvdWNoRW5kIiwiZG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50IiwiY3VycmVudFRhcmdldCIsInByZXZlbnREZWZhdWx0IiwiZm9jdXMiLCJibHVyIiwiSW5mb3RpcCIsIl9yZWYiLCJsYWJlbCIsImxpZ2h0SWNvbiIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX3JlYWN0MiIsImNyZWF0ZUVsZW1lbnQiLCJfVG9vbHRpcDIiLCJfZXh0ZW5kcyIsInR5cGUiLCJzdHlsZSIsIl9JbmZvdGlwSWNvbjIiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiYXJpYUxhYmVsIiwiYm9vbCIsIkRFQlVHX1NUWUxFIiwiZGVmYXVsdFByb3BzIiwidW5kZWZpbmVkIiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///609\n')},445:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n }\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n }\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n }\n var _excluded = ["lightIcon"];\n var InfotipIcon = function InfotipIcon(_ref) {\n var lightIcon = _ref.lightIcon,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_react2["default"].createElement("svg", _extends({\n width: "20px",\n height: "20px",\n viewBox: "0 0 20 20",\n xmlns: "http://www.w3.org/2000/svg"\n }, props), /*#__PURE__*/_react2["default"].createElement("g", {\n fill: "none",\n fillRule: "evenodd"\n }, /*#__PURE__*/_react2["default"].createElement("path", {\n d: "M9.721 19.158c-4.947 0-8.973-4.126-8.973-9.196C.748 4.892 4.774.766 9.72.766c4.948 0 8.974 4.126 8.974 9.196 0 5.07-4.026 9.196-8.974 9.196z",\n fill: "#2EB1ED",\n fillRule: "nonzero"\n }), /*#__PURE__*/_react2["default"].createElement("path", {\n d: "M9.721 0C4.361 0 0 4.469 0 9.962c0 5.493 4.36 9.962 9.721 9.962 5.36 0 9.722-4.469 9.722-9.962C19.443 4.469 15.082 0 9.72 0z",\n fill: lightIcon ? "#FFF" : "#04838A"\n }), /*#__PURE__*/_react2["default"].createElement("path", {\n d: "M9.721 14.765c-.206 0-.374.112-.374.25v.5c0 .138.168.25.374.25.207 0 .374-.112.374-.25v-.5c0-.138-.167-.25-.374-.25zM9.764 4.706H9.72c-.792 0-1.536.29-2.1.821a2.767 2.767 0 0 0-.89 2.03c0 .197.166.356.373.356s.374-.159.374-.356c0-.577.237-1.118.668-1.523a2.268 2.268 0 0 1 1.607-.615c1.182.016 2.195.98 2.211 2.107.011.743-.373 1.427-1.028 1.83-.995.61-1.589 1.691-1.589 2.89v1.013c0 .197.168.357.374.357.207 0 .374-.16.374-.357v-1.013c0-.941.477-1.82 1.246-2.292.873-.537 1.386-1.448 1.371-2.438-.022-1.527-1.345-2.788-2.948-2.81z",\n stroke: lightIcon ? "#04838A" : "#FFF",\n strokeWidth: ".5",\n fill: lightIcon ? "#04838A" : "#FFF",\n fillRule: "nonzero"\n })));\n };\n exports["default"] = InfotipIcon;\n InfotipIcon.propTypes = {\n lightIcon: _propTypes2["default"].bool\n };\n InfotipIcon.defaultProps = {\n lightIcon: false\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQ1LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBR0EsSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUFDLElBQUE7SUFBQSxJQUFNQyxTQUFTLEdBQUFELElBQUEsQ0FBVEMsU0FBUztNQUFLQyxLQUFLLEdBQUFDLHdCQUFBLENBQUFILElBQUEsRUFBQUksU0FBQTtJQUFBLG9CQUN0Q0MsT0FBQSxZQUFBQyxhQUFBLFFBQUFDLFFBQUE7TUFDSUMsS0FBSyxFQUFDLE1BQU07TUFDWkMsTUFBTSxFQUFDLE1BQU07TUFDYkMsT0FBTyxFQUFDLFdBQVc7TUFDbkJDLEtBQUssRUFBQztJQUE0QixHQUM5QlQsS0FBSyxnQkFFVEcsT0FBQSxZQUFBQyxhQUFBO01BQUdNLElBQUksRUFBQyxNQUFNO01BQUNDLFFBQVEsRUFBQztJQUFTLGdCQUM3QlIsT0FBQSxZQUFBQyxhQUFBO01BQ0lRLENBQUMsRUFBQyw4SUFBOEk7TUFDaEpGLElBQUksRUFBQyxTQUFTO01BQ2RDLFFBQVEsRUFBQztJQUFTLENBQ3JCLENBQUMsZUFDRlIsT0FBQSxZQUFBQyxhQUFBO01BQ0lRLENBQUMsRUFBQyw4SEFBOEg7TUFDaElGLElBQUksRUFBRVgsU0FBUyxHQUFHLE1BQU0sR0FBRztJQUFVLENBQ3hDLENBQUMsZUFDRkksT0FBQSxZQUFBQyxhQUFBO01BQ0lRLENBQUMsRUFBQyxxaEJBQXFoQjtNQUN2aEJDLE1BQU0sRUFBRWQsU0FBUyxHQUFHLFNBQVMsR0FBRyxNQUFPO01BQ3ZDZSxXQUFXLEVBQUMsSUFBSTtNQUNoQkosSUFBSSxFQUFFWCxTQUFTLEdBQUcsU0FBUyxHQUFHLE1BQU87TUFDckNZLFFBQVEsRUFBQztJQUFTLENBQ3JCLENBQ0YsQ0FDRixDQUFDO0VBQUEsQ0FDVDtFQUFDSSxPQUFBLGNBRWFsQixXQUFXO0VBRTFCQSxXQUFXLENBQUNtQixTQUFTLEdBQUc7SUFDcEJqQixTQUFTLEVBQUVrQixzQkFBUyxDQUFDQztFQUN6QixDQUFDO0VBRURyQixXQUFXLENBQUNzQixZQUFZLEdBQUc7SUFDdkJwQixTQUFTLEVBQUU7RUFDZixDQUFDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvSW5mb3RpcC9JbmZvdGlwSWNvbi5qc3g/NjBjMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmNvbnN0IEluZm90aXBJY29uID0gKHsgbGlnaHRJY29uLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPHN2Z1xuICAgICAgICB3aWR0aD1cIjIwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIyMHB4XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAgICA8ZyBmaWxsPVwibm9uZVwiIGZpbGxSdWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTkuNzIxIDE5LjE1OGMtNC45NDcgMC04Ljk3My00LjEyNi04Ljk3My05LjE5NkMuNzQ4IDQuODkyIDQuNzc0Ljc2NiA5LjcyLjc2NmM0Ljk0OCAwIDguOTc0IDQuMTI2IDguOTc0IDkuMTk2IDAgNS4wNy00LjAyNiA5LjE5Ni04Ljk3NCA5LjE5NnpcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCIjMkVCMUVEXCJcbiAgICAgICAgICAgICAgICBmaWxsUnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk05LjcyMSAwQzQuMzYxIDAgMCA0LjQ2OSAwIDkuOTYyYzAgNS40OTMgNC4zNiA5Ljk2MiA5LjcyMSA5Ljk2MiA1LjM2IDAgOS43MjItNC40NjkgOS43MjItOS45NjJDMTkuNDQzIDQuNDY5IDE1LjA4MiAwIDkuNzIgMHpcIlxuICAgICAgICAgICAgICAgIGZpbGw9e2xpZ2h0SWNvbiA/IFwiI0ZGRlwiIDogXCIjMDQ4MzhBXCJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTkuNzIxIDE0Ljc2NWMtLjIwNiAwLS4zNzQuMTEyLS4zNzQuMjV2LjVjMCAuMTM4LjE2OC4yNS4zNzQuMjUuMjA3IDAgLjM3NC0uMTEyLjM3NC0uMjV2LS41YzAtLjEzOC0uMTY3LS4yNS0uMzc0LS4yNXpNOS43NjQgNC43MDZIOS43MmMtLjc5MiAwLTEuNTM2LjI5LTIuMS44MjFhMi43NjcgMi43NjcgMCAwIDAtLjg5IDIuMDNjMCAuMTk3LjE2Ni4zNTYuMzczLjM1NnMuMzc0LS4xNTkuMzc0LS4zNTZjMC0uNTc3LjIzNy0xLjExOC42NjgtMS41MjNhMi4yNjggMi4yNjggMCAwIDEgMS42MDctLjYxNWMxLjE4Mi4wMTYgMi4xOTUuOTggMi4yMTEgMi4xMDcuMDExLjc0My0uMzczIDEuNDI3LTEuMDI4IDEuODMtLjk5NS42MS0xLjU4OSAxLjY5MS0xLjU4OSAyLjg5djEuMDEzYzAgLjE5Ny4xNjguMzU3LjM3NC4zNTcuMjA3IDAgLjM3NC0uMTYuMzc0LS4zNTd2LTEuMDEzYzAtLjk0MS40NzctMS44MiAxLjI0Ni0yLjI5Mi44NzMtLjUzNyAxLjM4Ni0xLjQ0OCAxLjM3MS0yLjQzOC0uMDIyLTEuNTI3LTEuMzQ1LTIuNzg4LTIuOTQ4LTIuODF6XCJcbiAgICAgICAgICAgICAgICBzdHJva2U9e2xpZ2h0SWNvbiA/IFwiIzA0ODM4QVwiIDogXCIjRkZGXCJ9XG4gICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIuNVwiXG4gICAgICAgICAgICAgICAgZmlsbD17bGlnaHRJY29uID8gXCIjMDQ4MzhBXCIgOiBcIiNGRkZcIn1cbiAgICAgICAgICAgICAgICBmaWxsUnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgSW5mb3RpcEljb247XG5cbkluZm90aXBJY29uLnByb3BUeXBlcyA9IHtcbiAgICBsaWdodEljb246IFByb3BUeXBlcy5ib29sLFxufTtcblxuSW5mb3RpcEljb24uZGVmYXVsdFByb3BzID0ge1xuICAgIGxpZ2h0SWNvbjogZmFsc2UsXG59O1xuIl0sIm5hbWVzIjpbIkluZm90aXBJY29uIiwiX3JlZiIsImxpZ2h0SWNvbiIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX3JlYWN0MiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsInhtbG5zIiwiZmlsbCIsImZpbGxSdWxlIiwiZCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwiZXhwb3J0cyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImJvb2wiLCJkZWZhdWx0UHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///445\n')},472:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(776), __webpack_require__(697), __webpack_require__(507), __webpack_require__(456), __webpack_require__(368)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _react, _propTypes, _position, _tooltip, _portal) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _react2 = _interopRequireDefault(_react);\n var _propTypes2 = _interopRequireDefault(_propTypes);\n var _position2 = _interopRequireDefault(_position);\n var _portal2 = _interopRequireDefault(_portal);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _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 }\n function _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(o);\n if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n 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 }\n function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n // TODO: investigate ways to allow more styling via css? the triangle\n // positioning effect issue may need to be resolved to allow for this.\n var TEXT_COLOR = "#FFF";\n var BACKGROUND_COLOR = "#333";\n\n /**\n * Generic styled tooltip component.\n * Corresponding styles: /styles/components/_tooltip.scss\n *\n * Extends implementation from @reach/tooltip:\n * https://reacttraining.com/reach-ui/tooltip\n */\n var Tooltip = function Tooltip(_ref) {\n var children = _ref.children,\n label = _ref.label,\n ariaLabel = _ref.ariaLabel,\n DEBUG_STYLE = _ref.DEBUG_STYLE;\n var _useTooltip = (0, _tooltip.useTooltip)({\n DEBUG_STYLE: DEBUG_STYLE\n }),\n _useTooltip2 = _slicedToArray(_useTooltip, 2),\n trigger = _useTooltip2[0],\n tooltip = _useTooltip2[1];\n var isVisible = tooltip.isVisible,\n triggerRect = tooltip.triggerRect;\n var tooltipPopupRef = (0, _react.useRef)();\n var triangleRef = (0, _react.useRef)();\n (0, _react.useLayoutEffect)(function () {\n // For some reason, the forwardRef for the tooltipPopup points to an undefined\n // dom element when we first render the portal containing the triangle. Using\n // an effect here will ensure that the ref is available when applying styles.\n // TODO: investigate and make issue for @reach-ui/tooltip?\n if (isVisible && tooltipPopupRef.current && triggerRect) {\n var tooltipRect = tooltipPopupRef.current.getBoundingClientRect();\n var positionCssText = (0, _position.positionTriangle)(triggerRect, tooltipRect);\n var cssText = "\\n position: absolute;\\n width: 0;\\n height: 0;\\n ".concat(positionCssText, "\\n border-top-color: ").concat(BACKGROUND_COLOR, ";\\n border-bottom-color: ").concat(BACKGROUND_COLOR, ";\\n z-index: 1;\\n ");\n triangleRef.current.style.cssText = cssText;\n }\n });\n return /*#__PURE__*/_react2["default"].createElement(_react2["default"].Fragment, null, /*#__PURE__*/(0, _react.cloneElement)(children, trigger), /*#__PURE__*/_react2["default"].createElement(_tooltip.TooltipPopup, _extends({}, tooltip, {\n label: label,\n ariaLabel: ariaLabel,\n style: {\n background: BACKGROUND_COLOR,\n color: TEXT_COLOR\n },\n ref: tooltipPopupRef,\n position: _position2["default"]\n })), isVisible && /*#__PURE__*/_react2["default"].createElement(_portal2["default"], null, /*#__PURE__*/_react2["default"].createElement("div", {\n ref: triangleRef,\n style: {\n position: "absolute",\n width: 0,\n height: 0\n }\n })));\n };\n Tooltip.propTypes = {\n children: _propTypes2["default"].node.isRequired,\n label: _propTypes2["default"].node.isRequired,\n ariaLabel: _propTypes2["default"].string,\n DEBUG_STYLE: _propTypes2["default"].bool\n };\n Tooltip.defaultProps = {\n ariaLabel: undefined,\n DEBUG_STYLE: undefined\n };\n exports["default"] = Tooltip;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQ0MsVUFBVTtJQUNoQ3hDLFNBQVMsRUFBRXNDLHNCQUFTLENBQUNHLE1BQU07SUFDM0J4QyxXQUFXLEVBQUVxQyxzQkFBUyxDQUFDSTtFQUMzQixDQUFDO0VBRUQ5QyxPQUFPLENBQUMrQyxZQUFZLEdBQUc7SUFDbkIzQyxTQUFTLEVBQUU0QyxTQUFTO0lBQ3BCM0MsV0FBVyxFQUFFMkM7RUFDakIsQ0FBQztFQUFDQyxPQUFBLGNBRWFqRCxPQUFPO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvVG9vbHRpcC9Ub29sdGlwLmpzeD82OTliIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjbG9uZUVsZW1lbnQsIHVzZUxheW91dEVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgcG9zaXRpb25UaXAsIHsgcG9zaXRpb25UcmlhbmdsZSB9IGZyb20gXCIuL3Bvc2l0aW9uXCI7XG5pbXBvcnQgeyB1c2VUb29sdGlwLCBUb29sdGlwUG9wdXAgfSBmcm9tIFwiQHJlYWNoL3Rvb2x0aXBcIjtcbmltcG9ydCBQb3J0YWwgZnJvbSBcIkByZWFjaC9wb3J0YWxcIjtcblxuLy8gVE9ETzogaW52ZXN0aWdhdGUgd2F5cyB0byBhbGxvdyBtb3JlIHN0eWxpbmcgdmlhIGNzcz8gdGhlIHRyaWFuZ2xlXG4vLyBwb3NpdGlvbmluZyBlZmZlY3QgaXNzdWUgbWF5IG5lZWQgdG8gYmUgcmVzb2x2ZWQgdG8gYWxsb3cgZm9yIHRoaXMuXG5jb25zdCBURVhUX0NPTE9SID0gXCIjRkZGXCI7XG5jb25zdCBCQUNLR1JPVU5EX0NPTE9SID0gXCIjMzMzXCI7XG5cbi8qKlxuICogR2VuZXJpYyBzdHlsZWQgdG9vbHRpcCBjb21wb25lbnQuXG4gKiBDb3JyZXNwb25kaW5nIHN0eWxlczogL3N0eWxlcy9jb21wb25lbnRzL190b29sdGlwLnNjc3NcbiAqXG4gKiBFeHRlbmRzIGltcGxlbWVudGF0aW9uIGZyb20gQHJlYWNoL3Rvb2x0aXA6XG4gKiBodHRwczovL3JlYWN0dHJhaW5pbmcuY29tL3JlYWNoLXVpL3Rvb2x0aXBcbiAqL1xuY29uc3QgVG9vbHRpcCA9ICh7IGNoaWxkcmVuLCBsYWJlbCwgYXJpYUxhYmVsLCBERUJVR19TVFlMRSB9KSA9PiB7XG4gICAgY29uc3QgW3RyaWdnZXIsIHRvb2x0aXBdID0gdXNlVG9vbHRpcCh7IERFQlVHX1NUWUxFIH0pO1xuICAgIGNvbnN0IHsgaXNWaXNpYmxlLCB0cmlnZ2VyUmVjdCB9ID0gdG9vbHRpcDtcbiAgICBjb25zdCB0b29sdGlwUG9wdXBSZWYgPSB1c2VSZWYoKTtcbiAgICBjb25zdCB0cmlhbmdsZVJlZiA9IHVzZVJlZigpO1xuXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29uLCB0aGUgZm9yd2FyZFJlZiBmb3IgdGhlIHRvb2x0aXBQb3B1cCBwb2ludHMgdG8gYW4gdW5kZWZpbmVkXG4gICAgICAgIC8vIGRvbSBlbGVtZW50IHdoZW4gd2UgZmlyc3QgcmVuZGVyIHRoZSBwb3J0YWwgY29udGFpbmluZyB0aGUgdHJpYW5nbGUuIFVzaW5nXG4gICAgICAgIC8vIGFuIGVmZmVjdCBoZXJlIHdpbGwgZW5zdXJlIHRoYXQgdGhlIHJlZiBpcyBhdmFpbGFibGUgd2hlbiBhcHBseWluZyBzdHlsZXMuXG4gICAgICAgIC8vIFRPRE86IGludmVzdGlnYXRlIGFuZCBtYWtlIGlzc3VlIGZvciBAcmVhY2gtdWkvdG9vbHRpcD9cbiAgICAgICAgaWYgKGlzVmlzaWJsZSAmJiB0b29sdGlwUG9wdXBSZWYuY3VycmVudCAmJiB0cmlnZ2VyUmVjdCkge1xuICAgICAgICAgICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0b29sdGlwUG9wdXBSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uQ3NzVGV4dCA9IHBvc2l0aW9uVHJpYW5nbGUodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KTtcbiAgICAgICAgICAgIGNvbnN0IGNzc1RleHQgPSBgXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICR7cG9zaXRpb25Dc3NUZXh0fVxuICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtCQUNLR1JPVU5EX0NPTE9SfTtcbiAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7QkFDS0dST1VORF9DT0xPUn07XG4gICAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIGA7XG4gICAgICAgICAgICB0cmlhbmdsZVJlZi5jdXJyZW50LnN0eWxlLmNzc1RleHQgPSBjc3NUZXh0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAge2Nsb25lRWxlbWVudChjaGlsZHJlbiwgdHJpZ2dlcil9XG4gICAgICAgICAgICA8VG9vbHRpcFBvcHVwXG4gICAgICAgICAgICAgICAgey4uLnRvb2x0aXB9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIGFyaWFMYWJlbD17YXJpYUxhYmVsfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IEJBQ0tHUk9VTkRfQ09MT1IsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBURVhUX0NPTE9SLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgcmVmPXt0b29sdGlwUG9wdXBSZWZ9XG4gICAgICAgICAgICAgICAgcG9zaXRpb249e3Bvc2l0aW9uVGlwfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtpc1Zpc2libGUgJiYgKFxuICAgICAgICAgICAgICAgIDxQb3J0YWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17dHJpYW5nbGVSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1BvcnRhbD5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5Ub29sdGlwLnByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgREVCVUdfU1RZTEU6IFByb3BUeXBlcy5ib29sLFxufTtcblxuVG9vbHRpcC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgYXJpYUxhYmVsOiB1bmRlZmluZWQsXG4gICAgREVCVUdfU1RZTEU6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRvb2x0aXA7XG4iXSwibmFtZXMiOlsiVEVYVF9DT0xPUiIsIkJBQ0tHUk9VTkRfQ09MT1IiLCJUb29sdGlwIiwiX3JlZiIsImNoaWxkcmVuIiwibGFiZWwiLCJhcmlhTGFiZWwiLCJERUJVR19TVFlMRSIsIl91c2VUb29sdGlwIiwidXNlVG9vbHRpcCIsIl91c2VUb29sdGlwMiIsIl9zbGljZWRUb0FycmF5IiwidHJpZ2dlciIsInRvb2x0aXAiLCJpc1Zpc2libGUiLCJ0cmlnZ2VyUmVjdCIsInRvb2x0aXBQb3B1cFJlZiIsInVzZVJlZiIsInRyaWFuZ2xlUmVmIiwidXNlTGF5b3V0RWZmZWN0IiwiY3VycmVudCIsInRvb2x0aXBSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwicG9zaXRpb25Dc3NUZXh0IiwicG9zaXRpb25UcmlhbmdsZSIsImNzc1RleHQiLCJjb25jYXQiLCJzdHlsZSIsIl9yZWFjdDIiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjbG9uZUVsZW1lbnQiLCJfdG9vbHRpcCIsIlRvb2x0aXBQb3B1cCIsIl9leHRlbmRzIiwiYmFja2dyb3VuZCIsImNvbG9yIiwicmVmIiwicG9zaXRpb24iLCJwb3NpdGlvblRpcCIsIl9wb3J0YWwyIiwid2lkdGgiLCJoZWlnaHQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJub2RlIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImJvb2wiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///472\n')},733:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(472)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _Tooltip) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _Tooltip2 = _interopRequireDefault(_Tooltip);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n exports["default"] = _Tooltip2["default"];\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzMzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBRWVBLG9CQUFPO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvVG9vbHRpcC9pbmRleC5qcz8wNTRhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUb29sdGlwIGZyb20gXCIuL1Rvb2x0aXBcIjtcblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcDtcbiJdLCJuYW1lcyI6WyJUb29sdGlwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///733\n')},507:function(module,exports){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var OFFSET = 12; // modified from reach-ui/tooltip OFFSET value\n var TRIANGLE_SCALE_X = 6;\n var TRIANGLE_SCALE_Y = 8;\n var isDirectionUp = function isDirectionUp(triggerRect, tooltipRect) {\n var collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n bottom: window.innerHeight < triggerRect.bottom + tooltipRect.height + OFFSET\n };\n return !collisions.top || collisions.bottom;\n };\n\n // modified from @reach/tooltip default positioning function\n // positions Tooltip relative to trigger\n // https://github.com/reach/reach-ui/blob/master/packages/tooltip/src/index.tsx#L532\n var positionTip = function positionTip(triggerRect, tooltipRect) {\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n var triggerCenter = triggerRect.left + triggerRect.width / 2;\n var left = triggerCenter - tooltipRect.width / 2;\n var maxLeft = window.innerWidth - tooltipRect.width - 2;\n var centerLeft = Math.min(Math.max(2, left), maxLeft) + window.pageXOffset;\n var directionUp = isDirectionUp(triggerRect, tooltipRect);\n return {\n left: "".concat(centerLeft, "px"),\n top: directionUp ? "".concat(triggerRect.top - OFFSET - tooltipRect.height + window.pageYOffset, "px") : "".concat(triggerRect.top + OFFSET + triggerRect.height + window.pageYOffset, "px")\n };\n };\n exports["default"] = positionTip;\n // position triangle relative to tooltip position\n // TODO: figure out a better way to render these updates from within react\n // rendering. This method causes an additional repaint after the Tooltip\n // has been rendered. may require changes to @reach/tooltip.\n var positionTriangle = exports.positionTriangle = function positionTriangle(triggerRect, tooltipRect) {\n var directionUp = isDirectionUp(triggerRect, tooltipRect);\n var triangleTop = directionUp ? triggerRect.top + window.pageYOffset - OFFSET : triggerRect.bottom + window.pageYOffset + OFFSET - TRIANGLE_SCALE_Y;\n var triangleLeft = triggerRect.left - TRIANGLE_SCALE_X + triggerRect.width / 2;\n var triangleBorder = directionUp ? "border-top: ".concat(TRIANGLE_SCALE_Y, "px solid;") : "border-bottom: ".concat(TRIANGLE_SCALE_Y, "px solid;");\n return "\\n border-left: ".concat(TRIANGLE_SCALE_X, "px solid transparent;\\n border-right: ").concat(TRIANGLE_SCALE_X, "px solid transparent;\\n left: ").concat(triangleLeft, "px;\\n top: ").concat(triangleTop, "px;\\n ").concat(triangleBorder, "\\n ");\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNtQnZCLGdCQUFnQixtREFBQXVCLE1BQUEsQ0FDZnZCLGdCQUFnQiwyQ0FBQXVCLE1BQUEsQ0FDeEJLLFlBQVksd0JBQUFMLE1BQUEsQ0FDYkksV0FBVyxtQkFBQUosTUFBQSxDQUNoQk0sY0FBYztFQUV4QixDQUFDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvVG9vbHRpcC9wb3NpdGlvbi5qcz82MWIxIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE9GRlNFVCA9IDEyOyAvLyBtb2RpZmllZCBmcm9tIHJlYWNoLXVpL3Rvb2x0aXAgT0ZGU0VUIHZhbHVlXG5jb25zdCBUUklBTkdMRV9TQ0FMRV9YID0gNjtcbmNvbnN0IFRSSUFOR0xFX1NDQUxFX1kgPSA4O1xuXG5jb25zdCBpc0RpcmVjdGlvblVwID0gKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkgPT4ge1xuICAgIGNvbnN0IGNvbGxpc2lvbnMgPSB7XG4gICAgICAgIHRvcDogdHJpZ2dlclJlY3QudG9wIC0gdG9vbHRpcFJlY3QuaGVpZ2h0IDwgMCxcbiAgICAgICAgYm90dG9tOlxuICAgICAgICAgICAgd2luZG93LmlubmVySGVpZ2h0IDxcbiAgICAgICAgICAgIHRyaWdnZXJSZWN0LmJvdHRvbSArIHRvb2x0aXBSZWN0LmhlaWdodCArIE9GRlNFVCxcbiAgICB9O1xuXG4gICAgcmV0dXJuICFjb2xsaXNpb25zLnRvcCB8fCBjb2xsaXNpb25zLmJvdHRvbTtcbn07XG5cbi8vIG1vZGlmaWVkIGZyb20gQHJlYWNoL3Rvb2x0aXAgZGVmYXVsdCBwb3NpdGlvbmluZyBmdW5jdGlvblxuLy8gcG9zaXRpb25zIFRvb2x0aXAgcmVsYXRpdmUgdG8gdHJpZ2dlclxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3Rvb2x0aXAvc3JjL2luZGV4LnRzeCNMNTMyXG5jb25zdCBwb3NpdGlvblRpcCA9ICh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpID0+IHtcbiAgICBpZiAoIXRyaWdnZXJSZWN0IHx8ICF0b29sdGlwUmVjdCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgdHJpZ2dlckNlbnRlciA9IHRyaWdnZXJSZWN0LmxlZnQgKyB0cmlnZ2VyUmVjdC53aWR0aCAvIDI7XG4gICAgY29uc3QgbGVmdCA9IHRyaWdnZXJDZW50ZXIgLSB0b29sdGlwUmVjdC53aWR0aCAvIDI7XG4gICAgY29uc3QgbWF4TGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gdG9vbHRpcFJlY3Qud2lkdGggLSAyO1xuICAgIGNvbnN0IGNlbnRlckxlZnQgPVxuICAgICAgICBNYXRoLm1pbihNYXRoLm1heCgyLCBsZWZ0KSwgbWF4TGVmdCkgKyB3aW5kb3cucGFnZVhPZmZzZXQ7XG5cbiAgICBjb25zdCBkaXJlY3Rpb25VcCA9IGlzRGlyZWN0aW9uVXAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6IGAke2NlbnRlckxlZnR9cHhgLFxuICAgICAgICB0b3A6IGRpcmVjdGlvblVwXG4gICAgICAgICAgICA/IGAke1xuICAgICAgICAgICAgICAgICAgdHJpZ2dlclJlY3QudG9wIC1cbiAgICAgICAgICAgICAgICAgIE9GRlNFVCAtXG4gICAgICAgICAgICAgICAgICB0b29sdGlwUmVjdC5oZWlnaHQgK1xuICAgICAgICAgICAgICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0XG4gICAgICAgICAgICAgIH1weGBcbiAgICAgICAgICAgIDogYCR7XG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyUmVjdC50b3AgK1xuICAgICAgICAgICAgICAgICAgT0ZGU0VUICtcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJSZWN0LmhlaWdodCArXG4gICAgICAgICAgICAgICAgICB3aW5kb3cucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgfXB4YCxcbiAgICB9O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgcG9zaXRpb25UaXA7XG5cbi8vIHBvc2l0aW9uIHRyaWFuZ2xlIHJlbGF0aXZlIHRvIHRvb2x0aXAgcG9zaXRpb25cbi8vIFRPRE86IGZpZ3VyZSBvdXQgYSBiZXR0ZXIgd2F5IHRvIHJlbmRlciB0aGVzZSB1cGRhdGVzIGZyb20gd2l0aGluIHJlYWN0XG4vLyByZW5kZXJpbmcuIFRoaXMgbWV0aG9kIGNhdXNlcyBhbiBhZGRpdGlvbmFsIHJlcGFpbnQgYWZ0ZXIgdGhlIFRvb2x0aXBcbi8vIGhhcyBiZWVuIHJlbmRlcmVkLiBtYXkgcmVxdWlyZSBjaGFuZ2VzIHRvIEByZWFjaC90b29sdGlwLlxuZXhwb3J0IGNvbnN0IHBvc2l0aW9uVHJpYW5nbGUgPSAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KSA9PiB7XG4gICAgY29uc3QgZGlyZWN0aW9uVXAgPSBpc0RpcmVjdGlvblVwKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCk7XG4gICAgY29uc3QgdHJpYW5nbGVUb3AgPSBkaXJlY3Rpb25VcFxuICAgICAgICA/IHRyaWdnZXJSZWN0LnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCAtIE9GRlNFVFxuICAgICAgICA6IHRyaWdnZXJSZWN0LmJvdHRvbSArIHdpbmRvdy5wYWdlWU9mZnNldCArIE9GRlNFVCAtIFRSSUFOR0xFX1NDQUxFX1k7XG5cbiAgICBjb25zdCB0cmlhbmdsZUxlZnQgPVxuICAgICAgICB0cmlnZ2VyUmVjdC5sZWZ0IC0gVFJJQU5HTEVfU0NBTEVfWCArIHRyaWdnZXJSZWN0LndpZHRoIC8gMjtcblxuICAgIGNvbnN0IHRyaWFuZ2xlQm9yZGVyID0gZGlyZWN0aW9uVXBcbiAgICAgICAgPyBgYm9yZGVyLXRvcDogJHtUUklBTkdMRV9TQ0FMRV9ZfXB4IHNvbGlkO2BcbiAgICAgICAgOiBgYm9yZGVyLWJvdHRvbTogJHtUUklBTkdMRV9TQ0FMRV9ZfXB4IHNvbGlkO2A7XG5cbiAgICByZXR1cm4gYFxuICAgICAgICBib3JkZXItbGVmdDogJHtUUklBTkdMRV9TQ0FMRV9YfXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6ICR7VFJJQU5HTEVfU0NBTEVfWH1weCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgbGVmdDogJHt0cmlhbmdsZUxlZnR9cHg7XG4gICAgICAgIHRvcDogJHt0cmlhbmdsZVRvcH1weDtcbiAgICAgICAgJHt0cmlhbmdsZUJvcmRlcn1cbiAgICBgO1xufTtcbiJdLCJuYW1lcyI6WyJPRkZTRVQiLCJUUklBTkdMRV9TQ0FMRV9YIiwiVFJJQU5HTEVfU0NBTEVfWSIsImlzRGlyZWN0aW9uVXAiLCJ0cmlnZ2VyUmVjdCIsInRvb2x0aXBSZWN0IiwiY29sbGlzaW9ucyIsInRvcCIsImhlaWdodCIsImJvdHRvbSIsIndpbmRvdyIsImlubmVySGVpZ2h0IiwicG9zaXRpb25UaXAiLCJ0cmlnZ2VyQ2VudGVyIiwibGVmdCIsIndpZHRoIiwibWF4TGVmdCIsImlubmVyV2lkdGgiLCJjZW50ZXJMZWZ0IiwiTWF0aCIsIm1pbiIsIm1heCIsInBhZ2VYT2Zmc2V0IiwiZGlyZWN0aW9uVXAiLCJjb25jYXQiLCJwYWdlWU9mZnNldCIsImV4cG9ydHMiLCJwb3NpdGlvblRyaWFuZ2xlIiwidHJpYW5nbGVUb3AiLCJ0cmlhbmdsZUxlZnQiLCJ0cmlhbmdsZUJvcmRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///507\n')},45:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(228), __webpack_require__(823), __webpack_require__(474)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(this, function (exports, _error, _footer) {\n "use strict";\n\n Object.defineProperty(exports, "__esModule", {\n value: true\n });\n var _error2 = _interopRequireDefault(_error);\n var _footer2 = _interopRequireDefault(_footer);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var QppStyleComponents = {\n errorPage: function errorPage(options) {\n return new _error2["default"](options);\n },\n footer: function footer(options) {\n return new _footer2["default"](options);\n }\n };\n exports["default"] = QppStyleComponents;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFLQSxJQUFNQSxrQkFBa0IsR0FBRztJQUN2QkMsU0FBUyxXQUFBQSxVQUFDQyxPQUFPLEVBQUU7TUFDZixPQUFPLElBQUlDLGtCQUFTLENBQUNELE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRURFLE1BQU0sV0FBQUEsT0FBQ0YsT0FBTyxFQUFFO01BQ1osT0FBTyxJQUFJRyxtQkFBTSxDQUFDSCxPQUFPLENBQUM7SUFDOUI7RUFDSixDQUFDO0VBQUNJLE9BQUEsY0FFYU4sa0JBQWtCO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2luZGV4LmpzPzQxZjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVycm9yUGFnZSBmcm9tIFwiLi9jb21wb25lbnRzL0Vycm9yL2Vycm9yXCI7XG5pbXBvcnQgRm9vdGVyIGZyb20gXCIuL2NvbXBvbmVudHMvRm9vdGVyL2Zvb3RlclwiO1xuXG5pbXBvcnQgXCJ3aGF0LWlucHV0XCI7XG5cbmNvbnN0IFFwcFN0eWxlQ29tcG9uZW50cyA9IHtcbiAgICBlcnJvclBhZ2Uob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEVycm9yUGFnZShvcHRpb25zKTtcbiAgICB9LFxuXG4gICAgZm9vdGVyKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGb290ZXIob3B0aW9ucyk7XG4gICAgfSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFFwcFN0eWxlQ29tcG9uZW50cztcbiJdLCJuYW1lcyI6WyJRcHBTdHlsZUNvbXBvbmVudHMiLCJlcnJvclBhZ2UiLCJvcHRpb25zIiwiRXJyb3JQYWdlIiwiZm9vdGVyIiwiRm9vdGVyIiwiZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///45\n')},776:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n "Children": () => (/* binding */ compat_module_O),\n "Component": () => (/* reexport */ d),\n "Fragment": () => (/* reexport */ p),\n "PureComponent": () => (/* binding */ compat_module_w),\n "StrictMode": () => (/* binding */ vn),\n "Suspense": () => (/* binding */ D),\n "SuspenseList": () => (/* binding */ compat_module_V),\n "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED": () => (/* binding */ rn),\n "cloneElement": () => (/* binding */ cn),\n "createContext": () => (/* reexport */ B),\n "createElement": () => (/* reexport */ h),\n "createFactory": () => (/* binding */ on),\n "createPortal": () => (/* binding */ compat_module_j),\n "createRef": () => (/* reexport */ y),\n "default": () => (/* binding */ bn),\n "findDOMNode": () => (/* binding */ an),\n "flushSync": () => (/* binding */ hn),\n "forwardRef": () => (/* binding */ compat_module_k),\n "hydrate": () => (/* binding */ compat_module_q),\n "isValidElement": () => (/* binding */ ln),\n "lazy": () => (/* binding */ compat_module_M),\n "memo": () => (/* binding */ R),\n "render": () => (/* binding */ Y),\n "startTransition": () => (/* binding */ dn),\n "unmountComponentAtNode": () => (/* binding */ fn),\n "unstable_batchedUpdates": () => (/* binding */ sn),\n "useCallback": () => (/* reexport */ hooks_module_T),\n "useContext": () => (/* reexport */ hooks_module_q),\n "useDebugValue": () => (/* reexport */ hooks_module_x),\n "useDeferredValue": () => (/* binding */ pn),\n "useEffect": () => (/* reexport */ hooks_module_h),\n "useErrorBoundary": () => (/* reexport */ hooks_module_P),\n "useId": () => (/* reexport */ V),\n "useImperativeHandle": () => (/* reexport */ hooks_module_A),\n "useInsertionEffect": () => (/* binding */ yn),\n "useLayoutEffect": () => (/* reexport */ hooks_module_s),\n "useMemo": () => (/* reexport */ F),\n "useReducer": () => (/* reexport */ hooks_module_y),\n "useRef": () => (/* reexport */ hooks_module_),\n "useState": () => (/* reexport */ hooks_module_p),\n "useSyncExternalStore": () => (/* binding */ _n),\n "useTransition": () => (/* binding */ mn),\n "version": () => (/* binding */ un)\n});\n\n;// CONCATENATED MODULE: ./node_modules/preact/dist/preact.module.js\nvar n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v(l,f,t,o,null)}function v(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function y(){return{current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?_(n):null}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function b(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||setTimeout)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=s({},t)).__v=t.__v+1,j(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?_(t):o,t.__h),z(u,t),t.__e!=o&&k(t)))})}function w(n,l,u,i,t,o,r,c,s,a){var h,y,d,k,b,g,w,x=i&&i.__k||e,C=x.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k||"bigint"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(p,{children:k},null,null,null):k.__b>0?v(k.type,k.props,k.key,k.ref?k.ref:null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y<C;y++){if((d=x[y])&&k.key==d.key&&k.type===d.type){x[y]=void 0;break}d=null}j(n,k,d=d||f,t,o,r,c,s,a),b=k.__e,(y=k.ref)&&d.ref!=y&&(w||(w=[]),d.ref&&w.push(d.ref,null,k),w.push(y,k.__c||b,k)),null!=b?(null==g&&(g=b),"function"==typeof k.type&&k.__k===d.__k?k.__d=s=m(k,s,n):s=A(n,k,d,x,b,s),"function"==typeof u.type&&(u.__d=s)):s&&d.__e==s&&s.parentNode!=n&&(s=_(d))}for(u.__e=g,h=C;h--;)null!=x[h]&&N(x[h],x[h]);if(w)for(h=0;h<w.length;h++)M(w[h],w[++h],w[++h])}function m(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l="function"==typeof i.type?m(i,l,u):A(u,i,i,t,i.__e,l));return l}function x(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){x(n,l)}):l.push(n)),l}function A(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||c.test(l)?u:u+"px"}function H(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&-1==l.indexOf("-")?n.removeAttribute(l):n.setAttribute(l,u))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,o,r,f,e,c){var a,h,v,y,_,k,b,g,m,x,A,C,$,H,I,T=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=l.__b)&&a(u);try{n:if("function"==typeof T){if(g=u.props,m=(a=T.contextType)&&t[a.__c],x=a?m?m.props.value:a.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in T&&T.prototype.render?u.__c=h=new T(g,x):(u.__c=h=new d(g,x),h.constructor=T,h.render=O),m&&m.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[],h._sb=[]),null==h.__s&&(h.__s=h.state),null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,T.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==T.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){for(h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),A=0;A<h._sb.length;A++)h.__h.push(h._sb[A]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,k)})}if(h.context=x,h.props=g,h.__v=u,h.__P=n,C=l.__r,$=0,"prototype"in T&&T.prototype.render){for(h.state=h.__s,h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,C&&C(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++$<25);h.state=h.__s,null!=h.getChildContext&&(t=s(s({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,_)),I=null!=a&&a.type===p&&null==a.key?a.props.children:a,w(n,Array.isArray(I)?I:[I],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(a=l.diffed)&&a(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,o,r,e,c){var s,h,v,y=i.props,p=u.props,d=u.type,k=0;if("svg"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&"setAttribute"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&n.call(l.childNodes),h=(y=i.props||f).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},k=0;k<l.attributes.length;k++)y[l.attributes[k].name]=l.attributes[k].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""))}if(C(l,p,y,o,c),v)u.__k=[];else if(k=u.props.children,w(l,Array.isArray(k)?k:[k],u,i,t,o&&"foreignObject"!==d,r,e,r?r[0]:i.__k&&_(i,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&a(r[k]);c||("value"in p&&void 0!==(k=p.value)&&(k!==l.value||"progress"===d&&!k||"option"===d&&k!==y.value)&&H(l,"value",k,y.value,!1),"checked"in p&&void 0!==(k=p.checked)&&k!==l.checked&&H(l,"checked",k,y.checked,!1))}return l}function M(n,u,i){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null,n.__c=void 0}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,i||"function"!=typeof n.type);i||null==n.__e||a(n.__e),n.__=n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function P(u,i,t){var o,r,e;l.__&&l.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,e=[],j(i,u=(!o&&t||i).__k=h(p,null,[u]),r||f,f,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,e,!o&&t?t:r?r.__e:i.firstChild,o),z(e,u)}function S(n,l){P(n,l,S)}function q(l,u,i){var t,o,r,f=s({},l.props);for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),v(l.type,f,t||l.key,o||l.ref,null)}function B(n,l){var u={__c:l="__cC"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(b)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=e.slice,l={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),"function"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),b(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b(this))},d.prototype.render=p,t=[],g.__r=0,r=0;\n//# sourceMappingURL=preact.module.js.map\n\n;// CONCATENATED MODULE: ./node_modules/preact/hooks/dist/hooks.module.js\nvar hooks_module_t,hooks_module_r,hooks_module_u,hooks_module_i,hooks_module_o=0,hooks_module_f=[],hooks_module_c=[],hooks_module_e=l.__b,hooks_module_a=l.__r,hooks_module_v=l.diffed,hooks_module_l=l.__c,hooks_module_m=l.unmount;function hooks_module_d(t,u){l.__h&&l.__h(hooks_module_r,t,hooks_module_o||u),hooks_module_o=0;var i=hooks_module_r.__H||(hooks_module_r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:hooks_module_c}),i.__[t]}function hooks_module_p(n){return hooks_module_o=1,hooks_module_y(hooks_module_B,n)}function hooks_module_y(n,u,i){var o=hooks_module_d(hooks_module_t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):hooks_module_B(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=hooks_module_r,!hooks_module_r.u)){hooks_module_r.u=!0;var f=hooks_module_r.shouldComponentUpdate;hooks_module_r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!f||f.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!f||f.call(this,n,t,r))}}return o.__N||o.__}function hooks_module_h(u,i){var o=hooks_module_d(hooks_module_t++,3);!l.__s&&hooks_module_z(o.__H,i)&&(o.__=u,o.i=i,hooks_module_r.__H.__h.push(o))}function hooks_module_s(u,i){var o=hooks_module_d(hooks_module_t++,4);!l.__s&&hooks_module_z(o.__H,i)&&(o.__=u,o.i=i,hooks_module_r.__h.push(o))}function hooks_module_(n){return hooks_module_o=5,F(function(){return{current:n}},[])}function hooks_module_A(n,t,r){hooks_module_o=6,hooks_module_s(function(){return"function"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=hooks_module_d(hooks_module_t++,7);return hooks_module_z(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function hooks_module_T(n,t){return hooks_module_o=8,F(function(){return n},t)}function hooks_module_q(n){var u=hooks_module_r.context[n.__c],i=hooks_module_d(hooks_module_t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(hooks_module_r)),u.props.value):n.__}function hooks_module_x(t,r){l.useDebugValue&&l.useDebugValue(r?r(t):t)}function hooks_module_P(n){var u=hooks_module_d(hooks_module_t++,10),i=hooks_module_p();return u.__=n,hooks_module_r.componentDidCatch||(hooks_module_r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function V(){var n=hooks_module_d(hooks_module_t++,11);if(!n.__){for(var u=hooks_module_r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__="P"+i[0]+"-"+i[1]++}return n.__}function hooks_module_b(){for(var t;t=hooks_module_f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(hooks_module_k),t.__H.__h.forEach(hooks_module_w),t.__H.__h=[]}catch(r){t.__H.__h=[],l.__e(r,t.__v)}}l.__b=function(n){hooks_module_r=null,hooks_module_e&&hooks_module_e(n)},l.__r=function(n){hooks_module_a&&hooks_module_a(n),hooks_module_t=0;var i=(hooks_module_r=n.__c).__H;i&&(hooks_module_u===hooks_module_r?(i.__h=[],hooks_module_r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=hooks_module_c,n.__N=n.i=void 0})):(i.__h.forEach(hooks_module_k),i.__h.forEach(hooks_module_w),i.__h=[])),hooks_module_u=hooks_module_r},l.diffed=function(t){hooks_module_v&&hooks_module_v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==hooks_module_f.push(o)&&hooks_module_i===l.requestAnimationFrame||((hooks_module_i=l.requestAnimationFrame)||hooks_module_j)(hooks_module_b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==hooks_module_c&&(n.__=n.__V),n.i=void 0,n.__V=hooks_module_c})),hooks_module_u=hooks_module_r=null},l.__c=function(t,r){r.some(function(t){try{t.__h.forEach(hooks_module_k),t.__h=t.__h.filter(function(n){return!n.__||hooks_module_w(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],l.__e(u,t.__v)}}),hooks_module_l&&hooks_module_l(t,r)},l.unmount=function(t){hooks_module_m&&hooks_module_m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{hooks_module_k(n)}catch(n){r=n}}),u.__H=void 0,r&&l.__e(r,u.__v))};var hooks_module_g="function"==typeof requestAnimationFrame;function hooks_module_j(n){var t,r=function(){clearTimeout(u),hooks_module_g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);hooks_module_g&&(t=requestAnimationFrame(r))}function hooks_module_k(n){var t=hooks_module_r,u=n.__c;"function"==typeof u&&(n.__c=void 0,u()),hooks_module_r=t}function hooks_module_w(n){var t=hooks_module_r;n.__c=n.__(),hooks_module_r=t}function hooks_module_z(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function hooks_module_B(n,t){return"function"==typeof t?t(n):t}\n//# sourceMappingURL=hooks.module.js.map\n\n;// CONCATENATED MODULE: ./node_modules/preact/compat/dist/compat.module.js\nfunction compat_module_g(n,t){for(var e in t)n[e]=t[e];return n}function compat_module_C(n,t){for(var e in n)if("__source"!==e&&!(e in t))return!0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return!0;return!1}function E(n,t){return n===t&&(0!==n||1/n==1/t)||n!=n&&t!=t}function compat_module_w(n){this.props=n}function R(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:compat_module_C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,h(n,e)}return u.displayName="Memo("+(n.displayName||n.name)+")",u.prototype.isReactComponent=!0,u.__f=!0,u}(compat_module_w.prototype=new d).isPureReactComponent=!0,compat_module_w.prototype.shouldComponentUpdate=function(n,t){return compat_module_C(this.props,n)||compat_module_C(this.state,t)};var compat_module_x=l.__b;l.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),compat_module_x&&compat_module_x(n)};var compat_module_N="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function compat_module_k(n){function t(t){var e=compat_module_g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=compat_module_N,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var compat_module_A=function(n,t){return null==n?null:x(x(n).map(t))},compat_module_O={map:compat_module_A,forEach:compat_module_A,count:function(n){return n?x(n).length:0},only:function(n){var t=x(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:x},compat_module_T=l.__e;l.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);compat_module_T(n,t,e,r)};var compat_module_I=l.unmount;function compat_module_L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=compat_module_g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return compat_module_L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null}function compat_module_F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function compat_module_M(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return h(r,o)}return o.displayName="Lazy",o.__f=!0,o}function compat_module_V(){this.u=null,this.o=null}l.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),compat_module_I&&compat_module_I(n)},(D.prototype=new d).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=compat_module_F(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},D.prototype.componentWillUnmount=function(){this.t=[]},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=compat_module_L(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&h(p,null,n.fallback);return i&&(i.__h=null),[h(p,null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function compat_module_P(n){return this.getChildContext=function(){return n.context},n.children}function compat_module_$(n){var e=this,r=n.i;e.componentWillUnmount=function(){P(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),n.__v?(e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),P(h(compat_module_P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount()}function compat_module_j(n,e){var r=h(compat_module_$,{__v:n,i:e});return r.containerInfo=e,r}(compat_module_V.prototype=new d).__a=function(n){var t=this,e=compat_module_F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u()};e?e(o):o()}},compat_module_V.prototype.render=function(n){this.u=null,this.o=new Map;var t=x(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},compat_module_V.prototype.componentDidUpdate=compat_module_V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t)})};var compat_module_z="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,compat_module_B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,compat_module_H="undefined"!=typeof document,Z=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function Y(n,t,e){return null==t.__k&&(t.textContent=""),P(n,t),"function"==typeof e&&e(),n?n.__c:null}function compat_module_q(n,t,e){return S(n,t),"function"==typeof e&&e(),n?n.__c:null}d.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(d.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var G=l.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}l.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var X,nn={configurable:!0,get:function(){return this.class}},tn=l.vnode;l.vnode=function(n){var t=n.type,e=n.props,u=e;if("string"==typeof t){var o=-1===t.indexOf("-");for(var i in u={},e){var l=e[i];compat_module_H&&"children"===i&&"noscript"===t||"value"===i&&"defaultValue"in e&&null==l||("defaultValue"===i&&"value"in e&&null==e.value?i="value":"download"===i&&!0===l?l="":/ondoubleclick/i.test(i)?i="ondblclick":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i="oninput":/^onfocus$/i.test(i)?i="onfocusin":/^onblur$/i.test(i)?i="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&compat_module_B.test(i)?i=i.replace(/[A-Z0-9]/g,"-$&").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i="oninputCapture")),u[i]=l)}"select"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=x(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),"select"==t&&null!=u.defaultValue&&(u.value=x(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),n.props=u,e.class!=e.className&&(nn.enumerable="className"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,"className",nn))}n.$$typeof=compat_module_z,tn&&tn(n)};var en=l.__r;l.__r=function(n){en&&en(n),X=n.__c};var rn={ReactCurrentDispatcher:{current:{readContext:function(n){return X.__n[n.__c].props.value}}}},un="17.0.2";function on(n){return h.bind(null,n)}function ln(n){return!!n&&n.$$typeof===compat_module_z}function cn(n){return ln(n)?q.apply(null,arguments):n}function fn(n){return!!n.__k&&(P(null,n),!0)}function an(n){return n&&(n.base||1===n.nodeType&&n)||null}var sn=function(n,t){return n(t)},hn=function(n,t){return n(t)},vn=p;function dn(n){n()}function pn(n){return n}function mn(){return[!1,dn]}var yn=hooks_module_s;function _n(n,t){var e=t(),r=hooks_module_p({h:{__:e,v:t}}),u=r[0].h,o=r[1];return hooks_module_s(function(){u.__=e,u.v=t,E(u.__,t())||o({h:u})},[n,e,t]),hooks_module_h(function(){return E(u.__,u.v())||o({h:u}),n(function(){E(u.__,u.v())||o({h:u})})},[n]),e}var bn={useState:hooks_module_p,useId:V,useReducer:hooks_module_y,useEffect:hooks_module_h,useLayoutEffect:hooks_module_s,useInsertionEffect:yn,useTransition:mn,useDeferredValue:pn,useSyncExternalStore:_n,startTransition:dn,useRef:hooks_module_,useImperativeHandle:hooks_module_A,useMemo:F,useCallback:hooks_module_T,useContext:hooks_module_q,useDebugValue:hooks_module_x,version:"17.0.2",Children:compat_module_O,render:Y,hydrate:compat_module_q,unmountComponentAtNode:fn,createPortal:compat_module_j,createElement:h,createContext:B,createFactory:on,cloneElement:cn,createRef:y,Fragment:p,isValidElement:ln,findDOMNode:an,Component:d,PureComponent:compat_module_w,memo:R,forwardRef:compat_module_k,flushSync:hn,unstable_batchedUpdates:sn,StrictMode:vn,Suspense:D,SuspenseList:compat_module_V,lazy:compat_module_M,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:rn};\n//# sourceMappingURL=compat.module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFFLFFBQVEsUUFBUSxTQUFTLGNBQUMsT0FBTyxDQUFDLFlBQVksY0FBQyxXQUFXLGNBQUMsaUJBQWlCLGNBQUMsOEdBQThHLGFBQUMscUJBQXFCLGNBQUMsU0FBUyxDQUFDLGFBQWEsY0FBQyxZQUFZLGNBQUMsZUFBZSxjQUFDLDJCQUEyQixlQUFDLGtCQUFrQixlQUFDLHdDQUF3QyxlQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsNENBQTRDLENBQUMsVUFBVSxDQUFDLDRDQUE0QyxDQUFDLGVBQWUsZUFBQyxtQkFBbUIsZUFBQywrRUFBK0UsZUFBQyxNQUFNLGVBQUMsd0RBQW9rQjtBQUNsbFMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9wcmVhY3QvZGlzdC9wcmVhY3QubW9kdWxlLmpzP2RhNjUiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2hvb2tzL2Rpc3QvaG9va3MubW9kdWxlLmpzPzMwZWMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9kaXN0L2NvbXBhdC5tb2R1bGUuanM/MTVkMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbixsLHUsaSx0LG8scixmPXt9LGU9W10sYz0vYWNpdHxleCg/OnN8Z3xufHB8JCl8cnBofGdyaWR8b3dzfG1uY3xudHd8aW5lW2NoXXx6b298Xm9yZHxpdGVyYS9pO2Z1bmN0aW9uIHMobixsKXtmb3IodmFyIHUgaW4gbCluW3VdPWxbdV07cmV0dXJuIG59ZnVuY3Rpb24gYShuKXt2YXIgbD1uLnBhcmVudE5vZGU7bCYmbC5yZW1vdmVDaGlsZChuKX1mdW5jdGlvbiBoKGwsdSxpKXt2YXIgdCxvLHIsZj17fTtmb3IociBpbiB1KVwia2V5XCI9PXI/dD11W3JdOlwicmVmXCI9PXI/bz11W3JdOmZbcl09dVtyXTtpZihhcmd1bWVudHMubGVuZ3RoPjImJihmLmNoaWxkcmVuPWFyZ3VtZW50cy5sZW5ndGg+Mz9uLmNhbGwoYXJndW1lbnRzLDIpOmkpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGwmJm51bGwhPWwuZGVmYXVsdFByb3BzKWZvcihyIGluIGwuZGVmYXVsdFByb3BzKXZvaWQgMD09PWZbcl0mJihmW3JdPWwuZGVmYXVsdFByb3BzW3JdKTtyZXR1cm4gdihsLGYsdCxvLG51bGwpfWZ1bmN0aW9uIHYobixpLHQsbyxyKXt2YXIgZj17dHlwZTpuLHByb3BzOmksa2V5OnQscmVmOm8sX19rOm51bGwsX186bnVsbCxfX2I6MCxfX2U6bnVsbCxfX2Q6dm9pZCAwLF9fYzpudWxsLF9faDpudWxsLGNvbnN0cnVjdG9yOnZvaWQgMCxfX3Y6bnVsbD09cj8rK3U6cn07cmV0dXJuIG51bGw9PXImJm51bGwhPWwudm5vZGUmJmwudm5vZGUoZiksZn1mdW5jdGlvbiB5KCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19ZnVuY3Rpb24gcChuKXtyZXR1cm4gbi5jaGlsZHJlbn1mdW5jdGlvbiBkKG4sbCl7dGhpcy5wcm9wcz1uLHRoaXMuY29udGV4dD1sfWZ1bmN0aW9uIF8obixsKXtpZihudWxsPT1sKXJldHVybiBuLl9fP18obi5fXyxuLl9fLl9fay5pbmRleE9mKG4pKzEpOm51bGw7Zm9yKHZhciB1O2w8bi5fX2subGVuZ3RoO2wrKylpZihudWxsIT0odT1uLl9fa1tsXSkmJm51bGwhPXUuX19lKXJldHVybiB1Ll9fZTtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBuLnR5cGU/XyhuKTpudWxsfWZ1bmN0aW9uIGsobil7dmFyIGwsdTtpZihudWxsIT0obj1uLl9fKSYmbnVsbCE9bi5fX2Mpe2ZvcihuLl9fZT1uLl9fYy5iYXNlPW51bGwsbD0wO2w8bi5fX2subGVuZ3RoO2wrKylpZihudWxsIT0odT1uLl9fa1tsXSkmJm51bGwhPXUuX19lKXtuLl9fZT1uLl9fYy5iYXNlPXUuX19lO2JyZWFrfXJldHVybiBrKG4pfX1mdW5jdGlvbiBiKG4peyghbi5fX2QmJihuLl9fZD0hMCkmJnQucHVzaChuKSYmIWcuX19yKyt8fG8hPT1sLmRlYm91bmNlUmVuZGVyaW5nKSYmKChvPWwuZGVib3VuY2VSZW5kZXJpbmcpfHxzZXRUaW1lb3V0KShnKX1mdW5jdGlvbiBnKCl7Zm9yKHZhciBuO2cuX19yPXQubGVuZ3RoOyluPXQuc29ydChmdW5jdGlvbihuLGwpe3JldHVybiBuLl9fdi5fX2ItbC5fX3YuX19ifSksdD1bXSxuLnNvbWUoZnVuY3Rpb24obil7dmFyIGwsdSxpLHQsbyxyO24uX19kJiYobz0odD0obD1uKS5fX3YpLl9fZSwocj1sLl9fUCkmJih1PVtdLChpPXMoe30sdCkpLl9fdj10Ll9fdisxLGoocix0LGksbC5fX24sdm9pZCAwIT09ci5vd25lclNWR0VsZW1lbnQsbnVsbCE9dC5fX2g/W29dOm51bGwsdSxudWxsPT1vP18odCk6byx0Ll9faCkseih1LHQpLHQuX19lIT1vJiZrKHQpKSl9KX1mdW5jdGlvbiB3KG4sbCx1LGksdCxvLHIsYyxzLGEpe3ZhciBoLHksZCxrLGIsZyx3LHg9aSYmaS5fX2t8fGUsQz14Lmxlbmd0aDtmb3IodS5fX2s9W10saD0wO2g8bC5sZW5ndGg7aCsrKWlmKG51bGwhPShrPXUuX19rW2hdPW51bGw9PShrPWxbaF0pfHxcImJvb2xlYW5cIj09dHlwZW9mIGs/bnVsbDpcInN0cmluZ1wiPT10eXBlb2Yga3x8XCJudW1iZXJcIj09dHlwZW9mIGt8fFwiYmlnaW50XCI9PXR5cGVvZiBrP3YobnVsbCxrLG51bGwsbnVsbCxrKTpBcnJheS5pc0FycmF5KGspP3YocCx7Y2hpbGRyZW46a30sbnVsbCxudWxsLG51bGwpOmsuX19iPjA/dihrLnR5cGUsay5wcm9wcyxrLmtleSxrLnJlZj9rLnJlZjpudWxsLGsuX192KTprKSl7aWYoay5fXz11LGsuX19iPXUuX19iKzEsbnVsbD09PShkPXhbaF0pfHxkJiZrLmtleT09ZC5rZXkmJmsudHlwZT09PWQudHlwZSl4W2hdPXZvaWQgMDtlbHNlIGZvcih5PTA7eTxDO3krKyl7aWYoKGQ9eFt5XSkmJmsua2V5PT1kLmtleSYmay50eXBlPT09ZC50eXBlKXt4W3ldPXZvaWQgMDticmVha31kPW51bGx9aihuLGssZD1kfHxmLHQsbyxyLGMscyxhKSxiPWsuX19lLCh5PWsucmVmKSYmZC5yZWYhPXkmJih3fHwodz1bXSksZC5yZWYmJncucHVzaChkLnJlZixudWxsLGspLHcucHVzaCh5LGsuX19jfHxiLGspKSxudWxsIT1iPyhudWxsPT1nJiYoZz1iKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBrLnR5cGUmJmsuX19rPT09ZC5fX2s/ay5fX2Q9cz1tKGsscyxuKTpzPUEobixrLGQseCxiLHMpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHUudHlwZSYmKHUuX19kPXMpKTpzJiZkLl9fZT09cyYmcy5wYXJlbnROb2RlIT1uJiYocz1fKGQpKX1mb3IodS5fX2U9ZyxoPUM7aC0tOyludWxsIT14W2hdJiZOKHhbaF0seFtoXSk7aWYodylmb3IoaD0wO2g8dy5sZW5ndGg7aCsrKU0od1toXSx3WysraF0sd1srK2hdKX1mdW5jdGlvbiBtKG4sbCx1KXtmb3IodmFyIGksdD1uLl9fayxvPTA7dCYmbzx0Lmxlbmd0aDtvKyspKGk9dFtvXSkmJihpLl9fPW4sbD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBpLnR5cGU/bShpLGwsdSk6QSh1LGksaSx0LGkuX19lLGwpKTtyZXR1cm4gbH1mdW5jdGlvbiB4KG4sbCl7cmV0dXJuIGw9bHx8W10sbnVsbD09bnx8XCJib29sZWFuXCI9PXR5cGVvZiBufHwoQXJyYXkuaXNBcnJheShuKT9uLnNvbWUoZnVuY3Rpb24obil7eChuLGwpfSk6bC5wdXNoKG4pKSxsfWZ1bmN0aW9uIEEobixsLHUsaSx0LG8pe3ZhciByLGYsZTtpZih2b2lkIDAhPT1sLl9fZClyPWwuX19kLGwuX19kPXZvaWQgMDtlbHNlIGlmKG51bGw9PXV8fHQhPW98fG51bGw9PXQucGFyZW50Tm9kZSluOmlmKG51bGw9PW98fG8ucGFyZW50Tm9kZSE9PW4pbi5hcHBlbmRDaGlsZCh0KSxyPW51bGw7ZWxzZXtmb3IoZj1vLGU9MDsoZj1mLm5leHRTaWJsaW5nKSYmZTxpLmxlbmd0aDtlKz0xKWlmKGY9PXQpYnJlYWsgbjtuLmluc2VydEJlZm9yZSh0LG8pLHI9b31yZXR1cm4gdm9pZCAwIT09cj9yOnQubmV4dFNpYmxpbmd9ZnVuY3Rpb24gQyhuLGwsdSxpLHQpe3ZhciBvO2ZvcihvIGluIHUpXCJjaGlsZHJlblwiPT09b3x8XCJrZXlcIj09PW98fG8gaW4gbHx8SChuLG8sbnVsbCx1W29dLGkpO2ZvcihvIGluIGwpdCYmXCJmdW5jdGlvblwiIT10eXBlb2YgbFtvXXx8XCJjaGlsZHJlblwiPT09b3x8XCJrZXlcIj09PW98fFwidmFsdWVcIj09PW98fFwiY2hlY2tlZFwiPT09b3x8dVtvXT09PWxbb118fEgobixvLGxbb10sdVtvXSxpKX1mdW5jdGlvbiAkKG4sbCx1KXtcIi1cIj09PWxbMF0/bi5zZXRQcm9wZXJ0eShsLHUpOm5bbF09bnVsbD09dT9cIlwiOlwibnVtYmVyXCIhPXR5cGVvZiB1fHxjLnRlc3QobCk/dTp1K1wicHhcIn1mdW5jdGlvbiBIKG4sbCx1LGksdCl7dmFyIG87bjppZihcInN0eWxlXCI9PT1sKWlmKFwic3RyaW5nXCI9PXR5cGVvZiB1KW4uc3R5bGUuY3NzVGV4dD11O2Vsc2V7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGkmJihuLnN0eWxlLmNzc1RleHQ9aT1cIlwiKSxpKWZvcihsIGluIGkpdSYmbCBpbiB1fHwkKG4uc3R5bGUsbCxcIlwiKTtpZih1KWZvcihsIGluIHUpaSYmdVtsXT09PWlbbF18fCQobi5zdHlsZSxsLHVbbF0pfWVsc2UgaWYoXCJvXCI9PT1sWzBdJiZcIm5cIj09PWxbMV0pbz1sIT09KGw9bC5yZXBsYWNlKC9DYXB0dXJlJC8sXCJcIikpLGw9bC50b0xvd2VyQ2FzZSgpaW4gbj9sLnRvTG93ZXJDYXNlKCkuc2xpY2UoMik6bC5zbGljZSgyKSxuLmx8fChuLmw9e30pLG4ubFtsK29dPXUsdT9pfHxuLmFkZEV2ZW50TGlzdGVuZXIobCxvP1Q6SSxvKTpuLnJlbW92ZUV2ZW50TGlzdGVuZXIobCxvP1Q6SSxvKTtlbHNlIGlmKFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIiE9PWwpe2lmKHQpbD1sLnJlcGxhY2UoL3hsaW5rKEh8OmgpLyxcImhcIikucmVwbGFjZSgvc05hbWUkLyxcInNcIik7ZWxzZSBpZihcImhyZWZcIiE9PWwmJlwibGlzdFwiIT09bCYmXCJmb3JtXCIhPT1sJiZcInRhYkluZGV4XCIhPT1sJiZcImRvd25sb2FkXCIhPT1sJiZsIGluIG4pdHJ5e25bbF09bnVsbD09dT9cIlwiOnU7YnJlYWsgbn1jYXRjaChuKXt9XCJmdW5jdGlvblwiPT10eXBlb2YgdXx8KG51bGw9PXV8fCExPT09dSYmLTE9PWwuaW5kZXhPZihcIi1cIik/bi5yZW1vdmVBdHRyaWJ1dGUobCk6bi5zZXRBdHRyaWJ1dGUobCx1KSl9fWZ1bmN0aW9uIEkobil7dGhpcy5sW24udHlwZSshMV0obC5ldmVudD9sLmV2ZW50KG4pOm4pfWZ1bmN0aW9uIFQobil7dGhpcy5sW24udHlwZSshMF0obC5ldmVudD9sLmV2ZW50KG4pOm4pfWZ1bmN0aW9uIGoobix1LGksdCxvLHIsZixlLGMpe3ZhciBhLGgsdix5LF8sayxiLGcsbSx4LEEsQywkLEgsSSxUPXUudHlwZTtpZih2b2lkIDAhPT11LmNvbnN0cnVjdG9yKXJldHVybiBudWxsO251bGwhPWkuX19oJiYoYz1pLl9faCxlPXUuX19lPWkuX19lLHUuX19oPW51bGwscj1bZV0pLChhPWwuX19iKSYmYSh1KTt0cnl7bjppZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBUKXtpZihnPXUucHJvcHMsbT0oYT1ULmNvbnRleHRUeXBlKSYmdFthLl9fY10seD1hP20/bS5wcm9wcy52YWx1ZTphLl9fOnQsaS5fX2M/Yj0oaD11Ll9fYz1pLl9fYykuX189aC5fX0U6KFwicHJvdG90eXBlXCJpbiBUJiZULnByb3RvdHlwZS5yZW5kZXI/dS5fX2M9aD1uZXcgVChnLHgpOih1Ll9fYz1oPW5ldyBkKGcseCksaC5jb25zdHJ1Y3Rvcj1ULGgucmVuZGVyPU8pLG0mJm0uc3ViKGgpLGgucHJvcHM9ZyxoLnN0YXRlfHwoaC5zdGF0ZT17fSksaC5jb250ZXh0PXgsaC5fX249dCx2PWguX19kPSEwLGguX19oPVtdLGguX3NiPVtdKSxudWxsPT1oLl9fcyYmKGguX19zPWguc3RhdGUpLG51bGwhPVQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzJiYoaC5fX3M9PWguc3RhdGUmJihoLl9fcz1zKHt9LGguX19zKSkscyhoLl9fcyxULmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhnLGguX19zKSkpLHk9aC5wcm9wcyxfPWguc3RhdGUsdiludWxsPT1ULmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmbnVsbCE9aC5jb21wb25lbnRXaWxsTW91bnQmJmguY29tcG9uZW50V2lsbE1vdW50KCksbnVsbCE9aC5jb21wb25lbnREaWRNb3VudCYmaC5fX2gucHVzaChoLmNvbXBvbmVudERpZE1vdW50KTtlbHNle2lmKG51bGw9PVQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzJiZnIT09eSYmbnVsbCE9aC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZoLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoZyx4KSwhaC5fX2UmJm51bGwhPWguc2hvdWxkQ29tcG9uZW50VXBkYXRlJiYhMT09PWguc2hvdWxkQ29tcG9uZW50VXBkYXRlKGcsaC5fX3MseCl8fHUuX192PT09aS5fX3Ype2ZvcihoLnByb3BzPWcsaC5zdGF0ZT1oLl9fcyx1Ll9fdiE9PWkuX192JiYoaC5fX2Q9ITEpLGguX192PXUsdS5fX2U9aS5fX2UsdS5fX2s9aS5fX2ssdS5fX2suZm9yRWFjaChmdW5jdGlvbihuKXtuJiYobi5fXz11KX0pLEE9MDtBPGguX3NiLmxlbmd0aDtBKyspaC5fX2gucHVzaChoLl9zYltBXSk7aC5fc2I9W10saC5fX2gubGVuZ3RoJiZmLnB1c2goaCk7YnJlYWsgbn1udWxsIT1oLmNvbXBvbmVudFdpbGxVcGRhdGUmJmguY29tcG9uZW50V2lsbFVwZGF0ZShnLGguX19zLHgpLG51bGwhPWguY29tcG9uZW50RGlkVXBkYXRlJiZoLl9faC5wdXNoKGZ1bmN0aW9uKCl7aC5jb21wb25lbnREaWRVcGRhdGUoeSxfLGspfSl9aWYoaC5jb250ZXh0PXgsaC5wcm9wcz1nLGguX192PXUsaC5fX1A9bixDPWwuX19yLCQ9MCxcInByb3RvdHlwZVwiaW4gVCYmVC5wcm90b3R5cGUucmVuZGVyKXtmb3IoaC5zdGF0ZT1oLl9fcyxoLl9fZD0hMSxDJiZDKHUpLGE9aC5yZW5kZXIoaC5wcm9wcyxoLnN0YXRlLGguY29udGV4dCksSD0wO0g8aC5fc2IubGVuZ3RoO0grKyloLl9faC5wdXNoKGguX3NiW0hdKTtoLl9zYj1bXX1lbHNlIGRve2guX19kPSExLEMmJkModSksYT1oLnJlbmRlcihoLnByb3BzLGguc3RhdGUsaC5jb250ZXh0KSxoLnN0YXRlPWguX19zfXdoaWxlKGguX19kJiYrKyQ8MjUpO2guc3RhdGU9aC5fX3MsbnVsbCE9aC5nZXRDaGlsZENvbnRleHQmJih0PXMocyh7fSx0KSxoLmdldENoaWxkQ29udGV4dCgpKSksdnx8bnVsbD09aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8KGs9aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSh5LF8pKSxJPW51bGwhPWEmJmEudHlwZT09PXAmJm51bGw9PWEua2V5P2EucHJvcHMuY2hpbGRyZW46YSx3KG4sQXJyYXkuaXNBcnJheShJKT9JOltJXSx1LGksdCxvLHIsZixlLGMpLGguYmFzZT11Ll9fZSx1Ll9faD1udWxsLGguX19oLmxlbmd0aCYmZi5wdXNoKGgpLGImJihoLl9fRT1oLl9fPW51bGwpLGguX19lPSExfWVsc2UgbnVsbD09ciYmdS5fX3Y9PT1pLl9fdj8odS5fX2s9aS5fX2ssdS5fX2U9aS5fX2UpOnUuX19lPUwoaS5fX2UsdSxpLHQsbyxyLGYsYyk7KGE9bC5kaWZmZWQpJiZhKHUpfWNhdGNoKG4pe3UuX192PW51bGwsKGN8fG51bGwhPXIpJiYodS5fX2U9ZSx1Ll9faD0hIWMscltyLmluZGV4T2YoZSldPW51bGwpLGwuX19lKG4sdSxpKX19ZnVuY3Rpb24geihuLHUpe2wuX19jJiZsLl9fYyh1LG4pLG4uc29tZShmdW5jdGlvbih1KXt0cnl7bj11Ll9faCx1Ll9faD1bXSxuLnNvbWUoZnVuY3Rpb24obil7bi5jYWxsKHUpfSl9Y2F0Y2gobil7bC5fX2Uobix1Ll9fdil9fSl9ZnVuY3Rpb24gTChsLHUsaSx0LG8scixlLGMpe3ZhciBzLGgsdix5PWkucHJvcHMscD11LnByb3BzLGQ9dS50eXBlLGs9MDtpZihcInN2Z1wiPT09ZCYmKG89ITApLG51bGwhPXIpZm9yKDtrPHIubGVuZ3RoO2srKylpZigocz1yW2tdKSYmXCJzZXRBdHRyaWJ1dGVcImluIHM9PSEhZCYmKGQ/cy5sb2NhbE5hbWU9PT1kOjM9PT1zLm5vZGVUeXBlKSl7bD1zLHJba109bnVsbDticmVha31pZihudWxsPT1sKXtpZihudWxsPT09ZClyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocCk7bD1vP2RvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsZCk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChkLHAuaXMmJnApLHI9bnVsbCxjPSExfWlmKG51bGw9PT1kKXk9PT1wfHxjJiZsLmRhdGE9PT1wfHwobC5kYXRhPXApO2Vsc2V7aWYocj1yJiZuLmNhbGwobC5jaGlsZE5vZGVzKSxoPSh5PWkucHJvcHN8fGYpLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLHY9cC5kYW5nZXJvdXNseVNldElubmVySFRNTCwhYyl7aWYobnVsbCE9cilmb3IoeT17fSxrPTA7azxsLmF0dHJpYnV0ZXMubGVuZ3RoO2srKyl5W2wuYXR0cmlidXRlc1trXS5uYW1lXT1sLmF0dHJpYnV0ZXNba10udmFsdWU7KHZ8fGgpJiYodiYmKGgmJnYuX19odG1sPT1oLl9faHRtbHx8di5fX2h0bWw9PT1sLmlubmVySFRNTCl8fChsLmlubmVySFRNTD12JiZ2Ll9faHRtbHx8XCJcIikpfWlmKEMobCxwLHksbyxjKSx2KXUuX19rPVtdO2Vsc2UgaWYoaz11LnByb3BzLmNoaWxkcmVuLHcobCxBcnJheS5pc0FycmF5KGspP2s6W2tdLHUsaSx0LG8mJlwiZm9yZWlnbk9iamVjdFwiIT09ZCxyLGUscj9yWzBdOmkuX19rJiZfKGksMCksYyksbnVsbCE9cilmb3Ioaz1yLmxlbmd0aDtrLS07KW51bGwhPXJba10mJmEocltrXSk7Y3x8KFwidmFsdWVcImluIHAmJnZvaWQgMCE9PShrPXAudmFsdWUpJiYoayE9PWwudmFsdWV8fFwicHJvZ3Jlc3NcIj09PWQmJiFrfHxcIm9wdGlvblwiPT09ZCYmayE9PXkudmFsdWUpJiZIKGwsXCJ2YWx1ZVwiLGsseS52YWx1ZSwhMSksXCJjaGVja2VkXCJpbiBwJiZ2b2lkIDAhPT0oaz1wLmNoZWNrZWQpJiZrIT09bC5jaGVja2VkJiZIKGwsXCJjaGVja2VkXCIsayx5LmNoZWNrZWQsITEpKX1yZXR1cm4gbH1mdW5jdGlvbiBNKG4sdSxpKXt0cnl7XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uKHUpOm4uY3VycmVudD11fWNhdGNoKG4pe2wuX19lKG4saSl9fWZ1bmN0aW9uIE4obix1LGkpe3ZhciB0LG87aWYobC51bm1vdW50JiZsLnVubW91bnQobiksKHQ9bi5yZWYpJiYodC5jdXJyZW50JiZ0LmN1cnJlbnQhPT1uLl9fZXx8TSh0LG51bGwsdSkpLG51bGwhPSh0PW4uX19jKSl7aWYodC5jb21wb25lbnRXaWxsVW5tb3VudCl0cnl7dC5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKG4pe2wuX19lKG4sdSl9dC5iYXNlPXQuX19QPW51bGwsbi5fX2M9dm9pZCAwfWlmKHQ9bi5fX2spZm9yKG89MDtvPHQubGVuZ3RoO28rKyl0W29dJiZOKHRbb10sdSxpfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBuLnR5cGUpO2l8fG51bGw9PW4uX19lfHxhKG4uX19lKSxuLl9fPW4uX19lPW4uX19kPXZvaWQgMH1mdW5jdGlvbiBPKG4sbCx1KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcihuLHUpfWZ1bmN0aW9uIFAodSxpLHQpe3ZhciBvLHIsZTtsLl9fJiZsLl9fKHUsaSkscj0obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0KT9udWxsOnQmJnQuX19rfHxpLl9fayxlPVtdLGooaSx1PSghbyYmdHx8aSkuX19rPWgocCxudWxsLFt1XSkscnx8ZixmLHZvaWQgMCE9PWkub3duZXJTVkdFbGVtZW50LCFvJiZ0P1t0XTpyP251bGw6aS5maXJzdENoaWxkP24uY2FsbChpLmNoaWxkTm9kZXMpOm51bGwsZSwhbyYmdD90OnI/ci5fX2U6aS5maXJzdENoaWxkLG8pLHooZSx1KX1mdW5jdGlvbiBTKG4sbCl7UChuLGwsUyl9ZnVuY3Rpb24gcShsLHUsaSl7dmFyIHQsbyxyLGY9cyh7fSxsLnByb3BzKTtmb3IociBpbiB1KVwia2V5XCI9PXI/dD11W3JdOlwicmVmXCI9PXI/bz11W3JdOmZbcl09dVtyXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4yJiYoZi5jaGlsZHJlbj1hcmd1bWVudHMubGVuZ3RoPjM/bi5jYWxsKGFyZ3VtZW50cywyKTppKSx2KGwudHlwZSxmLHR8fGwua2V5LG98fGwucmVmLG51bGwpfWZ1bmN0aW9uIEIobixsKXt2YXIgdT17X19jOmw9XCJfX2NDXCIrcisrLF9fOm4sQ29uc3VtZXI6ZnVuY3Rpb24obixsKXtyZXR1cm4gbi5jaGlsZHJlbihsKX0sUHJvdmlkZXI6ZnVuY3Rpb24obil7dmFyIHUsaTtyZXR1cm4gdGhpcy5nZXRDaGlsZENvbnRleHR8fCh1PVtdLChpPXt9KVtsXT10aGlzLHRoaXMuZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIGl9LHRoaXMuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMucHJvcHMudmFsdWUhPT1uLnZhbHVlJiZ1LnNvbWUoYil9LHRoaXMuc3ViPWZ1bmN0aW9uKG4pe3UucHVzaChuKTt2YXIgbD1uLmNvbXBvbmVudFdpbGxVbm1vdW50O24uY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt1LnNwbGljZSh1LmluZGV4T2YobiksMSksbCYmbC5jYWxsKG4pfX0pLG4uY2hpbGRyZW59fTtyZXR1cm4gdS5Qcm92aWRlci5fXz11LkNvbnN1bWVyLmNvbnRleHRUeXBlPXV9bj1lLnNsaWNlLGw9e19fZTpmdW5jdGlvbihuLGwsdSxpKXtmb3IodmFyIHQsbyxyO2w9bC5fXzspaWYoKHQ9bC5fX2MpJiYhdC5fXyl0cnl7aWYoKG89dC5jb25zdHJ1Y3RvcikmJm51bGwhPW8uZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yJiYodC5zZXRTdGF0ZShvLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihuKSkscj10Ll9fZCksbnVsbCE9dC5jb21wb25lbnREaWRDYXRjaCYmKHQuY29tcG9uZW50RGlkQ2F0Y2gobixpfHx7fSkscj10Ll9fZCkscilyZXR1cm4gdC5fX0U9dH1jYXRjaChsKXtuPWx9dGhyb3cgbn19LHU9MCxpPWZ1bmN0aW9uKG4pe3JldHVybiBudWxsIT1uJiZ2b2lkIDA9PT1uLmNvbnN0cnVjdG9yfSxkLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihuLGwpe3ZhciB1O3U9bnVsbCE9dGhpcy5fX3MmJnRoaXMuX19zIT09dGhpcy5zdGF0ZT90aGlzLl9fczp0aGlzLl9fcz1zKHt9LHRoaXMuc3RhdGUpLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4mJihuPW4ocyh7fSx1KSx0aGlzLnByb3BzKSksbiYmcyh1LG4pLG51bGwhPW4mJnRoaXMuX192JiYobCYmdGhpcy5fc2IucHVzaChsKSxiKHRoaXMpKX0sZC5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24obil7dGhpcy5fX3YmJih0aGlzLl9fZT0hMCxuJiZ0aGlzLl9faC5wdXNoKG4pLGIodGhpcykpfSxkLnByb3RvdHlwZS5yZW5kZXI9cCx0PVtdLGcuX19yPTAscj0wO2V4cG9ydHtkIGFzIENvbXBvbmVudCxwIGFzIEZyYWdtZW50LHEgYXMgY2xvbmVFbGVtZW50LEIgYXMgY3JlYXRlQ29udGV4dCxoIGFzIGNyZWF0ZUVsZW1lbnQseSBhcyBjcmVhdGVSZWYsaCxTIGFzIGh5ZHJhdGUsaSBhcyBpc1ZhbGlkRWxlbWVudCxsIGFzIG9wdGlvbnMsUCBhcyByZW5kZXIseCBhcyB0b0NoaWxkQXJyYXl9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlYWN0Lm1vZHVsZS5qcy5tYXBcbiIsImltcG9ydHtvcHRpb25zIGFzIG59ZnJvbVwicHJlYWN0XCI7dmFyIHQscix1LGksbz0wLGY9W10sYz1bXSxlPW4uX19iLGE9bi5fX3Isdj1uLmRpZmZlZCxsPW4uX19jLG09bi51bm1vdW50O2Z1bmN0aW9uIGQodCx1KXtuLl9faCYmbi5fX2gocix0LG98fHUpLG89MDt2YXIgaT1yLl9fSHx8KHIuX19IPXtfXzpbXSxfX2g6W119KTtyZXR1cm4gdD49aS5fXy5sZW5ndGgmJmkuX18ucHVzaCh7X19WOmN9KSxpLl9fW3RdfWZ1bmN0aW9uIHAobil7cmV0dXJuIG89MSx5KEIsbil9ZnVuY3Rpb24geShuLHUsaSl7dmFyIG89ZCh0KyssMik7aWYoby50PW4sIW8uX19jJiYoby5fXz1baT9pKHUpOkIodm9pZCAwLHUpLGZ1bmN0aW9uKG4pe3ZhciB0PW8uX19OP28uX19OWzBdOm8uX19bMF0scj1vLnQodCxuKTt0IT09ciYmKG8uX19OPVtyLG8uX19bMV1dLG8uX19jLnNldFN0YXRlKHt9KSl9XSxvLl9fYz1yLCFyLnUpKXtyLnU9ITA7dmFyIGY9ci5zaG91bGRDb21wb25lbnRVcGRhdGU7ci5zaG91bGRDb21wb25lbnRVcGRhdGU9ZnVuY3Rpb24obix0LHIpe2lmKCFvLl9fYy5fX0gpcmV0dXJuITA7dmFyIHU9by5fX2MuX19ILl9fLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5fX2N9KTtpZih1LmV2ZXJ5KGZ1bmN0aW9uKG4pe3JldHVybiFuLl9fTn0pKXJldHVybiFmfHxmLmNhbGwodGhpcyxuLHQscik7dmFyIGk9ITE7cmV0dXJuIHUuZm9yRWFjaChmdW5jdGlvbihuKXtpZihuLl9fTil7dmFyIHQ9bi5fX1swXTtuLl9fPW4uX19OLG4uX19OPXZvaWQgMCx0IT09bi5fX1swXSYmKGk9ITApfX0pLCEoIWkmJm8uX19jLnByb3BzPT09bikmJighZnx8Zi5jYWxsKHRoaXMsbix0LHIpKX19cmV0dXJuIG8uX19OfHxvLl9ffWZ1bmN0aW9uIGgodSxpKXt2YXIgbz1kKHQrKywzKTshbi5fX3MmJnooby5fX0gsaSkmJihvLl9fPXUsby5pPWksci5fX0guX19oLnB1c2gobykpfWZ1bmN0aW9uIHModSxpKXt2YXIgbz1kKHQrKyw0KTshbi5fX3MmJnooby5fX0gsaSkmJihvLl9fPXUsby5pPWksci5fX2gucHVzaChvKSl9ZnVuY3Rpb24gXyhuKXtyZXR1cm4gbz01LEYoZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpufX0sW10pfWZ1bmN0aW9uIEEobix0LHIpe289NixzKGZ1bmN0aW9uKCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2Ygbj8obih0KCkpLGZ1bmN0aW9uKCl7cmV0dXJuIG4obnVsbCl9KTpuPyhuLmN1cnJlbnQ9dCgpLGZ1bmN0aW9uKCl7cmV0dXJuIG4uY3VycmVudD1udWxsfSk6dm9pZCAwfSxudWxsPT1yP3I6ci5jb25jYXQobikpfWZ1bmN0aW9uIEYobixyKXt2YXIgdT1kKHQrKyw3KTtyZXR1cm4geih1Ll9fSCxyKT8odS5fX1Y9bigpLHUuaT1yLHUuX19oPW4sdS5fX1YpOnUuX199ZnVuY3Rpb24gVChuLHQpe3JldHVybiBvPTgsRihmdW5jdGlvbigpe3JldHVybiBufSx0KX1mdW5jdGlvbiBxKG4pe3ZhciB1PXIuY29udGV4dFtuLl9fY10saT1kKHQrKyw5KTtyZXR1cm4gaS5jPW4sdT8obnVsbD09aS5fXyYmKGkuX189ITAsdS5zdWIocikpLHUucHJvcHMudmFsdWUpOm4uX199ZnVuY3Rpb24geCh0LHIpe24udXNlRGVidWdWYWx1ZSYmbi51c2VEZWJ1Z1ZhbHVlKHI/cih0KTp0KX1mdW5jdGlvbiBQKG4pe3ZhciB1PWQodCsrLDEwKSxpPXAoKTtyZXR1cm4gdS5fXz1uLHIuY29tcG9uZW50RGlkQ2F0Y2h8fChyLmNvbXBvbmVudERpZENhdGNoPWZ1bmN0aW9uKG4sdCl7dS5fXyYmdS5fXyhuLHQpLGlbMV0obil9KSxbaVswXSxmdW5jdGlvbigpe2lbMV0odm9pZCAwKX1dfWZ1bmN0aW9uIFYoKXt2YXIgbj1kKHQrKywxMSk7aWYoIW4uX18pe2Zvcih2YXIgdT1yLl9fdjtudWxsIT09dSYmIXUuX19tJiZudWxsIT09dS5fXzspdT11Ll9fO3ZhciBpPXUuX19tfHwodS5fX209WzAsMF0pO24uX189XCJQXCIraVswXStcIi1cIitpWzFdKyt9cmV0dXJuIG4uX199ZnVuY3Rpb24gYigpe2Zvcih2YXIgdDt0PWYuc2hpZnQoKTspaWYodC5fX1AmJnQuX19IKXRyeXt0Ll9fSC5fX2guZm9yRWFjaChrKSx0Ll9fSC5fX2guZm9yRWFjaCh3KSx0Ll9fSC5fX2g9W119Y2F0Y2gocil7dC5fX0guX19oPVtdLG4uX19lKHIsdC5fX3YpfX1uLl9fYj1mdW5jdGlvbihuKXtyPW51bGwsZSYmZShuKX0sbi5fX3I9ZnVuY3Rpb24obil7YSYmYShuKSx0PTA7dmFyIGk9KHI9bi5fX2MpLl9fSDtpJiYodT09PXI/KGkuX19oPVtdLHIuX19oPVtdLGkuX18uZm9yRWFjaChmdW5jdGlvbihuKXtuLl9fTiYmKG4uX189bi5fX04pLG4uX19WPWMsbi5fX049bi5pPXZvaWQgMH0pKTooaS5fX2guZm9yRWFjaChrKSxpLl9faC5mb3JFYWNoKHcpLGkuX19oPVtdKSksdT1yfSxuLmRpZmZlZD1mdW5jdGlvbih0KXt2JiZ2KHQpO3ZhciBvPXQuX19jO28mJm8uX19IJiYoby5fX0guX19oLmxlbmd0aCYmKDEhPT1mLnB1c2gobykmJmk9PT1uLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8KChpPW4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKXx8aikoYikpLG8uX19ILl9fLmZvckVhY2goZnVuY3Rpb24obil7bi5pJiYobi5fX0g9bi5pKSxuLl9fViE9PWMmJihuLl9fPW4uX19WKSxuLmk9dm9pZCAwLG4uX19WPWN9KSksdT1yPW51bGx9LG4uX19jPWZ1bmN0aW9uKHQscil7ci5zb21lKGZ1bmN0aW9uKHQpe3RyeXt0Ll9faC5mb3JFYWNoKGspLHQuX19oPXQuX19oLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hbi5fX3x8dyhuKX0pfWNhdGNoKHUpe3Iuc29tZShmdW5jdGlvbihuKXtuLl9faCYmKG4uX19oPVtdKX0pLHI9W10sbi5fX2UodSx0Ll9fdil9fSksbCYmbCh0LHIpfSxuLnVubW91bnQ9ZnVuY3Rpb24odCl7bSYmbSh0KTt2YXIgcix1PXQuX19jO3UmJnUuX19IJiYodS5fX0guX18uZm9yRWFjaChmdW5jdGlvbihuKXt0cnl7ayhuKX1jYXRjaChuKXtyPW59fSksdS5fX0g9dm9pZCAwLHImJm4uX19lKHIsdS5fX3YpKX07dmFyIGc9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lO2Z1bmN0aW9uIGoobil7dmFyIHQscj1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh1KSxnJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0KSxzZXRUaW1lb3V0KG4pfSx1PXNldFRpbWVvdXQociwxMDApO2cmJih0PXJlcXVlc3RBbmltYXRpb25GcmFtZShyKSl9ZnVuY3Rpb24gayhuKXt2YXIgdD1yLHU9bi5fX2M7XCJmdW5jdGlvblwiPT10eXBlb2YgdSYmKG4uX19jPXZvaWQgMCx1KCkpLHI9dH1mdW5jdGlvbiB3KG4pe3ZhciB0PXI7bi5fX2M9bi5fXygpLHI9dH1mdW5jdGlvbiB6KG4sdCl7cmV0dXJuIW58fG4ubGVuZ3RoIT09dC5sZW5ndGh8fHQuc29tZShmdW5jdGlvbih0LHIpe3JldHVybiB0IT09bltyXX0pfWZ1bmN0aW9uIEIobix0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Qobik6dH1leHBvcnR7VCBhcyB1c2VDYWxsYmFjayxxIGFzIHVzZUNvbnRleHQseCBhcyB1c2VEZWJ1Z1ZhbHVlLGggYXMgdXNlRWZmZWN0LFAgYXMgdXNlRXJyb3JCb3VuZGFyeSxWIGFzIHVzZUlkLEEgYXMgdXNlSW1wZXJhdGl2ZUhhbmRsZSxzIGFzIHVzZUxheW91dEVmZmVjdCxGIGFzIHVzZU1lbW8seSBhcyB1c2VSZWR1Y2VyLF8gYXMgdXNlUmVmLHAgYXMgdXNlU3RhdGV9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG9va3MubW9kdWxlLmpzLm1hcFxuIiwiaW1wb3J0e0NvbXBvbmVudCBhcyBuLGNyZWF0ZUVsZW1lbnQgYXMgdCxvcHRpb25zIGFzIGUsdG9DaGlsZEFycmF5IGFzIHIsRnJhZ21lbnQgYXMgdSxyZW5kZXIgYXMgbyxoeWRyYXRlIGFzIGksY3JlYXRlQ29udGV4dCBhcyBsLGNyZWF0ZVJlZiBhcyBjLGNsb25lRWxlbWVudCBhcyBmfWZyb21cInByZWFjdFwiO2V4cG9ydHtDb21wb25lbnQsRnJhZ21lbnQsY3JlYXRlQ29udGV4dCxjcmVhdGVFbGVtZW50LGNyZWF0ZVJlZn1mcm9tXCJwcmVhY3RcIjtpbXBvcnR7dXNlU3RhdGUgYXMgYSx1c2VJZCBhcyBzLHVzZVJlZHVjZXIgYXMgaCx1c2VFZmZlY3QgYXMgdix1c2VMYXlvdXRFZmZlY3QgYXMgZCx1c2VSZWYgYXMgcCx1c2VJbXBlcmF0aXZlSGFuZGxlIGFzIG0sdXNlTWVtbyBhcyB5LHVzZUNhbGxiYWNrIGFzIF8sdXNlQ29udGV4dCBhcyBiLHVzZURlYnVnVmFsdWUgYXMgU31mcm9tXCJwcmVhY3QvaG9va3NcIjtleHBvcnQqZnJvbVwicHJlYWN0L2hvb2tzXCI7ZnVuY3Rpb24gZyhuLHQpe2Zvcih2YXIgZSBpbiB0KW5bZV09dFtlXTtyZXR1cm4gbn1mdW5jdGlvbiBDKG4sdCl7Zm9yKHZhciBlIGluIG4paWYoXCJfX3NvdXJjZVwiIT09ZSYmIShlIGluIHQpKXJldHVybiEwO2Zvcih2YXIgciBpbiB0KWlmKFwiX19zb3VyY2VcIiE9PXImJm5bcl0hPT10W3JdKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEUobix0KXtyZXR1cm4gbj09PXQmJigwIT09bnx8MS9uPT0xL3QpfHxuIT1uJiZ0IT10fWZ1bmN0aW9uIHcobil7dGhpcy5wcm9wcz1ufWZ1bmN0aW9uIFIobixlKXtmdW5jdGlvbiByKG4pe3ZhciB0PXRoaXMucHJvcHMucmVmLHI9dD09bi5yZWY7cmV0dXJuIXImJnQmJih0LmNhbGw/dChudWxsKTp0LmN1cnJlbnQ9bnVsbCksZT8hZSh0aGlzLnByb3BzLG4pfHwhcjpDKHRoaXMucHJvcHMsbil9ZnVuY3Rpb24gdShlKXtyZXR1cm4gdGhpcy5zaG91bGRDb21wb25lbnRVcGRhdGU9cix0KG4sZSl9cmV0dXJuIHUuZGlzcGxheU5hbWU9XCJNZW1vKFwiKyhuLmRpc3BsYXlOYW1lfHxuLm5hbWUpK1wiKVwiLHUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9ITAsdS5fX2Y9ITAsdX0ody5wcm90b3R5cGU9bmV3IG4pLmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwLHcucHJvdG90eXBlLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mdW5jdGlvbihuLHQpe3JldHVybiBDKHRoaXMucHJvcHMsbil8fEModGhpcy5zdGF0ZSx0KX07dmFyIHg9ZS5fX2I7ZS5fX2I9ZnVuY3Rpb24obil7bi50eXBlJiZuLnR5cGUuX19mJiZuLnJlZiYmKG4ucHJvcHMucmVmPW4ucmVmLG4ucmVmPW51bGwpLHgmJngobil9O3ZhciBOPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3ImJlN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKXx8MzkxMTtmdW5jdGlvbiBrKG4pe2Z1bmN0aW9uIHQodCl7dmFyIGU9Zyh7fSx0KTtyZXR1cm4gZGVsZXRlIGUucmVmLG4oZSx0LnJlZnx8bnVsbCl9cmV0dXJuIHQuJCR0eXBlb2Y9Tix0LnJlbmRlcj10LHQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9dC5fX2Y9ITAsdC5kaXNwbGF5TmFtZT1cIkZvcndhcmRSZWYoXCIrKG4uZGlzcGxheU5hbWV8fG4ubmFtZSkrXCIpXCIsdH12YXIgQT1mdW5jdGlvbihuLHQpe3JldHVybiBudWxsPT1uP251bGw6cihyKG4pLm1hcCh0KSl9LE89e21hcDpBLGZvckVhY2g6QSxjb3VudDpmdW5jdGlvbihuKXtyZXR1cm4gbj9yKG4pLmxlbmd0aDowfSxvbmx5OmZ1bmN0aW9uKG4pe3ZhciB0PXIobik7aWYoMSE9PXQubGVuZ3RoKXRocm93XCJDaGlsZHJlbi5vbmx5XCI7cmV0dXJuIHRbMF19LHRvQXJyYXk6cn0sVD1lLl9fZTtlLl9fZT1mdW5jdGlvbihuLHQsZSxyKXtpZihuLnRoZW4pZm9yKHZhciB1LG89dDtvPW8uX187KWlmKCh1PW8uX19jKSYmdS5fX2MpcmV0dXJuIG51bGw9PXQuX19lJiYodC5fX2U9ZS5fX2UsdC5fX2s9ZS5fX2spLHUuX19jKG4sdCk7VChuLHQsZSxyKX07dmFyIEk9ZS51bm1vdW50O2Z1bmN0aW9uIEwobix0LGUpe3JldHVybiBuJiYobi5fX2MmJm4uX19jLl9fSCYmKG4uX19jLl9fSC5fXy5mb3JFYWNoKGZ1bmN0aW9uKG4pe1wiZnVuY3Rpb25cIj09dHlwZW9mIG4uX19jJiZuLl9fYygpfSksbi5fX2MuX19IPW51bGwpLG51bGwhPShuPWcoe30sbikpLl9fYyYmKG4uX19jLl9fUD09PWUmJihuLl9fYy5fX1A9dCksbi5fX2M9bnVsbCksbi5fX2s9bi5fX2smJm4uX19rLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gTChuLHQsZSl9KSksbn1mdW5jdGlvbiBVKG4sdCxlKXtyZXR1cm4gbiYmKG4uX192PW51bGwsbi5fX2s9bi5fX2smJm4uX19rLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gVShuLHQsZSl9KSxuLl9fYyYmbi5fX2MuX19QPT09dCYmKG4uX19lJiZlLmluc2VydEJlZm9yZShuLl9fZSxuLl9fZCksbi5fX2MuX19lPSEwLG4uX19jLl9fUD1lKSksbn1mdW5jdGlvbiBEKCl7dGhpcy5fX3U9MCx0aGlzLnQ9bnVsbCx0aGlzLl9fYj1udWxsfWZ1bmN0aW9uIEYobil7dmFyIHQ9bi5fXy5fX2M7cmV0dXJuIHQmJnQuX19hJiZ0Ll9fYShuKX1mdW5jdGlvbiBNKG4pe3ZhciBlLHIsdTtmdW5jdGlvbiBvKG8pe2lmKGV8fChlPW4oKSkudGhlbihmdW5jdGlvbihuKXtyPW4uZGVmYXVsdHx8bn0sZnVuY3Rpb24obil7dT1ufSksdSl0aHJvdyB1O2lmKCFyKXRocm93IGU7cmV0dXJuIHQocixvKX1yZXR1cm4gby5kaXNwbGF5TmFtZT1cIkxhenlcIixvLl9fZj0hMCxvfWZ1bmN0aW9uIFYoKXt0aGlzLnU9bnVsbCx0aGlzLm89bnVsbH1lLnVubW91bnQ9ZnVuY3Rpb24obil7dmFyIHQ9bi5fX2M7dCYmdC5fX1ImJnQuX19SKCksdCYmITA9PT1uLl9faCYmKG4udHlwZT1udWxsKSxJJiZJKG4pfSwoRC5wcm90b3R5cGU9bmV3IG4pLl9fYz1mdW5jdGlvbihuLHQpe3ZhciBlPXQuX19jLHI9dGhpcztudWxsPT1yLnQmJihyLnQ9W10pLHIudC5wdXNoKGUpO3ZhciB1PUYoci5fX3YpLG89ITEsaT1mdW5jdGlvbigpe298fChvPSEwLGUuX19SPW51bGwsdT91KGwpOmwoKSl9O2UuX19SPWk7dmFyIGw9ZnVuY3Rpb24oKXtpZighLS1yLl9fdSl7aWYoci5zdGF0ZS5fX2Epe3ZhciBuPXIuc3RhdGUuX19hO3IuX192Ll9fa1swXT1VKG4sbi5fX2MuX19QLG4uX19jLl9fTyl9dmFyIHQ7Zm9yKHIuc2V0U3RhdGUoe19fYTpyLl9fYj1udWxsfSk7dD1yLnQucG9wKCk7KXQuZm9yY2VVcGRhdGUoKX19LGM9ITA9PT10Ll9faDtyLl9fdSsrfHxjfHxyLnNldFN0YXRlKHtfX2E6ci5fX2I9ci5fX3YuX19rWzBdfSksbi50aGVuKGksaSl9LEQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dGhpcy50PVtdfSxELnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24obixlKXtpZih0aGlzLl9fYil7aWYodGhpcy5fX3YuX19rKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLG89dGhpcy5fX3YuX19rWzBdLl9fYzt0aGlzLl9fdi5fX2tbMF09TCh0aGlzLl9fYixyLG8uX19PPW8uX19QKX10aGlzLl9fYj1udWxsfXZhciBpPWUuX19hJiZ0KHUsbnVsbCxuLmZhbGxiYWNrKTtyZXR1cm4gaSYmKGkuX19oPW51bGwpLFt0KHUsbnVsbCxlLl9fYT9udWxsOm4uY2hpbGRyZW4pLGldfTt2YXIgVz1mdW5jdGlvbihuLHQsZSl7aWYoKytlWzFdPT09ZVswXSYmbi5vLmRlbGV0ZSh0KSxuLnByb3BzLnJldmVhbE9yZGVyJiYoXCJ0XCIhPT1uLnByb3BzLnJldmVhbE9yZGVyWzBdfHwhbi5vLnNpemUpKWZvcihlPW4udTtlOyl7Zm9yKDtlLmxlbmd0aD4zOyllLnBvcCgpKCk7aWYoZVsxXTxlWzBdKWJyZWFrO24udT1lPWVbMl19fTtmdW5jdGlvbiBQKG4pe3JldHVybiB0aGlzLmdldENoaWxkQ29udGV4dD1mdW5jdGlvbigpe3JldHVybiBuLmNvbnRleHR9LG4uY2hpbGRyZW59ZnVuY3Rpb24gJChuKXt2YXIgZT10aGlzLHI9bi5pO2UuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXtvKG51bGwsZS5sKSxlLmw9bnVsbCxlLmk9bnVsbH0sZS5pJiZlLmkhPT1yJiZlLmNvbXBvbmVudFdpbGxVbm1vdW50KCksbi5fX3Y/KGUubHx8KGUuaT1yLGUubD17bm9kZVR5cGU6MSxwYXJlbnROb2RlOnIsY2hpbGROb2RlczpbXSxhcHBlbmRDaGlsZDpmdW5jdGlvbihuKXt0aGlzLmNoaWxkTm9kZXMucHVzaChuKSxlLmkuYXBwZW5kQ2hpbGQobil9LGluc2VydEJlZm9yZTpmdW5jdGlvbihuLHQpe3RoaXMuY2hpbGROb2Rlcy5wdXNoKG4pLGUuaS5hcHBlbmRDaGlsZChuKX0scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24obil7dGhpcy5jaGlsZE5vZGVzLnNwbGljZSh0aGlzLmNoaWxkTm9kZXMuaW5kZXhPZihuKT4+PjEsMSksZS5pLnJlbW92ZUNoaWxkKG4pfX0pLG8odChQLHtjb250ZXh0OmUuY29udGV4dH0sbi5fX3YpLGUubCkpOmUubCYmZS5jb21wb25lbnRXaWxsVW5tb3VudCgpfWZ1bmN0aW9uIGoobixlKXt2YXIgcj10KCQse19fdjpuLGk6ZX0pO3JldHVybiByLmNvbnRhaW5lckluZm89ZSxyfShWLnByb3RvdHlwZT1uZXcgbikuX19hPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMsZT1GKHQuX192KSxyPXQuby5nZXQobik7cmV0dXJuIHJbMF0rKyxmdW5jdGlvbih1KXt2YXIgbz1mdW5jdGlvbigpe3QucHJvcHMucmV2ZWFsT3JkZXI/KHIucHVzaCh1KSxXKHQsbixyKSk6dSgpfTtlP2Uobyk6bygpfX0sVi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4pe3RoaXMudT1udWxsLHRoaXMubz1uZXcgTWFwO3ZhciB0PXIobi5jaGlsZHJlbik7bi5yZXZlYWxPcmRlciYmXCJiXCI9PT1uLnJldmVhbE9yZGVyWzBdJiZ0LnJldmVyc2UoKTtmb3IodmFyIGU9dC5sZW5ndGg7ZS0tOyl0aGlzLm8uc2V0KHRbZV0sdGhpcy51PVsxLDAsdGhpcy51XSk7cmV0dXJuIG4uY2hpbGRyZW59LFYucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZT1WLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5vLmZvckVhY2goZnVuY3Rpb24odCxlKXtXKG4sZSx0KX0pfTt2YXIgej1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yJiZTeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKXx8NjAxMDMsQj0vXig/OmFjY2VudHxhbGlnbm1lbnR8YXJhYmljfGJhc2VsaW5lfGNhcHxjbGlwKD8hUGF0aFUpfGNvbG9yfGRvbWluYW50fGZpbGx8Zmxvb2R8Zm9udHxnbHlwaCg/IVIpfGhvcml6fGltYWdlfGxldHRlcnxsaWdodGluZ3xtYXJrZXIoPyFIfFd8VSl8b3ZlcmxpbmV8cGFpbnR8cG9pbnRlcnxzaGFwZXxzdG9wfHN0cmlrZXRocm91Z2h8c3Ryb2tlfHRleHQoPyFMKXx0cmFuc2Zvcm18dW5kZXJsaW5lfHVuaWNvZGV8dW5pdHN8dnx2ZWN0b3J8dmVydHx3b3JkfHdyaXRpbmd8eCg/IUMpKVtBLVpdLyxIPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudCxaPWZ1bmN0aW9uKG4pe3JldHVybihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sKCk/L2ZpbHxjaGV8cmFkL2k6L2ZpbHxjaGV8cmEvaSkudGVzdChuKX07ZnVuY3Rpb24gWShuLHQsZSl7cmV0dXJuIG51bGw9PXQuX19rJiYodC50ZXh0Q29udGVudD1cIlwiKSxvKG4sdCksXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZSgpLG4/bi5fX2M6bnVsbH1mdW5jdGlvbiBxKG4sdCxlKXtyZXR1cm4gaShuLHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJmUoKSxuP24uX19jOm51bGx9bi5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fSxbXCJjb21wb25lbnRXaWxsTW91bnRcIixcImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNcIixcImNvbXBvbmVudFdpbGxVcGRhdGVcIl0uZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsdCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW1wiVU5TQUZFX1wiK3RdfSxzZXQ6ZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KX19KX0pO3ZhciBHPWUuZXZlbnQ7ZnVuY3Rpb24gSigpe31mdW5jdGlvbiBLKCl7cmV0dXJuIHRoaXMuY2FuY2VsQnViYmxlfWZ1bmN0aW9uIFEoKXtyZXR1cm4gdGhpcy5kZWZhdWx0UHJldmVudGVkfWUuZXZlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIEcmJihuPUcobikpLG4ucGVyc2lzdD1KLG4uaXNQcm9wYWdhdGlvblN0b3BwZWQ9SyxuLmlzRGVmYXVsdFByZXZlbnRlZD1RLG4ubmF0aXZlRXZlbnQ9bn07dmFyIFgsbm49e2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGFzc319LHRuPWUudm5vZGU7ZS52bm9kZT1mdW5jdGlvbihuKXt2YXIgdD1uLnR5cGUsZT1uLnByb3BzLHU9ZTtpZihcInN0cmluZ1wiPT10eXBlb2YgdCl7dmFyIG89LTE9PT10LmluZGV4T2YoXCItXCIpO2Zvcih2YXIgaSBpbiB1PXt9LGUpe3ZhciBsPWVbaV07SCYmXCJjaGlsZHJlblwiPT09aSYmXCJub3NjcmlwdFwiPT09dHx8XCJ2YWx1ZVwiPT09aSYmXCJkZWZhdWx0VmFsdWVcImluIGUmJm51bGw9PWx8fChcImRlZmF1bHRWYWx1ZVwiPT09aSYmXCJ2YWx1ZVwiaW4gZSYmbnVsbD09ZS52YWx1ZT9pPVwidmFsdWVcIjpcImRvd25sb2FkXCI9PT1pJiYhMD09PWw/bD1cIlwiOi9vbmRvdWJsZWNsaWNrL2kudGVzdChpKT9pPVwib25kYmxjbGlja1wiOi9eb25jaGFuZ2UodGV4dGFyZWF8aW5wdXQpL2kudGVzdChpK3QpJiYhWihlLnR5cGUpP2k9XCJvbmlucHV0XCI6L15vbmZvY3VzJC9pLnRlc3QoaSk/aT1cIm9uZm9jdXNpblwiOi9eb25ibHVyJC9pLnRlc3QoaSk/aT1cIm9uZm9jdXNvdXRcIjovXm9uKEFuaXxUcmF8VG91fEJlZm9yZUlucHxDb21wbykvLnRlc3QoaSk/aT1pLnRvTG93ZXJDYXNlKCk6byYmQi50ZXN0KGkpP2k9aS5yZXBsYWNlKC9bQS1aMC05XS9nLFwiLSQmXCIpLnRvTG93ZXJDYXNlKCk6bnVsbD09PWwmJihsPXZvaWQgMCksL15vbmlucHV0JC9pLnRlc3QoaSkmJihpPWkudG9Mb3dlckNhc2UoKSx1W2ldJiYoaT1cIm9uaW5wdXRDYXB0dXJlXCIpKSx1W2ldPWwpfVwic2VsZWN0XCI9PXQmJnUubXVsdGlwbGUmJkFycmF5LmlzQXJyYXkodS52YWx1ZSkmJih1LnZhbHVlPXIoZS5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuLnByb3BzLnNlbGVjdGVkPS0xIT11LnZhbHVlLmluZGV4T2Yobi5wcm9wcy52YWx1ZSl9KSksXCJzZWxlY3RcIj09dCYmbnVsbCE9dS5kZWZhdWx0VmFsdWUmJih1LnZhbHVlPXIoZS5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuLnByb3BzLnNlbGVjdGVkPXUubXVsdGlwbGU/LTEhPXUuZGVmYXVsdFZhbHVlLmluZGV4T2Yobi5wcm9wcy52YWx1ZSk6dS5kZWZhdWx0VmFsdWU9PW4ucHJvcHMudmFsdWV9KSksbi5wcm9wcz11LGUuY2xhc3MhPWUuY2xhc3NOYW1lJiYobm4uZW51bWVyYWJsZT1cImNsYXNzTmFtZVwiaW4gZSxudWxsIT1lLmNsYXNzTmFtZSYmKHUuY2xhc3M9ZS5jbGFzc05hbWUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LFwiY2xhc3NOYW1lXCIsbm4pKX1uLiQkdHlwZW9mPXosdG4mJnRuKG4pfTt2YXIgZW49ZS5fX3I7ZS5fX3I9ZnVuY3Rpb24obil7ZW4mJmVuKG4pLFg9bi5fX2N9O3ZhciBybj17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjp7Y3VycmVudDp7cmVhZENvbnRleHQ6ZnVuY3Rpb24obil7cmV0dXJuIFguX19uW24uX19jXS5wcm9wcy52YWx1ZX19fX0sdW49XCIxNy4wLjJcIjtmdW5jdGlvbiBvbihuKXtyZXR1cm4gdC5iaW5kKG51bGwsbil9ZnVuY3Rpb24gbG4obil7cmV0dXJuISFuJiZuLiQkdHlwZW9mPT09en1mdW5jdGlvbiBjbihuKXtyZXR1cm4gbG4obik/Zi5hcHBseShudWxsLGFyZ3VtZW50cyk6bn1mdW5jdGlvbiBmbihuKXtyZXR1cm4hIW4uX19rJiYobyhudWxsLG4pLCEwKX1mdW5jdGlvbiBhbihuKXtyZXR1cm4gbiYmKG4uYmFzZXx8MT09PW4ubm9kZVR5cGUmJm4pfHxudWxsfXZhciBzbj1mdW5jdGlvbihuLHQpe3JldHVybiBuKHQpfSxobj1mdW5jdGlvbihuLHQpe3JldHVybiBuKHQpfSx2bj11O2Z1bmN0aW9uIGRuKG4pe24oKX1mdW5jdGlvbiBwbihuKXtyZXR1cm4gbn1mdW5jdGlvbiBtbigpe3JldHVyblshMSxkbl19dmFyIHluPWQ7ZnVuY3Rpb24gX24obix0KXt2YXIgZT10KCkscj1hKHtoOntfXzplLHY6dH19KSx1PXJbMF0uaCxvPXJbMV07cmV0dXJuIGQoZnVuY3Rpb24oKXt1Ll9fPWUsdS52PXQsRSh1Ll9fLHQoKSl8fG8oe2g6dX0pfSxbbixlLHRdKSx2KGZ1bmN0aW9uKCl7cmV0dXJuIEUodS5fXyx1LnYoKSl8fG8oe2g6dX0pLG4oZnVuY3Rpb24oKXtFKHUuX18sdS52KCkpfHxvKHtoOnV9KX0pfSxbbl0pLGV9dmFyIGJuPXt1c2VTdGF0ZTphLHVzZUlkOnMsdXNlUmVkdWNlcjpoLHVzZUVmZmVjdDp2LHVzZUxheW91dEVmZmVjdDpkLHVzZUluc2VydGlvbkVmZmVjdDp5bix1c2VUcmFuc2l0aW9uOm1uLHVzZURlZmVycmVkVmFsdWU6cG4sdXNlU3luY0V4dGVybmFsU3RvcmU6X24sc3RhcnRUcmFuc2l0aW9uOmRuLHVzZVJlZjpwLHVzZUltcGVyYXRpdmVIYW5kbGU6bSx1c2VNZW1vOnksdXNlQ2FsbGJhY2s6Xyx1c2VDb250ZXh0OmIsdXNlRGVidWdWYWx1ZTpTLHZlcnNpb246XCIxNy4wLjJcIixDaGlsZHJlbjpPLHJlbmRlcjpZLGh5ZHJhdGU6cSx1bm1vdW50Q29tcG9uZW50QXROb2RlOmZuLGNyZWF0ZVBvcnRhbDpqLGNyZWF0ZUVsZW1lbnQ6dCxjcmVhdGVDb250ZXh0OmwsY3JlYXRlRmFjdG9yeTpvbixjbG9uZUVsZW1lbnQ6Y24sY3JlYXRlUmVmOmMsRnJhZ21lbnQ6dSxpc1ZhbGlkRWxlbWVudDpsbixmaW5kRE9NTm9kZTphbixDb21wb25lbnQ6bixQdXJlQ29tcG9uZW50OncsbWVtbzpSLGZvcndhcmRSZWY6ayxmbHVzaFN5bmM6aG4sdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM6c24sU3RyaWN0TW9kZTp2bixTdXNwZW5zZTpELFN1c3BlbnNlTGlzdDpWLGxhenk6TSxfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDpybn07ZXhwb3J0e08gYXMgQ2hpbGRyZW4sdyBhcyBQdXJlQ29tcG9uZW50LHZuIGFzIFN0cmljdE1vZGUsRCBhcyBTdXNwZW5zZSxWIGFzIFN1c3BlbnNlTGlzdCxybiBhcyBfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCxjbiBhcyBjbG9uZUVsZW1lbnQsb24gYXMgY3JlYXRlRmFjdG9yeSxqIGFzIGNyZWF0ZVBvcnRhbCxibiBhcyBkZWZhdWx0LGFuIGFzIGZpbmRET01Ob2RlLGhuIGFzIGZsdXNoU3luYyxrIGFzIGZvcndhcmRSZWYscSBhcyBoeWRyYXRlLGxuIGFzIGlzVmFsaWRFbGVtZW50LE0gYXMgbGF6eSxSIGFzIG1lbW8sWSBhcyByZW5kZXIsZG4gYXMgc3RhcnRUcmFuc2l0aW9uLGZuIGFzIHVubW91bnRDb21wb25lbnRBdE5vZGUsc24gYXMgdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMscG4gYXMgdXNlRGVmZXJyZWRWYWx1ZSx5biBhcyB1c2VJbnNlcnRpb25FZmZlY3QsX24gYXMgdXNlU3luY0V4dGVybmFsU3RvcmUsbW4gYXMgdXNlVHJhbnNpdGlvbix1biBhcyB2ZXJzaW9ufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbXBhdC5tb2R1bGUuanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///776\n')},703:(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(414);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzAzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYiwyQkFBMkIsbUJBQU8sQ0FBQyxHQUE0Qjs7QUFFL0Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzP2Q3YTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG5cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKSB7fVxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbldpdGhSZXNldCgpIHt9XG5lbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LnJlc2V0V2FybmluZ0NhY2hlID0gZW1wdHlGdW5jdGlvbjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gc2hpbShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgIGlmIChzZWNyZXQgPT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAvLyBJdCBpcyBzdGlsbCBzYWZlIHdoZW4gY2FsbGVkIGZyb20gUmVhY3QuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAnVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gJyArXG4gICAgICAnUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcydcbiAgICApO1xuICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIHRocm93IGVycjtcbiAgfTtcbiAgc2hpbS5pc1JlcXVpcmVkID0gc2hpbTtcbiAgZnVuY3Rpb24gZ2V0U2hpbSgpIHtcbiAgICByZXR1cm4gc2hpbTtcbiAgfTtcbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBzaGltLFxuICAgIGJpZ2ludDogc2hpbSxcbiAgICBib29sOiBzaGltLFxuICAgIGZ1bmM6IHNoaW0sXG4gICAgbnVtYmVyOiBzaGltLFxuICAgIG9iamVjdDogc2hpbSxcbiAgICBzdHJpbmc6IHNoaW0sXG4gICAgc3ltYm9sOiBzaGltLFxuXG4gICAgYW55OiBzaGltLFxuICAgIGFycmF5T2Y6IGdldFNoaW0sXG4gICAgZWxlbWVudDogc2hpbSxcbiAgICBlbGVtZW50VHlwZTogc2hpbSxcbiAgICBpbnN0YW5jZU9mOiBnZXRTaGltLFxuICAgIG5vZGU6IHNoaW0sXG4gICAgb2JqZWN0T2Y6IGdldFNoaW0sXG4gICAgb25lT2Y6IGdldFNoaW0sXG4gICAgb25lT2ZUeXBlOiBnZXRTaGltLFxuICAgIHNoYXBlOiBnZXRTaGltLFxuICAgIGV4YWN0OiBnZXRTaGltLFxuXG4gICAgY2hlY2tQcm9wVHlwZXM6IGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQsXG4gICAgcmVzZXRXYXJuaW5nQ2FjaGU6IGVtcHR5RnVuY3Rpb25cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///703\n")},697:(module,__unused_webpack_exports,__webpack_require__)=>{eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) { var throwOnDirectAccess, ReactIs; } else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(703)();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjk3LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLEtBQXFDLEVBQUUscUNBTzFDLENBQUM7QUFDRjtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFPLENBQUMsR0FBNEI7QUFDdkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzP2Q3YmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///697\n")},414:module=>{"use strict";eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDE0LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYjs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzPzU5YjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9ICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZXNTZWNyZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///414\n")},474:function(module){eval("/**\n * what-input - A global utility for tracking the current input method (mouse, keyboard or touch).\n * @version v5.2.12\n * @link https://github.com/ten1seven/what-input\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __nested_webpack_require_738__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_738__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__nested_webpack_require_738__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__nested_webpack_require_738__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__nested_webpack_require_738__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __nested_webpack_require_738__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = function () {\n\t /*\n\t * bail out if there is no document or window\n\t * (i.e. in a node/non-DOM environment)\n\t *\n\t * Return a stubbed API instead\n\t */\n\t if (typeof document === 'undefined' || typeof window === 'undefined') {\n\t return {\n\t // always return \"initial\" because no interaction will ever be detected\n\t ask: function ask() {\n\t return 'initial';\n\t },\n\n\t // always return null\n\t element: function element() {\n\t return null;\n\t },\n\n\t // no-op\n\t ignoreKeys: function ignoreKeys() {},\n\n\t // no-op\n\t specificKeys: function specificKeys() {},\n\n\t // no-op\n\t registerOnChange: function registerOnChange() {},\n\n\t // no-op\n\t unRegisterOnChange: function unRegisterOnChange() {}\n\t };\n\t }\n\n\t /*\n\t * variables\n\t */\n\n\t // cache document.documentElement\n\t var docElem = document.documentElement;\n\n\t // currently focused dom element\n\t var currentElement = null;\n\n\t // last used input type\n\t var currentInput = 'initial';\n\n\t // last used input intent\n\t var currentIntent = currentInput;\n\n\t // UNIX timestamp of current event\n\t var currentTimestamp = Date.now();\n\n\t // check for a `data-whatpersist` attribute on either the `html` or `body` elements, defaults to `true`\n\t var shouldPersist = false;\n\n\t // form input types\n\t var formInputs = ['button', 'input', 'select', 'textarea'];\n\n\t // empty array for holding callback functions\n\t var functionList = [];\n\n\t // list of modifier keys commonly used with the mouse and\n\t // can be safely ignored to prevent false keyboard detection\n\t var ignoreMap = [16, // shift\n\t 17, // control\n\t 18, // alt\n\t 91, // Windows key / left Apple cmd\n\t 93 // Windows menu / right Apple cmd\n\t ];\n\n\t var specificMap = [];\n\n\t // mapping of events to input types\n\t var inputMap = {\n\t keydown: 'keyboard',\n\t keyup: 'keyboard',\n\t mousedown: 'mouse',\n\t mousemove: 'mouse',\n\t MSPointerDown: 'pointer',\n\t MSPointerMove: 'pointer',\n\t pointerdown: 'pointer',\n\t pointermove: 'pointer',\n\t touchstart: 'touch',\n\t touchend: 'touch'\n\n\t // boolean: true if the page is being scrolled\n\t };var isScrolling = false;\n\n\t // store current mouse position\n\t var mousePos = {\n\t x: null,\n\t y: null\n\n\t // map of IE 10 pointer events\n\t };var pointerMap = {\n\t 2: 'touch',\n\t 3: 'touch', // treat pen like touch\n\t 4: 'mouse'\n\n\t // check support for passive event listeners\n\t };var supportsPassive = false;\n\n\t try {\n\t var opts = Object.defineProperty({}, 'passive', {\n\t get: function get() {\n\t supportsPassive = true;\n\t }\n\t });\n\n\t window.addEventListener('test', null, opts);\n\t } catch (e) {}\n\t // fail silently\n\n\n\t /*\n\t * set up\n\t */\n\n\t var setUp = function setUp() {\n\t // add correct mouse wheel event mapping to `inputMap`\n\t inputMap[detectWheel()] = 'mouse';\n\n\t addListeners();\n\t };\n\n\t /*\n\t * events\n\t */\n\n\t var addListeners = function addListeners() {\n\t // `pointermove`, `MSPointerMove`, `mousemove` and mouse wheel event binding\n\t // can only demonstrate potential, but not actual, interaction\n\t // and are treated separately\n\t var options = supportsPassive ? { passive: true, capture: true } : true;\n\n\t document.addEventListener('DOMContentLoaded', setPersist, true);\n\n\t // pointer events (mouse, pen, touch)\n\t if (window.PointerEvent) {\n\t window.addEventListener('pointerdown', setInput, true);\n\t window.addEventListener('pointermove', setIntent, true);\n\t } else if (window.MSPointerEvent) {\n\t window.addEventListener('MSPointerDown', setInput, true);\n\t window.addEventListener('MSPointerMove', setIntent, true);\n\t } else {\n\t // mouse events\n\t window.addEventListener('mousedown', setInput, true);\n\t window.addEventListener('mousemove', setIntent, true);\n\n\t // touch events\n\t if ('ontouchstart' in window) {\n\t window.addEventListener('touchstart', setInput, options);\n\t window.addEventListener('touchend', setInput, true);\n\t }\n\t }\n\n\t // mouse wheel\n\t window.addEventListener(detectWheel(), setIntent, options);\n\n\t // keyboard events\n\t window.addEventListener('keydown', setInput, true);\n\t window.addEventListener('keyup', setInput, true);\n\n\t // focus events\n\t window.addEventListener('focusin', setElement, true);\n\t window.addEventListener('focusout', clearElement, true);\n\t };\n\n\t // checks if input persistence should happen and\n\t // get saved state from session storage if true (defaults to `false`)\n\t var setPersist = function setPersist() {\n\t shouldPersist = !(docElem.getAttribute('data-whatpersist') === 'false' || document.body.getAttribute('data-whatpersist') === 'false');\n\n\t if (shouldPersist) {\n\t // check for session variables and use if available\n\t try {\n\t if (window.sessionStorage.getItem('what-input')) {\n\t currentInput = window.sessionStorage.getItem('what-input');\n\t }\n\n\t if (window.sessionStorage.getItem('what-intent')) {\n\t currentIntent = window.sessionStorage.getItem('what-intent');\n\t }\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\n\t // always run these so at least `initial` state is set\n\t doUpdate('input');\n\t doUpdate('intent');\n\t };\n\n\t // checks conditions before updating new input\n\t var setInput = function setInput(event) {\n\t var eventKey = event.which;\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t var ignoreMatch = !specificMap.length && ignoreMap.indexOf(eventKey) === -1;\n\n\t var specificMatch = specificMap.length && specificMap.indexOf(eventKey) !== -1;\n\n\t var shouldUpdate = value === 'keyboard' && eventKey && (ignoreMatch || specificMatch) || value === 'mouse' || value === 'touch';\n\n\t // prevent touch detection from being overridden by event execution order\n\t if (validateTouch(value)) {\n\t shouldUpdate = false;\n\t }\n\n\t if (shouldUpdate && currentInput !== value) {\n\t currentInput = value;\n\n\t persistInput('input', currentInput);\n\t doUpdate('input');\n\t }\n\n\t if (shouldUpdate && currentIntent !== value) {\n\t // preserve intent for keyboard interaction with form fields\n\t var activeElem = document.activeElement;\n\t var notFormInput = activeElem && activeElem.nodeName && (formInputs.indexOf(activeElem.nodeName.toLowerCase()) === -1 || activeElem.nodeName.toLowerCase() === 'button' && !checkClosest(activeElem, 'form'));\n\n\t if (notFormInput) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t }\n\t };\n\n\t // updates the doc and `inputTypes` array with new input\n\t var doUpdate = function doUpdate(which) {\n\t docElem.setAttribute('data-what' + which, which === 'input' ? currentInput : currentIntent);\n\n\t fireFunctions(which);\n\t };\n\n\t // updates input intent for `mousemove` and `pointermove`\n\t var setIntent = function setIntent(event) {\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t // test to see if `mousemove` happened relative to the screen to detect scrolling versus mousemove\n\t detectScrolling(event);\n\n\t // only execute if scrolling isn't happening\n\t if ((!isScrolling && !validateTouch(value) || isScrolling && event.type === 'wheel' || event.type === 'mousewheel' || event.type === 'DOMMouseScroll') && currentIntent !== value) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t };\n\n\t var setElement = function setElement(event) {\n\t if (!event.target.nodeName) {\n\t // If nodeName is undefined, clear the element\n\t // This can happen if click inside an <svg> element.\n\t clearElement();\n\t return;\n\t }\n\n\t currentElement = event.target.nodeName.toLowerCase();\n\t docElem.setAttribute('data-whatelement', currentElement);\n\n\t if (event.target.classList && event.target.classList.length) {\n\t docElem.setAttribute('data-whatclasses', event.target.classList.toString().replace(' ', ','));\n\t }\n\t };\n\n\t var clearElement = function clearElement() {\n\t currentElement = null;\n\n\t docElem.removeAttribute('data-whatelement');\n\t docElem.removeAttribute('data-whatclasses');\n\t };\n\n\t var persistInput = function persistInput(which, value) {\n\t if (shouldPersist) {\n\t try {\n\t window.sessionStorage.setItem('what-' + which, value);\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\t };\n\n\t /*\n\t * utilities\n\t */\n\n\t var pointerType = function pointerType(event) {\n\t if (typeof event.pointerType === 'number') {\n\t return pointerMap[event.pointerType];\n\t } else {\n\t // treat pen like touch\n\t return event.pointerType === 'pen' ? 'touch' : event.pointerType;\n\t }\n\t };\n\n\t // prevent touch detection from being overridden by event execution order\n\t var validateTouch = function validateTouch(value) {\n\t var timestamp = Date.now();\n\n\t var touchIsValid = value === 'mouse' && currentInput === 'touch' && timestamp - currentTimestamp < 200;\n\n\t currentTimestamp = timestamp;\n\n\t return touchIsValid;\n\t };\n\n\t // detect version of mouse wheel event to use\n\t // via https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event\n\t var detectWheel = function detectWheel() {\n\t var wheelType = null;\n\n\t // Modern browsers support \"wheel\"\n\t if ('onwheel' in document.createElement('div')) {\n\t wheelType = 'wheel';\n\t } else {\n\t // Webkit and IE support at least \"mousewheel\"\n\t // or assume that remaining browsers are older Firefox\n\t wheelType = document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';\n\t }\n\n\t return wheelType;\n\t };\n\n\t // runs callback functions\n\t var fireFunctions = function fireFunctions(type) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].type === type) {\n\t functionList[i].fn.call(undefined, type === 'input' ? currentInput : currentIntent);\n\t }\n\t }\n\t };\n\n\t // finds matching element in an object\n\t var objPos = function objPos(match) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].fn === match) {\n\t return i;\n\t }\n\t }\n\t };\n\n\t var detectScrolling = function detectScrolling(event) {\n\t if (mousePos.x !== event.screenX || mousePos.y !== event.screenY) {\n\t isScrolling = false;\n\n\t mousePos.x = event.screenX;\n\t mousePos.y = event.screenY;\n\t } else {\n\t isScrolling = true;\n\t }\n\t };\n\n\t // manual version of `closest()`\n\t var checkClosest = function checkClosest(elem, tag) {\n\t var ElementPrototype = window.Element.prototype;\n\n\t if (!ElementPrototype.matches) {\n\t ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.webkitMatchesSelector;\n\t }\n\n\t if (!ElementPrototype.closest) {\n\t do {\n\t if (elem.matches(tag)) {\n\t return elem;\n\t }\n\n\t elem = elem.parentElement || elem.parentNode;\n\t } while (elem !== null && elem.nodeType === 1);\n\n\t return null;\n\t } else {\n\t return elem.closest(tag);\n\t }\n\t };\n\n\t /*\n\t * init\n\t */\n\n\t // don't start script unless browser cuts the mustard\n\t // (also passes if polyfills are used)\n\t if ('addEventListener' in window && Array.prototype.indexOf) {\n\t setUp();\n\t }\n\n\t /*\n\t * api\n\t */\n\n\t return {\n\t // returns string: the current input type\n\t // opt: 'intent'|'input'\n\t // 'input' (default): returns the same value as the `data-whatinput` attribute\n\t // 'intent': includes `data-whatintent` value if it's different than `data-whatinput`\n\t ask: function ask(opt) {\n\t return opt === 'intent' ? currentIntent : currentInput;\n\t },\n\n\t // returns string: the currently focused element or null\n\t element: function element() {\n\t return currentElement;\n\t },\n\n\t // overwrites ignored keys with provided array\n\t ignoreKeys: function ignoreKeys(arr) {\n\t ignoreMap = arr;\n\t },\n\n\t // overwrites specific char keys to update on\n\t specificKeys: function specificKeys(arr) {\n\t specificMap = arr;\n\t },\n\n\t // attach functions to input and intent \"events\"\n\t // funct: function to fire on change\n\t // eventType: 'input'|'intent'\n\t registerOnChange: function registerOnChange(fn, eventType) {\n\t functionList.push({\n\t fn: fn,\n\t type: eventType || 'input'\n\t });\n\t },\n\n\t unRegisterOnChange: function unRegisterOnChange(fn) {\n\t var position = objPos(fn);\n\n\t if (position || position === 0) {\n\t functionList.splice(position, 1);\n\t }\n\t },\n\n\t clearStorage: function clearStorage() {\n\t window.sessionStorage.clear();\n\t }\n\t };\n\t}();\n\n/***/ })\n/******/ ])\n});\n;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDc0LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUF5RDtBQUM3RDtBQUNBLE1BQU0sRUFLMEI7QUFDaEMsQ0FBQztBQUNELHFDQUFxQztBQUNyQztBQUNBOztBQUVBO0FBQ0EsbUJBQW1CLDhCQUFtQjs7QUFFdEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMEVBQTBFLDhCQUFtQjs7QUFFN0Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0EsVUFBVSw4QkFBbUI7O0FBRTdCO0FBQ0EsVUFBVSw4QkFBbUI7O0FBRTdCO0FBQ0EsVUFBVSw4QkFBbUI7O0FBRTdCO0FBQ0EsaUJBQWlCLDhCQUFtQjtBQUNwQyxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7QUFFUjtBQUNBO0FBQ0E7QUFDQSxRQUFROztBQUVSO0FBQ0EsMkNBQTJDOztBQUUzQztBQUNBLCtDQUErQzs7QUFFL0M7QUFDQSx1REFBdUQ7O0FBRXZEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBLEtBQUs7QUFDTDs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QywrQkFBK0I7O0FBRXRFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnREFBZ0QsU0FBUztBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnREFBZ0QsU0FBUztBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxTQUFTOztBQUVUO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSLE1BQU07O0FBRU47QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRixPQUFPO0FBQ1A7QUFDQSxDQUFDO0FBQ0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy93aGF0LWlucHV0L2Rpc3Qvd2hhdC1pbnB1dC5qcz84ZTNiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogd2hhdC1pbnB1dCAtIEEgZ2xvYmFsIHV0aWxpdHkgZm9yIHRyYWNraW5nIHRoZSBjdXJyZW50IGlucHV0IG1ldGhvZCAobW91c2UsIGtleWJvYXJkIG9yIHRvdWNoKS5cbiAqIEB2ZXJzaW9uIHY1LjIuMTJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS90ZW4xc2V2ZW4vd2hhdC1pbnB1dFxuICogQGxpY2Vuc2UgTUlUXG4gKi9cbihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFwid2hhdElucHV0XCIsIFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIndoYXRJbnB1dFwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJ3aGF0SW5wdXRcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4vKioqKioqLyBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbi8qKioqKiovIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fSxcbi8qKioqKiovIFx0XHRcdGlkOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdGxvYWRlZDogZmFsc2Vcbi8qKioqKiovIFx0XHR9O1xuXG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG5cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuXG5cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4vKioqKioqLyBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyoqKioqKi8gfSlcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyAoW1xuLyogMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5cdCd1c2Ugc3RyaWN0JztcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcblx0ICAvKlxuXHQgICAqIGJhaWwgb3V0IGlmIHRoZXJlIGlzIG5vIGRvY3VtZW50IG9yIHdpbmRvd1xuXHQgICAqIChpLmUuIGluIGEgbm9kZS9ub24tRE9NIGVudmlyb25tZW50KVxuXHQgICAqXG5cdCAgICogUmV0dXJuIGEgc3R1YmJlZCBBUEkgaW5zdGVhZFxuXHQgICAqL1xuXHQgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG5cdCAgICByZXR1cm4ge1xuXHQgICAgICAvLyBhbHdheXMgcmV0dXJuIFwiaW5pdGlhbFwiIGJlY2F1c2Ugbm8gaW50ZXJhY3Rpb24gd2lsbCBldmVyIGJlIGRldGVjdGVkXG5cdCAgICAgIGFzazogZnVuY3Rpb24gYXNrKCkge1xuXHQgICAgICAgIHJldHVybiAnaW5pdGlhbCc7XG5cdCAgICAgIH0sXG5cblx0ICAgICAgLy8gYWx3YXlzIHJldHVybiBudWxsXG5cdCAgICAgIGVsZW1lbnQ6IGZ1bmN0aW9uIGVsZW1lbnQoKSB7XG5cdCAgICAgICAgcmV0dXJuIG51bGw7XG5cdCAgICAgIH0sXG5cblx0ICAgICAgLy8gbm8tb3Bcblx0ICAgICAgaWdub3JlS2V5czogZnVuY3Rpb24gaWdub3JlS2V5cygpIHt9LFxuXG5cdCAgICAgIC8vIG5vLW9wXG5cdCAgICAgIHNwZWNpZmljS2V5czogZnVuY3Rpb24gc3BlY2lmaWNLZXlzKCkge30sXG5cblx0ICAgICAgLy8gbm8tb3Bcblx0ICAgICAgcmVnaXN0ZXJPbkNoYW5nZTogZnVuY3Rpb24gcmVnaXN0ZXJPbkNoYW5nZSgpIHt9LFxuXG5cdCAgICAgIC8vIG5vLW9wXG5cdCAgICAgIHVuUmVnaXN0ZXJPbkNoYW5nZTogZnVuY3Rpb24gdW5SZWdpc3Rlck9uQ2hhbmdlKCkge31cblx0ICAgIH07XG5cdCAgfVxuXG5cdCAgLypcblx0ICAgKiB2YXJpYWJsZXNcblx0ICAgKi9cblxuXHQgIC8vIGNhY2hlIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuXHQgIHZhciBkb2NFbGVtID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG5cdCAgLy8gY3VycmVudGx5IGZvY3VzZWQgZG9tIGVsZW1lbnRcblx0ICB2YXIgY3VycmVudEVsZW1lbnQgPSBudWxsO1xuXG5cdCAgLy8gbGFzdCB1c2VkIGlucHV0IHR5cGVcblx0ICB2YXIgY3VycmVudElucHV0ID0gJ2luaXRpYWwnO1xuXG5cdCAgLy8gbGFzdCB1c2VkIGlucHV0IGludGVudFxuXHQgIHZhciBjdXJyZW50SW50ZW50ID0gY3VycmVudElucHV0O1xuXG5cdCAgLy8gVU5JWCB0aW1lc3RhbXAgb2YgY3VycmVudCBldmVudFxuXHQgIHZhciBjdXJyZW50VGltZXN0YW1wID0gRGF0ZS5ub3coKTtcblxuXHQgIC8vIGNoZWNrIGZvciBhIGBkYXRhLXdoYXRwZXJzaXN0YCBhdHRyaWJ1dGUgb24gZWl0aGVyIHRoZSBgaHRtbGAgb3IgYGJvZHlgIGVsZW1lbnRzLCBkZWZhdWx0cyB0byBgdHJ1ZWBcblx0ICB2YXIgc2hvdWxkUGVyc2lzdCA9IGZhbHNlO1xuXG5cdCAgLy8gZm9ybSBpbnB1dCB0eXBlc1xuXHQgIHZhciBmb3JtSW5wdXRzID0gWydidXR0b24nLCAnaW5wdXQnLCAnc2VsZWN0JywgJ3RleHRhcmVhJ107XG5cblx0ICAvLyBlbXB0eSBhcnJheSBmb3IgaG9sZGluZyBjYWxsYmFjayBmdW5jdGlvbnNcblx0ICB2YXIgZnVuY3Rpb25MaXN0ID0gW107XG5cblx0ICAvLyBsaXN0IG9mIG1vZGlmaWVyIGtleXMgY29tbW9ubHkgdXNlZCB3aXRoIHRoZSBtb3VzZSBhbmRcblx0ICAvLyBjYW4gYmUgc2FmZWx5IGlnbm9yZWQgdG8gcHJldmVudCBmYWxzZSBrZXlib2FyZCBkZXRlY3Rpb25cblx0ICB2YXIgaWdub3JlTWFwID0gWzE2LCAvLyBzaGlmdFxuXHQgIDE3LCAvLyBjb250cm9sXG5cdCAgMTgsIC8vIGFsdFxuXHQgIDkxLCAvLyBXaW5kb3dzIGtleSAvIGxlZnQgQXBwbGUgY21kXG5cdCAgOTMgLy8gV2luZG93cyBtZW51IC8gcmlnaHQgQXBwbGUgY21kXG5cdCAgXTtcblxuXHQgIHZhciBzcGVjaWZpY01hcCA9IFtdO1xuXG5cdCAgLy8gbWFwcGluZyBvZiBldmVudHMgdG8gaW5wdXQgdHlwZXNcblx0ICB2YXIgaW5wdXRNYXAgPSB7XG5cdCAgICBrZXlkb3duOiAna2V5Ym9hcmQnLFxuXHQgICAga2V5dXA6ICdrZXlib2FyZCcsXG5cdCAgICBtb3VzZWRvd246ICdtb3VzZScsXG5cdCAgICBtb3VzZW1vdmU6ICdtb3VzZScsXG5cdCAgICBNU1BvaW50ZXJEb3duOiAncG9pbnRlcicsXG5cdCAgICBNU1BvaW50ZXJNb3ZlOiAncG9pbnRlcicsXG5cdCAgICBwb2ludGVyZG93bjogJ3BvaW50ZXInLFxuXHQgICAgcG9pbnRlcm1vdmU6ICdwb2ludGVyJyxcblx0ICAgIHRvdWNoc3RhcnQ6ICd0b3VjaCcsXG5cdCAgICB0b3VjaGVuZDogJ3RvdWNoJ1xuXG5cdCAgICAvLyBib29sZWFuOiB0cnVlIGlmIHRoZSBwYWdlIGlzIGJlaW5nIHNjcm9sbGVkXG5cdCAgfTt2YXIgaXNTY3JvbGxpbmcgPSBmYWxzZTtcblxuXHQgIC8vIHN0b3JlIGN1cnJlbnQgbW91c2UgcG9zaXRpb25cblx0ICB2YXIgbW91c2VQb3MgPSB7XG5cdCAgICB4OiBudWxsLFxuXHQgICAgeTogbnVsbFxuXG5cdCAgICAvLyBtYXAgb2YgSUUgMTAgcG9pbnRlciBldmVudHNcblx0ICB9O3ZhciBwb2ludGVyTWFwID0ge1xuXHQgICAgMjogJ3RvdWNoJyxcblx0ICAgIDM6ICd0b3VjaCcsIC8vIHRyZWF0IHBlbiBsaWtlIHRvdWNoXG5cdCAgICA0OiAnbW91c2UnXG5cblx0ICAgIC8vIGNoZWNrIHN1cHBvcnQgZm9yIHBhc3NpdmUgZXZlbnQgbGlzdGVuZXJzXG5cdCAgfTt2YXIgc3VwcG9ydHNQYXNzaXZlID0gZmFsc2U7XG5cblx0ICB0cnkge1xuXHQgICAgdmFyIG9wdHMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xuXHQgICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcblx0ICAgICAgICBzdXBwb3J0c1Bhc3NpdmUgPSB0cnVlO1xuXHQgICAgICB9XG5cdCAgICB9KTtcblxuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBudWxsLCBvcHRzKTtcblx0ICB9IGNhdGNoIChlKSB7fVxuXHQgIC8vIGZhaWwgc2lsZW50bHlcblxuXG5cdCAgLypcblx0ICAgKiBzZXQgdXBcblx0ICAgKi9cblxuXHQgIHZhciBzZXRVcCA9IGZ1bmN0aW9uIHNldFVwKCkge1xuXHQgICAgLy8gYWRkIGNvcnJlY3QgbW91c2Ugd2hlZWwgZXZlbnQgbWFwcGluZyB0byBgaW5wdXRNYXBgXG5cdCAgICBpbnB1dE1hcFtkZXRlY3RXaGVlbCgpXSA9ICdtb3VzZSc7XG5cblx0ICAgIGFkZExpc3RlbmVycygpO1xuXHQgIH07XG5cblx0ICAvKlxuXHQgICAqIGV2ZW50c1xuXHQgICAqL1xuXG5cdCAgdmFyIGFkZExpc3RlbmVycyA9IGZ1bmN0aW9uIGFkZExpc3RlbmVycygpIHtcblx0ICAgIC8vIGBwb2ludGVybW92ZWAsIGBNU1BvaW50ZXJNb3ZlYCwgYG1vdXNlbW92ZWAgYW5kIG1vdXNlIHdoZWVsIGV2ZW50IGJpbmRpbmdcblx0ICAgIC8vIGNhbiBvbmx5IGRlbW9uc3RyYXRlIHBvdGVudGlhbCwgYnV0IG5vdCBhY3R1YWwsIGludGVyYWN0aW9uXG5cdCAgICAvLyBhbmQgYXJlIHRyZWF0ZWQgc2VwYXJhdGVseVxuXHQgICAgdmFyIG9wdGlvbnMgPSBzdXBwb3J0c1Bhc3NpdmUgPyB7IHBhc3NpdmU6IHRydWUsIGNhcHR1cmU6IHRydWUgfSA6IHRydWU7XG5cblx0ICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBzZXRQZXJzaXN0LCB0cnVlKTtcblxuXHQgICAgLy8gcG9pbnRlciBldmVudHMgKG1vdXNlLCBwZW4sIHRvdWNoKVxuXHQgICAgaWYgKHdpbmRvdy5Qb2ludGVyRXZlbnQpIHtcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgc2V0SW5wdXQsIHRydWUpO1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBzZXRJbnRlbnQsIHRydWUpO1xuXHQgICAgfSBlbHNlIGlmICh3aW5kb3cuTVNQb2ludGVyRXZlbnQpIHtcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ01TUG9pbnRlckRvd24nLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdNU1BvaW50ZXJNb3ZlJywgc2V0SW50ZW50LCB0cnVlKTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIC8vIG1vdXNlIGV2ZW50c1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgc2V0SW5wdXQsIHRydWUpO1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgc2V0SW50ZW50LCB0cnVlKTtcblxuXHQgICAgICAvLyB0b3VjaCBldmVudHNcblx0ICAgICAgaWYgKCdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdykge1xuXHQgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywgc2V0SW5wdXQsIG9wdGlvbnMpO1xuXHQgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHNldElucHV0LCB0cnVlKTtcblx0ICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICAvLyBtb3VzZSB3aGVlbFxuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZGV0ZWN0V2hlZWwoKSwgc2V0SW50ZW50LCBvcHRpb25zKTtcblxuXHQgICAgLy8ga2V5Ym9hcmQgZXZlbnRzXG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHNldElucHV0LCB0cnVlKTtcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHNldElucHV0LCB0cnVlKTtcblxuXHQgICAgLy8gZm9jdXMgZXZlbnRzXG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIHNldEVsZW1lbnQsIHRydWUpO1xuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgY2xlYXJFbGVtZW50LCB0cnVlKTtcblx0ICB9O1xuXG5cdCAgLy8gY2hlY2tzIGlmIGlucHV0IHBlcnNpc3RlbmNlIHNob3VsZCBoYXBwZW4gYW5kXG5cdCAgLy8gZ2V0IHNhdmVkIHN0YXRlIGZyb20gc2Vzc2lvbiBzdG9yYWdlIGlmIHRydWUgKGRlZmF1bHRzIHRvIGBmYWxzZWApXG5cdCAgdmFyIHNldFBlcnNpc3QgPSBmdW5jdGlvbiBzZXRQZXJzaXN0KCkge1xuXHQgICAgc2hvdWxkUGVyc2lzdCA9ICEoZG9jRWxlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtd2hhdHBlcnNpc3QnKSA9PT0gJ2ZhbHNlJyB8fCBkb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgnZGF0YS13aGF0cGVyc2lzdCcpID09PSAnZmFsc2UnKTtcblxuXHQgICAgaWYgKHNob3VsZFBlcnNpc3QpIHtcblx0ICAgICAgLy8gY2hlY2sgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCB1c2UgaWYgYXZhaWxhYmxlXG5cdCAgICAgIHRyeSB7XG5cdCAgICAgICAgaWYgKHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd3aGF0LWlucHV0JykpIHtcblx0ICAgICAgICAgIGN1cnJlbnRJbnB1dCA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd3aGF0LWlucHV0Jyk7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd3aGF0LWludGVudCcpKSB7XG5cdCAgICAgICAgICBjdXJyZW50SW50ZW50ID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3doYXQtaW50ZW50Jyk7XG5cdCAgICAgICAgfVxuXHQgICAgICB9IGNhdGNoIChlKSB7XG5cdCAgICAgICAgLy8gZmFpbCBzaWxlbnRseVxuXHQgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIC8vIGFsd2F5cyBydW4gdGhlc2Ugc28gYXQgbGVhc3QgYGluaXRpYWxgIHN0YXRlIGlzIHNldFxuXHQgICAgZG9VcGRhdGUoJ2lucHV0Jyk7XG5cdCAgICBkb1VwZGF0ZSgnaW50ZW50Jyk7XG5cdCAgfTtcblxuXHQgIC8vIGNoZWNrcyBjb25kaXRpb25zIGJlZm9yZSB1cGRhdGluZyBuZXcgaW5wdXRcblx0ICB2YXIgc2V0SW5wdXQgPSBmdW5jdGlvbiBzZXRJbnB1dChldmVudCkge1xuXHQgICAgdmFyIGV2ZW50S2V5ID0gZXZlbnQud2hpY2g7XG5cdCAgICB2YXIgdmFsdWUgPSBpbnB1dE1hcFtldmVudC50eXBlXTtcblxuXHQgICAgaWYgKHZhbHVlID09PSAncG9pbnRlcicpIHtcblx0ICAgICAgdmFsdWUgPSBwb2ludGVyVHlwZShldmVudCk7XG5cdCAgICB9XG5cblx0ICAgIHZhciBpZ25vcmVNYXRjaCA9ICFzcGVjaWZpY01hcC5sZW5ndGggJiYgaWdub3JlTWFwLmluZGV4T2YoZXZlbnRLZXkpID09PSAtMTtcblxuXHQgICAgdmFyIHNwZWNpZmljTWF0Y2ggPSBzcGVjaWZpY01hcC5sZW5ndGggJiYgc3BlY2lmaWNNYXAuaW5kZXhPZihldmVudEtleSkgIT09IC0xO1xuXG5cdCAgICB2YXIgc2hvdWxkVXBkYXRlID0gdmFsdWUgPT09ICdrZXlib2FyZCcgJiYgZXZlbnRLZXkgJiYgKGlnbm9yZU1hdGNoIHx8IHNwZWNpZmljTWF0Y2gpIHx8IHZhbHVlID09PSAnbW91c2UnIHx8IHZhbHVlID09PSAndG91Y2gnO1xuXG5cdCAgICAvLyBwcmV2ZW50IHRvdWNoIGRldGVjdGlvbiBmcm9tIGJlaW5nIG92ZXJyaWRkZW4gYnkgZXZlbnQgZXhlY3V0aW9uIG9yZGVyXG5cdCAgICBpZiAodmFsaWRhdGVUb3VjaCh2YWx1ZSkpIHtcblx0ICAgICAgc2hvdWxkVXBkYXRlID0gZmFsc2U7XG5cdCAgICB9XG5cblx0ICAgIGlmIChzaG91bGRVcGRhdGUgJiYgY3VycmVudElucHV0ICE9PSB2YWx1ZSkge1xuXHQgICAgICBjdXJyZW50SW5wdXQgPSB2YWx1ZTtcblxuXHQgICAgICBwZXJzaXN0SW5wdXQoJ2lucHV0JywgY3VycmVudElucHV0KTtcblx0ICAgICAgZG9VcGRhdGUoJ2lucHV0Jyk7XG5cdCAgICB9XG5cblx0ICAgIGlmIChzaG91bGRVcGRhdGUgJiYgY3VycmVudEludGVudCAhPT0gdmFsdWUpIHtcblx0ICAgICAgLy8gcHJlc2VydmUgaW50ZW50IGZvciBrZXlib2FyZCBpbnRlcmFjdGlvbiB3aXRoIGZvcm0gZmllbGRzXG5cdCAgICAgIHZhciBhY3RpdmVFbGVtID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblx0ICAgICAgdmFyIG5vdEZvcm1JbnB1dCA9IGFjdGl2ZUVsZW0gJiYgYWN0aXZlRWxlbS5ub2RlTmFtZSAmJiAoZm9ybUlucHV0cy5pbmRleE9mKGFjdGl2ZUVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkgPT09IC0xIHx8IGFjdGl2ZUVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2J1dHRvbicgJiYgIWNoZWNrQ2xvc2VzdChhY3RpdmVFbGVtLCAnZm9ybScpKTtcblxuXHQgICAgICBpZiAobm90Rm9ybUlucHV0KSB7XG5cdCAgICAgICAgY3VycmVudEludGVudCA9IHZhbHVlO1xuXG5cdCAgICAgICAgcGVyc2lzdElucHV0KCdpbnRlbnQnLCBjdXJyZW50SW50ZW50KTtcblx0ICAgICAgICBkb1VwZGF0ZSgnaW50ZW50Jyk7XG5cdCAgICAgIH1cblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLy8gdXBkYXRlcyB0aGUgZG9jIGFuZCBgaW5wdXRUeXBlc2AgYXJyYXkgd2l0aCBuZXcgaW5wdXRcblx0ICB2YXIgZG9VcGRhdGUgPSBmdW5jdGlvbiBkb1VwZGF0ZSh3aGljaCkge1xuXHQgICAgZG9jRWxlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEtd2hhdCcgKyB3aGljaCwgd2hpY2ggPT09ICdpbnB1dCcgPyBjdXJyZW50SW5wdXQgOiBjdXJyZW50SW50ZW50KTtcblxuXHQgICAgZmlyZUZ1bmN0aW9ucyh3aGljaCk7XG5cdCAgfTtcblxuXHQgIC8vIHVwZGF0ZXMgaW5wdXQgaW50ZW50IGZvciBgbW91c2Vtb3ZlYCBhbmQgYHBvaW50ZXJtb3ZlYFxuXHQgIHZhciBzZXRJbnRlbnQgPSBmdW5jdGlvbiBzZXRJbnRlbnQoZXZlbnQpIHtcblx0ICAgIHZhciB2YWx1ZSA9IGlucHV0TWFwW2V2ZW50LnR5cGVdO1xuXG5cdCAgICBpZiAodmFsdWUgPT09ICdwb2ludGVyJykge1xuXHQgICAgICB2YWx1ZSA9IHBvaW50ZXJUeXBlKGV2ZW50KTtcblx0ICAgIH1cblxuXHQgICAgLy8gdGVzdCB0byBzZWUgaWYgYG1vdXNlbW92ZWAgaGFwcGVuZWQgcmVsYXRpdmUgdG8gdGhlIHNjcmVlbiB0byBkZXRlY3Qgc2Nyb2xsaW5nIHZlcnN1cyBtb3VzZW1vdmVcblx0ICAgIGRldGVjdFNjcm9sbGluZyhldmVudCk7XG5cblx0ICAgIC8vIG9ubHkgZXhlY3V0ZSBpZiBzY3JvbGxpbmcgaXNuJ3QgaGFwcGVuaW5nXG5cdCAgICBpZiAoKCFpc1Njcm9sbGluZyAmJiAhdmFsaWRhdGVUb3VjaCh2YWx1ZSkgfHwgaXNTY3JvbGxpbmcgJiYgZXZlbnQudHlwZSA9PT0gJ3doZWVsJyB8fCBldmVudC50eXBlID09PSAnbW91c2V3aGVlbCcgfHwgZXZlbnQudHlwZSA9PT0gJ0RPTU1vdXNlU2Nyb2xsJykgJiYgY3VycmVudEludGVudCAhPT0gdmFsdWUpIHtcblx0ICAgICAgY3VycmVudEludGVudCA9IHZhbHVlO1xuXG5cdCAgICAgIHBlcnNpc3RJbnB1dCgnaW50ZW50JywgY3VycmVudEludGVudCk7XG5cdCAgICAgIGRvVXBkYXRlKCdpbnRlbnQnKTtcblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgdmFyIHNldEVsZW1lbnQgPSBmdW5jdGlvbiBzZXRFbGVtZW50KGV2ZW50KSB7XG5cdCAgICBpZiAoIWV2ZW50LnRhcmdldC5ub2RlTmFtZSkge1xuXHQgICAgICAvLyBJZiBub2RlTmFtZSBpcyB1bmRlZmluZWQsIGNsZWFyIHRoZSBlbGVtZW50XG5cdCAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiBjbGljayBpbnNpZGUgYW4gPHN2Zz4gZWxlbWVudC5cblx0ICAgICAgY2xlYXJFbGVtZW50KCk7XG5cdCAgICAgIHJldHVybjtcblx0ICAgIH1cblxuXHQgICAgY3VycmVudEVsZW1lbnQgPSBldmVudC50YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0ICAgIGRvY0VsZW0uc2V0QXR0cmlidXRlKCdkYXRhLXdoYXRlbGVtZW50JywgY3VycmVudEVsZW1lbnQpO1xuXG5cdCAgICBpZiAoZXZlbnQudGFyZ2V0LmNsYXNzTGlzdCAmJiBldmVudC50YXJnZXQuY2xhc3NMaXN0Lmxlbmd0aCkge1xuXHQgICAgICBkb2NFbGVtLnNldEF0dHJpYnV0ZSgnZGF0YS13aGF0Y2xhc3NlcycsIGV2ZW50LnRhcmdldC5jbGFzc0xpc3QudG9TdHJpbmcoKS5yZXBsYWNlKCcgJywgJywnKSk7XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIHZhciBjbGVhckVsZW1lbnQgPSBmdW5jdGlvbiBjbGVhckVsZW1lbnQoKSB7XG5cdCAgICBjdXJyZW50RWxlbWVudCA9IG51bGw7XG5cblx0ICAgIGRvY0VsZW0ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXdoYXRlbGVtZW50Jyk7XG5cdCAgICBkb2NFbGVtLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS13aGF0Y2xhc3NlcycpO1xuXHQgIH07XG5cblx0ICB2YXIgcGVyc2lzdElucHV0ID0gZnVuY3Rpb24gcGVyc2lzdElucHV0KHdoaWNoLCB2YWx1ZSkge1xuXHQgICAgaWYgKHNob3VsZFBlcnNpc3QpIHtcblx0ICAgICAgdHJ5IHtcblx0ICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnd2hhdC0nICsgd2hpY2gsIHZhbHVlKTtcblx0ICAgICAgfSBjYXRjaCAoZSkge1xuXHQgICAgICAgIC8vIGZhaWwgc2lsZW50bHlcblx0ICAgICAgfVxuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvKlxuXHQgICAqIHV0aWxpdGllc1xuXHQgICAqL1xuXG5cdCAgdmFyIHBvaW50ZXJUeXBlID0gZnVuY3Rpb24gcG9pbnRlclR5cGUoZXZlbnQpIHtcblx0ICAgIGlmICh0eXBlb2YgZXZlbnQucG9pbnRlclR5cGUgPT09ICdudW1iZXInKSB7XG5cdCAgICAgIHJldHVybiBwb2ludGVyTWFwW2V2ZW50LnBvaW50ZXJUeXBlXTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIC8vIHRyZWF0IHBlbiBsaWtlIHRvdWNoXG5cdCAgICAgIHJldHVybiBldmVudC5wb2ludGVyVHlwZSA9PT0gJ3BlbicgPyAndG91Y2gnIDogZXZlbnQucG9pbnRlclR5cGU7XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8vIHByZXZlbnQgdG91Y2ggZGV0ZWN0aW9uIGZyb20gYmVpbmcgb3ZlcnJpZGRlbiBieSBldmVudCBleGVjdXRpb24gb3JkZXJcblx0ICB2YXIgdmFsaWRhdGVUb3VjaCA9IGZ1bmN0aW9uIHZhbGlkYXRlVG91Y2godmFsdWUpIHtcblx0ICAgIHZhciB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuXG5cdCAgICB2YXIgdG91Y2hJc1ZhbGlkID0gdmFsdWUgPT09ICdtb3VzZScgJiYgY3VycmVudElucHV0ID09PSAndG91Y2gnICYmIHRpbWVzdGFtcCAtIGN1cnJlbnRUaW1lc3RhbXAgPCAyMDA7XG5cblx0ICAgIGN1cnJlbnRUaW1lc3RhbXAgPSB0aW1lc3RhbXA7XG5cblx0ICAgIHJldHVybiB0b3VjaElzVmFsaWQ7XG5cdCAgfTtcblxuXHQgIC8vIGRldGVjdCB2ZXJzaW9uIG9mIG1vdXNlIHdoZWVsIGV2ZW50IHRvIHVzZVxuXHQgIC8vIHZpYSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC93aGVlbF9ldmVudFxuXHQgIHZhciBkZXRlY3RXaGVlbCA9IGZ1bmN0aW9uIGRldGVjdFdoZWVsKCkge1xuXHQgICAgdmFyIHdoZWVsVHlwZSA9IG51bGw7XG5cblx0ICAgIC8vIE1vZGVybiBicm93c2VycyBzdXBwb3J0IFwid2hlZWxcIlxuXHQgICAgaWYgKCdvbndoZWVsJyBpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSkge1xuXHQgICAgICB3aGVlbFR5cGUgPSAnd2hlZWwnO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgLy8gV2Via2l0IGFuZCBJRSBzdXBwb3J0IGF0IGxlYXN0IFwibW91c2V3aGVlbFwiXG5cdCAgICAgIC8vIG9yIGFzc3VtZSB0aGF0IHJlbWFpbmluZyBicm93c2VycyBhcmUgb2xkZXIgRmlyZWZveFxuXHQgICAgICB3aGVlbFR5cGUgPSBkb2N1bWVudC5vbm1vdXNld2hlZWwgIT09IHVuZGVmaW5lZCA/ICdtb3VzZXdoZWVsJyA6ICdET01Nb3VzZVNjcm9sbCc7XG5cdCAgICB9XG5cblx0ICAgIHJldHVybiB3aGVlbFR5cGU7XG5cdCAgfTtcblxuXHQgIC8vIHJ1bnMgY2FsbGJhY2sgZnVuY3Rpb25zXG5cdCAgdmFyIGZpcmVGdW5jdGlvbnMgPSBmdW5jdGlvbiBmaXJlRnVuY3Rpb25zKHR5cGUpIHtcblx0ICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBmdW5jdGlvbkxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0ICAgICAgaWYgKGZ1bmN0aW9uTGlzdFtpXS50eXBlID09PSB0eXBlKSB7XG5cdCAgICAgICAgZnVuY3Rpb25MaXN0W2ldLmZuLmNhbGwodW5kZWZpbmVkLCB0eXBlID09PSAnaW5wdXQnID8gY3VycmVudElucHV0IDogY3VycmVudEludGVudCk7XG5cdCAgICAgIH1cblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLy8gZmluZHMgbWF0Y2hpbmcgZWxlbWVudCBpbiBhbiBvYmplY3Rcblx0ICB2YXIgb2JqUG9zID0gZnVuY3Rpb24gb2JqUG9zKG1hdGNoKSB7XG5cdCAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gZnVuY3Rpb25MaXN0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG5cdCAgICAgIGlmIChmdW5jdGlvbkxpc3RbaV0uZm4gPT09IG1hdGNoKSB7XG5cdCAgICAgICAgcmV0dXJuIGk7XG5cdCAgICAgIH1cblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgdmFyIGRldGVjdFNjcm9sbGluZyA9IGZ1bmN0aW9uIGRldGVjdFNjcm9sbGluZyhldmVudCkge1xuXHQgICAgaWYgKG1vdXNlUG9zLnggIT09IGV2ZW50LnNjcmVlblggfHwgbW91c2VQb3MueSAhPT0gZXZlbnQuc2NyZWVuWSkge1xuXHQgICAgICBpc1Njcm9sbGluZyA9IGZhbHNlO1xuXG5cdCAgICAgIG1vdXNlUG9zLnggPSBldmVudC5zY3JlZW5YO1xuXHQgICAgICBtb3VzZVBvcy55ID0gZXZlbnQuc2NyZWVuWTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIGlzU2Nyb2xsaW5nID0gdHJ1ZTtcblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLy8gbWFudWFsIHZlcnNpb24gb2YgYGNsb3Nlc3QoKWBcblx0ICB2YXIgY2hlY2tDbG9zZXN0ID0gZnVuY3Rpb24gY2hlY2tDbG9zZXN0KGVsZW0sIHRhZykge1xuXHQgICAgdmFyIEVsZW1lbnRQcm90b3R5cGUgPSB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGU7XG5cblx0ICAgIGlmICghRWxlbWVudFByb3RvdHlwZS5tYXRjaGVzKSB7XG5cdCAgICAgIEVsZW1lbnRQcm90b3R5cGUubWF0Y2hlcyA9IEVsZW1lbnRQcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3IgfHwgRWxlbWVudFByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3I7XG5cdCAgICB9XG5cblx0ICAgIGlmICghRWxlbWVudFByb3RvdHlwZS5jbG9zZXN0KSB7XG5cdCAgICAgIGRvIHtcblx0ICAgICAgICBpZiAoZWxlbS5tYXRjaGVzKHRhZykpIHtcblx0ICAgICAgICAgIHJldHVybiBlbGVtO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGVsZW0gPSBlbGVtLnBhcmVudEVsZW1lbnQgfHwgZWxlbS5wYXJlbnROb2RlO1xuXHQgICAgICB9IHdoaWxlIChlbGVtICE9PSBudWxsICYmIGVsZW0ubm9kZVR5cGUgPT09IDEpO1xuXG5cdCAgICAgIHJldHVybiBudWxsO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgcmV0dXJuIGVsZW0uY2xvc2VzdCh0YWcpO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvKlxuXHQgICAqIGluaXRcblx0ICAgKi9cblxuXHQgIC8vIGRvbid0IHN0YXJ0IHNjcmlwdCB1bmxlc3MgYnJvd3NlciBjdXRzIHRoZSBtdXN0YXJkXG5cdCAgLy8gKGFsc28gcGFzc2VzIGlmIHBvbHlmaWxscyBhcmUgdXNlZClcblx0ICBpZiAoJ2FkZEV2ZW50TGlzdGVuZXInIGluIHdpbmRvdyAmJiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZikge1xuXHQgICAgc2V0VXAoKTtcblx0ICB9XG5cblx0ICAvKlxuXHQgICAqIGFwaVxuXHQgICAqL1xuXG5cdCAgcmV0dXJuIHtcblx0ICAgIC8vIHJldHVybnMgc3RyaW5nOiB0aGUgY3VycmVudCBpbnB1dCB0eXBlXG5cdCAgICAvLyBvcHQ6ICdpbnRlbnQnfCdpbnB1dCdcblx0ICAgIC8vICdpbnB1dCcgKGRlZmF1bHQpOiByZXR1cm5zIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBgZGF0YS13aGF0aW5wdXRgIGF0dHJpYnV0ZVxuXHQgICAgLy8gJ2ludGVudCc6IGluY2x1ZGVzIGBkYXRhLXdoYXRpbnRlbnRgIHZhbHVlIGlmIGl0J3MgZGlmZmVyZW50IHRoYW4gYGRhdGEtd2hhdGlucHV0YFxuXHQgICAgYXNrOiBmdW5jdGlvbiBhc2sob3B0KSB7XG5cdCAgICAgIHJldHVybiBvcHQgPT09ICdpbnRlbnQnID8gY3VycmVudEludGVudCA6IGN1cnJlbnRJbnB1dDtcblx0ICAgIH0sXG5cblx0ICAgIC8vIHJldHVybnMgc3RyaW5nOiB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCBvciBudWxsXG5cdCAgICBlbGVtZW50OiBmdW5jdGlvbiBlbGVtZW50KCkge1xuXHQgICAgICByZXR1cm4gY3VycmVudEVsZW1lbnQ7XG5cdCAgICB9LFxuXG5cdCAgICAvLyBvdmVyd3JpdGVzIGlnbm9yZWQga2V5cyB3aXRoIHByb3ZpZGVkIGFycmF5XG5cdCAgICBpZ25vcmVLZXlzOiBmdW5jdGlvbiBpZ25vcmVLZXlzKGFycikge1xuXHQgICAgICBpZ25vcmVNYXAgPSBhcnI7XG5cdCAgICB9LFxuXG5cdCAgICAvLyBvdmVyd3JpdGVzIHNwZWNpZmljIGNoYXIga2V5cyB0byB1cGRhdGUgb25cblx0ICAgIHNwZWNpZmljS2V5czogZnVuY3Rpb24gc3BlY2lmaWNLZXlzKGFycikge1xuXHQgICAgICBzcGVjaWZpY01hcCA9IGFycjtcblx0ICAgIH0sXG5cblx0ICAgIC8vIGF0dGFjaCBmdW5jdGlvbnMgdG8gaW5wdXQgYW5kIGludGVudCBcImV2ZW50c1wiXG5cdCAgICAvLyBmdW5jdDogZnVuY3Rpb24gdG8gZmlyZSBvbiBjaGFuZ2Vcblx0ICAgIC8vIGV2ZW50VHlwZTogJ2lucHV0J3wnaW50ZW50J1xuXHQgICAgcmVnaXN0ZXJPbkNoYW5nZTogZnVuY3Rpb24gcmVnaXN0ZXJPbkNoYW5nZShmbiwgZXZlbnRUeXBlKSB7XG5cdCAgICAgIGZ1bmN0aW9uTGlzdC5wdXNoKHtcblx0ICAgICAgICBmbjogZm4sXG5cdCAgICAgICAgdHlwZTogZXZlbnRUeXBlIHx8ICdpbnB1dCdcblx0ICAgICAgfSk7XG5cdCAgICB9LFxuXG5cdCAgICB1blJlZ2lzdGVyT25DaGFuZ2U6IGZ1bmN0aW9uIHVuUmVnaXN0ZXJPbkNoYW5nZShmbikge1xuXHQgICAgICB2YXIgcG9zaXRpb24gPSBvYmpQb3MoZm4pO1xuXG5cdCAgICAgIGlmIChwb3NpdGlvbiB8fCBwb3NpdGlvbiA9PT0gMCkge1xuXHQgICAgICAgIGZ1bmN0aW9uTGlzdC5zcGxpY2UocG9zaXRpb24sIDEpO1xuXHQgICAgICB9XG5cdCAgICB9LFxuXG5cdCAgICBjbGVhclN0b3JhZ2U6IGZ1bmN0aW9uIGNsZWFyU3RvcmFnZSgpIHtcblx0ICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG5cdCAgICB9XG5cdCAgfTtcblx0fSgpO1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSlcbn0pO1xuOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///474\n")}},__webpack_module_cache__={};function __webpack_require__(n){var e=__webpack_module_cache__[n];if(void 0!==e)return e.exports;var t=__webpack_module_cache__[n]={exports:{}};return __webpack_modules__[n].call(t.exports,t,t.exports,__webpack_require__),t.exports}__webpack_require__.d=(n,e)=>{for(var t in e)__webpack_require__.o(e,t)&&!__webpack_require__.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:e[t]})},__webpack_require__.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),__webpack_require__.r=n=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(45);QPPStyle=__webpack_exports__})();