react-magma-dom 4.11.0-next.15 → 4.11.0-next.17
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/components/TreeView/TreeItem.d.ts +5 -1
- package/dist/components/TreeView/TreeItemContext.d.ts +0 -1
- package/dist/components/TreeView/TreeItemHierarchyContext.d.ts +14 -0
- package/dist/components/TreeView/TreeView.d.ts +15 -0
- package/dist/components/TreeView/TreeViewConfigContext.d.ts +17 -0
- package/dist/components/TreeView/TreeViewExpansionContext.d.ts +8 -0
- package/dist/components/TreeView/TreeViewSelectionContext.d.ts +25 -0
- package/dist/components/TreeView/index.d.ts +3 -0
- package/dist/components/TreeView/treeViewReducer.d.ts +94 -0
- package/dist/components/TreeView/useTreeItem.d.ts +1 -2
- package/dist/components/TreeView/useTreeView.d.ts +18 -13
- package/dist/components/TreeView/utils.d.ts +5 -4
- package/dist/esm/index.js +1521 -565
- package/dist/esm/index.js.map +1 -1
- package/dist/properties.json +1801 -6
- package/dist/react-magma-dom.cjs.development.js +1096 -555
- package/dist/react-magma-dom.cjs.development.js.map +1 -1
- package/dist/react-magma-dom.cjs.production.min.js +1 -1
- package/dist/react-magma-dom.cjs.production.min.js.map +1 -1
- package/package.json +2 -1
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { css, keyframes, ClassNames, jsx, Global } from '@emotion/react';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import React__default, { createContext, useContext, forwardRef, createElement, Children, useMemo, cloneElement, Fragment, useState, useRef, useEffect, useCallback, useLayoutEffect, isValidElement } from 'react';
|
|
3
|
+
import React__default, { createContext, useContext, forwardRef, createElement, Children, useMemo, cloneElement, Fragment, useState, useRef, useEffect, useCallback, useLayoutEffect, isValidElement, memo, useReducer } from 'react';
|
|
4
4
|
import { v4 } from 'uuid';
|
|
5
5
|
import _styled from '@emotion/styled/base';
|
|
6
6
|
import { AutoAwesomeIcon, CloseIcon, InfoIcon, CheckCircleIcon, WarningIcon, ErrorIcon, ChevronRightIcon, ClearIcon, CheckBoxIcon, CheckBoxOutlineBlankIcon, IndeterminateCheckBoxIcon, NorthIcon, SouthIcon, SortDoubleArrowIcon, ArrowDropDownIcon, WestIcon, EastIcon, KeyboardArrowLeftIcon, KeyboardArrowRightIcon, ArrowBackIcon, KeyboardIcon, EventIcon, ScheduleIcon, ArrowDropUpIcon, ArrowRightIcon, ArrowLeftIcon, CheckIcon, ExpandMoreIcon, ExpandLessIcon, ArrowBackIosIcon, ArrowForwardIosIcon, ArrowForwardIcon, RadioButtonCheckedIcon, RadioButtonUncheckedIcon, SearchIcon, CancelIcon, FolderIcon, ArticleIcon } from 'react-magma-icons';
|
|
@@ -14357,8 +14357,8 @@ var StyledCard$3 = /*#__PURE__*/_styled(Card, {
|
|
|
14357
14357
|
}, " 0;transition:opacity 0.3s;white-space:nowrap;&:focus{outline:2px solid ", function (props) {
|
|
14358
14358
|
return props.isInverse ? props.theme.colors.focusInverse : props.theme.colors.focus;
|
|
14359
14359
|
}, ";outline-offset:0;}", function (props) {
|
|
14360
|
-
return props.width && /*#__PURE__*/css("white-space:normal;width:", props.width, ";;label:StyledCard;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyb3Bkb3duQ29udGVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJRIiwiZmlsZSI6IkRyb3Bkb3duQ29udGVudC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBDYXJkIH0gZnJvbSAnLi4vQ2FyZCc7XHJcbmltcG9ydCB7IERyb3Bkb3duQ29udGV4dCwgfSBmcm9tICcuL0Ryb3Bkb3duJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgdXNlRm9ya2VkUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5jb25zdCBTdHlsZWRDYXJkID0gc3R5bGVkKENhcmQpIGBcbiAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLnByaW1hcnk1MDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5pc09wZW4gPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIG1heC1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMubWF4SGVpZ2h0ID8gcHJvcHMubWF4SGVpZ2h0IDogcHJvcHMudGhlbWUuZHJvcGRvd24uY29udGVudC5tYXhIZWlnaHR9O1xuICBvcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy5pc09wZW4gPyAnMScgOiAnMCcpfTtcbiAgb3V0bGluZTogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30gMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgfVxuXG4gICR7cHJvcHMgPT4gcHJvcHMud2lkdGggJiZcclxuICAgIGNzcyBgXG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgd2lkdGg6ICR7cHJvcHMud2lkdGh9O1xuICAgIGB9XG5gO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25Db250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgdGVzdElkLCBpZCwgLi4ub3RoZXIgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRHJvcGRvd25Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgY29udGV4dC5tZW51UmVmKTtcclxuICAgIGxldCBoYXNJdGVtQ2hpbGRyZW4gPSBmYWxzZTtcclxuICAgIC8vIEZvciBFeHBhbmRhYmxlIERyb3Bkb3ducyB0aGF0IGRvbid0IHJlcXVpcmUgYSBtYXgtaGVpZ2h0XHJcbiAgICBsZXQgaGFzRXhwYW5kYWJsZUl0ZW1zID0gZmFsc2U7XHJcbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcclxuICAgICAgICBpZiAoY2hpbGQ/LnR5cGU/LmRpc3BsYXlOYW1lID09PSAnRHJvcGRvd25NZW51SXRlbScgfHxcclxuICAgICAgICAgICAgY2hpbGQ/LnR5cGU/LmRpc3BsYXlOYW1lID09PSAnRHJvcGRvd25NZW51R3JvdXAnKSB7XHJcbiAgICAgICAgICAgIGhhc0l0ZW1DaGlsZHJlbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjaGlsZC50eXBlPy5kaXNwbGF5TmFtZSA9PT0gJ0Ryb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cCcpIHtcclxuICAgICAgICAgICAgaGFzRXhwYW5kYWJsZUl0ZW1zID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtdGVzdGlkXCI6ICdkcm9wZG93bkNvbnRlbnRXcmFwcGVyJywgaWQ6IChpZCA/PyBjb250ZXh0LmRyb3Bkb3duQnV0dG9uSWQuY3VycmVudCkgKyAnX2Ryb3Bkb3duTWVudUlkJywgcmVmOiBlbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuaXNPcGVuICYmIGNvbnRleHQuc2V0RmxvYXRpbmcoZWwpO1xyXG4gICAgICAgIH0sIFxyXG4gICAgICAgIC8vIHotaW5kZXggOTk2IGlzIHVzZWQgdG8gbWFrZSB0aGUgY29udGVudCBhcHBlYXIgYWJvdmUgZG9jcyBlbGVtZW50cyAoY29kZSBibG9ja3MpXHJcbiAgICAgICAgLy8gYW5kIGJlbG93IHRoZSBNb2RhbCBjb21wb25lbnQgKHotaW5kZXggOTk3KVxyXG4gICAgICAgIHN0eWxlOiB7IC4uLmNvbnRleHQuZmxvYXRpbmdTdHlsZXMsIHpJbmRleDogJzk5NicgfSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2FyZCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgYWxpZ25tZW50OiBjb250ZXh0LmFsaWdubWVudCwgZHJvcERpcmVjdGlvbjogY29udGV4dC5kcm9wRGlyZWN0aW9uLCBoYXNEcm9wU2hhZG93OiB0cnVlLCBpc0ludmVyc2U6IGNvbnRleHQuaXNJbnZlcnNlLCBpc09wZW46IGNvbnRleHQuaXNPcGVuLCBtYXhIZWlnaHQ6IGNvbnRleHQubWF4SGVpZ2h0LCByZWY6IHJlZiwgc3R5bGU6IGhhc0V4cGFuZGFibGVJdGVtc1xyXG4gICAgICAgICAgICAgICAgPyB7IG1heEhlaWdodDogJ2luaGVyaXQnLCBvdmVyZmxvdzogJ2hpZGRlbicgfVxyXG4gICAgICAgICAgICAgICAgOiBwcm9wcy5zdHlsZSwgdGFiSW5kZXg6IC0xLCB0ZXN0SWQ6IHRlc3RJZCA/PyAnZHJvcGRvd25Db250ZW50JywgdGhlbWU6IHRoZW1lLCB3aWR0aDogY29udGV4dC53aWR0aCB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGlkID8/
|
|
14361
|
-
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyb3Bkb3duQ29udGVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT2dDIiwiZmlsZSI6IkRyb3Bkb3duQ29udGVudC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBDYXJkIH0gZnJvbSAnLi4vQ2FyZCc7XHJcbmltcG9ydCB7IERyb3Bkb3duQ29udGV4dCwgfSBmcm9tICcuL0Ryb3Bkb3duJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgdXNlRm9ya2VkUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5jb25zdCBTdHlsZWRDYXJkID0gc3R5bGVkKENhcmQpIGBcbiAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLnByaW1hcnk1MDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5pc09wZW4gPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIG1heC1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMubWF4SGVpZ2h0ID8gcHJvcHMubWF4SGVpZ2h0IDogcHJvcHMudGhlbWUuZHJvcGRvd24uY29udGVudC5tYXhIZWlnaHR9O1xuICBvcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy5pc09wZW4gPyAnMScgOiAnMCcpfTtcbiAgb3V0bGluZTogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30gMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgfVxuXG4gICR7cHJvcHMgPT4gcHJvcHMud2lkdGggJiZcclxuICAgIGNzcyBgXG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgd2lkdGg6ICR7cHJvcHMud2lkdGh9O1xuICAgIGB9XG5gO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25Db250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgdGVzdElkLCBpZCwgLi4ub3RoZXIgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRHJvcGRvd25Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgY29udGV4dC5tZW51UmVmKTtcclxuICAgIGxldCBoYXNJdGVtQ2hpbGRyZW4gPSBmYWxzZTtcclxuICAgIC8vIEZvciBFeHBhbmRhYmxlIERyb3Bkb3ducyB0aGF0IGRvbid0IHJlcXVpcmUgYSBtYXgtaGVpZ2h0XHJcbiAgICBsZXQgaGFzRXhwYW5kYWJsZUl0ZW1zID0gZmFsc2U7XHJcbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcclxuICAgICAgICBpZiAoY2hpbGQ/LnR5cGU/LmRpc3BsYXlOYW1lID09PSAnRHJvcGRvd25NZW51SXRlbScgfHxcclxuICAgICAgICAgICAgY2hpbGQ/LnR5cGU/LmRpc3BsYXlOYW1lID09PSAnRHJvcGRvd25NZW51R3JvdXAnKSB7XHJcbiAgICAgICAgICAgIGhhc0l0ZW1DaGlsZHJlbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjaGlsZC50eXBlPy5kaXNwbGF5TmFtZSA9PT0gJ0Ryb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cCcpIHtcclxuICAgICAgICAgICAgaGFzRXhwYW5kYWJsZUl0ZW1zID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtdGVzdGlkXCI6ICdkcm9wZG93bkNvbnRlbnRXcmFwcGVyJywgaWQ6IChpZCA/PyBjb250ZXh0LmRyb3Bkb3duQnV0dG9uSWQuY3VycmVudCkgKyAnX2Ryb3Bkb3duTWVudUlkJywgcmVmOiBlbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuaXNPcGVuICYmIGNvbnRleHQuc2V0RmxvYXRpbmcoZWwpO1xyXG4gICAgICAgIH0sIFxyXG4gICAgICAgIC8vIHotaW5kZXggOTk2IGlzIHVzZWQgdG8gbWFrZSB0aGUgY29udGVudCBhcHBlYXIgYWJvdmUgZG9jcyBlbGVtZW50cyAoY29kZSBibG9ja3MpXHJcbiAgICAgICAgLy8gYW5kIGJlbG93IHRoZSBNb2RhbCBjb21wb25lbnQgKHotaW5kZXggOTk3KVxyXG4gICAgICAgIHN0eWxlOiB7IC4uLmNvbnRleHQuZmxvYXRpbmdTdHlsZXMsIHpJbmRleDogJzk5NicgfSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2FyZCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgYWxpZ25tZW50OiBjb250ZXh0LmFsaWdubWVudCwgZHJvcERpcmVjdGlvbjogY29udGV4dC5kcm9wRGlyZWN0aW9uLCBoYXNEcm9wU2hhZG93OiB0cnVlLCBpc0ludmVyc2U6IGNvbnRleHQuaXNJbnZlcnNlLCBpc09wZW46IGNvbnRleHQuaXNPcGVuLCBtYXhIZWlnaHQ6IGNvbnRleHQubWF4SGVpZ2h0LCByZWY6IHJlZiwgc3R5bGU6IGhhc0V4cGFuZGFibGVJdGVtc1xyXG4gICAgICAgICAgICAgICAgPyB7IG1heEhlaWdodDogJ2luaGVyaXQnLCBvdmVyZmxvdzogJ2hpZGRlbicgfVxyXG4gICAgICAgICAgICAgICAgOiBwcm9wcy5zdHlsZSwgdGFiSW5kZXg6IC0xLCB0ZXN0SWQ6IHRlc3RJZCA/PyAnZHJvcGRvd25Db250ZW50JywgdGhlbWU6IHRoZW1lLCB3aWR0aDogY29udGV4dC53aWR0aCB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGlkID8/
|
|
14360
|
+
return props.width && /*#__PURE__*/css("white-space:normal;width:", props.width, ";;label:StyledCard;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyb3Bkb3duQ29udGVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJRIiwiZmlsZSI6IkRyb3Bkb3duQ29udGVudC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBDYXJkIH0gZnJvbSAnLi4vQ2FyZCc7XHJcbmltcG9ydCB7IERyb3Bkb3duQ29udGV4dCwgfSBmcm9tICcuL0Ryb3Bkb3duJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgdXNlRm9ya2VkUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5jb25zdCBTdHlsZWRDYXJkID0gc3R5bGVkKENhcmQpIGBcbiAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLnByaW1hcnk1MDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5pc09wZW4gPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIG1heC1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMubWF4SGVpZ2h0ID8gcHJvcHMubWF4SGVpZ2h0IDogcHJvcHMudGhlbWUuZHJvcGRvd24uY29udGVudC5tYXhIZWlnaHR9O1xuICBvcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy5pc09wZW4gPyAnMScgOiAnMCcpfTtcbiAgb3V0bGluZTogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30gMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgfVxuXG4gICR7cHJvcHMgPT4gcHJvcHMud2lkdGggJiZcclxuICAgIGNzcyBgXG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgd2lkdGg6ICR7cHJvcHMud2lkdGh9O1xuICAgIGB9XG5gO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25Db250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgdGVzdElkLCBpZCwgLi4ub3RoZXIgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRHJvcGRvd25Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgY29udGV4dC5tZW51UmVmKTtcclxuICAgIGxldCBoYXNJdGVtQ2hpbGRyZW4gPSBmYWxzZTtcclxuICAgIC8vIEZvciBFeHBhbmRhYmxlIERyb3Bkb3ducyB0aGF0IGRvbid0IHJlcXVpcmUgYSBtYXgtaGVpZ2h0XHJcbiAgICBsZXQgaGFzRXhwYW5kYWJsZUl0ZW1zID0gZmFsc2U7XHJcbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcclxuICAgICAgICBpZiAoY2hpbGQ/LnR5cGU/LmRpc3BsYXlOYW1lID09PSAnRHJvcGRvd25NZW51SXRlbScgfHxcclxuICAgICAgICAgICAgY2hpbGQ/LnR5cGU/LmRpc3BsYXlOYW1lID09PSAnRHJvcGRvd25NZW51R3JvdXAnKSB7XHJcbiAgICAgICAgICAgIGhhc0l0ZW1DaGlsZHJlbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjaGlsZC50eXBlPy5kaXNwbGF5TmFtZSA9PT0gJ0Ryb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cCcpIHtcclxuICAgICAgICAgICAgaGFzRXhwYW5kYWJsZUl0ZW1zID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtdGVzdGlkXCI6ICdkcm9wZG93bkNvbnRlbnRXcmFwcGVyJywgaWQ6IChpZCA/PyBjb250ZXh0LmRyb3Bkb3duQnV0dG9uSWQuY3VycmVudCkgKyAnX2Ryb3Bkb3duTWVudUlkJywgcmVmOiBlbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuaXNPcGVuICYmIGNvbnRleHQuc2V0RmxvYXRpbmcoZWwpO1xyXG4gICAgICAgIH0sIFxyXG4gICAgICAgIC8vIHotaW5kZXggOTk2IGlzIHVzZWQgdG8gbWFrZSB0aGUgY29udGVudCBhcHBlYXIgYWJvdmUgZG9jcyBlbGVtZW50cyAoY29kZSBibG9ja3MpXHJcbiAgICAgICAgLy8gYW5kIGJlbG93IHRoZSBNb2RhbCBjb21wb25lbnQgKHotaW5kZXggOTk3KVxyXG4gICAgICAgIHN0eWxlOiB7IC4uLmNvbnRleHQuZmxvYXRpbmdTdHlsZXMsIHpJbmRleDogJzk5NicgfSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2FyZCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgYWxpZ25tZW50OiBjb250ZXh0LmFsaWdubWVudCwgZHJvcERpcmVjdGlvbjogY29udGV4dC5kcm9wRGlyZWN0aW9uLCBoYXNEcm9wU2hhZG93OiB0cnVlLCBpc0ludmVyc2U6IGNvbnRleHQuaXNJbnZlcnNlLCBpc09wZW46IGNvbnRleHQuaXNPcGVuLCBtYXhIZWlnaHQ6IGNvbnRleHQubWF4SGVpZ2h0LCByZWY6IHJlZiwgc3R5bGU6IGhhc0V4cGFuZGFibGVJdGVtc1xyXG4gICAgICAgICAgICAgICAgPyB7IG1heEhlaWdodDogJ2luaGVyaXQnLCBvdmVyZmxvdzogJ2hpZGRlbicgfVxyXG4gICAgICAgICAgICAgICAgOiBwcm9wcy5zdHlsZSwgdGFiSW5kZXg6IC0xLCB0ZXN0SWQ6IHRlc3RJZCA/PyAnZHJvcGRvd25Db250ZW50JywgdGhlbWU6IHRoZW1lLCB3aWR0aDogY29udGV4dC53aWR0aCB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGlkID8/IGNvbnRleHQuZHJvcGRvd25CdXR0b25JZC5jdXJyZW50LCByb2xlOiBoYXNJdGVtQ2hpbGRyZW4gfHwgaGFzRXhwYW5kYWJsZUl0ZW1zID8gJ21lbnUnIDogbnVsbCB9LCBjaGlsZHJlbikpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ecm9wZG93bkNvbnRlbnQuanMubWFwIl19 */"));
|
|
14361
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyb3Bkb3duQ29udGVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT2dDIiwiZmlsZSI6IkRyb3Bkb3duQ29udGVudC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBDYXJkIH0gZnJvbSAnLi4vQ2FyZCc7XHJcbmltcG9ydCB7IERyb3Bkb3duQ29udGV4dCwgfSBmcm9tICcuL0Ryb3Bkb3duJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgdXNlRm9ya2VkUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5jb25zdCBTdHlsZWRDYXJkID0gc3R5bGVkKENhcmQpIGBcbiAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLnByaW1hcnk1MDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDB9O1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5pc09wZW4gPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIG1heC1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMubWF4SGVpZ2h0ID8gcHJvcHMubWF4SGVpZ2h0IDogcHJvcHMudGhlbWUuZHJvcGRvd24uY29udGVudC5tYXhIZWlnaHR9O1xuICBvcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy5pc09wZW4gPyAnMScgOiAnMCcpfTtcbiAgb3V0bGluZTogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30gMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAycHggc29saWRcbiAgICAgICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICBvdXRsaW5lLW9mZnNldDogMDtcbiAgfVxuXG4gICR7cHJvcHMgPT4gcHJvcHMud2lkdGggJiZcclxuICAgIGNzcyBgXG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgd2lkdGg6ICR7cHJvcHMud2lkdGh9O1xuICAgIGB9XG5gO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25Db250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgdGVzdElkLCBpZCwgLi4ub3RoZXIgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRHJvcGRvd25Db250ZXh0KTtcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgY29udGV4dC5tZW51UmVmKTtcclxuICAgIGxldCBoYXNJdGVtQ2hpbGRyZW4gPSBmYWxzZTtcclxuICAgIC8vIEZvciBFeHBhbmRhYmxlIERyb3Bkb3ducyB0aGF0IGRvbid0IHJlcXVpcmUgYSBtYXgtaGVpZ2h0XHJcbiAgICBsZXQgaGFzRXhwYW5kYWJsZUl0ZW1zID0gZmFsc2U7XHJcbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcclxuICAgICAgICBpZiAoY2hpbGQ/LnR5cGU/LmRpc3BsYXlOYW1lID09PSAnRHJvcGRvd25NZW51SXRlbScgfHxcclxuICAgICAgICAgICAgY2hpbGQ/LnR5cGU/LmRpc3BsYXlOYW1lID09PSAnRHJvcGRvd25NZW51R3JvdXAnKSB7XHJcbiAgICAgICAgICAgIGhhc0l0ZW1DaGlsZHJlbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjaGlsZC50eXBlPy5kaXNwbGF5TmFtZSA9PT0gJ0Ryb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cCcpIHtcclxuICAgICAgICAgICAgaGFzRXhwYW5kYWJsZUl0ZW1zID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBcImRhdGEtdGVzdGlkXCI6ICdkcm9wZG93bkNvbnRlbnRXcmFwcGVyJywgaWQ6IChpZCA/PyBjb250ZXh0LmRyb3Bkb3duQnV0dG9uSWQuY3VycmVudCkgKyAnX2Ryb3Bkb3duTWVudUlkJywgcmVmOiBlbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuaXNPcGVuICYmIGNvbnRleHQuc2V0RmxvYXRpbmcoZWwpO1xyXG4gICAgICAgIH0sIFxyXG4gICAgICAgIC8vIHotaW5kZXggOTk2IGlzIHVzZWQgdG8gbWFrZSB0aGUgY29udGVudCBhcHBlYXIgYWJvdmUgZG9jcyBlbGVtZW50cyAoY29kZSBibG9ja3MpXHJcbiAgICAgICAgLy8gYW5kIGJlbG93IHRoZSBNb2RhbCBjb21wb25lbnQgKHotaW5kZXggOTk3KVxyXG4gICAgICAgIHN0eWxlOiB7IC4uLmNvbnRleHQuZmxvYXRpbmdTdHlsZXMsIHpJbmRleDogJzk5NicgfSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2FyZCwgT2JqZWN0LmFzc2lnbih7fSwgb3RoZXIsIHsgYWxpZ25tZW50OiBjb250ZXh0LmFsaWdubWVudCwgZHJvcERpcmVjdGlvbjogY29udGV4dC5kcm9wRGlyZWN0aW9uLCBoYXNEcm9wU2hhZG93OiB0cnVlLCBpc0ludmVyc2U6IGNvbnRleHQuaXNJbnZlcnNlLCBpc09wZW46IGNvbnRleHQuaXNPcGVuLCBtYXhIZWlnaHQ6IGNvbnRleHQubWF4SGVpZ2h0LCByZWY6IHJlZiwgc3R5bGU6IGhhc0V4cGFuZGFibGVJdGVtc1xyXG4gICAgICAgICAgICAgICAgPyB7IG1heEhlaWdodDogJ2luaGVyaXQnLCBvdmVyZmxvdzogJ2hpZGRlbicgfVxyXG4gICAgICAgICAgICAgICAgOiBwcm9wcy5zdHlsZSwgdGFiSW5kZXg6IC0xLCB0ZXN0SWQ6IHRlc3RJZCA/PyAnZHJvcGRvd25Db250ZW50JywgdGhlbWU6IHRoZW1lLCB3aWR0aDogY29udGV4dC53aWR0aCB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGlkID8/IGNvbnRleHQuZHJvcGRvd25CdXR0b25JZC5jdXJyZW50LCByb2xlOiBoYXNJdGVtQ2hpbGRyZW4gfHwgaGFzRXhwYW5kYWJsZUl0ZW1zID8gJ21lbnUnIDogbnVsbCB9LCBjaGlsZHJlbikpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ecm9wZG93bkNvbnRlbnQuanMubWFwIl19 */"));
|
|
14362
14362
|
var DropdownContent = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
14363
14363
|
var children = props.children,
|
|
14364
14364
|
testId = props.testId,
|
|
@@ -14409,7 +14409,7 @@ var DropdownContent = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
14409
14409
|
width: context.width
|
|
14410
14410
|
}), createElement("div", {
|
|
14411
14411
|
"aria-labelledby": id != null ? id : context.dropdownButtonId.current,
|
|
14412
|
-
role: hasItemChildren ? 'menu' : null
|
|
14412
|
+
role: hasItemChildren || hasExpandableItems ? 'menu' : null
|
|
14413
14413
|
}, children)));
|
|
14414
14414
|
});
|
|
14415
14415
|
|
|
@@ -15653,7 +15653,7 @@ var StyledPanel = /*#__PURE__*/_styled("div", {
|
|
|
15653
15653
|
return props.theme.bodyFont;
|
|
15654
15654
|
}, ";padding:", function (props) {
|
|
15655
15655
|
return props.theme.spaceScale.spacing03 + " " + props.theme.spaceScale.spacing05 + " " + props.theme.spaceScale.spacing04;
|
|
15656
|
-
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFjY29yZGlvblBhbmVsLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNK0IiLCJmaWxlIjoiQWNjb3JkaW9uUGFuZWwudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IEFjY29yZGlvbkl0ZW1Db250ZXh0IH0gZnJvbSAnLi91c2VBY2NvcmRpb25JdGVtJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuY29uc3QgU3R5bGVkUGFuZWwgPSBzdHlsZWQuZGl2IGBcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBgJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH1gfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBBY2NvcmRpb25QYW5lbCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+
|
|
15656
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFjY29yZGlvblBhbmVsLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNK0IiLCJmaWxlIjoiQWNjb3JkaW9uUGFuZWwudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IEFjY29yZGlvbkl0ZW1Db250ZXh0IH0gZnJvbSAnLi91c2VBY2NvcmRpb25JdGVtJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuY29uc3QgU3R5bGVkUGFuZWwgPSBzdHlsZWQuZGl2IGBcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDcwMH07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJvZHlGb250fTtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBgJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNH1gfTtcbmA7XHJcbmV4cG9ydCBjb25zdCBBY2NvcmRpb25QYW5lbCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4sIHRlc3RJZCwgaXNJbnZlcnNlOiBpc0ludmVyc2VQcm9wLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdXNlSXNJbnZlcnNlKGlzSW52ZXJzZVByb3ApO1xyXG4gICAgY29uc3QgeyBidXR0b25JZCwgaXNFeHBhbmRlZCwgcGFuZWxJZCB9ID0gUmVhY3QudXNlQ29udGV4dChBY2NvcmRpb25JdGVtQ29udGV4dCk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJhbnNpdGlvbiwgeyBpc09wZW46IGlzRXhwYW5kZWQsIGNvbGxhcHNlOiB0cnVlLCB1bm1vdW50T25FeGl0OiB0cnVlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRQYW5lbCwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBcImFyaWEtaGlkZGVuXCI6ICFpc0V4cGFuZGVkLCBcImFyaWEtbGFiZWxsZWRieVwiOiBidXR0b25JZCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGlkOiBwYW5lbElkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgcmVmOiByZWYsIHRoZW1lOiB0aGVtZSB9KSwgY2hpbGRyZW4pKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1BY2NvcmRpb25QYW5lbC5qcy5tYXAiXX0= */"));
|
|
15657
15657
|
var AccordionPanel = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
15658
15658
|
var children = props.children,
|
|
15659
15659
|
testId = props.testId,
|
|
@@ -15662,6 +15662,7 @@ var AccordionPanel = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
15662
15662
|
var theme = useContext(ThemeContext);
|
|
15663
15663
|
var isInverse = useIsInverse(isInverseProp);
|
|
15664
15664
|
var _React$useContext = useContext(AccordionItemContext),
|
|
15665
|
+
buttonId = _React$useContext.buttonId,
|
|
15665
15666
|
isExpanded = _React$useContext.isExpanded,
|
|
15666
15667
|
panelId = _React$useContext.panelId;
|
|
15667
15668
|
return createElement(Transition, {
|
|
@@ -15670,6 +15671,7 @@ var AccordionPanel = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
15670
15671
|
unmountOnExit: true
|
|
15671
15672
|
}, createElement(StyledPanel, Object.assign({}, rest, {
|
|
15672
15673
|
"aria-hidden": !isExpanded,
|
|
15674
|
+
"aria-labelledby": buttonId,
|
|
15673
15675
|
"data-testid": testId,
|
|
15674
15676
|
id: panelId,
|
|
15675
15677
|
isInverse: isInverse,
|
|
@@ -15688,7 +15690,7 @@ var StyledAccordion$1 = /*#__PURE__*/_styled(Accordion, {
|
|
|
15688
15690
|
styles: "border:none;padding:0"
|
|
15689
15691
|
} : {
|
|
15690
15692
|
name: "1rznqq0",
|
|
15691
|
-
styles: "border:none;padding:0/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSTBDIiwiZmlsZSI6IkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgQWNjb3JkaW9uLCBBY2NvcmRpb25JY29uUG9zaXRpb24gfSBmcm9tICcuLi9BY2NvcmRpb24nO1xyXG5pbXBvcnQgeyBEcm9wZG93bkNvbnRleHQgfSBmcm9tICcuL0Ryb3Bkb3duJztcclxuY29uc3QgU3R5bGVkQWNjb3JkaW9uID0gc3R5bGVkKEFjY29yZGlvbikgYFxuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG5gO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25FeHBhbmRhYmxlTWVudUdyb3VwQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe30pO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25FeHBhbmRhYmxlTWVudUdyb3VwID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgdGVzdElkLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEcm9wZG93bkNvbnRleHQpO1xyXG4gICAgbGV0IGV4cGFuZGFibGVNZW51QnV0dG9uSGFzSWNvbiA9IGZhbHNlO1xyXG4gICAgbGV0IGlzRXhwYW5kYWJsZVBhbmVsID0gZmFsc2U7XHJcbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcclxuICAgICAgICBpZiAoY2hpbGQudHlwZT8uZGlzcGxheU5hbWUgPT09ICdEcm9wZG93bkV4cGFuZGFibGVNZW51SXRlbScpIHtcclxuICAgICAgICAgICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZC5wcm9wcy5jaGlsZHJlbiwgKGMpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjLnR5cGU/
|
|
15693
|
+
styles: "border:none;padding:0/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSTBDIiwiZmlsZSI6IkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgQWNjb3JkaW9uLCBBY2NvcmRpb25JY29uUG9zaXRpb24gfSBmcm9tICcuLi9BY2NvcmRpb24nO1xyXG5pbXBvcnQgeyBEcm9wZG93bkNvbnRleHQgfSBmcm9tICcuL0Ryb3Bkb3duJztcclxuY29uc3QgU3R5bGVkQWNjb3JkaW9uID0gc3R5bGVkKEFjY29yZGlvbikgYFxuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG5gO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25FeHBhbmRhYmxlTWVudUdyb3VwQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe30pO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25FeHBhbmRhYmxlTWVudUdyb3VwID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgdGVzdElkLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEcm9wZG93bkNvbnRleHQpO1xyXG4gICAgbGV0IGV4cGFuZGFibGVNZW51QnV0dG9uSGFzSWNvbiA9IGZhbHNlO1xyXG4gICAgbGV0IGlzRXhwYW5kYWJsZVBhbmVsID0gZmFsc2U7XHJcbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcclxuICAgICAgICBpZiAoY2hpbGQudHlwZT8uZGlzcGxheU5hbWUgPT09ICdEcm9wZG93bkV4cGFuZGFibGVNZW51SXRlbScpIHtcclxuICAgICAgICAgICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZC5wcm9wcy5jaGlsZHJlbiwgKGMpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjLnR5cGU/LmRpc3BsYXlOYW1lID09PSAnRHJvcGRvd25FeHBhbmRhYmxlTWVudUJ1dHRvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYy5wcm9wcy5pY29uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGFibGVNZW51QnV0dG9uSGFzSWNvbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKSB7XHJcbiAgICAgICAgICAgICAgICBpc0V4cGFuZGFibGVQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChEcm9wZG93bkV4cGFuZGFibGVNZW51R3JvdXBDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IGV4cGFuZGFibGVNZW51QnV0dG9uSGFzSWNvbiwgaXNFeHBhbmRhYmxlUGFuZWwgfSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQWNjb3JkaW9uLCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBpY29uUG9zaXRpb246IEFjY29yZGlvbkljb25Qb3NpdGlvbi5yaWdodCwgaXNJbnZlcnNlOiBjb250ZXh0LmlzSW52ZXJzZSwgcmVmOiByZWYsIHRlc3RJZDogdGVzdElkIH0pLCBjaGlsZHJlbikpKTtcclxufSk7XHJcbkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cC5kaXNwbGF5TmFtZSA9ICdEcm9wZG93bkV4cGFuZGFibGVNZW51R3JvdXAnO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ecm9wZG93bkV4cGFuZGFibGVNZW51R3JvdXAuanMubWFwIl19 */",
|
|
15692
15694
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$s
|
|
15693
15695
|
});
|
|
15694
15696
|
var DropdownExpandableMenuGroupContext = /*#__PURE__*/createContext({});
|
|
@@ -15725,7 +15727,6 @@ var DropdownExpandableMenuGroup = /*#__PURE__*/forwardRef(function (props, ref)
|
|
|
15725
15727
|
iconPosition: AccordionIconPosition.right,
|
|
15726
15728
|
isInverse: context.isInverse,
|
|
15727
15729
|
ref: ref,
|
|
15728
|
-
role: "group",
|
|
15729
15730
|
testId: testId
|
|
15730
15731
|
}), children));
|
|
15731
15732
|
});
|
|
@@ -15759,7 +15760,7 @@ var StyledAccordionButton = /*#__PURE__*/_styled(AccordionButton, {
|
|
|
15759
15760
|
return !props.icon && props.expandableMenuButtonHasIcon ? props.theme.spaceScale.spacing03 + " " + props.theme.spaceScale.spacing05 + " " + props.theme.spaceScale.spacing03 + " " + props.theme.spaceScale.spacing11 : props.theme.spaceScale.spacing03 + " " + props.theme.spaceScale.spacing05;
|
|
15760
15761
|
}, ";margin:0;border-top:0;&:focus{outline-offset:-2px;}&:hover,&:focus{background:", function (props) {
|
|
15761
15762
|
return props.isMenuItemContextDisabled ? '' : menuBackground;
|
|
15762
|
-
}, ";}>span{display:flex;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
15763
|
+
}, ";}>span{display:flex;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVCdXR0b24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNzRCIsImZpbGUiOiJEcm9wZG93bkV4cGFuZGFibGVNZW51QnV0dG9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBBY2NvcmRpb25CdXR0b24sIEFjY29yZGlvbkl0ZW1Db250ZXh0LCB9IGZyb20gJy4uL0FjY29yZGlvbic7XHJcbmltcG9ydCB7IERyb3Bkb3duQ29udGV4dCB9IGZyb20gJy4vRHJvcGRvd24nO1xyXG5pbXBvcnQgeyBEcm9wZG93bkV4cGFuZGFibGVNZW51R3JvdXBDb250ZXh0IH0gZnJvbSAnLi9Ecm9wZG93bkV4cGFuZGFibGVNZW51R3JvdXAnO1xyXG5pbXBvcnQgeyBEcm9wZG93bkV4cGFuZGFibGVNZW51SXRlbUNvbnRleHQgfSBmcm9tICcuL0Ryb3Bkb3duRXhwYW5kYWJsZU1lbnVJdGVtJztcclxuaW1wb3J0IHsgSWNvbldyYXBwZXIsIG1lbnVCYWNrZ3JvdW5kIH0gZnJvbSAnLi9Ecm9wZG93bk1lbnVJdGVtJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgdXNlRm9ya2VkUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5jb25zdCBTdHlsZWRBY2NvcmRpb25CdXR0b24gPSBzdHlsZWQoQWNjb3JkaW9uQnV0dG9uKSBgXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBwYWRkaW5nOiAke3Byb3BzID0+ICFwcm9wcy5pY29uICYmIHByb3BzLmV4cGFuZGFibGVNZW51QnV0dG9uSGFzSWNvblxyXG4gICAgPyBgJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcxMX1gXHJcbiAgICA6IGAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA1fWB9O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci10b3A6IDA7XG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICB9XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gcHJvcHMuaXNNZW51SXRlbUNvbnRleHREaXNhYmxlZCA/ICcnIDogbWVudUJhY2tncm91bmR9O1xuICB9XG4gID4gc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuYDtcclxuY29uc3QgU3R5bGVkSWNvbldyYXBwZXIgPSBzdHlsZWQoSWNvbldyYXBwZXIpIGBcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25FeHBhbmRhYmxlTWVudUJ1dHRvbiA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGN1c3RvbU9uS2V5RG93biwgaWNvbiwgdGVzdElkLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KERyb3Bkb3duQ29udGV4dCk7XHJcbiAgICBjb25zdCBleHBhbmRhYmxlTWVudUdyb3VwQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRHJvcGRvd25FeHBhbmRhYmxlTWVudUdyb3VwQ29udGV4dCk7XHJcbiAgICBjb25zdCBleHBhbmRhYmxlTWVudUl0ZW1Db250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEcm9wZG93bkV4cGFuZGFibGVNZW51SXRlbUNvbnRleHQpO1xyXG4gICAgY29uc3QgeyBpc0V4cGFuZGVkIH0gPSBSZWFjdC51c2VDb250ZXh0KEFjY29yZGlvbkl0ZW1Db250ZXh0KTtcclxuICAgIGNvbnN0IG93blJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgb3duUmVmKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFleHBhbmRhYmxlTWVudUl0ZW1Db250ZXh0LmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQucmVnaXN0ZXJEcm9wZG93bk1lbnVJdGVtKGNvbnRleHQuaXRlbVJlZkFycmF5LCBvd25SZWYpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtdKTtcclxuICAgIC8vQWxsb3dzIGEgY3VzdG9tIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGEga2V5IGlzIHByZXNzZWQgdGhhdCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgQWNjb3JkaW9uQnV0dG9uIG9uS2V5RG93biBldmVudC5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUN1c3RvbU9uS2V5RG93bigpIHtcclxuICAgICAgICBpZiAoY3VzdG9tT25LZXlEb3duICYmIHR5cGVvZiBjdXN0b21PbktleURvd24gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGN1c3RvbU9uS2V5RG93bigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRBY2NvcmRpb25CdXR0b24sIE9iamVjdC5hc3NpZ24oe30sIG90aGVyLCB7IFwiYXJpYS1leHBhbmRlZFwiOiBpc0V4cGFuZGVkLCBcImFyaWEtaGFzcG9wdXBcIjogXCJ0cnVlXCIsIHJlZjogcmVmLCByb2xlOiBcIm1lbnVpdGVtXCIsIGN1c3RvbU9uS2V5RG93bjogaGFuZGxlQ3VzdG9tT25LZXlEb3duLCBpY29uOiBpY29uLCB0aGVtZTogdGhlbWUsIGV4cGFuZGFibGVNZW51QnV0dG9uSGFzSWNvbjogZXhwYW5kYWJsZU1lbnVHcm91cENvbnRleHQuZXhwYW5kYWJsZU1lbnVCdXR0b25IYXNJY29uLCBpc0ludmVyc2U6IGNvbnRleHQuaXNJbnZlcnNlLCBpc01lbnVJdGVtQ29udGV4dERpc2FibGVkOiBleHBhbmRhYmxlTWVudUl0ZW1Db250ZXh0LmRpc2FibGVkLCB0ZXN0SWQ6IHRlc3RJZCB9KSxcclxuICAgICAgICBpY29uICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEljb25XcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNJbnZlcnNlOiBjb250ZXh0LmlzSW52ZXJzZSB9LCBpY29uKSksXHJcbiAgICAgICAgY2hpbGRyZW4pKTtcclxufSk7XHJcbkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVCdXR0b24uZGlzcGxheU5hbWUgPSAnRHJvcGRvd25FeHBhbmRhYmxlTWVudUJ1dHRvbic7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyb3Bkb3duRXhwYW5kYWJsZU1lbnVCdXR0b24uanMubWFwIl19 */"));
|
|
15763
15764
|
var StyledIconWrapper = /*#__PURE__*/_styled(IconWrapper$7, {
|
|
15764
15765
|
target: "e1404z5f0",
|
|
15765
15766
|
label: "StyledIconWrapper"
|
|
@@ -15768,7 +15769,7 @@ var StyledIconWrapper = /*#__PURE__*/_styled(IconWrapper$7, {
|
|
|
15768
15769
|
styles: "justify-content:center"
|
|
15769
15770
|
} : {
|
|
15770
15771
|
name: "f7ay7b",
|
|
15771
|
-
styles: "justify-content:center/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
15772
|
+
styles: "justify-content:center/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVCdXR0b24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCOEMiLCJmaWxlIjoiRHJvcGRvd25FeHBhbmRhYmxlTWVudUJ1dHRvbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgQWNjb3JkaW9uQnV0dG9uLCBBY2NvcmRpb25JdGVtQ29udGV4dCwgfSBmcm9tICcuLi9BY2NvcmRpb24nO1xyXG5pbXBvcnQgeyBEcm9wZG93bkNvbnRleHQgfSBmcm9tICcuL0Ryb3Bkb3duJztcclxuaW1wb3J0IHsgRHJvcGRvd25FeHBhbmRhYmxlTWVudUdyb3VwQ29udGV4dCB9IGZyb20gJy4vRHJvcGRvd25FeHBhbmRhYmxlTWVudUdyb3VwJztcclxuaW1wb3J0IHsgRHJvcGRvd25FeHBhbmRhYmxlTWVudUl0ZW1Db250ZXh0IH0gZnJvbSAnLi9Ecm9wZG93bkV4cGFuZGFibGVNZW51SXRlbSc7XHJcbmltcG9ydCB7IEljb25XcmFwcGVyLCBtZW51QmFja2dyb3VuZCB9IGZyb20gJy4vRHJvcGRvd25NZW51SXRlbSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IHVzZUZvcmtlZFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuY29uc3QgU3R5bGVkQWNjb3JkaW9uQnV0dG9uID0gc3R5bGVkKEFjY29yZGlvbkJ1dHRvbikgYFxuICBmb250LXdlaWdodDogNDAwO1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiAhcHJvcHMuaWNvbiAmJiBwcm9wcy5leHBhbmRhYmxlTWVudUJ1dHRvbkhhc0ljb25cclxuICAgID8gYCR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDV9ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMTF9YFxyXG4gICAgOiBgJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX1gfTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItdG9wOiAwO1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgfVxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IHByb3BzLmlzTWVudUl0ZW1Db250ZXh0RGlzYWJsZWQgPyAnJyA6IG1lbnVCYWNrZ3JvdW5kfTtcbiAgfVxuICA+IHNwYW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbmA7XHJcbmNvbnN0IFN0eWxlZEljb25XcmFwcGVyID0gc3R5bGVkKEljb25XcmFwcGVyKSBgXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuYDtcclxuZXhwb3J0IGNvbnN0IERyb3Bkb3duRXhwYW5kYWJsZU1lbnVCdXR0b24gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjdXN0b21PbktleURvd24sIGljb24sIHRlc3RJZCwgLi4ub3RoZXIgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEcm9wZG93bkNvbnRleHQpO1xyXG4gICAgY29uc3QgZXhwYW5kYWJsZU1lbnVHcm91cENvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KERyb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cENvbnRleHQpO1xyXG4gICAgY29uc3QgZXhwYW5kYWJsZU1lbnVJdGVtQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRHJvcGRvd25FeHBhbmRhYmxlTWVudUl0ZW1Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgaXNFeHBhbmRlZCB9ID0gUmVhY3QudXNlQ29udGV4dChBY2NvcmRpb25JdGVtQ29udGV4dCk7XHJcbiAgICBjb25zdCBvd25SZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IHJlZiA9IHVzZUZvcmtlZFJlZihmb3J3YXJkZWRSZWYsIG93blJlZik7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmICghZXhwYW5kYWJsZU1lbnVJdGVtQ29udGV4dC5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBjb250ZXh0LnJlZ2lzdGVyRHJvcGRvd25NZW51SXRlbShjb250ZXh0Lml0ZW1SZWZBcnJheSwgb3duUmVmKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvL0FsbG93cyBhIGN1c3RvbSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBhIGtleSBpcyBwcmVzc2VkIHRoYXQgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IEFjY29yZGlvbkJ1dHRvbiBvbktleURvd24gZXZlbnQuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDdXN0b21PbktleURvd24oKSB7XHJcbiAgICAgICAgaWYgKGN1c3RvbU9uS2V5RG93biAmJiB0eXBlb2YgY3VzdG9tT25LZXlEb3duID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjdXN0b21PbktleURvd24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQWNjb3JkaW9uQnV0dG9uLCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBcImFyaWEtZXhwYW5kZWRcIjogaXNFeHBhbmRlZCwgXCJhcmlhLWhhc3BvcHVwXCI6IFwidHJ1ZVwiLCByZWY6IHJlZiwgcm9sZTogXCJtZW51aXRlbVwiLCBjdXN0b21PbktleURvd246IGhhbmRsZUN1c3RvbU9uS2V5RG93biwgaWNvbjogaWNvbiwgdGhlbWU6IHRoZW1lLCBleHBhbmRhYmxlTWVudUJ1dHRvbkhhc0ljb246IGV4cGFuZGFibGVNZW51R3JvdXBDb250ZXh0LmV4cGFuZGFibGVNZW51QnV0dG9uSGFzSWNvbiwgaXNJbnZlcnNlOiBjb250ZXh0LmlzSW52ZXJzZSwgaXNNZW51SXRlbUNvbnRleHREaXNhYmxlZDogZXhwYW5kYWJsZU1lbnVJdGVtQ29udGV4dC5kaXNhYmxlZCwgdGVzdElkOiB0ZXN0SWQgfSksXHJcbiAgICAgICAgaWNvbiAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJY29uV3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlzSW52ZXJzZTogY29udGV4dC5pc0ludmVyc2UgfSwgaWNvbikpLFxyXG4gICAgICAgIGNoaWxkcmVuKSk7XHJcbn0pO1xyXG5Ecm9wZG93bkV4cGFuZGFibGVNZW51QnV0dG9uLmRpc3BsYXlOYW1lID0gJ0Ryb3Bkb3duRXhwYW5kYWJsZU1lbnVCdXR0b24nO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ecm9wZG93bkV4cGFuZGFibGVNZW51QnV0dG9uLmpzLm1hcCJdfQ== */",
|
|
15772
15773
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$t
|
|
15773
15774
|
});
|
|
15774
15775
|
var DropdownExpandableMenuButton = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
@@ -15781,6 +15782,8 @@ var DropdownExpandableMenuButton = /*#__PURE__*/forwardRef(function (props, forw
|
|
|
15781
15782
|
var context = useContext(DropdownContext);
|
|
15782
15783
|
var expandableMenuGroupContext = useContext(DropdownExpandableMenuGroupContext);
|
|
15783
15784
|
var expandableMenuItemContext = useContext(DropdownExpandableMenuItemContext);
|
|
15785
|
+
var _React$useContext = useContext(AccordionItemContext),
|
|
15786
|
+
isExpanded = _React$useContext.isExpanded;
|
|
15784
15787
|
var ownRef = useRef();
|
|
15785
15788
|
var ref = useForkedRef(forwardedRef, ownRef);
|
|
15786
15789
|
useEffect(function () {
|
|
@@ -15795,7 +15798,10 @@ var DropdownExpandableMenuButton = /*#__PURE__*/forwardRef(function (props, forw
|
|
|
15795
15798
|
}
|
|
15796
15799
|
}
|
|
15797
15800
|
return createElement(StyledAccordionButton, Object.assign({}, other, {
|
|
15801
|
+
"aria-expanded": isExpanded,
|
|
15802
|
+
"aria-haspopup": "true",
|
|
15798
15803
|
ref: ref,
|
|
15804
|
+
role: "menuitem",
|
|
15799
15805
|
customOnKeyDown: handleCustomOnKeyDown,
|
|
15800
15806
|
icon: icon,
|
|
15801
15807
|
theme: theme,
|
|
@@ -15820,7 +15826,7 @@ var StyledAccordionPanel = /*#__PURE__*/_styled(AccordionPanel, {
|
|
|
15820
15826
|
styles: "padding:0"
|
|
15821
15827
|
} : {
|
|
15822
15828
|
name: "1hcx8jb",
|
|
15823
|
-
styles: "padding:0/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVQYW5lbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSW9EIiwiZmlsZSI6IkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVQYW5lbC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgQWNjb3JkaW9uUGFuZWwgfSBmcm9tICcuLi9BY2NvcmRpb24nO1xyXG5pbXBvcnQgeyBEcm9wZG93bkV4cGFuZGFibGVNZW51R3JvdXAgfSBmcm9tICcuL0Ryb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cCc7XHJcbmNvbnN0IFN0eWxlZEFjY29yZGlvblBhbmVsID0gc3R5bGVkKEFjY29yZGlvblBhbmVsKSBgXG4gIHBhZGRpbmc6IDA7XG5gO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25FeHBhbmRhYmxlTWVudVBhbmVsID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgdGVzdElkLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+
|
|
15829
|
+
styles: "padding:0/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVQYW5lbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSW9EIiwiZmlsZSI6IkRyb3Bkb3duRXhwYW5kYWJsZU1lbnVQYW5lbC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgQWNjb3JkaW9uUGFuZWwgfSBmcm9tICcuLi9BY2NvcmRpb24nO1xyXG5pbXBvcnQgeyBEcm9wZG93bkV4cGFuZGFibGVNZW51R3JvdXAgfSBmcm9tICcuL0Ryb3Bkb3duRXhwYW5kYWJsZU1lbnVHcm91cCc7XHJcbmNvbnN0IFN0eWxlZEFjY29yZGlvblBhbmVsID0gc3R5bGVkKEFjY29yZGlvblBhbmVsKSBgXG4gIHBhZGRpbmc6IDA7XG5gO1xyXG5leHBvcnQgY29uc3QgRHJvcGRvd25FeHBhbmRhYmxlTWVudVBhbmVsID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgdGVzdElkLCAuLi5vdGhlciB9ID0gcHJvcHM7XHJcbiAgICBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcclxuICAgICAgICBjb25zdCBpdGVtID0gY2hpbGQ7XHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gRHJvcGRvd25FeHBhbmRhYmxlTWVudUdyb3VwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgXG4gICAgICBSZWFjdCBNYWdtYSBXYXJuaW5nOiBPbmx5IG9uZSBncm91cCBsZXZlbCBpcyBzdXBwb3J0ZWQgZm9yIEV4cGFuZGFibGUgRHJvcGRvd25zLCBhbnl0aGluZyBuZXN0ZWQgdHdvIGxldmVscyBvciBtb3JlIGlzbid0IGFjY291bnRlZCBmb3IgaW4gdGhlIHN0eWxpbmdcbiAgICAgIGApO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEFjY29yZGlvblBhbmVsLCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyByZWY6IHJlZiwgcm9sZTogXCJtZW51XCIsIHRlc3RJZDogdGVzdElkIH0pLCBjaGlsZHJlbikpO1xyXG59KTtcclxuRHJvcGRvd25FeHBhbmRhYmxlTWVudVBhbmVsLmRpc3BsYXlOYW1lID0gJ0Ryb3Bkb3duRXhwYW5kYWJsZU1lbnVQYW5lbCc7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyb3Bkb3duRXhwYW5kYWJsZU1lbnVQYW5lbC5qcy5tYXAiXX0= */",
|
|
15824
15830
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$u
|
|
15825
15831
|
});
|
|
15826
15832
|
var DropdownExpandableMenuPanel = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
@@ -15835,6 +15841,7 @@ var DropdownExpandableMenuPanel = /*#__PURE__*/forwardRef(function (props, ref)
|
|
|
15835
15841
|
});
|
|
15836
15842
|
return createElement(StyledAccordionPanel, Object.assign({}, other, {
|
|
15837
15843
|
ref: ref,
|
|
15844
|
+
role: "menu",
|
|
15838
15845
|
testId: testId
|
|
15839
15846
|
}), children);
|
|
15840
15847
|
});
|
|
@@ -21805,15 +21812,437 @@ var BlockQuoteItem = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
21805
21812
|
}, rest), hasAttribution ? createElement(Fragment, null, "\u2015\xA0", children) : createElement(Fragment, null, "\u201C", children, "\u201D"));
|
|
21806
21813
|
});
|
|
21807
21814
|
|
|
21815
|
+
function _extends$3() {
|
|
21816
|
+
_extends$3 = Object.assign || function (target) {
|
|
21817
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
21818
|
+
var source = arguments[i];
|
|
21819
|
+
for (var key in source) {
|
|
21820
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
21821
|
+
target[key] = source[key];
|
|
21822
|
+
}
|
|
21823
|
+
}
|
|
21824
|
+
}
|
|
21825
|
+
return target;
|
|
21826
|
+
};
|
|
21827
|
+
return _extends$3.apply(this, arguments);
|
|
21828
|
+
}
|
|
21829
|
+
function _objectWithoutPropertiesLoose$1(source, excluded) {
|
|
21830
|
+
if (source == null) return {};
|
|
21831
|
+
var target = {};
|
|
21832
|
+
var sourceKeys = Object.keys(source);
|
|
21833
|
+
var key, i;
|
|
21834
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
21835
|
+
key = sourceKeys[i];
|
|
21836
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
21837
|
+
target[key] = source[key];
|
|
21838
|
+
}
|
|
21839
|
+
return target;
|
|
21840
|
+
}
|
|
21841
|
+
var props = ['bottom', 'height', 'left', 'right', 'top', 'width'];
|
|
21842
|
+
var rectChanged = function rectChanged(a, b) {
|
|
21843
|
+
if (a === void 0) {
|
|
21844
|
+
a = {};
|
|
21845
|
+
}
|
|
21846
|
+
if (b === void 0) {
|
|
21847
|
+
b = {};
|
|
21848
|
+
}
|
|
21849
|
+
return props.some(function (prop) {
|
|
21850
|
+
return a[prop] !== b[prop];
|
|
21851
|
+
});
|
|
21852
|
+
};
|
|
21853
|
+
var observedNodes = /*#__PURE__*/new Map();
|
|
21854
|
+
var rafId;
|
|
21855
|
+
var run = function run() {
|
|
21856
|
+
var changedStates = [];
|
|
21857
|
+
observedNodes.forEach(function (state, node) {
|
|
21858
|
+
var newRect = node.getBoundingClientRect();
|
|
21859
|
+
if (rectChanged(newRect, state.rect)) {
|
|
21860
|
+
state.rect = newRect;
|
|
21861
|
+
changedStates.push(state);
|
|
21862
|
+
}
|
|
21863
|
+
});
|
|
21864
|
+
changedStates.forEach(function (state) {
|
|
21865
|
+
state.callbacks.forEach(function (cb) {
|
|
21866
|
+
return cb(state.rect);
|
|
21867
|
+
});
|
|
21868
|
+
});
|
|
21869
|
+
rafId = window.requestAnimationFrame(run);
|
|
21870
|
+
};
|
|
21871
|
+
function observeRect(node, cb) {
|
|
21872
|
+
return {
|
|
21873
|
+
observe: function observe() {
|
|
21874
|
+
var wasEmpty = observedNodes.size === 0;
|
|
21875
|
+
if (observedNodes.has(node)) {
|
|
21876
|
+
observedNodes.get(node).callbacks.push(cb);
|
|
21877
|
+
} else {
|
|
21878
|
+
observedNodes.set(node, {
|
|
21879
|
+
rect: undefined,
|
|
21880
|
+
hasRectChanged: false,
|
|
21881
|
+
callbacks: [cb]
|
|
21882
|
+
});
|
|
21883
|
+
}
|
|
21884
|
+
if (wasEmpty) run();
|
|
21885
|
+
},
|
|
21886
|
+
unobserve: function unobserve() {
|
|
21887
|
+
var state = observedNodes.get(node);
|
|
21888
|
+
if (state) {
|
|
21889
|
+
// Remove the callback
|
|
21890
|
+
var index = state.callbacks.indexOf(cb);
|
|
21891
|
+
if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference
|
|
21892
|
+
|
|
21893
|
+
if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop
|
|
21894
|
+
|
|
21895
|
+
if (!observedNodes.size) cancelAnimationFrame(rafId);
|
|
21896
|
+
}
|
|
21897
|
+
}
|
|
21898
|
+
};
|
|
21899
|
+
}
|
|
21900
|
+
var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React__default.useLayoutEffect : React__default.useEffect;
|
|
21901
|
+
function useRect(nodeRef, initialRect) {
|
|
21902
|
+
if (initialRect === void 0) {
|
|
21903
|
+
initialRect = {
|
|
21904
|
+
width: 0,
|
|
21905
|
+
height: 0
|
|
21906
|
+
};
|
|
21907
|
+
}
|
|
21908
|
+
var _React$useState = React__default.useState(nodeRef.current),
|
|
21909
|
+
element = _React$useState[0],
|
|
21910
|
+
setElement = _React$useState[1];
|
|
21911
|
+
var _React$useReducer = React__default.useReducer(rectReducer, initialRect),
|
|
21912
|
+
rect = _React$useReducer[0],
|
|
21913
|
+
dispatch = _React$useReducer[1];
|
|
21914
|
+
var initialRectSet = React__default.useRef(false);
|
|
21915
|
+
useIsomorphicLayoutEffect(function () {
|
|
21916
|
+
if (nodeRef.current !== element) {
|
|
21917
|
+
setElement(nodeRef.current);
|
|
21918
|
+
}
|
|
21919
|
+
});
|
|
21920
|
+
useIsomorphicLayoutEffect(function () {
|
|
21921
|
+
if (element && !initialRectSet.current) {
|
|
21922
|
+
initialRectSet.current = true;
|
|
21923
|
+
var _rect = element.getBoundingClientRect();
|
|
21924
|
+
dispatch({
|
|
21925
|
+
rect: _rect
|
|
21926
|
+
});
|
|
21927
|
+
}
|
|
21928
|
+
}, [element]);
|
|
21929
|
+
React__default.useEffect(function () {
|
|
21930
|
+
if (!element) {
|
|
21931
|
+
return;
|
|
21932
|
+
}
|
|
21933
|
+
var observer = observeRect(element, function (rect) {
|
|
21934
|
+
dispatch({
|
|
21935
|
+
rect: rect
|
|
21936
|
+
});
|
|
21937
|
+
});
|
|
21938
|
+
observer.observe();
|
|
21939
|
+
return function () {
|
|
21940
|
+
observer.unobserve();
|
|
21941
|
+
};
|
|
21942
|
+
}, [element]);
|
|
21943
|
+
return rect;
|
|
21944
|
+
}
|
|
21945
|
+
function rectReducer(state, action) {
|
|
21946
|
+
var rect = action.rect;
|
|
21947
|
+
if (state.height !== rect.height || state.width !== rect.width) {
|
|
21948
|
+
return rect;
|
|
21949
|
+
}
|
|
21950
|
+
return state;
|
|
21951
|
+
}
|
|
21952
|
+
var defaultEstimateSize = function defaultEstimateSize() {
|
|
21953
|
+
return 50;
|
|
21954
|
+
};
|
|
21955
|
+
var defaultKeyExtractor = function defaultKeyExtractor(index) {
|
|
21956
|
+
return index;
|
|
21957
|
+
};
|
|
21958
|
+
var defaultMeasureSize = function defaultMeasureSize(el, horizontal) {
|
|
21959
|
+
var key = horizontal ? 'offsetWidth' : 'offsetHeight';
|
|
21960
|
+
return el[key];
|
|
21961
|
+
};
|
|
21962
|
+
var defaultRangeExtractor = function defaultRangeExtractor(range) {
|
|
21963
|
+
var start = Math.max(range.start - range.overscan, 0);
|
|
21964
|
+
var end = Math.min(range.end + range.overscan, range.size - 1);
|
|
21965
|
+
var arr = [];
|
|
21966
|
+
for (var i = start; i <= end; i++) {
|
|
21967
|
+
arr.push(i);
|
|
21968
|
+
}
|
|
21969
|
+
return arr;
|
|
21970
|
+
};
|
|
21971
|
+
function useVirtual(_ref) {
|
|
21972
|
+
var _measurements;
|
|
21973
|
+
var _ref$size = _ref.size,
|
|
21974
|
+
size = _ref$size === void 0 ? 0 : _ref$size,
|
|
21975
|
+
_ref$estimateSize = _ref.estimateSize,
|
|
21976
|
+
estimateSize = _ref$estimateSize === void 0 ? defaultEstimateSize : _ref$estimateSize,
|
|
21977
|
+
_ref$overscan = _ref.overscan,
|
|
21978
|
+
overscan = _ref$overscan === void 0 ? 1 : _ref$overscan,
|
|
21979
|
+
_ref$paddingStart = _ref.paddingStart,
|
|
21980
|
+
paddingStart = _ref$paddingStart === void 0 ? 0 : _ref$paddingStart,
|
|
21981
|
+
_ref$paddingEnd = _ref.paddingEnd,
|
|
21982
|
+
paddingEnd = _ref$paddingEnd === void 0 ? 0 : _ref$paddingEnd,
|
|
21983
|
+
parentRef = _ref.parentRef,
|
|
21984
|
+
horizontal = _ref.horizontal,
|
|
21985
|
+
scrollToFn = _ref.scrollToFn,
|
|
21986
|
+
useObserver = _ref.useObserver,
|
|
21987
|
+
initialRect = _ref.initialRect,
|
|
21988
|
+
onScrollElement = _ref.onScrollElement,
|
|
21989
|
+
scrollOffsetFn = _ref.scrollOffsetFn,
|
|
21990
|
+
_ref$keyExtractor = _ref.keyExtractor,
|
|
21991
|
+
keyExtractor = _ref$keyExtractor === void 0 ? defaultKeyExtractor : _ref$keyExtractor,
|
|
21992
|
+
_ref$measureSize = _ref.measureSize,
|
|
21993
|
+
measureSize = _ref$measureSize === void 0 ? defaultMeasureSize : _ref$measureSize,
|
|
21994
|
+
_ref$rangeExtractor = _ref.rangeExtractor,
|
|
21995
|
+
rangeExtractor = _ref$rangeExtractor === void 0 ? defaultRangeExtractor : _ref$rangeExtractor;
|
|
21996
|
+
var sizeKey = horizontal ? 'width' : 'height';
|
|
21997
|
+
var scrollKey = horizontal ? 'scrollLeft' : 'scrollTop';
|
|
21998
|
+
var latestRef = React__default.useRef({
|
|
21999
|
+
scrollOffset: 0,
|
|
22000
|
+
measurements: []
|
|
22001
|
+
});
|
|
22002
|
+
var _React$useState = React__default.useState(0),
|
|
22003
|
+
scrollOffset = _React$useState[0],
|
|
22004
|
+
setScrollOffset = _React$useState[1];
|
|
22005
|
+
latestRef.current.scrollOffset = scrollOffset;
|
|
22006
|
+
var useMeasureParent = useObserver || useRect;
|
|
22007
|
+
var _useMeasureParent = useMeasureParent(parentRef, initialRect),
|
|
22008
|
+
outerSize = _useMeasureParent[sizeKey];
|
|
22009
|
+
latestRef.current.outerSize = outerSize;
|
|
22010
|
+
var defaultScrollToFn = React__default.useCallback(function (offset) {
|
|
22011
|
+
if (parentRef.current) {
|
|
22012
|
+
parentRef.current[scrollKey] = offset;
|
|
22013
|
+
}
|
|
22014
|
+
}, [parentRef, scrollKey]);
|
|
22015
|
+
var resolvedScrollToFn = scrollToFn || defaultScrollToFn;
|
|
22016
|
+
scrollToFn = React__default.useCallback(function (offset) {
|
|
22017
|
+
resolvedScrollToFn(offset, defaultScrollToFn);
|
|
22018
|
+
}, [defaultScrollToFn, resolvedScrollToFn]);
|
|
22019
|
+
var _React$useState2 = React__default.useState({}),
|
|
22020
|
+
measuredCache = _React$useState2[0],
|
|
22021
|
+
setMeasuredCache = _React$useState2[1];
|
|
22022
|
+
var measure = React__default.useCallback(function () {
|
|
22023
|
+
return setMeasuredCache({});
|
|
22024
|
+
}, []);
|
|
22025
|
+
var pendingMeasuredCacheIndexesRef = React__default.useRef([]);
|
|
22026
|
+
var measurements = React__default.useMemo(function () {
|
|
22027
|
+
var min = pendingMeasuredCacheIndexesRef.current.length > 0 ? Math.min.apply(Math, pendingMeasuredCacheIndexesRef.current) : 0;
|
|
22028
|
+
pendingMeasuredCacheIndexesRef.current = [];
|
|
22029
|
+
var measurements = latestRef.current.measurements.slice(0, min);
|
|
22030
|
+
for (var i = min; i < size; i++) {
|
|
22031
|
+
var key = keyExtractor(i);
|
|
22032
|
+
var measuredSize = measuredCache[key];
|
|
22033
|
+
var _start = measurements[i - 1] ? measurements[i - 1].end : paddingStart;
|
|
22034
|
+
var _size = typeof measuredSize === 'number' ? measuredSize : estimateSize(i);
|
|
22035
|
+
var _end = _start + _size;
|
|
22036
|
+
measurements[i] = {
|
|
22037
|
+
index: i,
|
|
22038
|
+
start: _start,
|
|
22039
|
+
size: _size,
|
|
22040
|
+
end: _end,
|
|
22041
|
+
key: key
|
|
22042
|
+
};
|
|
22043
|
+
}
|
|
22044
|
+
return measurements;
|
|
22045
|
+
}, [estimateSize, measuredCache, paddingStart, size, keyExtractor]);
|
|
22046
|
+
var totalSize = (((_measurements = measurements[size - 1]) == null ? void 0 : _measurements.end) || paddingStart) + paddingEnd;
|
|
22047
|
+
latestRef.current.measurements = measurements;
|
|
22048
|
+
latestRef.current.totalSize = totalSize;
|
|
22049
|
+
var element = onScrollElement ? onScrollElement.current : parentRef.current;
|
|
22050
|
+
var scrollOffsetFnRef = React__default.useRef(scrollOffsetFn);
|
|
22051
|
+
scrollOffsetFnRef.current = scrollOffsetFn;
|
|
22052
|
+
useIsomorphicLayoutEffect(function () {
|
|
22053
|
+
if (!element) {
|
|
22054
|
+
setScrollOffset(0);
|
|
22055
|
+
return;
|
|
22056
|
+
}
|
|
22057
|
+
var onScroll = function onScroll(event) {
|
|
22058
|
+
var offset = scrollOffsetFnRef.current ? scrollOffsetFnRef.current(event) : element[scrollKey];
|
|
22059
|
+
setScrollOffset(offset);
|
|
22060
|
+
};
|
|
22061
|
+
onScroll();
|
|
22062
|
+
element.addEventListener('scroll', onScroll, {
|
|
22063
|
+
capture: false,
|
|
22064
|
+
passive: true
|
|
22065
|
+
});
|
|
22066
|
+
return function () {
|
|
22067
|
+
element.removeEventListener('scroll', onScroll);
|
|
22068
|
+
};
|
|
22069
|
+
}, [element, scrollKey]);
|
|
22070
|
+
var _calculateRange = calculateRange(latestRef.current),
|
|
22071
|
+
start = _calculateRange.start,
|
|
22072
|
+
end = _calculateRange.end;
|
|
22073
|
+
var indexes = React__default.useMemo(function () {
|
|
22074
|
+
return rangeExtractor({
|
|
22075
|
+
start: start,
|
|
22076
|
+
end: end,
|
|
22077
|
+
overscan: overscan,
|
|
22078
|
+
size: measurements.length
|
|
22079
|
+
});
|
|
22080
|
+
}, [start, end, overscan, measurements.length, rangeExtractor]);
|
|
22081
|
+
var measureSizeRef = React__default.useRef(measureSize);
|
|
22082
|
+
measureSizeRef.current = measureSize;
|
|
22083
|
+
var virtualItems = React__default.useMemo(function () {
|
|
22084
|
+
var virtualItems = [];
|
|
22085
|
+
var _loop = function _loop(k, len) {
|
|
22086
|
+
var i = indexes[k];
|
|
22087
|
+
var measurement = measurements[i];
|
|
22088
|
+
var item = _extends$3(_extends$3({}, measurement), {}, {
|
|
22089
|
+
measureRef: function measureRef(el) {
|
|
22090
|
+
if (el) {
|
|
22091
|
+
var measuredSize = measureSizeRef.current(el, horizontal);
|
|
22092
|
+
if (measuredSize !== item.size) {
|
|
22093
|
+
var _scrollOffset = latestRef.current.scrollOffset;
|
|
22094
|
+
if (item.start < _scrollOffset) {
|
|
22095
|
+
defaultScrollToFn(_scrollOffset + (measuredSize - item.size));
|
|
22096
|
+
}
|
|
22097
|
+
pendingMeasuredCacheIndexesRef.current.push(i);
|
|
22098
|
+
setMeasuredCache(function (old) {
|
|
22099
|
+
var _extends2;
|
|
22100
|
+
return _extends$3(_extends$3({}, old), {}, (_extends2 = {}, _extends2[item.key] = measuredSize, _extends2));
|
|
22101
|
+
});
|
|
22102
|
+
}
|
|
22103
|
+
}
|
|
22104
|
+
}
|
|
22105
|
+
});
|
|
22106
|
+
virtualItems.push(item);
|
|
22107
|
+
};
|
|
22108
|
+
for (var k = 0, len = indexes.length; k < len; k++) {
|
|
22109
|
+
_loop(k);
|
|
22110
|
+
}
|
|
22111
|
+
return virtualItems;
|
|
22112
|
+
}, [indexes, defaultScrollToFn, horizontal, measurements]);
|
|
22113
|
+
var mountedRef = React__default.useRef(false);
|
|
22114
|
+
useIsomorphicLayoutEffect(function () {
|
|
22115
|
+
if (mountedRef.current) {
|
|
22116
|
+
setMeasuredCache({});
|
|
22117
|
+
}
|
|
22118
|
+
mountedRef.current = true;
|
|
22119
|
+
}, [estimateSize]);
|
|
22120
|
+
var scrollToOffset = React__default.useCallback(function (toOffset, _temp) {
|
|
22121
|
+
var _ref2 = _temp === void 0 ? {} : _temp,
|
|
22122
|
+
_ref2$align = _ref2.align,
|
|
22123
|
+
align = _ref2$align === void 0 ? 'start' : _ref2$align;
|
|
22124
|
+
var _latestRef$current = latestRef.current,
|
|
22125
|
+
scrollOffset = _latestRef$current.scrollOffset,
|
|
22126
|
+
outerSize = _latestRef$current.outerSize;
|
|
22127
|
+
if (align === 'auto') {
|
|
22128
|
+
if (toOffset <= scrollOffset) {
|
|
22129
|
+
align = 'start';
|
|
22130
|
+
} else if (toOffset >= scrollOffset + outerSize) {
|
|
22131
|
+
align = 'end';
|
|
22132
|
+
} else {
|
|
22133
|
+
align = 'start';
|
|
22134
|
+
}
|
|
22135
|
+
}
|
|
22136
|
+
if (align === 'start') {
|
|
22137
|
+
scrollToFn(toOffset);
|
|
22138
|
+
} else if (align === 'end') {
|
|
22139
|
+
scrollToFn(toOffset - outerSize);
|
|
22140
|
+
} else if (align === 'center') {
|
|
22141
|
+
scrollToFn(toOffset - outerSize / 2);
|
|
22142
|
+
}
|
|
22143
|
+
}, [scrollToFn]);
|
|
22144
|
+
var tryScrollToIndex = React__default.useCallback(function (index, _temp2) {
|
|
22145
|
+
var _ref3 = _temp2 === void 0 ? {} : _temp2,
|
|
22146
|
+
_ref3$align = _ref3.align,
|
|
22147
|
+
align = _ref3$align === void 0 ? 'auto' : _ref3$align,
|
|
22148
|
+
rest = _objectWithoutPropertiesLoose$1(_ref3, ["align"]);
|
|
22149
|
+
var _latestRef$current2 = latestRef.current,
|
|
22150
|
+
measurements = _latestRef$current2.measurements,
|
|
22151
|
+
scrollOffset = _latestRef$current2.scrollOffset,
|
|
22152
|
+
outerSize = _latestRef$current2.outerSize;
|
|
22153
|
+
var measurement = measurements[Math.max(0, Math.min(index, size - 1))];
|
|
22154
|
+
if (!measurement) {
|
|
22155
|
+
return;
|
|
22156
|
+
}
|
|
22157
|
+
if (align === 'auto') {
|
|
22158
|
+
if (measurement.end >= scrollOffset + outerSize) {
|
|
22159
|
+
align = 'end';
|
|
22160
|
+
} else if (measurement.start <= scrollOffset) {
|
|
22161
|
+
align = 'start';
|
|
22162
|
+
} else {
|
|
22163
|
+
return;
|
|
22164
|
+
}
|
|
22165
|
+
}
|
|
22166
|
+
var toOffset = align === 'center' ? measurement.start + measurement.size / 2 : align === 'end' ? measurement.end : measurement.start;
|
|
22167
|
+
scrollToOffset(toOffset, _extends$3({
|
|
22168
|
+
align: align
|
|
22169
|
+
}, rest));
|
|
22170
|
+
}, [scrollToOffset, size]);
|
|
22171
|
+
var scrollToIndex = React__default.useCallback(function () {
|
|
22172
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
22173
|
+
args[_key] = arguments[_key];
|
|
22174
|
+
}
|
|
22175
|
+
|
|
22176
|
+
// We do a double request here because of
|
|
22177
|
+
// dynamic sizes which can cause offset shift
|
|
22178
|
+
// and end up in the wrong spot. Unfortunately,
|
|
22179
|
+
// we can't know about those dynamic sizes until
|
|
22180
|
+
// we try and render them. So double down!
|
|
22181
|
+
tryScrollToIndex.apply(void 0, args);
|
|
22182
|
+
requestAnimationFrame(function () {
|
|
22183
|
+
tryScrollToIndex.apply(void 0, args);
|
|
22184
|
+
});
|
|
22185
|
+
}, [tryScrollToIndex]);
|
|
22186
|
+
return {
|
|
22187
|
+
virtualItems: virtualItems,
|
|
22188
|
+
totalSize: totalSize,
|
|
22189
|
+
scrollToOffset: scrollToOffset,
|
|
22190
|
+
scrollToIndex: scrollToIndex,
|
|
22191
|
+
measure: measure
|
|
22192
|
+
};
|
|
22193
|
+
}
|
|
22194
|
+
var findNearestBinarySearch = function findNearestBinarySearch(low, high, getCurrentValue, value) {
|
|
22195
|
+
while (low <= high) {
|
|
22196
|
+
var middle = (low + high) / 2 | 0;
|
|
22197
|
+
var currentValue = getCurrentValue(middle);
|
|
22198
|
+
if (currentValue < value) {
|
|
22199
|
+
low = middle + 1;
|
|
22200
|
+
} else if (currentValue > value) {
|
|
22201
|
+
high = middle - 1;
|
|
22202
|
+
} else {
|
|
22203
|
+
return middle;
|
|
22204
|
+
}
|
|
22205
|
+
}
|
|
22206
|
+
if (low > 0) {
|
|
22207
|
+
return low - 1;
|
|
22208
|
+
} else {
|
|
22209
|
+
return 0;
|
|
22210
|
+
}
|
|
22211
|
+
};
|
|
22212
|
+
function calculateRange(_ref4) {
|
|
22213
|
+
var measurements = _ref4.measurements,
|
|
22214
|
+
outerSize = _ref4.outerSize,
|
|
22215
|
+
scrollOffset = _ref4.scrollOffset;
|
|
22216
|
+
var size = measurements.length - 1;
|
|
22217
|
+
var getOffset = function getOffset(index) {
|
|
22218
|
+
return measurements[index].start;
|
|
22219
|
+
};
|
|
22220
|
+
var start = findNearestBinarySearch(0, size, getOffset, scrollOffset);
|
|
22221
|
+
var end = start;
|
|
22222
|
+
while (end < size && measurements[end].end < scrollOffset + outerSize) {
|
|
22223
|
+
end++;
|
|
22224
|
+
}
|
|
22225
|
+
return {
|
|
22226
|
+
start: start,
|
|
22227
|
+
end: end
|
|
22228
|
+
};
|
|
22229
|
+
}
|
|
22230
|
+
|
|
21808
22231
|
var TreeItemContext = /*#__PURE__*/createContext({
|
|
21809
22232
|
expanded: false,
|
|
21810
|
-
setExpanded: function setExpanded() {},
|
|
21811
22233
|
checkedStatus: IndeterminateCheckboxStatus.unchecked,
|
|
21812
22234
|
checkboxChangeHandler: function checkboxChangeHandler() {},
|
|
21813
22235
|
hasOwnTreeItems: false,
|
|
21814
22236
|
parentDepth: 0
|
|
21815
22237
|
});
|
|
21816
22238
|
|
|
22239
|
+
var TreeItemHierarchyContext = /*#__PURE__*/createContext({
|
|
22240
|
+
depth: 0,
|
|
22241
|
+
parentDepth: 0,
|
|
22242
|
+
isTopLevel: true,
|
|
22243
|
+
index: 0
|
|
22244
|
+
});
|
|
22245
|
+
|
|
21817
22246
|
var TreeViewSelectable;
|
|
21818
22247
|
(function (TreeViewSelectable) {
|
|
21819
22248
|
TreeViewSelectable["single"] = "single";
|
|
@@ -21821,29 +22250,36 @@ var TreeViewSelectable;
|
|
|
21821
22250
|
TreeViewSelectable["off"] = "off";
|
|
21822
22251
|
})(TreeViewSelectable || (TreeViewSelectable = {}));
|
|
21823
22252
|
|
|
21824
|
-
var
|
|
22253
|
+
var TreeViewConfigContext = /*#__PURE__*/createContext({
|
|
21825
22254
|
hasIcons: false,
|
|
21826
|
-
initialExpandedItems: [],
|
|
21827
|
-
registerTreeItem: function registerTreeItem(elements, element) {},
|
|
21828
22255
|
selectable: TreeViewSelectable.single,
|
|
21829
|
-
selectedItems: [],
|
|
21830
22256
|
checkParents: true,
|
|
21831
22257
|
checkChildren: true,
|
|
21832
|
-
items: [],
|
|
21833
|
-
selectItem: function selectItem() {
|
|
21834
|
-
return undefined;
|
|
21835
|
-
},
|
|
21836
|
-
handleExpandedChange: function handleExpandedChange() {
|
|
21837
|
-
return undefined;
|
|
21838
|
-
},
|
|
21839
22258
|
isTopLevelSelectable: true,
|
|
21840
|
-
|
|
22259
|
+
registerTreeItem: function registerTreeItem(elements, element) {},
|
|
21841
22260
|
expandIconStyles: {
|
|
21842
22261
|
size: magma.iconSizes.medium,
|
|
21843
22262
|
color: undefined
|
|
21844
22263
|
}
|
|
21845
22264
|
});
|
|
21846
22265
|
|
|
22266
|
+
var TreeViewExpansionContext = /*#__PURE__*/createContext({
|
|
22267
|
+
expandedSet: /*#__PURE__*/new Set(),
|
|
22268
|
+
handleExpandedChange: function handleExpandedChange() {
|
|
22269
|
+
return undefined;
|
|
22270
|
+
},
|
|
22271
|
+
initialExpandedItems: []
|
|
22272
|
+
});
|
|
22273
|
+
|
|
22274
|
+
var TreeViewSelectionContext = /*#__PURE__*/createContext({
|
|
22275
|
+
items: [],
|
|
22276
|
+
selectedItems: [],
|
|
22277
|
+
selectItem: function selectItem() {
|
|
22278
|
+
return undefined;
|
|
22279
|
+
},
|
|
22280
|
+
selectable: TreeViewSelectable.single
|
|
22281
|
+
});
|
|
22282
|
+
|
|
21847
22283
|
var TreeNodeType;
|
|
21848
22284
|
(function (TreeNodeType) {
|
|
21849
22285
|
TreeNodeType["branch"] = "branch";
|
|
@@ -22063,143 +22499,185 @@ var _getTreeViewData = function getTreeViewData(_ref2) {
|
|
|
22063
22499
|
}) : []);
|
|
22064
22500
|
}).flat();
|
|
22065
22501
|
};
|
|
22066
|
-
|
|
22502
|
+
// Optimized: Use Map for O(1) lookups while maintaining recursive logic
|
|
22503
|
+
var _processChildrenSelection = function processChildrenSelection(_ref4) {
|
|
22067
22504
|
var items = _ref4.items,
|
|
22068
22505
|
itemId = _ref4.itemId,
|
|
22069
22506
|
checkedStatus = _ref4.checkedStatus,
|
|
22070
|
-
forceCheckedStatusForDisabled = _ref4.forceCheckedStatusForDisabled
|
|
22071
|
-
|
|
22072
|
-
|
|
22073
|
-
|
|
22074
|
-
|
|
22075
|
-
|
|
22507
|
+
forceCheckedStatusForDisabled = _ref4.forceCheckedStatusForDisabled,
|
|
22508
|
+
parentChildMap = _ref4.parentChildMap;
|
|
22509
|
+
var map = parentChildMap || buildParentChildMap(items);
|
|
22510
|
+
var itemMap = new Map(items.map(function (item) {
|
|
22511
|
+
return [item.itemId, item];
|
|
22512
|
+
}));
|
|
22513
|
+
var item = itemMap.get(itemId);
|
|
22514
|
+
// Update the current item
|
|
22515
|
+
if (item) {
|
|
22516
|
+
if (item.isDisabled && !forceCheckedStatusForDisabled) {
|
|
22517
|
+
itemMap.set(itemId, item);
|
|
22518
|
+
} else {
|
|
22519
|
+
itemMap.set(itemId, _extends({}, item, {
|
|
22520
|
+
checkedStatus: checkedStatus
|
|
22521
|
+
}));
|
|
22522
|
+
}
|
|
22076
22523
|
}
|
|
22077
|
-
return items.map(function (item) {
|
|
22078
|
-
return item.itemId === itemId ? _extends({}, item, {
|
|
22079
|
-
checkedStatus: checkedStatus
|
|
22080
|
-
}) : item;
|
|
22081
|
-
});
|
|
22082
|
-
};
|
|
22083
|
-
var _processChildrenSelection = function processChildrenSelection(_ref5) {
|
|
22084
|
-
var items = _ref5.items,
|
|
22085
|
-
itemId = _ref5.itemId,
|
|
22086
|
-
checkedStatus = _ref5.checkedStatus,
|
|
22087
|
-
forceCheckedStatusForDisabled = _ref5.forceCheckedStatusForDisabled;
|
|
22088
|
-
var item = items.find(function (item) {
|
|
22089
|
-
return item.itemId === itemId;
|
|
22090
|
-
});
|
|
22091
|
-
var itemsWithProcessedItemCheckedStatus = processItemCheckedStatus({
|
|
22092
|
-
items: items,
|
|
22093
|
-
itemId: itemId,
|
|
22094
|
-
checkedStatus: checkedStatus,
|
|
22095
|
-
forceCheckedStatusForDisabled: forceCheckedStatusForDisabled
|
|
22096
|
-
});
|
|
22097
22524
|
if (!(item != null && item.hasOwnTreeItems)) {
|
|
22098
|
-
return
|
|
22099
|
-
}
|
|
22100
|
-
|
|
22101
|
-
|
|
22102
|
-
|
|
22103
|
-
var
|
|
22104
|
-
|
|
22105
|
-
|
|
22106
|
-
|
|
22525
|
+
return Array.from(itemMap.values());
|
|
22526
|
+
}
|
|
22527
|
+
// Get direct children
|
|
22528
|
+
var directChildren = map.get(itemId) || [];
|
|
22529
|
+
// Recursively process each direct child
|
|
22530
|
+
var currentItems = Array.from(itemMap.values());
|
|
22531
|
+
for (var _iterator = _createForOfIteratorHelperLoose(directChildren), _step; !(_step = _iterator()).done;) {
|
|
22532
|
+
var childId = _step.value;
|
|
22533
|
+
currentItems = _processChildrenSelection({
|
|
22534
|
+
items: currentItems,
|
|
22535
|
+
itemId: childId,
|
|
22107
22536
|
checkedStatus: checkedStatus,
|
|
22108
|
-
forceCheckedStatusForDisabled: forceCheckedStatusForDisabled
|
|
22537
|
+
forceCheckedStatusForDisabled: forceCheckedStatusForDisabled,
|
|
22538
|
+
parentChildMap: map
|
|
22109
22539
|
});
|
|
22110
|
-
}
|
|
22111
|
-
|
|
22112
|
-
|
|
22113
|
-
itemId
|
|
22114
|
-
});
|
|
22115
|
-
|
|
22116
|
-
|
|
22117
|
-
|
|
22118
|
-
var uniqueChildrenCheckedStatus = Array.from(new Set(children.map(function (children) {
|
|
22119
|
-
return children.checkedStatus === IndeterminateCheckboxStatus.checked;
|
|
22120
|
-
})));
|
|
22121
|
-
var isAllChildrenWithTheSameCheckedStatus = uniqueChildrenCheckedStatus.length === 1;
|
|
22122
|
-
var itemCheckedStatus = isAllChildrenWithTheSameCheckedStatus ? checkedStatus : IndeterminateCheckboxStatus.indeterminate;
|
|
22123
|
-
return processItemCheckedStatus({
|
|
22124
|
-
items: itemsWithProcessedChildren,
|
|
22540
|
+
}
|
|
22541
|
+
// Rebuild map with updated items
|
|
22542
|
+
var updatedItemMap = new Map(currentItems.map(function (item) {
|
|
22543
|
+
return [item.itemId, item];
|
|
22544
|
+
}));
|
|
22545
|
+
// Get all children (including nested) to check their statuses
|
|
22546
|
+
var childrenIds = getChildrenIds({
|
|
22547
|
+
items: currentItems,
|
|
22125
22548
|
itemId: itemId,
|
|
22126
|
-
|
|
22127
|
-
forceCheckedStatusForDisabled: forceCheckedStatusForDisabled
|
|
22549
|
+
parentChildMap: map
|
|
22128
22550
|
});
|
|
22551
|
+
// Check if all children have the same checked status
|
|
22552
|
+
var childrenStatuses = new Set();
|
|
22553
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(childrenIds), _step2; !(_step2 = _iterator2()).done;) {
|
|
22554
|
+
var id = _step2.value;
|
|
22555
|
+
if (id === itemId) continue;
|
|
22556
|
+
var child = updatedItemMap.get(id);
|
|
22557
|
+
if (child) {
|
|
22558
|
+
childrenStatuses.add(child.checkedStatus === IndeterminateCheckboxStatus.checked);
|
|
22559
|
+
}
|
|
22560
|
+
}
|
|
22561
|
+
var isAllChildrenWithTheSameCheckedStatus = childrenStatuses.size === 1;
|
|
22562
|
+
var itemCheckedStatus = isAllChildrenWithTheSameCheckedStatus ? checkedStatus : IndeterminateCheckboxStatus.indeterminate;
|
|
22563
|
+
// Update the parent item with the calculated status
|
|
22564
|
+
var updatedItem = updatedItemMap.get(itemId);
|
|
22565
|
+
if (updatedItem) {
|
|
22566
|
+
updatedItemMap.set(itemId, _extends({}, updatedItem, {
|
|
22567
|
+
checkedStatus: itemCheckedStatus
|
|
22568
|
+
}));
|
|
22569
|
+
}
|
|
22570
|
+
return Array.from(updatedItemMap.values());
|
|
22129
22571
|
};
|
|
22130
|
-
|
|
22131
|
-
|
|
22132
|
-
|
|
22133
|
-
|
|
22134
|
-
|
|
22135
|
-
|
|
22136
|
-
|
|
22137
|
-
|
|
22138
|
-
|
|
22139
|
-
items: items,
|
|
22140
|
-
itemId: item.itemId
|
|
22141
|
-
}));
|
|
22572
|
+
// Optimized: Build parent-child relationship map once for O(1) lookups
|
|
22573
|
+
var buildParentChildMap = function buildParentChildMap(items) {
|
|
22574
|
+
var map = new Map();
|
|
22575
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose(items), _step3; !(_step3 = _iterator3()).done;) {
|
|
22576
|
+
var item = _step3.value;
|
|
22577
|
+
if (item.parentId) {
|
|
22578
|
+
var children = map.get(item.parentId) || [];
|
|
22579
|
+
children.push(item.itemId);
|
|
22580
|
+
map.set(item.parentId, children);
|
|
22142
22581
|
}
|
|
22143
|
-
|
|
22144
|
-
|
|
22582
|
+
}
|
|
22583
|
+
return map;
|
|
22145
22584
|
};
|
|
22146
|
-
|
|
22147
|
-
|
|
22148
|
-
|
|
22149
|
-
|
|
22585
|
+
// Optimized: Use memoized parent-child map for faster lookups
|
|
22586
|
+
var getChildrenIds = function getChildrenIds(_ref5) {
|
|
22587
|
+
var items = _ref5.items,
|
|
22588
|
+
itemId = _ref5.itemId,
|
|
22589
|
+
parentChildMap = _ref5.parentChildMap;
|
|
22590
|
+
var map = parentChildMap || buildParentChildMap(items);
|
|
22591
|
+
var result = [itemId];
|
|
22592
|
+
var queue = [itemId];
|
|
22593
|
+
while (queue.length > 0) {
|
|
22594
|
+
var currentId = queue.shift();
|
|
22595
|
+
if (!currentId) continue;
|
|
22596
|
+
var children = map.get(currentId);
|
|
22597
|
+
if (children) {
|
|
22598
|
+
result.push.apply(result, children);
|
|
22599
|
+
queue.push.apply(queue, children);
|
|
22600
|
+
}
|
|
22601
|
+
}
|
|
22602
|
+
return result;
|
|
22603
|
+
};
|
|
22604
|
+
// Optimized: Use Set for O(1) lookup instead of array.includes
|
|
22605
|
+
var getChildren = function getChildren(_ref6) {
|
|
22606
|
+
var items = _ref6.items,
|
|
22607
|
+
itemId = _ref6.itemId,
|
|
22608
|
+
parentChildMap = _ref6.parentChildMap;
|
|
22609
|
+
var childrenIds = getChildrenIds({
|
|
22150
22610
|
items: items,
|
|
22151
|
-
itemId: itemId
|
|
22611
|
+
itemId: itemId,
|
|
22612
|
+
parentChildMap: parentChildMap
|
|
22152
22613
|
});
|
|
22614
|
+
var childrenIdSet = new Set(childrenIds);
|
|
22153
22615
|
return items.filter(function (item) {
|
|
22154
|
-
return
|
|
22616
|
+
return childrenIdSet.has(item.itemId);
|
|
22155
22617
|
});
|
|
22156
22618
|
};
|
|
22157
|
-
|
|
22158
|
-
|
|
22159
|
-
|
|
22160
|
-
|
|
22619
|
+
// Optimized: Use Set for O(1) lookup and reduce iterations
|
|
22620
|
+
var getChildrenUniqueStatuses = function getChildrenUniqueStatuses(_ref7) {
|
|
22621
|
+
var items = _ref7.items,
|
|
22622
|
+
itemId = _ref7.itemId,
|
|
22623
|
+
parentChildMap = _ref7.parentChildMap;
|
|
22624
|
+
var childrenAndItemIds = getChildrenIds({
|
|
22161
22625
|
items: items,
|
|
22162
|
-
itemId: itemId
|
|
22163
|
-
|
|
22164
|
-
var leaves = items.filter(function (item) {
|
|
22165
|
-
return !(item != null && item.hasOwnTreeItems) && childrenAndItemIds.includes(item.itemId);
|
|
22166
|
-
});
|
|
22167
|
-
var uniqueStatuses = Array.from(new Set(leaves.map(function (item) {
|
|
22168
|
-
var _item$checkedStatus;
|
|
22169
|
-
return (_item$checkedStatus = item.checkedStatus) != null ? _item$checkedStatus : IndeterminateCheckboxStatus.unchecked;
|
|
22170
|
-
})));
|
|
22171
|
-
return uniqueStatuses.filter(function (checkedStatus) {
|
|
22172
|
-
return checkedStatus && checkedStatus !== IndeterminateCheckboxStatus.indeterminate;
|
|
22626
|
+
itemId: itemId,
|
|
22627
|
+
parentChildMap: parentChildMap
|
|
22173
22628
|
});
|
|
22629
|
+
var childrenIdSet = new Set(childrenAndItemIds);
|
|
22630
|
+
var uniqueStatuses = new Set();
|
|
22631
|
+
for (var _iterator4 = _createForOfIteratorHelperLoose(items), _step4; !(_step4 = _iterator4()).done;) {
|
|
22632
|
+
var item = _step4.value;
|
|
22633
|
+
if (!(item != null && item.hasOwnTreeItems) && childrenIdSet.has(item.itemId)) {
|
|
22634
|
+
var _item$checkedStatus;
|
|
22635
|
+
var status = (_item$checkedStatus = item.checkedStatus) != null ? _item$checkedStatus : IndeterminateCheckboxStatus.unchecked;
|
|
22636
|
+
if (status && status !== IndeterminateCheckboxStatus.indeterminate) {
|
|
22637
|
+
uniqueStatuses.add(status);
|
|
22638
|
+
}
|
|
22639
|
+
}
|
|
22640
|
+
}
|
|
22641
|
+
return Array.from(uniqueStatuses);
|
|
22174
22642
|
};
|
|
22175
|
-
|
|
22176
|
-
|
|
22177
|
-
|
|
22178
|
-
|
|
22179
|
-
|
|
22643
|
+
// Optimized: Build map once and reuse
|
|
22644
|
+
var processInitialParentStatuses = function processInitialParentStatuses(_ref8) {
|
|
22645
|
+
var items = _ref8.items,
|
|
22646
|
+
_ref8$isTopLevelSelec = _ref8.isTopLevelSelectable,
|
|
22647
|
+
isTopLevelSelectable = _ref8$isTopLevelSelec === void 0 ? true : _ref8$isTopLevelSelec;
|
|
22648
|
+
var parentChildMap = buildParentChildMap(items);
|
|
22649
|
+
var itemsWithSelectedChildren = items;
|
|
22650
|
+
for (var _iterator5 = _createForOfIteratorHelperLoose(items), _step5; !(_step5 = _iterator5()).done;) {
|
|
22651
|
+
var item = _step5.value;
|
|
22180
22652
|
if (!(item != null && item.hasOwnTreeItems) || (item == null ? void 0 : item.checkedStatus) !== IndeterminateCheckboxStatus.checked) {
|
|
22181
|
-
|
|
22653
|
+
continue;
|
|
22182
22654
|
}
|
|
22183
|
-
|
|
22184
|
-
items:
|
|
22655
|
+
itemsWithSelectedChildren = _processChildrenSelection({
|
|
22656
|
+
items: itemsWithSelectedChildren,
|
|
22185
22657
|
itemId: item.itemId,
|
|
22186
22658
|
checkedStatus: IndeterminateCheckboxStatus.checked,
|
|
22187
|
-
forceCheckedStatusForDisabled: true
|
|
22659
|
+
forceCheckedStatusForDisabled: true,
|
|
22660
|
+
parentChildMap: parentChildMap
|
|
22188
22661
|
});
|
|
22189
|
-
}
|
|
22190
|
-
|
|
22191
|
-
|
|
22192
|
-
|
|
22662
|
+
}
|
|
22663
|
+
var result = [];
|
|
22664
|
+
for (var _iterator6 = _createForOfIteratorHelperLoose(itemsWithSelectedChildren), _step6; !(_step6 = _iterator6()).done;) {
|
|
22665
|
+
var _item = _step6.value;
|
|
22666
|
+
if (!(_item != null && _item.hasOwnTreeItems) || isTopLevelSelectable === false && _item.parentId === null) {
|
|
22667
|
+
result.push(_item);
|
|
22668
|
+
continue;
|
|
22193
22669
|
}
|
|
22194
22670
|
var childrenUniqueStatuses = getChildrenUniqueStatuses({
|
|
22195
22671
|
items: itemsWithSelectedChildren,
|
|
22196
|
-
itemId:
|
|
22672
|
+
itemId: _item.itemId,
|
|
22673
|
+
parentChildMap: parentChildMap
|
|
22197
22674
|
});
|
|
22198
22675
|
var parentStatus = childrenUniqueStatuses.length > 1 ? IndeterminateCheckboxStatus.indeterminate : childrenUniqueStatuses[0];
|
|
22199
|
-
|
|
22676
|
+
result.push(parentStatus ? _extends({}, _item, {
|
|
22200
22677
|
checkedStatus: parentStatus
|
|
22201
|
-
}) :
|
|
22202
|
-
}
|
|
22678
|
+
}) : _item);
|
|
22679
|
+
}
|
|
22680
|
+
return result;
|
|
22203
22681
|
};
|
|
22204
22682
|
var filterTopLevelItemsIfNeeded = function filterTopLevelItemsIfNeeded(preselectedItems, treeViewData, isTopLevelSelectable) {
|
|
22205
22683
|
if (!preselectedItems || isTopLevelSelectable !== false) {
|
|
@@ -22212,15 +22690,15 @@ var filterTopLevelItemsIfNeeded = function filterTopLevelItemsIfNeeded(preselect
|
|
|
22212
22690
|
return itemData ? itemData.parentId !== null : false;
|
|
22213
22691
|
});
|
|
22214
22692
|
};
|
|
22215
|
-
var getInitialItems = function getInitialItems(
|
|
22216
|
-
var children =
|
|
22217
|
-
rawPreselectedItems =
|
|
22218
|
-
checkParents =
|
|
22219
|
-
checkChildren =
|
|
22220
|
-
selectable =
|
|
22221
|
-
isTreeViewDisabled =
|
|
22222
|
-
isTopLevelSelectable =
|
|
22223
|
-
items =
|
|
22693
|
+
var getInitialItems = function getInitialItems(_ref9) {
|
|
22694
|
+
var children = _ref9.children,
|
|
22695
|
+
rawPreselectedItems = _ref9.preselectedItems,
|
|
22696
|
+
checkParents = _ref9.checkParents,
|
|
22697
|
+
checkChildren = _ref9.checkChildren,
|
|
22698
|
+
selectable = _ref9.selectable,
|
|
22699
|
+
isTreeViewDisabled = _ref9.isDisabled,
|
|
22700
|
+
isTopLevelSelectable = _ref9.isTopLevelSelectable,
|
|
22701
|
+
items = _ref9.items;
|
|
22224
22702
|
var treeViewData = items || _getTreeViewData({
|
|
22225
22703
|
children: children,
|
|
22226
22704
|
checkChildren: checkChildren,
|
|
@@ -22234,8 +22712,8 @@ var getInitialItems = function getInitialItems(_ref0) {
|
|
|
22234
22712
|
if (isTopLevelSelectable === false && treeViewDataItem.parentId === null) {
|
|
22235
22713
|
return treeViewDataItem;
|
|
22236
22714
|
}
|
|
22237
|
-
var preselectedItem = filteredPreselectedItems.find(function (
|
|
22238
|
-
var itemId =
|
|
22715
|
+
var preselectedItem = filteredPreselectedItems.find(function (_ref0) {
|
|
22716
|
+
var itemId = _ref0.itemId;
|
|
22239
22717
|
return treeViewDataItem.itemId === itemId;
|
|
22240
22718
|
});
|
|
22241
22719
|
return preselectedItem ? _extends({}, treeViewDataItem, {
|
|
@@ -22262,177 +22740,216 @@ var getInitialItems = function getInitialItems(_ref0) {
|
|
|
22262
22740
|
}
|
|
22263
22741
|
return result;
|
|
22264
22742
|
};
|
|
22265
|
-
var selectSingle = function selectSingle(
|
|
22266
|
-
var items =
|
|
22267
|
-
itemId =
|
|
22268
|
-
checkedStatus =
|
|
22743
|
+
var selectSingle = function selectSingle(_ref1) {
|
|
22744
|
+
var items = _ref1.items,
|
|
22745
|
+
itemId = _ref1.itemId,
|
|
22746
|
+
checkedStatus = _ref1.checkedStatus;
|
|
22269
22747
|
return items.map(function (item) {
|
|
22270
22748
|
return _extends({}, item, {
|
|
22271
22749
|
checkedStatus: item.itemId === itemId ? checkedStatus : IndeterminateCheckboxStatus.unchecked
|
|
22272
22750
|
});
|
|
22273
22751
|
});
|
|
22274
22752
|
};
|
|
22275
|
-
|
|
22276
|
-
|
|
22277
|
-
|
|
22278
|
-
|
|
22279
|
-
|
|
22280
|
-
|
|
22281
|
-
|
|
22282
|
-
|
|
22283
|
-
|
|
22284
|
-
|
|
22285
|
-
|
|
22286
|
-
|
|
22287
|
-
var
|
|
22288
|
-
|
|
22289
|
-
|
|
22290
|
-
|
|
22291
|
-
|
|
22292
|
-
|
|
22293
|
-
|
|
22294
|
-
|
|
22295
|
-
|
|
22296
|
-
|
|
22297
|
-
|
|
22298
|
-
|
|
22299
|
-
|
|
22300
|
-
|
|
22301
|
-
|
|
22302
|
-
|
|
22303
|
-
|
|
22304
|
-
|
|
22753
|
+
// Optimized: Use Map for O(1) lookups and iterative approach instead of recursion
|
|
22754
|
+
var processParentsSelection = function processParentsSelection(_ref10) {
|
|
22755
|
+
var items = _ref10.items,
|
|
22756
|
+
itemId = _ref10.itemId,
|
|
22757
|
+
checkedStatus = _ref10.checkedStatus,
|
|
22758
|
+
_ref10$isTopLevelSele = _ref10.isTopLevelSelectable,
|
|
22759
|
+
isTopLevelSelectable = _ref10$isTopLevelSele === void 0 ? true : _ref10$isTopLevelSele;
|
|
22760
|
+
var itemMap = new Map(items.map(function (item) {
|
|
22761
|
+
return [item.itemId, item];
|
|
22762
|
+
}));
|
|
22763
|
+
var parentChildMap = buildParentChildMap(items);
|
|
22764
|
+
var currentItem = itemMap.get(itemId);
|
|
22765
|
+
var currentStatus = checkedStatus;
|
|
22766
|
+
// Iteratively process parents from bottom to top
|
|
22767
|
+
while (currentItem && currentItem.parentId !== null) {
|
|
22768
|
+
var parentId = currentItem.parentId;
|
|
22769
|
+
var parent = itemMap.get(parentId);
|
|
22770
|
+
if (!parent) break;
|
|
22771
|
+
if (!isTopLevelSelectable && !parent.parentId) break;
|
|
22772
|
+
// Get all siblings including current item
|
|
22773
|
+
var siblings = parentChildMap.get(parentId) || [];
|
|
22774
|
+
var allSameStatus = true;
|
|
22775
|
+
var firstStatus = currentStatus;
|
|
22776
|
+
for (var _iterator7 = _createForOfIteratorHelperLoose(siblings), _step7; !(_step7 = _iterator7()).done;) {
|
|
22777
|
+
var siblingId = _step7.value;
|
|
22778
|
+
var sibling = itemMap.get(siblingId);
|
|
22779
|
+
if (!sibling) continue;
|
|
22780
|
+
var siblingStatus = sibling.checkedStatus || IndeterminateCheckboxStatus.unchecked;
|
|
22781
|
+
if (siblingStatus !== firstStatus) {
|
|
22782
|
+
allSameStatus = false;
|
|
22783
|
+
break;
|
|
22784
|
+
}
|
|
22785
|
+
}
|
|
22786
|
+
var parentStatus = allSameStatus ? currentStatus : IndeterminateCheckboxStatus.indeterminate;
|
|
22787
|
+
// Update parent
|
|
22788
|
+
itemMap.set(parentId, _extends({}, parent, {
|
|
22305
22789
|
checkedStatus: parentStatus
|
|
22306
|
-
})
|
|
22307
|
-
|
|
22308
|
-
|
|
22309
|
-
|
|
22310
|
-
|
|
22311
|
-
|
|
22312
|
-
isTopLevelSelectable: isTopLevelSelectable
|
|
22313
|
-
});
|
|
22790
|
+
}));
|
|
22791
|
+
// Move up to next parent
|
|
22792
|
+
currentItem = parent;
|
|
22793
|
+
currentStatus = parentStatus;
|
|
22794
|
+
}
|
|
22795
|
+
return Array.from(itemMap.values());
|
|
22314
22796
|
};
|
|
22315
|
-
|
|
22316
|
-
|
|
22317
|
-
|
|
22797
|
+
// Optimized: Early exit and use Map for faster lookups
|
|
22798
|
+
var getMultiToggledStatus = function getMultiToggledStatus(_ref11) {
|
|
22799
|
+
var items = _ref11.items,
|
|
22800
|
+
itemId = _ref11.itemId,
|
|
22801
|
+
parentChildMap = _ref11.parentChildMap;
|
|
22318
22802
|
var children = getChildren({
|
|
22319
22803
|
items: items,
|
|
22320
|
-
itemId: itemId
|
|
22321
|
-
|
|
22322
|
-
var enabledChildren = children.filter(function (item) {
|
|
22323
|
-
return !item.isDisabled;
|
|
22804
|
+
itemId: itemId,
|
|
22805
|
+
parentChildMap: parentChildMap
|
|
22324
22806
|
});
|
|
22325
|
-
if
|
|
22326
|
-
|
|
22327
|
-
|
|
22328
|
-
|
|
22807
|
+
// Early exit: check if any enabled child is unchecked
|
|
22808
|
+
for (var _iterator8 = _createForOfIteratorHelperLoose(children), _step8; !(_step8 = _iterator8()).done;) {
|
|
22809
|
+
var item = _step8.value;
|
|
22810
|
+
if (item.isDisabled) continue;
|
|
22811
|
+
if (!item.checkedStatus || item.checkedStatus === IndeterminateCheckboxStatus.unchecked) {
|
|
22812
|
+
return IndeterminateCheckboxStatus.checked;
|
|
22813
|
+
}
|
|
22329
22814
|
}
|
|
22330
22815
|
return IndeterminateCheckboxStatus.unchecked;
|
|
22331
22816
|
};
|
|
22332
|
-
|
|
22333
|
-
|
|
22334
|
-
|
|
22335
|
-
|
|
22336
|
-
|
|
22337
|
-
|
|
22338
|
-
|
|
22339
|
-
|
|
22340
|
-
|
|
22341
|
-
|
|
22342
|
-
|
|
22817
|
+
// Optimized: Build maps once and reuse them, reduce array iterations
|
|
22818
|
+
var toggleMulti = function toggleMulti(_ref12) {
|
|
22819
|
+
var items = _ref12.items,
|
|
22820
|
+
itemId = _ref12.itemId,
|
|
22821
|
+
rawCheckedStatus = _ref12.checkedStatus,
|
|
22822
|
+
forceCheckedStatus = _ref12.forceCheckedStatus,
|
|
22823
|
+
checkChildren = _ref12.checkChildren,
|
|
22824
|
+
checkParents = _ref12.checkParents,
|
|
22825
|
+
isTopLevelSelectable = _ref12.isTopLevelSelectable;
|
|
22826
|
+
// Build parent-child map once for reuse
|
|
22827
|
+
var parentChildMap = buildParentChildMap(items);
|
|
22828
|
+
var itemMap = new Map(items.map(function (item) {
|
|
22829
|
+
return [item.itemId, item];
|
|
22830
|
+
}));
|
|
22831
|
+
var item = itemMap.get(itemId);
|
|
22343
22832
|
if (isTopLevelSelectable === false && !(item != null && item.parentId)) {
|
|
22344
22833
|
return items;
|
|
22345
22834
|
}
|
|
22346
22835
|
var checkedStatus = checkChildren && !forceCheckedStatus ? getMultiToggledStatus({
|
|
22347
22836
|
items: items,
|
|
22348
|
-
itemId: itemId
|
|
22837
|
+
itemId: itemId,
|
|
22838
|
+
parentChildMap: parentChildMap
|
|
22349
22839
|
}) : rawCheckedStatus;
|
|
22350
|
-
|
|
22351
|
-
|
|
22840
|
+
// Update the item itself
|
|
22841
|
+
if (item) {
|
|
22842
|
+
itemMap.set(itemId, _extends({}, item, {
|
|
22352
22843
|
checkedStatus: checkedStatus
|
|
22353
|
-
})
|
|
22354
|
-
});
|
|
22355
|
-
var itemsWithProcessedChildrenSelection = checkChildren ? _processChildrenSelection({
|
|
22356
|
-
items: itemsWithProcessedItemSelection,
|
|
22357
|
-
itemId: itemId,
|
|
22358
|
-
checkedStatus: checkedStatus
|
|
22359
|
-
}) : itemsWithProcessedItemSelection;
|
|
22360
|
-
return checkParents ? _processParentsSelection({
|
|
22361
|
-
items: itemsWithProcessedChildrenSelection,
|
|
22362
|
-
itemId: itemId,
|
|
22363
|
-
checkedStatus: checkedStatus,
|
|
22364
|
-
isTopLevelSelectable: isTopLevelSelectable
|
|
22365
|
-
}) : itemsWithProcessedChildrenSelection;
|
|
22366
|
-
};
|
|
22367
|
-
var _getParentIds = function getParentIds(_ref14) {
|
|
22368
|
-
var items = _ref14.items,
|
|
22369
|
-
itemId = _ref14.itemId,
|
|
22370
|
-
_ref14$prevParentIds = _ref14.prevParentIds,
|
|
22371
|
-
prevParentIds = _ref14$prevParentIds === void 0 ? [] : _ref14$prevParentIds;
|
|
22372
|
-
var item = items.find(function (item) {
|
|
22373
|
-
return item.itemId === itemId;
|
|
22374
|
-
});
|
|
22375
|
-
if (!item) {
|
|
22376
|
-
return prevParentIds;
|
|
22844
|
+
}));
|
|
22377
22845
|
}
|
|
22378
|
-
var
|
|
22379
|
-
|
|
22380
|
-
|
|
22846
|
+
var resultItems = Array.from(itemMap.values());
|
|
22847
|
+
// Process children if needed
|
|
22848
|
+
if (checkChildren) {
|
|
22849
|
+
resultItems = _processChildrenSelection({
|
|
22850
|
+
items: resultItems,
|
|
22851
|
+
itemId: itemId,
|
|
22852
|
+
checkedStatus: checkedStatus,
|
|
22853
|
+
parentChildMap: parentChildMap
|
|
22854
|
+
});
|
|
22855
|
+
}
|
|
22856
|
+
// Process parents if needed
|
|
22857
|
+
if (checkParents) {
|
|
22858
|
+
resultItems = processParentsSelection({
|
|
22859
|
+
items: resultItems,
|
|
22860
|
+
itemId: itemId,
|
|
22861
|
+
checkedStatus: checkedStatus,
|
|
22862
|
+
isTopLevelSelectable: isTopLevelSelectable
|
|
22863
|
+
});
|
|
22864
|
+
}
|
|
22865
|
+
return resultItems;
|
|
22866
|
+
};
|
|
22867
|
+
var _getParentIds = function getParentIds(_ref13) {
|
|
22868
|
+
var items = _ref13.items,
|
|
22869
|
+
itemId = _ref13.itemId,
|
|
22870
|
+
_ref13$prevParentIds = _ref13.prevParentIds,
|
|
22871
|
+
prevParentIds = _ref13$prevParentIds === void 0 ? [] : _ref13$prevParentIds;
|
|
22872
|
+
var item = items.find(function (item) {
|
|
22873
|
+
return item.itemId === itemId;
|
|
22874
|
+
});
|
|
22875
|
+
if (!item) {
|
|
22876
|
+
return prevParentIds;
|
|
22877
|
+
}
|
|
22878
|
+
var parentId = item.parentId;
|
|
22879
|
+
return parentId ? _getParentIds({
|
|
22880
|
+
itemId: parentId,
|
|
22381
22881
|
items: items,
|
|
22382
22882
|
prevParentIds: [].concat(prevParentIds, [parentId])
|
|
22383
22883
|
}) : prevParentIds;
|
|
22384
22884
|
};
|
|
22385
22885
|
var getEnabledRootParentIds = function getEnabledRootParentIds(items) {
|
|
22386
|
-
var rootParents = items.filter(function (
|
|
22387
|
-
var parentId =
|
|
22388
|
-
isDisabled =
|
|
22886
|
+
var rootParents = items.filter(function (_ref14) {
|
|
22887
|
+
var parentId = _ref14.parentId,
|
|
22888
|
+
isDisabled = _ref14.isDisabled;
|
|
22389
22889
|
return !parentId && !isDisabled;
|
|
22390
22890
|
});
|
|
22391
|
-
return rootParents.map(function (
|
|
22392
|
-
var itemId =
|
|
22891
|
+
return rootParents.map(function (_ref15) {
|
|
22892
|
+
var itemId = _ref15.itemId;
|
|
22393
22893
|
return itemId;
|
|
22394
22894
|
});
|
|
22395
22895
|
};
|
|
22396
|
-
|
|
22397
|
-
|
|
22398
|
-
|
|
22399
|
-
|
|
22400
|
-
|
|
22401
|
-
|
|
22896
|
+
// Optimized: Reduce iterations and use Map for batch updates
|
|
22897
|
+
var toggleAllMulti = function toggleAllMulti(_ref16) {
|
|
22898
|
+
var items = _ref16.items,
|
|
22899
|
+
checkedStatus = _ref16.checkedStatus,
|
|
22900
|
+
checkChildren = _ref16.checkChildren,
|
|
22901
|
+
checkParents = _ref16.checkParents,
|
|
22902
|
+
isTopLevelSelectable = _ref16.isTopLevelSelectable;
|
|
22903
|
+
// Fast path: simple case without children/parent checking
|
|
22402
22904
|
if (!checkChildren) {
|
|
22403
|
-
|
|
22905
|
+
var result = [];
|
|
22906
|
+
for (var _iterator9 = _createForOfIteratorHelperLoose(items), _step9; !(_step9 = _iterator9()).done;) {
|
|
22907
|
+
var item = _step9.value;
|
|
22404
22908
|
if (item != null && item.isDisabled || isTopLevelSelectable === false && !item.parentId) {
|
|
22405
|
-
|
|
22909
|
+
result.push(item);
|
|
22910
|
+
} else {
|
|
22911
|
+
result.push(_extends({}, item, {
|
|
22912
|
+
checkedStatus: checkedStatus
|
|
22913
|
+
}));
|
|
22406
22914
|
}
|
|
22407
|
-
|
|
22408
|
-
|
|
22409
|
-
});
|
|
22410
|
-
});
|
|
22915
|
+
}
|
|
22916
|
+
return result;
|
|
22411
22917
|
}
|
|
22412
22918
|
if (isTopLevelSelectable === false) {
|
|
22413
|
-
|
|
22414
|
-
|
|
22415
|
-
|
|
22919
|
+
var _result = [];
|
|
22920
|
+
for (var _iterator0 = _createForOfIteratorHelperLoose(items), _step0; !(_step0 = _iterator0()).done;) {
|
|
22921
|
+
var _item2 = _step0.value;
|
|
22922
|
+
if (_item2.isDisabled || _item2.parentId === null) {
|
|
22923
|
+
_result.push(_item2);
|
|
22924
|
+
} else {
|
|
22925
|
+
_result.push(_extends({}, _item2, {
|
|
22926
|
+
checkedStatus: checkedStatus
|
|
22927
|
+
}));
|
|
22416
22928
|
}
|
|
22417
|
-
|
|
22418
|
-
|
|
22419
|
-
});
|
|
22420
|
-
});
|
|
22929
|
+
}
|
|
22930
|
+
return _result;
|
|
22421
22931
|
}
|
|
22422
22932
|
if (!checkParents) {
|
|
22423
|
-
|
|
22424
|
-
|
|
22425
|
-
|
|
22933
|
+
var _result2 = [];
|
|
22934
|
+
for (var _iterator1 = _createForOfIteratorHelperLoose(items), _step1; !(_step1 = _iterator1()).done;) {
|
|
22935
|
+
var _item3 = _step1.value;
|
|
22936
|
+
if (_item3.isDisabled) {
|
|
22937
|
+
_result2.push(_item3);
|
|
22938
|
+
} else {
|
|
22939
|
+
_result2.push(_extends({}, _item3, {
|
|
22940
|
+
checkedStatus: checkedStatus
|
|
22941
|
+
}));
|
|
22426
22942
|
}
|
|
22427
|
-
|
|
22428
|
-
|
|
22429
|
-
});
|
|
22430
|
-
});
|
|
22943
|
+
}
|
|
22944
|
+
return _result2;
|
|
22431
22945
|
}
|
|
22946
|
+
// Complex case: need to process each root parent
|
|
22432
22947
|
var rootParentIds = getEnabledRootParentIds(items);
|
|
22433
|
-
|
|
22434
|
-
|
|
22435
|
-
|
|
22948
|
+
var resultItems = items;
|
|
22949
|
+
for (var _iterator10 = _createForOfIteratorHelperLoose(rootParentIds), _step10; !(_step10 = _iterator10()).done;) {
|
|
22950
|
+
var rootParentId = _step10.value;
|
|
22951
|
+
resultItems = toggleMulti({
|
|
22952
|
+
items: resultItems,
|
|
22436
22953
|
itemId: rootParentId,
|
|
22437
22954
|
checkedStatus: checkedStatus,
|
|
22438
22955
|
forceCheckedStatus: true,
|
|
@@ -22440,13 +22957,14 @@ var toggleAllMulti = function toggleAllMulti(_ref17) {
|
|
|
22440
22957
|
checkParents: checkParents,
|
|
22441
22958
|
isTopLevelSelectable: isTopLevelSelectable
|
|
22442
22959
|
});
|
|
22443
|
-
}
|
|
22960
|
+
}
|
|
22961
|
+
return resultItems;
|
|
22444
22962
|
};
|
|
22445
|
-
var getInitialExpandedIds = function getInitialExpandedIds(
|
|
22446
|
-
var items =
|
|
22447
|
-
initialExpandedItems =
|
|
22448
|
-
if (!initialExpandedItems) {
|
|
22449
|
-
return
|
|
22963
|
+
var getInitialExpandedIds = function getInitialExpandedIds(_ref17) {
|
|
22964
|
+
var items = _ref17.items,
|
|
22965
|
+
initialExpandedItems = _ref17.initialExpandedItems;
|
|
22966
|
+
if (!initialExpandedItems || initialExpandedItems.length === 0) {
|
|
22967
|
+
return [];
|
|
22450
22968
|
}
|
|
22451
22969
|
return initialExpandedItems.reduce(function (result, itemId) {
|
|
22452
22970
|
return [].concat(result, [itemId], _getParentIds({
|
|
@@ -22472,16 +22990,19 @@ function useTreeItem(props, forwardedRef) {
|
|
|
22472
22990
|
onClick = props.onClick,
|
|
22473
22991
|
parentDepth = props.parentDepth,
|
|
22474
22992
|
topLevel = props.topLevel;
|
|
22475
|
-
|
|
22476
|
-
|
|
22477
|
-
selectable = _React$useContext.selectable,
|
|
22478
|
-
selectedItems = _React$useContext.selectedItems,
|
|
22479
|
-
treeItemRefArray = _React$useContext.treeItemRefArray,
|
|
22993
|
+
// Consume split contexts for reduced re-render scope
|
|
22994
|
+
var _React$useContext = useContext(TreeViewSelectionContext),
|
|
22480
22995
|
items = _React$useContext.items,
|
|
22481
|
-
|
|
22482
|
-
|
|
22483
|
-
|
|
22484
|
-
|
|
22996
|
+
selectedItems = _React$useContext.selectedItems,
|
|
22997
|
+
selectItem = _React$useContext.selectItem;
|
|
22998
|
+
var _React$useContext2 = useContext(TreeViewExpansionContext),
|
|
22999
|
+
expandedSet = _React$useContext2.expandedSet,
|
|
23000
|
+
handleExpandedChange = _React$useContext2.handleExpandedChange;
|
|
23001
|
+
var _React$useContext3 = useContext(TreeViewConfigContext),
|
|
23002
|
+
registerTreeItem = _React$useContext3.registerTreeItem,
|
|
23003
|
+
selectable = _React$useContext3.selectable,
|
|
23004
|
+
treeItemRefArray = _React$useContext3.treeItemRefArray,
|
|
23005
|
+
isTopLevelSelectable = _React$useContext3.isTopLevelSelectable;
|
|
22485
23006
|
var treeViewItemData = useMemo(function () {
|
|
22486
23007
|
return items.find(function (item) {
|
|
22487
23008
|
return item.itemId === itemId;
|
|
@@ -22501,21 +23022,13 @@ function useTreeItem(props, forwardedRef) {
|
|
|
22501
23022
|
var hasOwnTreeItems = useMemo(function () {
|
|
22502
23023
|
return (treeViewItemData == null ? void 0 : treeViewItemData.hasOwnTreeItems) || treeItemChildren.length > 0;
|
|
22503
23024
|
}, [treeViewItemData, treeItemChildren.length]);
|
|
22504
|
-
var
|
|
22505
|
-
|
|
22506
|
-
|
|
22507
|
-
expanded = _React$useState[0],
|
|
22508
|
-
setExpanded = _React$useState[1];
|
|
23025
|
+
var expanded = useMemo(function () {
|
|
23026
|
+
return expandedSet.has(itemId);
|
|
23027
|
+
}, [expandedSet, itemId]);
|
|
22509
23028
|
var ownRef = useRef(null);
|
|
22510
23029
|
var ref = useForkedRef(forwardedRef, ownRef);
|
|
22511
23030
|
var forceUpdate = useForceUpdate();
|
|
22512
23031
|
var generatedId = useGenerateId();
|
|
22513
|
-
useEffect(function () {
|
|
22514
|
-
var isExpanded = expandedSet.has(itemId);
|
|
22515
|
-
if (isExpanded !== expanded) {
|
|
22516
|
-
setExpanded(isExpanded);
|
|
22517
|
-
}
|
|
22518
|
-
}, [expandedSet, itemId, expanded]);
|
|
22519
23032
|
useEffect(function () {
|
|
22520
23033
|
if (!isDisabled && ownRef.current !== null) {
|
|
22521
23034
|
registerTreeItem(treeItemRefArray, ownRef);
|
|
@@ -22622,7 +23135,6 @@ function useTreeItem(props, forwardedRef) {
|
|
|
22622
23135
|
if (expanded) {
|
|
22623
23136
|
focusNext();
|
|
22624
23137
|
} else {
|
|
22625
|
-
setExpanded(true);
|
|
22626
23138
|
handleExpandedChange(event, itemId);
|
|
22627
23139
|
focusSelf();
|
|
22628
23140
|
}
|
|
@@ -22631,7 +23143,6 @@ function useTreeItem(props, forwardedRef) {
|
|
|
22631
23143
|
var collapseFocusedNode = function collapseFocusedNode(event) {
|
|
22632
23144
|
if (hasOwnTreeItems) {
|
|
22633
23145
|
if (expanded) {
|
|
22634
|
-
setExpanded(false);
|
|
22635
23146
|
handleExpandedChange(event, itemId);
|
|
22636
23147
|
focusSelf();
|
|
22637
23148
|
} else {
|
|
@@ -22787,7 +23298,6 @@ function useTreeItem(props, forwardedRef) {
|
|
|
22787
23298
|
parentDepth: parentDepth,
|
|
22788
23299
|
ref: ref,
|
|
22789
23300
|
selectedItems: selectedItems,
|
|
22790
|
-
setExpanded: setExpanded,
|
|
22791
23301
|
treeItemChildren: treeItemChildren,
|
|
22792
23302
|
isDisabled: isDisabled
|
|
22793
23303
|
};
|
|
@@ -22823,7 +23333,7 @@ var StyledTreeItem = /*#__PURE__*/_styled("li", {
|
|
|
22823
23333
|
}, ";padding-right:", function (props) {
|
|
22824
23334
|
return props.theme.spaceScale.spacing02;
|
|
22825
23335
|
}, ";", function (props) {
|
|
22826
|
-
return props.selected && /*#__PURE__*/css("&:before{position:absolute;background-color:", props.isInverse ? props.theme.colors.tertiary500 : props.theme.colors.primary500, ";block-size:100%;content:'';inline-size:", props.theme.spaceScale.spacing02, ";inset-block-start:0;inset-inline-start:0;};label:StyledTreeItem;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzRFEiLCJmaWxlIjoiVHJlZUl0ZW0udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IEFydGljbGVJY29uLCBDaGV2cm9uUmlnaHRJY29uLCBFeHBhbmRNb3JlSWNvbiwgRm9sZGVySWNvbiwgfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IFRyZWVJdGVtQ29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld1NlbGVjdGFibGUgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgY2hlY2tlZFN0YXR1c1RvQm9vbGVhbiwgdXNlVHJlZUl0ZW0sIH0gZnJvbSAnLi91c2VUcmVlSXRlbSc7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gJy4uL0NoZWNrYm94JztcclxuaW1wb3J0IHsgSW5kZXRlcm1pbmF0ZUNoZWNrYm94LCBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMsIH0gZnJvbSAnLi4vSW5kZXRlcm1pbmF0ZUNoZWNrYm94JztcclxuaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJy4uL1RyYW5zaXRpb24nO1xyXG5pbXBvcnQgeyBjYWxjdWxhdGVPZmZzZXQsIGdldFRyZWVJdGVtTGFiZWxDb2xvciwgZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yLCBUcmVlTm9kZVR5cGUsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZUZvY3VzTG9jayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUZvY3VzTG9jayc7XHJcbmltcG9ydCB7IG1lcmdlUmVmcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuY29uc3QgU3R5bGVkVHJlZUl0ZW0gPSBzdHlsZWQubGkgYFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZVR5cGUsIHByb3BzLm5vZGVUeXBlKX07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcblxuICBwYWRkaW5nLWlubGluZS1zdGFydDogJHtwcm9wcyA9PiBjYWxjdWxhdGVPZmZzZXQocHJvcHMubm9kZVR5cGUsIHByb3BzLmRlcHRoKX07XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgICAgb3V0bGluZTogMnB4IHNvbGlkXG4gICAgICAgICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICB9XG4gIH1cblxuICA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmIHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjcsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy5zZWxlY3RlZCAmJlxyXG4gICAgICAgIHRyYW5zcGFyZW50aXplKDAuOTIsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKX07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCwgdHJ1ZSl9O1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCwgdHJ1ZSwgdHJ1ZSl9O1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcblxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgIGNzcyBgXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy50ZXJ0aWFyeTUwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLnByaW1hcnk1MDB9O1xuICAgICAgICAgIGJsb2NrLXNpemU6IDEwMCU7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgaW5saW5lLXNpemU6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDJ9O1xuICAgICAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiAwO1xuICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogMDtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gZ2V0SG92ZXJCYWNrZ3JvdW5kKHtcclxuICAgIGlzRGlzYWJsZWQ6IHByb3BzLmlzRGlzYWJsZWQsXHJcbiAgICBob3ZlckNvbG9yOiBwcm9wcy5ob3ZlckNvbG9yLFxyXG4gICAgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsXHJcbiAgICB0aGVtZTogcHJvcHMudGhlbWUsXHJcbn0pfTtcbiAgICB9XG4gIH1cbmA7XHJcbmZ1bmN0aW9uIGdldEhvdmVyQmFja2dyb3VuZCh7IGlzRGlzYWJsZWQsIGhvdmVyQ29sb3IsIGlzSW52ZXJzZSwgdGhlbWUgfSkge1xyXG4gICAgaWYgKGlzRGlzYWJsZWQpXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIGlmIChob3ZlckNvbG9yKVxyXG4gICAgICAgIHJldHVybiBob3ZlckNvbG9yO1xyXG4gICAgY29uc3QgdHJhbnNwYXJlbmN5ID0gaXNJbnZlcnNlID8gMC44IDogMC45NTtcclxuICAgIHJldHVybiB0cmFuc3BhcmVudGl6ZSh0cmFuc3BhcmVuY3ksIHRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKTtcclxufVxyXG5jb25zdCBJY29uV3JhcHBlciA9IHN0eWxlZC5zcGFuIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgbWFyZ2luLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbmA7XHJcbmNvbnN0IFN0eWxlZExhYmVsV3JhcHBlciA9IHN0eWxlZC5zcGFuIGBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIHdpZHRoOiAxMDAlO1xuYDtcclxuY29uc3QgU3R5bGVkRXhwYW5kV3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLmNvbG9yIHx8XHJcbiAgICBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbiAgaGVpZ2h0OiAkeyh7IHNpemUsIHRoZW1lIH0pID0+IHNpemUgIT09IHVuZGVmaW5lZCA/IGAke3NpemV9cHhgIDogdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDZ9O1xuYDtcclxuY29uc3QgU3R5bGVkQ2hlY2tib3hXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2ZsZXgnIDogJ2lubGluZS1mbGV4Jyl9O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogJHtwcm9wcyA9PiBgY2FsYygxMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH07XG5gO1xyXG5jb25zdCBTdHlsZWRJdGVtV3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogJHtwcm9wcyA9PiAocHJvcHMuaGFzQWRkaXRpb25hbENvbnRlbnQgPyAnY29sdW1uJyA6ICdyb3cnKX07XG4gIGFsaWduLWl0ZW1zOiAke3Byb3BzID0+IChwcm9wcy5oYXNDdXN0b21JY29uU2l6ZSA/ICdjZW50ZXInIDogJ2ZsZXgtc3RhcnQnKX07XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZSwgcHJvcHMubm9kZVR5cGUpfTtcbmA7XHJcbmNvbnN0IEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA1fTtcbmA7XHJcbmV4cG9ydCBjb25zdCBUcmVlSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBob3ZlckNvbG9yLCBpY29uLCBpbmRleCwgbGFiZWwsIGxhYmVsU3R5bGUsIHN0eWxlLCB0ZXN0SWQsIHRvcExldmVsLCB0cmVlSXRlbVN0eWxlcywgLi4ucmVzdCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGlzSW52ZXJzZSA9IHVzZUlzSW52ZXJzZSgpO1xyXG4gICAgY29uc3QgeyBleHBhbmRJY29uU3R5bGVzLCBoYW5kbGVFeHBhbmRlZENoYW5nZSwgaGFzSWNvbnMsIGl0ZW1Ub0ZvY3VzLCBpc1RvcExldmVsU2VsZWN0YWJsZSwgc2VsZWN0YWJsZSwgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdDb250ZXh0KTtcclxuICAgIGNvbnN0IHsgY29udGV4dFZhbHVlLCBoYW5kbGVDbGljaywgaGFuZGxlS2V5RG93biB9ID0gdXNlVHJlZUl0ZW0ocHJvcHMsIGZvcndhcmRlZFJlZik7XHJcbiAgICBjb25zdCB7IGlzRGlzYWJsZWQgfSA9IGNvbnRleHRWYWx1ZTtcclxuICAgIGNvbnN0IHsgY2hlY2tib3hDaGFuZ2VIYW5kbGVyLCBjaGVja2VkU3RhdHVzLCBleHBhbmRlZCwgaGFzT3duVHJlZUl0ZW1zLCBpdGVtRGVwdGgsIGl0ZW1JZCwgcGFyZW50RGVwdGgsIHJlZiwgc2VsZWN0ZWRJdGVtcywgfSA9IGNvbnRleHRWYWx1ZTtcclxuICAgIGNvbnN0IG5vZGVUeXBlID0gaGFzT3duVHJlZUl0ZW1zID8gVHJlZU5vZGVUeXBlLmJyYW5jaCA6IFRyZWVOb2RlVHlwZS5sZWFmO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLnNpbmdsZVxyXG4gICAgICAgID8gc2VsZWN0ZWRJdGVtcz8uWzBdPy5pdGVtSWQgPT09IGl0ZW1JZFxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IGFyaWFDaGVja2VkVmFsdWUgPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUubXVsdGlcclxuICAgICAgICA/IGNoZWNrZWRTdGF0dXMgPT09IEluZGV0ZXJtaW5hdGVDaGVja2JveFN0YXR1cy5pbmRldGVybWluYXRlXHJcbiAgICAgICAgICAgID8gJ21peGVkJ1xyXG4gICAgICAgICAgICA6IGNoZWNrZWRTdGF0dXMgPT09IEluZGV0ZXJtaW5hdGVDaGVja2JveFN0YXR1cy5jaGVja2VkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgW2lzSW5zaWRlVHJlZUl0ZW0sIHNldElzSW5zaWRlVHJlZUl0ZW1dID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xyXG4gICAgY29uc3QgdHJlZUl0ZW1SZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgICBjb25zdCBmb2N1c1RyYXBFbGVtZW50ID0gdXNlRm9jdXNMb2NrKGlzSW5zaWRlVHJlZUl0ZW0pO1xyXG4gICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50cyA9ICdidXR0b24sIFtyb2xlPVwiYnV0dG9uXCJdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgYVtocmVmXSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PVwiLTFcIl0pJztcclxuICAgIGNvbnN0IGdldEludGVyYWN0aXZlRWxlbWVudHMgPSAoY29udGFpbmVyLCBzZWxlY3RvcikgPT4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSkuZmlsdGVyKGVsID0+ICFlbC5oYXNBdHRyaWJ1dGUoJ3RhYmluZGV4JykgfHxcclxuICAgICAgICAgICAgKGVsLnRhYkluZGV4ICE9PSB1bmRlZmluZWQgJiYgZWwudGFiSW5kZXggPj0gMCkpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSBsYWJlbCBhbmQgYWRkaXRpb25hbCBjb250ZW50IG9mIGEgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gbmF2aWdhdGUgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyB1c2luZyB0aGUgYFRhYmAga2V5LCBhY3RpdmF0ZSB0aGVtIHdpdGggYEVudGVyYCBvciBgU3BhY2VgLFxyXG4gICAgICogYW5kIGV4aXQgb3V0c2lkZSBhbmQgZm9jdXMgdGhlIHdob2xlIHRyZWUgaXRlbSB3aXRoIGBFc2NhcGVgLlxyXG4gICAgICogKiovXHJcbiAgICBjb25zdCBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93biA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQsIHNoaWZ0S2V5IH0gPSBldmVudDtcclxuICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IHRhcmdldDtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0ga2V5ID09PSAnRW50ZXInO1xyXG4gICAgICAgIGNvbnN0IGlzU3BhY2UgPSBrZXkgPT09ICcgJztcclxuICAgICAgICBjb25zdCBpc0VzY2FwZSA9IGtleSA9PT0gJ0VzY2FwZSc7XHJcbiAgICAgICAgY29uc3QgaXNUYWIgPSBrZXkgPT09ICdUYWInO1xyXG4gICAgICAgIGNvbnN0IGlzQWN0aXZhdGlvbktleSA9IGlzRW50ZXIgfHwgaXNTcGFjZTtcclxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgIC8vIElmIHRoZSBrZXkgaXMgYFRhYmAsIHdlIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgaW5zaWRlIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAoaXNUYWIgJiYgaXNJbnNpZGVUcmVlSXRlbSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIC8vIEZpbHRlciBsaXN0IG9mIGludGVyYWN0aXZlIGVsZW1lbnRzIHdoaWNoIGFyZSBvbmx5IGluY2x1ZGVkIGZvciBjdXJyZW50IHRyZWUgaXRlbVxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QuZmlsdGVyKGVsID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNsb3Nlc3RUcmVlSXRlbSA9IGVsLmNsb3Nlc3QoJ1tyb2xlPVwidHJlZWl0ZW1cIl0nKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjbG9zZXN0VHJlZUl0ZW0gPT09IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzLmluZGV4T2YoY3VycmVudEVsZW1lbnQpO1xyXG4gICAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBzaGlmdEtleSA/IC0xIDogMTtcclxuICAgICAgICAgICAgY29uc3QgdG90YWwgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzLmxlbmd0aDtcclxuICAgICAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gKGN1cnJlbnRJbmRleCArIGRpcmVjdGlvbiArIHRvdGFsKSAlIHRvdGFsO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHNbbmV4dEluZGV4XTtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRUb0ZvY3VzKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCksIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUHJlc3NpbmcgYEVudGVyYCBvciBgU3BhY2VgIG9uIGFuIGludGVyYWN0aXZlIGVsZW1lbnQgd2lsbCB0cmlnZ2VyIGl0cyBjbGljayBldmVudFxyXG4gICAgICAgIGlmIChpc0FjdGl2YXRpb25LZXkgJiYgaW50ZXJhY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGludGVyYWN0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNb3ZlcyBmb2N1cyBvdXRzaWRlIHRoZSB0cmVlIGl0ZW0gYW5kIGZvY3VzZXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYgd2hlbiBgRXNjYXBlYCBpcyBwcmVzc2VkXHJcbiAgICAgICAgaWYgKGlzRXNjYXBlKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKGZhbHNlKTtcclxuICAgICAgICAgICAgY29uc3QgdHJlZUl0ZW1Ob2RlID0gdHJlZUl0ZW1SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgaWYgKHRyZWVJdGVtTm9kZSkge1xyXG4gICAgICAgICAgICAgICAgdHJlZUl0ZW1Ob2RlLmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBoYW5kbGVPbkNsaWNrID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdCgnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgYVtocmVmXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFtyb2xlPVwibWVudWl0ZW1cIl0nKTtcclxuICAgICAgICAvLyBQcmV2ZW50aW5nIHNlbGVjdGluZyB0aGUgaXRlbSB3aGVuIGNsaWNraW5nIG9uIGludGVyYWN0aXZlIGVsZW1lbnRzIHdoZW4gYHNlbGVjdGFibGVgIGlzIGBzaW5nbGVgXHJcbiAgICAgICAgaWYgKGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLnNpbmdsZSkge1xyXG4gICAgICAgICAgICBoYW5kbGVDbGljayhldmVudCwgaXRlbUlkKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgZGVmYXVsdEljb24gPSBub2RlVHlwZSA9PT0gVHJlZU5vZGVUeXBlLmJyYW5jaCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEZvbGRlckljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KEFydGljbGVJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSk7XHJcbiAgICBjb25zdCBsYWJlbFRleHQgPSAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRMYWJlbFdyYXBwZXIsIHsgdGhlbWU6IHRoZW1lLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgc3R5bGU6IGxhYmVsU3R5bGUsIGlkOiBgJHtpdGVtSWR9LWxhYmVsYCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1sYWJlbGAgfSxcclxuICAgICAgICBoYXNJY29ucyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uV3JhcHBlciwgeyBpc0ludmVyc2U6IGlzSW52ZXJzZSwgdGhlbWU6IHRoZW1lLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWljb25gIH0sIGljb24gfHwgZGVmYXVsdEljb24pKSxcclxuICAgICAgICBsYWJlbCkpO1xyXG4gICAgY29uc3QgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCA9IGFkZGl0aW9uYWxDb250ZW50ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQWRkaXRpb25hbENvbnRlbnRXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaWQ6IGAke2l0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgPz8gaXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgIH0sIGFkZGl0aW9uYWxDb250ZW50KSkgOiBudWxsO1xyXG4gICAgLy8gUHJvcHMgc2hhcmVkIGJ5IENoZWNrYm94IGFuZCBJbmRldGVybWluYXRlQ2hlY2tib3hcclxuICAgIGNvbnN0IGNoZWNrYm94UHJvcHMgPSB7XHJcbiAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQsXHJcbiAgICAgICAgaGlkZUZvY3VzOiB0cnVlLFxyXG4gICAgICAgIGlkOiBgJHtpdGVtSWR9LWNoZWNrYm94YCxcclxuICAgICAgICBpbnB1dFN0eWxlOiB7IG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyB9LFxyXG4gICAgICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCxcclxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhYmVsVGV4dDogbGFiZWxUZXh0LFxyXG4gICAgICAgIG9uQ2hhbmdlOiBjaGVja2JveENoYW5nZUhhbmRsZXIsXHJcbiAgICAgICAgdGFiSW5kZXg6IC0xLFxyXG4gICAgICAgIHRlc3RJZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICB9O1xyXG4gICAgY29uc3Qgb25FeHBhbmRlZENsaWNrZWQgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGhhbmRsZUV4cGFuZGVkQ2hhbmdlKGV2ZW50LCBpdGVtSWQpO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IHRhYkluZGV4ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0ZvY3VzID09PSBpdGVtSWQgPyAwIDogLTE7XHJcbiAgICB9LCBbaXNEaXNhYmxlZCwgaXRlbVRvRm9jdXMsIGl0ZW1JZF0pO1xyXG4gICAgY29uc3Qgc2hvdWxkU2hvd0NoZWNrYm94ID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpICYmXHJcbiAgICAgICAgKGlzVG9wTGV2ZWxTZWxlY3RhYmxlICE9PSBmYWxzZSB8fCAhdG9wTGV2ZWwpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiB3aXRoaW4gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBQcmVzc2luZyBgQ3RybCArIEVudGVyYCBvciBgQ29tbWFuZCArIEVudGVyYCBmb2N1c2VzIHRoZSBmaXJzdCBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpdGhpbiB0aGUgdHJlZSBpdGVtXHJcbiAgICAgKiBhbmQgbG9ja3MgZm9jdXMgaW5zaWRlIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogSWYgdGhlIGZvY3VzIGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBpdCBoYW5kbGVzIGtleSBldmVudHMgZm9yIGludGVyYWN0aW9uIGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEl0IGFsc28gaGFuZGxlcyB0aGUgb3RoZXIga2V5cyB0byB0cmlnZ2VyIHRoZSBjbGljayBldmVudCBvbiB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICogKiovXHJcbiAgICBjb25zdCBvbktleURvd25IYW5kbGVyID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBrZXksIHRhcmdldCwgY3VycmVudFRhcmdldCB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc0N0cmxPckNvbW1hbmQgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXk7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsRW50ZXIgPSBpc0N0cmxPckNvbW1hbmQgJiYgaXNFbnRlcjtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIEN0cmwgKyBFbnRlciBvciBDb21tYW5kICsgRW50ZXIsIGZvY3VzIHRoZSBmaXJzdCBpbnRlcmFjdGl2ZSBlbGVtZW50XHJcbiAgICAgICAgLy8gYW5kIGxvY2sgZm9jdXMgaW5zaWRlIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAoaXNDdHJsRW50ZXIgJiYgdGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIHNldElzSW5zaWRlVHJlZUl0ZW0odHJ1ZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHNMaXN0ID0gZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyhjdXJyZW50VGFyZ2V0LCBpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdFswXTtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRUb0ZvY3VzKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50VG9Gb2N1cy5mb2N1cygpO1xyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBFbnN1cmUgdmFsaWQgQ1NTIHNlbGVjdG9ycyBieSBlc2NhcGluZyBzcGVjaWFsIGNoYXJhY3RlcnMgKGUuZy4sIHBlcmlvZHMgaW4gaXRlbUlkKVxyXG4gICAgICAgIGNvbnN0IHNhZmVJdGVtSWQgPSBDU1MuZXNjYXBlKGl0ZW1JZCk7XHJcbiAgICAgICAgY29uc3QgaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQgPSB0YXJnZXQuY2xvc2VzdChgIyR7c2FmZUl0ZW1JZH0tbGFiZWwsICMke3NhZmVJdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmApO1xyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgd2l0aGluIHRoZSBsYWJlbCBvciBhZGRpdGlvbmFsIGNvbnRlbnQsIGhhbmRsZSBrZXkgZXZlbnRzIGZvciB0aG9zZSBhcmVhc1xyXG4gICAgICAgIGlmIChpc1dpdGhpbkxhYmVsT3JBZGRpdGlvbmFsQ29udGVudCkge1xyXG4gICAgICAgICAgICBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSWYgdGhlIHRhcmdldCBpcyB0aGUgdHJlZSBpdGVtIGl0c2VsZiwgaGFuZGxlIGtleSBkb3duIGZvciB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBoYW5kbGVLZXlEb3duKGV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHRyZWVJdGVtU3R5bGVzIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiwgaG92ZXJDb2xvcjogaG92ZXJDb2xvciB9KSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSXRlbVdyYXBwZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgPz8gaXRlbUlkfS1pdGVtd3JhcHBlcmAsIGRlcHRoOiBpdGVtRGVwdGgsIGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCBoYXNDdXN0b21JY29uU2l6ZTogISFleHBhbmRJY29uU3R5bGVzPy5zaXplLCBpZDogYCR7aXRlbUlkfS1pdGVtd3JhcHBlcmAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHNlbGVjdGFibGU6IHNlbGVjdGFibGUsIHN0eWxlOiBzdHlsZSwgdGhlbWU6IHRoZW1lLCByZWY6IG1lcmdlUmVmcyhyZWYsIGZvY3VzVHJhcEVsZW1lbnQpLCBvbkNsaWNrOiBoYW5kbGVPbkNsaWNrIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGFzT3duVHJlZUl0ZW1zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEV4cGFuZFdyYXBwZXIsIHsgXCJhcmlhLWhpZGRlblwiOiBCb29sZWFuKCFleHBhbmRlZCksIHNpemU6IGV4cGFuZEljb25TdHlsZXM/LnNpemUsIGNvbG9yOiBleHBhbmRJY29uU3R5bGVzPy5jb2xvciwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1leHBhbmRgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb25DbGljazogZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FeHBhbmRlZENsaWNrZWQoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB0aGVtZTogdGhlbWUgfSwgZXhwYW5kZWQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChFeHBhbmRNb3JlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIHNpemU6IGV4cGFuZEljb25TdHlsZXM/LnNpemUgfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2hldnJvblJpZ2h0SWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIHNpemU6IGV4cGFuZEljb25TdHlsZXM/LnNpemUgfSkpKSksXHJcbiAgICAgICAgICAgICAgICAgICAgc2hvdWxkU2hvd0NoZWNrYm94ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2hlY2tib3hXcmFwcGVyLCB7IGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCB0aGVtZTogdGhlbWUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzT3duVHJlZUl0ZW1zID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5kZXRlcm1pbmF0ZUNoZWNrYm94LCBPYmplY3QuYXNzaWduKHt9LCBjaGVja2JveFByb3BzLCB7IHN0YXR1czogY2hlY2tlZFN0YXR1cyB9KSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgY2hlY2tlZDogY2hlY2tlZFN0YXR1c1RvQm9vbGVhbihjaGVja2VkU3RhdHVzKSB9KSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlSXRlbUFkZGl0aW9uYWxDb250ZW50KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlSXRlbUFkZGl0aW9uYWxDb250ZW50KSkpLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkPy50eXBlID09PSBUcmVlSXRlbSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwgeyByb2xlOiBcImdyb3VwXCIgfSwgUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2hpbGQucHJvcHMuaXRlbUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbURlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKSkpIDogKGNoaWxkKTtcclxuICAgICAgICAgICAgICAgIH0pKSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
23336
|
+
return props.selected && /*#__PURE__*/css("&:before{position:absolute;background-color:", props.isInverse ? props.theme.colors.tertiary500 : props.theme.colors.primary500, ";block-size:100%;content:'';inline-size:", props.theme.spaceScale.spacing02, ";inset-block-start:0;inset-inline-start:0;};label:StyledTreeItem;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5RFEiLCJmaWxlIjoiVHJlZUl0ZW0udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IEFydGljbGVJY29uLCBDaGV2cm9uUmlnaHRJY29uLCBFeHBhbmRNb3JlSWNvbiwgRm9sZGVySWNvbiwgfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IFRyZWVJdGVtQ29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0IH0gZnJvbSAnLi9UcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0NvbmZpZ0NvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3Q29uZmlnQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld1NlbGVjdGlvbkNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld1NlbGVjdGFibGUgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgY2hlY2tlZFN0YXR1c1RvQm9vbGVhbiwgdXNlVHJlZUl0ZW0sIH0gZnJvbSAnLi91c2VUcmVlSXRlbSc7XHJcbmltcG9ydCB7IGNhbGN1bGF0ZU9mZnNldCwgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yLCBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IsIFRyZWVOb2RlVHlwZSwgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgdXNlRm9jdXNMb2NrIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRm9jdXNMb2NrJztcclxuaW1wb3J0IHsgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IG1lcmdlUmVmcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuY29uc3QgU3R5bGVkVHJlZUl0ZW0gPSBzdHlsZWQubGkgYFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZVR5cGUsIHByb3BzLm5vZGVUeXBlKX07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcblxuICBwYWRkaW5nLWlubGluZS1zdGFydDogJHtwcm9wcyA9PiBjYWxjdWxhdGVPZmZzZXQocHJvcHMubm9kZVR5cGUsIHByb3BzLmRlcHRoKX07XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgICAgb3V0bGluZTogMnB4IHNvbGlkXG4gICAgICAgICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICB9XG4gIH1cblxuICA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmIHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjcsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy5zZWxlY3RlZCAmJlxyXG4gICAgICAgIHRyYW5zcGFyZW50aXplKDAuOTIsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKX07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCwgdHJ1ZSl9O1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCwgdHJ1ZSwgdHJ1ZSl9O1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcblxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgIGNzcyBgXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy50ZXJ0aWFyeTUwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLnByaW1hcnk1MDB9O1xuICAgICAgICAgIGJsb2NrLXNpemU6IDEwMCU7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgaW5saW5lLXNpemU6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDJ9O1xuICAgICAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiAwO1xuICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogMDtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gZ2V0SG92ZXJCYWNrZ3JvdW5kKHtcclxuICAgIGlzRGlzYWJsZWQ6IHByb3BzLmlzRGlzYWJsZWQsXHJcbiAgICBob3ZlckNvbG9yOiBwcm9wcy5ob3ZlckNvbG9yLFxyXG4gICAgaXNJbnZlcnNlOiBwcm9wcy5pc0ludmVyc2UsXHJcbiAgICB0aGVtZTogcHJvcHMudGhlbWUsXHJcbn0pfTtcbiAgICB9XG4gIH1cbmA7XHJcbmZ1bmN0aW9uIGdldEhvdmVyQmFja2dyb3VuZCh7IGlzRGlzYWJsZWQsIGhvdmVyQ29sb3IsIGlzSW52ZXJzZSwgdGhlbWUgfSkge1xyXG4gICAgaWYgKGlzRGlzYWJsZWQpXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIGlmIChob3ZlckNvbG9yKVxyXG4gICAgICAgIHJldHVybiBob3ZlckNvbG9yO1xyXG4gICAgY29uc3QgdHJhbnNwYXJlbmN5ID0gaXNJbnZlcnNlID8gMC44IDogMC45NTtcclxuICAgIHJldHVybiB0cmFuc3BhcmVudGl6ZSh0cmFuc3BhcmVuY3ksIHRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKTtcclxufVxyXG5jb25zdCBJY29uV3JhcHBlciA9IHN0eWxlZC5zcGFuIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgbWFyZ2luLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbmA7XHJcbmNvbnN0IFN0eWxlZExhYmVsV3JhcHBlciA9IHN0eWxlZC5zcGFuIGBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIHdpZHRoOiAxMDAlO1xuYDtcclxuY29uc3QgU3R5bGVkRXhwYW5kV3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLmNvbG9yIHx8XHJcbiAgICBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbiAgaGVpZ2h0OiAkeyh7IHNpemUsIHRoZW1lIH0pID0+IHNpemUgIT09IHVuZGVmaW5lZCA/IGAke3NpemV9cHhgIDogdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDZ9O1xuYDtcclxuY29uc3QgU3R5bGVkQ2hlY2tib3hXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2ZsZXgnIDogJ2lubGluZS1mbGV4Jyl9O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogJHtwcm9wcyA9PiBgY2FsYygxMDAlIC0gJHtwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM30pYH07XG5gO1xyXG5jb25zdCBTdHlsZWRJdGVtV3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogJHtwcm9wcyA9PiAocHJvcHMuaGFzQWRkaXRpb25hbENvbnRlbnQgPyAnY29sdW1uJyA6ICdyb3cnKX07XG4gIGFsaWduLWl0ZW1zOiAke3Byb3BzID0+IChwcm9wcy5oYXNDdXN0b21JY29uU2l6ZSA/ICdjZW50ZXInIDogJ2ZsZXgtc3RhcnQnKX07XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZSwgcHJvcHMubm9kZVR5cGUpfTtcbmA7XHJcbmNvbnN0IEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA1fTtcbmA7XHJcbmNvbnN0IFRyZWVJdGVtQ29tcG9uZW50ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBhZGRpdGlvbmFsQ29udGVudCwgY2hpbGRyZW4sIGhvdmVyQ29sb3IsIGljb24sIGluZGV4OiBpbmRleFByb3AsIGxhYmVsLCBsYWJlbFN0eWxlLCBzdHlsZSwgdGVzdElkLCB0b3BMZXZlbDogdG9wTGV2ZWxQcm9wLCB0cmVlSXRlbVN0eWxlcywgLi4ucmVzdCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGlzSW52ZXJzZSA9IHVzZUlzSW52ZXJzZSgpO1xyXG4gICAgLy8gUmVhZCBoaWVyYXJjaHkgaW5mb3JtYXRpb24gZnJvbSBjb250ZXh0IChyZWR1Y2VzIGNsb25lRWxlbWVudCBvdmVyaGVhZClcclxuICAgIGNvbnN0IGhpZXJhcmNoeUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dCk7XHJcbiAgICAvLyBVc2UgY29udGV4dCB2YWx1ZXMgaWYgcHJvcHMgYXJlIG5vdCBwcm92aWRlZCAoZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpXHJcbiAgICBjb25zdCBpbmRleCA9IGluZGV4UHJvcCAhPT0gdW5kZWZpbmVkID8gaW5kZXhQcm9wIDogaGllcmFyY2h5Q29udGV4dC5pbmRleDtcclxuICAgIGNvbnN0IHRvcExldmVsID0gdG9wTGV2ZWxQcm9wICE9PSB1bmRlZmluZWQgPyB0b3BMZXZlbFByb3AgOiBoaWVyYXJjaHlDb250ZXh0LmlzVG9wTGV2ZWw7XHJcbiAgICAvLyBDb25zdW1lIHNwbGl0IGNvbnRleHRzIGZvciByZWR1Y2VkIHJlLXJlbmRlciBzY29wZVxyXG4gICAgY29uc3QgeyBpdGVtVG9Gb2N1cyB9ID0gUmVhY3QudXNlQ29udGV4dChUcmVlVmlld1NlbGVjdGlvbkNvbnRleHQpO1xyXG4gICAgY29uc3QgeyBoYW5kbGVFeHBhbmRlZENoYW5nZSB9ID0gUmVhY3QudXNlQ29udGV4dChUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQpO1xyXG4gICAgY29uc3QgeyBleHBhbmRJY29uU3R5bGVzLCBoYXNJY29ucywgaXNUb3BMZXZlbFNlbGVjdGFibGUsIHNlbGVjdGFibGUgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdDb25maWdDb250ZXh0KTtcclxuICAgIC8vIFBhc3MgdGhlIHJlc29sdmVkIHZhbHVlcyB0byB1c2VUcmVlSXRlbVxyXG4gICAgY29uc3QgcHJvcHNXaXRoSGllcmFyY2h5ID0ge1xyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIHRvcExldmVsLFxyXG4gICAgICAgIGl0ZW1EZXB0aDogaGllcmFyY2h5Q29udGV4dC5kZXB0aCxcclxuICAgICAgICBwYXJlbnREZXB0aDogaGllcmFyY2h5Q29udGV4dC5wYXJlbnREZXB0aCxcclxuICAgIH07XHJcbiAgICBjb25zdCB7IGNvbnRleHRWYWx1ZSwgaGFuZGxlQ2xpY2ssIGhhbmRsZUtleURvd24gfSA9IHVzZVRyZWVJdGVtKHByb3BzV2l0aEhpZXJhcmNoeSwgZm9yd2FyZGVkUmVmKTtcclxuICAgIGNvbnN0IHsgaXNEaXNhYmxlZCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3QgeyBjaGVja2JveENoYW5nZUhhbmRsZXIsIGNoZWNrZWRTdGF0dXMsIGV4cGFuZGVkLCBoYXNPd25UcmVlSXRlbXMsIGl0ZW1EZXB0aCwgaXRlbUlkLCByZWYsIHNlbGVjdGVkSXRlbXMsIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCBub2RlVHlwZSA9IGhhc093blRyZWVJdGVtcyA/IFRyZWVOb2RlVHlwZS5icmFuY2ggOiBUcmVlTm9kZVR5cGUubGVhZjtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGVcclxuICAgICAgICA/IHNlbGVjdGVkSXRlbXM/LlswXT8uaXRlbUlkID09PSBpdGVtSWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBhcmlhQ2hlY2tlZFZhbHVlID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpXHJcbiAgICAgICAgPyBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuaW5kZXRlcm1pbmF0ZVxyXG4gICAgICAgICAgICA/ICdtaXhlZCdcclxuICAgICAgICAgICAgOiBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuY2hlY2tlZFxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IFtpc0luc2lkZVRyZWVJdGVtLCBzZXRJc0luc2lkZVRyZWVJdGVtXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgZm9jdXNUcmFwRWxlbWVudCA9IHVzZUZvY3VzTG9jayhpc0luc2lkZVRyZWVJdGVtKTtcclxuICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHMgPSAnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSc7XHJcbiAgICBjb25zdCBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzID0gUmVhY3QudXNlQ2FsbGJhY2soKGNvbnRhaW5lciwgc2VsZWN0b3IpID0+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikpLmZpbHRlcihlbCA9PiAhZWwuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpIHx8XHJcbiAgICAgICAgICAgIChlbC50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmIGVsLnRhYkluZGV4ID49IDApKTtcclxuICAgIH0sIFtdKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSBsYWJlbCBhbmQgYWRkaXRpb25hbCBjb250ZW50IG9mIGEgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gbmF2aWdhdGUgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyB1c2luZyB0aGUgYFRhYmAga2V5LCBhY3RpdmF0ZSB0aGVtIHdpdGggYEVudGVyYCBvciBgU3BhY2VgLFxyXG4gICAgICogYW5kIGV4aXQgb3V0c2lkZSBhbmQgZm9jdXMgdGhlIHdob2xlIHRyZWUgaXRlbSB3aXRoIGBFc2NhcGVgLlxyXG4gICAgICogKiovXHJcbiAgICBjb25zdCBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93biA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQsIHNoaWZ0S2V5IH0gPSBldmVudDtcclxuICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IHRhcmdldDtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0ga2V5ID09PSAnRW50ZXInO1xyXG4gICAgICAgIGNvbnN0IGlzU3BhY2UgPSBrZXkgPT09ICcgJztcclxuICAgICAgICBjb25zdCBpc0VzY2FwZSA9IGtleSA9PT0gJ0VzY2FwZSc7XHJcbiAgICAgICAgY29uc3QgaXNUYWIgPSBrZXkgPT09ICdUYWInO1xyXG4gICAgICAgIGNvbnN0IGlzQWN0aXZhdGlvbktleSA9IGlzRW50ZXIgfHwgaXNTcGFjZTtcclxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgIC8vIElmIHRoZSBrZXkgaXMgYFRhYmAsIHdlIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgaW5zaWRlIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAoaXNUYWIgJiYgaXNJbnNpZGVUcmVlSXRlbSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIC8vIEZpbHRlciBsaXN0IG9mIGludGVyYWN0aXZlIGVsZW1lbnRzIHdoaWNoIGFyZSBvbmx5IGluY2x1ZGVkIGZvciBjdXJyZW50IHRyZWUgaXRlbVxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QuZmlsdGVyKGVsID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNsb3Nlc3RUcmVlSXRlbSA9IGVsLmNsb3Nlc3QoJ1tyb2xlPVwidHJlZWl0ZW1cIl0nKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjbG9zZXN0VHJlZUl0ZW0gPT09IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzLmluZGV4T2YoY3VycmVudEVsZW1lbnQpO1xyXG4gICAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBzaGlmdEtleSA/IC0xIDogMTtcclxuICAgICAgICAgICAgY29uc3QgdG90YWwgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzLmxlbmd0aDtcclxuICAgICAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gKGN1cnJlbnRJbmRleCArIGRpcmVjdGlvbiArIHRvdGFsKSAlIHRvdGFsO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHNbbmV4dEluZGV4XTtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRUb0ZvY3VzKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCksIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUHJlc3NpbmcgYEVudGVyYCBvciBgU3BhY2VgIG9uIGFuIGludGVyYWN0aXZlIGVsZW1lbnQgd2lsbCB0cmlnZ2VyIGl0cyBjbGljayBldmVudFxyXG4gICAgICAgIGlmIChpc0FjdGl2YXRpb25LZXkgJiYgaW50ZXJhY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGludGVyYWN0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNb3ZlcyBmb2N1cyBvdXRzaWRlIHRoZSB0cmVlIGl0ZW0gYW5kIGZvY3VzZXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYgd2hlbiBgRXNjYXBlYCBpcyBwcmVzc2VkXHJcbiAgICAgICAgaWYgKGlzRXNjYXBlKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKGZhbHNlKTtcclxuICAgICAgICAgICAgY29uc3QgdHJlZUl0ZW1Ob2RlID0gdHJlZUl0ZW1SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgaWYgKHRyZWVJdGVtTm9kZSkge1xyXG4gICAgICAgICAgICAgICAgdHJlZUl0ZW1Ob2RlLmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzLCBpbnRlcmFjdGl2ZUVsZW1lbnRzLCBpc0luc2lkZVRyZWVJdGVtXSk7XHJcbiAgICBjb25zdCBoYW5kbGVPbkNsaWNrID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdCgnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgYVtocmVmXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFtyb2xlPVwibWVudWl0ZW1cIl0nKTtcclxuICAgICAgICAvLyBQcmV2ZW50aW5nIHNlbGVjdGluZyB0aGUgaXRlbSB3aGVuIGNsaWNraW5nIG9uIGludGVyYWN0aXZlIGVsZW1lbnRzIHdoZW4gYHNlbGVjdGFibGVgIGlzIGBzaW5nbGVgXHJcbiAgICAgICAgaWYgKGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLnNpbmdsZSkge1xyXG4gICAgICAgICAgICBoYW5kbGVDbGljayhldmVudCwgaXRlbUlkKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbaXNEaXNhYmxlZCwgc2VsZWN0YWJsZSwgaGFuZGxlQ2xpY2ssIGl0ZW1JZF0pO1xyXG4gICAgY29uc3QgZGVmYXVsdEljb24gPSBub2RlVHlwZSA9PT0gVHJlZU5vZGVUeXBlLmJyYW5jaCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEZvbGRlckljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KEFydGljbGVJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSk7XHJcbiAgICBjb25zdCBsYWJlbFRleHQgPSAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRMYWJlbFdyYXBwZXIsIHsgdGhlbWU6IHRoZW1lLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgc3R5bGU6IGxhYmVsU3R5bGUsIGlkOiBgJHtpdGVtSWR9LWxhYmVsYCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1sYWJlbGAgfSxcclxuICAgICAgICBoYXNJY29ucyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChJY29uV3JhcHBlciwgeyBpc0ludmVyc2U6IGlzSW52ZXJzZSwgdGhlbWU6IHRoZW1lLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWljb25gIH0sIGljb24gfHwgZGVmYXVsdEljb24pKSxcclxuICAgICAgICBsYWJlbCkpO1xyXG4gICAgY29uc3QgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCA9IGFkZGl0aW9uYWxDb250ZW50ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQWRkaXRpb25hbENvbnRlbnRXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaWQ6IGAke2l0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgPz8gaXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgIH0sIGFkZGl0aW9uYWxDb250ZW50KSkgOiBudWxsO1xyXG4gICAgLy8gTWVtb2l6ZSBpbmxpbmUgc3R5bGUgb2JqZWN0cyB0byBwcmV2ZW50IHVubmVjZXNzYXJ5IHJlLXJlbmRlcnNcclxuICAgIGNvbnN0IGNoZWNrYm94SW5wdXRTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHsgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIH0pLCBbdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDNdKTtcclxuICAgIGNvbnN0IGNoZWNrYm94TGFiZWxTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcclxuICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICB9KSwgW10pO1xyXG4gICAgLy8gUHJvcHMgc2hhcmVkIGJ5IENoZWNrYm94IGFuZCBJbmRldGVybWluYXRlQ2hlY2tib3hcclxuICAgIGNvbnN0IGNoZWNrYm94UHJvcHMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XHJcbiAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQsXHJcbiAgICAgICAgaGlkZUZvY3VzOiB0cnVlLFxyXG4gICAgICAgIGlkOiBgJHtpdGVtSWR9LWNoZWNrYm94YCxcclxuICAgICAgICBpbnB1dFN0eWxlOiBjaGVja2JveElucHV0U3R5bGUsXHJcbiAgICAgICAgbGFiZWxTdHlsZTogY2hlY2tib3hMYWJlbFN0eWxlLFxyXG4gICAgICAgIGxhYmVsVGV4dDogbGFiZWxUZXh0LFxyXG4gICAgICAgIG9uQ2hhbmdlOiBjaGVja2JveENoYW5nZUhhbmRsZXIsXHJcbiAgICAgICAgdGFiSW5kZXg6IC0xLFxyXG4gICAgICAgIHRlc3RJZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICB9KSwgW1xyXG4gICAgICAgIGlzRGlzYWJsZWQsXHJcbiAgICAgICAgaXRlbUlkLFxyXG4gICAgICAgIGNoZWNrYm94SW5wdXRTdHlsZSxcclxuICAgICAgICBjaGVja2JveExhYmVsU3R5bGUsXHJcbiAgICAgICAgbGFiZWxUZXh0LFxyXG4gICAgICAgIGNoZWNrYm94Q2hhbmdlSGFuZGxlcixcclxuICAgIF0pO1xyXG4gICAgY29uc3Qgb25FeHBhbmRlZENsaWNrZWQgPSBSZWFjdC51c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGhhbmRsZUV4cGFuZGVkQ2hhbmdlKGV2ZW50LCBpdGVtSWQpO1xyXG4gICAgfSwgW2hhbmRsZUV4cGFuZGVkQ2hhbmdlLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IGhhbmRsZUV4cGFuZENsaWNrID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKCFpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIG9uRXhwYW5kZWRDbGlja2VkKGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbaXNEaXNhYmxlZCwgb25FeHBhbmRlZENsaWNrZWRdKTtcclxuICAgIGNvbnN0IHRhYkluZGV4ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0ZvY3VzID09PSBpdGVtSWQgPyAwIDogLTE7XHJcbiAgICB9LCBbaXNEaXNhYmxlZCwgaXRlbVRvRm9jdXMsIGl0ZW1JZF0pO1xyXG4gICAgY29uc3Qgc2hvdWxkU2hvd0NoZWNrYm94ID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpICYmXHJcbiAgICAgICAgKGlzVG9wTGV2ZWxTZWxlY3RhYmxlICE9PSBmYWxzZSB8fCAhdG9wTGV2ZWwpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiB3aXRoaW4gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBQcmVzc2luZyBgQ3RybCArIEVudGVyYCBvciBgQ29tbWFuZCArIEVudGVyYCBmb2N1c2VzIHRoZSBmaXJzdCBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpdGhpbiB0aGUgdHJlZSBpdGVtXHJcbiAgICAgKiBhbmQgbG9ja3MgZm9jdXMgaW5zaWRlIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogSWYgdGhlIGZvY3VzIGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBpdCBoYW5kbGVzIGtleSBldmVudHMgZm9yIGludGVyYWN0aW9uIGVsZW1lbnRzLlxyXG4gICAgICpcclxuICAgICAqIEl0IGFsc28gaGFuZGxlcyB0aGUgb3RoZXIga2V5cyB0byB0cmlnZ2VyIHRoZSBjbGljayBldmVudCBvbiB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICogKiovXHJcbiAgICBjb25zdCBvbktleURvd25IYW5kbGVyID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBrZXksIHRhcmdldCwgY3VycmVudFRhcmdldCB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc0N0cmxPckNvbW1hbmQgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXk7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsRW50ZXIgPSBpc0N0cmxPckNvbW1hbmQgJiYgaXNFbnRlcjtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIEN0cmwgKyBFbnRlciBvciBDb21tYW5kICsgRW50ZXIsIGZvY3VzIHRoZSBmaXJzdCBpbnRlcmFjdGl2ZSBlbGVtZW50XHJcbiAgICAgICAgLy8gYW5kIGxvY2sgZm9jdXMgaW5zaWRlIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAoaXNDdHJsRW50ZXIgJiYgdGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIHNldElzSW5zaWRlVHJlZUl0ZW0odHJ1ZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHNMaXN0ID0gZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyhjdXJyZW50VGFyZ2V0LCBpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdFswXTtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRUb0ZvY3VzKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50VG9Gb2N1cy5mb2N1cygpO1xyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBFbnN1cmUgdmFsaWQgQ1NTIHNlbGVjdG9ycyBieSBlc2NhcGluZyBzcGVjaWFsIGNoYXJhY3RlcnMgKGUuZy4sIHBlcmlvZHMgaW4gaXRlbUlkKVxyXG4gICAgICAgIGNvbnN0IHNhZmVJdGVtSWQgPSBDU1MuZXNjYXBlKGl0ZW1JZCk7XHJcbiAgICAgICAgY29uc3QgaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQgPSB0YXJnZXQuY2xvc2VzdChgIyR7c2FmZUl0ZW1JZH0tbGFiZWwsICMke3NhZmVJdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmApO1xyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgd2l0aGluIHRoZSBsYWJlbCBvciBhZGRpdGlvbmFsIGNvbnRlbnQsIGhhbmRsZSBrZXkgZXZlbnRzIGZvciB0aG9zZSBhcmVhc1xyXG4gICAgICAgIGlmIChpc1dpdGhpbkxhYmVsT3JBZGRpdGlvbmFsQ29udGVudCkge1xyXG4gICAgICAgICAgICBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSWYgdGhlIHRhcmdldCBpcyB0aGUgdHJlZSBpdGVtIGl0c2VsZiwgaGFuZGxlIGtleSBkb3duIGZvciB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBoYW5kbGVLZXlEb3duKGV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtcclxuICAgICAgICBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzLFxyXG4gICAgICAgIGludGVyYWN0aXZlRWxlbWVudHMsXHJcbiAgICAgICAgaXRlbUlkLFxyXG4gICAgICAgIGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duLFxyXG4gICAgICAgIGhhbmRsZUtleURvd24sXHJcbiAgICBdKTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBzdHlsZTogdHJlZUl0ZW1TdHlsZXMgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRUcmVlSXRlbSwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBcImFyaWEtZXhwYW5kZWRcIjogaGFzT3duVHJlZUl0ZW1zID8gZXhwYW5kZWQgOiBudWxsLCBcImFyaWEtc2VsZWN0ZWRcIjogc2VsZWN0ZWRJdGVtLCBcImFyaWEtY2hlY2tlZFwiOiBzaG91bGRTaG93Q2hlY2tib3ggPyBhcmlhQ2hlY2tlZFZhbHVlIDogbnVsbCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGRlcHRoOiBpdGVtRGVwdGgsIGhhc093blRyZWVJdGVtczogaGFzT3duVHJlZUl0ZW1zLCBpZDogaXRlbUlkLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgbm9kZVR5cGU6IG5vZGVUeXBlLCByb2xlOiBcInRyZWVpdGVtXCIsIHNlbGVjdGFibGVUeXBlOiBzZWxlY3RhYmxlLCBzZWxlY3RlZDogc2VsZWN0ZWRJdGVtLCB0aGVtZTogdGhlbWUsIHRhYkluZGV4OiB0YWJJbmRleCwgb25LZXlEb3duOiBvbktleURvd25IYW5kbGVyLCByZWY6IHRyZWVJdGVtUmVmLCBob3ZlckNvbG9yOiBob3ZlckNvbG9yIH0pLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJdGVtV3JhcHBlciwgeyBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWl0ZW13cmFwcGVyYCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIGhhc0N1c3RvbUljb25TaXplOiAhIWV4cGFuZEljb25TdHlsZXM/LnNpemUsIGlkOiBgJHtpdGVtSWR9LWl0ZW13cmFwcGVyYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgc2VsZWN0YWJsZTogc2VsZWN0YWJsZSwgc3R5bGU6IHN0eWxlLCB0aGVtZTogdGhlbWUsIHJlZjogbWVyZ2VSZWZzKHJlZiwgZm9jdXNUcmFwRWxlbWVudCksIG9uQ2xpY2s6IGhhbmRsZU9uQ2xpY2sgfSxcclxuICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkRXhwYW5kV3JhcHBlciwgeyBcImFyaWEtaGlkZGVuXCI6IEJvb2xlYW4oIWV4cGFuZGVkKSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSwgY29sb3I6IGV4cGFuZEljb25TdHlsZXM/LmNvbG9yLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWV4cGFuZGAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBoYW5kbGVFeHBhbmRDbGljaywgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3dDaGVja2JveCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENoZWNrYm94V3JhcHBlciwgeyBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEluZGV0ZXJtaW5hdGVDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBzdGF0dXM6IGNoZWNrZWRTdGF0dXMgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBPYmplY3QuYXNzaWduKHt9LCBjaGVja2JveFByb3BzLCB7IGNoZWNrZWQ6IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4oY2hlY2tlZFN0YXR1cykgfSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBjaGlsZEluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkPy50eXBlICE9PSBUcmVlSXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFBhc3MgaGllcmFyY2h5IGluZm8gdGhyb3VnaCBjb250ZXh0IGluc3RlYWQgb2YgY2xvbmVFbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmVzdGVkSGllcmFyY2h5VmFsdWUgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoOiBpdGVtRGVwdGggKyAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnREZXB0aDogaXRlbURlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1RvcExldmVsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNoaWxkSW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJhbnNpdGlvbiwgeyBpc09wZW46IGV4cGFuZGVkLCB1bm1vdW50T25FeGl0OiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7IHJvbGU6IFwiZ3JvdXBcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQuUHJvdmlkZXIsIHsga2V5OiBjaGlsZC5wcm9wcy5pdGVtSWQsIHZhbHVlOiBuZXN0ZWRIaWVyYXJjaHlWYWx1ZSB9LCBjaGlsZCkpKSk7XHJcbiAgICAgICAgICAgICAgICB9KSkpKSk7XHJcbn0pO1xyXG4vKipcclxuICogQ3VzdG9tIGNvbXBhcmlzb24gZnVuY3Rpb24gZm9yIFJlYWN0Lm1lbW9cclxuICogT25seSByZS1yZW5kZXIgVHJlZUl0ZW0gd2hlbiByZWxldmFudCBwcm9wcyBjaGFuZ2VcclxuICovXHJcbmZ1bmN0aW9uIGFyZVByb3BzRXF1YWwocHJldlByb3BzLCBuZXh0UHJvcHMpIHtcclxuICAgIC8vIENoZWNrIGlmIGl0ZW1JZCBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLml0ZW1JZCAhPT0gbmV4dFByb3BzLml0ZW1JZCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIGxhYmVsIGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMubGFiZWwgIT09IG5leHRQcm9wcy5sYWJlbCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIGRpc2FibGVkIHN0YXRlIGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuaXNEaXNhYmxlZCAhPT0gbmV4dFByb3BzLmlzRGlzYWJsZWQpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBpY29uIGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuaWNvbiAhPT0gbmV4dFByb3BzLmljb24pIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBhZGRpdGlvbmFsIGNvbnRlbnQgY2hhbmdlZFxyXG4gICAgaWYgKHByZXZQcm9wcy5hZGRpdGlvbmFsQ29udGVudCAhPT0gbmV4dFByb3BzLmFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgaG92ZXIgY29sb3IgY2hhbmdlZFxyXG4gICAgaWYgKHByZXZQcm9wcy5ob3ZlckNvbG9yICE9PSBuZXh0UHJvcHMuaG92ZXJDb2xvcikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIGNoaWxkcmVuIGNoYW5nZWQgKGZvciBuZXN0ZWQgdHJlZSBpdGVtcylcclxuICAgIC8vIFVzaW5nIHR5cGUgYXNzZXJ0aW9uIHNpbmNlIGNoaWxkcmVuIGNvbWVzIGZyb20gUmVhY3QuSFRNTEF0dHJpYnV0ZXNcclxuICAgIGlmIChwcmV2UHJvcHMuY2hpbGRyZW4gIT09IG5leHRQcm9wcy5jaGlsZHJlbikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIHN0eWxlcyBjaGFuZ2VkXHJcbiAgICAvLyBVc2luZyB0eXBlIGFzc2VydGlvbiBzaW5jZSBzdHlsZSBjb21lcyBmcm9tIFJlYWN0LkhUTUxBdHRyaWJ1dGVzXHJcbiAgICBpZiAocHJldlByb3BzLnN0eWxlICE9PSBuZXh0UHJvcHMuc3R5bGUpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAocHJldlByb3BzLmxhYmVsU3R5bGUgIT09IG5leHRQcm9wcy5sYWJlbFN0eWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByZXZQcm9wcy50cmVlSXRlbVN0eWxlcyAhPT0gbmV4dFByb3BzLnRyZWVJdGVtU3R5bGVzKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQWxsIHJlbGV2YW50IHByb3BzIGFyZSBlcXVhbCwgc2tpcCByZS1yZW5kZXJcclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcbi8qKlxyXG4gKiBNZW1vaXplZCBUcmVlSXRlbSBjb21wb25lbnRcclxuICogT25seSByZS1yZW5kZXJzIHdoZW4gcmVsZXZhbnQgcHJvcHMgY2hhbmdlLCBpbXByb3ZpbmcgcGVyZm9ybWFuY2UgZm9yIGxhcmdlIHRyZWVzXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgVHJlZUl0ZW0gPSBSZWFjdC5tZW1vKFRyZWVJdGVtQ29tcG9uZW50LCBhcmVQcm9wc0VxdWFsKTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VHJlZUl0ZW0uanMubWFwIl19 */"));
|
|
22827
23337
|
}, " &:hover{background:", function (props) {
|
|
22828
23338
|
return getHoverBackground({
|
|
22829
23339
|
isDisabled: props.isDisabled,
|
|
@@ -22831,7 +23341,7 @@ var StyledTreeItem = /*#__PURE__*/_styled("li", {
|
|
|
22831
23341
|
isInverse: props.isInverse,
|
|
22832
23342
|
theme: props.theme
|
|
22833
23343
|
});
|
|
22834
|
-
}, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQmlDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5leHBvcnQgY29uc3QgVHJlZUl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFkZGl0aW9uYWxDb250ZW50LCBjaGlsZHJlbiwgaG92ZXJDb2xvciwgaWNvbiwgaW5kZXgsIGxhYmVsLCBsYWJlbFN0eWxlLCBzdHlsZSwgdGVzdElkLCB0b3BMZXZlbCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaXNUb3BMZXZlbFNlbGVjdGFibGUsIHNlbGVjdGFibGUsIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29udGV4dCk7XHJcbiAgICBjb25zdCB7IGNvbnRleHRWYWx1ZSwgaGFuZGxlQ2xpY2ssIGhhbmRsZUtleURvd24gfSA9IHVzZVRyZWVJdGVtKHByb3BzLCBmb3J3YXJkZWRSZWYpO1xyXG4gICAgY29uc3QgeyBpc0Rpc2FibGVkIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCB7IGNoZWNrYm94Q2hhbmdlSGFuZGxlciwgY2hlY2tlZFN0YXR1cywgZXhwYW5kZWQsIGhhc093blRyZWVJdGVtcywgaXRlbURlcHRoLCBpdGVtSWQsIHBhcmVudERlcHRoLCByZWYsIHNlbGVjdGVkSXRlbXMsIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCBub2RlVHlwZSA9IGhhc093blRyZWVJdGVtcyA/IFRyZWVOb2RlVHlwZS5icmFuY2ggOiBUcmVlTm9kZVR5cGUubGVhZjtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGVcclxuICAgICAgICA/IHNlbGVjdGVkSXRlbXM/LlswXT8uaXRlbUlkID09PSBpdGVtSWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBhcmlhQ2hlY2tlZFZhbHVlID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpXHJcbiAgICAgICAgPyBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuaW5kZXRlcm1pbmF0ZVxyXG4gICAgICAgICAgICA/ICdtaXhlZCdcclxuICAgICAgICAgICAgOiBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuY2hlY2tlZFxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IFtpc0luc2lkZVRyZWVJdGVtLCBzZXRJc0luc2lkZVRyZWVJdGVtXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgZm9jdXNUcmFwRWxlbWVudCA9IHVzZUZvY3VzTG9jayhpc0luc2lkZVRyZWVJdGVtKTtcclxuICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHMgPSAnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSc7XHJcbiAgICBjb25zdCBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzID0gKGNvbnRhaW5lciwgc2VsZWN0b3IpID0+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikpLmZpbHRlcihlbCA9PiAhZWwuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpIHx8XHJcbiAgICAgICAgICAgIChlbC50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmIGVsLnRhYkluZGV4ID49IDApKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogeyBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHN0eWxlOiB0cmVlSXRlbVN0eWxlcyB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRyZWVJdGVtLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFwiYXJpYS1leHBhbmRlZFwiOiBoYXNPd25UcmVlSXRlbXMgPyBleHBhbmRlZCA6IG51bGwsIFwiYXJpYS1zZWxlY3RlZFwiOiBzZWxlY3RlZEl0ZW0sIFwiYXJpYS1jaGVja2VkXCI6IHNob3VsZFNob3dDaGVja2JveCA/IGFyaWFDaGVja2VkVmFsdWUgOiBudWxsLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzT3duVHJlZUl0ZW1zOiBoYXNPd25UcmVlSXRlbXMsIGlkOiBpdGVtSWQsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHJvbGU6IFwidHJlZWl0ZW1cIiwgc2VsZWN0YWJsZVR5cGU6IHNlbGVjdGFibGUsIHNlbGVjdGVkOiBzZWxlY3RlZEl0ZW0sIHRoZW1lOiB0aGVtZSwgdGFiSW5kZXg6IHRhYkluZGV4LCBvbktleURvd246IG9uS2V5RG93bkhhbmRsZXIsIHJlZjogdHJlZUl0ZW1SZWYsIGhvdmVyQ29sb3I6IGhvdmVyQ29sb3IgfSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEl0ZW1XcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0taXRlbXdyYXBwZXJgLCBkZXB0aDogaXRlbURlcHRoLCBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgaGFzQ3VzdG9tSWNvblNpemU6ICEhZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSwgaWQ6IGAke2l0ZW1JZH0taXRlbXdyYXBwZXJgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgbm9kZVR5cGU6IG5vZGVUeXBlLCBzZWxlY3RhYmxlOiBzZWxlY3RhYmxlLCBzdHlsZTogc3R5bGUsIHRoZW1lOiB0aGVtZSwgcmVmOiBtZXJnZVJlZnMocmVmLCBmb2N1c1RyYXBFbGVtZW50KSwgb25DbGljazogaGFuZGxlT25DbGljayB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplLCBjb2xvcjogZXhwYW5kSWNvblN0eWxlcz8uY29sb3IsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tZXhwYW5kYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXhwYW5kZWRDbGlja2VkKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3dDaGVja2JveCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENoZWNrYm94V3JhcHBlciwgeyBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEluZGV0ZXJtaW5hdGVDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBzdGF0dXM6IGNoZWNrZWRTdGF0dXMgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBPYmplY3QuYXNzaWduKHt9LCBjaGVja2JveFByb3BzLCB7IGNoZWNrZWQ6IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4oY2hlY2tlZFN0YXR1cykgfSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZD8udHlwZSA9PT0gVHJlZUl0ZW0gPyAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmFuc2l0aW9uLCB7IGlzT3BlbjogZXhwYW5kZWQsIHVubW91bnRPbkV4aXQ6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHsgcm9sZTogXCJncm91cFwiIH0sIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNoaWxkLnByb3BzLml0ZW1JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGV2ZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSkpKSA6IChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9KSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UcmVlSXRlbS5qcy5tYXAiXX0= */"));
|
|
23344
|
+
}, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmlDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb25maWdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbmZpZ0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyBjYWxjdWxhdGVPZmZzZXQsIGdldFRyZWVJdGVtTGFiZWxDb2xvciwgZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yLCBUcmVlTm9kZVR5cGUsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZUZvY3VzTG9jayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUZvY3VzTG9jayc7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi4vQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBJbmRldGVybWluYXRlQ2hlY2tib3gsIEluZGV0ZXJtaW5hdGVDaGVja2JveFN0YXR1cywgfSBmcm9tICcuLi9JbmRldGVybWluYXRlQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSAnLi4vVHJhbnNpdGlvbic7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5jb25zdCBUcmVlSXRlbUNvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBob3ZlckNvbG9yLCBpY29uLCBpbmRleDogaW5kZXhQcm9wLCBsYWJlbCwgbGFiZWxTdHlsZSwgc3R5bGUsIHRlc3RJZCwgdG9wTGV2ZWw6IHRvcExldmVsUHJvcCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIC8vIFJlYWQgaGllcmFyY2h5IGluZm9ybWF0aW9uIGZyb20gY29udGV4dCAocmVkdWNlcyBjbG9uZUVsZW1lbnQgb3ZlcmhlYWQpXHJcbiAgICBjb25zdCBoaWVyYXJjaHlDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQpO1xyXG4gICAgLy8gVXNlIGNvbnRleHQgdmFsdWVzIGlmIHByb3BzIGFyZSBub3QgcHJvdmlkZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxyXG4gICAgY29uc3QgaW5kZXggPSBpbmRleFByb3AgIT09IHVuZGVmaW5lZCA/IGluZGV4UHJvcCA6IGhpZXJhcmNoeUNvbnRleHQuaW5kZXg7XHJcbiAgICBjb25zdCB0b3BMZXZlbCA9IHRvcExldmVsUHJvcCAhPT0gdW5kZWZpbmVkID8gdG9wTGV2ZWxQcm9wIDogaGllcmFyY2h5Q29udGV4dC5pc1RvcExldmVsO1xyXG4gICAgLy8gQ29uc3VtZSBzcGxpdCBjb250ZXh0cyBmb3IgcmVkdWNlZCByZS1yZW5kZXIgc2NvcGVcclxuICAgIGNvbnN0IHsgaXRlbVRvRm9jdXMgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgaGFuZGxlRXhwYW5kZWRDaGFuZ2UgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFzSWNvbnMsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCBzZWxlY3RhYmxlIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29uZmlnQ29udGV4dCk7XHJcbiAgICAvLyBQYXNzIHRoZSByZXNvbHZlZCB2YWx1ZXMgdG8gdXNlVHJlZUl0ZW1cclxuICAgIGNvbnN0IHByb3BzV2l0aEhpZXJhcmNoeSA9IHtcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICB0b3BMZXZlbCxcclxuICAgICAgICBpdGVtRGVwdGg6IGhpZXJhcmNoeUNvbnRleHQuZGVwdGgsXHJcbiAgICAgICAgcGFyZW50RGVwdGg6IGhpZXJhcmNoeUNvbnRleHQucGFyZW50RGVwdGgsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wc1dpdGhIaWVyYXJjaHksIGZvcndhcmRlZFJlZik7XHJcbiAgICBjb25zdCB7IGlzRGlzYWJsZWQgfSA9IGNvbnRleHRWYWx1ZTtcclxuICAgIGNvbnN0IHsgY2hlY2tib3hDaGFuZ2VIYW5kbGVyLCBjaGVja2VkU3RhdHVzLCBleHBhbmRlZCwgaGFzT3duVHJlZUl0ZW1zLCBpdGVtRGVwdGgsIGl0ZW1JZCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IFJlYWN0LnVzZUNhbGxiYWNrKChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSBSZWFjdC51c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbZ2V0SW50ZXJhY3RpdmVFbGVtZW50cywgaW50ZXJhY3RpdmVFbGVtZW50cywgaXNJbnNpZGVUcmVlSXRlbV0pO1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIHNlbGVjdGFibGUsIGhhbmRsZUNsaWNrLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIE1lbW9pemUgaW5saW5lIHN0eWxlIG9iamVjdHMgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXHJcbiAgICBjb25zdCBjaGVja2JveElucHV0U3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7IG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyB9KSwgW3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXSk7XHJcbiAgICBjb25zdCBjaGVja2JveExhYmVsU3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XHJcbiAgICAgICAgcGFkZGluZzogMCxcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgfSksIFtdKTtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogY2hlY2tib3hJbnB1dFN0eWxlLFxyXG4gICAgICAgIGxhYmVsU3R5bGU6IGNoZWNrYm94TGFiZWxTdHlsZSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfSksIFtcclxuICAgICAgICBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBjaGVja2JveElucHV0U3R5bGUsXHJcbiAgICAgICAgY2hlY2tib3hMYWJlbFN0eWxlLFxyXG4gICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICBjaGVja2JveENoYW5nZUhhbmRsZXIsXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH0sIFtoYW5kbGVFeHBhbmRlZENoYW5nZSwgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBoYW5kbGVFeHBhbmRDbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBvbkV4cGFuZGVkQ2xpY2tlZChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIG9uRXhwYW5kZWRDbGlja2VkXSk7XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbXHJcbiAgICAgICAgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyxcclxuICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnRzLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93bixcclxuICAgICAgICBoYW5kbGVLZXlEb3duLFxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHRyZWVJdGVtU3R5bGVzIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiwgaG92ZXJDb2xvcjogaG92ZXJDb2xvciB9KSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSXRlbVdyYXBwZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgPz8gaXRlbUlkfS1pdGVtd3JhcHBlcmAsIGRlcHRoOiBpdGVtRGVwdGgsIGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCBoYXNDdXN0b21JY29uU2l6ZTogISFleHBhbmRJY29uU3R5bGVzPy5zaXplLCBpZDogYCR7aXRlbUlkfS1pdGVtd3JhcHBlcmAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHNlbGVjdGFibGU6IHNlbGVjdGFibGUsIHN0eWxlOiBzdHlsZSwgdGhlbWU6IHRoZW1lLCByZWY6IG1lcmdlUmVmcyhyZWYsIGZvY3VzVHJhcEVsZW1lbnQpLCBvbkNsaWNrOiBoYW5kbGVPbkNsaWNrIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGFzT3duVHJlZUl0ZW1zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEV4cGFuZFdyYXBwZXIsIHsgXCJhcmlhLWhpZGRlblwiOiBCb29sZWFuKCFleHBhbmRlZCksIHNpemU6IGV4cGFuZEljb25TdHlsZXM/LnNpemUsIGNvbG9yOiBleHBhbmRJY29uU3R5bGVzPy5jb2xvciwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1leHBhbmRgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlRXhwYW5kQ2xpY2ssIHRoZW1lOiB0aGVtZSB9LCBleHBhbmRlZCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEV4cGFuZE1vcmVJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGV2cm9uUmlnaHRJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkpKSxcclxuICAgICAgICAgICAgICAgICAgICBzaG91bGRTaG93Q2hlY2tib3ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRDaGVja2JveFdyYXBwZXIsIHsgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIHRoZW1lOiB0aGVtZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZCwgY2hpbGRJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZD8udHlwZSAhPT0gVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIGhpZXJhcmNoeSBpbmZvIHRocm91Z2ggY29udGV4dCBpbnN0ZWFkIG9mIGNsb25lRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5lc3RlZEhpZXJhcmNoeVZhbHVlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogaXRlbURlcHRoICsgMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGg6IGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNUb3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjaGlsZEluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwgeyByb2xlOiBcImdyb3VwXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0LlByb3ZpZGVyLCB7IGtleTogY2hpbGQucHJvcHMuaXRlbUlkLCB2YWx1ZTogbmVzdGVkSGllcmFyY2h5VmFsdWUgfSwgY2hpbGQpKSkpO1xyXG4gICAgICAgICAgICAgICAgfSkpKSkpO1xyXG59KTtcclxuLyoqXHJcbiAqIEN1c3RvbSBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciBSZWFjdC5tZW1vXHJcbiAqIE9ubHkgcmUtcmVuZGVyIFRyZWVJdGVtIHdoZW4gcmVsZXZhbnQgcHJvcHMgY2hhbmdlXHJcbiAqL1xyXG5mdW5jdGlvbiBhcmVQcm9wc0VxdWFsKHByZXZQcm9wcywgbmV4dFByb3BzKSB7XHJcbiAgICAvLyBDaGVjayBpZiBpdGVtSWQgY2hhbmdlZFxyXG4gICAgaWYgKHByZXZQcm9wcy5pdGVtSWQgIT09IG5leHRQcm9wcy5pdGVtSWQpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBsYWJlbCBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmxhYmVsICE9PSBuZXh0UHJvcHMubGFiZWwpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBkaXNhYmxlZCBzdGF0ZSBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmlzRGlzYWJsZWQgIT09IG5leHRQcm9wcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgaWNvbiBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmljb24gIT09IG5leHRQcm9wcy5pY29uKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgYWRkaXRpb25hbCBjb250ZW50IGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuYWRkaXRpb25hbENvbnRlbnQgIT09IG5leHRQcm9wcy5hZGRpdGlvbmFsQ29udGVudCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIGhvdmVyIGNvbG9yIGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuaG92ZXJDb2xvciAhPT0gbmV4dFByb3BzLmhvdmVyQ29sb3IpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBjaGlsZHJlbiBjaGFuZ2VkIChmb3IgbmVzdGVkIHRyZWUgaXRlbXMpXHJcbiAgICAvLyBVc2luZyB0eXBlIGFzc2VydGlvbiBzaW5jZSBjaGlsZHJlbiBjb21lcyBmcm9tIFJlYWN0LkhUTUxBdHRyaWJ1dGVzXHJcbiAgICBpZiAocHJldlByb3BzLmNoaWxkcmVuICE9PSBuZXh0UHJvcHMuY2hpbGRyZW4pIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBzdHlsZXMgY2hhbmdlZFxyXG4gICAgLy8gVXNpbmcgdHlwZSBhc3NlcnRpb24gc2luY2Ugc3R5bGUgY29tZXMgZnJvbSBSZWFjdC5IVE1MQXR0cmlidXRlc1xyXG4gICAgaWYgKHByZXZQcm9wcy5zdHlsZSAhPT0gbmV4dFByb3BzLnN0eWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByZXZQcm9wcy5sYWJlbFN0eWxlICE9PSBuZXh0UHJvcHMubGFiZWxTdHlsZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChwcmV2UHJvcHMudHJlZUl0ZW1TdHlsZXMgIT09IG5leHRQcm9wcy50cmVlSXRlbVN0eWxlcykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIEFsbCByZWxldmFudCBwcm9wcyBhcmUgZXF1YWwsIHNraXAgcmUtcmVuZGVyXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG4vKipcclxuICogTWVtb2l6ZWQgVHJlZUl0ZW0gY29tcG9uZW50XHJcbiAqIE9ubHkgcmUtcmVuZGVycyB3aGVuIHJlbGV2YW50IHByb3BzIGNoYW5nZSwgaW1wcm92aW5nIHBlcmZvcm1hbmNlIGZvciBsYXJnZSB0cmVlc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFRyZWVJdGVtID0gUmVhY3QubWVtbyhUcmVlSXRlbUNvbXBvbmVudCwgYXJlUHJvcHNFcXVhbCk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
22835
23345
|
function getHoverBackground(_ref) {
|
|
22836
23346
|
var isDisabled = _ref.isDisabled,
|
|
22837
23347
|
hoverColor = _ref.hoverColor,
|
|
@@ -22853,13 +23363,13 @@ var IconWrapper$8 = /*#__PURE__*/_styled("span", {
|
|
|
22853
23363
|
return props.theme.iconSizes.medium;
|
|
22854
23364
|
}, "px;width:", function (props) {
|
|
22855
23365
|
return props.theme.iconSizes.medium;
|
|
22856
|
-
}, "px;vertical-align:middle;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxRmdDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5leHBvcnQgY29uc3QgVHJlZUl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFkZGl0aW9uYWxDb250ZW50LCBjaGlsZHJlbiwgaG92ZXJDb2xvciwgaWNvbiwgaW5kZXgsIGxhYmVsLCBsYWJlbFN0eWxlLCBzdHlsZSwgdGVzdElkLCB0b3BMZXZlbCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaXNUb3BMZXZlbFNlbGVjdGFibGUsIHNlbGVjdGFibGUsIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29udGV4dCk7XHJcbiAgICBjb25zdCB7IGNvbnRleHRWYWx1ZSwgaGFuZGxlQ2xpY2ssIGhhbmRsZUtleURvd24gfSA9IHVzZVRyZWVJdGVtKHByb3BzLCBmb3J3YXJkZWRSZWYpO1xyXG4gICAgY29uc3QgeyBpc0Rpc2FibGVkIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCB7IGNoZWNrYm94Q2hhbmdlSGFuZGxlciwgY2hlY2tlZFN0YXR1cywgZXhwYW5kZWQsIGhhc093blRyZWVJdGVtcywgaXRlbURlcHRoLCBpdGVtSWQsIHBhcmVudERlcHRoLCByZWYsIHNlbGVjdGVkSXRlbXMsIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCBub2RlVHlwZSA9IGhhc093blRyZWVJdGVtcyA/IFRyZWVOb2RlVHlwZS5icmFuY2ggOiBUcmVlTm9kZVR5cGUubGVhZjtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGVcclxuICAgICAgICA/IHNlbGVjdGVkSXRlbXM/LlswXT8uaXRlbUlkID09PSBpdGVtSWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBhcmlhQ2hlY2tlZFZhbHVlID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpXHJcbiAgICAgICAgPyBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuaW5kZXRlcm1pbmF0ZVxyXG4gICAgICAgICAgICA/ICdtaXhlZCdcclxuICAgICAgICAgICAgOiBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuY2hlY2tlZFxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IFtpc0luc2lkZVRyZWVJdGVtLCBzZXRJc0luc2lkZVRyZWVJdGVtXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgZm9jdXNUcmFwRWxlbWVudCA9IHVzZUZvY3VzTG9jayhpc0luc2lkZVRyZWVJdGVtKTtcclxuICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHMgPSAnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSc7XHJcbiAgICBjb25zdCBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzID0gKGNvbnRhaW5lciwgc2VsZWN0b3IpID0+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikpLmZpbHRlcihlbCA9PiAhZWwuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpIHx8XHJcbiAgICAgICAgICAgIChlbC50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmIGVsLnRhYkluZGV4ID49IDApKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogeyBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHN0eWxlOiB0cmVlSXRlbVN0eWxlcyB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRyZWVJdGVtLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFwiYXJpYS1leHBhbmRlZFwiOiBoYXNPd25UcmVlSXRlbXMgPyBleHBhbmRlZCA6IG51bGwsIFwiYXJpYS1zZWxlY3RlZFwiOiBzZWxlY3RlZEl0ZW0sIFwiYXJpYS1jaGVja2VkXCI6IHNob3VsZFNob3dDaGVja2JveCA/IGFyaWFDaGVja2VkVmFsdWUgOiBudWxsLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzT3duVHJlZUl0ZW1zOiBoYXNPd25UcmVlSXRlbXMsIGlkOiBpdGVtSWQsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHJvbGU6IFwidHJlZWl0ZW1cIiwgc2VsZWN0YWJsZVR5cGU6IHNlbGVjdGFibGUsIHNlbGVjdGVkOiBzZWxlY3RlZEl0ZW0sIHRoZW1lOiB0aGVtZSwgdGFiSW5kZXg6IHRhYkluZGV4LCBvbktleURvd246IG9uS2V5RG93bkhhbmRsZXIsIHJlZjogdHJlZUl0ZW1SZWYsIGhvdmVyQ29sb3I6IGhvdmVyQ29sb3IgfSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEl0ZW1XcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0taXRlbXdyYXBwZXJgLCBkZXB0aDogaXRlbURlcHRoLCBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgaGFzQ3VzdG9tSWNvblNpemU6ICEhZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSwgaWQ6IGAke2l0ZW1JZH0taXRlbXdyYXBwZXJgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgbm9kZVR5cGU6IG5vZGVUeXBlLCBzZWxlY3RhYmxlOiBzZWxlY3RhYmxlLCBzdHlsZTogc3R5bGUsIHRoZW1lOiB0aGVtZSwgcmVmOiBtZXJnZVJlZnMocmVmLCBmb2N1c1RyYXBFbGVtZW50KSwgb25DbGljazogaGFuZGxlT25DbGljayB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplLCBjb2xvcjogZXhwYW5kSWNvblN0eWxlcz8uY29sb3IsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tZXhwYW5kYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXhwYW5kZWRDbGlja2VkKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3dDaGVja2JveCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENoZWNrYm94V3JhcHBlciwgeyBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEluZGV0ZXJtaW5hdGVDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBzdGF0dXM6IGNoZWNrZWRTdGF0dXMgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBPYmplY3QuYXNzaWduKHt9LCBjaGVja2JveFByb3BzLCB7IGNoZWNrZWQ6IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4oY2hlY2tlZFN0YXR1cykgfSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZD8udHlwZSA9PT0gVHJlZUl0ZW0gPyAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmFuc2l0aW9uLCB7IGlzT3BlbjogZXhwYW5kZWQsIHVubW91bnRPbkV4aXQ6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHsgcm9sZTogXCJncm91cFwiIH0sIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNoaWxkLnByb3BzLml0ZW1JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGV2ZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSkpKSA6IChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9KSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UcmVlSXRlbS5qcy5tYXAiXX0= */"));
|
|
23366
|
+
}, "px;vertical-align:middle;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3RmdDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb25maWdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbmZpZ0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyBjYWxjdWxhdGVPZmZzZXQsIGdldFRyZWVJdGVtTGFiZWxDb2xvciwgZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yLCBUcmVlTm9kZVR5cGUsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZUZvY3VzTG9jayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUZvY3VzTG9jayc7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi4vQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBJbmRldGVybWluYXRlQ2hlY2tib3gsIEluZGV0ZXJtaW5hdGVDaGVja2JveFN0YXR1cywgfSBmcm9tICcuLi9JbmRldGVybWluYXRlQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSAnLi4vVHJhbnNpdGlvbic7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5jb25zdCBUcmVlSXRlbUNvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBob3ZlckNvbG9yLCBpY29uLCBpbmRleDogaW5kZXhQcm9wLCBsYWJlbCwgbGFiZWxTdHlsZSwgc3R5bGUsIHRlc3RJZCwgdG9wTGV2ZWw6IHRvcExldmVsUHJvcCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIC8vIFJlYWQgaGllcmFyY2h5IGluZm9ybWF0aW9uIGZyb20gY29udGV4dCAocmVkdWNlcyBjbG9uZUVsZW1lbnQgb3ZlcmhlYWQpXHJcbiAgICBjb25zdCBoaWVyYXJjaHlDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQpO1xyXG4gICAgLy8gVXNlIGNvbnRleHQgdmFsdWVzIGlmIHByb3BzIGFyZSBub3QgcHJvdmlkZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxyXG4gICAgY29uc3QgaW5kZXggPSBpbmRleFByb3AgIT09IHVuZGVmaW5lZCA/IGluZGV4UHJvcCA6IGhpZXJhcmNoeUNvbnRleHQuaW5kZXg7XHJcbiAgICBjb25zdCB0b3BMZXZlbCA9IHRvcExldmVsUHJvcCAhPT0gdW5kZWZpbmVkID8gdG9wTGV2ZWxQcm9wIDogaGllcmFyY2h5Q29udGV4dC5pc1RvcExldmVsO1xyXG4gICAgLy8gQ29uc3VtZSBzcGxpdCBjb250ZXh0cyBmb3IgcmVkdWNlZCByZS1yZW5kZXIgc2NvcGVcclxuICAgIGNvbnN0IHsgaXRlbVRvRm9jdXMgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgaGFuZGxlRXhwYW5kZWRDaGFuZ2UgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFzSWNvbnMsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCBzZWxlY3RhYmxlIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29uZmlnQ29udGV4dCk7XHJcbiAgICAvLyBQYXNzIHRoZSByZXNvbHZlZCB2YWx1ZXMgdG8gdXNlVHJlZUl0ZW1cclxuICAgIGNvbnN0IHByb3BzV2l0aEhpZXJhcmNoeSA9IHtcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICB0b3BMZXZlbCxcclxuICAgICAgICBpdGVtRGVwdGg6IGhpZXJhcmNoeUNvbnRleHQuZGVwdGgsXHJcbiAgICAgICAgcGFyZW50RGVwdGg6IGhpZXJhcmNoeUNvbnRleHQucGFyZW50RGVwdGgsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wc1dpdGhIaWVyYXJjaHksIGZvcndhcmRlZFJlZik7XHJcbiAgICBjb25zdCB7IGlzRGlzYWJsZWQgfSA9IGNvbnRleHRWYWx1ZTtcclxuICAgIGNvbnN0IHsgY2hlY2tib3hDaGFuZ2VIYW5kbGVyLCBjaGVja2VkU3RhdHVzLCBleHBhbmRlZCwgaGFzT3duVHJlZUl0ZW1zLCBpdGVtRGVwdGgsIGl0ZW1JZCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IFJlYWN0LnVzZUNhbGxiYWNrKChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSBSZWFjdC51c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbZ2V0SW50ZXJhY3RpdmVFbGVtZW50cywgaW50ZXJhY3RpdmVFbGVtZW50cywgaXNJbnNpZGVUcmVlSXRlbV0pO1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIHNlbGVjdGFibGUsIGhhbmRsZUNsaWNrLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIE1lbW9pemUgaW5saW5lIHN0eWxlIG9iamVjdHMgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXHJcbiAgICBjb25zdCBjaGVja2JveElucHV0U3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7IG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyB9KSwgW3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXSk7XHJcbiAgICBjb25zdCBjaGVja2JveExhYmVsU3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XHJcbiAgICAgICAgcGFkZGluZzogMCxcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgfSksIFtdKTtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogY2hlY2tib3hJbnB1dFN0eWxlLFxyXG4gICAgICAgIGxhYmVsU3R5bGU6IGNoZWNrYm94TGFiZWxTdHlsZSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfSksIFtcclxuICAgICAgICBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBjaGVja2JveElucHV0U3R5bGUsXHJcbiAgICAgICAgY2hlY2tib3hMYWJlbFN0eWxlLFxyXG4gICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICBjaGVja2JveENoYW5nZUhhbmRsZXIsXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH0sIFtoYW5kbGVFeHBhbmRlZENoYW5nZSwgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBoYW5kbGVFeHBhbmRDbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBvbkV4cGFuZGVkQ2xpY2tlZChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIG9uRXhwYW5kZWRDbGlja2VkXSk7XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbXHJcbiAgICAgICAgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyxcclxuICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnRzLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93bixcclxuICAgICAgICBoYW5kbGVLZXlEb3duLFxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHRyZWVJdGVtU3R5bGVzIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiwgaG92ZXJDb2xvcjogaG92ZXJDb2xvciB9KSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSXRlbVdyYXBwZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgPz8gaXRlbUlkfS1pdGVtd3JhcHBlcmAsIGRlcHRoOiBpdGVtRGVwdGgsIGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCBoYXNDdXN0b21JY29uU2l6ZTogISFleHBhbmRJY29uU3R5bGVzPy5zaXplLCBpZDogYCR7aXRlbUlkfS1pdGVtd3JhcHBlcmAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHNlbGVjdGFibGU6IHNlbGVjdGFibGUsIHN0eWxlOiBzdHlsZSwgdGhlbWU6IHRoZW1lLCByZWY6IG1lcmdlUmVmcyhyZWYsIGZvY3VzVHJhcEVsZW1lbnQpLCBvbkNsaWNrOiBoYW5kbGVPbkNsaWNrIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGFzT3duVHJlZUl0ZW1zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEV4cGFuZFdyYXBwZXIsIHsgXCJhcmlhLWhpZGRlblwiOiBCb29sZWFuKCFleHBhbmRlZCksIHNpemU6IGV4cGFuZEljb25TdHlsZXM/LnNpemUsIGNvbG9yOiBleHBhbmRJY29uU3R5bGVzPy5jb2xvciwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1leHBhbmRgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlRXhwYW5kQ2xpY2ssIHRoZW1lOiB0aGVtZSB9LCBleHBhbmRlZCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEV4cGFuZE1vcmVJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGV2cm9uUmlnaHRJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkpKSxcclxuICAgICAgICAgICAgICAgICAgICBzaG91bGRTaG93Q2hlY2tib3ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRDaGVja2JveFdyYXBwZXIsIHsgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIHRoZW1lOiB0aGVtZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZCwgY2hpbGRJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZD8udHlwZSAhPT0gVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIGhpZXJhcmNoeSBpbmZvIHRocm91Z2ggY29udGV4dCBpbnN0ZWFkIG9mIGNsb25lRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5lc3RlZEhpZXJhcmNoeVZhbHVlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogaXRlbURlcHRoICsgMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGg6IGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNUb3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjaGlsZEluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwgeyByb2xlOiBcImdyb3VwXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0LlByb3ZpZGVyLCB7IGtleTogY2hpbGQucHJvcHMuaXRlbUlkLCB2YWx1ZTogbmVzdGVkSGllcmFyY2h5VmFsdWUgfSwgY2hpbGQpKSkpO1xyXG4gICAgICAgICAgICAgICAgfSkpKSkpO1xyXG59KTtcclxuLyoqXHJcbiAqIEN1c3RvbSBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciBSZWFjdC5tZW1vXHJcbiAqIE9ubHkgcmUtcmVuZGVyIFRyZWVJdGVtIHdoZW4gcmVsZXZhbnQgcHJvcHMgY2hhbmdlXHJcbiAqL1xyXG5mdW5jdGlvbiBhcmVQcm9wc0VxdWFsKHByZXZQcm9wcywgbmV4dFByb3BzKSB7XHJcbiAgICAvLyBDaGVjayBpZiBpdGVtSWQgY2hhbmdlZFxyXG4gICAgaWYgKHByZXZQcm9wcy5pdGVtSWQgIT09IG5leHRQcm9wcy5pdGVtSWQpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBsYWJlbCBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmxhYmVsICE9PSBuZXh0UHJvcHMubGFiZWwpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBkaXNhYmxlZCBzdGF0ZSBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmlzRGlzYWJsZWQgIT09IG5leHRQcm9wcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgaWNvbiBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmljb24gIT09IG5leHRQcm9wcy5pY29uKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgYWRkaXRpb25hbCBjb250ZW50IGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuYWRkaXRpb25hbENvbnRlbnQgIT09IG5leHRQcm9wcy5hZGRpdGlvbmFsQ29udGVudCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIGhvdmVyIGNvbG9yIGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuaG92ZXJDb2xvciAhPT0gbmV4dFByb3BzLmhvdmVyQ29sb3IpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBjaGlsZHJlbiBjaGFuZ2VkIChmb3IgbmVzdGVkIHRyZWUgaXRlbXMpXHJcbiAgICAvLyBVc2luZyB0eXBlIGFzc2VydGlvbiBzaW5jZSBjaGlsZHJlbiBjb21lcyBmcm9tIFJlYWN0LkhUTUxBdHRyaWJ1dGVzXHJcbiAgICBpZiAocHJldlByb3BzLmNoaWxkcmVuICE9PSBuZXh0UHJvcHMuY2hpbGRyZW4pIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBzdHlsZXMgY2hhbmdlZFxyXG4gICAgLy8gVXNpbmcgdHlwZSBhc3NlcnRpb24gc2luY2Ugc3R5bGUgY29tZXMgZnJvbSBSZWFjdC5IVE1MQXR0cmlidXRlc1xyXG4gICAgaWYgKHByZXZQcm9wcy5zdHlsZSAhPT0gbmV4dFByb3BzLnN0eWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByZXZQcm9wcy5sYWJlbFN0eWxlICE9PSBuZXh0UHJvcHMubGFiZWxTdHlsZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChwcmV2UHJvcHMudHJlZUl0ZW1TdHlsZXMgIT09IG5leHRQcm9wcy50cmVlSXRlbVN0eWxlcykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIEFsbCByZWxldmFudCBwcm9wcyBhcmUgZXF1YWwsIHNraXAgcmUtcmVuZGVyXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG4vKipcclxuICogTWVtb2l6ZWQgVHJlZUl0ZW0gY29tcG9uZW50XHJcbiAqIE9ubHkgcmUtcmVuZGVycyB3aGVuIHJlbGV2YW50IHByb3BzIGNoYW5nZSwgaW1wcm92aW5nIHBlcmZvcm1hbmNlIGZvciBsYXJnZSB0cmVlc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFRyZWVJdGVtID0gUmVhY3QubWVtbyhUcmVlSXRlbUNvbXBvbmVudCwgYXJlUHJvcHNFcXVhbCk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
22857
23367
|
var StyledLabelWrapper = /*#__PURE__*/_styled("span", {
|
|
22858
23368
|
target: "e1xiryew4",
|
|
22859
23369
|
label: "StyledLabelWrapper"
|
|
22860
23370
|
})("display:flex;align-items:flex-start;color:", function (props) {
|
|
22861
23371
|
return getTreeItemLabelColor(props.isInverse, props.isDisabled, props.theme);
|
|
22862
|
-
}, ";width:100%;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnR3VDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5leHBvcnQgY29uc3QgVHJlZUl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFkZGl0aW9uYWxDb250ZW50LCBjaGlsZHJlbiwgaG92ZXJDb2xvciwgaWNvbiwgaW5kZXgsIGxhYmVsLCBsYWJlbFN0eWxlLCBzdHlsZSwgdGVzdElkLCB0b3BMZXZlbCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaXNUb3BMZXZlbFNlbGVjdGFibGUsIHNlbGVjdGFibGUsIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29udGV4dCk7XHJcbiAgICBjb25zdCB7IGNvbnRleHRWYWx1ZSwgaGFuZGxlQ2xpY2ssIGhhbmRsZUtleURvd24gfSA9IHVzZVRyZWVJdGVtKHByb3BzLCBmb3J3YXJkZWRSZWYpO1xyXG4gICAgY29uc3QgeyBpc0Rpc2FibGVkIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCB7IGNoZWNrYm94Q2hhbmdlSGFuZGxlciwgY2hlY2tlZFN0YXR1cywgZXhwYW5kZWQsIGhhc093blRyZWVJdGVtcywgaXRlbURlcHRoLCBpdGVtSWQsIHBhcmVudERlcHRoLCByZWYsIHNlbGVjdGVkSXRlbXMsIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCBub2RlVHlwZSA9IGhhc093blRyZWVJdGVtcyA/IFRyZWVOb2RlVHlwZS5icmFuY2ggOiBUcmVlTm9kZVR5cGUubGVhZjtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGVcclxuICAgICAgICA/IHNlbGVjdGVkSXRlbXM/LlswXT8uaXRlbUlkID09PSBpdGVtSWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBhcmlhQ2hlY2tlZFZhbHVlID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpXHJcbiAgICAgICAgPyBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuaW5kZXRlcm1pbmF0ZVxyXG4gICAgICAgICAgICA/ICdtaXhlZCdcclxuICAgICAgICAgICAgOiBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuY2hlY2tlZFxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IFtpc0luc2lkZVRyZWVJdGVtLCBzZXRJc0luc2lkZVRyZWVJdGVtXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgZm9jdXNUcmFwRWxlbWVudCA9IHVzZUZvY3VzTG9jayhpc0luc2lkZVRyZWVJdGVtKTtcclxuICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHMgPSAnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSc7XHJcbiAgICBjb25zdCBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzID0gKGNvbnRhaW5lciwgc2VsZWN0b3IpID0+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikpLmZpbHRlcihlbCA9PiAhZWwuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpIHx8XHJcbiAgICAgICAgICAgIChlbC50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmIGVsLnRhYkluZGV4ID49IDApKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogeyBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHN0eWxlOiB0cmVlSXRlbVN0eWxlcyB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRyZWVJdGVtLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFwiYXJpYS1leHBhbmRlZFwiOiBoYXNPd25UcmVlSXRlbXMgPyBleHBhbmRlZCA6IG51bGwsIFwiYXJpYS1zZWxlY3RlZFwiOiBzZWxlY3RlZEl0ZW0sIFwiYXJpYS1jaGVja2VkXCI6IHNob3VsZFNob3dDaGVja2JveCA/IGFyaWFDaGVja2VkVmFsdWUgOiBudWxsLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzT3duVHJlZUl0ZW1zOiBoYXNPd25UcmVlSXRlbXMsIGlkOiBpdGVtSWQsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHJvbGU6IFwidHJlZWl0ZW1cIiwgc2VsZWN0YWJsZVR5cGU6IHNlbGVjdGFibGUsIHNlbGVjdGVkOiBzZWxlY3RlZEl0ZW0sIHRoZW1lOiB0aGVtZSwgdGFiSW5kZXg6IHRhYkluZGV4LCBvbktleURvd246IG9uS2V5RG93bkhhbmRsZXIsIHJlZjogdHJlZUl0ZW1SZWYsIGhvdmVyQ29sb3I6IGhvdmVyQ29sb3IgfSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEl0ZW1XcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0taXRlbXdyYXBwZXJgLCBkZXB0aDogaXRlbURlcHRoLCBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgaGFzQ3VzdG9tSWNvblNpemU6ICEhZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSwgaWQ6IGAke2l0ZW1JZH0taXRlbXdyYXBwZXJgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgbm9kZVR5cGU6IG5vZGVUeXBlLCBzZWxlY3RhYmxlOiBzZWxlY3RhYmxlLCBzdHlsZTogc3R5bGUsIHRoZW1lOiB0aGVtZSwgcmVmOiBtZXJnZVJlZnMocmVmLCBmb2N1c1RyYXBFbGVtZW50KSwgb25DbGljazogaGFuZGxlT25DbGljayB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplLCBjb2xvcjogZXhwYW5kSWNvblN0eWxlcz8uY29sb3IsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tZXhwYW5kYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXhwYW5kZWRDbGlja2VkKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3dDaGVja2JveCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENoZWNrYm94V3JhcHBlciwgeyBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEluZGV0ZXJtaW5hdGVDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBzdGF0dXM6IGNoZWNrZWRTdGF0dXMgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBPYmplY3QuYXNzaWduKHt9LCBjaGVja2JveFByb3BzLCB7IGNoZWNrZWQ6IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4oY2hlY2tlZFN0YXR1cykgfSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZD8udHlwZSA9PT0gVHJlZUl0ZW0gPyAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmFuc2l0aW9uLCB7IGlzT3BlbjogZXhwYW5kZWQsIHVubW91bnRPbkV4aXQ6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHsgcm9sZTogXCJncm91cFwiIH0sIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNoaWxkLnByb3BzLml0ZW1JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGV2ZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSkpKSA6IChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9KSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UcmVlSXRlbS5qcy5tYXAiXX0= */"));
|
|
23372
|
+
}, ";width:100%;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtR3VDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb25maWdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbmZpZ0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyBjYWxjdWxhdGVPZmZzZXQsIGdldFRyZWVJdGVtTGFiZWxDb2xvciwgZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yLCBUcmVlTm9kZVR5cGUsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZUZvY3VzTG9jayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUZvY3VzTG9jayc7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi4vQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBJbmRldGVybWluYXRlQ2hlY2tib3gsIEluZGV0ZXJtaW5hdGVDaGVja2JveFN0YXR1cywgfSBmcm9tICcuLi9JbmRldGVybWluYXRlQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSAnLi4vVHJhbnNpdGlvbic7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5jb25zdCBUcmVlSXRlbUNvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBob3ZlckNvbG9yLCBpY29uLCBpbmRleDogaW5kZXhQcm9wLCBsYWJlbCwgbGFiZWxTdHlsZSwgc3R5bGUsIHRlc3RJZCwgdG9wTGV2ZWw6IHRvcExldmVsUHJvcCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIC8vIFJlYWQgaGllcmFyY2h5IGluZm9ybWF0aW9uIGZyb20gY29udGV4dCAocmVkdWNlcyBjbG9uZUVsZW1lbnQgb3ZlcmhlYWQpXHJcbiAgICBjb25zdCBoaWVyYXJjaHlDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQpO1xyXG4gICAgLy8gVXNlIGNvbnRleHQgdmFsdWVzIGlmIHByb3BzIGFyZSBub3QgcHJvdmlkZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxyXG4gICAgY29uc3QgaW5kZXggPSBpbmRleFByb3AgIT09IHVuZGVmaW5lZCA/IGluZGV4UHJvcCA6IGhpZXJhcmNoeUNvbnRleHQuaW5kZXg7XHJcbiAgICBjb25zdCB0b3BMZXZlbCA9IHRvcExldmVsUHJvcCAhPT0gdW5kZWZpbmVkID8gdG9wTGV2ZWxQcm9wIDogaGllcmFyY2h5Q29udGV4dC5pc1RvcExldmVsO1xyXG4gICAgLy8gQ29uc3VtZSBzcGxpdCBjb250ZXh0cyBmb3IgcmVkdWNlZCByZS1yZW5kZXIgc2NvcGVcclxuICAgIGNvbnN0IHsgaXRlbVRvRm9jdXMgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgaGFuZGxlRXhwYW5kZWRDaGFuZ2UgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFzSWNvbnMsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCBzZWxlY3RhYmxlIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29uZmlnQ29udGV4dCk7XHJcbiAgICAvLyBQYXNzIHRoZSByZXNvbHZlZCB2YWx1ZXMgdG8gdXNlVHJlZUl0ZW1cclxuICAgIGNvbnN0IHByb3BzV2l0aEhpZXJhcmNoeSA9IHtcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICB0b3BMZXZlbCxcclxuICAgICAgICBpdGVtRGVwdGg6IGhpZXJhcmNoeUNvbnRleHQuZGVwdGgsXHJcbiAgICAgICAgcGFyZW50RGVwdGg6IGhpZXJhcmNoeUNvbnRleHQucGFyZW50RGVwdGgsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wc1dpdGhIaWVyYXJjaHksIGZvcndhcmRlZFJlZik7XHJcbiAgICBjb25zdCB7IGlzRGlzYWJsZWQgfSA9IGNvbnRleHRWYWx1ZTtcclxuICAgIGNvbnN0IHsgY2hlY2tib3hDaGFuZ2VIYW5kbGVyLCBjaGVja2VkU3RhdHVzLCBleHBhbmRlZCwgaGFzT3duVHJlZUl0ZW1zLCBpdGVtRGVwdGgsIGl0ZW1JZCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IFJlYWN0LnVzZUNhbGxiYWNrKChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSBSZWFjdC51c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbZ2V0SW50ZXJhY3RpdmVFbGVtZW50cywgaW50ZXJhY3RpdmVFbGVtZW50cywgaXNJbnNpZGVUcmVlSXRlbV0pO1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIHNlbGVjdGFibGUsIGhhbmRsZUNsaWNrLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIE1lbW9pemUgaW5saW5lIHN0eWxlIG9iamVjdHMgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXHJcbiAgICBjb25zdCBjaGVja2JveElucHV0U3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7IG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyB9KSwgW3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXSk7XHJcbiAgICBjb25zdCBjaGVja2JveExhYmVsU3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XHJcbiAgICAgICAgcGFkZGluZzogMCxcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgfSksIFtdKTtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogY2hlY2tib3hJbnB1dFN0eWxlLFxyXG4gICAgICAgIGxhYmVsU3R5bGU6IGNoZWNrYm94TGFiZWxTdHlsZSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfSksIFtcclxuICAgICAgICBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBjaGVja2JveElucHV0U3R5bGUsXHJcbiAgICAgICAgY2hlY2tib3hMYWJlbFN0eWxlLFxyXG4gICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICBjaGVja2JveENoYW5nZUhhbmRsZXIsXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH0sIFtoYW5kbGVFeHBhbmRlZENoYW5nZSwgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBoYW5kbGVFeHBhbmRDbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBvbkV4cGFuZGVkQ2xpY2tlZChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIG9uRXhwYW5kZWRDbGlja2VkXSk7XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbXHJcbiAgICAgICAgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyxcclxuICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnRzLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93bixcclxuICAgICAgICBoYW5kbGVLZXlEb3duLFxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHRyZWVJdGVtU3R5bGVzIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiwgaG92ZXJDb2xvcjogaG92ZXJDb2xvciB9KSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSXRlbVdyYXBwZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgPz8gaXRlbUlkfS1pdGVtd3JhcHBlcmAsIGRlcHRoOiBpdGVtRGVwdGgsIGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCBoYXNDdXN0b21JY29uU2l6ZTogISFleHBhbmRJY29uU3R5bGVzPy5zaXplLCBpZDogYCR7aXRlbUlkfS1pdGVtd3JhcHBlcmAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHNlbGVjdGFibGU6IHNlbGVjdGFibGUsIHN0eWxlOiBzdHlsZSwgdGhlbWU6IHRoZW1lLCByZWY6IG1lcmdlUmVmcyhyZWYsIGZvY3VzVHJhcEVsZW1lbnQpLCBvbkNsaWNrOiBoYW5kbGVPbkNsaWNrIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGFzT3duVHJlZUl0ZW1zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEV4cGFuZFdyYXBwZXIsIHsgXCJhcmlhLWhpZGRlblwiOiBCb29sZWFuKCFleHBhbmRlZCksIHNpemU6IGV4cGFuZEljb25TdHlsZXM/LnNpemUsIGNvbG9yOiBleHBhbmRJY29uU3R5bGVzPy5jb2xvciwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1leHBhbmRgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlRXhwYW5kQ2xpY2ssIHRoZW1lOiB0aGVtZSB9LCBleHBhbmRlZCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEV4cGFuZE1vcmVJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGV2cm9uUmlnaHRJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkpKSxcclxuICAgICAgICAgICAgICAgICAgICBzaG91bGRTaG93Q2hlY2tib3ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRDaGVja2JveFdyYXBwZXIsIHsgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIHRoZW1lOiB0aGVtZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZCwgY2hpbGRJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZD8udHlwZSAhPT0gVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIGhpZXJhcmNoeSBpbmZvIHRocm91Z2ggY29udGV4dCBpbnN0ZWFkIG9mIGNsb25lRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5lc3RlZEhpZXJhcmNoeVZhbHVlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogaXRlbURlcHRoICsgMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGg6IGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNUb3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjaGlsZEluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwgeyByb2xlOiBcImdyb3VwXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0LlByb3ZpZGVyLCB7IGtleTogY2hpbGQucHJvcHMuaXRlbUlkLCB2YWx1ZTogbmVzdGVkSGllcmFyY2h5VmFsdWUgfSwgY2hpbGQpKSkpO1xyXG4gICAgICAgICAgICAgICAgfSkpKSkpO1xyXG59KTtcclxuLyoqXHJcbiAqIEN1c3RvbSBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciBSZWFjdC5tZW1vXHJcbiAqIE9ubHkgcmUtcmVuZGVyIFRyZWVJdGVtIHdoZW4gcmVsZXZhbnQgcHJvcHMgY2hhbmdlXHJcbiAqL1xyXG5mdW5jdGlvbiBhcmVQcm9wc0VxdWFsKHByZXZQcm9wcywgbmV4dFByb3BzKSB7XHJcbiAgICAvLyBDaGVjayBpZiBpdGVtSWQgY2hhbmdlZFxyXG4gICAgaWYgKHByZXZQcm9wcy5pdGVtSWQgIT09IG5leHRQcm9wcy5pdGVtSWQpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBsYWJlbCBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmxhYmVsICE9PSBuZXh0UHJvcHMubGFiZWwpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBkaXNhYmxlZCBzdGF0ZSBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmlzRGlzYWJsZWQgIT09IG5leHRQcm9wcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgaWNvbiBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmljb24gIT09IG5leHRQcm9wcy5pY29uKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgYWRkaXRpb25hbCBjb250ZW50IGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuYWRkaXRpb25hbENvbnRlbnQgIT09IG5leHRQcm9wcy5hZGRpdGlvbmFsQ29udGVudCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIGhvdmVyIGNvbG9yIGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuaG92ZXJDb2xvciAhPT0gbmV4dFByb3BzLmhvdmVyQ29sb3IpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBjaGlsZHJlbiBjaGFuZ2VkIChmb3IgbmVzdGVkIHRyZWUgaXRlbXMpXHJcbiAgICAvLyBVc2luZyB0eXBlIGFzc2VydGlvbiBzaW5jZSBjaGlsZHJlbiBjb21lcyBmcm9tIFJlYWN0LkhUTUxBdHRyaWJ1dGVzXHJcbiAgICBpZiAocHJldlByb3BzLmNoaWxkcmVuICE9PSBuZXh0UHJvcHMuY2hpbGRyZW4pIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBzdHlsZXMgY2hhbmdlZFxyXG4gICAgLy8gVXNpbmcgdHlwZSBhc3NlcnRpb24gc2luY2Ugc3R5bGUgY29tZXMgZnJvbSBSZWFjdC5IVE1MQXR0cmlidXRlc1xyXG4gICAgaWYgKHByZXZQcm9wcy5zdHlsZSAhPT0gbmV4dFByb3BzLnN0eWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByZXZQcm9wcy5sYWJlbFN0eWxlICE9PSBuZXh0UHJvcHMubGFiZWxTdHlsZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChwcmV2UHJvcHMudHJlZUl0ZW1TdHlsZXMgIT09IG5leHRQcm9wcy50cmVlSXRlbVN0eWxlcykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIEFsbCByZWxldmFudCBwcm9wcyBhcmUgZXF1YWwsIHNraXAgcmUtcmVuZGVyXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG4vKipcclxuICogTWVtb2l6ZWQgVHJlZUl0ZW0gY29tcG9uZW50XHJcbiAqIE9ubHkgcmUtcmVuZGVycyB3aGVuIHJlbGV2YW50IHByb3BzIGNoYW5nZSwgaW1wcm92aW5nIHBlcmZvcm1hbmNlIGZvciBsYXJnZSB0cmVlc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFRyZWVJdGVtID0gUmVhY3QubWVtbyhUcmVlSXRlbUNvbXBvbmVudCwgYXJlUHJvcHNFcXVhbCk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
22863
23373
|
var StyledExpandWrapper = /*#__PURE__*/_styled("div", {
|
|
22864
23374
|
target: "e1xiryew3",
|
|
22865
23375
|
label: "StyledExpandWrapper"
|
|
@@ -22875,7 +23385,7 @@ var StyledExpandWrapper = /*#__PURE__*/_styled("div", {
|
|
|
22875
23385
|
var size = _ref3.size,
|
|
22876
23386
|
theme = _ref3.theme;
|
|
22877
23387
|
return size !== undefined ? size + "px" : theme.spaceScale.spacing06;
|
|
22878
|
-
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzR3VDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5leHBvcnQgY29uc3QgVHJlZUl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFkZGl0aW9uYWxDb250ZW50LCBjaGlsZHJlbiwgaG92ZXJDb2xvciwgaWNvbiwgaW5kZXgsIGxhYmVsLCBsYWJlbFN0eWxlLCBzdHlsZSwgdGVzdElkLCB0b3BMZXZlbCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaXNUb3BMZXZlbFNlbGVjdGFibGUsIHNlbGVjdGFibGUsIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29udGV4dCk7XHJcbiAgICBjb25zdCB7IGNvbnRleHRWYWx1ZSwgaGFuZGxlQ2xpY2ssIGhhbmRsZUtleURvd24gfSA9IHVzZVRyZWVJdGVtKHByb3BzLCBmb3J3YXJkZWRSZWYpO1xyXG4gICAgY29uc3QgeyBpc0Rpc2FibGVkIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCB7IGNoZWNrYm94Q2hhbmdlSGFuZGxlciwgY2hlY2tlZFN0YXR1cywgZXhwYW5kZWQsIGhhc093blRyZWVJdGVtcywgaXRlbURlcHRoLCBpdGVtSWQsIHBhcmVudERlcHRoLCByZWYsIHNlbGVjdGVkSXRlbXMsIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCBub2RlVHlwZSA9IGhhc093blRyZWVJdGVtcyA/IFRyZWVOb2RlVHlwZS5icmFuY2ggOiBUcmVlTm9kZVR5cGUubGVhZjtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGVcclxuICAgICAgICA/IHNlbGVjdGVkSXRlbXM/LlswXT8uaXRlbUlkID09PSBpdGVtSWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBhcmlhQ2hlY2tlZFZhbHVlID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpXHJcbiAgICAgICAgPyBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuaW5kZXRlcm1pbmF0ZVxyXG4gICAgICAgICAgICA/ICdtaXhlZCdcclxuICAgICAgICAgICAgOiBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuY2hlY2tlZFxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IFtpc0luc2lkZVRyZWVJdGVtLCBzZXRJc0luc2lkZVRyZWVJdGVtXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgZm9jdXNUcmFwRWxlbWVudCA9IHVzZUZvY3VzTG9jayhpc0luc2lkZVRyZWVJdGVtKTtcclxuICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHMgPSAnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSc7XHJcbiAgICBjb25zdCBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzID0gKGNvbnRhaW5lciwgc2VsZWN0b3IpID0+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikpLmZpbHRlcihlbCA9PiAhZWwuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpIHx8XHJcbiAgICAgICAgICAgIChlbC50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmIGVsLnRhYkluZGV4ID49IDApKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogeyBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHN0eWxlOiB0cmVlSXRlbVN0eWxlcyB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRyZWVJdGVtLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFwiYXJpYS1leHBhbmRlZFwiOiBoYXNPd25UcmVlSXRlbXMgPyBleHBhbmRlZCA6IG51bGwsIFwiYXJpYS1zZWxlY3RlZFwiOiBzZWxlY3RlZEl0ZW0sIFwiYXJpYS1jaGVja2VkXCI6IHNob3VsZFNob3dDaGVja2JveCA/IGFyaWFDaGVja2VkVmFsdWUgOiBudWxsLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzT3duVHJlZUl0ZW1zOiBoYXNPd25UcmVlSXRlbXMsIGlkOiBpdGVtSWQsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHJvbGU6IFwidHJlZWl0ZW1cIiwgc2VsZWN0YWJsZVR5cGU6IHNlbGVjdGFibGUsIHNlbGVjdGVkOiBzZWxlY3RlZEl0ZW0sIHRoZW1lOiB0aGVtZSwgdGFiSW5kZXg6IHRhYkluZGV4LCBvbktleURvd246IG9uS2V5RG93bkhhbmRsZXIsIHJlZjogdHJlZUl0ZW1SZWYsIGhvdmVyQ29sb3I6IGhvdmVyQ29sb3IgfSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEl0ZW1XcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0taXRlbXdyYXBwZXJgLCBkZXB0aDogaXRlbURlcHRoLCBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgaGFzQ3VzdG9tSWNvblNpemU6ICEhZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSwgaWQ6IGAke2l0ZW1JZH0taXRlbXdyYXBwZXJgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgbm9kZVR5cGU6IG5vZGVUeXBlLCBzZWxlY3RhYmxlOiBzZWxlY3RhYmxlLCBzdHlsZTogc3R5bGUsIHRoZW1lOiB0aGVtZSwgcmVmOiBtZXJnZVJlZnMocmVmLCBmb2N1c1RyYXBFbGVtZW50KSwgb25DbGljazogaGFuZGxlT25DbGljayB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplLCBjb2xvcjogZXhwYW5kSWNvblN0eWxlcz8uY29sb3IsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tZXhwYW5kYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXhwYW5kZWRDbGlja2VkKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3dDaGVja2JveCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENoZWNrYm94V3JhcHBlciwgeyBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEluZGV0ZXJtaW5hdGVDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBzdGF0dXM6IGNoZWNrZWRTdGF0dXMgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBPYmplY3QuYXNzaWduKHt9LCBjaGVja2JveFByb3BzLCB7IGNoZWNrZWQ6IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4oY2hlY2tlZFN0YXR1cykgfSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZD8udHlwZSA9PT0gVHJlZUl0ZW0gPyAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmFuc2l0aW9uLCB7IGlzT3BlbjogZXhwYW5kZWQsIHVubW91bnRPbkV4aXQ6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHsgcm9sZTogXCJncm91cFwiIH0sIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNoaWxkLnByb3BzLml0ZW1JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGV2ZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSkpKSA6IChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9KSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UcmVlSXRlbS5qcy5tYXAiXX0= */"));
|
|
23388
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5R3VDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb25maWdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbmZpZ0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyBjYWxjdWxhdGVPZmZzZXQsIGdldFRyZWVJdGVtTGFiZWxDb2xvciwgZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yLCBUcmVlTm9kZVR5cGUsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZUZvY3VzTG9jayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUZvY3VzTG9jayc7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi4vQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBJbmRldGVybWluYXRlQ2hlY2tib3gsIEluZGV0ZXJtaW5hdGVDaGVja2JveFN0YXR1cywgfSBmcm9tICcuLi9JbmRldGVybWluYXRlQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSAnLi4vVHJhbnNpdGlvbic7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5jb25zdCBUcmVlSXRlbUNvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBob3ZlckNvbG9yLCBpY29uLCBpbmRleDogaW5kZXhQcm9wLCBsYWJlbCwgbGFiZWxTdHlsZSwgc3R5bGUsIHRlc3RJZCwgdG9wTGV2ZWw6IHRvcExldmVsUHJvcCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIC8vIFJlYWQgaGllcmFyY2h5IGluZm9ybWF0aW9uIGZyb20gY29udGV4dCAocmVkdWNlcyBjbG9uZUVsZW1lbnQgb3ZlcmhlYWQpXHJcbiAgICBjb25zdCBoaWVyYXJjaHlDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQpO1xyXG4gICAgLy8gVXNlIGNvbnRleHQgdmFsdWVzIGlmIHByb3BzIGFyZSBub3QgcHJvdmlkZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxyXG4gICAgY29uc3QgaW5kZXggPSBpbmRleFByb3AgIT09IHVuZGVmaW5lZCA/IGluZGV4UHJvcCA6IGhpZXJhcmNoeUNvbnRleHQuaW5kZXg7XHJcbiAgICBjb25zdCB0b3BMZXZlbCA9IHRvcExldmVsUHJvcCAhPT0gdW5kZWZpbmVkID8gdG9wTGV2ZWxQcm9wIDogaGllcmFyY2h5Q29udGV4dC5pc1RvcExldmVsO1xyXG4gICAgLy8gQ29uc3VtZSBzcGxpdCBjb250ZXh0cyBmb3IgcmVkdWNlZCByZS1yZW5kZXIgc2NvcGVcclxuICAgIGNvbnN0IHsgaXRlbVRvRm9jdXMgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgaGFuZGxlRXhwYW5kZWRDaGFuZ2UgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFzSWNvbnMsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCBzZWxlY3RhYmxlIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29uZmlnQ29udGV4dCk7XHJcbiAgICAvLyBQYXNzIHRoZSByZXNvbHZlZCB2YWx1ZXMgdG8gdXNlVHJlZUl0ZW1cclxuICAgIGNvbnN0IHByb3BzV2l0aEhpZXJhcmNoeSA9IHtcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICB0b3BMZXZlbCxcclxuICAgICAgICBpdGVtRGVwdGg6IGhpZXJhcmNoeUNvbnRleHQuZGVwdGgsXHJcbiAgICAgICAgcGFyZW50RGVwdGg6IGhpZXJhcmNoeUNvbnRleHQucGFyZW50RGVwdGgsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wc1dpdGhIaWVyYXJjaHksIGZvcndhcmRlZFJlZik7XHJcbiAgICBjb25zdCB7IGlzRGlzYWJsZWQgfSA9IGNvbnRleHRWYWx1ZTtcclxuICAgIGNvbnN0IHsgY2hlY2tib3hDaGFuZ2VIYW5kbGVyLCBjaGVja2VkU3RhdHVzLCBleHBhbmRlZCwgaGFzT3duVHJlZUl0ZW1zLCBpdGVtRGVwdGgsIGl0ZW1JZCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IFJlYWN0LnVzZUNhbGxiYWNrKChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSBSZWFjdC51c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbZ2V0SW50ZXJhY3RpdmVFbGVtZW50cywgaW50ZXJhY3RpdmVFbGVtZW50cywgaXNJbnNpZGVUcmVlSXRlbV0pO1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIHNlbGVjdGFibGUsIGhhbmRsZUNsaWNrLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIE1lbW9pemUgaW5saW5lIHN0eWxlIG9iamVjdHMgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXHJcbiAgICBjb25zdCBjaGVja2JveElucHV0U3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7IG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyB9KSwgW3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXSk7XHJcbiAgICBjb25zdCBjaGVja2JveExhYmVsU3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XHJcbiAgICAgICAgcGFkZGluZzogMCxcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgfSksIFtdKTtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogY2hlY2tib3hJbnB1dFN0eWxlLFxyXG4gICAgICAgIGxhYmVsU3R5bGU6IGNoZWNrYm94TGFiZWxTdHlsZSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfSksIFtcclxuICAgICAgICBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBjaGVja2JveElucHV0U3R5bGUsXHJcbiAgICAgICAgY2hlY2tib3hMYWJlbFN0eWxlLFxyXG4gICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICBjaGVja2JveENoYW5nZUhhbmRsZXIsXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH0sIFtoYW5kbGVFeHBhbmRlZENoYW5nZSwgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBoYW5kbGVFeHBhbmRDbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBvbkV4cGFuZGVkQ2xpY2tlZChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIG9uRXhwYW5kZWRDbGlja2VkXSk7XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbXHJcbiAgICAgICAgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyxcclxuICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnRzLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93bixcclxuICAgICAgICBoYW5kbGVLZXlEb3duLFxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHRyZWVJdGVtU3R5bGVzIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiwgaG92ZXJDb2xvcjogaG92ZXJDb2xvciB9KSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSXRlbVdyYXBwZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgPz8gaXRlbUlkfS1pdGVtd3JhcHBlcmAsIGRlcHRoOiBpdGVtRGVwdGgsIGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCBoYXNDdXN0b21JY29uU2l6ZTogISFleHBhbmRJY29uU3R5bGVzPy5zaXplLCBpZDogYCR7aXRlbUlkfS1pdGVtd3JhcHBlcmAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHNlbGVjdGFibGU6IHNlbGVjdGFibGUsIHN0eWxlOiBzdHlsZSwgdGhlbWU6IHRoZW1lLCByZWY6IG1lcmdlUmVmcyhyZWYsIGZvY3VzVHJhcEVsZW1lbnQpLCBvbkNsaWNrOiBoYW5kbGVPbkNsaWNrIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGFzT3duVHJlZUl0ZW1zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEV4cGFuZFdyYXBwZXIsIHsgXCJhcmlhLWhpZGRlblwiOiBCb29sZWFuKCFleHBhbmRlZCksIHNpemU6IGV4cGFuZEljb25TdHlsZXM/LnNpemUsIGNvbG9yOiBleHBhbmRJY29uU3R5bGVzPy5jb2xvciwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1leHBhbmRgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlRXhwYW5kQ2xpY2ssIHRoZW1lOiB0aGVtZSB9LCBleHBhbmRlZCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEV4cGFuZE1vcmVJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGV2cm9uUmlnaHRJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkpKSxcclxuICAgICAgICAgICAgICAgICAgICBzaG91bGRTaG93Q2hlY2tib3ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRDaGVja2JveFdyYXBwZXIsIHsgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIHRoZW1lOiB0aGVtZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZCwgY2hpbGRJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZD8udHlwZSAhPT0gVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIGhpZXJhcmNoeSBpbmZvIHRocm91Z2ggY29udGV4dCBpbnN0ZWFkIG9mIGNsb25lRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5lc3RlZEhpZXJhcmNoeVZhbHVlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogaXRlbURlcHRoICsgMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGg6IGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNUb3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjaGlsZEluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwgeyByb2xlOiBcImdyb3VwXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0LlByb3ZpZGVyLCB7IGtleTogY2hpbGQucHJvcHMuaXRlbUlkLCB2YWx1ZTogbmVzdGVkSGllcmFyY2h5VmFsdWUgfSwgY2hpbGQpKSkpO1xyXG4gICAgICAgICAgICAgICAgfSkpKSkpO1xyXG59KTtcclxuLyoqXHJcbiAqIEN1c3RvbSBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciBSZWFjdC5tZW1vXHJcbiAqIE9ubHkgcmUtcmVuZGVyIFRyZWVJdGVtIHdoZW4gcmVsZXZhbnQgcHJvcHMgY2hhbmdlXHJcbiAqL1xyXG5mdW5jdGlvbiBhcmVQcm9wc0VxdWFsKHByZXZQcm9wcywgbmV4dFByb3BzKSB7XHJcbiAgICAvLyBDaGVjayBpZiBpdGVtSWQgY2hhbmdlZFxyXG4gICAgaWYgKHByZXZQcm9wcy5pdGVtSWQgIT09IG5leHRQcm9wcy5pdGVtSWQpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBsYWJlbCBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmxhYmVsICE9PSBuZXh0UHJvcHMubGFiZWwpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBkaXNhYmxlZCBzdGF0ZSBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmlzRGlzYWJsZWQgIT09IG5leHRQcm9wcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgaWNvbiBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmljb24gIT09IG5leHRQcm9wcy5pY29uKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgYWRkaXRpb25hbCBjb250ZW50IGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuYWRkaXRpb25hbENvbnRlbnQgIT09IG5leHRQcm9wcy5hZGRpdGlvbmFsQ29udGVudCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIGhvdmVyIGNvbG9yIGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuaG92ZXJDb2xvciAhPT0gbmV4dFByb3BzLmhvdmVyQ29sb3IpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBjaGlsZHJlbiBjaGFuZ2VkIChmb3IgbmVzdGVkIHRyZWUgaXRlbXMpXHJcbiAgICAvLyBVc2luZyB0eXBlIGFzc2VydGlvbiBzaW5jZSBjaGlsZHJlbiBjb21lcyBmcm9tIFJlYWN0LkhUTUxBdHRyaWJ1dGVzXHJcbiAgICBpZiAocHJldlByb3BzLmNoaWxkcmVuICE9PSBuZXh0UHJvcHMuY2hpbGRyZW4pIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBzdHlsZXMgY2hhbmdlZFxyXG4gICAgLy8gVXNpbmcgdHlwZSBhc3NlcnRpb24gc2luY2Ugc3R5bGUgY29tZXMgZnJvbSBSZWFjdC5IVE1MQXR0cmlidXRlc1xyXG4gICAgaWYgKHByZXZQcm9wcy5zdHlsZSAhPT0gbmV4dFByb3BzLnN0eWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByZXZQcm9wcy5sYWJlbFN0eWxlICE9PSBuZXh0UHJvcHMubGFiZWxTdHlsZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChwcmV2UHJvcHMudHJlZUl0ZW1TdHlsZXMgIT09IG5leHRQcm9wcy50cmVlSXRlbVN0eWxlcykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIEFsbCByZWxldmFudCBwcm9wcyBhcmUgZXF1YWwsIHNraXAgcmUtcmVuZGVyXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG4vKipcclxuICogTWVtb2l6ZWQgVHJlZUl0ZW0gY29tcG9uZW50XHJcbiAqIE9ubHkgcmUtcmVuZGVycyB3aGVuIHJlbGV2YW50IHByb3BzIGNoYW5nZSwgaW1wcm92aW5nIHBlcmZvcm1hbmNlIGZvciBsYXJnZSB0cmVlc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFRyZWVJdGVtID0gUmVhY3QubWVtbyhUcmVlSXRlbUNvbXBvbmVudCwgYXJlUHJvcHNFcXVhbCk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
22879
23389
|
var StyledCheckboxWrapper = /*#__PURE__*/_styled("div", {
|
|
22880
23390
|
target: "e1xiryew2",
|
|
22881
23391
|
label: "StyledCheckboxWrapper"
|
|
@@ -22885,7 +23395,7 @@ var StyledCheckboxWrapper = /*#__PURE__*/_styled("div", {
|
|
|
22885
23395
|
return props.hasAdditionalContent ? 'flex' : 'inline-flex';
|
|
22886
23396
|
}, ";flex-direction:column;width:", function (props) {
|
|
22887
23397
|
return "calc(100% - " + props.theme.spaceScale.spacing03 + ")";
|
|
22888
|
-
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnSHlDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5leHBvcnQgY29uc3QgVHJlZUl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFkZGl0aW9uYWxDb250ZW50LCBjaGlsZHJlbiwgaG92ZXJDb2xvciwgaWNvbiwgaW5kZXgsIGxhYmVsLCBsYWJlbFN0eWxlLCBzdHlsZSwgdGVzdElkLCB0b3BMZXZlbCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaXNUb3BMZXZlbFNlbGVjdGFibGUsIHNlbGVjdGFibGUsIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29udGV4dCk7XHJcbiAgICBjb25zdCB7IGNvbnRleHRWYWx1ZSwgaGFuZGxlQ2xpY2ssIGhhbmRsZUtleURvd24gfSA9IHVzZVRyZWVJdGVtKHByb3BzLCBmb3J3YXJkZWRSZWYpO1xyXG4gICAgY29uc3QgeyBpc0Rpc2FibGVkIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCB7IGNoZWNrYm94Q2hhbmdlSGFuZGxlciwgY2hlY2tlZFN0YXR1cywgZXhwYW5kZWQsIGhhc093blRyZWVJdGVtcywgaXRlbURlcHRoLCBpdGVtSWQsIHBhcmVudERlcHRoLCByZWYsIHNlbGVjdGVkSXRlbXMsIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCBub2RlVHlwZSA9IGhhc093blRyZWVJdGVtcyA/IFRyZWVOb2RlVHlwZS5icmFuY2ggOiBUcmVlTm9kZVR5cGUubGVhZjtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGVcclxuICAgICAgICA/IHNlbGVjdGVkSXRlbXM/LlswXT8uaXRlbUlkID09PSBpdGVtSWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBhcmlhQ2hlY2tlZFZhbHVlID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpXHJcbiAgICAgICAgPyBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuaW5kZXRlcm1pbmF0ZVxyXG4gICAgICAgICAgICA/ICdtaXhlZCdcclxuICAgICAgICAgICAgOiBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuY2hlY2tlZFxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IFtpc0luc2lkZVRyZWVJdGVtLCBzZXRJc0luc2lkZVRyZWVJdGVtXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgZm9jdXNUcmFwRWxlbWVudCA9IHVzZUZvY3VzTG9jayhpc0luc2lkZVRyZWVJdGVtKTtcclxuICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHMgPSAnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSc7XHJcbiAgICBjb25zdCBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzID0gKGNvbnRhaW5lciwgc2VsZWN0b3IpID0+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikpLmZpbHRlcihlbCA9PiAhZWwuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpIHx8XHJcbiAgICAgICAgICAgIChlbC50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmIGVsLnRhYkluZGV4ID49IDApKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogeyBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHN0eWxlOiB0cmVlSXRlbVN0eWxlcyB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRyZWVJdGVtLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFwiYXJpYS1leHBhbmRlZFwiOiBoYXNPd25UcmVlSXRlbXMgPyBleHBhbmRlZCA6IG51bGwsIFwiYXJpYS1zZWxlY3RlZFwiOiBzZWxlY3RlZEl0ZW0sIFwiYXJpYS1jaGVja2VkXCI6IHNob3VsZFNob3dDaGVja2JveCA/IGFyaWFDaGVja2VkVmFsdWUgOiBudWxsLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzT3duVHJlZUl0ZW1zOiBoYXNPd25UcmVlSXRlbXMsIGlkOiBpdGVtSWQsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHJvbGU6IFwidHJlZWl0ZW1cIiwgc2VsZWN0YWJsZVR5cGU6IHNlbGVjdGFibGUsIHNlbGVjdGVkOiBzZWxlY3RlZEl0ZW0sIHRoZW1lOiB0aGVtZSwgdGFiSW5kZXg6IHRhYkluZGV4LCBvbktleURvd246IG9uS2V5RG93bkhhbmRsZXIsIHJlZjogdHJlZUl0ZW1SZWYsIGhvdmVyQ29sb3I6IGhvdmVyQ29sb3IgfSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEl0ZW1XcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0taXRlbXdyYXBwZXJgLCBkZXB0aDogaXRlbURlcHRoLCBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgaGFzQ3VzdG9tSWNvblNpemU6ICEhZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSwgaWQ6IGAke2l0ZW1JZH0taXRlbXdyYXBwZXJgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgbm9kZVR5cGU6IG5vZGVUeXBlLCBzZWxlY3RhYmxlOiBzZWxlY3RhYmxlLCBzdHlsZTogc3R5bGUsIHRoZW1lOiB0aGVtZSwgcmVmOiBtZXJnZVJlZnMocmVmLCBmb2N1c1RyYXBFbGVtZW50KSwgb25DbGljazogaGFuZGxlT25DbGljayB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplLCBjb2xvcjogZXhwYW5kSWNvblN0eWxlcz8uY29sb3IsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tZXhwYW5kYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXhwYW5kZWRDbGlja2VkKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3dDaGVja2JveCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENoZWNrYm94V3JhcHBlciwgeyBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEluZGV0ZXJtaW5hdGVDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBzdGF0dXM6IGNoZWNrZWRTdGF0dXMgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBPYmplY3QuYXNzaWduKHt9LCBjaGVja2JveFByb3BzLCB7IGNoZWNrZWQ6IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4oY2hlY2tlZFN0YXR1cykgfSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZD8udHlwZSA9PT0gVHJlZUl0ZW0gPyAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmFuc2l0aW9uLCB7IGlzT3BlbjogZXhwYW5kZWQsIHVubW91bnRPbkV4aXQ6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHsgcm9sZTogXCJncm91cFwiIH0sIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNoaWxkLnByb3BzLml0ZW1JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGV2ZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSkpKSA6IChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9KSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UcmVlSXRlbS5qcy5tYXAiXX0= */"));
|
|
23398
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtSHlDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb25maWdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbmZpZ0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyBjYWxjdWxhdGVPZmZzZXQsIGdldFRyZWVJdGVtTGFiZWxDb2xvciwgZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yLCBUcmVlTm9kZVR5cGUsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZUZvY3VzTG9jayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUZvY3VzTG9jayc7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi4vQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBJbmRldGVybWluYXRlQ2hlY2tib3gsIEluZGV0ZXJtaW5hdGVDaGVja2JveFN0YXR1cywgfSBmcm9tICcuLi9JbmRldGVybWluYXRlQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSAnLi4vVHJhbnNpdGlvbic7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5jb25zdCBUcmVlSXRlbUNvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBob3ZlckNvbG9yLCBpY29uLCBpbmRleDogaW5kZXhQcm9wLCBsYWJlbCwgbGFiZWxTdHlsZSwgc3R5bGUsIHRlc3RJZCwgdG9wTGV2ZWw6IHRvcExldmVsUHJvcCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIC8vIFJlYWQgaGllcmFyY2h5IGluZm9ybWF0aW9uIGZyb20gY29udGV4dCAocmVkdWNlcyBjbG9uZUVsZW1lbnQgb3ZlcmhlYWQpXHJcbiAgICBjb25zdCBoaWVyYXJjaHlDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQpO1xyXG4gICAgLy8gVXNlIGNvbnRleHQgdmFsdWVzIGlmIHByb3BzIGFyZSBub3QgcHJvdmlkZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxyXG4gICAgY29uc3QgaW5kZXggPSBpbmRleFByb3AgIT09IHVuZGVmaW5lZCA/IGluZGV4UHJvcCA6IGhpZXJhcmNoeUNvbnRleHQuaW5kZXg7XHJcbiAgICBjb25zdCB0b3BMZXZlbCA9IHRvcExldmVsUHJvcCAhPT0gdW5kZWZpbmVkID8gdG9wTGV2ZWxQcm9wIDogaGllcmFyY2h5Q29udGV4dC5pc1RvcExldmVsO1xyXG4gICAgLy8gQ29uc3VtZSBzcGxpdCBjb250ZXh0cyBmb3IgcmVkdWNlZCByZS1yZW5kZXIgc2NvcGVcclxuICAgIGNvbnN0IHsgaXRlbVRvRm9jdXMgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgaGFuZGxlRXhwYW5kZWRDaGFuZ2UgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFzSWNvbnMsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCBzZWxlY3RhYmxlIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29uZmlnQ29udGV4dCk7XHJcbiAgICAvLyBQYXNzIHRoZSByZXNvbHZlZCB2YWx1ZXMgdG8gdXNlVHJlZUl0ZW1cclxuICAgIGNvbnN0IHByb3BzV2l0aEhpZXJhcmNoeSA9IHtcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICB0b3BMZXZlbCxcclxuICAgICAgICBpdGVtRGVwdGg6IGhpZXJhcmNoeUNvbnRleHQuZGVwdGgsXHJcbiAgICAgICAgcGFyZW50RGVwdGg6IGhpZXJhcmNoeUNvbnRleHQucGFyZW50RGVwdGgsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wc1dpdGhIaWVyYXJjaHksIGZvcndhcmRlZFJlZik7XHJcbiAgICBjb25zdCB7IGlzRGlzYWJsZWQgfSA9IGNvbnRleHRWYWx1ZTtcclxuICAgIGNvbnN0IHsgY2hlY2tib3hDaGFuZ2VIYW5kbGVyLCBjaGVja2VkU3RhdHVzLCBleHBhbmRlZCwgaGFzT3duVHJlZUl0ZW1zLCBpdGVtRGVwdGgsIGl0ZW1JZCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IFJlYWN0LnVzZUNhbGxiYWNrKChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSBSZWFjdC51c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbZ2V0SW50ZXJhY3RpdmVFbGVtZW50cywgaW50ZXJhY3RpdmVFbGVtZW50cywgaXNJbnNpZGVUcmVlSXRlbV0pO1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIHNlbGVjdGFibGUsIGhhbmRsZUNsaWNrLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIE1lbW9pemUgaW5saW5lIHN0eWxlIG9iamVjdHMgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXHJcbiAgICBjb25zdCBjaGVja2JveElucHV0U3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7IG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyB9KSwgW3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXSk7XHJcbiAgICBjb25zdCBjaGVja2JveExhYmVsU3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XHJcbiAgICAgICAgcGFkZGluZzogMCxcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgfSksIFtdKTtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogY2hlY2tib3hJbnB1dFN0eWxlLFxyXG4gICAgICAgIGxhYmVsU3R5bGU6IGNoZWNrYm94TGFiZWxTdHlsZSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfSksIFtcclxuICAgICAgICBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBjaGVja2JveElucHV0U3R5bGUsXHJcbiAgICAgICAgY2hlY2tib3hMYWJlbFN0eWxlLFxyXG4gICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICBjaGVja2JveENoYW5nZUhhbmRsZXIsXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH0sIFtoYW5kbGVFeHBhbmRlZENoYW5nZSwgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBoYW5kbGVFeHBhbmRDbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBvbkV4cGFuZGVkQ2xpY2tlZChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIG9uRXhwYW5kZWRDbGlja2VkXSk7XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbXHJcbiAgICAgICAgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyxcclxuICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnRzLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93bixcclxuICAgICAgICBoYW5kbGVLZXlEb3duLFxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHRyZWVJdGVtU3R5bGVzIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiwgaG92ZXJDb2xvcjogaG92ZXJDb2xvciB9KSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSXRlbVdyYXBwZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgPz8gaXRlbUlkfS1pdGVtd3JhcHBlcmAsIGRlcHRoOiBpdGVtRGVwdGgsIGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCBoYXNDdXN0b21JY29uU2l6ZTogISFleHBhbmRJY29uU3R5bGVzPy5zaXplLCBpZDogYCR7aXRlbUlkfS1pdGVtd3JhcHBlcmAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHNlbGVjdGFibGU6IHNlbGVjdGFibGUsIHN0eWxlOiBzdHlsZSwgdGhlbWU6IHRoZW1lLCByZWY6IG1lcmdlUmVmcyhyZWYsIGZvY3VzVHJhcEVsZW1lbnQpLCBvbkNsaWNrOiBoYW5kbGVPbkNsaWNrIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGFzT3duVHJlZUl0ZW1zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEV4cGFuZFdyYXBwZXIsIHsgXCJhcmlhLWhpZGRlblwiOiBCb29sZWFuKCFleHBhbmRlZCksIHNpemU6IGV4cGFuZEljb25TdHlsZXM/LnNpemUsIGNvbG9yOiBleHBhbmRJY29uU3R5bGVzPy5jb2xvciwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1leHBhbmRgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlRXhwYW5kQ2xpY2ssIHRoZW1lOiB0aGVtZSB9LCBleHBhbmRlZCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEV4cGFuZE1vcmVJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGV2cm9uUmlnaHRJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkpKSxcclxuICAgICAgICAgICAgICAgICAgICBzaG91bGRTaG93Q2hlY2tib3ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRDaGVja2JveFdyYXBwZXIsIHsgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIHRoZW1lOiB0aGVtZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZCwgY2hpbGRJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZD8udHlwZSAhPT0gVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIGhpZXJhcmNoeSBpbmZvIHRocm91Z2ggY29udGV4dCBpbnN0ZWFkIG9mIGNsb25lRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5lc3RlZEhpZXJhcmNoeVZhbHVlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogaXRlbURlcHRoICsgMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGg6IGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNUb3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjaGlsZEluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwgeyByb2xlOiBcImdyb3VwXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0LlByb3ZpZGVyLCB7IGtleTogY2hpbGQucHJvcHMuaXRlbUlkLCB2YWx1ZTogbmVzdGVkSGllcmFyY2h5VmFsdWUgfSwgY2hpbGQpKSkpO1xyXG4gICAgICAgICAgICAgICAgfSkpKSkpO1xyXG59KTtcclxuLyoqXHJcbiAqIEN1c3RvbSBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciBSZWFjdC5tZW1vXHJcbiAqIE9ubHkgcmUtcmVuZGVyIFRyZWVJdGVtIHdoZW4gcmVsZXZhbnQgcHJvcHMgY2hhbmdlXHJcbiAqL1xyXG5mdW5jdGlvbiBhcmVQcm9wc0VxdWFsKHByZXZQcm9wcywgbmV4dFByb3BzKSB7XHJcbiAgICAvLyBDaGVjayBpZiBpdGVtSWQgY2hhbmdlZFxyXG4gICAgaWYgKHByZXZQcm9wcy5pdGVtSWQgIT09IG5leHRQcm9wcy5pdGVtSWQpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBsYWJlbCBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmxhYmVsICE9PSBuZXh0UHJvcHMubGFiZWwpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBkaXNhYmxlZCBzdGF0ZSBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmlzRGlzYWJsZWQgIT09IG5leHRQcm9wcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgaWNvbiBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmljb24gIT09IG5leHRQcm9wcy5pY29uKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgYWRkaXRpb25hbCBjb250ZW50IGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuYWRkaXRpb25hbENvbnRlbnQgIT09IG5leHRQcm9wcy5hZGRpdGlvbmFsQ29udGVudCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIGhvdmVyIGNvbG9yIGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuaG92ZXJDb2xvciAhPT0gbmV4dFByb3BzLmhvdmVyQ29sb3IpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBjaGlsZHJlbiBjaGFuZ2VkIChmb3IgbmVzdGVkIHRyZWUgaXRlbXMpXHJcbiAgICAvLyBVc2luZyB0eXBlIGFzc2VydGlvbiBzaW5jZSBjaGlsZHJlbiBjb21lcyBmcm9tIFJlYWN0LkhUTUxBdHRyaWJ1dGVzXHJcbiAgICBpZiAocHJldlByb3BzLmNoaWxkcmVuICE9PSBuZXh0UHJvcHMuY2hpbGRyZW4pIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBzdHlsZXMgY2hhbmdlZFxyXG4gICAgLy8gVXNpbmcgdHlwZSBhc3NlcnRpb24gc2luY2Ugc3R5bGUgY29tZXMgZnJvbSBSZWFjdC5IVE1MQXR0cmlidXRlc1xyXG4gICAgaWYgKHByZXZQcm9wcy5zdHlsZSAhPT0gbmV4dFByb3BzLnN0eWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByZXZQcm9wcy5sYWJlbFN0eWxlICE9PSBuZXh0UHJvcHMubGFiZWxTdHlsZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChwcmV2UHJvcHMudHJlZUl0ZW1TdHlsZXMgIT09IG5leHRQcm9wcy50cmVlSXRlbVN0eWxlcykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIEFsbCByZWxldmFudCBwcm9wcyBhcmUgZXF1YWwsIHNraXAgcmUtcmVuZGVyXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG4vKipcclxuICogTWVtb2l6ZWQgVHJlZUl0ZW0gY29tcG9uZW50XHJcbiAqIE9ubHkgcmUtcmVuZGVycyB3aGVuIHJlbGV2YW50IHByb3BzIGNoYW5nZSwgaW1wcm92aW5nIHBlcmZvcm1hbmNlIGZvciBsYXJnZSB0cmVlc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFRyZWVJdGVtID0gUmVhY3QubWVtbyhUcmVlSXRlbUNvbXBvbmVudCwgYXJlUHJvcHNFcXVhbCk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
22889
23399
|
var StyledItemWrapper = /*#__PURE__*/_styled("div", {
|
|
22890
23400
|
target: "e1xiryew1",
|
|
22891
23401
|
label: "StyledItemWrapper"
|
|
@@ -22895,36 +23405,52 @@ var StyledItemWrapper = /*#__PURE__*/_styled("div", {
|
|
|
22895
23405
|
return props.hasCustomIconSize ? 'center' : 'flex-start';
|
|
22896
23406
|
}, ";cursor:", function (props) {
|
|
22897
23407
|
return getTreeItemWrapperCursor(props.isDisabled, props.selectable, props.nodeType);
|
|
22898
|
-
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1SHFDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5leHBvcnQgY29uc3QgVHJlZUl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFkZGl0aW9uYWxDb250ZW50LCBjaGlsZHJlbiwgaG92ZXJDb2xvciwgaWNvbiwgaW5kZXgsIGxhYmVsLCBsYWJlbFN0eWxlLCBzdHlsZSwgdGVzdElkLCB0b3BMZXZlbCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaXNUb3BMZXZlbFNlbGVjdGFibGUsIHNlbGVjdGFibGUsIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29udGV4dCk7XHJcbiAgICBjb25zdCB7IGNvbnRleHRWYWx1ZSwgaGFuZGxlQ2xpY2ssIGhhbmRsZUtleURvd24gfSA9IHVzZVRyZWVJdGVtKHByb3BzLCBmb3J3YXJkZWRSZWYpO1xyXG4gICAgY29uc3QgeyBpc0Rpc2FibGVkIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCB7IGNoZWNrYm94Q2hhbmdlSGFuZGxlciwgY2hlY2tlZFN0YXR1cywgZXhwYW5kZWQsIGhhc093blRyZWVJdGVtcywgaXRlbURlcHRoLCBpdGVtSWQsIHBhcmVudERlcHRoLCByZWYsIHNlbGVjdGVkSXRlbXMsIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCBub2RlVHlwZSA9IGhhc093blRyZWVJdGVtcyA/IFRyZWVOb2RlVHlwZS5icmFuY2ggOiBUcmVlTm9kZVR5cGUubGVhZjtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGVcclxuICAgICAgICA/IHNlbGVjdGVkSXRlbXM/LlswXT8uaXRlbUlkID09PSBpdGVtSWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBhcmlhQ2hlY2tlZFZhbHVlID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpXHJcbiAgICAgICAgPyBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuaW5kZXRlcm1pbmF0ZVxyXG4gICAgICAgICAgICA/ICdtaXhlZCdcclxuICAgICAgICAgICAgOiBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuY2hlY2tlZFxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IFtpc0luc2lkZVRyZWVJdGVtLCBzZXRJc0luc2lkZVRyZWVJdGVtXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgZm9jdXNUcmFwRWxlbWVudCA9IHVzZUZvY3VzTG9jayhpc0luc2lkZVRyZWVJdGVtKTtcclxuICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHMgPSAnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSc7XHJcbiAgICBjb25zdCBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzID0gKGNvbnRhaW5lciwgc2VsZWN0b3IpID0+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikpLmZpbHRlcihlbCA9PiAhZWwuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpIHx8XHJcbiAgICAgICAgICAgIChlbC50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmIGVsLnRhYkluZGV4ID49IDApKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogeyBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHN0eWxlOiB0cmVlSXRlbVN0eWxlcyB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRyZWVJdGVtLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFwiYXJpYS1leHBhbmRlZFwiOiBoYXNPd25UcmVlSXRlbXMgPyBleHBhbmRlZCA6IG51bGwsIFwiYXJpYS1zZWxlY3RlZFwiOiBzZWxlY3RlZEl0ZW0sIFwiYXJpYS1jaGVja2VkXCI6IHNob3VsZFNob3dDaGVja2JveCA/IGFyaWFDaGVja2VkVmFsdWUgOiBudWxsLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzT3duVHJlZUl0ZW1zOiBoYXNPd25UcmVlSXRlbXMsIGlkOiBpdGVtSWQsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHJvbGU6IFwidHJlZWl0ZW1cIiwgc2VsZWN0YWJsZVR5cGU6IHNlbGVjdGFibGUsIHNlbGVjdGVkOiBzZWxlY3RlZEl0ZW0sIHRoZW1lOiB0aGVtZSwgdGFiSW5kZXg6IHRhYkluZGV4LCBvbktleURvd246IG9uS2V5RG93bkhhbmRsZXIsIHJlZjogdHJlZUl0ZW1SZWYsIGhvdmVyQ29sb3I6IGhvdmVyQ29sb3IgfSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEl0ZW1XcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0taXRlbXdyYXBwZXJgLCBkZXB0aDogaXRlbURlcHRoLCBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgaGFzQ3VzdG9tSWNvblNpemU6ICEhZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSwgaWQ6IGAke2l0ZW1JZH0taXRlbXdyYXBwZXJgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgbm9kZVR5cGU6IG5vZGVUeXBlLCBzZWxlY3RhYmxlOiBzZWxlY3RhYmxlLCBzdHlsZTogc3R5bGUsIHRoZW1lOiB0aGVtZSwgcmVmOiBtZXJnZVJlZnMocmVmLCBmb2N1c1RyYXBFbGVtZW50KSwgb25DbGljazogaGFuZGxlT25DbGljayB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplLCBjb2xvcjogZXhwYW5kSWNvblN0eWxlcz8uY29sb3IsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tZXhwYW5kYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXhwYW5kZWRDbGlja2VkKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3dDaGVja2JveCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENoZWNrYm94V3JhcHBlciwgeyBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEluZGV0ZXJtaW5hdGVDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBzdGF0dXM6IGNoZWNrZWRTdGF0dXMgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBPYmplY3QuYXNzaWduKHt9LCBjaGVja2JveFByb3BzLCB7IGNoZWNrZWQ6IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4oY2hlY2tlZFN0YXR1cykgfSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZD8udHlwZSA9PT0gVHJlZUl0ZW0gPyAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmFuc2l0aW9uLCB7IGlzT3BlbjogZXhwYW5kZWQsIHVubW91bnRPbkV4aXQ6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHsgcm9sZTogXCJncm91cFwiIH0sIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNoaWxkLnByb3BzLml0ZW1JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGV2ZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSkpKSA6IChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9KSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UcmVlSXRlbS5qcy5tYXAiXX0= */"));
|
|
23408
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwSHFDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb25maWdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbmZpZ0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyBjYWxjdWxhdGVPZmZzZXQsIGdldFRyZWVJdGVtTGFiZWxDb2xvciwgZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yLCBUcmVlTm9kZVR5cGUsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZUZvY3VzTG9jayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUZvY3VzTG9jayc7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi4vQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBJbmRldGVybWluYXRlQ2hlY2tib3gsIEluZGV0ZXJtaW5hdGVDaGVja2JveFN0YXR1cywgfSBmcm9tICcuLi9JbmRldGVybWluYXRlQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSAnLi4vVHJhbnNpdGlvbic7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5jb25zdCBUcmVlSXRlbUNvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBob3ZlckNvbG9yLCBpY29uLCBpbmRleDogaW5kZXhQcm9wLCBsYWJlbCwgbGFiZWxTdHlsZSwgc3R5bGUsIHRlc3RJZCwgdG9wTGV2ZWw6IHRvcExldmVsUHJvcCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIC8vIFJlYWQgaGllcmFyY2h5IGluZm9ybWF0aW9uIGZyb20gY29udGV4dCAocmVkdWNlcyBjbG9uZUVsZW1lbnQgb3ZlcmhlYWQpXHJcbiAgICBjb25zdCBoaWVyYXJjaHlDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQpO1xyXG4gICAgLy8gVXNlIGNvbnRleHQgdmFsdWVzIGlmIHByb3BzIGFyZSBub3QgcHJvdmlkZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxyXG4gICAgY29uc3QgaW5kZXggPSBpbmRleFByb3AgIT09IHVuZGVmaW5lZCA/IGluZGV4UHJvcCA6IGhpZXJhcmNoeUNvbnRleHQuaW5kZXg7XHJcbiAgICBjb25zdCB0b3BMZXZlbCA9IHRvcExldmVsUHJvcCAhPT0gdW5kZWZpbmVkID8gdG9wTGV2ZWxQcm9wIDogaGllcmFyY2h5Q29udGV4dC5pc1RvcExldmVsO1xyXG4gICAgLy8gQ29uc3VtZSBzcGxpdCBjb250ZXh0cyBmb3IgcmVkdWNlZCByZS1yZW5kZXIgc2NvcGVcclxuICAgIGNvbnN0IHsgaXRlbVRvRm9jdXMgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgaGFuZGxlRXhwYW5kZWRDaGFuZ2UgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFzSWNvbnMsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCBzZWxlY3RhYmxlIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29uZmlnQ29udGV4dCk7XHJcbiAgICAvLyBQYXNzIHRoZSByZXNvbHZlZCB2YWx1ZXMgdG8gdXNlVHJlZUl0ZW1cclxuICAgIGNvbnN0IHByb3BzV2l0aEhpZXJhcmNoeSA9IHtcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICB0b3BMZXZlbCxcclxuICAgICAgICBpdGVtRGVwdGg6IGhpZXJhcmNoeUNvbnRleHQuZGVwdGgsXHJcbiAgICAgICAgcGFyZW50RGVwdGg6IGhpZXJhcmNoeUNvbnRleHQucGFyZW50RGVwdGgsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wc1dpdGhIaWVyYXJjaHksIGZvcndhcmRlZFJlZik7XHJcbiAgICBjb25zdCB7IGlzRGlzYWJsZWQgfSA9IGNvbnRleHRWYWx1ZTtcclxuICAgIGNvbnN0IHsgY2hlY2tib3hDaGFuZ2VIYW5kbGVyLCBjaGVja2VkU3RhdHVzLCBleHBhbmRlZCwgaGFzT3duVHJlZUl0ZW1zLCBpdGVtRGVwdGgsIGl0ZW1JZCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IFJlYWN0LnVzZUNhbGxiYWNrKChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSBSZWFjdC51c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbZ2V0SW50ZXJhY3RpdmVFbGVtZW50cywgaW50ZXJhY3RpdmVFbGVtZW50cywgaXNJbnNpZGVUcmVlSXRlbV0pO1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIHNlbGVjdGFibGUsIGhhbmRsZUNsaWNrLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIE1lbW9pemUgaW5saW5lIHN0eWxlIG9iamVjdHMgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXHJcbiAgICBjb25zdCBjaGVja2JveElucHV0U3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7IG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyB9KSwgW3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXSk7XHJcbiAgICBjb25zdCBjaGVja2JveExhYmVsU3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XHJcbiAgICAgICAgcGFkZGluZzogMCxcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgfSksIFtdKTtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogY2hlY2tib3hJbnB1dFN0eWxlLFxyXG4gICAgICAgIGxhYmVsU3R5bGU6IGNoZWNrYm94TGFiZWxTdHlsZSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfSksIFtcclxuICAgICAgICBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBjaGVja2JveElucHV0U3R5bGUsXHJcbiAgICAgICAgY2hlY2tib3hMYWJlbFN0eWxlLFxyXG4gICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICBjaGVja2JveENoYW5nZUhhbmRsZXIsXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH0sIFtoYW5kbGVFeHBhbmRlZENoYW5nZSwgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBoYW5kbGVFeHBhbmRDbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBvbkV4cGFuZGVkQ2xpY2tlZChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIG9uRXhwYW5kZWRDbGlja2VkXSk7XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbXHJcbiAgICAgICAgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyxcclxuICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnRzLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93bixcclxuICAgICAgICBoYW5kbGVLZXlEb3duLFxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHRyZWVJdGVtU3R5bGVzIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiwgaG92ZXJDb2xvcjogaG92ZXJDb2xvciB9KSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSXRlbVdyYXBwZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgPz8gaXRlbUlkfS1pdGVtd3JhcHBlcmAsIGRlcHRoOiBpdGVtRGVwdGgsIGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCBoYXNDdXN0b21JY29uU2l6ZTogISFleHBhbmRJY29uU3R5bGVzPy5zaXplLCBpZDogYCR7aXRlbUlkfS1pdGVtd3JhcHBlcmAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHNlbGVjdGFibGU6IHNlbGVjdGFibGUsIHN0eWxlOiBzdHlsZSwgdGhlbWU6IHRoZW1lLCByZWY6IG1lcmdlUmVmcyhyZWYsIGZvY3VzVHJhcEVsZW1lbnQpLCBvbkNsaWNrOiBoYW5kbGVPbkNsaWNrIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGFzT3duVHJlZUl0ZW1zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEV4cGFuZFdyYXBwZXIsIHsgXCJhcmlhLWhpZGRlblwiOiBCb29sZWFuKCFleHBhbmRlZCksIHNpemU6IGV4cGFuZEljb25TdHlsZXM/LnNpemUsIGNvbG9yOiBleHBhbmRJY29uU3R5bGVzPy5jb2xvciwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1leHBhbmRgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlRXhwYW5kQ2xpY2ssIHRoZW1lOiB0aGVtZSB9LCBleHBhbmRlZCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEV4cGFuZE1vcmVJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGV2cm9uUmlnaHRJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkpKSxcclxuICAgICAgICAgICAgICAgICAgICBzaG91bGRTaG93Q2hlY2tib3ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRDaGVja2JveFdyYXBwZXIsIHsgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIHRoZW1lOiB0aGVtZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZCwgY2hpbGRJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZD8udHlwZSAhPT0gVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIGhpZXJhcmNoeSBpbmZvIHRocm91Z2ggY29udGV4dCBpbnN0ZWFkIG9mIGNsb25lRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5lc3RlZEhpZXJhcmNoeVZhbHVlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogaXRlbURlcHRoICsgMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGg6IGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNUb3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjaGlsZEluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwgeyByb2xlOiBcImdyb3VwXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0LlByb3ZpZGVyLCB7IGtleTogY2hpbGQucHJvcHMuaXRlbUlkLCB2YWx1ZTogbmVzdGVkSGllcmFyY2h5VmFsdWUgfSwgY2hpbGQpKSkpO1xyXG4gICAgICAgICAgICAgICAgfSkpKSkpO1xyXG59KTtcclxuLyoqXHJcbiAqIEN1c3RvbSBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciBSZWFjdC5tZW1vXHJcbiAqIE9ubHkgcmUtcmVuZGVyIFRyZWVJdGVtIHdoZW4gcmVsZXZhbnQgcHJvcHMgY2hhbmdlXHJcbiAqL1xyXG5mdW5jdGlvbiBhcmVQcm9wc0VxdWFsKHByZXZQcm9wcywgbmV4dFByb3BzKSB7XHJcbiAgICAvLyBDaGVjayBpZiBpdGVtSWQgY2hhbmdlZFxyXG4gICAgaWYgKHByZXZQcm9wcy5pdGVtSWQgIT09IG5leHRQcm9wcy5pdGVtSWQpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBsYWJlbCBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmxhYmVsICE9PSBuZXh0UHJvcHMubGFiZWwpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBkaXNhYmxlZCBzdGF0ZSBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmlzRGlzYWJsZWQgIT09IG5leHRQcm9wcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgaWNvbiBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmljb24gIT09IG5leHRQcm9wcy5pY29uKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgYWRkaXRpb25hbCBjb250ZW50IGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuYWRkaXRpb25hbENvbnRlbnQgIT09IG5leHRQcm9wcy5hZGRpdGlvbmFsQ29udGVudCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIGhvdmVyIGNvbG9yIGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuaG92ZXJDb2xvciAhPT0gbmV4dFByb3BzLmhvdmVyQ29sb3IpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBjaGlsZHJlbiBjaGFuZ2VkIChmb3IgbmVzdGVkIHRyZWUgaXRlbXMpXHJcbiAgICAvLyBVc2luZyB0eXBlIGFzc2VydGlvbiBzaW5jZSBjaGlsZHJlbiBjb21lcyBmcm9tIFJlYWN0LkhUTUxBdHRyaWJ1dGVzXHJcbiAgICBpZiAocHJldlByb3BzLmNoaWxkcmVuICE9PSBuZXh0UHJvcHMuY2hpbGRyZW4pIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBzdHlsZXMgY2hhbmdlZFxyXG4gICAgLy8gVXNpbmcgdHlwZSBhc3NlcnRpb24gc2luY2Ugc3R5bGUgY29tZXMgZnJvbSBSZWFjdC5IVE1MQXR0cmlidXRlc1xyXG4gICAgaWYgKHByZXZQcm9wcy5zdHlsZSAhPT0gbmV4dFByb3BzLnN0eWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByZXZQcm9wcy5sYWJlbFN0eWxlICE9PSBuZXh0UHJvcHMubGFiZWxTdHlsZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChwcmV2UHJvcHMudHJlZUl0ZW1TdHlsZXMgIT09IG5leHRQcm9wcy50cmVlSXRlbVN0eWxlcykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIEFsbCByZWxldmFudCBwcm9wcyBhcmUgZXF1YWwsIHNraXAgcmUtcmVuZGVyXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG4vKipcclxuICogTWVtb2l6ZWQgVHJlZUl0ZW0gY29tcG9uZW50XHJcbiAqIE9ubHkgcmUtcmVuZGVycyB3aGVuIHJlbGV2YW50IHByb3BzIGNoYW5nZSwgaW1wcm92aW5nIHBlcmZvcm1hbmNlIGZvciBsYXJnZSB0cmVlc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFRyZWVJdGVtID0gUmVhY3QubWVtbyhUcmVlSXRlbUNvbXBvbmVudCwgYXJlUHJvcHNFcXVhbCk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
22899
23409
|
var AdditionalContentWrapper$1 = /*#__PURE__*/_styled("div", {
|
|
22900
23410
|
target: "e1xiryew0",
|
|
22901
23411
|
label: "AdditionalContentWrapper"
|
|
22902
23412
|
})("margin-bottom:", function (props) {
|
|
22903
23413
|
return props.theme.spaceScale.spacing05;
|
|
22904
|
-
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2SDRDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5leHBvcnQgY29uc3QgVHJlZUl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFkZGl0aW9uYWxDb250ZW50LCBjaGlsZHJlbiwgaG92ZXJDb2xvciwgaWNvbiwgaW5kZXgsIGxhYmVsLCBsYWJlbFN0eWxlLCBzdHlsZSwgdGVzdElkLCB0b3BMZXZlbCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaXNUb3BMZXZlbFNlbGVjdGFibGUsIHNlbGVjdGFibGUsIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29udGV4dCk7XHJcbiAgICBjb25zdCB7IGNvbnRleHRWYWx1ZSwgaGFuZGxlQ2xpY2ssIGhhbmRsZUtleURvd24gfSA9IHVzZVRyZWVJdGVtKHByb3BzLCBmb3J3YXJkZWRSZWYpO1xyXG4gICAgY29uc3QgeyBpc0Rpc2FibGVkIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCB7IGNoZWNrYm94Q2hhbmdlSGFuZGxlciwgY2hlY2tlZFN0YXR1cywgZXhwYW5kZWQsIGhhc093blRyZWVJdGVtcywgaXRlbURlcHRoLCBpdGVtSWQsIHBhcmVudERlcHRoLCByZWYsIHNlbGVjdGVkSXRlbXMsIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCBub2RlVHlwZSA9IGhhc093blRyZWVJdGVtcyA/IFRyZWVOb2RlVHlwZS5icmFuY2ggOiBUcmVlTm9kZVR5cGUubGVhZjtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGVcclxuICAgICAgICA/IHNlbGVjdGVkSXRlbXM/LlswXT8uaXRlbUlkID09PSBpdGVtSWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBhcmlhQ2hlY2tlZFZhbHVlID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpXHJcbiAgICAgICAgPyBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuaW5kZXRlcm1pbmF0ZVxyXG4gICAgICAgICAgICA/ICdtaXhlZCdcclxuICAgICAgICAgICAgOiBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuY2hlY2tlZFxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IFtpc0luc2lkZVRyZWVJdGVtLCBzZXRJc0luc2lkZVRyZWVJdGVtXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgZm9jdXNUcmFwRWxlbWVudCA9IHVzZUZvY3VzTG9jayhpc0luc2lkZVRyZWVJdGVtKTtcclxuICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHMgPSAnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSc7XHJcbiAgICBjb25zdCBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzID0gKGNvbnRhaW5lciwgc2VsZWN0b3IpID0+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikpLmZpbHRlcihlbCA9PiAhZWwuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpIHx8XHJcbiAgICAgICAgICAgIChlbC50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmIGVsLnRhYkluZGV4ID49IDApKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogeyBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IHN0eWxlOiB0cmVlSXRlbVN0eWxlcyB9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRyZWVJdGVtLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFwiYXJpYS1leHBhbmRlZFwiOiBoYXNPd25UcmVlSXRlbXMgPyBleHBhbmRlZCA6IG51bGwsIFwiYXJpYS1zZWxlY3RlZFwiOiBzZWxlY3RlZEl0ZW0sIFwiYXJpYS1jaGVja2VkXCI6IHNob3VsZFNob3dDaGVja2JveCA/IGFyaWFDaGVja2VkVmFsdWUgOiBudWxsLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzT3duVHJlZUl0ZW1zOiBoYXNPd25UcmVlSXRlbXMsIGlkOiBpdGVtSWQsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHJvbGU6IFwidHJlZWl0ZW1cIiwgc2VsZWN0YWJsZVR5cGU6IHNlbGVjdGFibGUsIHNlbGVjdGVkOiBzZWxlY3RlZEl0ZW0sIHRoZW1lOiB0aGVtZSwgdGFiSW5kZXg6IHRhYkluZGV4LCBvbktleURvd246IG9uS2V5RG93bkhhbmRsZXIsIHJlZjogdHJlZUl0ZW1SZWYsIGhvdmVyQ29sb3I6IGhvdmVyQ29sb3IgfSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEl0ZW1XcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0taXRlbXdyYXBwZXJgLCBkZXB0aDogaXRlbURlcHRoLCBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgaGFzQ3VzdG9tSWNvblNpemU6ICEhZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSwgaWQ6IGAke2l0ZW1JZH0taXRlbXdyYXBwZXJgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgbm9kZVR5cGU6IG5vZGVUeXBlLCBzZWxlY3RhYmxlOiBzZWxlY3RhYmxlLCBzdHlsZTogc3R5bGUsIHRoZW1lOiB0aGVtZSwgcmVmOiBtZXJnZVJlZnMocmVmLCBmb2N1c1RyYXBFbGVtZW50KSwgb25DbGljazogaGFuZGxlT25DbGljayB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplLCBjb2xvcjogZXhwYW5kSWNvblN0eWxlcz8uY29sb3IsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tZXhwYW5kYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXhwYW5kZWRDbGlja2VkKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBzaXplOiBleHBhbmRJY29uU3R5bGVzPy5zaXplIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3dDaGVja2JveCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZENoZWNrYm94V3JhcHBlciwgeyBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEluZGV0ZXJtaW5hdGVDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBzdGF0dXM6IGNoZWNrZWRTdGF0dXMgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBPYmplY3QuYXNzaWduKHt9LCBjaGVja2JveFByb3BzLCB7IGNoZWNrZWQ6IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4oY2hlY2tlZFN0YXR1cykgfSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpKSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZD8udHlwZSA9PT0gVHJlZUl0ZW0gPyAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmFuc2l0aW9uLCB7IGlzT3BlbjogZXhwYW5kZWQsIHVubW91bnRPbkV4aXQ6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHsgcm9sZTogXCJncm91cFwiIH0sIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNoaWxkLnByb3BzLml0ZW1JZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGV2ZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSkpKSA6IChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9KSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1UcmVlSXRlbS5qcy5tYXAiXX0= */"));
|
|
22905
|
-
var
|
|
23414
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnSTRDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb25maWdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbmZpZ0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyBjYWxjdWxhdGVPZmZzZXQsIGdldFRyZWVJdGVtTGFiZWxDb2xvciwgZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yLCBUcmVlTm9kZVR5cGUsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZUZvY3VzTG9jayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUZvY3VzTG9jayc7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi4vQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBJbmRldGVybWluYXRlQ2hlY2tib3gsIEluZGV0ZXJtaW5hdGVDaGVja2JveFN0YXR1cywgfSBmcm9tICcuLi9JbmRldGVybWluYXRlQ2hlY2tib3gnO1xyXG5pbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSAnLi4vVHJhbnNpdGlvbic7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IGdldEhvdmVyQmFja2dyb3VuZCh7XHJcbiAgICBpc0Rpc2FibGVkOiBwcm9wcy5pc0Rpc2FibGVkLFxyXG4gICAgaG92ZXJDb2xvcjogcHJvcHMuaG92ZXJDb2xvcixcclxuICAgIGlzSW52ZXJzZTogcHJvcHMuaXNJbnZlcnNlLFxyXG4gICAgdGhlbWU6IHByb3BzLnRoZW1lLFxyXG59KX07XG4gICAgfVxuICB9XG5gO1xyXG5mdW5jdGlvbiBnZXRIb3ZlckJhY2tncm91bmQoeyBpc0Rpc2FibGVkLCBob3ZlckNvbG9yLCBpc0ludmVyc2UsIHRoZW1lIH0pIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAoaG92ZXJDb2xvcilcclxuICAgICAgICByZXR1cm4gaG92ZXJDb2xvcjtcclxuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9IGlzSW52ZXJzZSA/IDAuOCA6IDAuOTU7XHJcbiAgICByZXR1cm4gdHJhbnNwYXJlbnRpemUodHJhbnNwYXJlbmN5LCB0aGVtZS5jb2xvcnMubmV1dHJhbDkwMCk7XHJcbn1cclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5jb2xvciB8fFxyXG4gICAgZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgd2lkdGg6ICR7KHsgc2l6ZSwgdGhlbWUgfSkgPT4gc2l6ZSAhPT0gdW5kZWZpbmVkID8gYCR7c2l6ZX1weGAgOiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHsoeyBzaXplLCB0aGVtZSB9KSA9PiBzaXplICE9PSB1bmRlZmluZWQgPyBgJHtzaXplfXB4YCA6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuaGFzQ3VzdG9tSWNvblNpemUgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGUsIHByb3BzLm5vZGVUeXBlKX07XG5gO1xyXG5jb25zdCBBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNX07XG5gO1xyXG5jb25zdCBUcmVlSXRlbUNvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBob3ZlckNvbG9yLCBpY29uLCBpbmRleDogaW5kZXhQcm9wLCBsYWJlbCwgbGFiZWxTdHlsZSwgc3R5bGUsIHRlc3RJZCwgdG9wTGV2ZWw6IHRvcExldmVsUHJvcCwgdHJlZUl0ZW1TdHlsZXMsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIC8vIFJlYWQgaGllcmFyY2h5IGluZm9ybWF0aW9uIGZyb20gY29udGV4dCAocmVkdWNlcyBjbG9uZUVsZW1lbnQgb3ZlcmhlYWQpXHJcbiAgICBjb25zdCBoaWVyYXJjaHlDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQpO1xyXG4gICAgLy8gVXNlIGNvbnRleHQgdmFsdWVzIGlmIHByb3BzIGFyZSBub3QgcHJvdmlkZWQgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxyXG4gICAgY29uc3QgaW5kZXggPSBpbmRleFByb3AgIT09IHVuZGVmaW5lZCA/IGluZGV4UHJvcCA6IGhpZXJhcmNoeUNvbnRleHQuaW5kZXg7XHJcbiAgICBjb25zdCB0b3BMZXZlbCA9IHRvcExldmVsUHJvcCAhPT0gdW5kZWZpbmVkID8gdG9wTGV2ZWxQcm9wIDogaGllcmFyY2h5Q29udGV4dC5pc1RvcExldmVsO1xyXG4gICAgLy8gQ29uc3VtZSBzcGxpdCBjb250ZXh0cyBmb3IgcmVkdWNlZCByZS1yZW5kZXIgc2NvcGVcclxuICAgIGNvbnN0IHsgaXRlbVRvRm9jdXMgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgaGFuZGxlRXhwYW5kZWRDaGFuZ2UgfSA9IFJlYWN0LnVzZUNvbnRleHQoVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0KTtcclxuICAgIGNvbnN0IHsgZXhwYW5kSWNvblN0eWxlcywgaGFzSWNvbnMsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCBzZWxlY3RhYmxlIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29uZmlnQ29udGV4dCk7XHJcbiAgICAvLyBQYXNzIHRoZSByZXNvbHZlZCB2YWx1ZXMgdG8gdXNlVHJlZUl0ZW1cclxuICAgIGNvbnN0IHByb3BzV2l0aEhpZXJhcmNoeSA9IHtcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICB0b3BMZXZlbCxcclxuICAgICAgICBpdGVtRGVwdGg6IGhpZXJhcmNoeUNvbnRleHQuZGVwdGgsXHJcbiAgICAgICAgcGFyZW50RGVwdGg6IGhpZXJhcmNoeUNvbnRleHQucGFyZW50RGVwdGgsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wc1dpdGhIaWVyYXJjaHksIGZvcndhcmRlZFJlZik7XHJcbiAgICBjb25zdCB7IGlzRGlzYWJsZWQgfSA9IGNvbnRleHRWYWx1ZTtcclxuICAgIGNvbnN0IHsgY2hlY2tib3hDaGFuZ2VIYW5kbGVyLCBjaGVja2VkU3RhdHVzLCBleHBhbmRlZCwgaGFzT3duVHJlZUl0ZW1zLCBpdGVtRGVwdGgsIGl0ZW1JZCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IFJlYWN0LnVzZUNhbGxiYWNrKChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSBSZWFjdC51c2VDYWxsYmFjaygoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbZ2V0SW50ZXJhY3RpdmVFbGVtZW50cywgaW50ZXJhY3RpdmVFbGVtZW50cywgaXNJbnNpZGVUcmVlSXRlbV0pO1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIHNlbGVjdGFibGUsIGhhbmRsZUNsaWNrLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIE1lbW9pemUgaW5saW5lIHN0eWxlIG9iamVjdHMgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXHJcbiAgICBjb25zdCBjaGVja2JveElucHV0U3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7IG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMyB9KSwgW3RoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzXSk7XHJcbiAgICBjb25zdCBjaGVja2JveExhYmVsU3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XHJcbiAgICAgICAgcGFkZGluZzogMCxcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgfSksIFtdKTtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogY2hlY2tib3hJbnB1dFN0eWxlLFxyXG4gICAgICAgIGxhYmVsU3R5bGU6IGNoZWNrYm94TGFiZWxTdHlsZSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfSksIFtcclxuICAgICAgICBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBjaGVja2JveElucHV0U3R5bGUsXHJcbiAgICAgICAgY2hlY2tib3hMYWJlbFN0eWxlLFxyXG4gICAgICAgIGxhYmVsVGV4dCxcclxuICAgICAgICBjaGVja2JveENoYW5nZUhhbmRsZXIsXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH0sIFtoYW5kbGVFeHBhbmRlZENoYW5nZSwgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBoYW5kbGVFeHBhbmRDbGljayA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBvbkV4cGFuZGVkQ2xpY2tlZChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzRGlzYWJsZWQsIG9uRXhwYW5kZWRDbGlja2VkXSk7XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IFJlYWN0LnVzZUNhbGxiYWNrKChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9LCBbXHJcbiAgICAgICAgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyxcclxuICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnRzLFxyXG4gICAgICAgIGl0ZW1JZCxcclxuICAgICAgICBoYW5kbGVMYWJlbEFuZEFkZGl0aW9uYWxDb250ZW50S2V5RG93bixcclxuICAgICAgICBoYW5kbGVLZXlEb3duLFxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgc3R5bGU6IHRyZWVJdGVtU3R5bGVzIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiwgaG92ZXJDb2xvcjogaG92ZXJDb2xvciB9KSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkSXRlbVdyYXBwZXIsIHsgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgPz8gaXRlbUlkfS1pdGVtd3JhcHBlcmAsIGRlcHRoOiBpdGVtRGVwdGgsIGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCBoYXNDdXN0b21JY29uU2l6ZTogISFleHBhbmRJY29uU3R5bGVzPy5zaXplLCBpZDogYCR7aXRlbUlkfS1pdGVtd3JhcHBlcmAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBub2RlVHlwZTogbm9kZVR5cGUsIHNlbGVjdGFibGU6IHNlbGVjdGFibGUsIHN0eWxlOiBzdHlsZSwgdGhlbWU6IHRoZW1lLCByZWY6IG1lcmdlUmVmcyhyZWYsIGZvY3VzVHJhcEVsZW1lbnQpLCBvbkNsaWNrOiBoYW5kbGVPbkNsaWNrIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGFzT3duVHJlZUl0ZW1zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEV4cGFuZFdyYXBwZXIsIHsgXCJhcmlhLWhpZGRlblwiOiBCb29sZWFuKCFleHBhbmRlZCksIHNpemU6IGV4cGFuZEljb25TdHlsZXM/LnNpemUsIGNvbG9yOiBleHBhbmRJY29uU3R5bGVzPy5jb2xvciwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1leHBhbmRgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgb25DbGljazogaGFuZGxlRXhwYW5kQ2xpY2ssIHRoZW1lOiB0aGVtZSB9LCBleHBhbmRlZCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEV4cGFuZE1vcmVJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGV2cm9uUmlnaHRJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgc2l6ZTogZXhwYW5kSWNvblN0eWxlcz8uc2l6ZSB9KSkpKSxcclxuICAgICAgICAgICAgICAgICAgICBzaG91bGRTaG93Q2hlY2tib3ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRDaGVja2JveFdyYXBwZXIsIHsgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIHRoZW1lOiB0aGVtZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZCwgY2hpbGRJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZD8udHlwZSAhPT0gVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIGhpZXJhcmNoeSBpbmZvIHRocm91Z2ggY29udGV4dCBpbnN0ZWFkIG9mIGNsb25lRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5lc3RlZEhpZXJhcmNoeVZhbHVlID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogaXRlbURlcHRoICsgMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGg6IGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNUb3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjaGlsZEluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwgeyByb2xlOiBcImdyb3VwXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0LlByb3ZpZGVyLCB7IGtleTogY2hpbGQucHJvcHMuaXRlbUlkLCB2YWx1ZTogbmVzdGVkSGllcmFyY2h5VmFsdWUgfSwgY2hpbGQpKSkpO1xyXG4gICAgICAgICAgICAgICAgfSkpKSkpO1xyXG59KTtcclxuLyoqXHJcbiAqIEN1c3RvbSBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciBSZWFjdC5tZW1vXHJcbiAqIE9ubHkgcmUtcmVuZGVyIFRyZWVJdGVtIHdoZW4gcmVsZXZhbnQgcHJvcHMgY2hhbmdlXHJcbiAqL1xyXG5mdW5jdGlvbiBhcmVQcm9wc0VxdWFsKHByZXZQcm9wcywgbmV4dFByb3BzKSB7XHJcbiAgICAvLyBDaGVjayBpZiBpdGVtSWQgY2hhbmdlZFxyXG4gICAgaWYgKHByZXZQcm9wcy5pdGVtSWQgIT09IG5leHRQcm9wcy5pdGVtSWQpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBsYWJlbCBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmxhYmVsICE9PSBuZXh0UHJvcHMubGFiZWwpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBkaXNhYmxlZCBzdGF0ZSBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmlzRGlzYWJsZWQgIT09IG5leHRQcm9wcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgaWNvbiBjaGFuZ2VkXHJcbiAgICBpZiAocHJldlByb3BzLmljb24gIT09IG5leHRQcm9wcy5pY29uKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gQ2hlY2sgaWYgYWRkaXRpb25hbCBjb250ZW50IGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuYWRkaXRpb25hbENvbnRlbnQgIT09IG5leHRQcm9wcy5hZGRpdGlvbmFsQ29udGVudCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIGhvdmVyIGNvbG9yIGNoYW5nZWRcclxuICAgIGlmIChwcmV2UHJvcHMuaG92ZXJDb2xvciAhPT0gbmV4dFByb3BzLmhvdmVyQ29sb3IpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBjaGlsZHJlbiBjaGFuZ2VkIChmb3IgbmVzdGVkIHRyZWUgaXRlbXMpXHJcbiAgICAvLyBVc2luZyB0eXBlIGFzc2VydGlvbiBzaW5jZSBjaGlsZHJlbiBjb21lcyBmcm9tIFJlYWN0LkhUTUxBdHRyaWJ1dGVzXHJcbiAgICBpZiAocHJldlByb3BzLmNoaWxkcmVuICE9PSBuZXh0UHJvcHMuY2hpbGRyZW4pIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBzdHlsZXMgY2hhbmdlZFxyXG4gICAgLy8gVXNpbmcgdHlwZSBhc3NlcnRpb24gc2luY2Ugc3R5bGUgY29tZXMgZnJvbSBSZWFjdC5IVE1MQXR0cmlidXRlc1xyXG4gICAgaWYgKHByZXZQcm9wcy5zdHlsZSAhPT0gbmV4dFByb3BzLnN0eWxlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByZXZQcm9wcy5sYWJlbFN0eWxlICE9PSBuZXh0UHJvcHMubGFiZWxTdHlsZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChwcmV2UHJvcHMudHJlZUl0ZW1TdHlsZXMgIT09IG5leHRQcm9wcy50cmVlSXRlbVN0eWxlcykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIEFsbCByZWxldmFudCBwcm9wcyBhcmUgZXF1YWwsIHNraXAgcmUtcmVuZGVyXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG4vKipcclxuICogTWVtb2l6ZWQgVHJlZUl0ZW0gY29tcG9uZW50XHJcbiAqIE9ubHkgcmUtcmVuZGVycyB3aGVuIHJlbGV2YW50IHByb3BzIGNoYW5nZSwgaW1wcm92aW5nIHBlcmZvcm1hbmNlIGZvciBsYXJnZSB0cmVlc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFRyZWVJdGVtID0gUmVhY3QubWVtbyhUcmVlSXRlbUNvbXBvbmVudCwgYXJlUHJvcHNFcXVhbCk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
23415
|
+
var TreeItemComponent = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
22906
23416
|
var _selectedItems$;
|
|
22907
23417
|
var additionalContent = props.additionalContent,
|
|
22908
23418
|
children = props.children,
|
|
22909
23419
|
hoverColor = props.hoverColor,
|
|
22910
23420
|
icon = props.icon,
|
|
23421
|
+
indexProp = props.index,
|
|
22911
23422
|
label = props.label,
|
|
22912
23423
|
labelStyle = props.labelStyle,
|
|
22913
23424
|
style = props.style,
|
|
22914
23425
|
testId = props.testId,
|
|
22915
|
-
|
|
23426
|
+
topLevelProp = props.topLevel,
|
|
22916
23427
|
treeItemStyles = props.treeItemStyles,
|
|
22917
23428
|
rest = _objectWithoutPropertiesLoose(props, _excluded$1L);
|
|
22918
23429
|
var theme = useContext(ThemeContext);
|
|
22919
23430
|
var isInverse = useIsInverse();
|
|
22920
|
-
|
|
22921
|
-
|
|
22922
|
-
|
|
22923
|
-
|
|
22924
|
-
|
|
22925
|
-
|
|
22926
|
-
|
|
22927
|
-
|
|
23431
|
+
// Read hierarchy information from context (reduces cloneElement overhead)
|
|
23432
|
+
var hierarchyContext = useContext(TreeItemHierarchyContext);
|
|
23433
|
+
// Use context values if props are not provided (for backward compatibility)
|
|
23434
|
+
var index = indexProp !== undefined ? indexProp : hierarchyContext.index;
|
|
23435
|
+
var topLevel = topLevelProp !== undefined ? topLevelProp : hierarchyContext.isTopLevel;
|
|
23436
|
+
// Consume split contexts for reduced re-render scope
|
|
23437
|
+
var _React$useContext = useContext(TreeViewSelectionContext),
|
|
23438
|
+
itemToFocus = _React$useContext.itemToFocus;
|
|
23439
|
+
var _React$useContext2 = useContext(TreeViewExpansionContext),
|
|
23440
|
+
handleExpandedChange = _React$useContext2.handleExpandedChange;
|
|
23441
|
+
var _React$useContext3 = useContext(TreeViewConfigContext),
|
|
23442
|
+
expandIconStyles = _React$useContext3.expandIconStyles,
|
|
23443
|
+
hasIcons = _React$useContext3.hasIcons,
|
|
23444
|
+
isTopLevelSelectable = _React$useContext3.isTopLevelSelectable,
|
|
23445
|
+
selectable = _React$useContext3.selectable;
|
|
23446
|
+
// Pass the resolved values to useTreeItem
|
|
23447
|
+
var propsWithHierarchy = _extends({}, props, {
|
|
23448
|
+
index: index,
|
|
23449
|
+
topLevel: topLevel,
|
|
23450
|
+
itemDepth: hierarchyContext.depth,
|
|
23451
|
+
parentDepth: hierarchyContext.parentDepth
|
|
23452
|
+
});
|
|
23453
|
+
var _useTreeItem = useTreeItem(propsWithHierarchy, forwardedRef),
|
|
22928
23454
|
contextValue = _useTreeItem.contextValue,
|
|
22929
23455
|
handleClick = _useTreeItem.handleClick,
|
|
22930
23456
|
handleKeyDown = _useTreeItem.handleKeyDown;
|
|
@@ -22935,7 +23461,6 @@ var TreeItem = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
22935
23461
|
hasOwnTreeItems = contextValue.hasOwnTreeItems,
|
|
22936
23462
|
itemDepth = contextValue.itemDepth,
|
|
22937
23463
|
itemId = contextValue.itemId,
|
|
22938
|
-
parentDepth = contextValue.parentDepth,
|
|
22939
23464
|
ref = contextValue.ref,
|
|
22940
23465
|
selectedItems = contextValue.selectedItems;
|
|
22941
23466
|
var nodeType = hasOwnTreeItems ? TreeNodeType.branch : TreeNodeType.leaf;
|
|
@@ -22947,18 +23472,18 @@ var TreeItem = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
22947
23472
|
var treeItemRef = useRef(null);
|
|
22948
23473
|
var focusTrapElement = useFocusLock(isInsideTreeItem);
|
|
22949
23474
|
var interactiveElements = 'button, [role="button"], input, select, textarea, a[href], [tabindex]:not([tabindex="-1"])';
|
|
22950
|
-
var getInteractiveElements = function
|
|
23475
|
+
var getInteractiveElements = useCallback(function (container, selector) {
|
|
22951
23476
|
return Array.from(container.querySelectorAll(selector)).filter(function (el) {
|
|
22952
23477
|
return !el.hasAttribute('tabindex') || el.tabIndex !== undefined && el.tabIndex >= 0;
|
|
22953
23478
|
});
|
|
22954
|
-
};
|
|
23479
|
+
}, []);
|
|
22955
23480
|
/**
|
|
22956
23481
|
* This function allows for keyboard navigation within the label and additional content of a tree item.
|
|
22957
23482
|
*
|
|
22958
23483
|
* You can navigate through interactive elements using the `Tab` key, activate them with `Enter` or `Space`,
|
|
22959
23484
|
* and exit outside and focus the whole tree item with `Escape`.
|
|
22960
23485
|
* **/
|
|
22961
|
-
var handleLabelAndAdditionalContentKeyDown = function
|
|
23486
|
+
var handleLabelAndAdditionalContentKeyDown = useCallback(function (event) {
|
|
22962
23487
|
var key = event.key,
|
|
22963
23488
|
target = event.target,
|
|
22964
23489
|
currentTarget = event.currentTarget,
|
|
@@ -23007,8 +23532,8 @@ var TreeItem = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
23007
23532
|
}
|
|
23008
23533
|
return;
|
|
23009
23534
|
}
|
|
23010
|
-
};
|
|
23011
|
-
var handleOnClick = function
|
|
23535
|
+
}, [getInteractiveElements, interactiveElements, isInsideTreeItem]);
|
|
23536
|
+
var handleOnClick = useCallback(function (event) {
|
|
23012
23537
|
if (isDisabled) {
|
|
23013
23538
|
event.stopPropagation();
|
|
23014
23539
|
return;
|
|
@@ -23023,7 +23548,7 @@ var TreeItem = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
23023
23548
|
if (selectable === TreeViewSelectable.single) {
|
|
23024
23549
|
handleClick(event, itemId);
|
|
23025
23550
|
}
|
|
23026
|
-
};
|
|
23551
|
+
}, [isDisabled, selectable, handleClick, itemId]);
|
|
23027
23552
|
var defaultIcon = nodeType === TreeNodeType.branch ? createElement(FolderIcon, {
|
|
23028
23553
|
"aria-hidden": true
|
|
23029
23554
|
}) : createElement(ArticleIcon, {
|
|
@@ -23047,27 +23572,41 @@ var TreeItem = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
23047
23572
|
id: itemId + "-additionalcontentwrapper",
|
|
23048
23573
|
"data-testid": (testId != null ? testId : itemId) + "-additionalcontentwrapper"
|
|
23049
23574
|
}, additionalContent) : null;
|
|
23050
|
-
//
|
|
23051
|
-
var
|
|
23052
|
-
|
|
23053
|
-
hideFocus: true,
|
|
23054
|
-
id: itemId + "-checkbox",
|
|
23055
|
-
inputStyle: {
|
|
23575
|
+
// Memoize inline style objects to prevent unnecessary re-renders
|
|
23576
|
+
var checkboxInputStyle = useMemo(function () {
|
|
23577
|
+
return {
|
|
23056
23578
|
marginRight: theme.spaceScale.spacing03
|
|
23057
|
-
}
|
|
23058
|
-
|
|
23579
|
+
};
|
|
23580
|
+
}, [theme.spaceScale.spacing03]);
|
|
23581
|
+
var checkboxLabelStyle = useMemo(function () {
|
|
23582
|
+
return {
|
|
23059
23583
|
padding: 0,
|
|
23060
23584
|
width: '100%'
|
|
23061
|
-
}
|
|
23062
|
-
|
|
23063
|
-
|
|
23064
|
-
|
|
23065
|
-
|
|
23066
|
-
|
|
23067
|
-
|
|
23585
|
+
};
|
|
23586
|
+
}, []);
|
|
23587
|
+
// Props shared by Checkbox and IndeterminateCheckbox
|
|
23588
|
+
var checkboxProps = useMemo(function () {
|
|
23589
|
+
return {
|
|
23590
|
+
disabled: isDisabled,
|
|
23591
|
+
hideFocus: true,
|
|
23592
|
+
id: itemId + "-checkbox",
|
|
23593
|
+
inputStyle: checkboxInputStyle,
|
|
23594
|
+
labelStyle: checkboxLabelStyle,
|
|
23595
|
+
labelText: labelText,
|
|
23596
|
+
onChange: checkboxChangeHandler,
|
|
23597
|
+
tabIndex: -1,
|
|
23598
|
+
testId: itemId + "-checkbox"
|
|
23599
|
+
};
|
|
23600
|
+
}, [isDisabled, itemId, checkboxInputStyle, checkboxLabelStyle, labelText, checkboxChangeHandler]);
|
|
23601
|
+
var onExpandedClicked = useCallback(function (event) {
|
|
23068
23602
|
event.preventDefault();
|
|
23069
23603
|
handleExpandedChange(event, itemId);
|
|
23070
|
-
};
|
|
23604
|
+
}, [handleExpandedChange, itemId]);
|
|
23605
|
+
var handleExpandClick = useCallback(function (event) {
|
|
23606
|
+
if (!isDisabled) {
|
|
23607
|
+
onExpandedClicked(event);
|
|
23608
|
+
}
|
|
23609
|
+
}, [isDisabled, onExpandedClicked]);
|
|
23071
23610
|
var tabIndex = useMemo(function () {
|
|
23072
23611
|
if (isDisabled) {
|
|
23073
23612
|
return undefined;
|
|
@@ -23085,7 +23624,7 @@ var TreeItem = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
23085
23624
|
*
|
|
23086
23625
|
* It also handles the other keys to trigger the click event on the tree item.
|
|
23087
23626
|
* **/
|
|
23088
|
-
var onKeyDownHandler = function
|
|
23627
|
+
var onKeyDownHandler = useCallback(function (event) {
|
|
23089
23628
|
var key = event.key,
|
|
23090
23629
|
target = event.target,
|
|
23091
23630
|
currentTarget = event.currentTarget;
|
|
@@ -23118,7 +23657,7 @@ var TreeItem = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
23118
23657
|
handleKeyDown(event);
|
|
23119
23658
|
return;
|
|
23120
23659
|
}
|
|
23121
|
-
};
|
|
23660
|
+
}, [getInteractiveElements, interactiveElements, itemId, handleLabelAndAdditionalContentKeyDown, handleKeyDown]);
|
|
23122
23661
|
return createElement(TreeItemContext.Provider, {
|
|
23123
23662
|
value: contextValue
|
|
23124
23663
|
}, createElement("div", {
|
|
@@ -23163,11 +23702,7 @@ var TreeItem = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
23163
23702
|
"data-testid": (testId || itemId) + "-expand",
|
|
23164
23703
|
isDisabled: isDisabled,
|
|
23165
23704
|
isInverse: isInverse,
|
|
23166
|
-
onClick:
|
|
23167
|
-
if (!isDisabled) {
|
|
23168
|
-
onExpandedClicked(event);
|
|
23169
|
-
}
|
|
23170
|
-
},
|
|
23705
|
+
onClick: handleExpandClick,
|
|
23171
23706
|
theme: theme
|
|
23172
23707
|
}, expanded ? createElement(ExpandMoreIcon, {
|
|
23173
23708
|
"aria-hidden": true,
|
|
@@ -23182,21 +23717,303 @@ var TreeItem = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
23182
23717
|
status: checkedStatus
|
|
23183
23718
|
})) : createElement(Checkbox, Object.assign({}, checkboxProps, {
|
|
23184
23719
|
checked: checkedStatusToBoolean(checkedStatus)
|
|
23185
|
-
})), treeItemAdditionalContent) : createElement(Fragment, null, labelText, treeItemAdditionalContent)), Children.map(children, function (child,
|
|
23186
|
-
|
|
23720
|
+
})), treeItemAdditionalContent) : createElement(Fragment, null, labelText, treeItemAdditionalContent)), Children.map(children, function (child, childIndex) {
|
|
23721
|
+
if ((child == null ? void 0 : child.type) !== TreeItem) {
|
|
23722
|
+
return child;
|
|
23723
|
+
}
|
|
23724
|
+
// Pass hierarchy info through context instead of cloneElement
|
|
23725
|
+
var nestedHierarchyValue = {
|
|
23726
|
+
depth: itemDepth + 1,
|
|
23727
|
+
parentDepth: itemDepth,
|
|
23728
|
+
isTopLevel: false,
|
|
23729
|
+
index: childIndex
|
|
23730
|
+
};
|
|
23731
|
+
return createElement(Transition, {
|
|
23187
23732
|
isOpen: expanded,
|
|
23188
23733
|
unmountOnExit: true
|
|
23189
23734
|
}, createElement("ul", {
|
|
23190
23735
|
role: "group"
|
|
23191
|
-
},
|
|
23192
|
-
index: index,
|
|
23736
|
+
}, createElement(TreeItemHierarchyContext.Provider, {
|
|
23193
23737
|
key: child.props.itemId,
|
|
23194
|
-
|
|
23195
|
-
|
|
23196
|
-
topLevel: false
|
|
23197
|
-
}))) : child;
|
|
23738
|
+
value: nestedHierarchyValue
|
|
23739
|
+
}, child)));
|
|
23198
23740
|
}))));
|
|
23199
23741
|
});
|
|
23742
|
+
/**
|
|
23743
|
+
* Custom comparison function for React.memo
|
|
23744
|
+
* Only re-render TreeItem when relevant props change
|
|
23745
|
+
*/
|
|
23746
|
+
function arePropsEqual(prevProps, nextProps) {
|
|
23747
|
+
// Check if itemId changed
|
|
23748
|
+
if (prevProps.itemId !== nextProps.itemId) {
|
|
23749
|
+
return false;
|
|
23750
|
+
}
|
|
23751
|
+
// Check if label changed
|
|
23752
|
+
if (prevProps.label !== nextProps.label) {
|
|
23753
|
+
return false;
|
|
23754
|
+
}
|
|
23755
|
+
// Check if disabled state changed
|
|
23756
|
+
if (prevProps.isDisabled !== nextProps.isDisabled) {
|
|
23757
|
+
return false;
|
|
23758
|
+
}
|
|
23759
|
+
// Check if icon changed
|
|
23760
|
+
if (prevProps.icon !== nextProps.icon) {
|
|
23761
|
+
return false;
|
|
23762
|
+
}
|
|
23763
|
+
// Check if additional content changed
|
|
23764
|
+
if (prevProps.additionalContent !== nextProps.additionalContent) {
|
|
23765
|
+
return false;
|
|
23766
|
+
}
|
|
23767
|
+
// Check if hover color changed
|
|
23768
|
+
if (prevProps.hoverColor !== nextProps.hoverColor) {
|
|
23769
|
+
return false;
|
|
23770
|
+
}
|
|
23771
|
+
// Check if children changed (for nested tree items)
|
|
23772
|
+
// Using type assertion since children comes from React.HTMLAttributes
|
|
23773
|
+
if (prevProps.children !== nextProps.children) {
|
|
23774
|
+
return false;
|
|
23775
|
+
}
|
|
23776
|
+
// Check if styles changed
|
|
23777
|
+
// Using type assertion since style comes from React.HTMLAttributes
|
|
23778
|
+
if (prevProps.style !== nextProps.style) {
|
|
23779
|
+
return false;
|
|
23780
|
+
}
|
|
23781
|
+
if (prevProps.labelStyle !== nextProps.labelStyle) {
|
|
23782
|
+
return false;
|
|
23783
|
+
}
|
|
23784
|
+
if (prevProps.treeItemStyles !== nextProps.treeItemStyles) {
|
|
23785
|
+
return false;
|
|
23786
|
+
}
|
|
23787
|
+
// All relevant props are equal, skip re-render
|
|
23788
|
+
return true;
|
|
23789
|
+
}
|
|
23790
|
+
/**
|
|
23791
|
+
* Memoized TreeItem component
|
|
23792
|
+
* Only re-renders when relevant props change, improving performance for large trees
|
|
23793
|
+
*/
|
|
23794
|
+
var TreeItem = /*#__PURE__*/memo(TreeItemComponent, arePropsEqual);
|
|
23795
|
+
|
|
23796
|
+
/**
|
|
23797
|
+
* TreeView Reducer
|
|
23798
|
+
* Pure function that handles all state transitions
|
|
23799
|
+
*
|
|
23800
|
+
* State Transitions:
|
|
23801
|
+
* - SELECT_ITEM: Updates item selection based on selectable mode (single/multi)
|
|
23802
|
+
* - SELECT_ALL: Selects all items in multi-select mode
|
|
23803
|
+
* - CLEAR_ALL: Clears all selections
|
|
23804
|
+
* - TOGGLE_EXPAND: Toggles expansion state of one or more items
|
|
23805
|
+
* - EXPAND_ALL: Expands all expandable items
|
|
23806
|
+
* - COLLAPSE_ALL: Collapses all items
|
|
23807
|
+
* - SET_ITEMS: Replaces entire items array (used for initialization and updates)
|
|
23808
|
+
* - ADD_ITEM: Adds a new item to the tree
|
|
23809
|
+
* - UPDATE_ITEMS_DISABLED_STATE: Updates disabled state of items
|
|
23810
|
+
* - TRIGGER_ITEMS_UPDATE: Flags that items need updating (for showAll)
|
|
23811
|
+
* - COMPLETE_ITEMS_UPDATE: Clears the update flag
|
|
23812
|
+
*/
|
|
23813
|
+
function treeViewReducer(state, action) {
|
|
23814
|
+
switch (action.type) {
|
|
23815
|
+
case 'SELECT_ITEM':
|
|
23816
|
+
{
|
|
23817
|
+
var _action$payload = action.payload,
|
|
23818
|
+
itemId = _action$payload.itemId,
|
|
23819
|
+
checkedStatus = _action$payload.checkedStatus,
|
|
23820
|
+
selectable = _action$payload.selectable,
|
|
23821
|
+
checkChildren = _action$payload.checkChildren,
|
|
23822
|
+
checkParents = _action$payload.checkParents,
|
|
23823
|
+
isTopLevelSelectable = _action$payload.isTopLevelSelectable;
|
|
23824
|
+
// Find the item to check if it's disabled or non-selectable
|
|
23825
|
+
var item = state.items.find(function (item) {
|
|
23826
|
+
return item.itemId === itemId;
|
|
23827
|
+
});
|
|
23828
|
+
if (item != null && item.isDisabled) {
|
|
23829
|
+
return state;
|
|
23830
|
+
}
|
|
23831
|
+
if (!isTopLevelSelectable && !(item != null && item.parentId) && selectable === 'multi') {
|
|
23832
|
+
return state;
|
|
23833
|
+
}
|
|
23834
|
+
var newItems;
|
|
23835
|
+
if (selectable === 'single') {
|
|
23836
|
+
newItems = selectSingle({
|
|
23837
|
+
items: state.items,
|
|
23838
|
+
itemId: itemId,
|
|
23839
|
+
checkedStatus: checkedStatus != null ? checkedStatus : IndeterminateCheckboxStatus.checked
|
|
23840
|
+
});
|
|
23841
|
+
} else if (selectable === 'multi') {
|
|
23842
|
+
newItems = toggleMulti({
|
|
23843
|
+
items: state.items,
|
|
23844
|
+
itemId: itemId,
|
|
23845
|
+
checkedStatus: checkedStatus,
|
|
23846
|
+
checkChildren: checkChildren,
|
|
23847
|
+
checkParents: checkParents,
|
|
23848
|
+
isTopLevelSelectable: isTopLevelSelectable
|
|
23849
|
+
});
|
|
23850
|
+
} else {
|
|
23851
|
+
return state;
|
|
23852
|
+
}
|
|
23853
|
+
// Only return new state if items actually changed
|
|
23854
|
+
if (newItems === state.items) {
|
|
23855
|
+
return state;
|
|
23856
|
+
}
|
|
23857
|
+
return _extends({}, state, {
|
|
23858
|
+
items: newItems
|
|
23859
|
+
});
|
|
23860
|
+
}
|
|
23861
|
+
case 'SELECT_ALL':
|
|
23862
|
+
{
|
|
23863
|
+
var _action$payload2 = action.payload,
|
|
23864
|
+
_checkChildren = _action$payload2.checkChildren,
|
|
23865
|
+
_checkParents = _action$payload2.checkParents,
|
|
23866
|
+
_isTopLevelSelectable = _action$payload2.isTopLevelSelectable;
|
|
23867
|
+
var _newItems = toggleAllMulti({
|
|
23868
|
+
items: state.items,
|
|
23869
|
+
checkedStatus: IndeterminateCheckboxStatus.checked,
|
|
23870
|
+
checkChildren: _checkChildren,
|
|
23871
|
+
checkParents: _checkParents,
|
|
23872
|
+
isTopLevelSelectable: _isTopLevelSelectable
|
|
23873
|
+
});
|
|
23874
|
+
return _extends({}, state, {
|
|
23875
|
+
items: _newItems
|
|
23876
|
+
});
|
|
23877
|
+
}
|
|
23878
|
+
case 'CLEAR_ALL':
|
|
23879
|
+
{
|
|
23880
|
+
var _action$payload3 = action.payload,
|
|
23881
|
+
_checkChildren2 = _action$payload3.checkChildren,
|
|
23882
|
+
_checkParents2 = _action$payload3.checkParents,
|
|
23883
|
+
_isTopLevelSelectable2 = _action$payload3.isTopLevelSelectable;
|
|
23884
|
+
var _newItems2 = toggleAllMulti({
|
|
23885
|
+
items: state.items,
|
|
23886
|
+
checkedStatus: IndeterminateCheckboxStatus.unchecked,
|
|
23887
|
+
checkChildren: _checkChildren2,
|
|
23888
|
+
checkParents: _checkParents2,
|
|
23889
|
+
isTopLevelSelectable: _isTopLevelSelectable2
|
|
23890
|
+
});
|
|
23891
|
+
return _extends({}, state, {
|
|
23892
|
+
items: _newItems2
|
|
23893
|
+
});
|
|
23894
|
+
}
|
|
23895
|
+
case 'TOGGLE_EXPAND':
|
|
23896
|
+
{
|
|
23897
|
+
var _itemId = action.payload.itemId;
|
|
23898
|
+
var updatedExpandedSet = new Set(state.expandedSet);
|
|
23899
|
+
if (Array.isArray(_itemId)) {
|
|
23900
|
+
_itemId.forEach(function (id) {
|
|
23901
|
+
return updatedExpandedSet.add(id);
|
|
23902
|
+
});
|
|
23903
|
+
} else if (_itemId === '') {
|
|
23904
|
+
updatedExpandedSet.clear();
|
|
23905
|
+
} else if (updatedExpandedSet.has(_itemId)) {
|
|
23906
|
+
updatedExpandedSet["delete"](_itemId);
|
|
23907
|
+
} else {
|
|
23908
|
+
updatedExpandedSet.add(_itemId);
|
|
23909
|
+
}
|
|
23910
|
+
return _extends({}, state, {
|
|
23911
|
+
expandedSet: updatedExpandedSet
|
|
23912
|
+
});
|
|
23913
|
+
}
|
|
23914
|
+
case 'EXPAND_ALL':
|
|
23915
|
+
{
|
|
23916
|
+
var expandableIds = action.payload.expandableIds;
|
|
23917
|
+
var _updatedExpandedSet = new Set(state.expandedSet);
|
|
23918
|
+
expandableIds.forEach(function (id) {
|
|
23919
|
+
return _updatedExpandedSet.add(id);
|
|
23920
|
+
});
|
|
23921
|
+
return _extends({}, state, {
|
|
23922
|
+
expandedSet: _updatedExpandedSet
|
|
23923
|
+
});
|
|
23924
|
+
}
|
|
23925
|
+
case 'COLLAPSE_ALL':
|
|
23926
|
+
{
|
|
23927
|
+
return _extends({}, state, {
|
|
23928
|
+
expandedSet: new Set()
|
|
23929
|
+
});
|
|
23930
|
+
}
|
|
23931
|
+
case 'SET_ITEMS':
|
|
23932
|
+
{
|
|
23933
|
+
var items = action.payload.items;
|
|
23934
|
+
// Only return new state if items actually changed
|
|
23935
|
+
if (items === state.items) {
|
|
23936
|
+
return state;
|
|
23937
|
+
}
|
|
23938
|
+
return _extends({}, state, {
|
|
23939
|
+
items: items
|
|
23940
|
+
});
|
|
23941
|
+
}
|
|
23942
|
+
case 'ADD_ITEM':
|
|
23943
|
+
{
|
|
23944
|
+
var _action$payload4 = action.payload,
|
|
23945
|
+
newItem = _action$payload4.newItem,
|
|
23946
|
+
_checkParents3 = _action$payload4.checkParents,
|
|
23947
|
+
_selectable = _action$payload4.selectable;
|
|
23948
|
+
var _newItems3 = state.items.map(function (item) {
|
|
23949
|
+
if (item.itemId === newItem.parentId) {
|
|
23950
|
+
item.hasOwnTreeItems = true;
|
|
23951
|
+
if (_checkParents3) {
|
|
23952
|
+
if (item.checkedStatus === IndeterminateCheckboxStatus.checked && newItem.checkedStatus !== IndeterminateCheckboxStatus.checked) {
|
|
23953
|
+
item.checkedStatus = IndeterminateCheckboxStatus.indeterminate;
|
|
23954
|
+
} else if (item.checkedStatus === IndeterminateCheckboxStatus.indeterminate && newItem.checkedStatus === IndeterminateCheckboxStatus.checked) {
|
|
23955
|
+
var allChildrenChecked = [].concat(state.items, [newItem]).filter(function (child) {
|
|
23956
|
+
return child.parentId === item.itemId;
|
|
23957
|
+
}).every(function (child) {
|
|
23958
|
+
return child.checkedStatus === IndeterminateCheckboxStatus.checked;
|
|
23959
|
+
});
|
|
23960
|
+
if (allChildrenChecked) {
|
|
23961
|
+
item.checkedStatus = IndeterminateCheckboxStatus.checked;
|
|
23962
|
+
}
|
|
23963
|
+
}
|
|
23964
|
+
}
|
|
23965
|
+
}
|
|
23966
|
+
return item;
|
|
23967
|
+
});
|
|
23968
|
+
if (newItem.checkedStatus === IndeterminateCheckboxStatus.checked && _selectable === 'single') {
|
|
23969
|
+
_newItems3.forEach(function (item) {
|
|
23970
|
+
item.checkedStatus = IndeterminateCheckboxStatus.unchecked;
|
|
23971
|
+
});
|
|
23972
|
+
}
|
|
23973
|
+
return _extends({}, state, {
|
|
23974
|
+
items: [].concat(_newItems3, [newItem])
|
|
23975
|
+
});
|
|
23976
|
+
}
|
|
23977
|
+
case 'UPDATE_ITEMS_DISABLED_STATE':
|
|
23978
|
+
{
|
|
23979
|
+
var updatedItems = action.payload.updatedItems;
|
|
23980
|
+
var hasChanges = false;
|
|
23981
|
+
var _newItems4 = state.items.map(function (prevItem) {
|
|
23982
|
+
var itemWithUpdatedDisabledState = updatedItems.find(function (item) {
|
|
23983
|
+
return item.itemId === prevItem.itemId;
|
|
23984
|
+
});
|
|
23985
|
+
if ((itemWithUpdatedDisabledState == null ? void 0 : itemWithUpdatedDisabledState.isDisabled) === (prevItem == null ? void 0 : prevItem.isDisabled)) {
|
|
23986
|
+
return prevItem;
|
|
23987
|
+
}
|
|
23988
|
+
hasChanges = true;
|
|
23989
|
+
return _extends({}, prevItem, {
|
|
23990
|
+
isDisabled: itemWithUpdatedDisabledState == null ? void 0 : itemWithUpdatedDisabledState.isDisabled
|
|
23991
|
+
});
|
|
23992
|
+
});
|
|
23993
|
+
// Only return new state if something actually changed
|
|
23994
|
+
if (!hasChanges) {
|
|
23995
|
+
return state;
|
|
23996
|
+
}
|
|
23997
|
+
return _extends({}, state, {
|
|
23998
|
+
items: _newItems4
|
|
23999
|
+
});
|
|
24000
|
+
}
|
|
24001
|
+
case 'TRIGGER_ITEMS_UPDATE':
|
|
24002
|
+
{
|
|
24003
|
+
return _extends({}, state, {
|
|
24004
|
+
itemsNeedUpdate: true
|
|
24005
|
+
});
|
|
24006
|
+
}
|
|
24007
|
+
case 'COMPLETE_ITEMS_UPDATE':
|
|
24008
|
+
{
|
|
24009
|
+
return _extends({}, state, {
|
|
24010
|
+
itemsNeedUpdate: false
|
|
24011
|
+
});
|
|
24012
|
+
}
|
|
24013
|
+
default:
|
|
24014
|
+
return state;
|
|
24015
|
+
}
|
|
24016
|
+
}
|
|
23200
24017
|
|
|
23201
24018
|
function useTreeView(props) {
|
|
23202
24019
|
var _props$selectable = props.selectable,
|
|
@@ -23216,8 +24033,9 @@ function useTreeView(props) {
|
|
|
23216
24033
|
isTopLevelSelectable = _props$isTopLevelSele === void 0 ? true : _props$isTopLevelSele,
|
|
23217
24034
|
expandIconStyles = props.expandIconStyles;
|
|
23218
24035
|
var hasPreselectedItems = Boolean(preselectedItems);
|
|
23219
|
-
|
|
23220
|
-
|
|
24036
|
+
// Initialize state with useReducer instead of multiple useState calls
|
|
24037
|
+
var _React$useReducer = useReducer(treeViewReducer, {
|
|
24038
|
+
items: getInitialItems({
|
|
23221
24039
|
children: children,
|
|
23222
24040
|
preselectedItems: preselectedItems,
|
|
23223
24041
|
checkParents: checkParents,
|
|
@@ -23225,11 +24043,16 @@ function useTreeView(props) {
|
|
|
23225
24043
|
selectable: selectable,
|
|
23226
24044
|
isDisabled: isDisabled,
|
|
23227
24045
|
isTopLevelSelectable: isTopLevelSelectable
|
|
23228
|
-
})
|
|
24046
|
+
}),
|
|
24047
|
+
expandedSet: new Set(),
|
|
24048
|
+
itemsNeedUpdate: null
|
|
23229
24049
|
}),
|
|
23230
|
-
|
|
23231
|
-
|
|
23232
|
-
var
|
|
24050
|
+
state = _React$useReducer[0],
|
|
24051
|
+
dispatch = _React$useReducer[1];
|
|
24052
|
+
var items = state.items,
|
|
24053
|
+
expandedSet = state.expandedSet,
|
|
24054
|
+
itemsNeedUpdate = state.itemsNeedUpdate;
|
|
24055
|
+
var _React$useState = useState(function () {
|
|
23233
24056
|
var initialItems = getInitialItems({
|
|
23234
24057
|
children: children,
|
|
23235
24058
|
preselectedItems: preselectedItems,
|
|
@@ -23243,7 +24066,7 @@ function useTreeView(props) {
|
|
|
23243
24066
|
return item.icon;
|
|
23244
24067
|
});
|
|
23245
24068
|
}),
|
|
23246
|
-
hasIcons = _React$
|
|
24069
|
+
hasIcons = _React$useState[0];
|
|
23247
24070
|
var selectedItems = useMemo(function () {
|
|
23248
24071
|
return items.filter(function (item) {
|
|
23249
24072
|
return item.checkedStatus === IndeterminateCheckboxStatus.checked;
|
|
@@ -23278,23 +24101,29 @@ function useTreeView(props) {
|
|
|
23278
24101
|
var prevPreselectedItemsRef = useRef(preselectedItems);
|
|
23279
24102
|
var prevChildrenRef = useRef(children);
|
|
23280
24103
|
var initializationRef = useRef(true);
|
|
23281
|
-
|
|
23282
|
-
|
|
23283
|
-
|
|
23284
|
-
|
|
24104
|
+
var onSelectedItemChangeRef = useRef(onSelectedItemChange);
|
|
24105
|
+
// itemsNeedUpdate is now part of the reducer state
|
|
24106
|
+
useEffect(function () {
|
|
24107
|
+
onSelectedItemChangeRef.current = onSelectedItemChange;
|
|
24108
|
+
}, [onSelectedItemChange]);
|
|
23285
24109
|
useEffect(function () {
|
|
23286
24110
|
if (isEqualArrays(prevPreselectedItemsRef.current, preselectedItems)) {
|
|
23287
24111
|
return;
|
|
23288
24112
|
}
|
|
23289
|
-
|
|
23290
|
-
|
|
23291
|
-
|
|
23292
|
-
|
|
23293
|
-
|
|
23294
|
-
|
|
23295
|
-
|
|
23296
|
-
|
|
23297
|
-
|
|
24113
|
+
dispatch({
|
|
24114
|
+
type: 'SET_ITEMS',
|
|
24115
|
+
payload: {
|
|
24116
|
+
items: getInitialItems({
|
|
24117
|
+
children: children,
|
|
24118
|
+
preselectedItems: preselectedItems,
|
|
24119
|
+
checkParents: checkParents,
|
|
24120
|
+
checkChildren: checkChildren,
|
|
24121
|
+
selectable: selectable,
|
|
24122
|
+
isDisabled: isDisabled,
|
|
24123
|
+
isTopLevelSelectable: isTopLevelSelectable
|
|
24124
|
+
})
|
|
24125
|
+
}
|
|
24126
|
+
});
|
|
23298
24127
|
prevPreselectedItemsRef.current = preselectedItems;
|
|
23299
24128
|
}, [preselectedItems, checkParents, checkChildren, selectable, isDisabled, children, isTopLevelSelectable]);
|
|
23300
24129
|
useEffect(function () {
|
|
@@ -23311,20 +24140,13 @@ function useTreeView(props) {
|
|
|
23311
24140
|
isTopLevelSelectable: isTopLevelSelectable,
|
|
23312
24141
|
items: items
|
|
23313
24142
|
});
|
|
23314
|
-
|
|
23315
|
-
|
|
23316
|
-
|
|
23317
|
-
|
|
23318
|
-
|
|
23319
|
-
if ((itemWithUpdatedDisabledState == null ? void 0 : itemWithUpdatedDisabledState.isDisabled) === (prevItem == null ? void 0 : prevItem.isDisabled)) {
|
|
23320
|
-
return prevItem;
|
|
23321
|
-
}
|
|
23322
|
-
return _extends({}, prevItem, {
|
|
23323
|
-
isDisabled: itemWithUpdatedDisabledState == null ? void 0 : itemWithUpdatedDisabledState.isDisabled
|
|
23324
|
-
});
|
|
23325
|
-
});
|
|
24143
|
+
dispatch({
|
|
24144
|
+
type: 'UPDATE_ITEMS_DISABLED_STATE',
|
|
24145
|
+
payload: {
|
|
24146
|
+
updatedItems: itemsWithUpdatedDisabledState
|
|
24147
|
+
}
|
|
23326
24148
|
});
|
|
23327
|
-
}, [checkChildren, checkParents, children, isDisabled, isTopLevelSelectable, preselectedItems, selectable]);
|
|
24149
|
+
}, [checkChildren, checkParents, children, isDisabled, isTopLevelSelectable, preselectedItems, selectable, items]);
|
|
23328
24150
|
useEffect(function () {
|
|
23329
24151
|
var isInitialization = initializationRef.current;
|
|
23330
24152
|
initializationRef.current = false;
|
|
@@ -23349,120 +24171,110 @@ function useTreeView(props) {
|
|
|
23349
24171
|
return;
|
|
23350
24172
|
}
|
|
23351
24173
|
prevSelectedItemsRef.current = nextSelectedItems;
|
|
23352
|
-
|
|
23353
|
-
}, [items, selectable, hasPreselectedItems
|
|
24174
|
+
onSelectedItemChangeRef.current && onSelectedItemChangeRef.current(nextSelectedItems);
|
|
24175
|
+
}, [items, selectable, hasPreselectedItems]);
|
|
23354
24176
|
var selectItem = useCallback(function (_ref3) {
|
|
23355
24177
|
var itemId = _ref3.itemId,
|
|
23356
24178
|
checkedStatus = _ref3.checkedStatus;
|
|
23357
24179
|
if (selectable === TreeViewSelectable.off) {
|
|
23358
24180
|
return;
|
|
23359
24181
|
}
|
|
23360
|
-
|
|
23361
|
-
|
|
23362
|
-
|
|
23363
|
-
|
|
23364
|
-
|
|
23365
|
-
|
|
23366
|
-
|
|
23367
|
-
|
|
23368
|
-
|
|
23369
|
-
setItems(function (prevItems) {
|
|
23370
|
-
if (selectable === TreeViewSelectable.single) {
|
|
23371
|
-
return selectSingle({
|
|
23372
|
-
items: prevItems,
|
|
23373
|
-
itemId: itemId,
|
|
23374
|
-
checkedStatus: checkedStatus != null ? checkedStatus : IndeterminateCheckboxStatus.checked
|
|
23375
|
-
});
|
|
23376
|
-
}
|
|
23377
|
-
if (selectable === TreeViewSelectable.multi) {
|
|
23378
|
-
return toggleMulti({
|
|
23379
|
-
items: prevItems,
|
|
23380
|
-
itemId: itemId,
|
|
23381
|
-
checkedStatus: checkedStatus,
|
|
23382
|
-
checkChildren: checkChildren,
|
|
23383
|
-
checkParents: checkParents,
|
|
23384
|
-
isTopLevelSelectable: isTopLevelSelectable
|
|
23385
|
-
});
|
|
24182
|
+
dispatch({
|
|
24183
|
+
type: 'SELECT_ITEM',
|
|
24184
|
+
payload: {
|
|
24185
|
+
itemId: itemId,
|
|
24186
|
+
checkedStatus: checkedStatus,
|
|
24187
|
+
selectable: selectable,
|
|
24188
|
+
checkChildren: checkChildren,
|
|
24189
|
+
checkParents: checkParents,
|
|
24190
|
+
isTopLevelSelectable: isTopLevelSelectable
|
|
23386
24191
|
}
|
|
23387
|
-
return prevItems;
|
|
23388
24192
|
});
|
|
23389
|
-
}, [selectable, checkChildren, checkParents,
|
|
24193
|
+
}, [selectable, checkChildren, checkParents, isTopLevelSelectable]);
|
|
23390
24194
|
var showMore = useCallback(function (fromSelectAll) {
|
|
23391
24195
|
if (fromSelectAll === void 0) {
|
|
23392
24196
|
fromSelectAll = false;
|
|
23393
24197
|
}
|
|
23394
24198
|
if (fromSelectAll) {
|
|
23395
|
-
|
|
23396
|
-
|
|
23397
|
-
|
|
23398
|
-
checkedStatus: IndeterminateCheckboxStatus.checked,
|
|
24199
|
+
dispatch({
|
|
24200
|
+
type: 'SELECT_ALL',
|
|
24201
|
+
payload: {
|
|
23399
24202
|
checkChildren: checkChildren,
|
|
23400
24203
|
checkParents: checkParents,
|
|
23401
24204
|
isTopLevelSelectable: isTopLevelSelectable
|
|
23402
|
-
}
|
|
24205
|
+
}
|
|
23403
24206
|
});
|
|
23404
24207
|
} else {
|
|
23405
|
-
|
|
24208
|
+
dispatch({
|
|
24209
|
+
type: 'TRIGGER_ITEMS_UPDATE'
|
|
24210
|
+
});
|
|
23406
24211
|
}
|
|
23407
|
-
}, [
|
|
24212
|
+
}, [checkChildren, checkParents, isTopLevelSelectable]);
|
|
23408
24213
|
var showLess = useCallback(function () {
|
|
23409
|
-
|
|
23410
|
-
|
|
23411
|
-
|
|
23412
|
-
|
|
23413
|
-
|
|
23414
|
-
|
|
23415
|
-
|
|
23416
|
-
|
|
23417
|
-
|
|
24214
|
+
dispatch({
|
|
24215
|
+
type: 'SET_ITEMS',
|
|
24216
|
+
payload: {
|
|
24217
|
+
items: getInitialItems({
|
|
24218
|
+
children: children,
|
|
24219
|
+
preselectedItems: selectedItems,
|
|
24220
|
+
checkParents: checkParents,
|
|
24221
|
+
checkChildren: checkChildren,
|
|
24222
|
+
selectable: selectable,
|
|
24223
|
+
isDisabled: isDisabled,
|
|
24224
|
+
isTopLevelSelectable: isTopLevelSelectable
|
|
24225
|
+
})
|
|
24226
|
+
}
|
|
24227
|
+
});
|
|
23418
24228
|
}, [children, selectedItems, checkParents, checkChildren, selectable, isDisabled, isTopLevelSelectable]);
|
|
23419
24229
|
var selectAll = useCallback(function () {
|
|
23420
24230
|
if ([TreeViewSelectable.single, TreeViewSelectable.off].includes(selectable) || isDisabled) {
|
|
23421
24231
|
return;
|
|
23422
24232
|
}
|
|
23423
|
-
|
|
23424
|
-
|
|
23425
|
-
|
|
23426
|
-
checkedStatus: IndeterminateCheckboxStatus.checked,
|
|
24233
|
+
dispatch({
|
|
24234
|
+
type: 'SELECT_ALL',
|
|
24235
|
+
payload: {
|
|
23427
24236
|
checkChildren: checkChildren,
|
|
23428
24237
|
checkParents: checkParents,
|
|
23429
24238
|
isTopLevelSelectable: isTopLevelSelectable
|
|
23430
|
-
}
|
|
24239
|
+
}
|
|
23431
24240
|
});
|
|
23432
|
-
}, [selectable, isDisabled,
|
|
24241
|
+
}, [selectable, isDisabled, checkChildren, checkParents, isTopLevelSelectable]);
|
|
23433
24242
|
var clearAll = useCallback(function () {
|
|
23434
24243
|
if (isDisabled) {
|
|
23435
24244
|
return;
|
|
23436
24245
|
}
|
|
23437
|
-
|
|
23438
|
-
|
|
23439
|
-
|
|
23440
|
-
checkedStatus: IndeterminateCheckboxStatus.unchecked,
|
|
24246
|
+
dispatch({
|
|
24247
|
+
type: 'CLEAR_ALL',
|
|
24248
|
+
payload: {
|
|
23441
24249
|
checkChildren: checkChildren,
|
|
23442
24250
|
checkParents: checkParents,
|
|
23443
24251
|
isTopLevelSelectable: isTopLevelSelectable
|
|
23444
|
-
}
|
|
24252
|
+
}
|
|
23445
24253
|
});
|
|
23446
|
-
}, [isDisabled,
|
|
24254
|
+
}, [isDisabled, checkChildren, checkParents, isTopLevelSelectable]);
|
|
23447
24255
|
var handleExpandedChange = useCallback(function (event, itemId) {
|
|
23448
|
-
|
|
23449
|
-
|
|
23450
|
-
|
|
23451
|
-
itemId
|
|
23452
|
-
return updatedExpandedSet.add(id);
|
|
23453
|
-
});
|
|
23454
|
-
} else if (itemId === '') {
|
|
23455
|
-
updatedExpandedSet.clear();
|
|
23456
|
-
} else if (updatedExpandedSet.has(itemId)) {
|
|
23457
|
-
updatedExpandedSet["delete"](itemId);
|
|
23458
|
-
} else {
|
|
23459
|
-
updatedExpandedSet.add(itemId);
|
|
24256
|
+
dispatch({
|
|
24257
|
+
type: 'TOGGLE_EXPAND',
|
|
24258
|
+
payload: {
|
|
24259
|
+
itemId: itemId
|
|
23460
24260
|
}
|
|
23461
|
-
var expandedItemsArray = Array.from(updatedExpandedSet);
|
|
23462
|
-
onExpandedChange && typeof onExpandedChange === 'function' && onExpandedChange(event, expandedItemsArray);
|
|
23463
|
-
return updatedExpandedSet;
|
|
23464
24261
|
});
|
|
23465
|
-
|
|
24262
|
+
// Calculate the new expanded set for the callback
|
|
24263
|
+
var updatedExpandedSet = new Set(expandedSet);
|
|
24264
|
+
if (Array.isArray(itemId)) {
|
|
24265
|
+
itemId.forEach(function (id) {
|
|
24266
|
+
return updatedExpandedSet.add(id);
|
|
24267
|
+
});
|
|
24268
|
+
} else if (itemId === '') {
|
|
24269
|
+
updatedExpandedSet.clear();
|
|
24270
|
+
} else if (updatedExpandedSet.has(itemId)) {
|
|
24271
|
+
updatedExpandedSet["delete"](itemId);
|
|
24272
|
+
} else {
|
|
24273
|
+
updatedExpandedSet.add(itemId);
|
|
24274
|
+
}
|
|
24275
|
+
var expandedItemsArray = Array.from(updatedExpandedSet);
|
|
24276
|
+
onExpandedChange && typeof onExpandedChange === 'function' && onExpandedChange(event, expandedItemsArray);
|
|
24277
|
+
}, [onExpandedChange, expandedSet]);
|
|
23466
24278
|
var expandAll = useCallback(function () {
|
|
23467
24279
|
var expandableIds = items.reduce(function (ids, item) {
|
|
23468
24280
|
if (item.hasOwnTreeItems) {
|
|
@@ -23470,53 +24282,50 @@ function useTreeView(props) {
|
|
|
23470
24282
|
}
|
|
23471
24283
|
return ids;
|
|
23472
24284
|
}, []);
|
|
24285
|
+
dispatch({
|
|
24286
|
+
type: 'EXPAND_ALL',
|
|
24287
|
+
payload: {
|
|
24288
|
+
expandableIds: expandableIds
|
|
24289
|
+
}
|
|
24290
|
+
});
|
|
23473
24291
|
var syntheticEvent = {};
|
|
23474
|
-
|
|
23475
|
-
}, [
|
|
24292
|
+
onExpandedChange && typeof onExpandedChange === 'function' && onExpandedChange(syntheticEvent, expandableIds);
|
|
24293
|
+
}, [items, onExpandedChange]);
|
|
23476
24294
|
var collapseAll = useCallback(function () {
|
|
24295
|
+
dispatch({
|
|
24296
|
+
type: 'COLLAPSE_ALL'
|
|
24297
|
+
});
|
|
23477
24298
|
var syntheticEvent = {};
|
|
23478
|
-
|
|
23479
|
-
}, [
|
|
24299
|
+
onExpandedChange && typeof onExpandedChange === 'function' && onExpandedChange(syntheticEvent, []);
|
|
24300
|
+
}, [onExpandedChange]);
|
|
23480
24301
|
var addItem = useCallback(function (newItem) {
|
|
23481
|
-
|
|
23482
|
-
|
|
23483
|
-
|
|
23484
|
-
|
|
23485
|
-
|
|
23486
|
-
|
|
23487
|
-
} else if (item.checkedStatus === IndeterminateCheckboxStatus.indeterminate && newItem.checkedStatus === IndeterminateCheckboxStatus.checked) {
|
|
23488
|
-
var allChildrenChecked = [].concat(items, [newItem]).filter(function (child) {
|
|
23489
|
-
return child.parentId === item.itemId;
|
|
23490
|
-
}).every(function (child) {
|
|
23491
|
-
return child.checkedStatus === IndeterminateCheckboxStatus.checked;
|
|
23492
|
-
});
|
|
23493
|
-
if (allChildrenChecked) {
|
|
23494
|
-
item.checkedStatus = IndeterminateCheckboxStatus.checked;
|
|
23495
|
-
}
|
|
23496
|
-
}
|
|
23497
|
-
}
|
|
24302
|
+
dispatch({
|
|
24303
|
+
type: 'ADD_ITEM',
|
|
24304
|
+
payload: {
|
|
24305
|
+
newItem: newItem,
|
|
24306
|
+
checkParents: checkParents,
|
|
24307
|
+
selectable: selectable
|
|
23498
24308
|
}
|
|
23499
|
-
return item;
|
|
23500
24309
|
});
|
|
23501
|
-
|
|
23502
|
-
newItems.forEach(function (item) {
|
|
23503
|
-
item.checkedStatus = IndeterminateCheckboxStatus.unchecked;
|
|
23504
|
-
});
|
|
23505
|
-
}
|
|
23506
|
-
var updatedItems = [].concat(newItems, [newItem]);
|
|
24310
|
+
// If the item has a parent, we need to reinitialize items to handle checkChildren logic
|
|
23507
24311
|
if (newItem.parentId) {
|
|
23508
|
-
|
|
23509
|
-
|
|
23510
|
-
|
|
23511
|
-
|
|
23512
|
-
|
|
23513
|
-
|
|
23514
|
-
|
|
23515
|
-
|
|
23516
|
-
|
|
23517
|
-
|
|
23518
|
-
|
|
23519
|
-
|
|
24312
|
+
// We need to get the updated items after ADD_ITEM dispatch
|
|
24313
|
+
// This is a limitation of the current approach - we'll handle it in the next effect
|
|
24314
|
+
dispatch({
|
|
24315
|
+
type: 'SET_ITEMS',
|
|
24316
|
+
payload: {
|
|
24317
|
+
items: getInitialItems({
|
|
24318
|
+
children: children,
|
|
24319
|
+
preselectedItems: selectedItems,
|
|
24320
|
+
checkParents: checkParents,
|
|
24321
|
+
checkChildren: false,
|
|
24322
|
+
selectable: selectable,
|
|
24323
|
+
isDisabled: isDisabled,
|
|
24324
|
+
isTopLevelSelectable: isTopLevelSelectable,
|
|
24325
|
+
items: [].concat(items, [newItem])
|
|
24326
|
+
})
|
|
24327
|
+
}
|
|
24328
|
+
});
|
|
23520
24329
|
}
|
|
23521
24330
|
}, [checkParents, children, isDisabled, isTopLevelSelectable, items, selectable, selectedItems]);
|
|
23522
24331
|
useEffect(function () {
|
|
@@ -23535,112 +24344,259 @@ function useTreeView(props) {
|
|
|
23535
24344
|
}, [selectItem, selectAll, clearAll, showMore, showLess, expandAll, collapseAll, addItem, apiRef]);
|
|
23536
24345
|
useEffect(function () {
|
|
23537
24346
|
if (itemsNeedUpdate) {
|
|
23538
|
-
|
|
23539
|
-
|
|
23540
|
-
|
|
23541
|
-
|
|
23542
|
-
|
|
23543
|
-
|
|
23544
|
-
|
|
23545
|
-
|
|
23546
|
-
|
|
24347
|
+
dispatch({
|
|
24348
|
+
type: 'SET_ITEMS',
|
|
24349
|
+
payload: {
|
|
24350
|
+
items: getInitialItems({
|
|
24351
|
+
children: children,
|
|
24352
|
+
preselectedItems: selectedItems,
|
|
24353
|
+
checkParents: checkParents,
|
|
24354
|
+
checkChildren: checkChildren,
|
|
24355
|
+
selectable: selectable,
|
|
24356
|
+
isDisabled: isDisabled,
|
|
24357
|
+
isTopLevelSelectable: isTopLevelSelectable
|
|
24358
|
+
})
|
|
24359
|
+
}
|
|
24360
|
+
});
|
|
23547
24361
|
prevChildrenRef.current = children;
|
|
23548
|
-
|
|
24362
|
+
dispatch({
|
|
24363
|
+
type: 'COMPLETE_ITEMS_UPDATE'
|
|
24364
|
+
});
|
|
23549
24365
|
}
|
|
23550
24366
|
}, [itemsNeedUpdate, children, selectedItems, checkParents, checkChildren, selectable, isDisabled, isTopLevelSelectable]);
|
|
23551
24367
|
var _useDescendants = useDescendants(),
|
|
23552
24368
|
treeItemRefArray = _useDescendants[0],
|
|
23553
24369
|
registerTreeItem = _useDescendants[1];
|
|
23554
|
-
|
|
23555
|
-
|
|
23556
|
-
|
|
23557
|
-
|
|
23558
|
-
|
|
23559
|
-
|
|
23560
|
-
|
|
23561
|
-
|
|
23562
|
-
|
|
23563
|
-
|
|
23564
|
-
|
|
23565
|
-
|
|
23566
|
-
|
|
23567
|
-
|
|
23568
|
-
|
|
23569
|
-
|
|
23570
|
-
|
|
23571
|
-
|
|
23572
|
-
|
|
23573
|
-
|
|
23574
|
-
|
|
23575
|
-
|
|
24370
|
+
// Initialize expandedSet with initialExpandedItems
|
|
24371
|
+
useEffect(function () {
|
|
24372
|
+
if (initialExpandedItems && initialExpandedItems.length > 0) {
|
|
24373
|
+
dispatch({
|
|
24374
|
+
type: 'EXPAND_ALL',
|
|
24375
|
+
payload: {
|
|
24376
|
+
expandableIds: initialExpandedItems
|
|
24377
|
+
}
|
|
24378
|
+
});
|
|
24379
|
+
}
|
|
24380
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24381
|
+
}, []); // Only run on mount
|
|
24382
|
+
// Split context values for reduced re-render scope
|
|
24383
|
+
var selectionContextValue = useMemo(function () {
|
|
24384
|
+
return {
|
|
24385
|
+
items: items,
|
|
24386
|
+
selectedItems: selectedItems,
|
|
24387
|
+
selectItem: selectItem,
|
|
24388
|
+
onSelectedItemChange: onSelectedItemChange,
|
|
24389
|
+
selectable: selectable,
|
|
24390
|
+
itemToFocus: itemToFocus
|
|
24391
|
+
};
|
|
24392
|
+
}, [items, selectedItems, selectItem, onSelectedItemChange, selectable, itemToFocus]);
|
|
24393
|
+
var expansionContextValue = useMemo(function () {
|
|
24394
|
+
return {
|
|
24395
|
+
expandedSet: expandedSet,
|
|
24396
|
+
handleExpandedChange: handleExpandedChange,
|
|
24397
|
+
onExpandedChange: onExpandedChange,
|
|
24398
|
+
initialExpandedItems: initialExpandedItems
|
|
24399
|
+
};
|
|
24400
|
+
}, [expandedSet, handleExpandedChange, onExpandedChange, initialExpandedItems]);
|
|
24401
|
+
var configContextValue = useMemo(function () {
|
|
24402
|
+
return {
|
|
24403
|
+
hasIcons: hasIcons,
|
|
24404
|
+
selectable: selectable,
|
|
24405
|
+
checkParents: checkParents,
|
|
24406
|
+
checkChildren: checkChildren,
|
|
24407
|
+
isTopLevelSelectable: isTopLevelSelectable,
|
|
24408
|
+
expandIconStyles: expandIconStyles,
|
|
24409
|
+
registerTreeItem: registerTreeItem,
|
|
24410
|
+
treeItemRefArray: treeItemRefArray
|
|
24411
|
+
};
|
|
24412
|
+
}, [hasIcons, selectable, checkParents, checkChildren, isTopLevelSelectable, expandIconStyles, registerTreeItem, treeItemRefArray]);
|
|
23576
24413
|
return {
|
|
23577
|
-
|
|
24414
|
+
selectionContextValue: selectionContextValue,
|
|
24415
|
+
expansionContextValue: expansionContextValue,
|
|
24416
|
+
configContextValue: configContextValue
|
|
23578
24417
|
};
|
|
23579
24418
|
}
|
|
23580
24419
|
|
|
23581
|
-
var _excluded$1M = ["ariaLabel", "ariaLabelledBy", "children", "isInverse", "onExpandedChange", "onSelectedItemChange", "selectable", "testId", "apiRef"];
|
|
24420
|
+
var _excluded$1M = ["ariaLabel", "ariaLabelledBy", "children", "isInverse", "onExpandedChange", "onSelectedItemChange", "selectable", "testId", "apiRef", "enableVirtualization", "estimateSize", "overscan"];
|
|
24421
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__$H() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
23582
24422
|
var StyledTreeView = /*#__PURE__*/_styled("ul", {
|
|
23583
|
-
target: "
|
|
24423
|
+
target: "e1tyeayj2",
|
|
23584
24424
|
label: "StyledTreeView"
|
|
23585
24425
|
})("padding:0;margin:0;color:", function (props) {
|
|
23586
24426
|
return props.isInverse ? props.theme.colors.neutral100 : props.theme.colors.neutral;
|
|
23587
|
-
}, ";
|
|
23588
|
-
|
|
24427
|
+
}, ";position:", function (props) {
|
|
24428
|
+
return props.isVirtualized ? 'relative' : 'static';
|
|
24429
|
+
}, ";ul{padding:0;margin:0;li{margin:0;}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVWaWV3LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhaUMiLCJmaWxlIjoiVHJlZVZpZXcudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHVzZVZpcnR1YWwgfSBmcm9tICdyZWFjdC12aXJ0dWFsJztcclxuaW1wb3J0IHsgVHJlZUl0ZW0gfSBmcm9tICcuL1RyZWVJdGVtJztcclxuaW1wb3J0IHsgVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0IH0gZnJvbSAnLi9UcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0NvbmZpZ0NvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3Q29uZmlnQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld1NlbGVjdGlvbkNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld1NlbGVjdGFibGUgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgdXNlVHJlZUl0ZW0gfSBmcm9tICcuL3VzZVRyZWVJdGVtJztcclxuaW1wb3J0IHsgdXNlVHJlZVZpZXcgfSBmcm9tICcuL3VzZVRyZWVWaWV3JztcclxuaW1wb3J0IHsgSW52ZXJzZUNvbnRleHQsIHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5jb25zdCBTdHlsZWRUcmVlVmlldyA9IHN0eWxlZC51bCBgXG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsfTtcbiAgcG9zaXRpb246ICR7cHJvcHMgPT4gKHByb3BzLmlzVmlydHVhbGl6ZWQgPyAncmVsYXRpdmUnIDogJ3N0YXRpYycpfTtcbiAgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbmA7XHJcbmNvbnN0IFZpcnR1YWxDb250YWluZXIgPSBzdHlsZWQuZGl2IGBcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XHJcbmNvbnN0IFZpcnR1YWxJdGVtID0gc3R5bGVkLmRpdiBgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLmhlaWdodH1weDtcbiAgdHJhbnNmb3JtOiAke3Byb3BzID0+IHByb3BzLnRyYW5zZm9ybX07XG5gO1xyXG5leHBvcnQgY29uc3QgVHJlZVZpZXcgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XHJcbiAgICBjb25zdCB7IGFyaWFMYWJlbCwgYXJpYUxhYmVsbGVkQnksIGNoaWxkcmVuLCBpc0ludmVyc2U6IGlzSW52ZXJzZVByb3AsIG9uRXhwYW5kZWRDaGFuZ2UsIG9uU2VsZWN0ZWRJdGVtQ2hhbmdlLCBzZWxlY3RhYmxlLCB0ZXN0SWQsIGFwaVJlZiwgZW5hYmxlVmlydHVhbGl6YXRpb24gPSBmYWxzZSwgZXN0aW1hdGVTaXplID0gNDAsIG92ZXJzY2FuID0gNSwgLi4ucmVzdCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGlzSW52ZXJzZSA9IHVzZUlzSW52ZXJzZShpc0ludmVyc2VQcm9wKTtcclxuICAgIGNvbnN0IHsgc2VsZWN0aW9uQ29udGV4dFZhbHVlLCBleHBhbnNpb25Db250ZXh0VmFsdWUsIGNvbmZpZ0NvbnRleHRWYWx1ZSB9ID0gdXNlVHJlZVZpZXcocHJvcHMpO1xyXG4gICAgdXNlVHJlZUl0ZW0oeyBsYWJlbDogYXJpYUxhYmVsLCBpdGVtSWQ6ICcnIH0sIHJlZik7XHJcbiAgICBjb25zdCBpbnZlcnNlQ29udGV4dFZhbHVlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoeyBpc0ludmVyc2UgfSksIFtpc0ludmVyc2VdKTtcclxuICAgIGNvbnN0IHBhcmVudFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIC8vIEZsYXR0ZW4gdHJlZSBzdHJ1Y3R1cmUgZm9yIHZpcnR1YWxpemF0aW9uXHJcbiAgICBjb25zdCBmbGF0dGVuZWRJdGVtcyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmICghZW5hYmxlVmlydHVhbGl6YXRpb24pXHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICBjb25zdCBpdGVtcyA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGZsYXR0ZW4gPSAoY2hpbGRyZW5Ub0ZsYXR0ZW4sIGRlcHRoID0gMCwgcGFyZW50SW5kZXggPSAwKSA9PiB7XHJcbiAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW5Ub0ZsYXR0ZW4sIChjaGlsZCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpIHx8IGNoaWxkLnR5cGUgIT09IFRyZWVJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUtleSA9IGB0cmVlLWl0ZW0tJHtkZXB0aH0tJHtpbmRleH0tJHtpdGVtcy5sZW5ndGh9YDtcclxuICAgICAgICAgICAgICAgIC8vIENsb25lIHRoZSBjaGlsZCB3aXRob3V0IGl0cyBjaGlsZHJlbiB0byBwcmV2ZW50IGRvdWJsZSByZW5kZXJpbmdcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkV2l0aG91dE5lc3RlZCA9IFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLmNoaWxkLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZDogY2hpbGRXaXRob3V0TmVzdGVkLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgIGtleTogaXRlbUtleSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaXRlbSBoYXMgY2hpbGRyZW4gYW5kIGlzIGV4cGFuZGVkXHJcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtSWQgPSBjaGlsZC5wcm9wcy5pdGVtSWQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc0V4cGFuZGVkID0gZXhwYW5zaW9uQ29udGV4dFZhbHVlLmV4cGFuZGVkU2V0Py5oYXMoaXRlbUlkKTtcclxuICAgICAgICAgICAgICAgIGlmIChpc0V4cGFuZGVkICYmIGNoaWxkLnByb3BzLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxhdHRlbihjaGlsZC5wcm9wcy5jaGlsZHJlbiwgZGVwdGggKyAxLCBpbmRleCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgZmxhdHRlbihjaGlsZHJlbik7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfSwgW2NoaWxkcmVuLCBlbmFibGVWaXJ0dWFsaXphdGlvbiwgZXhwYW5zaW9uQ29udGV4dFZhbHVlLmV4cGFuZGVkU2V0XSk7XHJcbiAgICAvLyBTZXR1cCB2aXJ0dWFsaXplclxyXG4gICAgY29uc3Qgcm93VmlydHVhbGl6ZXIgPSB1c2VWaXJ0dWFsKHtcclxuICAgICAgICBzaXplOiBmbGF0dGVuZWRJdGVtcy5sZW5ndGgsXHJcbiAgICAgICAgcGFyZW50UmVmLFxyXG4gICAgICAgIGVzdGltYXRlU2l6ZTogUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gZXN0aW1hdGVTaXplLCBbZXN0aW1hdGVTaXplXSksXHJcbiAgICAgICAgb3ZlcnNjYW4sXHJcbiAgICB9KTtcclxuICAgIC8vIFByb2Nlc3MgY2hpbGRyZW4gd2l0aG91dCBjbG9uZUVsZW1lbnQgLSB1c2UgY29udGV4dCBpbnN0ZWFkXHJcbiAgICBjb25zdCBwcm9jZXNzZWRDaGlsZHJlbiA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChlbmFibGVWaXJ0dWFsaXphdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gSGFuZGxlZCBieSB2aXJ0dWFsaXplciBiZWxvd1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdHJlZUl0ZW1JbmRleCA9IDA7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGNoaWxkLnR5cGUgPT09IFRyZWVJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0cmVlSXRlbUluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBoaWVyYXJjaHlWYWx1ZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBkZXB0aDogMCxcclxuICAgICAgICAgICAgICAgICAgICBwYXJlbnREZXB0aDogMCxcclxuICAgICAgICAgICAgICAgICAgICBpc1RvcExldmVsOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBjdXJyZW50SW5kZXgsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy8gV3JhcCBpbiBjb250ZXh0IHByb3ZpZGVyIGluc3RlYWQgb2YgY2xvbmluZ1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dC5Qcm92aWRlciwgeyBrZXk6IGB0cmVlLWl0ZW0tJHtjdXJyZW50SW5kZXh9YCwgdmFsdWU6IGhpZXJhcmNoeVZhbHVlIH0sIGNoaWxkKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LCBbY2hpbGRyZW4sIGVuYWJsZVZpcnR1YWxpemF0aW9uXSk7XHJcbiAgICBjb25zdCB2aXJ0dWFsSXRlbXMgPSBlbmFibGVWaXJ0dWFsaXphdGlvblxyXG4gICAgICAgID8gcm93VmlydHVhbGl6ZXIudmlydHVhbEl0ZW1zXHJcbiAgICAgICAgOiBbXTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChJbnZlcnNlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogaW52ZXJzZUNvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzZWxlY3Rpb25Db250ZXh0VmFsdWUgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGV4cGFuc2lvbkNvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlVmlld0NvbmZpZ0NvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbmZpZ0NvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZVZpZXcsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCwgXCJhcmlhLWxhYmVsbGVkYnlcIjogYXJpYUxhYmVsbGVkQnksIFwiYXJpYS1tdWx0aXNlbGVjdGFibGVcIjogc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpLCBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIGlzVmlydHVhbGl6ZWQ6IGVuYWJsZVZpcnR1YWxpemF0aW9uLCByZWY6IG1lcmdlZFJlZnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobWVyZ2VkUmVmcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWYpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYuY3VycmVudCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlZFJlZnM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRSZWYuY3VycmVudCA9IG1lcmdlZFJlZnM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHJvbGU6IFwidHJlZVwiLCB0aGVtZTogdGhlbWUsIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXN0LnN0eWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKGVuYWJsZVZpcnR1YWxpemF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGhlaWdodDogJzQwMHB4Jywgb3ZlcmZsb3c6ICdhdXRvJyB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gfSksIGVuYWJsZVZpcnR1YWxpemF0aW9uID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVmlydHVhbENvbnRhaW5lciwgeyBzdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBgJHtyb3dWaXJ0dWFsaXplci50b3RhbFNpemV9cHhgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IH0sIHZpcnR1YWxJdGVtcy5tYXAodmlydHVhbEl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gZmxhdHRlbmVkSXRlbXNbdmlydHVhbEl0ZW0uaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWVyYXJjaHlWYWx1ZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoOiBpdGVtLmRlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGg6IE1hdGgubWF4KDAsIGl0ZW0uZGVwdGggLSAxKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzVG9wTGV2ZWw6IGl0ZW0uZGVwdGggPT09IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaXRlbS5pbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFZpcnR1YWxJdGVtLCB7IGtleTogaXRlbS5rZXksIGhlaWdodDogdmlydHVhbEl0ZW0uc2l6ZSwgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke3ZpcnR1YWxJdGVtLnN0YXJ0fXB4KWAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBoaWVyYXJjaHlWYWx1ZSB9LCBpdGVtLmNoaWxkKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pKSkgOiAocHJvY2Vzc2VkQ2hpbGRyZW4pKSkpKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VHJlZVZpZXcuanMubWFwIl19 */"));
|
|
24430
|
+
var VirtualContainer = /*#__PURE__*/_styled("div", {
|
|
24431
|
+
target: "e1tyeayj1",
|
|
24432
|
+
label: "VirtualContainer"
|
|
24433
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
24434
|
+
name: "n48rgu",
|
|
24435
|
+
styles: "width:100%;position:relative"
|
|
24436
|
+
} : {
|
|
24437
|
+
name: "n48rgu",
|
|
24438
|
+
styles: "width:100%;position:relative/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVWaWV3LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0Qm9DIiwiZmlsZSI6IlRyZWVWaWV3LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyB1c2VWaXJ0dWFsIH0gZnJvbSAncmVhY3QtdmlydHVhbCc7XHJcbmltcG9ydCB7IFRyZWVJdGVtIH0gZnJvbSAnLi9UcmVlSXRlbSc7XHJcbmltcG9ydCB7IFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb25maWdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbmZpZ0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IHVzZVRyZWVJdGVtIH0gZnJvbSAnLi91c2VUcmVlSXRlbSc7XHJcbmltcG9ydCB7IHVzZVRyZWVWaWV3IH0gZnJvbSAnLi91c2VUcmVlVmlldyc7XHJcbmltcG9ydCB7IEludmVyc2VDb250ZXh0LCB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuY29uc3QgU3R5bGVkVHJlZVZpZXcgPSBzdHlsZWQudWwgYFxuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbH07XG4gIHBvc2l0aW9uOiAke3Byb3BzID0+IChwcm9wcy5pc1ZpcnR1YWxpemVkID8gJ3JlbGF0aXZlJyA6ICdzdGF0aWMnKX07XG4gIHVsIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5gO1xyXG5jb25zdCBWaXJ0dWFsQ29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xyXG5jb25zdCBWaXJ0dWFsSXRlbSA9IHN0eWxlZC5kaXYgYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy5oZWlnaHR9cHg7XG4gIHRyYW5zZm9ybTogJHtwcm9wcyA9PiBwcm9wcy50cmFuc2Zvcm19O1xuYDtcclxuZXhwb3J0IGNvbnN0IFRyZWVWaWV3ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBhcmlhTGFiZWwsIGFyaWFMYWJlbGxlZEJ5LCBjaGlsZHJlbiwgaXNJbnZlcnNlOiBpc0ludmVyc2VQcm9wLCBvbkV4cGFuZGVkQ2hhbmdlLCBvblNlbGVjdGVkSXRlbUNoYW5nZSwgc2VsZWN0YWJsZSwgdGVzdElkLCBhcGlSZWYsIGVuYWJsZVZpcnR1YWxpemF0aW9uID0gZmFsc2UsIGVzdGltYXRlU2l6ZSA9IDQwLCBvdmVyc2NhbiA9IDUsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoaXNJbnZlcnNlUHJvcCk7XHJcbiAgICBjb25zdCB7IHNlbGVjdGlvbkNvbnRleHRWYWx1ZSwgZXhwYW5zaW9uQ29udGV4dFZhbHVlLCBjb25maWdDb250ZXh0VmFsdWUgfSA9IHVzZVRyZWVWaWV3KHByb3BzKTtcclxuICAgIHVzZVRyZWVJdGVtKHsgbGFiZWw6IGFyaWFMYWJlbCwgaXRlbUlkOiAnJyB9LCByZWYpO1xyXG4gICAgY29uc3QgaW52ZXJzZUNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHsgaXNJbnZlcnNlIH0pLCBbaXNJbnZlcnNlXSk7XHJcbiAgICBjb25zdCBwYXJlbnRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgICAvLyBGbGF0dGVuIHRyZWUgc3RydWN0dXJlIGZvciB2aXJ0dWFsaXphdGlvblxyXG4gICAgY29uc3QgZmxhdHRlbmVkSXRlbXMgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoIWVuYWJsZVZpcnR1YWxpemF0aW9uKVxyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgY29uc3QgaXRlbXMgPSBbXTtcclxuICAgICAgICBjb25zdCBmbGF0dGVuID0gKGNoaWxkcmVuVG9GbGF0dGVuLCBkZXB0aCA9IDAsIHBhcmVudEluZGV4ID0gMCkgPT4ge1xyXG4gICAgICAgICAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuVG9GbGF0dGVuLCAoY2hpbGQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSB8fCBjaGlsZC50eXBlICE9PSBUcmVlSXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1LZXkgPSBgdHJlZS1pdGVtLSR7ZGVwdGh9LSR7aW5kZXh9LSR7aXRlbXMubGVuZ3RofWA7XHJcbiAgICAgICAgICAgICAgICAvLyBDbG9uZSB0aGUgY2hpbGQgd2l0aG91dCBpdHMgY2hpbGRyZW4gdG8gcHJldmVudCBkb3VibGUgcmVuZGVyaW5nXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZFdpdGhvdXROZXN0ZWQgPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQ6IGNoaWxkV2l0aG91dE5lc3RlZCxcclxuICAgICAgICAgICAgICAgICAgICBkZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgICAgICAgICBrZXk6IGl0ZW1LZXksXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGl0ZW0gaGFzIGNoaWxkcmVuIGFuZCBpcyBleHBhbmRlZFxyXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUlkID0gY2hpbGQucHJvcHMuaXRlbUlkO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNFeHBhbmRlZCA9IGV4cGFuc2lvbkNvbnRleHRWYWx1ZS5leHBhbmRlZFNldD8uaGFzKGl0ZW1JZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNFeHBhbmRlZCAmJiBjaGlsZC5wcm9wcy5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGZsYXR0ZW4oY2hpbGQucHJvcHMuY2hpbGRyZW4sIGRlcHRoICsgMSwgaW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIGZsYXR0ZW4oY2hpbGRyZW4pO1xyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgIH0sIFtjaGlsZHJlbiwgZW5hYmxlVmlydHVhbGl6YXRpb24sIGV4cGFuc2lvbkNvbnRleHRWYWx1ZS5leHBhbmRlZFNldF0pO1xyXG4gICAgLy8gU2V0dXAgdmlydHVhbGl6ZXJcclxuICAgIGNvbnN0IHJvd1ZpcnR1YWxpemVyID0gdXNlVmlydHVhbCh7XHJcbiAgICAgICAgc2l6ZTogZmxhdHRlbmVkSXRlbXMubGVuZ3RoLFxyXG4gICAgICAgIHBhcmVudFJlZixcclxuICAgICAgICBlc3RpbWF0ZVNpemU6IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IGVzdGltYXRlU2l6ZSwgW2VzdGltYXRlU2l6ZV0pLFxyXG4gICAgICAgIG92ZXJzY2FuLFxyXG4gICAgfSk7XHJcbiAgICAvLyBQcm9jZXNzIGNoaWxkcmVuIHdpdGhvdXQgY2xvbmVFbGVtZW50IC0gdXNlIGNvbnRleHQgaW5zdGVhZFxyXG4gICAgY29uc3QgcHJvY2Vzc2VkQ2hpbGRyZW4gPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoZW5hYmxlVmlydHVhbGl6YXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIEhhbmRsZWQgYnkgdmlydHVhbGl6ZXIgYmVsb3dcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHRyZWVJdGVtSW5kZXggPSAwO1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcclxuICAgICAgICAgICAgaWYgKCFSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjaGlsZC50eXBlID09PSBUcmVlSXRlbSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdHJlZUl0ZW1JbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaGllcmFyY2h5VmFsdWUgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVwdGg6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGg6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBpbmRleDogY3VycmVudEluZGV4LFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vIFdyYXAgaW4gY29udGV4dCBwcm92aWRlciBpbnN0ZWFkIG9mIGNsb25pbmdcclxuICAgICAgICAgICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQuUHJvdmlkZXIsIHsga2V5OiBgdHJlZS1pdGVtLSR7Y3VycmVudEluZGV4fWAsIHZhbHVlOiBoaWVyYXJjaHlWYWx1ZSB9LCBjaGlsZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSwgW2NoaWxkcmVuLCBlbmFibGVWaXJ0dWFsaXphdGlvbl0pO1xyXG4gICAgY29uc3QgdmlydHVhbEl0ZW1zID0gZW5hYmxlVmlydHVhbGl6YXRpb25cclxuICAgICAgICA/IHJvd1ZpcnR1YWxpemVyLnZpcnR1YWxJdGVtc1xyXG4gICAgICAgIDogW107XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW52ZXJzZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGludmVyc2VDb250ZXh0VmFsdWUgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc2VsZWN0aW9uQ29udGV4dFZhbHVlIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBleHBhbnNpb25Db250ZXh0VmFsdWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZVZpZXdDb25maWdDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb25maWdDb250ZXh0VmFsdWUgfSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRyZWVWaWV3LCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGFyaWFMYWJlbGxlZEJ5LCBcImFyaWEtbXVsdGlzZWxlY3RhYmxlXCI6IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBpc1ZpcnR1YWxpemVkOiBlbmFibGVWaXJ0dWFsaXphdGlvbiwgcmVmOiBtZXJnZWRSZWZzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG1lcmdlZFJlZnMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmLmN1cnJlbnQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZWRSZWZzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50UmVmLmN1cnJlbnQgPSBtZXJnZWRSZWZzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCByb2xlOiBcInRyZWVcIiwgdGhlbWU6IHRoZW1lLCBzdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzdC5zdHlsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihlbmFibGVWaXJ0dWFsaXphdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBoZWlnaHQ6ICc0MDBweCcsIG92ZXJmbG93OiAnYXV0bycgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IH0pLCBlbmFibGVWaXJ0dWFsaXphdGlvbiA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFZpcnR1YWxDb250YWluZXIsIHsgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYCR7cm93VmlydHVhbGl6ZXIudG90YWxTaXplfXB4YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSB9LCB2aXJ0dWFsSXRlbXMubWFwKHZpcnR1YWxJdGVtID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGZsYXR0ZW5lZEl0ZW1zW3ZpcnR1YWxJdGVtLmluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGllcmFyY2h5VmFsdWUgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogaXRlbS5kZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoOiBNYXRoLm1heCgwLCBpdGVtLmRlcHRoIC0gMSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1RvcExldmVsOiBpdGVtLmRlcHRoID09PSAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGl0ZW0uaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChWaXJ0dWFsSXRlbSwgeyBrZXk6IGl0ZW0ua2V5LCBoZWlnaHQ6IHZpcnR1YWxJdGVtLnNpemUsIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHt2aXJ0dWFsSXRlbS5zdGFydH1weClgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogaGllcmFyY2h5VmFsdWUgfSwgaXRlbS5jaGlsZCkpKTtcclxuICAgICAgICAgICAgICAgICAgICB9KSkpIDogKHByb2Nlc3NlZENoaWxkcmVuKSkpKSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVWaWV3LmpzLm1hcCJdfQ== */",
|
|
24439
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$H
|
|
24440
|
+
});
|
|
24441
|
+
var VirtualItem = /*#__PURE__*/_styled("div", {
|
|
24442
|
+
target: "e1tyeayj0",
|
|
24443
|
+
label: "VirtualItem"
|
|
24444
|
+
})("position:absolute;top:0;left:0;width:100%;height:", function (props) {
|
|
24445
|
+
return props.height;
|
|
24446
|
+
}, "px;transform:", function (props) {
|
|
24447
|
+
return props.transform;
|
|
24448
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVWaWV3LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQytCIiwiZmlsZSI6IlRyZWVWaWV3LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyB1c2VWaXJ0dWFsIH0gZnJvbSAncmVhY3QtdmlydHVhbCc7XHJcbmltcG9ydCB7IFRyZWVJdGVtIH0gZnJvbSAnLi9UcmVlSXRlbSc7XHJcbmltcG9ydCB7IFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1IaWVyYXJjaHlDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb25maWdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbmZpZ0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld0V4cGFuc2lvbkNvbnRleHQgfSBmcm9tICcuL1RyZWVWaWV3RXhwYW5zaW9uQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdTZWxlY3Rpb25Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IHVzZVRyZWVJdGVtIH0gZnJvbSAnLi91c2VUcmVlSXRlbSc7XHJcbmltcG9ydCB7IHVzZVRyZWVWaWV3IH0gZnJvbSAnLi91c2VUcmVlVmlldyc7XHJcbmltcG9ydCB7IEludmVyc2VDb250ZXh0LCB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuY29uc3QgU3R5bGVkVHJlZVZpZXcgPSBzdHlsZWQudWwgYFxuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDEwMFxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbH07XG4gIHBvc2l0aW9uOiAke3Byb3BzID0+IChwcm9wcy5pc1ZpcnR1YWxpemVkID8gJ3JlbGF0aXZlJyA6ICdzdGF0aWMnKX07XG4gIHVsIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5gO1xyXG5jb25zdCBWaXJ0dWFsQ29udGFpbmVyID0gc3R5bGVkLmRpdiBgXG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xyXG5jb25zdCBWaXJ0dWFsSXRlbSA9IHN0eWxlZC5kaXYgYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy5oZWlnaHR9cHg7XG4gIHRyYW5zZm9ybTogJHtwcm9wcyA9PiBwcm9wcy50cmFuc2Zvcm19O1xuYDtcclxuZXhwb3J0IGNvbnN0IFRyZWVWaWV3ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBhcmlhTGFiZWwsIGFyaWFMYWJlbGxlZEJ5LCBjaGlsZHJlbiwgaXNJbnZlcnNlOiBpc0ludmVyc2VQcm9wLCBvbkV4cGFuZGVkQ2hhbmdlLCBvblNlbGVjdGVkSXRlbUNoYW5nZSwgc2VsZWN0YWJsZSwgdGVzdElkLCBhcGlSZWYsIGVuYWJsZVZpcnR1YWxpemF0aW9uID0gZmFsc2UsIGVzdGltYXRlU2l6ZSA9IDQwLCBvdmVyc2NhbiA9IDUsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoaXNJbnZlcnNlUHJvcCk7XHJcbiAgICBjb25zdCB7IHNlbGVjdGlvbkNvbnRleHRWYWx1ZSwgZXhwYW5zaW9uQ29udGV4dFZhbHVlLCBjb25maWdDb250ZXh0VmFsdWUgfSA9IHVzZVRyZWVWaWV3KHByb3BzKTtcclxuICAgIHVzZVRyZWVJdGVtKHsgbGFiZWw6IGFyaWFMYWJlbCwgaXRlbUlkOiAnJyB9LCByZWYpO1xyXG4gICAgY29uc3QgaW52ZXJzZUNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHsgaXNJbnZlcnNlIH0pLCBbaXNJbnZlcnNlXSk7XHJcbiAgICBjb25zdCBwYXJlbnRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XHJcbiAgICAvLyBGbGF0dGVuIHRyZWUgc3RydWN0dXJlIGZvciB2aXJ0dWFsaXphdGlvblxyXG4gICAgY29uc3QgZmxhdHRlbmVkSXRlbXMgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoIWVuYWJsZVZpcnR1YWxpemF0aW9uKVxyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgY29uc3QgaXRlbXMgPSBbXTtcclxuICAgICAgICBjb25zdCBmbGF0dGVuID0gKGNoaWxkcmVuVG9GbGF0dGVuLCBkZXB0aCA9IDAsIHBhcmVudEluZGV4ID0gMCkgPT4ge1xyXG4gICAgICAgICAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuVG9GbGF0dGVuLCAoY2hpbGQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSB8fCBjaGlsZC50eXBlICE9PSBUcmVlSXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1LZXkgPSBgdHJlZS1pdGVtLSR7ZGVwdGh9LSR7aW5kZXh9LSR7aXRlbXMubGVuZ3RofWA7XHJcbiAgICAgICAgICAgICAgICAvLyBDbG9uZSB0aGUgY2hpbGQgd2l0aG91dCBpdHMgY2hpbGRyZW4gdG8gcHJldmVudCBkb3VibGUgcmVuZGVyaW5nXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZFdpdGhvdXROZXN0ZWQgPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogbnVsbCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQ6IGNoaWxkV2l0aG91dE5lc3RlZCxcclxuICAgICAgICAgICAgICAgICAgICBkZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgICAgICAgICBrZXk6IGl0ZW1LZXksXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGl0ZW0gaGFzIGNoaWxkcmVuIGFuZCBpcyBleHBhbmRlZFxyXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUlkID0gY2hpbGQucHJvcHMuaXRlbUlkO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNFeHBhbmRlZCA9IGV4cGFuc2lvbkNvbnRleHRWYWx1ZS5leHBhbmRlZFNldD8uaGFzKGl0ZW1JZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNFeHBhbmRlZCAmJiBjaGlsZC5wcm9wcy5jaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGZsYXR0ZW4oY2hpbGQucHJvcHMuY2hpbGRyZW4sIGRlcHRoICsgMSwgaW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIGZsYXR0ZW4oY2hpbGRyZW4pO1xyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgIH0sIFtjaGlsZHJlbiwgZW5hYmxlVmlydHVhbGl6YXRpb24sIGV4cGFuc2lvbkNvbnRleHRWYWx1ZS5leHBhbmRlZFNldF0pO1xyXG4gICAgLy8gU2V0dXAgdmlydHVhbGl6ZXJcclxuICAgIGNvbnN0IHJvd1ZpcnR1YWxpemVyID0gdXNlVmlydHVhbCh7XHJcbiAgICAgICAgc2l6ZTogZmxhdHRlbmVkSXRlbXMubGVuZ3RoLFxyXG4gICAgICAgIHBhcmVudFJlZixcclxuICAgICAgICBlc3RpbWF0ZVNpemU6IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IGVzdGltYXRlU2l6ZSwgW2VzdGltYXRlU2l6ZV0pLFxyXG4gICAgICAgIG92ZXJzY2FuLFxyXG4gICAgfSk7XHJcbiAgICAvLyBQcm9jZXNzIGNoaWxkcmVuIHdpdGhvdXQgY2xvbmVFbGVtZW50IC0gdXNlIGNvbnRleHQgaW5zdGVhZFxyXG4gICAgY29uc3QgcHJvY2Vzc2VkQ2hpbGRyZW4gPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoZW5hYmxlVmlydHVhbGl6YXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIEhhbmRsZWQgYnkgdmlydHVhbGl6ZXIgYmVsb3dcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHRyZWVJdGVtSW5kZXggPSAwO1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcclxuICAgICAgICAgICAgaWYgKCFSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjaGlsZC50eXBlID09PSBUcmVlSXRlbSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdHJlZUl0ZW1JbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaGllcmFyY2h5VmFsdWUgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVwdGg6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGg6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgaXNUb3BMZXZlbDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBpbmRleDogY3VycmVudEluZGV4LFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vIFdyYXAgaW4gY29udGV4dCBwcm92aWRlciBpbnN0ZWFkIG9mIGNsb25pbmdcclxuICAgICAgICAgICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUhpZXJhcmNoeUNvbnRleHQuUHJvdmlkZXIsIHsga2V5OiBgdHJlZS1pdGVtLSR7Y3VycmVudEluZGV4fWAsIHZhbHVlOiBoaWVyYXJjaHlWYWx1ZSB9LCBjaGlsZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSwgW2NoaWxkcmVuLCBlbmFibGVWaXJ0dWFsaXphdGlvbl0pO1xyXG4gICAgY29uc3QgdmlydHVhbEl0ZW1zID0gZW5hYmxlVmlydHVhbGl6YXRpb25cclxuICAgICAgICA/IHJvd1ZpcnR1YWxpemVyLnZpcnR1YWxJdGVtc1xyXG4gICAgICAgIDogW107XHJcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW52ZXJzZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGludmVyc2VDb250ZXh0VmFsdWUgfSxcclxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVWaWV3U2VsZWN0aW9uQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc2VsZWN0aW9uQ29udGV4dFZhbHVlIH0sXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZVZpZXdFeHBhbnNpb25Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBleHBhbnNpb25Db250ZXh0VmFsdWUgfSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJlZVZpZXdDb25maWdDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBjb25maWdDb250ZXh0VmFsdWUgfSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZFRyZWVWaWV3LCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGFyaWFMYWJlbGxlZEJ5LCBcImFyaWEtbXVsdGlzZWxlY3RhYmxlXCI6IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBpc1ZpcnR1YWxpemVkOiBlbmFibGVWaXJ0dWFsaXphdGlvbiwgcmVmOiBtZXJnZWRSZWZzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG1lcmdlZFJlZnMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmLmN1cnJlbnQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZWRSZWZzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50UmVmLmN1cnJlbnQgPSBtZXJnZWRSZWZzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCByb2xlOiBcInRyZWVcIiwgdGhlbWU6IHRoZW1lLCBzdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzdC5zdHlsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihlbmFibGVWaXJ0dWFsaXphdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBoZWlnaHQ6ICc0MDBweCcsIG92ZXJmbG93OiAnYXV0bycgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IH0pLCBlbmFibGVWaXJ0dWFsaXphdGlvbiA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFZpcnR1YWxDb250YWluZXIsIHsgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYCR7cm93VmlydHVhbGl6ZXIudG90YWxTaXplfXB4YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSB9LCB2aXJ0dWFsSXRlbXMubWFwKHZpcnR1YWxJdGVtID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGZsYXR0ZW5lZEl0ZW1zW3ZpcnR1YWxJdGVtLmluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGllcmFyY2h5VmFsdWUgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogaXRlbS5kZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoOiBNYXRoLm1heCgwLCBpdGVtLmRlcHRoIC0gMSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1RvcExldmVsOiBpdGVtLmRlcHRoID09PSAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGl0ZW0uaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChWaXJ0dWFsSXRlbSwgeyBrZXk6IGl0ZW0ua2V5LCBoZWlnaHQ6IHZpcnR1YWxJdGVtLnNpemUsIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHt2aXJ0dWFsSXRlbS5zdGFydH1weClgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtSGllcmFyY2h5Q29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogaGllcmFyY2h5VmFsdWUgfSwgaXRlbS5jaGlsZCkpKTtcclxuICAgICAgICAgICAgICAgICAgICB9KSkpIDogKHByb2Nlc3NlZENoaWxkcmVuKSkpKSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVWaWV3LmpzLm1hcCJdfQ== */"));
|
|
24449
|
+
var TreeView = /*#__PURE__*/forwardRef(function (props, _ref) {
|
|
23589
24450
|
var ariaLabel = props.ariaLabel,
|
|
23590
24451
|
ariaLabelledBy = props.ariaLabelledBy,
|
|
23591
24452
|
children = props.children,
|
|
23592
24453
|
isInverseProp = props.isInverse,
|
|
23593
24454
|
selectable = props.selectable,
|
|
23594
24455
|
testId = props.testId,
|
|
24456
|
+
_props$enableVirtuali = props.enableVirtualization,
|
|
24457
|
+
enableVirtualization = _props$enableVirtuali === void 0 ? false : _props$enableVirtuali,
|
|
24458
|
+
_props$estimateSize = props.estimateSize,
|
|
24459
|
+
estimateSize = _props$estimateSize === void 0 ? 40 : _props$estimateSize,
|
|
24460
|
+
_props$overscan = props.overscan,
|
|
24461
|
+
overscan = _props$overscan === void 0 ? 5 : _props$overscan,
|
|
23595
24462
|
rest = _objectWithoutPropertiesLoose(props, _excluded$1M);
|
|
23596
24463
|
var theme = useContext(ThemeContext);
|
|
23597
24464
|
var isInverse = useIsInverse(isInverseProp);
|
|
23598
24465
|
var _useTreeView = useTreeView(props),
|
|
23599
|
-
|
|
24466
|
+
selectionContextValue = _useTreeView.selectionContextValue,
|
|
24467
|
+
expansionContextValue = _useTreeView.expansionContextValue,
|
|
24468
|
+
configContextValue = _useTreeView.configContextValue;
|
|
23600
24469
|
useTreeItem({
|
|
23601
24470
|
label: ariaLabel,
|
|
23602
24471
|
itemId: ''
|
|
23603
|
-
},
|
|
23604
|
-
var treeItemIndex = 0;
|
|
24472
|
+
}, _ref);
|
|
23605
24473
|
var inverseContextValue = useMemo(function () {
|
|
23606
24474
|
return {
|
|
23607
24475
|
isInverse: isInverse
|
|
23608
24476
|
};
|
|
23609
24477
|
}, [isInverse]);
|
|
23610
|
-
var
|
|
23611
|
-
|
|
23612
|
-
|
|
23613
|
-
|
|
23614
|
-
|
|
23615
|
-
|
|
23616
|
-
|
|
23617
|
-
|
|
23618
|
-
|
|
23619
|
-
|
|
23620
|
-
|
|
23621
|
-
|
|
23622
|
-
|
|
23623
|
-
|
|
23624
|
-
|
|
23625
|
-
|
|
23626
|
-
|
|
23627
|
-
|
|
23628
|
-
|
|
24478
|
+
var parentRef = useRef(null);
|
|
24479
|
+
// Flatten tree structure for virtualization
|
|
24480
|
+
var flattenedItems = useMemo(function () {
|
|
24481
|
+
if (!enableVirtualization) return [];
|
|
24482
|
+
var items = [];
|
|
24483
|
+
var _flatten = function flatten(childrenToFlatten, depth, parentIndex) {
|
|
24484
|
+
if (depth === void 0) {
|
|
24485
|
+
depth = 0;
|
|
24486
|
+
}
|
|
24487
|
+
Children.forEach(childrenToFlatten, function (child, index) {
|
|
24488
|
+
var _expansionContextValu;
|
|
24489
|
+
if (!isValidElement(child) || child.type !== TreeItem) {
|
|
24490
|
+
return;
|
|
24491
|
+
}
|
|
24492
|
+
var itemKey = "tree-item-" + depth + "-" + index + "-" + items.length;
|
|
24493
|
+
// Clone the child without its children to prevent double rendering
|
|
24494
|
+
var childWithoutNested = cloneElement(child, _extends({}, child.props, {
|
|
24495
|
+
children: null
|
|
24496
|
+
}));
|
|
24497
|
+
items.push({
|
|
24498
|
+
child: childWithoutNested,
|
|
24499
|
+
depth: depth,
|
|
24500
|
+
index: index,
|
|
24501
|
+
key: itemKey
|
|
24502
|
+
});
|
|
24503
|
+
// Check if item has children and is expanded
|
|
24504
|
+
var itemId = child.props.itemId;
|
|
24505
|
+
var isExpanded = (_expansionContextValu = expansionContextValue.expandedSet) == null ? void 0 : _expansionContextValu.has(itemId);
|
|
24506
|
+
if (isExpanded && child.props.children) {
|
|
24507
|
+
_flatten(child.props.children, depth + 1);
|
|
24508
|
+
}
|
|
24509
|
+
});
|
|
24510
|
+
};
|
|
24511
|
+
_flatten(children);
|
|
24512
|
+
return items;
|
|
24513
|
+
}, [children, enableVirtualization, expansionContextValue.expandedSet]);
|
|
24514
|
+
// Setup virtualizer
|
|
24515
|
+
var rowVirtualizer = useVirtual({
|
|
24516
|
+
size: flattenedItems.length,
|
|
24517
|
+
parentRef: parentRef,
|
|
24518
|
+
estimateSize: useCallback(function () {
|
|
24519
|
+
return estimateSize;
|
|
24520
|
+
}, [estimateSize]),
|
|
24521
|
+
overscan: overscan
|
|
23629
24522
|
});
|
|
24523
|
+
// Process children without cloneElement - use context instead
|
|
24524
|
+
var processedChildren = useMemo(function () {
|
|
24525
|
+
if (enableVirtualization) {
|
|
24526
|
+
return null; // Handled by virtualizer below
|
|
24527
|
+
}
|
|
24528
|
+
var treeItemIndex = 0;
|
|
24529
|
+
return Children.map(children, function (child) {
|
|
24530
|
+
if (!isValidElement(child)) {
|
|
24531
|
+
return null;
|
|
24532
|
+
}
|
|
24533
|
+
if (child.type === TreeItem) {
|
|
24534
|
+
var currentIndex = treeItemIndex++;
|
|
24535
|
+
var hierarchyValue = {
|
|
24536
|
+
depth: 0,
|
|
24537
|
+
parentDepth: 0,
|
|
24538
|
+
isTopLevel: true,
|
|
24539
|
+
index: currentIndex
|
|
24540
|
+
};
|
|
24541
|
+
// Wrap in context provider instead of cloning
|
|
24542
|
+
return createElement(TreeItemHierarchyContext.Provider, {
|
|
24543
|
+
key: "tree-item-" + currentIndex,
|
|
24544
|
+
value: hierarchyValue
|
|
24545
|
+
}, child);
|
|
24546
|
+
}
|
|
24547
|
+
return null;
|
|
24548
|
+
});
|
|
24549
|
+
}, [children, enableVirtualization]);
|
|
24550
|
+
var virtualItems = enableVirtualization ? rowVirtualizer.virtualItems : [];
|
|
23630
24551
|
return createElement(InverseContext.Provider, {
|
|
23631
24552
|
value: inverseContextValue
|
|
23632
|
-
}, createElement(
|
|
23633
|
-
value:
|
|
24553
|
+
}, createElement(TreeViewSelectionContext.Provider, {
|
|
24554
|
+
value: selectionContextValue
|
|
24555
|
+
}, createElement(TreeViewExpansionContext.Provider, {
|
|
24556
|
+
value: expansionContextValue
|
|
24557
|
+
}, createElement(TreeViewConfigContext.Provider, {
|
|
24558
|
+
value: configContextValue
|
|
23634
24559
|
}, createElement(StyledTreeView, Object.assign({}, rest, {
|
|
23635
24560
|
"aria-label": ariaLabel,
|
|
23636
24561
|
"aria-labelledby": ariaLabelledBy,
|
|
23637
24562
|
"aria-multiselectable": selectable === TreeViewSelectable.multi,
|
|
23638
24563
|
"data-testid": testId,
|
|
23639
24564
|
isInverse: isInverse,
|
|
23640
|
-
|
|
24565
|
+
isVirtualized: enableVirtualization,
|
|
24566
|
+
ref: function ref(mergedRefs) {
|
|
24567
|
+
if (typeof _ref === 'function') {
|
|
24568
|
+
_ref(mergedRefs);
|
|
24569
|
+
} else if (_ref) {
|
|
24570
|
+
_ref.current = mergedRefs;
|
|
24571
|
+
}
|
|
24572
|
+
parentRef.current = mergedRefs;
|
|
24573
|
+
},
|
|
23641
24574
|
role: "tree",
|
|
23642
|
-
theme: theme
|
|
23643
|
-
|
|
24575
|
+
theme: theme,
|
|
24576
|
+
style: _extends({}, rest.style, enableVirtualization ? {
|
|
24577
|
+
height: '400px',
|
|
24578
|
+
overflow: 'auto'
|
|
24579
|
+
} : {})
|
|
24580
|
+
}), enableVirtualization ? createElement(VirtualContainer, {
|
|
24581
|
+
style: {
|
|
24582
|
+
height: rowVirtualizer.totalSize + "px"
|
|
24583
|
+
}
|
|
24584
|
+
}, virtualItems.map(function (virtualItem) {
|
|
24585
|
+
var item = flattenedItems[virtualItem.index];
|
|
24586
|
+
var hierarchyValue = {
|
|
24587
|
+
depth: item.depth,
|
|
24588
|
+
parentDepth: Math.max(0, item.depth - 1),
|
|
24589
|
+
isTopLevel: item.depth === 0,
|
|
24590
|
+
index: item.index
|
|
24591
|
+
};
|
|
24592
|
+
return createElement(VirtualItem, {
|
|
24593
|
+
key: item.key,
|
|
24594
|
+
height: virtualItem.size,
|
|
24595
|
+
transform: "translateY(" + virtualItem.start + "px)"
|
|
24596
|
+
}, createElement(TreeItemHierarchyContext.Provider, {
|
|
24597
|
+
value: hierarchyValue
|
|
24598
|
+
}, item.child));
|
|
24599
|
+
})) : processedChildren)))));
|
|
23644
24600
|
});
|
|
23645
24601
|
|
|
23646
24602
|
var _excluded$1N = ["children", "enforced", "exclusive", "id", "isInverse", "noSpace", "onChange", "size", "value", "testId"];
|
|
@@ -23850,5 +24806,5 @@ var ToggleButton = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
23850
24806
|
}), createElement(Fragment, null, children)) : createElement(StyledToggleButtonText, Object.assign({}, sharedToggleButtonProps), children));
|
|
23851
24807
|
});
|
|
23852
24808
|
|
|
23853
|
-
export { AIButton, AIButtonShape, AIButtonSize, AIButtonTextTransform, AIButtonType, AIButtonVariant, Accordion, AccordionButton, AccordionContext, AccordionIconPosition, AccordionItem, AccordionItemContext, AccordionPanel, Alert, AlertVariant, Announce, AppBar, AppBarPosition, Badge, BadgeColor, BadgeVariant, Banner, BlockQuote, BlockQuoteItem, Breadcrumb, BreadcrumbItem, Breakpoint, BreakpointScreenSize, BreakpointsContainer, Button, ButtonColor, ButtonGroup, ButtonGroupAlignment, ButtonGroupContext, ButtonGroupOrientation, ButtonIconPosition, ButtonShape, ButtonSize, ButtonTextTransform, ButtonType, ButtonVariant, Card, CardAlignment, CardBody, CardCalloutType, CardHeading, CharacterCounter, Checkbox, CheckboxTextPosition, Combobox, ComboboxStateChangeTypes, Container$1 as Container, CustomTab, Datagrid, DatePicker, DateTimePicker, DefinitionList, DefinitionListItem, DefinitionListType, Drawer, DrawerPosition, Dropdown, DropdownAlignment, DropdownButton, DropdownContent, DropdownDivider, DropdownDropDirection, DropdownExpandableMenuButton, DropdownExpandableMenuGroup, DropdownExpandableMenuItem, DropdownExpandableMenuListItem, DropdownExpandableMenuPanel, DropdownHeader, DropdownMenuGroup, DropdownMenuItem, DropdownMenuNavItem, DropdownSplitButton, EnumTooltipPosition, Flex, FlexAlignContent, FlexAlignItems, FlexBehavior, FlexDirection, FlexJustify, FlexWrap, Form, FormFieldContainer, FormGroup, GlobalStyles, Grid, GridAlignContent, GridAlignItems, GridAutoFlow, GridDisplay, GridItem, GridItemAlignSelf, GridItemJustifySelf, GridJustifyContent, GridJustifyItems, Heading, HideAtBreakpoint, HideAtBreakpointDisplayType, Hyperlink, HyperlinkIconPosition, I18nContext, IconAlignment, IconButton, IconSizes, IndeterminateCheckbox, IndeterminateCheckboxStatus, Input, InputBase, InputIconPosition, InputMessage, InputSize, InputType, InverseContext, Label, LabelPosition, List$1 as List, ListItem, LoadingIndicator, LoadingIndicatorType, Modal, ModalSize, MultipleSelectionStateChangeTypes, NativeSelect, NavTab, NavTabs, PageButtonSize, Pagination, PaginationType, Paragraph, PasswordInput, Popover, PopoverAlignment, PopoverContent, PopoverFooter, PopoverHeader, PopoverPosition, PopoverTrigger, ProgressBar, ProgressBarColor, ProgressRing, Radio, RadioGroup, RadioTextPosition, ResponsiveStepperContainer, Search, Select$1 as Select, SelectStateChangeTypes, SkipLink, SkipLinkContent, Spacer, SpacerAxis, Spinner, Step, Stepper, StepperLayout, StepperOrientation, StyledTooltip, Tab, TabPanel, TabPanelsContainer, TabScrollSpyPanel, Table, TableBody, TableCell, TableCellAlign, TableContext, TableDensity, TableHead, TableHeaderCell, TableHeaderCellScope, TablePagination, TableRow, TableRowColor, TableSortDirection, Tabs, TabsAlignment, TabsBorderPosition, TabsContainer, TabsIconPosition, TabsOrientation, TabsScrollSpyContainer, TabsTextTransform, Tag, TagColor, TagSize, Textarea, ThemeContext, TimePicker, Toast, ToastsContainer, Toggle, ToggleButton, ToggleButtonGroup, ToggleButtonGroupContext, ToggleButtonStyles, ToggleTextPosition, Tooltip, TooltipArrow, TooltipPosition, Transition, TreeItem, TreeNodeType, TreeView, TreeViewSelectable, TypographyColor, TypographyContextVariant, TypographyVisualStyle, VisuallyHidden, blockQuoteStyles, calculateOffset, checkedStatusToBoolean, defaultI18n, filterNullEntries,
|
|
24809
|
+
export { AIButton, AIButtonShape, AIButtonSize, AIButtonTextTransform, AIButtonType, AIButtonVariant, Accordion, AccordionButton, AccordionContext, AccordionIconPosition, AccordionItem, AccordionItemContext, AccordionPanel, Alert, AlertVariant, Announce, AppBar, AppBarPosition, Badge, BadgeColor, BadgeVariant, Banner, BlockQuote, BlockQuoteItem, Breadcrumb, BreadcrumbItem, Breakpoint, BreakpointScreenSize, BreakpointsContainer, Button, ButtonColor, ButtonGroup, ButtonGroupAlignment, ButtonGroupContext, ButtonGroupOrientation, ButtonIconPosition, ButtonShape, ButtonSize, ButtonTextTransform, ButtonType, ButtonVariant, Card, CardAlignment, CardBody, CardCalloutType, CardHeading, CharacterCounter, Checkbox, CheckboxTextPosition, Combobox, ComboboxStateChangeTypes, Container$1 as Container, CustomTab, Datagrid, DatePicker, DateTimePicker, DefinitionList, DefinitionListItem, DefinitionListType, Drawer, DrawerPosition, Dropdown, DropdownAlignment, DropdownButton, DropdownContent, DropdownDivider, DropdownDropDirection, DropdownExpandableMenuButton, DropdownExpandableMenuGroup, DropdownExpandableMenuItem, DropdownExpandableMenuListItem, DropdownExpandableMenuPanel, DropdownHeader, DropdownMenuGroup, DropdownMenuItem, DropdownMenuNavItem, DropdownSplitButton, EnumTooltipPosition, Flex, FlexAlignContent, FlexAlignItems, FlexBehavior, FlexDirection, FlexJustify, FlexWrap, Form, FormFieldContainer, FormGroup, GlobalStyles, Grid, GridAlignContent, GridAlignItems, GridAutoFlow, GridDisplay, GridItem, GridItemAlignSelf, GridItemJustifySelf, GridJustifyContent, GridJustifyItems, Heading, HideAtBreakpoint, HideAtBreakpointDisplayType, Hyperlink, HyperlinkIconPosition, I18nContext, IconAlignment, IconButton, IconSizes, IndeterminateCheckbox, IndeterminateCheckboxStatus, Input, InputBase, InputIconPosition, InputMessage, InputSize, InputType, InverseContext, Label, LabelPosition, List$1 as List, ListItem, LoadingIndicator, LoadingIndicatorType, Modal, ModalSize, MultipleSelectionStateChangeTypes, NativeSelect, NavTab, NavTabs, PageButtonSize, Pagination, PaginationType, Paragraph, PasswordInput, Popover, PopoverAlignment, PopoverContent, PopoverFooter, PopoverHeader, PopoverPosition, PopoverTrigger, ProgressBar, ProgressBarColor, ProgressRing, Radio, RadioGroup, RadioTextPosition, ResponsiveStepperContainer, Search, Select$1 as Select, SelectStateChangeTypes, SkipLink, SkipLinkContent, Spacer, SpacerAxis, Spinner, Step, Stepper, StepperLayout, StepperOrientation, StyledTooltip, Tab, TabPanel, TabPanelsContainer, TabScrollSpyPanel, Table, TableBody, TableCell, TableCellAlign, TableContext, TableDensity, TableHead, TableHeaderCell, TableHeaderCellScope, TablePagination, TableRow, TableRowColor, TableSortDirection, Tabs, TabsAlignment, TabsBorderPosition, TabsContainer, TabsIconPosition, TabsOrientation, TabsScrollSpyContainer, TabsTextTransform, Tag, TagColor, TagSize, Textarea, ThemeContext, TimePicker, Toast, ToastsContainer, Toggle, ToggleButton, ToggleButtonGroup, ToggleButtonGroupContext, ToggleButtonStyles, ToggleTextPosition, Tooltip, TooltipArrow, TooltipPosition, Transition, TreeItem, TreeNodeType, TreeView, TreeViewConfigContext, TreeViewExpansionContext, TreeViewSelectable, TreeViewSelectionContext, TypographyColor, TypographyContextVariant, TypographyVisualStyle, VisuallyHidden, blockQuoteStyles, calculateOffset, checkedStatusToBoolean, defaultI18n, filterNullEntries, getChildrenIds, getChildrenItemIds, getChildrenItemIdsFlat, getDateFromString, getIconSizes, getInitialExpandedIds, getInitialItems, getListAlignment, getTreeItemLabelColor, getTreeItemWrapperCursor, inDateRange, isEqualArrays, isSelectedItemsChanged, magma, olListType, selectSingle, setBackgroundColor, setIconWidth, toggleAllMulti, toggleMulti, ulListType, useAccordion, useAccordionButton, useAccordionItem, useDataPagination, useDescendants, useDeviceDetect, useFocusLock, useForceUpdate, useGenerateId, useIsInverse, useMediaQuery, usePagination, useTreeItem, useTreeView };
|
|
23854
24810
|
//# sourceMappingURL=index.js.map
|