react-magma-dom 4.10.0-next.14 → 4.10.0-next.16
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/TreeViewContext.d.ts +5 -0
- package/dist/components/TreeView/useTreeItem.d.ts +27 -18
- package/dist/components/TreeView/useTreeView.d.ts +55 -39
- package/dist/esm/index.js +64 -26
- package/dist/esm/index.js.map +1 -1
- package/dist/properties.json +124 -3
- package/dist/react-magma-dom.cjs.development.js +64 -26
- 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 +1 -1
|
@@ -1317,7 +1317,7 @@ function buildPropsWithDefaultButtonStyles(props) {
|
|
|
1317
1317
|
function buildButtonBorderRadius(props) {
|
|
1318
1318
|
switch (props.shape) {
|
|
1319
1319
|
case 'round':
|
|
1320
|
-
return '100%';
|
|
1320
|
+
return props.iconOnly ? '100%' : '2rem';
|
|
1321
1321
|
case 'leftCap':
|
|
1322
1322
|
return props.theme.borderRadius + " 0 0 " + props.theme.borderRadius;
|
|
1323
1323
|
case 'rightCap':
|
|
@@ -16044,7 +16044,11 @@ var TreeViewContext = /*#__PURE__*/React.createContext({
|
|
|
16044
16044
|
return undefined;
|
|
16045
16045
|
},
|
|
16046
16046
|
isTopLevelSelectable: true,
|
|
16047
|
-
expandedSet: /*#__PURE__*/new Set()
|
|
16047
|
+
expandedSet: /*#__PURE__*/new Set(),
|
|
16048
|
+
expandIconStyles: {
|
|
16049
|
+
size: magma.iconSizes.medium,
|
|
16050
|
+
color: undefined
|
|
16051
|
+
}
|
|
16048
16052
|
});
|
|
16049
16053
|
|
|
16050
16054
|
(function (TreeNodeType) {
|
|
@@ -17000,7 +17004,7 @@ function useTreeItem(props, forwardedRef) {
|
|
|
17000
17004
|
};
|
|
17001
17005
|
}
|
|
17002
17006
|
|
|
17003
|
-
var _excluded$1I = ["additionalContent", "children", "icon", "index", "label", "labelStyle", "style", "testId", "topLevel"];
|
|
17007
|
+
var _excluded$1I = ["additionalContent", "children", "hoverColor", "icon", "index", "label", "labelStyle", "style", "testId", "topLevel", "treeItemStyles"];
|
|
17004
17008
|
var StyledTreeItem = /*#__PURE__*/_styled("li", {
|
|
17005
17009
|
target: "e1xiryew6",
|
|
17006
17010
|
label: "StyledTreeItem"
|
|
@@ -17025,10 +17029,25 @@ var StyledTreeItem = /*#__PURE__*/_styled("li", {
|
|
|
17025
17029
|
}, ";padding-right:", function (props) {
|
|
17026
17030
|
return props.theme.spaceScale.spacing02;
|
|
17027
17031
|
}, ";", function (props) {
|
|
17028
|
-
return props.selected && /*#__PURE__*/react.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;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzRFEiLCJmaWxlIjoiVHJlZUl0ZW0udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XHJcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IEFydGljbGVJY29uLCBDaGV2cm9uUmlnaHRJY29uLCBFeHBhbmRNb3JlSWNvbiwgRm9sZGVySWNvbiwgfSBmcm9tICdyZWFjdC1tYWdtYS1pY29ucyc7XHJcbmltcG9ydCB7IFRyZWVJdGVtQ29udGV4dCB9IGZyb20gJy4vVHJlZUl0ZW1Db250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb250ZXh0IH0gZnJvbSAnLi9UcmVlVmlld0NvbnRleHQnO1xyXG5pbXBvcnQgeyBUcmVlVmlld1NlbGVjdGFibGUgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgY2hlY2tlZFN0YXR1c1RvQm9vbGVhbiwgdXNlVHJlZUl0ZW0sIH0gZnJvbSAnLi91c2VUcmVlSXRlbSc7XHJcbmltcG9ydCB7IHVzZUlzSW52ZXJzZSB9IGZyb20gJy4uLy4uL2ludmVyc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbnRleHQgfSBmcm9tICcuLi8uLi90aGVtZS9UaGVtZUNvbnRleHQnO1xyXG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gJy4uL0NoZWNrYm94JztcclxuaW1wb3J0IHsgSW5kZXRlcm1pbmF0ZUNoZWNrYm94LCBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMsIH0gZnJvbSAnLi4vSW5kZXRlcm1pbmF0ZUNoZWNrYm94JztcclxuaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJy4uL1RyYW5zaXRpb24nO1xyXG5pbXBvcnQgeyBjYWxjdWxhdGVPZmZzZXQsIGdldFRyZWVJdGVtTGFiZWxDb2xvciwgZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yLCBUcmVlTm9kZVR5cGUsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IHVzZUZvY3VzTG9jayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUZvY3VzTG9jayc7XHJcbmltcG9ydCB7IG1lcmdlUmVmcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuY29uc3QgU3R5bGVkVHJlZUl0ZW0gPSBzdHlsZWQubGkgYFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWwxMDBcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw3MDB9O1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZVR5cGUsIHByb3BzLm5vZGVUeXBlKX07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcblxuICBwYWRkaW5nLWlubGluZS1zdGFydDogJHtwcm9wcyA9PiBjYWxjdWxhdGVPZmZzZXQocHJvcHMubm9kZVR5cGUsIHByb3BzLmRlcHRoKX07XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgICAgb3V0bGluZTogMnB4IHNvbGlkXG4gICAgICAgICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c0ludmVyc2VcclxuICAgIDogcHJvcHMudGhlbWUuY29sb3JzLmZvY3VzfTtcbiAgICB9XG4gIH1cblxuICA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmIHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjcsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiBwcm9wcy5zZWxlY3RlZCAmJlxyXG4gICAgICAgIHRyYW5zcGFyZW50aXplKDAuOTIsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKX07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCwgdHJ1ZSl9O1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCwgdHJ1ZSwgdHJ1ZSl9O1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcblxuICAgICR7cHJvcHMgPT4gcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgIGNzcyBgXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcy5pc0ludmVyc2VcclxuICAgICAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy50ZXJ0aWFyeTUwMFxyXG4gICAgICAgIDogcHJvcHMudGhlbWUuY29sb3JzLnByaW1hcnk1MDB9O1xuICAgICAgICAgIGJsb2NrLXNpemU6IDEwMCU7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgaW5saW5lLXNpemU6ICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDJ9O1xuICAgICAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiAwO1xuICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogMDtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gIXByb3BzLmlzRGlzYWJsZWRcclxuICAgID8gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyB0cmFuc3BhcmVudGl6ZSgwLjgsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgICAgIDogdHJhbnNwYXJlbnRpemUoMC45NSwgcHJvcHMudGhlbWUuY29sb3JzLm5ldXRyYWw5MDApXHJcbiAgICA6IHVuZGVmaW5lZH07XG4gICAgfVxuICB9XG5gO1xyXG5jb25zdCBJY29uV3JhcHBlciA9IHN0eWxlZC5zcGFuIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1MYWJlbENvbG9yKHByb3BzLmlzSW52ZXJzZSwgcHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMudGhlbWUpfTtcbiAgbWFyZ2luLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgc3ZnIHtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pY29uU2l6ZXMubWVkaXVtfXB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbmA7XHJcbmNvbnN0IFN0eWxlZExhYmVsV3JhcHBlciA9IHN0eWxlZC5zcGFuIGBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIHdpZHRoOiAxMDAlO1xuYDtcclxuY29uc3QgU3R5bGVkRXhwYW5kV3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA2fTtcbmA7XHJcbmNvbnN0IFN0eWxlZENoZWNrYm94V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdmbGV4JyA6ICdpbmxpbmUtZmxleCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gYGNhbGMoMTAwJSAtICR7cHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9KWB9O1xuYDtcclxuY29uc3QgU3R5bGVkSXRlbVdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cHJvcHMgPT4gKHByb3BzLmhhc0FkZGl0aW9uYWxDb250ZW50ID8gJ2NvbHVtbicgOiAncm93Jyl9O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgY3Vyc29yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtV3JhcHBlckN1cnNvcihwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy5zZWxlY3RhYmxlLCBwcm9wcy5ub2RlVHlwZSl9O1xuYDtcclxuY29uc3QgQWRkaXRpb25hbENvbnRlbnRXcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gIG1hcmdpbi1ib3R0b206ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDV9O1xuYDtcclxuZXhwb3J0IGNvbnN0IFRyZWVJdGVtID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xyXG4gICAgY29uc3QgeyBhZGRpdGlvbmFsQ29udGVudCwgY2hpbGRyZW4sIGljb24sIGluZGV4LCBsYWJlbCwgbGFiZWxTdHlsZSwgc3R5bGUsIHRlc3RJZCwgdG9wTGV2ZWwsIC4uLnJlc3QgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XHJcbiAgICBjb25zdCBpc0ludmVyc2UgPSB1c2VJc0ludmVyc2UoKTtcclxuICAgIGNvbnN0IHsgc2VsZWN0YWJsZSwgaGFzSWNvbnMsIGl0ZW1Ub0ZvY3VzLCBoYW5kbGVFeHBhbmRlZENoYW5nZSwgaXNUb3BMZXZlbFNlbGVjdGFibGUsIH0gPSBSZWFjdC51c2VDb250ZXh0KFRyZWVWaWV3Q29udGV4dCk7XHJcbiAgICBjb25zdCB7IGNvbnRleHRWYWx1ZSwgaGFuZGxlQ2xpY2ssIGhhbmRsZUtleURvd24gfSA9IHVzZVRyZWVJdGVtKHByb3BzLCBmb3J3YXJkZWRSZWYpO1xyXG4gICAgY29uc3QgeyBpc0Rpc2FibGVkIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCB7IGNoZWNrYm94Q2hhbmdlSGFuZGxlciwgY2hlY2tlZFN0YXR1cywgZXhwYW5kZWQsIGhhc093blRyZWVJdGVtcywgaXRlbURlcHRoLCBpdGVtSWQsIHBhcmVudERlcHRoLCByZWYsIHNlbGVjdGVkSXRlbXMsIH0gPSBjb250ZXh0VmFsdWU7XHJcbiAgICBjb25zdCBub2RlVHlwZSA9IGhhc093blRyZWVJdGVtcyA/IFRyZWVOb2RlVHlwZS5icmFuY2ggOiBUcmVlTm9kZVR5cGUubGVhZjtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGVcclxuICAgICAgICA/IHNlbGVjdGVkSXRlbXM/LlswXT8uaXRlbUlkID09PSBpdGVtSWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBhcmlhQ2hlY2tlZFZhbHVlID0gc2VsZWN0YWJsZSA9PT0gVHJlZVZpZXdTZWxlY3RhYmxlLm11bHRpXHJcbiAgICAgICAgPyBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuaW5kZXRlcm1pbmF0ZVxyXG4gICAgICAgICAgICA/ICdtaXhlZCdcclxuICAgICAgICAgICAgOiBjaGVja2VkU3RhdHVzID09PSBJbmRldGVybWluYXRlQ2hlY2tib3hTdGF0dXMuY2hlY2tlZFxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IFtpc0luc2lkZVRyZWVJdGVtLCBzZXRJc0luc2lkZVRyZWVJdGVtXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xyXG4gICAgY29uc3QgZm9jdXNUcmFwRWxlbWVudCA9IHVzZUZvY3VzTG9jayhpc0luc2lkZVRyZWVJdGVtKTtcclxuICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHMgPSAnYnV0dG9uLCBbcm9sZT1cImJ1dHRvblwiXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSc7XHJcbiAgICBjb25zdCBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzID0gKGNvbnRhaW5lciwgc2VsZWN0b3IpID0+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcikpLmZpbHRlcihlbCA9PiAhZWwuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpIHx8XHJcbiAgICAgICAgICAgIChlbC50YWJJbmRleCAhPT0gdW5kZWZpbmVkICYmIGVsLnRhYkluZGV4ID49IDApKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgbGFiZWwgYW5kIGFkZGl0aW9uYWwgY29udGVudCBvZiBhIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG5hdmlnYXRlIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgdXNpbmcgdGhlIGBUYWJgIGtleSwgYWN0aXZhdGUgdGhlbSB3aXRoIGBFbnRlcmAgb3IgYFNwYWNlYCxcclxuICAgICAqIGFuZCBleGl0IG91dHNpZGUgYW5kIGZvY3VzIHRoZSB3aG9sZSB0cmVlIGl0ZW0gd2l0aCBgRXNjYXBlYC5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3QgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24gPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0LCBzaGlmdEtleSB9ID0gZXZlbnQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0YXJnZXQ7XHJcbiAgICAgICAgY29uc3QgaXNFbnRlciA9IGtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NwYWNlID0ga2V5ID09PSAnICc7XHJcbiAgICAgICAgY29uc3QgaXNFc2NhcGUgPSBrZXkgPT09ICdFc2NhcGUnO1xyXG4gICAgICAgIGNvbnN0IGlzVGFiID0ga2V5ID09PSAnVGFiJztcclxuICAgICAgICBjb25zdCBpc0FjdGl2YXRpb25LZXkgPSBpc0VudGVyIHx8IGlzU3BhY2U7XHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50ID0gY3VycmVudEVsZW1lbnQuY2xvc2VzdChpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAvLyBJZiB0aGUga2V5IGlzIGBUYWJgLCB3ZSBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzVGFiICYmIGlzSW5zaWRlVHJlZUl0ZW0pIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXIgbGlzdCBvZiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBmb3IgY3VycmVudCB0cmVlIGl0ZW1cclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0LmZpbHRlcihlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbG9zZXN0VHJlZUl0ZW0gPSBlbC5jbG9zZXN0KCdbcm9sZT1cInRyZWVpdGVtXCJdJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2VzdFRyZWVJdGVtID09PSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gc2hpZnRLZXkgPyAtMSA6IDE7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyB0b3RhbCkgJSB0b3RhbDtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBjdXJyZW50VHJlZUl0ZW1JbnRlcmFjdGl2ZUVsZW1lbnRzW25leHRJbmRleF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50VG9Gb2N1cy5mb2N1cygpLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXNzaW5nIGBFbnRlcmAgb3IgYFNwYWNlYCBvbiBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50IHdpbGwgdHJpZ2dlciBpdHMgY2xpY2sgZXZlbnRcclxuICAgICAgICBpZiAoaXNBY3RpdmF0aW9uS2V5ICYmIGludGVyYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTW92ZXMgZm9jdXMgb3V0c2lkZSB0aGUgdHJlZSBpdGVtIGFuZCBmb2N1c2VzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmIHdoZW4gYEVzY2FwZWAgaXMgcHJlc3NlZFxyXG4gICAgICAgIGlmIChpc0VzY2FwZSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZWVJdGVtTm9kZSA9IHRyZWVJdGVtUmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGlmICh0cmVlSXRlbU5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRyZWVJdGVtTm9kZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlT25DbGljayA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGFbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbcm9sZT1cIm1lbnVpdGVtXCJdJyk7XHJcbiAgICAgICAgLy8gUHJldmVudGluZyBzZWxlY3RpbmcgdGhlIGl0ZW0gd2hlbiBjbGlja2luZyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aGVuIGBzZWxlY3RhYmxlYCBpcyBgc2luZ2xlYFxyXG4gICAgICAgIGlmIChpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5zaW5nbGUpIHtcclxuICAgICAgICAgICAgaGFuZGxlQ2xpY2soZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRlZmF1bHRJY29uID0gbm9kZVR5cGUgPT09IFRyZWVOb2RlVHlwZS5icmFuY2ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChGb2xkZXJJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSB9KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChBcnRpY2xlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpO1xyXG4gICAgY29uc3QgbGFiZWxUZXh0ID0gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkTGFiZWxXcmFwcGVyLCB7IHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHN0eWxlOiBsYWJlbFN0eWxlLCBpZDogYCR7aXRlbUlkfS1sYWJlbGAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tbGFiZWxgIH0sXHJcbiAgICAgICAgaGFzSWNvbnMgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIsIHsgaXNJbnZlcnNlOiBpc0ludmVyc2UsIHRoZW1lOiB0aGVtZSwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgXCJkYXRhLXRlc3RpZFwiOiBgJHt0ZXN0SWQgfHwgaXRlbUlkfS1pY29uYCB9LCBpY29uIHx8IGRlZmF1bHRJY29uKSksXHJcbiAgICAgICAgbGFiZWwpKTtcclxuICAgIGNvbnN0IHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQgPSBhZGRpdGlvbmFsQ29udGVudCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlkOiBgJHtpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCB9LCBhZGRpdGlvbmFsQ29udGVudCkpIDogbnVsbDtcclxuICAgIC8vIFByb3BzIHNoYXJlZCBieSBDaGVja2JveCBhbmQgSW5kZXRlcm1pbmF0ZUNoZWNrYm94XHJcbiAgICBjb25zdCBjaGVja2JveFByb3BzID0ge1xyXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxyXG4gICAgICAgIGhpZGVGb2N1czogdHJ1ZSxcclxuICAgICAgICBpZDogYCR7aXRlbUlkfS1jaGVja2JveGAsXHJcbiAgICAgICAgaW5wdXRTdHlsZTogeyBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDMgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFRleHQ6IGxhYmVsVGV4dCxcclxuICAgICAgICBvbkNoYW5nZTogY2hlY2tib3hDaGFuZ2VIYW5kbGVyLFxyXG4gICAgICAgIHRhYkluZGV4OiAtMSxcclxuICAgICAgICB0ZXN0SWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IG9uRXhwYW5kZWRDbGlja2VkID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBoYW5kbGVFeHBhbmRlZENoYW5nZShldmVudCwgaXRlbUlkKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB0YWJJbmRleCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtVG9Gb2N1cyA9PT0gaXRlbUlkID8gMCA6IC0xO1xyXG4gICAgfSwgW2lzRGlzYWJsZWQsIGl0ZW1Ub0ZvY3VzLCBpdGVtSWRdKTtcclxuICAgIGNvbnN0IHNob3VsZFNob3dDaGVja2JveCA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aSAmJlxyXG4gICAgICAgIChpc1RvcExldmVsU2VsZWN0YWJsZSAhPT0gZmFsc2UgfHwgIXRvcExldmVsKTtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24gd2l0aGluIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogUHJlc3NpbmcgYEN0cmwgKyBFbnRlcmAgb3IgYENvbW1hbmQgKyBFbnRlcmAgZm9jdXNlcyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudCB3aXRoaW4gdGhlIHRyZWUgaXRlbVxyXG4gICAgICogYW5kIGxvY2tzIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBmb2N1cyBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaXQgaGFuZGxlcyBrZXkgZXZlbnRzIGZvciBpbnRlcmFjdGlvbiBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBJdCBhbHNvIGhhbmRsZXMgdGhlIG90aGVyIGtleXMgdG8gdHJpZ2dlciB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIHRyZWUgaXRlbS5cclxuICAgICAqICoqL1xyXG4gICAgY29uc3Qgb25LZXlEb3duSGFuZGxlciA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsga2V5LCB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNDdHJsT3JDb21tYW5kID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybEVudGVyID0gaXNDdHJsT3JDb21tYW5kICYmIGlzRW50ZXI7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBDdHJsICsgRW50ZXIgb3IgQ29tbWFuZCArIEVudGVyLCBmb2N1cyB0aGUgZmlyc3QgaW50ZXJhY3RpdmUgZWxlbWVudFxyXG4gICAgICAgIC8vIGFuZCBsb2NrIGZvY3VzIGluc2lkZSB0aGUgdHJlZSBpdGVtXHJcbiAgICAgICAgaWYgKGlzQ3RybEVudGVyICYmIHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICBzZXRJc0luc2lkZVRyZWVJdGVtKHRydWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdCA9IGdldEludGVyYWN0aXZlRWxlbWVudHMoY3VycmVudFRhcmdldCwgaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gaW50ZXJhY3RpdmVFbGVtZW50c0xpc3RbMF07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50VG9Gb2N1cykge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gRW5zdXJlIHZhbGlkIENTUyBzZWxlY3RvcnMgYnkgZXNjYXBpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIChlLmcuLCBwZXJpb2RzIGluIGl0ZW1JZClcclxuICAgICAgICBjb25zdCBzYWZlSXRlbUlkID0gQ1NTLmVzY2FwZShpdGVtSWQpO1xyXG4gICAgICAgIGNvbnN0IGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50ID0gdGFyZ2V0LmNsb3Nlc3QoYCMke3NhZmVJdGVtSWR9LWxhYmVsLCAjJHtzYWZlSXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgKTtcclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHdpdGhpbiB0aGUgbGFiZWwgb3IgYWRkaXRpb25hbCBjb250ZW50LCBoYW5kbGUga2V5IGV2ZW50cyBmb3IgdGhvc2UgYXJlYXNcclxuICAgICAgICBpZiAoaXNXaXRoaW5MYWJlbE9yQWRkaXRpb25hbENvbnRlbnQpIHtcclxuICAgICAgICAgICAgaGFuZGxlTGFiZWxBbmRBZGRpdGlvbmFsQ29udGVudEtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgaXMgdGhlIHRyZWUgaXRlbSBpdHNlbGYsIGhhbmRsZSBrZXkgZG93biBmb3IgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgaGFuZGxlS2V5RG93bihldmVudCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KFRyZWVJdGVtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlIH0sXHJcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRUcmVlSXRlbSwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBcImFyaWEtZXhwYW5kZWRcIjogaGFzT3duVHJlZUl0ZW1zID8gZXhwYW5kZWQgOiBudWxsLCBcImFyaWEtc2VsZWN0ZWRcIjogc2VsZWN0ZWRJdGVtLCBcImFyaWEtY2hlY2tlZFwiOiBzaG91bGRTaG93Q2hlY2tib3ggPyBhcmlhQ2hlY2tlZFZhbHVlIDogbnVsbCwgXCJkYXRhLXRlc3RpZFwiOiB0ZXN0SWQsIGRlcHRoOiBpdGVtRGVwdGgsIGhhc093blRyZWVJdGVtczogaGFzT3duVHJlZUl0ZW1zLCBpZDogaXRlbUlkLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgbm9kZVR5cGU6IG5vZGVUeXBlLCByb2xlOiBcInRyZWVpdGVtXCIsIHNlbGVjdGFibGVUeXBlOiBzZWxlY3RhYmxlLCBzZWxlY3RlZDogc2VsZWN0ZWRJdGVtLCB0aGVtZTogdGhlbWUsIHRhYkluZGV4OiB0YWJJbmRleCwgb25LZXlEb3duOiBvbktleURvd25IYW5kbGVyLCByZWY6IHRyZWVJdGVtUmVmIH0pLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEl0ZW1XcmFwcGVyLCB7IFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkID8/IGl0ZW1JZH0taXRlbXdyYXBwZXJgLCBkZXB0aDogaXRlbURlcHRoLCBoYXNBZGRpdGlvbmFsQ29udGVudDogISFhZGRpdGlvbmFsQ29udGVudCwgaWQ6IGAke2l0ZW1JZH0taXRlbXdyYXBwZXJgLCBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgbm9kZVR5cGU6IG5vZGVUeXBlLCBzZWxlY3RhYmxlOiBzZWxlY3RhYmxlLCBzdHlsZTogc3R5bGUsIHRoZW1lOiB0aGVtZSwgcmVmOiBtZXJnZVJlZnMocmVmLCBmb2N1c1RyYXBFbGVtZW50KSwgb25DbGljazogaGFuZGxlT25DbGljayB9LFxyXG4gICAgICAgICAgICAgICAgaGFzT3duVHJlZUl0ZW1zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZEV4cGFuZFdyYXBwZXIsIHsgXCJhcmlhLWhpZGRlblwiOiBCb29sZWFuKCFleHBhbmRlZCksIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0tZXhwYW5kYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG9uQ2xpY2s6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkV4cGFuZGVkQ2xpY2tlZChldmVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCB0aGVtZTogdGhlbWUgfSwgZXhwYW5kZWQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChFeHBhbmRNb3JlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2hldnJvblJpZ2h0SWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpKSksXHJcbiAgICAgICAgICAgICAgICBzaG91bGRTaG93Q2hlY2tib3ggPyAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRDaGVja2JveFdyYXBwZXIsIHsgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIHRoZW1lOiB0aGVtZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyA/IChSZWFjdC5jcmVhdGVFbGVtZW50KEluZGV0ZXJtaW5hdGVDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBzdGF0dXM6IGNoZWNrZWRTdGF0dXMgfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBPYmplY3QuYXNzaWduKHt9LCBjaGVja2JveFByb3BzLCB7IGNoZWNrZWQ6IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4oY2hlY2tlZFN0YXR1cykgfSkpKSxcclxuICAgICAgICAgICAgICAgICAgICB0cmVlSXRlbUFkZGl0aW9uYWxDb250ZW50KSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbFRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpKSxcclxuICAgICAgICAgICAgUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGQ/LnR5cGUgPT09IFRyZWVJdGVtID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJhbnNpdGlvbiwgeyBpc09wZW46IGV4cGFuZGVkLCB1bm1vdW50T25FeGl0OiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHsgcm9sZTogXCJncm91cFwiIH0sIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBjaGlsZC5wcm9wcy5pdGVtSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1EZXB0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGVwdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcExldmVsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICB9KSkpKSA6IChjaGlsZCk7XHJcbiAgICAgICAgICAgIH0pKSkpO1xyXG59KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VHJlZUl0ZW0uanMubWFwIl19 */"));
|
|
17032
|
+
return props.selected && /*#__PURE__*/react.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;" + ( "/*# 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== */"));
|
|
17029
17033
|
}, " &:hover{background:", function (props) {
|
|
17030
|
-
return
|
|
17031
|
-
}, ";}}" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQmlDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+ICFwcm9wcy5pc0Rpc2FibGVkXHJcbiAgICA/IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuOTUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiB1bmRlZmluZWR9O1xuICAgIH1cbiAgfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG5gO1xyXG5jb25zdCBTdHlsZWRDaGVja2JveFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMuaGFzQWRkaXRpb25hbENvbnRlbnQgPyAnZmxleCcgOiAnaW5saW5lLWZsZXgnKX07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAke3Byb3BzID0+IGBjYWxjKDEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfTtcbmA7XHJcbmNvbnN0IFN0eWxlZEl0ZW1XcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdjb2x1bW4nIDogJ3JvdycpfTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZSwgcHJvcHMubm9kZVR5cGUpfTtcbmA7XHJcbmNvbnN0IEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA1fTtcbmA7XHJcbmV4cG9ydCBjb25zdCBUcmVlSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBpY29uLCBpbmRleCwgbGFiZWwsIGxhYmVsU3R5bGUsIHN0eWxlLCB0ZXN0SWQsIHRvcExldmVsLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdXNlSXNJbnZlcnNlKCk7XHJcbiAgICBjb25zdCB7IHNlbGVjdGFibGUsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCB9ID0gUmVhY3QudXNlQ29udGV4dChUcmVlVmlld0NvbnRleHQpO1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wcywgZm9yd2FyZGVkUmVmKTtcclxuICAgIGNvbnN0IHsgaXNEaXNhYmxlZCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3QgeyBjaGVja2JveENoYW5nZUhhbmRsZXIsIGNoZWNrZWRTdGF0dXMsIGV4cGFuZGVkLCBoYXNPd25UcmVlSXRlbXMsIGl0ZW1EZXB0aCwgaXRlbUlkLCBwYXJlbnREZXB0aCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiB3aXRoaW4gdGhlIGxhYmVsIGFuZCBhZGRpdGlvbmFsIGNvbnRlbnQgb2YgYSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIHVzaW5nIHRoZSBgVGFiYCBrZXksIGFjdGl2YXRlIHRoZW0gd2l0aCBgRW50ZXJgIG9yIGBTcGFjZWAsXHJcbiAgICAgKiBhbmQgZXhpdCBvdXRzaWRlIGFuZCBmb2N1cyB0aGUgd2hvbGUgdHJlZSBpdGVtIHdpdGggYEVzY2FwZWAuXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBrZXksIHRhcmdldCwgY3VycmVudFRhcmdldCwgc2hpZnRLZXkgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNTcGFjZSA9IGtleSA9PT0gJyAnO1xyXG4gICAgICAgIGNvbnN0IGlzRXNjYXBlID0ga2V5ID09PSAnRXNjYXBlJztcclxuICAgICAgICBjb25zdCBpc1RhYiA9IGtleSA9PT0gJ1RhYic7XHJcbiAgICAgICAgY29uc3QgaXNBY3RpdmF0aW9uS2V5ID0gaXNFbnRlciB8fCBpc1NwYWNlO1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBgVGFiYCwgd2UgbmF2aWdhdGUgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc1RhYiAmJiBpc0luc2lkZVRyZWVJdGVtKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHNMaXN0ID0gZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyhjdXJyZW50VGFyZ2V0LCBpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAgICAgLy8gRmlsdGVyIGxpc3Qgb2YgaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hpY2ggYXJlIG9ubHkgaW5jbHVkZWQgZm9yIGN1cnJlbnQgdHJlZSBpdGVtXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMgPSBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdC5maWx0ZXIoZWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvc2VzdFRyZWVJdGVtID0gZWwuY2xvc2VzdCgnW3JvbGU9XCJ0cmVlaXRlbVwiXScpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RUcmVlSXRlbSA9PT0gdHJlZUl0ZW1SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMuaW5kZXhPZihjdXJyZW50RWxlbWVudCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xyXG4gICAgICAgICAgICBjb25zdCB0b3RhbCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgZGlyZWN0aW9uICsgdG90YWwpICUgdG90YWw7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50c1tuZXh0SW5kZXhdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudFRvRm9jdXMuZm9jdXMoKSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQcmVzc2luZyBgRW50ZXJgIG9yIGBTcGFjZWAgb24gYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB3aWxsIHRyaWdnZXIgaXRzIGNsaWNrIGV2ZW50XHJcbiAgICAgICAgaWYgKGlzQWN0aXZhdGlvbktleSAmJiBpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgaW50ZXJhY3RpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1vdmVzIGZvY3VzIG91dHNpZGUgdGhlIHRyZWUgaXRlbSBhbmQgZm9jdXNlcyB0aGUgdHJlZSBpdGVtIGl0c2VsZiB3aGVuIGBFc2NhcGVgIGlzIHByZXNzZWRcclxuICAgICAgICBpZiAoaXNFc2NhcGUpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldElzSW5zaWRlVHJlZUl0ZW0oZmFsc2UpO1xyXG4gICAgICAgICAgICBjb25zdCB0cmVlSXRlbU5vZGUgPSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICBpZiAodHJlZUl0ZW1Ob2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0cmVlSXRlbU5vZGUuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KCdidXR0b24sIFtyb2xlPVwiYnV0dG9uXCJdLCBhW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3JvbGU9XCJtZW51aXRlbVwiXScpO1xyXG4gICAgICAgIC8vIFByZXZlbnRpbmcgc2VsZWN0aW5nIHRoZSBpdGVtIHdoZW4gY2xpY2tpbmcgb24gaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hlbiBgc2VsZWN0YWJsZWAgaXMgYHNpbmdsZWBcclxuICAgICAgICBpZiAoaW50ZXJhY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUNsaWNrKGV2ZW50LCBpdGVtSWQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBkZWZhdWx0SWNvbiA9IG5vZGVUeXBlID09PSBUcmVlTm9kZVR5cGUuYnJhbmNoID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9sZGVySWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXJ0aWNsZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKTtcclxuICAgIGNvbnN0IGxhYmVsVGV4dCA9IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZExhYmVsV3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBzdHlsZTogbGFiZWxTdHlsZSwgaWQ6IGAke2l0ZW1JZH0tbGFiZWxgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWxhYmVsYCB9LFxyXG4gICAgICAgIGhhc0ljb25zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IGlzSW52ZXJzZTogaXNJbnZlcnNlLCB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0taWNvbmAgfSwgaWNvbiB8fCBkZWZhdWx0SWNvbikpLFxyXG4gICAgICAgIGxhYmVsKSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbUFkZGl0aW9uYWxDb250ZW50ID0gYWRkaXRpb25hbENvbnRlbnQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIsIHsgdGhlbWU6IHRoZW1lLCBpZDogYCR7aXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAgfSwgYWRkaXRpb25hbENvbnRlbnQpKSA6IG51bGw7XHJcbiAgICAvLyBQcm9wcyBzaGFyZWQgYnkgQ2hlY2tib3ggYW5kIEluZGV0ZXJtaW5hdGVDaGVja2JveFxyXG4gICAgY29uc3QgY2hlY2tib3hQcm9wcyA9IHtcclxuICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcclxuICAgICAgICBoaWRlRm9jdXM6IHRydWUsXHJcbiAgICAgICAgaWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgICAgIGlucHV0U3R5bGU6IHsgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxUZXh0OiBsYWJlbFRleHQsXHJcbiAgICAgICAgb25DaGFuZ2U6IGNoZWNrYm94Q2hhbmdlSGFuZGxlcixcclxuICAgICAgICB0YWJJbmRleDogLTEsXHJcbiAgICAgICAgdGVzdElkOiBgJHtpdGVtSWR9LWNoZWNrYm94YCxcclxuICAgIH07XHJcbiAgICBjb25zdCBvbkV4cGFuZGVkQ2xpY2tlZCA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaGFuZGxlRXhwYW5kZWRDaGFuZ2UoZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdGFiSW5kZXggPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbVRvRm9jdXMgPT09IGl0ZW1JZCA/IDAgOiAtMTtcclxuICAgIH0sIFtpc0Rpc2FibGVkLCBpdGVtVG9Gb2N1cywgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBzaG91bGRTaG93Q2hlY2tib3ggPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUubXVsdGkgJiZcclxuICAgICAgICAoaXNUb3BMZXZlbFNlbGVjdGFibGUgIT09IGZhbHNlIHx8ICF0b3BMZXZlbCk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIFByZXNzaW5nIGBDdHJsICsgRW50ZXJgIG9yIGBDb21tYW5kICsgRW50ZXJgIGZvY3VzZXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnQgd2l0aGluIHRoZSB0cmVlIGl0ZW1cclxuICAgICAqIGFuZCBsb2NrcyBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgZm9jdXMgaXMgd2l0aGluIHRoZSBsYWJlbCBvciBhZGRpdGlvbmFsIGNvbnRlbnQsIGl0IGhhbmRsZXMga2V5IGV2ZW50cyBmb3IgaW50ZXJhY3Rpb24gZWxlbWVudHMuXHJcbiAgICAgKlxyXG4gICAgICogSXQgYWxzbyBoYW5kbGVzIHRoZSBvdGhlciBrZXlzIHRvIHRyaWdnZXIgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IG9uS2V5RG93bkhhbmRsZXIgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0IH0gPSBldmVudDtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0ga2V5ID09PSAnRW50ZXInO1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybE9yQ29tbWFuZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTtcclxuICAgICAgICBjb25zdCBpc0N0cmxFbnRlciA9IGlzQ3RybE9yQ29tbWFuZCAmJiBpc0VudGVyO1xyXG4gICAgICAgIC8vIElmIHRoZSBrZXkgaXMgQ3RybCArIEVudGVyIG9yIENvbW1hbmQgKyBFbnRlciwgZm9jdXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnRcclxuICAgICAgICAvLyBhbmQgbG9jayBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc0N0cmxFbnRlciAmJiB0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbSh0cnVlKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0WzBdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEVuc3VyZSB2YWxpZCBDU1Mgc2VsZWN0b3JzIGJ5IGVzY2FwaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAoZS5nLiwgcGVyaW9kcyBpbiBpdGVtSWQpXHJcbiAgICAgICAgY29uc3Qgc2FmZUl0ZW1JZCA9IENTUy5lc2NhcGUoaXRlbUlkKTtcclxuICAgICAgICBjb25zdCBpc1dpdGhpbkxhYmVsT3JBZGRpdGlvbmFsQ29udGVudCA9IHRhcmdldC5jbG9zZXN0KGAjJHtzYWZlSXRlbUlkfS1sYWJlbCwgIyR7c2FmZUl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCk7XHJcbiAgICAgICAgLy8gSWYgdGhlIHRhcmdldCBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaGFuZGxlIGtleSBldmVudHMgZm9yIHRob3NlIGFyZWFzXHJcbiAgICAgICAgaWYgKGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duKGV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmLCBoYW5kbGUga2V5IGRvd24gZm9yIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJdGVtV3JhcHBlciwgeyBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWl0ZW13cmFwcGVyYCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIGlkOiBgJHtpdGVtSWR9LWl0ZW13cmFwcGVyYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgc2VsZWN0YWJsZTogc2VsZWN0YWJsZSwgc3R5bGU6IHN0eWxlLCB0aGVtZTogdGhlbWUsIHJlZjogbWVyZ2VSZWZzKHJlZiwgZm9jdXNUcmFwRWxlbWVudCksIG9uQ2xpY2s6IGhhbmRsZU9uQ2xpY2sgfSxcclxuICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWV4cGFuZGAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FeHBhbmRlZENsaWNrZWQoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgc2hvdWxkU2hvd0NoZWNrYm94ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2hlY2tib3hXcmFwcGVyLCB7IGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCB0aGVtZTogdGhlbWUgfSxcclxuICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkPy50eXBlID09PSBUcmVlSXRlbSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7IHJvbGU6IFwiZ3JvdXBcIiB9LCBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2hpbGQucHJvcHMuaXRlbUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtRGVwdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpKSkgOiAoY2hpbGQpO1xyXG4gICAgICAgICAgICB9KSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
17034
|
+
return getHoverBackground({
|
|
17035
|
+
isDisabled: props.isDisabled,
|
|
17036
|
+
hoverColor: props.hoverColor,
|
|
17037
|
+
isInverse: props.isInverse,
|
|
17038
|
+
theme: props.theme
|
|
17039
|
+
});
|
|
17040
|
+
}, ";}}" + ( "/*# 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= */"));
|
|
17041
|
+
function getHoverBackground(_ref) {
|
|
17042
|
+
var isDisabled = _ref.isDisabled,
|
|
17043
|
+
hoverColor = _ref.hoverColor,
|
|
17044
|
+
isInverse = _ref.isInverse,
|
|
17045
|
+
theme = _ref.theme;
|
|
17046
|
+
if (isDisabled) return undefined;
|
|
17047
|
+
if (hoverColor) return hoverColor;
|
|
17048
|
+
var transparency = isInverse ? 0.8 : 0.95;
|
|
17049
|
+
return polished.transparentize(transparency, theme.colors.neutral900);
|
|
17050
|
+
}
|
|
17032
17051
|
var IconWrapper$8 = /*#__PURE__*/_styled("span", {
|
|
17033
17052
|
target: "e1xiryew5",
|
|
17034
17053
|
label: "IconWrapper"
|
|
@@ -17040,25 +17059,29 @@ var IconWrapper$8 = /*#__PURE__*/_styled("span", {
|
|
|
17040
17059
|
return props.theme.iconSizes.medium;
|
|
17041
17060
|
}, "px;width:", function (props) {
|
|
17042
17061
|
return props.theme.iconSizes.medium;
|
|
17043
|
-
}, "px;vertical-align:middle;}" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0RWdDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+ICFwcm9wcy5pc0Rpc2FibGVkXHJcbiAgICA/IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuOTUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiB1bmRlZmluZWR9O1xuICAgIH1cbiAgfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG5gO1xyXG5jb25zdCBTdHlsZWRDaGVja2JveFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMuaGFzQWRkaXRpb25hbENvbnRlbnQgPyAnZmxleCcgOiAnaW5saW5lLWZsZXgnKX07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAke3Byb3BzID0+IGBjYWxjKDEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfTtcbmA7XHJcbmNvbnN0IFN0eWxlZEl0ZW1XcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdjb2x1bW4nIDogJ3JvdycpfTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZSwgcHJvcHMubm9kZVR5cGUpfTtcbmA7XHJcbmNvbnN0IEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA1fTtcbmA7XHJcbmV4cG9ydCBjb25zdCBUcmVlSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBpY29uLCBpbmRleCwgbGFiZWwsIGxhYmVsU3R5bGUsIHN0eWxlLCB0ZXN0SWQsIHRvcExldmVsLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdXNlSXNJbnZlcnNlKCk7XHJcbiAgICBjb25zdCB7IHNlbGVjdGFibGUsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCB9ID0gUmVhY3QudXNlQ29udGV4dChUcmVlVmlld0NvbnRleHQpO1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wcywgZm9yd2FyZGVkUmVmKTtcclxuICAgIGNvbnN0IHsgaXNEaXNhYmxlZCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3QgeyBjaGVja2JveENoYW5nZUhhbmRsZXIsIGNoZWNrZWRTdGF0dXMsIGV4cGFuZGVkLCBoYXNPd25UcmVlSXRlbXMsIGl0ZW1EZXB0aCwgaXRlbUlkLCBwYXJlbnREZXB0aCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiB3aXRoaW4gdGhlIGxhYmVsIGFuZCBhZGRpdGlvbmFsIGNvbnRlbnQgb2YgYSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIHVzaW5nIHRoZSBgVGFiYCBrZXksIGFjdGl2YXRlIHRoZW0gd2l0aCBgRW50ZXJgIG9yIGBTcGFjZWAsXHJcbiAgICAgKiBhbmQgZXhpdCBvdXRzaWRlIGFuZCBmb2N1cyB0aGUgd2hvbGUgdHJlZSBpdGVtIHdpdGggYEVzY2FwZWAuXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBrZXksIHRhcmdldCwgY3VycmVudFRhcmdldCwgc2hpZnRLZXkgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNTcGFjZSA9IGtleSA9PT0gJyAnO1xyXG4gICAgICAgIGNvbnN0IGlzRXNjYXBlID0ga2V5ID09PSAnRXNjYXBlJztcclxuICAgICAgICBjb25zdCBpc1RhYiA9IGtleSA9PT0gJ1RhYic7XHJcbiAgICAgICAgY29uc3QgaXNBY3RpdmF0aW9uS2V5ID0gaXNFbnRlciB8fCBpc1NwYWNlO1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBgVGFiYCwgd2UgbmF2aWdhdGUgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc1RhYiAmJiBpc0luc2lkZVRyZWVJdGVtKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHNMaXN0ID0gZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyhjdXJyZW50VGFyZ2V0LCBpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAgICAgLy8gRmlsdGVyIGxpc3Qgb2YgaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hpY2ggYXJlIG9ubHkgaW5jbHVkZWQgZm9yIGN1cnJlbnQgdHJlZSBpdGVtXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMgPSBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdC5maWx0ZXIoZWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvc2VzdFRyZWVJdGVtID0gZWwuY2xvc2VzdCgnW3JvbGU9XCJ0cmVlaXRlbVwiXScpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RUcmVlSXRlbSA9PT0gdHJlZUl0ZW1SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMuaW5kZXhPZihjdXJyZW50RWxlbWVudCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xyXG4gICAgICAgICAgICBjb25zdCB0b3RhbCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgZGlyZWN0aW9uICsgdG90YWwpICUgdG90YWw7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50c1tuZXh0SW5kZXhdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudFRvRm9jdXMuZm9jdXMoKSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQcmVzc2luZyBgRW50ZXJgIG9yIGBTcGFjZWAgb24gYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB3aWxsIHRyaWdnZXIgaXRzIGNsaWNrIGV2ZW50XHJcbiAgICAgICAgaWYgKGlzQWN0aXZhdGlvbktleSAmJiBpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgaW50ZXJhY3RpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1vdmVzIGZvY3VzIG91dHNpZGUgdGhlIHRyZWUgaXRlbSBhbmQgZm9jdXNlcyB0aGUgdHJlZSBpdGVtIGl0c2VsZiB3aGVuIGBFc2NhcGVgIGlzIHByZXNzZWRcclxuICAgICAgICBpZiAoaXNFc2NhcGUpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldElzSW5zaWRlVHJlZUl0ZW0oZmFsc2UpO1xyXG4gICAgICAgICAgICBjb25zdCB0cmVlSXRlbU5vZGUgPSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICBpZiAodHJlZUl0ZW1Ob2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0cmVlSXRlbU5vZGUuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KCdidXR0b24sIFtyb2xlPVwiYnV0dG9uXCJdLCBhW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3JvbGU9XCJtZW51aXRlbVwiXScpO1xyXG4gICAgICAgIC8vIFByZXZlbnRpbmcgc2VsZWN0aW5nIHRoZSBpdGVtIHdoZW4gY2xpY2tpbmcgb24gaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hlbiBgc2VsZWN0YWJsZWAgaXMgYHNpbmdsZWBcclxuICAgICAgICBpZiAoaW50ZXJhY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUNsaWNrKGV2ZW50LCBpdGVtSWQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBkZWZhdWx0SWNvbiA9IG5vZGVUeXBlID09PSBUcmVlTm9kZVR5cGUuYnJhbmNoID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9sZGVySWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXJ0aWNsZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKTtcclxuICAgIGNvbnN0IGxhYmVsVGV4dCA9IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZExhYmVsV3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBzdHlsZTogbGFiZWxTdHlsZSwgaWQ6IGAke2l0ZW1JZH0tbGFiZWxgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWxhYmVsYCB9LFxyXG4gICAgICAgIGhhc0ljb25zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IGlzSW52ZXJzZTogaXNJbnZlcnNlLCB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0taWNvbmAgfSwgaWNvbiB8fCBkZWZhdWx0SWNvbikpLFxyXG4gICAgICAgIGxhYmVsKSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbUFkZGl0aW9uYWxDb250ZW50ID0gYWRkaXRpb25hbENvbnRlbnQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIsIHsgdGhlbWU6IHRoZW1lLCBpZDogYCR7aXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAgfSwgYWRkaXRpb25hbENvbnRlbnQpKSA6IG51bGw7XHJcbiAgICAvLyBQcm9wcyBzaGFyZWQgYnkgQ2hlY2tib3ggYW5kIEluZGV0ZXJtaW5hdGVDaGVja2JveFxyXG4gICAgY29uc3QgY2hlY2tib3hQcm9wcyA9IHtcclxuICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcclxuICAgICAgICBoaWRlRm9jdXM6IHRydWUsXHJcbiAgICAgICAgaWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgICAgIGlucHV0U3R5bGU6IHsgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxUZXh0OiBsYWJlbFRleHQsXHJcbiAgICAgICAgb25DaGFuZ2U6IGNoZWNrYm94Q2hhbmdlSGFuZGxlcixcclxuICAgICAgICB0YWJJbmRleDogLTEsXHJcbiAgICAgICAgdGVzdElkOiBgJHtpdGVtSWR9LWNoZWNrYm94YCxcclxuICAgIH07XHJcbiAgICBjb25zdCBvbkV4cGFuZGVkQ2xpY2tlZCA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaGFuZGxlRXhwYW5kZWRDaGFuZ2UoZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdGFiSW5kZXggPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbVRvRm9jdXMgPT09IGl0ZW1JZCA/IDAgOiAtMTtcclxuICAgIH0sIFtpc0Rpc2FibGVkLCBpdGVtVG9Gb2N1cywgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBzaG91bGRTaG93Q2hlY2tib3ggPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUubXVsdGkgJiZcclxuICAgICAgICAoaXNUb3BMZXZlbFNlbGVjdGFibGUgIT09IGZhbHNlIHx8ICF0b3BMZXZlbCk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIFByZXNzaW5nIGBDdHJsICsgRW50ZXJgIG9yIGBDb21tYW5kICsgRW50ZXJgIGZvY3VzZXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnQgd2l0aGluIHRoZSB0cmVlIGl0ZW1cclxuICAgICAqIGFuZCBsb2NrcyBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgZm9jdXMgaXMgd2l0aGluIHRoZSBsYWJlbCBvciBhZGRpdGlvbmFsIGNvbnRlbnQsIGl0IGhhbmRsZXMga2V5IGV2ZW50cyBmb3IgaW50ZXJhY3Rpb24gZWxlbWVudHMuXHJcbiAgICAgKlxyXG4gICAgICogSXQgYWxzbyBoYW5kbGVzIHRoZSBvdGhlciBrZXlzIHRvIHRyaWdnZXIgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IG9uS2V5RG93bkhhbmRsZXIgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0IH0gPSBldmVudDtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0ga2V5ID09PSAnRW50ZXInO1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybE9yQ29tbWFuZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTtcclxuICAgICAgICBjb25zdCBpc0N0cmxFbnRlciA9IGlzQ3RybE9yQ29tbWFuZCAmJiBpc0VudGVyO1xyXG4gICAgICAgIC8vIElmIHRoZSBrZXkgaXMgQ3RybCArIEVudGVyIG9yIENvbW1hbmQgKyBFbnRlciwgZm9jdXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnRcclxuICAgICAgICAvLyBhbmQgbG9jayBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc0N0cmxFbnRlciAmJiB0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbSh0cnVlKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0WzBdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEVuc3VyZSB2YWxpZCBDU1Mgc2VsZWN0b3JzIGJ5IGVzY2FwaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAoZS5nLiwgcGVyaW9kcyBpbiBpdGVtSWQpXHJcbiAgICAgICAgY29uc3Qgc2FmZUl0ZW1JZCA9IENTUy5lc2NhcGUoaXRlbUlkKTtcclxuICAgICAgICBjb25zdCBpc1dpdGhpbkxhYmVsT3JBZGRpdGlvbmFsQ29udGVudCA9IHRhcmdldC5jbG9zZXN0KGAjJHtzYWZlSXRlbUlkfS1sYWJlbCwgIyR7c2FmZUl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCk7XHJcbiAgICAgICAgLy8gSWYgdGhlIHRhcmdldCBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaGFuZGxlIGtleSBldmVudHMgZm9yIHRob3NlIGFyZWFzXHJcbiAgICAgICAgaWYgKGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duKGV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmLCBoYW5kbGUga2V5IGRvd24gZm9yIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJdGVtV3JhcHBlciwgeyBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWl0ZW13cmFwcGVyYCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIGlkOiBgJHtpdGVtSWR9LWl0ZW13cmFwcGVyYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgc2VsZWN0YWJsZTogc2VsZWN0YWJsZSwgc3R5bGU6IHN0eWxlLCB0aGVtZTogdGhlbWUsIHJlZjogbWVyZ2VSZWZzKHJlZiwgZm9jdXNUcmFwRWxlbWVudCksIG9uQ2xpY2s6IGhhbmRsZU9uQ2xpY2sgfSxcclxuICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWV4cGFuZGAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FeHBhbmRlZENsaWNrZWQoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgc2hvdWxkU2hvd0NoZWNrYm94ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2hlY2tib3hXcmFwcGVyLCB7IGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCB0aGVtZTogdGhlbWUgfSxcclxuICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkPy50eXBlID09PSBUcmVlSXRlbSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7IHJvbGU6IFwiZ3JvdXBcIiB9LCBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2hpbGQucHJvcHMuaXRlbUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtRGVwdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpKSkgOiAoY2hpbGQpO1xyXG4gICAgICAgICAgICB9KSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
17062
|
+
}, "px;vertical-align:middle;}" + ( "/*# 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= */"));
|
|
17044
17063
|
var StyledLabelWrapper = /*#__PURE__*/_styled("span", {
|
|
17045
17064
|
target: "e1xiryew4",
|
|
17046
17065
|
label: "StyledLabelWrapper"
|
|
17047
17066
|
})("display:flex;align-items:flex-start;color:", function (props) {
|
|
17048
17067
|
return getTreeItemLabelColor(props.isInverse, props.isDisabled, props.theme);
|
|
17049
|
-
}, ";width:100%;" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RnVDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+ICFwcm9wcy5pc0Rpc2FibGVkXHJcbiAgICA/IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuOTUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiB1bmRlZmluZWR9O1xuICAgIH1cbiAgfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG5gO1xyXG5jb25zdCBTdHlsZWRDaGVja2JveFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMuaGFzQWRkaXRpb25hbENvbnRlbnQgPyAnZmxleCcgOiAnaW5saW5lLWZsZXgnKX07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAke3Byb3BzID0+IGBjYWxjKDEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfTtcbmA7XHJcbmNvbnN0IFN0eWxlZEl0ZW1XcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdjb2x1bW4nIDogJ3JvdycpfTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZSwgcHJvcHMubm9kZVR5cGUpfTtcbmA7XHJcbmNvbnN0IEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA1fTtcbmA7XHJcbmV4cG9ydCBjb25zdCBUcmVlSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBpY29uLCBpbmRleCwgbGFiZWwsIGxhYmVsU3R5bGUsIHN0eWxlLCB0ZXN0SWQsIHRvcExldmVsLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdXNlSXNJbnZlcnNlKCk7XHJcbiAgICBjb25zdCB7IHNlbGVjdGFibGUsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCB9ID0gUmVhY3QudXNlQ29udGV4dChUcmVlVmlld0NvbnRleHQpO1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wcywgZm9yd2FyZGVkUmVmKTtcclxuICAgIGNvbnN0IHsgaXNEaXNhYmxlZCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3QgeyBjaGVja2JveENoYW5nZUhhbmRsZXIsIGNoZWNrZWRTdGF0dXMsIGV4cGFuZGVkLCBoYXNPd25UcmVlSXRlbXMsIGl0ZW1EZXB0aCwgaXRlbUlkLCBwYXJlbnREZXB0aCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiB3aXRoaW4gdGhlIGxhYmVsIGFuZCBhZGRpdGlvbmFsIGNvbnRlbnQgb2YgYSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIHVzaW5nIHRoZSBgVGFiYCBrZXksIGFjdGl2YXRlIHRoZW0gd2l0aCBgRW50ZXJgIG9yIGBTcGFjZWAsXHJcbiAgICAgKiBhbmQgZXhpdCBvdXRzaWRlIGFuZCBmb2N1cyB0aGUgd2hvbGUgdHJlZSBpdGVtIHdpdGggYEVzY2FwZWAuXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBrZXksIHRhcmdldCwgY3VycmVudFRhcmdldCwgc2hpZnRLZXkgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNTcGFjZSA9IGtleSA9PT0gJyAnO1xyXG4gICAgICAgIGNvbnN0IGlzRXNjYXBlID0ga2V5ID09PSAnRXNjYXBlJztcclxuICAgICAgICBjb25zdCBpc1RhYiA9IGtleSA9PT0gJ1RhYic7XHJcbiAgICAgICAgY29uc3QgaXNBY3RpdmF0aW9uS2V5ID0gaXNFbnRlciB8fCBpc1NwYWNlO1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBgVGFiYCwgd2UgbmF2aWdhdGUgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc1RhYiAmJiBpc0luc2lkZVRyZWVJdGVtKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHNMaXN0ID0gZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyhjdXJyZW50VGFyZ2V0LCBpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAgICAgLy8gRmlsdGVyIGxpc3Qgb2YgaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hpY2ggYXJlIG9ubHkgaW5jbHVkZWQgZm9yIGN1cnJlbnQgdHJlZSBpdGVtXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMgPSBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdC5maWx0ZXIoZWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvc2VzdFRyZWVJdGVtID0gZWwuY2xvc2VzdCgnW3JvbGU9XCJ0cmVlaXRlbVwiXScpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RUcmVlSXRlbSA9PT0gdHJlZUl0ZW1SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMuaW5kZXhPZihjdXJyZW50RWxlbWVudCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xyXG4gICAgICAgICAgICBjb25zdCB0b3RhbCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgZGlyZWN0aW9uICsgdG90YWwpICUgdG90YWw7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50c1tuZXh0SW5kZXhdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudFRvRm9jdXMuZm9jdXMoKSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQcmVzc2luZyBgRW50ZXJgIG9yIGBTcGFjZWAgb24gYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB3aWxsIHRyaWdnZXIgaXRzIGNsaWNrIGV2ZW50XHJcbiAgICAgICAgaWYgKGlzQWN0aXZhdGlvbktleSAmJiBpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgaW50ZXJhY3RpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1vdmVzIGZvY3VzIG91dHNpZGUgdGhlIHRyZWUgaXRlbSBhbmQgZm9jdXNlcyB0aGUgdHJlZSBpdGVtIGl0c2VsZiB3aGVuIGBFc2NhcGVgIGlzIHByZXNzZWRcclxuICAgICAgICBpZiAoaXNFc2NhcGUpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldElzSW5zaWRlVHJlZUl0ZW0oZmFsc2UpO1xyXG4gICAgICAgICAgICBjb25zdCB0cmVlSXRlbU5vZGUgPSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICBpZiAodHJlZUl0ZW1Ob2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0cmVlSXRlbU5vZGUuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KCdidXR0b24sIFtyb2xlPVwiYnV0dG9uXCJdLCBhW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3JvbGU9XCJtZW51aXRlbVwiXScpO1xyXG4gICAgICAgIC8vIFByZXZlbnRpbmcgc2VsZWN0aW5nIHRoZSBpdGVtIHdoZW4gY2xpY2tpbmcgb24gaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hlbiBgc2VsZWN0YWJsZWAgaXMgYHNpbmdsZWBcclxuICAgICAgICBpZiAoaW50ZXJhY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUNsaWNrKGV2ZW50LCBpdGVtSWQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBkZWZhdWx0SWNvbiA9IG5vZGVUeXBlID09PSBUcmVlTm9kZVR5cGUuYnJhbmNoID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9sZGVySWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXJ0aWNsZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKTtcclxuICAgIGNvbnN0IGxhYmVsVGV4dCA9IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZExhYmVsV3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBzdHlsZTogbGFiZWxTdHlsZSwgaWQ6IGAke2l0ZW1JZH0tbGFiZWxgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWxhYmVsYCB9LFxyXG4gICAgICAgIGhhc0ljb25zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IGlzSW52ZXJzZTogaXNJbnZlcnNlLCB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0taWNvbmAgfSwgaWNvbiB8fCBkZWZhdWx0SWNvbikpLFxyXG4gICAgICAgIGxhYmVsKSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbUFkZGl0aW9uYWxDb250ZW50ID0gYWRkaXRpb25hbENvbnRlbnQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIsIHsgdGhlbWU6IHRoZW1lLCBpZDogYCR7aXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAgfSwgYWRkaXRpb25hbENvbnRlbnQpKSA6IG51bGw7XHJcbiAgICAvLyBQcm9wcyBzaGFyZWQgYnkgQ2hlY2tib3ggYW5kIEluZGV0ZXJtaW5hdGVDaGVja2JveFxyXG4gICAgY29uc3QgY2hlY2tib3hQcm9wcyA9IHtcclxuICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcclxuICAgICAgICBoaWRlRm9jdXM6IHRydWUsXHJcbiAgICAgICAgaWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgICAgIGlucHV0U3R5bGU6IHsgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxUZXh0OiBsYWJlbFRleHQsXHJcbiAgICAgICAgb25DaGFuZ2U6IGNoZWNrYm94Q2hhbmdlSGFuZGxlcixcclxuICAgICAgICB0YWJJbmRleDogLTEsXHJcbiAgICAgICAgdGVzdElkOiBgJHtpdGVtSWR9LWNoZWNrYm94YCxcclxuICAgIH07XHJcbiAgICBjb25zdCBvbkV4cGFuZGVkQ2xpY2tlZCA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaGFuZGxlRXhwYW5kZWRDaGFuZ2UoZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdGFiSW5kZXggPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbVRvRm9jdXMgPT09IGl0ZW1JZCA/IDAgOiAtMTtcclxuICAgIH0sIFtpc0Rpc2FibGVkLCBpdGVtVG9Gb2N1cywgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBzaG91bGRTaG93Q2hlY2tib3ggPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUubXVsdGkgJiZcclxuICAgICAgICAoaXNUb3BMZXZlbFNlbGVjdGFibGUgIT09IGZhbHNlIHx8ICF0b3BMZXZlbCk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIFByZXNzaW5nIGBDdHJsICsgRW50ZXJgIG9yIGBDb21tYW5kICsgRW50ZXJgIGZvY3VzZXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnQgd2l0aGluIHRoZSB0cmVlIGl0ZW1cclxuICAgICAqIGFuZCBsb2NrcyBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgZm9jdXMgaXMgd2l0aGluIHRoZSBsYWJlbCBvciBhZGRpdGlvbmFsIGNvbnRlbnQsIGl0IGhhbmRsZXMga2V5IGV2ZW50cyBmb3IgaW50ZXJhY3Rpb24gZWxlbWVudHMuXHJcbiAgICAgKlxyXG4gICAgICogSXQgYWxzbyBoYW5kbGVzIHRoZSBvdGhlciBrZXlzIHRvIHRyaWdnZXIgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IG9uS2V5RG93bkhhbmRsZXIgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0IH0gPSBldmVudDtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0ga2V5ID09PSAnRW50ZXInO1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybE9yQ29tbWFuZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTtcclxuICAgICAgICBjb25zdCBpc0N0cmxFbnRlciA9IGlzQ3RybE9yQ29tbWFuZCAmJiBpc0VudGVyO1xyXG4gICAgICAgIC8vIElmIHRoZSBrZXkgaXMgQ3RybCArIEVudGVyIG9yIENvbW1hbmQgKyBFbnRlciwgZm9jdXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnRcclxuICAgICAgICAvLyBhbmQgbG9jayBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc0N0cmxFbnRlciAmJiB0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbSh0cnVlKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0WzBdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEVuc3VyZSB2YWxpZCBDU1Mgc2VsZWN0b3JzIGJ5IGVzY2FwaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAoZS5nLiwgcGVyaW9kcyBpbiBpdGVtSWQpXHJcbiAgICAgICAgY29uc3Qgc2FmZUl0ZW1JZCA9IENTUy5lc2NhcGUoaXRlbUlkKTtcclxuICAgICAgICBjb25zdCBpc1dpdGhpbkxhYmVsT3JBZGRpdGlvbmFsQ29udGVudCA9IHRhcmdldC5jbG9zZXN0KGAjJHtzYWZlSXRlbUlkfS1sYWJlbCwgIyR7c2FmZUl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCk7XHJcbiAgICAgICAgLy8gSWYgdGhlIHRhcmdldCBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaGFuZGxlIGtleSBldmVudHMgZm9yIHRob3NlIGFyZWFzXHJcbiAgICAgICAgaWYgKGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duKGV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmLCBoYW5kbGUga2V5IGRvd24gZm9yIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJdGVtV3JhcHBlciwgeyBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWl0ZW13cmFwcGVyYCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIGlkOiBgJHtpdGVtSWR9LWl0ZW13cmFwcGVyYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgc2VsZWN0YWJsZTogc2VsZWN0YWJsZSwgc3R5bGU6IHN0eWxlLCB0aGVtZTogdGhlbWUsIHJlZjogbWVyZ2VSZWZzKHJlZiwgZm9jdXNUcmFwRWxlbWVudCksIG9uQ2xpY2s6IGhhbmRsZU9uQ2xpY2sgfSxcclxuICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWV4cGFuZGAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FeHBhbmRlZENsaWNrZWQoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgc2hvdWxkU2hvd0NoZWNrYm94ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2hlY2tib3hXcmFwcGVyLCB7IGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCB0aGVtZTogdGhlbWUgfSxcclxuICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkPy50eXBlID09PSBUcmVlSXRlbSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7IHJvbGU6IFwiZ3JvdXBcIiB9LCBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2hpbGQucHJvcHMuaXRlbUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtRGVwdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpKSkgOiAoY2hpbGQpO1xyXG4gICAgICAgICAgICB9KSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
17068
|
+
}, ";width:100%;" + ( "/*# 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= */"));
|
|
17050
17069
|
var StyledExpandWrapper = /*#__PURE__*/_styled("div", {
|
|
17051
17070
|
target: "e1xiryew3",
|
|
17052
17071
|
label: "StyledExpandWrapper"
|
|
17053
17072
|
})("display:inline-block;vertical-align:middle;margin-right:", function (props) {
|
|
17054
17073
|
return props.theme.spaceScale.spacing03;
|
|
17055
17074
|
}, ";color:", function (props) {
|
|
17056
|
-
return getTreeItemLabelColor(props.isInverse, props.isDisabled, props.theme);
|
|
17057
|
-
}, ";border-radius:0;width:", function (
|
|
17058
|
-
|
|
17059
|
-
|
|
17060
|
-
return
|
|
17061
|
-
}, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RnVDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+ICFwcm9wcy5pc0Rpc2FibGVkXHJcbiAgICA/IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuOTUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiB1bmRlZmluZWR9O1xuICAgIH1cbiAgfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG5gO1xyXG5jb25zdCBTdHlsZWRDaGVja2JveFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMuaGFzQWRkaXRpb25hbENvbnRlbnQgPyAnZmxleCcgOiAnaW5saW5lLWZsZXgnKX07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAke3Byb3BzID0+IGBjYWxjKDEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfTtcbmA7XHJcbmNvbnN0IFN0eWxlZEl0ZW1XcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdjb2x1bW4nIDogJ3JvdycpfTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZSwgcHJvcHMubm9kZVR5cGUpfTtcbmA7XHJcbmNvbnN0IEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA1fTtcbmA7XHJcbmV4cG9ydCBjb25zdCBUcmVlSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBpY29uLCBpbmRleCwgbGFiZWwsIGxhYmVsU3R5bGUsIHN0eWxlLCB0ZXN0SWQsIHRvcExldmVsLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdXNlSXNJbnZlcnNlKCk7XHJcbiAgICBjb25zdCB7IHNlbGVjdGFibGUsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCB9ID0gUmVhY3QudXNlQ29udGV4dChUcmVlVmlld0NvbnRleHQpO1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wcywgZm9yd2FyZGVkUmVmKTtcclxuICAgIGNvbnN0IHsgaXNEaXNhYmxlZCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3QgeyBjaGVja2JveENoYW5nZUhhbmRsZXIsIGNoZWNrZWRTdGF0dXMsIGV4cGFuZGVkLCBoYXNPd25UcmVlSXRlbXMsIGl0ZW1EZXB0aCwgaXRlbUlkLCBwYXJlbnREZXB0aCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiB3aXRoaW4gdGhlIGxhYmVsIGFuZCBhZGRpdGlvbmFsIGNvbnRlbnQgb2YgYSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIHVzaW5nIHRoZSBgVGFiYCBrZXksIGFjdGl2YXRlIHRoZW0gd2l0aCBgRW50ZXJgIG9yIGBTcGFjZWAsXHJcbiAgICAgKiBhbmQgZXhpdCBvdXRzaWRlIGFuZCBmb2N1cyB0aGUgd2hvbGUgdHJlZSBpdGVtIHdpdGggYEVzY2FwZWAuXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBrZXksIHRhcmdldCwgY3VycmVudFRhcmdldCwgc2hpZnRLZXkgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNTcGFjZSA9IGtleSA9PT0gJyAnO1xyXG4gICAgICAgIGNvbnN0IGlzRXNjYXBlID0ga2V5ID09PSAnRXNjYXBlJztcclxuICAgICAgICBjb25zdCBpc1RhYiA9IGtleSA9PT0gJ1RhYic7XHJcbiAgICAgICAgY29uc3QgaXNBY3RpdmF0aW9uS2V5ID0gaXNFbnRlciB8fCBpc1NwYWNlO1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBgVGFiYCwgd2UgbmF2aWdhdGUgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc1RhYiAmJiBpc0luc2lkZVRyZWVJdGVtKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHNMaXN0ID0gZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyhjdXJyZW50VGFyZ2V0LCBpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAgICAgLy8gRmlsdGVyIGxpc3Qgb2YgaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hpY2ggYXJlIG9ubHkgaW5jbHVkZWQgZm9yIGN1cnJlbnQgdHJlZSBpdGVtXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMgPSBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdC5maWx0ZXIoZWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvc2VzdFRyZWVJdGVtID0gZWwuY2xvc2VzdCgnW3JvbGU9XCJ0cmVlaXRlbVwiXScpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RUcmVlSXRlbSA9PT0gdHJlZUl0ZW1SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMuaW5kZXhPZihjdXJyZW50RWxlbWVudCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xyXG4gICAgICAgICAgICBjb25zdCB0b3RhbCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgZGlyZWN0aW9uICsgdG90YWwpICUgdG90YWw7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50c1tuZXh0SW5kZXhdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudFRvRm9jdXMuZm9jdXMoKSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQcmVzc2luZyBgRW50ZXJgIG9yIGBTcGFjZWAgb24gYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB3aWxsIHRyaWdnZXIgaXRzIGNsaWNrIGV2ZW50XHJcbiAgICAgICAgaWYgKGlzQWN0aXZhdGlvbktleSAmJiBpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgaW50ZXJhY3RpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1vdmVzIGZvY3VzIG91dHNpZGUgdGhlIHRyZWUgaXRlbSBhbmQgZm9jdXNlcyB0aGUgdHJlZSBpdGVtIGl0c2VsZiB3aGVuIGBFc2NhcGVgIGlzIHByZXNzZWRcclxuICAgICAgICBpZiAoaXNFc2NhcGUpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldElzSW5zaWRlVHJlZUl0ZW0oZmFsc2UpO1xyXG4gICAgICAgICAgICBjb25zdCB0cmVlSXRlbU5vZGUgPSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICBpZiAodHJlZUl0ZW1Ob2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0cmVlSXRlbU5vZGUuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KCdidXR0b24sIFtyb2xlPVwiYnV0dG9uXCJdLCBhW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3JvbGU9XCJtZW51aXRlbVwiXScpO1xyXG4gICAgICAgIC8vIFByZXZlbnRpbmcgc2VsZWN0aW5nIHRoZSBpdGVtIHdoZW4gY2xpY2tpbmcgb24gaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hlbiBgc2VsZWN0YWJsZWAgaXMgYHNpbmdsZWBcclxuICAgICAgICBpZiAoaW50ZXJhY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUNsaWNrKGV2ZW50LCBpdGVtSWQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBkZWZhdWx0SWNvbiA9IG5vZGVUeXBlID09PSBUcmVlTm9kZVR5cGUuYnJhbmNoID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9sZGVySWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXJ0aWNsZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKTtcclxuICAgIGNvbnN0IGxhYmVsVGV4dCA9IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZExhYmVsV3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBzdHlsZTogbGFiZWxTdHlsZSwgaWQ6IGAke2l0ZW1JZH0tbGFiZWxgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWxhYmVsYCB9LFxyXG4gICAgICAgIGhhc0ljb25zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IGlzSW52ZXJzZTogaXNJbnZlcnNlLCB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0taWNvbmAgfSwgaWNvbiB8fCBkZWZhdWx0SWNvbikpLFxyXG4gICAgICAgIGxhYmVsKSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbUFkZGl0aW9uYWxDb250ZW50ID0gYWRkaXRpb25hbENvbnRlbnQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIsIHsgdGhlbWU6IHRoZW1lLCBpZDogYCR7aXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAgfSwgYWRkaXRpb25hbENvbnRlbnQpKSA6IG51bGw7XHJcbiAgICAvLyBQcm9wcyBzaGFyZWQgYnkgQ2hlY2tib3ggYW5kIEluZGV0ZXJtaW5hdGVDaGVja2JveFxyXG4gICAgY29uc3QgY2hlY2tib3hQcm9wcyA9IHtcclxuICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcclxuICAgICAgICBoaWRlRm9jdXM6IHRydWUsXHJcbiAgICAgICAgaWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgICAgIGlucHV0U3R5bGU6IHsgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxUZXh0OiBsYWJlbFRleHQsXHJcbiAgICAgICAgb25DaGFuZ2U6IGNoZWNrYm94Q2hhbmdlSGFuZGxlcixcclxuICAgICAgICB0YWJJbmRleDogLTEsXHJcbiAgICAgICAgdGVzdElkOiBgJHtpdGVtSWR9LWNoZWNrYm94YCxcclxuICAgIH07XHJcbiAgICBjb25zdCBvbkV4cGFuZGVkQ2xpY2tlZCA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaGFuZGxlRXhwYW5kZWRDaGFuZ2UoZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdGFiSW5kZXggPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbVRvRm9jdXMgPT09IGl0ZW1JZCA/IDAgOiAtMTtcclxuICAgIH0sIFtpc0Rpc2FibGVkLCBpdGVtVG9Gb2N1cywgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBzaG91bGRTaG93Q2hlY2tib3ggPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUubXVsdGkgJiZcclxuICAgICAgICAoaXNUb3BMZXZlbFNlbGVjdGFibGUgIT09IGZhbHNlIHx8ICF0b3BMZXZlbCk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIFByZXNzaW5nIGBDdHJsICsgRW50ZXJgIG9yIGBDb21tYW5kICsgRW50ZXJgIGZvY3VzZXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnQgd2l0aGluIHRoZSB0cmVlIGl0ZW1cclxuICAgICAqIGFuZCBsb2NrcyBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgZm9jdXMgaXMgd2l0aGluIHRoZSBsYWJlbCBvciBhZGRpdGlvbmFsIGNvbnRlbnQsIGl0IGhhbmRsZXMga2V5IGV2ZW50cyBmb3IgaW50ZXJhY3Rpb24gZWxlbWVudHMuXHJcbiAgICAgKlxyXG4gICAgICogSXQgYWxzbyBoYW5kbGVzIHRoZSBvdGhlciBrZXlzIHRvIHRyaWdnZXIgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IG9uS2V5RG93bkhhbmRsZXIgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0IH0gPSBldmVudDtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0ga2V5ID09PSAnRW50ZXInO1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybE9yQ29tbWFuZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTtcclxuICAgICAgICBjb25zdCBpc0N0cmxFbnRlciA9IGlzQ3RybE9yQ29tbWFuZCAmJiBpc0VudGVyO1xyXG4gICAgICAgIC8vIElmIHRoZSBrZXkgaXMgQ3RybCArIEVudGVyIG9yIENvbW1hbmQgKyBFbnRlciwgZm9jdXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnRcclxuICAgICAgICAvLyBhbmQgbG9jayBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc0N0cmxFbnRlciAmJiB0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbSh0cnVlKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0WzBdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEVuc3VyZSB2YWxpZCBDU1Mgc2VsZWN0b3JzIGJ5IGVzY2FwaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAoZS5nLiwgcGVyaW9kcyBpbiBpdGVtSWQpXHJcbiAgICAgICAgY29uc3Qgc2FmZUl0ZW1JZCA9IENTUy5lc2NhcGUoaXRlbUlkKTtcclxuICAgICAgICBjb25zdCBpc1dpdGhpbkxhYmVsT3JBZGRpdGlvbmFsQ29udGVudCA9IHRhcmdldC5jbG9zZXN0KGAjJHtzYWZlSXRlbUlkfS1sYWJlbCwgIyR7c2FmZUl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCk7XHJcbiAgICAgICAgLy8gSWYgdGhlIHRhcmdldCBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaGFuZGxlIGtleSBldmVudHMgZm9yIHRob3NlIGFyZWFzXHJcbiAgICAgICAgaWYgKGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duKGV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmLCBoYW5kbGUga2V5IGRvd24gZm9yIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJdGVtV3JhcHBlciwgeyBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWl0ZW13cmFwcGVyYCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIGlkOiBgJHtpdGVtSWR9LWl0ZW13cmFwcGVyYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgc2VsZWN0YWJsZTogc2VsZWN0YWJsZSwgc3R5bGU6IHN0eWxlLCB0aGVtZTogdGhlbWUsIHJlZjogbWVyZ2VSZWZzKHJlZiwgZm9jdXNUcmFwRWxlbWVudCksIG9uQ2xpY2s6IGhhbmRsZU9uQ2xpY2sgfSxcclxuICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWV4cGFuZGAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FeHBhbmRlZENsaWNrZWQoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgc2hvdWxkU2hvd0NoZWNrYm94ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2hlY2tib3hXcmFwcGVyLCB7IGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCB0aGVtZTogdGhlbWUgfSxcclxuICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkPy50eXBlID09PSBUcmVlSXRlbSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7IHJvbGU6IFwiZ3JvdXBcIiB9LCBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2hpbGQucHJvcHMuaXRlbUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtRGVwdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpKSkgOiAoY2hpbGQpO1xyXG4gICAgICAgICAgICB9KSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
17075
|
+
return props.color || getTreeItemLabelColor(props.isInverse, props.isDisabled, props.theme);
|
|
17076
|
+
}, ";border-radius:0;width:", function (_ref2) {
|
|
17077
|
+
var size = _ref2.size,
|
|
17078
|
+
theme = _ref2.theme;
|
|
17079
|
+
return size !== undefined ? size + "px" : theme.spaceScale.spacing06;
|
|
17080
|
+
}, ";height:", function (_ref3) {
|
|
17081
|
+
var size = _ref3.size,
|
|
17082
|
+
theme = _ref3.theme;
|
|
17083
|
+
return size !== undefined ? size + "px" : theme.spaceScale.spacing06;
|
|
17084
|
+
}, ";" + ( "/*# 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= */"));
|
|
17062
17085
|
var StyledCheckboxWrapper = /*#__PURE__*/_styled("div", {
|
|
17063
17086
|
target: "e1xiryew2",
|
|
17064
17087
|
label: "StyledCheckboxWrapper"
|
|
@@ -17068,40 +17091,45 @@ var StyledCheckboxWrapper = /*#__PURE__*/_styled("div", {
|
|
|
17068
17091
|
return props.hasAdditionalContent ? 'flex' : 'inline-flex';
|
|
17069
17092
|
}, ";flex-direction:column;width:", function (props) {
|
|
17070
17093
|
return "calc(100% - " + props.theme.spaceScale.spacing03 + ")";
|
|
17071
|
-
}, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzR3lDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+ICFwcm9wcy5pc0Rpc2FibGVkXHJcbiAgICA/IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuOTUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiB1bmRlZmluZWR9O1xuICAgIH1cbiAgfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG5gO1xyXG5jb25zdCBTdHlsZWRDaGVja2JveFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMuaGFzQWRkaXRpb25hbENvbnRlbnQgPyAnZmxleCcgOiAnaW5saW5lLWZsZXgnKX07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAke3Byb3BzID0+IGBjYWxjKDEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfTtcbmA7XHJcbmNvbnN0IFN0eWxlZEl0ZW1XcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdjb2x1bW4nIDogJ3JvdycpfTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZSwgcHJvcHMubm9kZVR5cGUpfTtcbmA7XHJcbmNvbnN0IEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA1fTtcbmA7XHJcbmV4cG9ydCBjb25zdCBUcmVlSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBpY29uLCBpbmRleCwgbGFiZWwsIGxhYmVsU3R5bGUsIHN0eWxlLCB0ZXN0SWQsIHRvcExldmVsLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdXNlSXNJbnZlcnNlKCk7XHJcbiAgICBjb25zdCB7IHNlbGVjdGFibGUsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCB9ID0gUmVhY3QudXNlQ29udGV4dChUcmVlVmlld0NvbnRleHQpO1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wcywgZm9yd2FyZGVkUmVmKTtcclxuICAgIGNvbnN0IHsgaXNEaXNhYmxlZCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3QgeyBjaGVja2JveENoYW5nZUhhbmRsZXIsIGNoZWNrZWRTdGF0dXMsIGV4cGFuZGVkLCBoYXNPd25UcmVlSXRlbXMsIGl0ZW1EZXB0aCwgaXRlbUlkLCBwYXJlbnREZXB0aCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiB3aXRoaW4gdGhlIGxhYmVsIGFuZCBhZGRpdGlvbmFsIGNvbnRlbnQgb2YgYSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIHVzaW5nIHRoZSBgVGFiYCBrZXksIGFjdGl2YXRlIHRoZW0gd2l0aCBgRW50ZXJgIG9yIGBTcGFjZWAsXHJcbiAgICAgKiBhbmQgZXhpdCBvdXRzaWRlIGFuZCBmb2N1cyB0aGUgd2hvbGUgdHJlZSBpdGVtIHdpdGggYEVzY2FwZWAuXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBrZXksIHRhcmdldCwgY3VycmVudFRhcmdldCwgc2hpZnRLZXkgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNTcGFjZSA9IGtleSA9PT0gJyAnO1xyXG4gICAgICAgIGNvbnN0IGlzRXNjYXBlID0ga2V5ID09PSAnRXNjYXBlJztcclxuICAgICAgICBjb25zdCBpc1RhYiA9IGtleSA9PT0gJ1RhYic7XHJcbiAgICAgICAgY29uc3QgaXNBY3RpdmF0aW9uS2V5ID0gaXNFbnRlciB8fCBpc1NwYWNlO1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBgVGFiYCwgd2UgbmF2aWdhdGUgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc1RhYiAmJiBpc0luc2lkZVRyZWVJdGVtKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHNMaXN0ID0gZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyhjdXJyZW50VGFyZ2V0LCBpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAgICAgLy8gRmlsdGVyIGxpc3Qgb2YgaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hpY2ggYXJlIG9ubHkgaW5jbHVkZWQgZm9yIGN1cnJlbnQgdHJlZSBpdGVtXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMgPSBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdC5maWx0ZXIoZWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvc2VzdFRyZWVJdGVtID0gZWwuY2xvc2VzdCgnW3JvbGU9XCJ0cmVlaXRlbVwiXScpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RUcmVlSXRlbSA9PT0gdHJlZUl0ZW1SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMuaW5kZXhPZihjdXJyZW50RWxlbWVudCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xyXG4gICAgICAgICAgICBjb25zdCB0b3RhbCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgZGlyZWN0aW9uICsgdG90YWwpICUgdG90YWw7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50c1tuZXh0SW5kZXhdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudFRvRm9jdXMuZm9jdXMoKSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQcmVzc2luZyBgRW50ZXJgIG9yIGBTcGFjZWAgb24gYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB3aWxsIHRyaWdnZXIgaXRzIGNsaWNrIGV2ZW50XHJcbiAgICAgICAgaWYgKGlzQWN0aXZhdGlvbktleSAmJiBpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgaW50ZXJhY3RpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1vdmVzIGZvY3VzIG91dHNpZGUgdGhlIHRyZWUgaXRlbSBhbmQgZm9jdXNlcyB0aGUgdHJlZSBpdGVtIGl0c2VsZiB3aGVuIGBFc2NhcGVgIGlzIHByZXNzZWRcclxuICAgICAgICBpZiAoaXNFc2NhcGUpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldElzSW5zaWRlVHJlZUl0ZW0oZmFsc2UpO1xyXG4gICAgICAgICAgICBjb25zdCB0cmVlSXRlbU5vZGUgPSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICBpZiAodHJlZUl0ZW1Ob2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0cmVlSXRlbU5vZGUuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KCdidXR0b24sIFtyb2xlPVwiYnV0dG9uXCJdLCBhW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3JvbGU9XCJtZW51aXRlbVwiXScpO1xyXG4gICAgICAgIC8vIFByZXZlbnRpbmcgc2VsZWN0aW5nIHRoZSBpdGVtIHdoZW4gY2xpY2tpbmcgb24gaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hlbiBgc2VsZWN0YWJsZWAgaXMgYHNpbmdsZWBcclxuICAgICAgICBpZiAoaW50ZXJhY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUNsaWNrKGV2ZW50LCBpdGVtSWQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBkZWZhdWx0SWNvbiA9IG5vZGVUeXBlID09PSBUcmVlTm9kZVR5cGUuYnJhbmNoID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9sZGVySWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXJ0aWNsZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKTtcclxuICAgIGNvbnN0IGxhYmVsVGV4dCA9IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZExhYmVsV3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBzdHlsZTogbGFiZWxTdHlsZSwgaWQ6IGAke2l0ZW1JZH0tbGFiZWxgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWxhYmVsYCB9LFxyXG4gICAgICAgIGhhc0ljb25zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IGlzSW52ZXJzZTogaXNJbnZlcnNlLCB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0taWNvbmAgfSwgaWNvbiB8fCBkZWZhdWx0SWNvbikpLFxyXG4gICAgICAgIGxhYmVsKSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbUFkZGl0aW9uYWxDb250ZW50ID0gYWRkaXRpb25hbENvbnRlbnQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIsIHsgdGhlbWU6IHRoZW1lLCBpZDogYCR7aXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAgfSwgYWRkaXRpb25hbENvbnRlbnQpKSA6IG51bGw7XHJcbiAgICAvLyBQcm9wcyBzaGFyZWQgYnkgQ2hlY2tib3ggYW5kIEluZGV0ZXJtaW5hdGVDaGVja2JveFxyXG4gICAgY29uc3QgY2hlY2tib3hQcm9wcyA9IHtcclxuICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcclxuICAgICAgICBoaWRlRm9jdXM6IHRydWUsXHJcbiAgICAgICAgaWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgICAgIGlucHV0U3R5bGU6IHsgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxUZXh0OiBsYWJlbFRleHQsXHJcbiAgICAgICAgb25DaGFuZ2U6IGNoZWNrYm94Q2hhbmdlSGFuZGxlcixcclxuICAgICAgICB0YWJJbmRleDogLTEsXHJcbiAgICAgICAgdGVzdElkOiBgJHtpdGVtSWR9LWNoZWNrYm94YCxcclxuICAgIH07XHJcbiAgICBjb25zdCBvbkV4cGFuZGVkQ2xpY2tlZCA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaGFuZGxlRXhwYW5kZWRDaGFuZ2UoZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdGFiSW5kZXggPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbVRvRm9jdXMgPT09IGl0ZW1JZCA/IDAgOiAtMTtcclxuICAgIH0sIFtpc0Rpc2FibGVkLCBpdGVtVG9Gb2N1cywgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBzaG91bGRTaG93Q2hlY2tib3ggPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUubXVsdGkgJiZcclxuICAgICAgICAoaXNUb3BMZXZlbFNlbGVjdGFibGUgIT09IGZhbHNlIHx8ICF0b3BMZXZlbCk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIFByZXNzaW5nIGBDdHJsICsgRW50ZXJgIG9yIGBDb21tYW5kICsgRW50ZXJgIGZvY3VzZXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnQgd2l0aGluIHRoZSB0cmVlIGl0ZW1cclxuICAgICAqIGFuZCBsb2NrcyBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgZm9jdXMgaXMgd2l0aGluIHRoZSBsYWJlbCBvciBhZGRpdGlvbmFsIGNvbnRlbnQsIGl0IGhhbmRsZXMga2V5IGV2ZW50cyBmb3IgaW50ZXJhY3Rpb24gZWxlbWVudHMuXHJcbiAgICAgKlxyXG4gICAgICogSXQgYWxzbyBoYW5kbGVzIHRoZSBvdGhlciBrZXlzIHRvIHRyaWdnZXIgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IG9uS2V5RG93bkhhbmRsZXIgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0IH0gPSBldmVudDtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0ga2V5ID09PSAnRW50ZXInO1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybE9yQ29tbWFuZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTtcclxuICAgICAgICBjb25zdCBpc0N0cmxFbnRlciA9IGlzQ3RybE9yQ29tbWFuZCAmJiBpc0VudGVyO1xyXG4gICAgICAgIC8vIElmIHRoZSBrZXkgaXMgQ3RybCArIEVudGVyIG9yIENvbW1hbmQgKyBFbnRlciwgZm9jdXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnRcclxuICAgICAgICAvLyBhbmQgbG9jayBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc0N0cmxFbnRlciAmJiB0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbSh0cnVlKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0WzBdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEVuc3VyZSB2YWxpZCBDU1Mgc2VsZWN0b3JzIGJ5IGVzY2FwaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAoZS5nLiwgcGVyaW9kcyBpbiBpdGVtSWQpXHJcbiAgICAgICAgY29uc3Qgc2FmZUl0ZW1JZCA9IENTUy5lc2NhcGUoaXRlbUlkKTtcclxuICAgICAgICBjb25zdCBpc1dpdGhpbkxhYmVsT3JBZGRpdGlvbmFsQ29udGVudCA9IHRhcmdldC5jbG9zZXN0KGAjJHtzYWZlSXRlbUlkfS1sYWJlbCwgIyR7c2FmZUl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCk7XHJcbiAgICAgICAgLy8gSWYgdGhlIHRhcmdldCBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaGFuZGxlIGtleSBldmVudHMgZm9yIHRob3NlIGFyZWFzXHJcbiAgICAgICAgaWYgKGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duKGV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmLCBoYW5kbGUga2V5IGRvd24gZm9yIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJdGVtV3JhcHBlciwgeyBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWl0ZW13cmFwcGVyYCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIGlkOiBgJHtpdGVtSWR9LWl0ZW13cmFwcGVyYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgc2VsZWN0YWJsZTogc2VsZWN0YWJsZSwgc3R5bGU6IHN0eWxlLCB0aGVtZTogdGhlbWUsIHJlZjogbWVyZ2VSZWZzKHJlZiwgZm9jdXNUcmFwRWxlbWVudCksIG9uQ2xpY2s6IGhhbmRsZU9uQ2xpY2sgfSxcclxuICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWV4cGFuZGAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FeHBhbmRlZENsaWNrZWQoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgc2hvdWxkU2hvd0NoZWNrYm94ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2hlY2tib3hXcmFwcGVyLCB7IGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCB0aGVtZTogdGhlbWUgfSxcclxuICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkPy50eXBlID09PSBUcmVlSXRlbSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7IHJvbGU6IFwiZ3JvdXBcIiB9LCBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2hpbGQucHJvcHMuaXRlbUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtRGVwdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpKSkgOiAoY2hpbGQpO1xyXG4gICAgICAgICAgICB9KSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
17094
|
+
}, ";" + ( "/*# 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= */"));
|
|
17072
17095
|
var StyledItemWrapper = /*#__PURE__*/_styled("div", {
|
|
17073
17096
|
target: "e1xiryew1",
|
|
17074
17097
|
label: "StyledItemWrapper"
|
|
17075
17098
|
})("display:flex;flex-direction:", function (props) {
|
|
17076
17099
|
return props.hasAdditionalContent ? 'column' : 'row';
|
|
17077
|
-
}, ";align-items:
|
|
17100
|
+
}, ";align-items:", function (props) {
|
|
17101
|
+
return props.hasCustomIconSize ? 'center' : 'flex-start';
|
|
17102
|
+
}, ";cursor:", function (props) {
|
|
17078
17103
|
return getTreeItemWrapperCursor(props.isDisabled, props.selectable, props.nodeType);
|
|
17079
|
-
}, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2R3FDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+ICFwcm9wcy5pc0Rpc2FibGVkXHJcbiAgICA/IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuOTUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiB1bmRlZmluZWR9O1xuICAgIH1cbiAgfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG5gO1xyXG5jb25zdCBTdHlsZWRDaGVja2JveFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMuaGFzQWRkaXRpb25hbENvbnRlbnQgPyAnZmxleCcgOiAnaW5saW5lLWZsZXgnKX07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAke3Byb3BzID0+IGBjYWxjKDEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfTtcbmA7XHJcbmNvbnN0IFN0eWxlZEl0ZW1XcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdjb2x1bW4nIDogJ3JvdycpfTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZSwgcHJvcHMubm9kZVR5cGUpfTtcbmA7XHJcbmNvbnN0IEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA1fTtcbmA7XHJcbmV4cG9ydCBjb25zdCBUcmVlSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBpY29uLCBpbmRleCwgbGFiZWwsIGxhYmVsU3R5bGUsIHN0eWxlLCB0ZXN0SWQsIHRvcExldmVsLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdXNlSXNJbnZlcnNlKCk7XHJcbiAgICBjb25zdCB7IHNlbGVjdGFibGUsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCB9ID0gUmVhY3QudXNlQ29udGV4dChUcmVlVmlld0NvbnRleHQpO1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wcywgZm9yd2FyZGVkUmVmKTtcclxuICAgIGNvbnN0IHsgaXNEaXNhYmxlZCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3QgeyBjaGVja2JveENoYW5nZUhhbmRsZXIsIGNoZWNrZWRTdGF0dXMsIGV4cGFuZGVkLCBoYXNPd25UcmVlSXRlbXMsIGl0ZW1EZXB0aCwgaXRlbUlkLCBwYXJlbnREZXB0aCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiB3aXRoaW4gdGhlIGxhYmVsIGFuZCBhZGRpdGlvbmFsIGNvbnRlbnQgb2YgYSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIHVzaW5nIHRoZSBgVGFiYCBrZXksIGFjdGl2YXRlIHRoZW0gd2l0aCBgRW50ZXJgIG9yIGBTcGFjZWAsXHJcbiAgICAgKiBhbmQgZXhpdCBvdXRzaWRlIGFuZCBmb2N1cyB0aGUgd2hvbGUgdHJlZSBpdGVtIHdpdGggYEVzY2FwZWAuXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBrZXksIHRhcmdldCwgY3VycmVudFRhcmdldCwgc2hpZnRLZXkgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNTcGFjZSA9IGtleSA9PT0gJyAnO1xyXG4gICAgICAgIGNvbnN0IGlzRXNjYXBlID0ga2V5ID09PSAnRXNjYXBlJztcclxuICAgICAgICBjb25zdCBpc1RhYiA9IGtleSA9PT0gJ1RhYic7XHJcbiAgICAgICAgY29uc3QgaXNBY3RpdmF0aW9uS2V5ID0gaXNFbnRlciB8fCBpc1NwYWNlO1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBgVGFiYCwgd2UgbmF2aWdhdGUgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc1RhYiAmJiBpc0luc2lkZVRyZWVJdGVtKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHNMaXN0ID0gZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyhjdXJyZW50VGFyZ2V0LCBpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAgICAgLy8gRmlsdGVyIGxpc3Qgb2YgaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hpY2ggYXJlIG9ubHkgaW5jbHVkZWQgZm9yIGN1cnJlbnQgdHJlZSBpdGVtXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMgPSBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdC5maWx0ZXIoZWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvc2VzdFRyZWVJdGVtID0gZWwuY2xvc2VzdCgnW3JvbGU9XCJ0cmVlaXRlbVwiXScpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RUcmVlSXRlbSA9PT0gdHJlZUl0ZW1SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMuaW5kZXhPZihjdXJyZW50RWxlbWVudCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xyXG4gICAgICAgICAgICBjb25zdCB0b3RhbCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgZGlyZWN0aW9uICsgdG90YWwpICUgdG90YWw7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50c1tuZXh0SW5kZXhdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudFRvRm9jdXMuZm9jdXMoKSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQcmVzc2luZyBgRW50ZXJgIG9yIGBTcGFjZWAgb24gYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB3aWxsIHRyaWdnZXIgaXRzIGNsaWNrIGV2ZW50XHJcbiAgICAgICAgaWYgKGlzQWN0aXZhdGlvbktleSAmJiBpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgaW50ZXJhY3RpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1vdmVzIGZvY3VzIG91dHNpZGUgdGhlIHRyZWUgaXRlbSBhbmQgZm9jdXNlcyB0aGUgdHJlZSBpdGVtIGl0c2VsZiB3aGVuIGBFc2NhcGVgIGlzIHByZXNzZWRcclxuICAgICAgICBpZiAoaXNFc2NhcGUpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldElzSW5zaWRlVHJlZUl0ZW0oZmFsc2UpO1xyXG4gICAgICAgICAgICBjb25zdCB0cmVlSXRlbU5vZGUgPSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICBpZiAodHJlZUl0ZW1Ob2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0cmVlSXRlbU5vZGUuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KCdidXR0b24sIFtyb2xlPVwiYnV0dG9uXCJdLCBhW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3JvbGU9XCJtZW51aXRlbVwiXScpO1xyXG4gICAgICAgIC8vIFByZXZlbnRpbmcgc2VsZWN0aW5nIHRoZSBpdGVtIHdoZW4gY2xpY2tpbmcgb24gaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hlbiBgc2VsZWN0YWJsZWAgaXMgYHNpbmdsZWBcclxuICAgICAgICBpZiAoaW50ZXJhY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUNsaWNrKGV2ZW50LCBpdGVtSWQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBkZWZhdWx0SWNvbiA9IG5vZGVUeXBlID09PSBUcmVlTm9kZVR5cGUuYnJhbmNoID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9sZGVySWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXJ0aWNsZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKTtcclxuICAgIGNvbnN0IGxhYmVsVGV4dCA9IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZExhYmVsV3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBzdHlsZTogbGFiZWxTdHlsZSwgaWQ6IGAke2l0ZW1JZH0tbGFiZWxgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWxhYmVsYCB9LFxyXG4gICAgICAgIGhhc0ljb25zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IGlzSW52ZXJzZTogaXNJbnZlcnNlLCB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0taWNvbmAgfSwgaWNvbiB8fCBkZWZhdWx0SWNvbikpLFxyXG4gICAgICAgIGxhYmVsKSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbUFkZGl0aW9uYWxDb250ZW50ID0gYWRkaXRpb25hbENvbnRlbnQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIsIHsgdGhlbWU6IHRoZW1lLCBpZDogYCR7aXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAgfSwgYWRkaXRpb25hbENvbnRlbnQpKSA6IG51bGw7XHJcbiAgICAvLyBQcm9wcyBzaGFyZWQgYnkgQ2hlY2tib3ggYW5kIEluZGV0ZXJtaW5hdGVDaGVja2JveFxyXG4gICAgY29uc3QgY2hlY2tib3hQcm9wcyA9IHtcclxuICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcclxuICAgICAgICBoaWRlRm9jdXM6IHRydWUsXHJcbiAgICAgICAgaWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgICAgIGlucHV0U3R5bGU6IHsgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxUZXh0OiBsYWJlbFRleHQsXHJcbiAgICAgICAgb25DaGFuZ2U6IGNoZWNrYm94Q2hhbmdlSGFuZGxlcixcclxuICAgICAgICB0YWJJbmRleDogLTEsXHJcbiAgICAgICAgdGVzdElkOiBgJHtpdGVtSWR9LWNoZWNrYm94YCxcclxuICAgIH07XHJcbiAgICBjb25zdCBvbkV4cGFuZGVkQ2xpY2tlZCA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaGFuZGxlRXhwYW5kZWRDaGFuZ2UoZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdGFiSW5kZXggPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbVRvRm9jdXMgPT09IGl0ZW1JZCA/IDAgOiAtMTtcclxuICAgIH0sIFtpc0Rpc2FibGVkLCBpdGVtVG9Gb2N1cywgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBzaG91bGRTaG93Q2hlY2tib3ggPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUubXVsdGkgJiZcclxuICAgICAgICAoaXNUb3BMZXZlbFNlbGVjdGFibGUgIT09IGZhbHNlIHx8ICF0b3BMZXZlbCk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIFByZXNzaW5nIGBDdHJsICsgRW50ZXJgIG9yIGBDb21tYW5kICsgRW50ZXJgIGZvY3VzZXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnQgd2l0aGluIHRoZSB0cmVlIGl0ZW1cclxuICAgICAqIGFuZCBsb2NrcyBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgZm9jdXMgaXMgd2l0aGluIHRoZSBsYWJlbCBvciBhZGRpdGlvbmFsIGNvbnRlbnQsIGl0IGhhbmRsZXMga2V5IGV2ZW50cyBmb3IgaW50ZXJhY3Rpb24gZWxlbWVudHMuXHJcbiAgICAgKlxyXG4gICAgICogSXQgYWxzbyBoYW5kbGVzIHRoZSBvdGhlciBrZXlzIHRvIHRyaWdnZXIgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IG9uS2V5RG93bkhhbmRsZXIgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0IH0gPSBldmVudDtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0ga2V5ID09PSAnRW50ZXInO1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybE9yQ29tbWFuZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTtcclxuICAgICAgICBjb25zdCBpc0N0cmxFbnRlciA9IGlzQ3RybE9yQ29tbWFuZCAmJiBpc0VudGVyO1xyXG4gICAgICAgIC8vIElmIHRoZSBrZXkgaXMgQ3RybCArIEVudGVyIG9yIENvbW1hbmQgKyBFbnRlciwgZm9jdXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnRcclxuICAgICAgICAvLyBhbmQgbG9jayBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc0N0cmxFbnRlciAmJiB0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbSh0cnVlKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0WzBdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEVuc3VyZSB2YWxpZCBDU1Mgc2VsZWN0b3JzIGJ5IGVzY2FwaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAoZS5nLiwgcGVyaW9kcyBpbiBpdGVtSWQpXHJcbiAgICAgICAgY29uc3Qgc2FmZUl0ZW1JZCA9IENTUy5lc2NhcGUoaXRlbUlkKTtcclxuICAgICAgICBjb25zdCBpc1dpdGhpbkxhYmVsT3JBZGRpdGlvbmFsQ29udGVudCA9IHRhcmdldC5jbG9zZXN0KGAjJHtzYWZlSXRlbUlkfS1sYWJlbCwgIyR7c2FmZUl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCk7XHJcbiAgICAgICAgLy8gSWYgdGhlIHRhcmdldCBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaGFuZGxlIGtleSBldmVudHMgZm9yIHRob3NlIGFyZWFzXHJcbiAgICAgICAgaWYgKGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duKGV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmLCBoYW5kbGUga2V5IGRvd24gZm9yIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJdGVtV3JhcHBlciwgeyBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWl0ZW13cmFwcGVyYCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIGlkOiBgJHtpdGVtSWR9LWl0ZW13cmFwcGVyYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgc2VsZWN0YWJsZTogc2VsZWN0YWJsZSwgc3R5bGU6IHN0eWxlLCB0aGVtZTogdGhlbWUsIHJlZjogbWVyZ2VSZWZzKHJlZiwgZm9jdXNUcmFwRWxlbWVudCksIG9uQ2xpY2s6IGhhbmRsZU9uQ2xpY2sgfSxcclxuICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWV4cGFuZGAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FeHBhbmRlZENsaWNrZWQoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgc2hvdWxkU2hvd0NoZWNrYm94ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2hlY2tib3hXcmFwcGVyLCB7IGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCB0aGVtZTogdGhlbWUgfSxcclxuICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkPy50eXBlID09PSBUcmVlSXRlbSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7IHJvbGU6IFwiZ3JvdXBcIiB9LCBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2hpbGQucHJvcHMuaXRlbUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtRGVwdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpKSkgOiAoY2hpbGQpO1xyXG4gICAgICAgICAgICB9KSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
17104
|
+
}, ";" + ( "/*# 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= */"));
|
|
17080
17105
|
var AdditionalContentWrapper$1 = /*#__PURE__*/_styled("div", {
|
|
17081
17106
|
target: "e1xiryew0",
|
|
17082
17107
|
label: "AdditionalContentWrapper"
|
|
17083
17108
|
})("margin-bottom:", function (props) {
|
|
17084
17109
|
return props.theme.spaceScale.spacing05;
|
|
17085
|
-
}, ";" + ( "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtSDRDIiwiZmlsZSI6IlRyZWVJdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHRyYW5zcGFyZW50aXplIH0gZnJvbSAncG9saXNoZWQnO1xyXG5pbXBvcnQgeyBBcnRpY2xlSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgRXhwYW5kTW9yZUljb24sIEZvbGRlckljb24sIH0gZnJvbSAncmVhY3QtbWFnbWEtaWNvbnMnO1xyXG5pbXBvcnQgeyBUcmVlSXRlbUNvbnRleHQgfSBmcm9tICcuL1RyZWVJdGVtQ29udGV4dCc7XHJcbmltcG9ydCB7IFRyZWVWaWV3Q29udGV4dCB9IGZyb20gJy4vVHJlZVZpZXdDb250ZXh0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdTZWxlY3RhYmxlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNoZWNrZWRTdGF0dXNUb0Jvb2xlYW4sIHVzZVRyZWVJdGVtLCB9IGZyb20gJy4vdXNlVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyB1c2VJc0ludmVyc2UgfSBmcm9tICcuLi8uLi9pbnZlcnNlJztcclxuaW1wb3J0IHsgVGhlbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdGhlbWUvVGhlbWVDb250ZXh0JztcclxuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICcuLi9DaGVja2JveCc7XHJcbmltcG9ydCB7IEluZGV0ZXJtaW5hdGVDaGVja2JveCwgSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLCB9IGZyb20gJy4uL0luZGV0ZXJtaW5hdGVDaGVja2JveCc7XHJcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi9UcmFuc2l0aW9uJztcclxuaW1wb3J0IHsgY2FsY3VsYXRlT2Zmc2V0LCBnZXRUcmVlSXRlbUxhYmVsQ29sb3IsIGdldFRyZWVJdGVtV3JhcHBlckN1cnNvciwgVHJlZU5vZGVUeXBlLCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyB1c2VGb2N1c0xvY2sgfSBmcm9tICcuLi8uLi9ob29rcy91c2VGb2N1c0xvY2snO1xyXG5pbXBvcnQgeyBtZXJnZVJlZnMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmNvbnN0IFN0eWxlZFRyZWVJdGVtID0gc3R5bGVkLmxpIGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gZ2V0VHJlZUl0ZW1XcmFwcGVyQ3Vyc29yKHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnNlbGVjdGFibGVUeXBlLCBwcm9wcy5ub2RlVHlwZSl9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICR7cHJvcHMgPT4gY2FsY3VsYXRlT2Zmc2V0KHByb3BzLm5vZGVUeXBlLCBwcm9wcy5kZXB0aCl9O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZFxuICAgICAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyBwcm9wcy50aGVtZS5jb2xvcnMuZm9jdXNJbnZlcnNlXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5mb2N1c307XG4gICAgfVxuICB9XG5cbiAgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy5zZWxlY3RlZCAmJiBwcm9wcy5pc0ludmVyc2VcclxuICAgID8gdHJhbnNwYXJlbnRpemUoMC43LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgIDogcHJvcHMuc2VsZWN0ZWQgJiZcclxuICAgICAgICB0cmFuc3BhcmVudGl6ZSgwLjkyLCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMCl9O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUpfTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAke3Byb3BzID0+IGNhbGN1bGF0ZU9mZnNldChwcm9wcy5ub2RlVHlwZSwgcHJvcHMuZGVwdGgsIHRydWUsIHRydWUpfTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwMn07XG5cbiAgICAke3Byb3BzID0+IHByb3BzLnNlbGVjdGVkICYmXHJcbiAgICBjc3MgYFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMuaXNJbnZlcnNlXHJcbiAgICAgICAgPyBwcm9wcy50aGVtZS5jb2xvcnMudGVydGlhcnk1MDBcclxuICAgICAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5wcmltYXJ5NTAwfTtcbiAgICAgICAgICBibG9jay1zaXplOiAxMDAlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGlubGluZS1zaXplOiAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAyfTtcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+ICFwcm9wcy5pc0Rpc2FibGVkXHJcbiAgICA/IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgICAgID8gdHJhbnNwYXJlbnRpemUoMC44LCBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDkwMClcclxuICAgICAgICA6IHRyYW5zcGFyZW50aXplKDAuOTUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsOTAwKVxyXG4gICAgOiB1bmRlZmluZWR9O1xuICAgIH1cbiAgfVxuYDtcclxuY29uc3QgSWNvbldyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGNvbG9yOiAke3Byb3BzID0+IGdldFRyZWVJdGVtTGFiZWxDb2xvcihwcm9wcy5pc0ludmVyc2UsIHByb3BzLmlzRGlzYWJsZWQsIHByb3BzLnRoZW1lKX07XG4gIG1hcmdpbi1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwM307XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmljb25TaXplcy5tZWRpdW19cHg7XG4gICAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaWNvblNpemVzLm1lZGl1bX1weDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5gO1xyXG5jb25zdCBTdHlsZWRMYWJlbFdyYXBwZXIgPSBzdHlsZWQuc3BhbiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICB3aWR0aDogMTAwJTtcbmA7XHJcbmNvbnN0IFN0eWxlZEV4cGFuZFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDN9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbUxhYmVsQ29sb3IocHJvcHMuaXNJbnZlcnNlLCBwcm9wcy5pc0Rpc2FibGVkLCBwcm9wcy50aGVtZSl9O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zcGFjZVNjYWxlLnNwYWNpbmcwNn07XG5gO1xyXG5jb25zdCBTdHlsZWRDaGVja2JveFdyYXBwZXIgPSBzdHlsZWQuZGl2IGBcbiAgbWFyZ2luLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMuaGFzQWRkaXRpb25hbENvbnRlbnQgPyAnZmxleCcgOiAnaW5saW5lLWZsZXgnKX07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAke3Byb3BzID0+IGBjYWxjKDEwMCUgLSAke3Byb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzfSlgfTtcbmA7XHJcbmNvbnN0IFN0eWxlZEl0ZW1XcmFwcGVyID0gc3R5bGVkLmRpdiBgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3Byb3BzID0+IChwcm9wcy5oYXNBZGRpdGlvbmFsQ29udGVudCA/ICdjb2x1bW4nIDogJ3JvdycpfTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGN1cnNvcjogJHtwcm9wcyA9PiBnZXRUcmVlSXRlbVdyYXBwZXJDdXJzb3IocHJvcHMuaXNEaXNhYmxlZCwgcHJvcHMuc2VsZWN0YWJsZSwgcHJvcHMubm9kZVR5cGUpfTtcbmA7XHJcbmNvbnN0IEFkZGl0aW9uYWxDb250ZW50V3JhcHBlciA9IHN0eWxlZC5kaXYgYFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzA1fTtcbmA7XHJcbmV4cG9ydCBjb25zdCBUcmVlSXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcclxuICAgIGNvbnN0IHsgYWRkaXRpb25hbENvbnRlbnQsIGNoaWxkcmVuLCBpY29uLCBpbmRleCwgbGFiZWwsIGxhYmVsU3R5bGUsIHN0eWxlLCB0ZXN0SWQsIHRvcExldmVsLCAuLi5yZXN0IH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xyXG4gICAgY29uc3QgaXNJbnZlcnNlID0gdXNlSXNJbnZlcnNlKCk7XHJcbiAgICBjb25zdCB7IHNlbGVjdGFibGUsIGhhc0ljb25zLCBpdGVtVG9Gb2N1cywgaGFuZGxlRXhwYW5kZWRDaGFuZ2UsIGlzVG9wTGV2ZWxTZWxlY3RhYmxlLCB9ID0gUmVhY3QudXNlQ29udGV4dChUcmVlVmlld0NvbnRleHQpO1xyXG4gICAgY29uc3QgeyBjb250ZXh0VmFsdWUsIGhhbmRsZUNsaWNrLCBoYW5kbGVLZXlEb3duIH0gPSB1c2VUcmVlSXRlbShwcm9wcywgZm9yd2FyZGVkUmVmKTtcclxuICAgIGNvbnN0IHsgaXNEaXNhYmxlZCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3QgeyBjaGVja2JveENoYW5nZUhhbmRsZXIsIGNoZWNrZWRTdGF0dXMsIGV4cGFuZGVkLCBoYXNPd25UcmVlSXRlbXMsIGl0ZW1EZXB0aCwgaXRlbUlkLCBwYXJlbnREZXB0aCwgcmVmLCBzZWxlY3RlZEl0ZW1zLCB9ID0gY29udGV4dFZhbHVlO1xyXG4gICAgY29uc3Qgbm9kZVR5cGUgPSBoYXNPd25UcmVlSXRlbXMgPyBUcmVlTm9kZVR5cGUuYnJhbmNoIDogVHJlZU5vZGVUeXBlLmxlYWY7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlXHJcbiAgICAgICAgPyBzZWxlY3RlZEl0ZW1zPy5bMF0/Lml0ZW1JZCA9PT0gaXRlbUlkXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYXJpYUNoZWNrZWRWYWx1ZSA9IHNlbGVjdGFibGUgPT09IFRyZWVWaWV3U2VsZWN0YWJsZS5tdWx0aVxyXG4gICAgICAgID8gY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmluZGV0ZXJtaW5hdGVcclxuICAgICAgICAgICAgPyAnbWl4ZWQnXHJcbiAgICAgICAgICAgIDogY2hlY2tlZFN0YXR1cyA9PT0gSW5kZXRlcm1pbmF0ZUNoZWNrYm94U3RhdHVzLmNoZWNrZWRcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBbaXNJbnNpZGVUcmVlSXRlbSwgc2V0SXNJbnNpZGVUcmVlSXRlbV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGZvY3VzVHJhcEVsZW1lbnQgPSB1c2VGb2N1c0xvY2soaXNJbnNpZGVUcmVlSXRlbSk7XHJcbiAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnRzID0gJ2J1dHRvbiwgW3JvbGU9XCJidXR0b25cIl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG4gICAgY29uc3QgZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyA9IChjb250YWluZXIsIHNlbGVjdG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKS5maWx0ZXIoZWwgPT4gIWVsLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fFxyXG4gICAgICAgICAgICAoZWwudGFiSW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbC50YWJJbmRleCA+PSAwKSk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiB3aXRoaW4gdGhlIGxhYmVsIGFuZCBhZGRpdGlvbmFsIGNvbnRlbnQgb2YgYSB0cmVlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBuYXZpZ2F0ZSB0aHJvdWdoIGludGVyYWN0aXZlIGVsZW1lbnRzIHVzaW5nIHRoZSBgVGFiYCBrZXksIGFjdGl2YXRlIHRoZW0gd2l0aCBgRW50ZXJgIG9yIGBTcGFjZWAsXHJcbiAgICAgKiBhbmQgZXhpdCBvdXRzaWRlIGFuZCBmb2N1cyB0aGUgd2hvbGUgdHJlZSBpdGVtIHdpdGggYEVzY2FwZWAuXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBrZXksIHRhcmdldCwgY3VycmVudFRhcmdldCwgc2hpZnRLZXkgfSA9IGV2ZW50O1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGlzRW50ZXIgPSBrZXkgPT09ICdFbnRlcic7XHJcbiAgICAgICAgY29uc3QgaXNTcGFjZSA9IGtleSA9PT0gJyAnO1xyXG4gICAgICAgIGNvbnN0IGlzRXNjYXBlID0ga2V5ID09PSAnRXNjYXBlJztcclxuICAgICAgICBjb25zdCBpc1RhYiA9IGtleSA9PT0gJ1RhYic7XHJcbiAgICAgICAgY29uc3QgaXNBY3RpdmF0aW9uS2V5ID0gaXNFbnRlciB8fCBpc1NwYWNlO1xyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LmNsb3Nlc3QoaW50ZXJhY3RpdmVFbGVtZW50cyk7XHJcbiAgICAgICAgLy8gSWYgdGhlIGtleSBpcyBgVGFiYCwgd2UgbmF2aWdhdGUgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc1RhYiAmJiBpc0luc2lkZVRyZWVJdGVtKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGludGVyYWN0aXZlRWxlbWVudHNMaXN0ID0gZ2V0SW50ZXJhY3RpdmVFbGVtZW50cyhjdXJyZW50VGFyZ2V0LCBpbnRlcmFjdGl2ZUVsZW1lbnRzKTtcclxuICAgICAgICAgICAgLy8gRmlsdGVyIGxpc3Qgb2YgaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hpY2ggYXJlIG9ubHkgaW5jbHVkZWQgZm9yIGN1cnJlbnQgdHJlZSBpdGVtXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMgPSBpbnRlcmFjdGl2ZUVsZW1lbnRzTGlzdC5maWx0ZXIoZWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvc2VzdFRyZWVJdGVtID0gZWwuY2xvc2VzdCgnW3JvbGU9XCJ0cmVlaXRlbVwiXScpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RUcmVlSXRlbSA9PT0gdHJlZUl0ZW1SZWYuY3VycmVudDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMuaW5kZXhPZihjdXJyZW50RWxlbWVudCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xyXG4gICAgICAgICAgICBjb25zdCB0b3RhbCA9IGN1cnJlbnRUcmVlSXRlbUludGVyYWN0aXZlRWxlbWVudHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgZGlyZWN0aW9uICsgdG90YWwpICUgdG90YWw7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRUb0ZvY3VzID0gY3VycmVudFRyZWVJdGVtSW50ZXJhY3RpdmVFbGVtZW50c1tuZXh0SW5kZXhdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudFRvRm9jdXMuZm9jdXMoKSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQcmVzc2luZyBgRW50ZXJgIG9yIGBTcGFjZWAgb24gYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB3aWxsIHRyaWdnZXIgaXRzIGNsaWNrIGV2ZW50XHJcbiAgICAgICAgaWYgKGlzQWN0aXZhdGlvbktleSAmJiBpbnRlcmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgaW50ZXJhY3RpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1vdmVzIGZvY3VzIG91dHNpZGUgdGhlIHRyZWUgaXRlbSBhbmQgZm9jdXNlcyB0aGUgdHJlZSBpdGVtIGl0c2VsZiB3aGVuIGBFc2NhcGVgIGlzIHByZXNzZWRcclxuICAgICAgICBpZiAoaXNFc2NhcGUpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldElzSW5zaWRlVHJlZUl0ZW0oZmFsc2UpO1xyXG4gICAgICAgICAgICBjb25zdCB0cmVlSXRlbU5vZGUgPSB0cmVlSXRlbVJlZi5jdXJyZW50O1xyXG4gICAgICAgICAgICBpZiAodHJlZUl0ZW1Ob2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0cmVlSXRlbU5vZGUuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgICBjb25zdCBpbnRlcmFjdGl2ZUVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KCdidXR0b24sIFtyb2xlPVwiYnV0dG9uXCJdLCBhW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3JvbGU9XCJtZW51aXRlbVwiXScpO1xyXG4gICAgICAgIC8vIFByZXZlbnRpbmcgc2VsZWN0aW5nIHRoZSBpdGVtIHdoZW4gY2xpY2tpbmcgb24gaW50ZXJhY3RpdmUgZWxlbWVudHMgd2hlbiBgc2VsZWN0YWJsZWAgaXMgYHNpbmdsZWBcclxuICAgICAgICBpZiAoaW50ZXJhY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUuc2luZ2xlKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUNsaWNrKGV2ZW50LCBpdGVtSWQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCBkZWZhdWx0SWNvbiA9IG5vZGVUeXBlID09PSBUcmVlTm9kZVR5cGUuYnJhbmNoID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9sZGVySWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUgfSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXJ0aWNsZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKTtcclxuICAgIGNvbnN0IGxhYmVsVGV4dCA9IChSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlZExhYmVsV3JhcHBlciwgeyB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBzdHlsZTogbGFiZWxTdHlsZSwgaWQ6IGAke2l0ZW1JZH0tbGFiZWxgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWxhYmVsYCB9LFxyXG4gICAgICAgIGhhc0ljb25zICYmIChSZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLCB7IGlzSW52ZXJzZTogaXNJbnZlcnNlLCB0aGVtZTogdGhlbWUsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIFwiZGF0YS10ZXN0aWRcIjogYCR7dGVzdElkIHx8IGl0ZW1JZH0taWNvbmAgfSwgaWNvbiB8fCBkZWZhdWx0SWNvbikpLFxyXG4gICAgICAgIGxhYmVsKSk7XHJcbiAgICBjb25zdCB0cmVlSXRlbUFkZGl0aW9uYWxDb250ZW50ID0gYWRkaXRpb25hbENvbnRlbnQgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChBZGRpdGlvbmFsQ29udGVudFdyYXBwZXIsIHsgdGhlbWU6IHRoZW1lLCBpZDogYCR7aXRlbUlkfS1hZGRpdGlvbmFsY29udGVudHdyYXBwZXJgLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWFkZGl0aW9uYWxjb250ZW50d3JhcHBlcmAgfSwgYWRkaXRpb25hbENvbnRlbnQpKSA6IG51bGw7XHJcbiAgICAvLyBQcm9wcyBzaGFyZWQgYnkgQ2hlY2tib3ggYW5kIEluZGV0ZXJtaW5hdGVDaGVja2JveFxyXG4gICAgY29uc3QgY2hlY2tib3hQcm9wcyA9IHtcclxuICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcclxuICAgICAgICBoaWRlRm9jdXM6IHRydWUsXHJcbiAgICAgICAgaWQ6IGAke2l0ZW1JZH0tY2hlY2tib3hgLFxyXG4gICAgICAgIGlucHV0U3R5bGU6IHsgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNlU2NhbGUuc3BhY2luZzAzIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxyXG4gICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxUZXh0OiBsYWJlbFRleHQsXHJcbiAgICAgICAgb25DaGFuZ2U6IGNoZWNrYm94Q2hhbmdlSGFuZGxlcixcclxuICAgICAgICB0YWJJbmRleDogLTEsXHJcbiAgICAgICAgdGVzdElkOiBgJHtpdGVtSWR9LWNoZWNrYm94YCxcclxuICAgIH07XHJcbiAgICBjb25zdCBvbkV4cGFuZGVkQ2xpY2tlZCA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaGFuZGxlRXhwYW5kZWRDaGFuZ2UoZXZlbnQsIGl0ZW1JZCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdGFiSW5kZXggPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcclxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbVRvRm9jdXMgPT09IGl0ZW1JZCA/IDAgOiAtMTtcclxuICAgIH0sIFtpc0Rpc2FibGVkLCBpdGVtVG9Gb2N1cywgaXRlbUlkXSk7XHJcbiAgICBjb25zdCBzaG91bGRTaG93Q2hlY2tib3ggPSBzZWxlY3RhYmxlID09PSBUcmVlVmlld1NlbGVjdGFibGUubXVsdGkgJiZcclxuICAgICAgICAoaXNUb3BMZXZlbFNlbGVjdGFibGUgIT09IGZhbHNlIHx8ICF0b3BMZXZlbCk7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgdHJlZSBpdGVtLlxyXG4gICAgICpcclxuICAgICAqIFByZXNzaW5nIGBDdHJsICsgRW50ZXJgIG9yIGBDb21tYW5kICsgRW50ZXJgIGZvY3VzZXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnQgd2l0aGluIHRoZSB0cmVlIGl0ZW1cclxuICAgICAqIGFuZCBsb2NrcyBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgZm9jdXMgaXMgd2l0aGluIHRoZSBsYWJlbCBvciBhZGRpdGlvbmFsIGNvbnRlbnQsIGl0IGhhbmRsZXMga2V5IGV2ZW50cyBmb3IgaW50ZXJhY3Rpb24gZWxlbWVudHMuXHJcbiAgICAgKlxyXG4gICAgICogSXQgYWxzbyBoYW5kbGVzIHRoZSBvdGhlciBrZXlzIHRvIHRyaWdnZXIgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSB0cmVlIGl0ZW0uXHJcbiAgICAgKiAqKi9cclxuICAgIGNvbnN0IG9uS2V5RG93bkhhbmRsZXIgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdGFyZ2V0LCBjdXJyZW50VGFyZ2V0IH0gPSBldmVudDtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0ga2V5ID09PSAnRW50ZXInO1xyXG4gICAgICAgIGNvbnN0IGlzQ3RybE9yQ29tbWFuZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTtcclxuICAgICAgICBjb25zdCBpc0N0cmxFbnRlciA9IGlzQ3RybE9yQ29tbWFuZCAmJiBpc0VudGVyO1xyXG4gICAgICAgIC8vIElmIHRoZSBrZXkgaXMgQ3RybCArIEVudGVyIG9yIENvbW1hbmQgKyBFbnRlciwgZm9jdXMgdGhlIGZpcnN0IGludGVyYWN0aXZlIGVsZW1lbnRcclxuICAgICAgICAvLyBhbmQgbG9jayBmb2N1cyBpbnNpZGUgdGhlIHRyZWUgaXRlbVxyXG4gICAgICAgIGlmIChpc0N0cmxFbnRlciAmJiB0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgc2V0SXNJbnNpZGVUcmVlSXRlbSh0cnVlKTtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJhY3RpdmVFbGVtZW50c0xpc3QgPSBnZXRJbnRlcmFjdGl2ZUVsZW1lbnRzKGN1cnJlbnRUYXJnZXQsIGludGVyYWN0aXZlRWxlbWVudHMpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IGludGVyYWN0aXZlRWxlbWVudHNMaXN0WzBdO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFRvRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUb0ZvY3VzLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEVuc3VyZSB2YWxpZCBDU1Mgc2VsZWN0b3JzIGJ5IGVzY2FwaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAoZS5nLiwgcGVyaW9kcyBpbiBpdGVtSWQpXHJcbiAgICAgICAgY29uc3Qgc2FmZUl0ZW1JZCA9IENTUy5lc2NhcGUoaXRlbUlkKTtcclxuICAgICAgICBjb25zdCBpc1dpdGhpbkxhYmVsT3JBZGRpdGlvbmFsQ29udGVudCA9IHRhcmdldC5jbG9zZXN0KGAjJHtzYWZlSXRlbUlkfS1sYWJlbCwgIyR7c2FmZUl0ZW1JZH0tYWRkaXRpb25hbGNvbnRlbnR3cmFwcGVyYCk7XHJcbiAgICAgICAgLy8gSWYgdGhlIHRhcmdldCBpcyB3aXRoaW4gdGhlIGxhYmVsIG9yIGFkZGl0aW9uYWwgY29udGVudCwgaGFuZGxlIGtleSBldmVudHMgZm9yIHRob3NlIGFyZWFzXHJcbiAgICAgICAgaWYgKGlzV2l0aGluTGFiZWxPckFkZGl0aW9uYWxDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUxhYmVsQW5kQWRkaXRpb25hbENvbnRlbnRLZXlEb3duKGV2ZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlzIHRoZSB0cmVlIGl0ZW0gaXRzZWxmLCBoYW5kbGUga2V5IGRvd24gZm9yIHRoZSB0cmVlIGl0ZW1cclxuICAgICAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGhhbmRsZUtleURvd24oZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChUcmVlSXRlbUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGNvbnRleHRWYWx1ZSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkVHJlZUl0ZW0sIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgXCJhcmlhLWV4cGFuZGVkXCI6IGhhc093blRyZWVJdGVtcyA/IGV4cGFuZGVkIDogbnVsbCwgXCJhcmlhLXNlbGVjdGVkXCI6IHNlbGVjdGVkSXRlbSwgXCJhcmlhLWNoZWNrZWRcIjogc2hvdWxkU2hvd0NoZWNrYm94ID8gYXJpYUNoZWNrZWRWYWx1ZSA6IG51bGwsIFwiZGF0YS10ZXN0aWRcIjogdGVzdElkLCBkZXB0aDogaXRlbURlcHRoLCBoYXNPd25UcmVlSXRlbXM6IGhhc093blRyZWVJdGVtcywgaWQ6IGl0ZW1JZCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgcm9sZTogXCJ0cmVlaXRlbVwiLCBzZWxlY3RhYmxlVHlwZTogc2VsZWN0YWJsZSwgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbSwgdGhlbWU6IHRoZW1lLCB0YWJJbmRleDogdGFiSW5kZXgsIG9uS2V5RG93bjogb25LZXlEb3duSGFuZGxlciwgcmVmOiB0cmVlSXRlbVJlZiB9KSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRJdGVtV3JhcHBlciwgeyBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCA/PyBpdGVtSWR9LWl0ZW13cmFwcGVyYCwgZGVwdGg6IGl0ZW1EZXB0aCwgaGFzQWRkaXRpb25hbENvbnRlbnQ6ICEhYWRkaXRpb25hbENvbnRlbnQsIGlkOiBgJHtpdGVtSWR9LWl0ZW13cmFwcGVyYCwgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCwgaXNJbnZlcnNlOiBpc0ludmVyc2UsIG5vZGVUeXBlOiBub2RlVHlwZSwgc2VsZWN0YWJsZTogc2VsZWN0YWJsZSwgc3R5bGU6IHN0eWxlLCB0aGVtZTogdGhlbWUsIHJlZjogbWVyZ2VSZWZzKHJlZiwgZm9jdXNUcmFwRWxlbWVudCksIG9uQ2xpY2s6IGhhbmRsZU9uQ2xpY2sgfSxcclxuICAgICAgICAgICAgICAgIGhhc093blRyZWVJdGVtcyAmJiAoUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZWRFeHBhbmRXcmFwcGVyLCB7IFwiYXJpYS1oaWRkZW5cIjogQm9vbGVhbighZXhwYW5kZWQpLCBcImRhdGEtdGVzdGlkXCI6IGAke3Rlc3RJZCB8fCBpdGVtSWR9LWV4cGFuZGAsIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBvbkNsaWNrOiBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FeHBhbmRlZENsaWNrZWQoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhlbWU6IHRoZW1lIH0sIGV4cGFuZGVkID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kTW9yZUljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KENoZXZyb25SaWdodEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlIH0pKSkpLFxyXG4gICAgICAgICAgICAgICAgc2hvdWxkU2hvd0NoZWNrYm94ID8gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVkQ2hlY2tib3hXcmFwcGVyLCB7IGhhc0FkZGl0aW9uYWxDb250ZW50OiAhIWFkZGl0aW9uYWxDb250ZW50LCB0aGVtZTogdGhlbWUgfSxcclxuICAgICAgICAgICAgICAgICAgICBoYXNPd25UcmVlSXRlbXMgPyAoUmVhY3QuY3JlYXRlRWxlbWVudChJbmRldGVybWluYXRlQ2hlY2tib3gsIE9iamVjdC5hc3NpZ24oe30sIGNoZWNrYm94UHJvcHMsIHsgc3RhdHVzOiBjaGVja2VkU3RhdHVzIH0pKSkgOiAoUmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwgT2JqZWN0LmFzc2lnbih7fSwgY2hlY2tib3hQcm9wcywgeyBjaGVja2VkOiBjaGVja2VkU3RhdHVzVG9Cb29sZWFuKGNoZWNrZWRTdGF0dXMpIH0pKSksXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZUl0ZW1BZGRpdGlvbmFsQ29udGVudCkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVJdGVtQWRkaXRpb25hbENvbnRlbnQpKSksXHJcbiAgICAgICAgICAgIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkPy50eXBlID09PSBUcmVlSXRlbSA/IChSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb24sIHsgaXNPcGVuOiBleHBhbmRlZCwgdW5tb3VudE9uRXhpdDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7IHJvbGU6IFwiZ3JvdXBcIiB9LCBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2hpbGQucHJvcHMuaXRlbUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtRGVwdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudERlcHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpKSkgOiAoY2hpbGQpO1xyXG4gICAgICAgICAgICB9KSkpKTtcclxufSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVJdGVtLmpzLm1hcCJdfQ== */"));
|
|
17110
|
+
}, ";" + ( "/*# 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= */"));
|
|
17086
17111
|
var TreeItem = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
17087
17112
|
var _selectedItems$;
|
|
17088
17113
|
var additionalContent = props.additionalContent,
|
|
17089
17114
|
children = props.children,
|
|
17115
|
+
hoverColor = props.hoverColor,
|
|
17090
17116
|
icon = props.icon,
|
|
17091
17117
|
label = props.label,
|
|
17092
17118
|
labelStyle = props.labelStyle,
|
|
17093
17119
|
style = props.style,
|
|
17094
17120
|
testId = props.testId,
|
|
17095
17121
|
topLevel = props.topLevel,
|
|
17122
|
+
treeItemStyles = props.treeItemStyles,
|
|
17096
17123
|
rest = _objectWithoutPropertiesLoose(props, _excluded$1I);
|
|
17097
17124
|
var theme = React.useContext(ThemeContext);
|
|
17098
17125
|
var isInverse = useIsInverse();
|
|
17099
17126
|
var _React$useContext = React.useContext(TreeViewContext),
|
|
17100
|
-
|
|
17127
|
+
expandIconStyles = _React$useContext.expandIconStyles,
|
|
17128
|
+
handleExpandedChange = _React$useContext.handleExpandedChange,
|
|
17101
17129
|
hasIcons = _React$useContext.hasIcons,
|
|
17102
17130
|
itemToFocus = _React$useContext.itemToFocus,
|
|
17103
|
-
|
|
17104
|
-
|
|
17131
|
+
isTopLevelSelectable = _React$useContext.isTopLevelSelectable,
|
|
17132
|
+
selectable = _React$useContext.selectable;
|
|
17105
17133
|
var _useTreeItem = useTreeItem(props, forwardedRef),
|
|
17106
17134
|
contextValue = _useTreeItem.contextValue,
|
|
17107
17135
|
handleClick = _useTreeItem.handleClick,
|
|
@@ -17299,6 +17327,8 @@ var TreeItem = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
17299
17327
|
};
|
|
17300
17328
|
return React.createElement(TreeItemContext.Provider, {
|
|
17301
17329
|
value: contextValue
|
|
17330
|
+
}, React.createElement("div", {
|
|
17331
|
+
style: treeItemStyles
|
|
17302
17332
|
}, React.createElement(StyledTreeItem, Object.assign({}, rest, {
|
|
17303
17333
|
"aria-expanded": hasOwnTreeItems ? expanded : null,
|
|
17304
17334
|
"aria-selected": selectedItem,
|
|
@@ -17316,11 +17346,13 @@ var TreeItem = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
17316
17346
|
theme: theme,
|
|
17317
17347
|
tabIndex: tabIndex,
|
|
17318
17348
|
onKeyDown: onKeyDownHandler,
|
|
17319
|
-
ref: treeItemRef
|
|
17349
|
+
ref: treeItemRef,
|
|
17350
|
+
hoverColor: hoverColor
|
|
17320
17351
|
}), React.createElement(StyledItemWrapper, {
|
|
17321
17352
|
"data-testid": (testId != null ? testId : itemId) + "-itemwrapper",
|
|
17322
17353
|
depth: itemDepth,
|
|
17323
17354
|
hasAdditionalContent: !!additionalContent,
|
|
17355
|
+
hasCustomIconSize: !!(expandIconStyles != null && expandIconStyles.size),
|
|
17324
17356
|
id: itemId + "-itemwrapper",
|
|
17325
17357
|
isDisabled: isDisabled,
|
|
17326
17358
|
isInverse: isInverse,
|
|
@@ -17332,6 +17364,8 @@ var TreeItem = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
17332
17364
|
onClick: handleOnClick
|
|
17333
17365
|
}, hasOwnTreeItems && React.createElement(StyledExpandWrapper, {
|
|
17334
17366
|
"aria-hidden": Boolean(!expanded),
|
|
17367
|
+
size: expandIconStyles == null ? void 0 : expandIconStyles.size,
|
|
17368
|
+
color: expandIconStyles == null ? void 0 : expandIconStyles.color,
|
|
17335
17369
|
"data-testid": (testId || itemId) + "-expand",
|
|
17336
17370
|
isDisabled: isDisabled,
|
|
17337
17371
|
isInverse: isInverse,
|
|
@@ -17342,9 +17376,11 @@ var TreeItem = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
17342
17376
|
},
|
|
17343
17377
|
theme: theme
|
|
17344
17378
|
}, expanded ? React.createElement(reactMagmaIcons.ExpandMoreIcon, {
|
|
17345
|
-
"aria-hidden": true
|
|
17379
|
+
"aria-hidden": true,
|
|
17380
|
+
size: expandIconStyles == null ? void 0 : expandIconStyles.size
|
|
17346
17381
|
}) : React.createElement(reactMagmaIcons.ChevronRightIcon, {
|
|
17347
|
-
"aria-hidden": true
|
|
17382
|
+
"aria-hidden": true,
|
|
17383
|
+
size: expandIconStyles == null ? void 0 : expandIconStyles.size
|
|
17348
17384
|
})), shouldShowCheckbox ? React.createElement(StyledCheckboxWrapper, {
|
|
17349
17385
|
hasAdditionalContent: !!additionalContent,
|
|
17350
17386
|
theme: theme
|
|
@@ -17365,7 +17401,7 @@ var TreeItem = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
17365
17401
|
parentDepth: parentDepth,
|
|
17366
17402
|
topLevel: false
|
|
17367
17403
|
}))) : child;
|
|
17368
|
-
})));
|
|
17404
|
+
}))));
|
|
17369
17405
|
});
|
|
17370
17406
|
|
|
17371
17407
|
function useTreeView(props) {
|
|
@@ -17383,7 +17419,8 @@ function useTreeView(props) {
|
|
|
17383
17419
|
apiRef = props.apiRef,
|
|
17384
17420
|
isDisabled = props.isDisabled,
|
|
17385
17421
|
_props$isTopLevelSele = props.isTopLevelSelectable,
|
|
17386
|
-
isTopLevelSelectable = _props$isTopLevelSele === void 0 ? true : _props$isTopLevelSele
|
|
17422
|
+
isTopLevelSelectable = _props$isTopLevelSele === void 0 ? true : _props$isTopLevelSele,
|
|
17423
|
+
expandIconStyles = props.expandIconStyles;
|
|
17387
17424
|
var hasPreselectedItems = Boolean(preselectedItems);
|
|
17388
17425
|
var _React$useState = React.useState(function () {
|
|
17389
17426
|
return getInitialItems({
|
|
@@ -17739,6 +17776,7 @@ function useTreeView(props) {
|
|
|
17739
17776
|
selectItem: selectItem,
|
|
17740
17777
|
handleExpandedChange: handleExpandedChange,
|
|
17741
17778
|
expandedSet: expandedSet,
|
|
17779
|
+
expandIconStyles: expandIconStyles,
|
|
17742
17780
|
isTopLevelSelectable: isTopLevelSelectable
|
|
17743
17781
|
};
|
|
17744
17782
|
return {
|