@ultraviolet/plus 0.21.32 → 0.21.34
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/ContentCard/index.cjs +1 -2
- package/dist/components/ContentCard/index.js +1 -2
- package/dist/components/ContentCardGroup/Card.cjs +2 -4
- package/dist/components/ContentCardGroup/Card.js +2 -4
- package/dist/components/ContentCardGroup/index.cjs +2 -5
- package/dist/components/ContentCardGroup/index.js +2 -5
- package/dist/components/Conversation/index.cjs +2 -4
- package/dist/components/Conversation/index.js +2 -4
- package/dist/components/CustomerSatisfaction/index.cjs +1 -2
- package/dist/components/CustomerSatisfaction/index.js +1 -2
- package/dist/components/EstimateCost/Components/Item.cjs +8 -12
- package/dist/components/EstimateCost/Components/Item.js +8 -12
- package/dist/components/EstimateCost/Components/Unit.cjs +1 -2
- package/dist/components/EstimateCost/Components/Unit.js +1 -2
- package/dist/components/EstimateCost/Components/UnitInput.cjs +4 -4
- package/dist/components/EstimateCost/Components/UnitInput.js +4 -4
- package/dist/components/EstimateCost/EstimateCostContent.cjs +1 -2
- package/dist/components/EstimateCost/EstimateCostContent.js +1 -2
- package/dist/components/EstimateCost/OverlayComponent.cjs +1 -2
- package/dist/components/EstimateCost/OverlayComponent.js +1 -2
- package/dist/components/EstimateCost/componentStyle.cjs +5 -10
- package/dist/components/EstimateCost/componentStyle.js +5 -10
- package/dist/components/Navigation/Footer.cjs +67 -0
- package/dist/components/Navigation/Footer.d.ts +8 -0
- package/dist/components/Navigation/Footer.js +65 -0
- package/dist/components/Navigation/Header.cjs +35 -0
- package/dist/components/Navigation/Header.d.ts +6 -0
- package/dist/components/Navigation/Header.js +33 -0
- package/dist/components/Navigation/Navigation.d.ts +2 -2
- package/dist/components/Navigation/NavigationContent.cjs +13 -73
- package/dist/components/Navigation/NavigationContent.js +15 -75
- package/dist/components/Navigation/components/Item.cjs +22 -29
- package/dist/components/Navigation/components/Item.d.ts +1 -1
- package/dist/components/Navigation/components/Item.js +23 -30
- package/dist/components/Navigation/components/PinnedItems.cjs +1 -2
- package/dist/components/Navigation/components/PinnedItems.js +1 -2
- package/dist/components/SteppedListCard/Step.cjs +2 -3
- package/dist/components/SteppedListCard/Step.js +3 -4
- package/dist/components/SteppedListCard/SteppedListContainer.cjs +3 -4
- package/dist/components/SteppedListCard/SteppedListContainer.d.ts +1 -1
- package/dist/components/SteppedListCard/SteppedListContainer.js +3 -4
- package/dist/components/SteppedListCard/SteppedListContent.cjs +20 -18
- package/dist/components/SteppedListCard/SteppedListContent.d.ts +1 -1
- package/dist/components/SteppedListCard/SteppedListContent.js +21 -19
- package/package.json +3 -3
|
@@ -4,7 +4,7 @@ import * as CategoryIcon from "@ultraviolet/icons/category";
|
|
|
4
4
|
import { ConsoleCategoryIcon } from "@ultraviolet/icons/category";
|
|
5
5
|
import { Icon } from "@ultraviolet/icons/legacy";
|
|
6
6
|
import { Button, Badge, MenuV2, Stack, Text, fadeIn, Tooltip, Expandable } from "@ultraviolet/ui";
|
|
7
|
-
import { useEffect, useReducer, useCallback, useMemo, Children, isValidElement, cloneElement } from "react";
|
|
7
|
+
import { memo, useEffect, useReducer, useCallback, useMemo, Children, isValidElement, cloneElement } from "react";
|
|
8
8
|
import { useNavigation } from "../NavigationProvider.js";
|
|
9
9
|
import { shrinkHeight, ANIMATION_DURATION } from "../constants.js";
|
|
10
10
|
function _EMOTION_STRINGIFIED_CSS_ERROR__() {
|
|
@@ -20,8 +20,7 @@ const RelativeDiv = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "pro
|
|
|
20
20
|
styles: "position:relative"
|
|
21
21
|
} : {
|
|
22
22
|
name: "bjn8wh",
|
|
23
|
-
styles: "position:relative",
|
|
24
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9DOEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */",
|
|
23
|
+
styles: "position:relative/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDOEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */",
|
|
25
24
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
26
25
|
});
|
|
27
26
|
const StyledIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "production" ? {
|
|
@@ -40,14 +39,13 @@ const StyledIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "produ
|
|
|
40
39
|
}) => theme.colors.neutral.backgroundWeakHover, ";", ({
|
|
41
40
|
active,
|
|
42
41
|
theme
|
|
43
|
-
}) => active ? `background: ${theme.colors.primary.backgroundHover};` : null, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBDd0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */"));
|
|
42
|
+
}) => active ? `background: ${theme.colors.primary.backgroundHover};` : null, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDd0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */"));
|
|
44
43
|
const NeutralButtonLink = process.env.NODE_ENV === "production" ? {
|
|
45
44
|
name: "rhgg7c",
|
|
46
45
|
styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left"
|
|
47
46
|
} : {
|
|
48
47
|
name: "1kb8ns1-NeutralButtonLink",
|
|
49
|
-
styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left;label:NeutralButtonLink;",
|
|
50
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlENkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */",
|
|
48
|
+
styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left;label:NeutralButtonLink;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBENkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */",
|
|
51
49
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
52
50
|
};
|
|
53
51
|
const LocalExpandButton = /* @__PURE__ */ _styled(Button, process.env.NODE_ENV === "production" ? {
|
|
@@ -60,8 +58,7 @@ const LocalExpandButton = /* @__PURE__ */ _styled(Button, process.env.NODE_ENV =
|
|
|
60
58
|
styles: "opacity:0;right:0;position:absolute;left:-24px;top:0;bottom:0;margin:auto;&:hover,&:focus,&:active{opacity:1;}"
|
|
61
59
|
} : {
|
|
62
60
|
name: "9hkyle",
|
|
63
|
-
styles: "opacity:0;right:0;position:absolute;left:-24px;top:0;bottom:0;margin:auto;&:hover,&:focus,&:active{opacity:1;}",
|
|
64
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtFd0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */",
|
|
61
|
+
styles: "opacity:0;right:0;position:absolute;left:-24px;top:0;bottom:0;margin:auto;&:hover,&:focus,&:active{opacity:1;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1Fd0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */",
|
|
65
62
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
66
63
|
});
|
|
67
64
|
const PinnedButton = LocalExpandButton.withComponent("div", process.env.NODE_ENV === "production" ? {
|
|
@@ -77,13 +74,13 @@ const GrabIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "product
|
|
|
77
74
|
label: "GrabIcon"
|
|
78
75
|
})("opacity:0;margin:0 ", ({
|
|
79
76
|
theme
|
|
80
|
-
}) => theme.space["0.25"], ";cursor:grab;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9GNkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */"));
|
|
77
|
+
}) => theme.space["0.25"], ";cursor:grab;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFGNkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */"));
|
|
81
78
|
const StyledBadge = /* @__PURE__ */ _styled(Badge, process.env.NODE_ENV === "production" ? {
|
|
82
79
|
target: "e134hokc9"
|
|
83
80
|
} : {
|
|
84
81
|
target: "e134hokc9",
|
|
85
82
|
label: "StyledBadge"
|
|
86
|
-
})(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBGaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */");
|
|
83
|
+
})(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJGaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */");
|
|
87
84
|
const StyledMenuItem = /* @__PURE__ */ _styled(MenuV2.Item, process.env.NODE_ENV === "production" ? {
|
|
88
85
|
shouldForwardProp: (prop) => !["isPinnable"].includes(prop),
|
|
89
86
|
target: "e134hokc8"
|
|
@@ -93,7 +90,7 @@ const StyledMenuItem = /* @__PURE__ */ _styled(MenuV2.Item, process.env.NODE_ENV
|
|
|
93
90
|
label: "StyledMenuItem"
|
|
94
91
|
})("text-align:left;&:hover,&:focus,&:active{", PinnedButton, "{opacity:1;}", StyledBadge, "{opacity:", ({
|
|
95
92
|
isPinnable
|
|
96
|
-
}) => isPinnable ? 0 : 1, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdHRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWR1Y2VyLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgfVxuYFxuXG5jb25zdCBOZXV0cmFsQnV0dG9uTGluayA9IGNzc2BcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuYFxuXG4vLyBQaW4gYnV0dG9uIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbmNvbnN0IExvY2FsRXhwYW5kQnV0dG9uID0gc3R5bGVkKEJ1dHRvbilgXG4gIG9wYWNpdHk6IDA7XG4gIHJpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0yNHB4O1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG5cbmNvbnN0IFBpbm5lZEJ1dHRvbiA9IExvY2FsRXhwYW5kQnV0dG9uLndpdGhDb21wb25lbnQoJ2RpdicpXG5cbmNvbnN0IEdyYWJJY29uID0gc3R5bGVkKEljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9ICh7XG4gIGNoaWxkcmVuLFxuICBjYXRlZ29yeUljb24sXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gIGxhYmVsLFxuICBzdWJMYWJlbCxcbiAgYmFkZ2VUZXh0LFxuICBiYWRnZVNlbnRpbWVudCxcbiAgaHJlZixcbiAgb25Ub2dnbGUsXG4gIG9uQ2xpY2tQaW5VbnBpbixcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbiAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gICAgc2hvdWxkQW5pbWF0ZSxcbiAgICBhbmltYXRpb25UeXBlLFxuICB9ID0gY29udGV4dFxuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgKVxuXG4gIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICBjb25zdCBQYWRkZWRTdGFjayA9IG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSByZXR1cm4gZmFsc2VcblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICBjb25zdCBoYXNBY3RpdmVDaGlsZHJlbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgcmV0dXJuIChcbiAgICAgIENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICApIGFzIGJvb2xlYW5bXVxuICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgfSwgW2NoaWxkcmVuXSlcblxuICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoYXMpIHtcbiAgICAgIHJldHVybiBhc1xuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuICdhJ1xuICAgIH1cblxuICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgcmV0dXJuICdkaXYnXG4gICAgfVxuXG4gICAgcmV0dXJuICdidXR0b24nXG4gIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICgpID0+IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZyksXG4gICAgW2NvbnRhaW5lclRhZ10sXG4gIClcblxuICBjb25zdCBDYXRlZ29yeUljb25Vc2VkID0gY2F0ZWdvcnlJY29uXG4gICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgIGAke1xuICAgICAgICAgIGNhdGVnb3J5SWNvbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNhdGVnb3J5SWNvbi5zbGljZSgxKVxuICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICBdXG4gICAgOiBudWxsXG5cbiAgY29uc3QgYXJpYUV4cGFuZGVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgY29uc3QgaXNQaW5EaXNhYmxlZCA9IHBpbm5lZEl0ZW1zLmxlbmd0aCA+PSBwaW5MaW1pdFxuICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi5saW1pdCddXG4gICAgfVxuXG4gICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgfVxuXG4gICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICB9LCBbaXNJdGVtUGlubmVkLCBpc1BpbkRpc2FibGVkLCBsb2NhbGVzXSlcblxuICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gIH1cblxuICBjb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICB9XG5cbiAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgLy8gQXZvaWQgYW5pbWF0aW9uIG9mIGFsbCBleHBlbmRhYmxlIEl0ZW0gZHVyaW5nIGNvbGxhcHNlLCBleHBlbmQgb2YgdGhlIE5hdmlnYXRpb25cbiAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgIH1cblxuICAgIHJldHVybiAwXG4gIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IGNoaWxkLFxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e2hyZWYgPyAnX2JsYW5rJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1hbmltYXRpb24tdHlwZT17YW5pbWF0aW9uVHlwZX1cbiAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxTdHJvbmdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9PlxuICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtpbnRlcm5hbEV4cGFuZGVkID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */"));
|
|
93
|
+
}) => isPinnable ? 0 : 1, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlHRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICBtZW1vLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWR1Y2VyLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgfVxuYFxuXG5jb25zdCBOZXV0cmFsQnV0dG9uTGluayA9IGNzc2BcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuYFxuXG4vLyBQaW4gYnV0dG9uIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbmNvbnN0IExvY2FsRXhwYW5kQnV0dG9uID0gc3R5bGVkKEJ1dHRvbilgXG4gIG9wYWNpdHk6IDA7XG4gIHJpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0yNHB4O1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG5cbmNvbnN0IFBpbm5lZEJ1dHRvbiA9IExvY2FsRXhwYW5kQnV0dG9uLndpdGhDb21wb25lbnQoJ2RpdicpXG5cbmNvbnN0IEdyYWJJY29uID0gc3R5bGVkKEljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgICBsYWJlbCxcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICBvblRvZ2dsZSxcbiAgICBvbkNsaWNrUGluVW5waW4sXG4gICAgdG9nZ2xlLFxuICAgIGFjdGl2ZSxcbiAgICBub1BpbkJ1dHRvbixcbiAgICB0eXBlID0gJ2RlZmF1bHQnLFxuICAgIGhhc1BhcmVudHMsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgYXJpYUV4cGFuZGVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgIWludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gICAgY29uc3QgaXNQaW5EaXNhYmxlZCA9IHBpbm5lZEl0ZW1zLmxlbmd0aCA+PSBwaW5MaW1pdFxuICAgIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi5saW1pdCddXG4gICAgICB9XG5cbiAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgICB9LCBbaXNJdGVtUGlubmVkLCBpc1BpbkRpc2FibGVkLCBsb2NhbGVzXSlcblxuICAgIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgICB9XG5cbiAgICBjb25zdCBleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgICAgLy8gQXZvaWQgYW5pbWF0aW9uIG9mIGFsbCBleHBlbmRhYmxlIEl0ZW0gZHVyaW5nIGNvbGxhcHNlLCBleHBlbmQgb2YgdGhlIE5hdmlnYXRpb25cbiAgICAgIGlmIChzaG91bGRBbmltYXRlICYmIHR5cGVvZiBhbmltYXRpb24gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIDBcbiAgICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gICAgaWYgKGV4cGFuZGVkIHx8ICghZXhwYW5kZWQgJiYgYW5pbWF0aW9uID09PSAnZXhwYW5kJykpIHtcbiAgICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogY2hpbGQsXG4gICAgICApXG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1pcy1hY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb24tdHlwZT17YW5pbWF0aW9uVHlwZX1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgICAgZXhwYW5kZWQgPyBvbkRyYWdTdGFydFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgICAgZXhwYW5kZWQgPyBvbkRyYWdTdG9wVHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGRhdGEtdGVzdElkPXtkYXRhVGVzdElkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */"));
|
|
97
94
|
const StyledMenu = /* @__PURE__ */ _styled(MenuV2, process.env.NODE_ENV === "production" ? {
|
|
98
95
|
target: "e134hokc7"
|
|
99
96
|
} : {
|
|
@@ -104,8 +101,7 @@ const StyledMenu = /* @__PURE__ */ _styled(MenuV2, process.env.NODE_ENV === "pro
|
|
|
104
101
|
styles: "width:180px"
|
|
105
102
|
} : {
|
|
106
103
|
name: "educr3",
|
|
107
|
-
styles: "width:180px",
|
|
108
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStHaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */",
|
|
104
|
+
styles: "width:180px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdIaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */",
|
|
109
105
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
110
106
|
});
|
|
111
107
|
const PaddingStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
|
|
@@ -118,8 +114,7 @@ const PaddingStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "pr
|
|
|
118
114
|
styles: "padding-left:28px"
|
|
119
115
|
} : {
|
|
120
116
|
name: "13feash",
|
|
121
|
-
styles: "padding-left:28px",
|
|
122
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1Ia0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */",
|
|
117
|
+
styles: "padding-left:28px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Ia0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */",
|
|
123
118
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
124
119
|
});
|
|
125
120
|
const AnimatedIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "production" ? {
|
|
@@ -127,7 +122,7 @@ const AnimatedIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "pro
|
|
|
127
122
|
} : {
|
|
128
123
|
target: "e134hokc5",
|
|
129
124
|
label: "AnimatedIcon"
|
|
130
|
-
})(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVIaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */");
|
|
125
|
+
})(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdIaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */");
|
|
131
126
|
const WrapText = /* @__PURE__ */ _styled(Text, process.env.NODE_ENV === "production" ? {
|
|
132
127
|
shouldForwardProp: (prop) => !["animation", "subLabel", "textProminence"].includes(prop),
|
|
133
128
|
target: "e134hokc4"
|
|
@@ -139,7 +134,7 @@ const WrapText = /* @__PURE__ */ _styled(Text, process.env.NODE_ENV === "product
|
|
|
139
134
|
animation
|
|
140
135
|
}) => animation ? "normal" : "anywhere", ";white-space:", ({
|
|
141
136
|
animation
|
|
142
|
-
}) => animation ? "nowrap" : "normal", ";overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:pre-wrap;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStIRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWR1Y2VyLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgfVxuYFxuXG5jb25zdCBOZXV0cmFsQnV0dG9uTGluayA9IGNzc2BcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuYFxuXG4vLyBQaW4gYnV0dG9uIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbmNvbnN0IExvY2FsRXhwYW5kQnV0dG9uID0gc3R5bGVkKEJ1dHRvbilgXG4gIG9wYWNpdHk6IDA7XG4gIHJpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0yNHB4O1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG5cbmNvbnN0IFBpbm5lZEJ1dHRvbiA9IExvY2FsRXhwYW5kQnV0dG9uLndpdGhDb21wb25lbnQoJ2RpdicpXG5cbmNvbnN0IEdyYWJJY29uID0gc3R5bGVkKEljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9ICh7XG4gIGNoaWxkcmVuLFxuICBjYXRlZ29yeUljb24sXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gIGxhYmVsLFxuICBzdWJMYWJlbCxcbiAgYmFkZ2VUZXh0LFxuICBiYWRnZVNlbnRpbWVudCxcbiAgaHJlZixcbiAgb25Ub2dnbGUsXG4gIG9uQ2xpY2tQaW5VbnBpbixcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbiAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gICAgc2hvdWxkQW5pbWF0ZSxcbiAgICBhbmltYXRpb25UeXBlLFxuICB9ID0gY29udGV4dFxuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgKVxuXG4gIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICBjb25zdCBQYWRkZWRTdGFjayA9IG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSByZXR1cm4gZmFsc2VcblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICBjb25zdCBoYXNBY3RpdmVDaGlsZHJlbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgcmV0dXJuIChcbiAgICAgIENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICApIGFzIGJvb2xlYW5bXVxuICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgfSwgW2NoaWxkcmVuXSlcblxuICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoYXMpIHtcbiAgICAgIHJldHVybiBhc1xuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuICdhJ1xuICAgIH1cblxuICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgcmV0dXJuICdkaXYnXG4gICAgfVxuXG4gICAgcmV0dXJuICdidXR0b24nXG4gIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICgpID0+IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZyksXG4gICAgW2NvbnRhaW5lclRhZ10sXG4gIClcblxuICBjb25zdCBDYXRlZ29yeUljb25Vc2VkID0gY2F0ZWdvcnlJY29uXG4gICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgIGAke1xuICAgICAgICAgIGNhdGVnb3J5SWNvbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNhdGVnb3J5SWNvbi5zbGljZSgxKVxuICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICBdXG4gICAgOiBudWxsXG5cbiAgY29uc3QgYXJpYUV4cGFuZGVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxFeHBhbmRlZF0pXG5cbiAgY29uc3QgaXNQaW5EaXNhYmxlZCA9IHBpbm5lZEl0ZW1zLmxlbmd0aCA+PSBwaW5MaW1pdFxuICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzUGluRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi5saW1pdCddXG4gICAgfVxuXG4gICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgfVxuXG4gICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLnRvb2x0aXAnXVxuICB9LCBbaXNJdGVtUGlubmVkLCBpc1BpbkRpc2FibGVkLCBsb2NhbGVzXSlcblxuICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIEpTT04uc3RyaW5naWZ5KHsgbGFiZWwsIGluZGV4IH0pKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gIH1cblxuICBjb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICB9XG5cbiAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFzaG91bGRBbmltYXRlIHx8IGFuaW1hdGlvblR5cGUgPT09ICdzaW1wbGUnKSByZXR1cm4gMFxuXG4gICAgLy8gQXZvaWQgYW5pbWF0aW9uIG9mIGFsbCBleHBlbmRhYmxlIEl0ZW0gZHVyaW5nIGNvbGxhcHNlLCBleHBlbmQgb2YgdGhlIE5hdmlnYXRpb25cbiAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIEFOSU1BVElPTl9EVVJBVElPTlxuICAgIH1cblxuICAgIHJldHVybiAwXG4gIH0sIFthbmltYXRpb24sIHNob3VsZEFuaW1hdGUsIGFuaW1hdGlvblR5cGVdKVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IGNoaWxkLFxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgb25DbGljaz17dHJpZ2dlclRvZ2dsZX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e2hyZWYgPyAnX2JsYW5rJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1hbmltYXRpb24tdHlwZT17YW5pbWF0aW9uVHlwZX1cbiAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxTdHJvbmdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAge3N1YkxhYmVsID8gKFxuICAgICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9PlxuICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtpbnRlcm5hbEV4cGFuZGVkID8gJ2Fycm93LWRvd24nIDogJ2Fycm93LXJpZ2h0J31cbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICA8RXhwYW5kYWJsZVxuICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IGNoaWxkLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPENvbnNvbGVDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVG9nZ2xlPy4oISFhY3RpdmUpfVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0YWNrPlxuICAgICAgPC9TdHlsZWRNZW51SXRlbT5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgZm9yIHdoZW4gbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWQgYW5kIHdlIHNob3cgYW4gaWNvbiBvZiBsaW5rXG4gIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdfQ== */"));
|
|
137
|
+
}) => animation ? "nowrap" : "normal", ";overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:pre-wrap;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdJRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgKiBhcyBDYXRlZ29yeUljb24gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgQ29uc29sZUNhdGVnb3J5SWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICBtZW1vLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWR1Y2VyLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgfVxuYFxuXG5jb25zdCBOZXV0cmFsQnV0dG9uTGluayA9IGNzc2BcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuYFxuXG4vLyBQaW4gYnV0dG9uIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbmNvbnN0IExvY2FsRXhwYW5kQnV0dG9uID0gc3R5bGVkKEJ1dHRvbilgXG4gIG9wYWNpdHk6IDA7XG4gIHJpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0yNHB4O1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG5cbmNvbnN0IFBpbm5lZEJ1dHRvbiA9IExvY2FsRXhwYW5kQnV0dG9uLndpdGhDb21wb25lbnQoJ2RpdicpXG5cbmNvbnN0IEdyYWJJY29uID0gc3R5bGVkKEljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUGFzY2FsVG9DYW1lbENhc2VXaXRob3V0U3VmZml4PFxuICAgIGtleW9mIHR5cGVvZiBDYXRlZ29yeUljb24sXG4gICAgJ0NhdGVnb3J5SWNvbidcbiAgPlxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8XG4gICAgKHR5cGVvZiBDYXRlZ29yeUljb24pWydCYXJlbWV0YWxDYXRlZ29yeUljb24nXVxuICA+Wyd2YXJpYW50J11cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIGEgdW5pcXVlIGlkIGFuZCB3aWxsIGJlIHVzZWQgZm9yIHBpbi91bnBpbiBmZWF0dXJlLlxuICAgKi9cbiAgaWQ6IHN0cmluZ1xuICAvKipcbiAgICogVGV4dCBzaG93biB1bmRlciB0aGUgbGFiZWwgd2l0aCBhIGxpZ2h0ZXIgY29sb3IgYW5kIHNtYWxsZXIgZm9udCBzaXplXG4gICAqL1xuICBzdWJMYWJlbD86IHN0cmluZ1xuICAvKipcbiAgICogQmFkZ2UgaXMgYWRkZWQgb24gdGhlIHJpZ2h0IG9mIHRoZSBpdGVtLiBJdCBpcyBoaWRkZW4gb24gaG92ZXIgaWYgcGlubmVkXG4gICAqIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgKi9cbiAgYmFkZ2VUZXh0Pzogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmVkIHRoZSBzZW50aW1lbnQgb2YgdGhlIGJhZGdlIGFjY29yZGluZyB0byBCYWRnZSBjb21wb25lbnQgZnJvbVxuICAgKiBgQHVsdHJhdmlvbGV0L3VpYFxuICAgKi9cbiAgYmFkZ2VTZW50aW1lbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQmFkZ2U+WydzZW50aW1lbnQnXVxuICBocmVmPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGNsaWNrIG9mIHRoZSBpdGVtLiBJZiB0aGUgaXRlbSBpcyBleHBhbmRhYmxlXG4gICAqIHRvZ2dsZSB3aWxsIGJlIHBhc3NlZCB3aXRoIGl0LlxuICAgKi9cbiAgb25Ub2dnbGU/OiAodG9nZ2xlOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgICBsYWJlbCxcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICBvblRvZ2dsZSxcbiAgICBvbkNsaWNrUGluVW5waW4sXG4gICAgdG9nZ2xlLFxuICAgIGFjdGl2ZSxcbiAgICBub1BpbkJ1dHRvbixcbiAgICB0eXBlID0gJ2RlZmF1bHQnLFxuICAgIGhhc1BhcmVudHMsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJykge1xuICAgICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25Ub2dnbGUsIG9uQ2xpY2tQaW5VbnBpbiB9IH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gICAgKVxuXG4gICAgY29uc3QgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlRXhwYW5kXSA9IHVzZVJlZHVjZXIoXG4gICAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICAgIEJvb2xlYW4odG9nZ2xlKSxcbiAgICApXG5cbiAgICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25Ub2dnbGVFeHBhbmQoKVxuICAgICAgb25Ub2dnbGU/LihpbnRlcm5hbEV4cGFuZGVkKVxuICAgIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgICBjb25zdCBQYWRkZWRTdGFjayA9XG4gICAgICBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICAgIGNvbnN0IGhhc0hyZWZBbmROb0NoaWxkcmVuID0gaHJlZiAmJiAhY2hpbGRyZW5cbiAgICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgICBjb25zdCBpc0l0ZW1QaW5uZWQgPSBwaW5uZWRJdGVtcy5pbmNsdWRlcyhpZClcbiAgICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBmYWxzZVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZCkgPyBjaGlsZC5wcm9wcz8uYWN0aXZlIDogZmFsc2UsXG4gICAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgICApLmluY2x1ZGVzKHRydWUpXG4gICAgfSwgW2NoaWxkcmVuXSlcblxuICAgIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFzKSB7XG4gICAgICAgIHJldHVybiBhc1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuICdhJ1xuICAgICAgfVxuXG4gICAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgICAgcmV0dXJuICdkaXYnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnYnV0dG9uJ1xuICAgIH0sIFthcywgaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIG5vRXhwYW5kXSlcblxuICAgIGNvbnN0IENvbnRhaW5lciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgICAgW2NvbnRhaW5lclRhZ10sXG4gICAgKVxuXG4gICAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgICAgPyBDYXRlZ29yeUljb25bXG4gICAgICAgICAgYCR7XG4gICAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgICB9Q2F0ZWdvcnlJY29uYCBhcyBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uXG4gICAgICAgIF1cbiAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgYXJpYUV4cGFuZGVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgIWludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gICAgY29uc3QgaXNQaW5EaXNhYmxlZCA9IHBpbm5lZEl0ZW1zLmxlbmd0aCA+PSBwaW5MaW1pdFxuICAgIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi5saW1pdCddXG4gICAgICB9XG5cbiAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgICB9LCBbaXNJdGVtUGlubmVkLCBpc1BpbkRpc2FibGVkLCBsb2NhbGVzXSlcblxuICAgIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgICB9XG5cbiAgICBjb25zdCBleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgICAgLy8gQXZvaWQgYW5pbWF0aW9uIG9mIGFsbCBleHBlbmRhYmxlIEl0ZW0gZHVyaW5nIGNvbGxhcHNlLCBleHBlbmQgb2YgdGhlIE5hdmlnYXRpb25cbiAgICAgIGlmIChzaG91bGRBbmltYXRlICYmIHR5cGVvZiBhbmltYXRpb24gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIDBcbiAgICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gICAgaWYgKGV4cGFuZGVkIHx8ICghZXhwYW5kZWQgJiYgYW5pbWF0aW9uID09PSAnZXhwYW5kJykpIHtcbiAgICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogY2hpbGQsXG4gICAgICApXG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1pcy1hY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb24tdHlwZT17YW5pbWF0aW9uVHlwZX1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgICAgZXhwYW5kZWQgPyBvbkRyYWdTdGFydFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgICAgZXhwYW5kZWQgPyBvbkRyYWdTdG9wVHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGRhdGEtdGVzdElkPXtkYXRhVGVzdElkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXJDYXRlZ29yeUljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgICAgPEdyYWJJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICAgIG9wZW5lZD17aW50ZXJuYWxFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtleHBhbmRhYmxlQW5pbWF0aW9uRHVyYXRpb259XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge0NoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCIgdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17aXNJdGVtUGlubmVkID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfSxcbilcbiJdfQ== */"));
|
|
143
138
|
const StyledStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
|
|
144
139
|
target: "e134hokc3"
|
|
145
140
|
} : {
|
|
@@ -150,8 +145,7 @@ const StyledStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "pro
|
|
|
150
145
|
styles: "padding-left:28px"
|
|
151
146
|
} : {
|
|
152
147
|
name: "13feash",
|
|
153
|
-
styles: "padding-left:28px",
|
|
154
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlJaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */",
|
|
148
|
+
styles: "padding-left:28px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBJaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */",
|
|
155
149
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
156
150
|
});
|
|
157
151
|
const StyledContainer = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
|
|
@@ -183,7 +177,7 @@ const StyledContainer = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV ===
|
|
|
183
177
|
theme
|
|
184
178
|
}) => theme.colors.primary.backgroundHover, ";}}&[disabled]{cursor:not-allowed;background-color:unset;", WrapText, "{color:", ({
|
|
185
179
|
theme
|
|
186
|
-
}) => theme.colors.neutral.textWeakDisabled, ';}}&[data-animation="collapse"][data-animation-type="complex"]{animation:', shrinkHeight, " ", ANIMATION_DURATION, "ms ease-in-out;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", fadeIn, " ", ANIMATION_DURATION, 'ms ease-in-out reverse;}}&[data-animation="expand"][data-animation-type="complex"]{animation:', shrinkHeight, " ", ANIMATION_DURATION, "ms ease-in-out reverse;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", fadeIn, " ", ANIMATION_DURATION, "ms ease-in-out;}", StyledStack, "{display:none;}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZJcUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */"));
|
|
180
|
+
}) => theme.colors.neutral.textWeakDisabled, ';}}&[data-animation="collapse"][data-animation-type="complex"]{animation:', shrinkHeight, " ", ANIMATION_DURATION, "ms ease-in-out;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", fadeIn, " ", ANIMATION_DURATION, 'ms ease-in-out reverse;}}&[data-animation="expand"][data-animation-type="complex"]{animation:', shrinkHeight, " ", ANIMATION_DURATION, "ms ease-in-out reverse;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", fadeIn, " ", ANIMATION_DURATION, "ms ease-in-out;}", StyledStack, "{display:none;}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThJcUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */"));
|
|
187
181
|
const MenuStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
|
|
188
182
|
target: "e134hokc1"
|
|
189
183
|
} : {
|
|
@@ -193,7 +187,7 @@ const MenuStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "produ
|
|
|
193
187
|
theme
|
|
194
188
|
}) => `0 ${theme.space["2"]}`, ";margin-top:", ({
|
|
195
189
|
theme
|
|
196
|
-
}) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdQK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */"));
|
|
190
|
+
}) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlQK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */"));
|
|
197
191
|
const ContainerCategoryIcon = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
|
|
198
192
|
target: "e134hokc0"
|
|
199
193
|
} : {
|
|
@@ -204,11 +198,13 @@ const ContainerCategoryIcon = /* @__PURE__ */ _styled(Stack, process.env.NODE_EN
|
|
|
204
198
|
styles: "min-width:20px"
|
|
205
199
|
} : {
|
|
206
200
|
name: "d47oax",
|
|
207
|
-
styles: "min-width:20px",
|
|
208
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZQMkMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uVG9nZ2xlLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgKVxuICB9XG5cbiAgY29uc3Qge1xuICAgIGV4cGFuZGVkLFxuICAgIGxvY2FsZXMsXG4gICAgcGlubmVkRmVhdHVyZSxcbiAgICBwaW5JdGVtLFxuICAgIHVucGluSXRlbSxcbiAgICBwaW5uZWRJdGVtcyxcbiAgICBwaW5MaW1pdCxcbiAgICBhbmltYXRpb24sXG4gICAgcmVnaXN0ZXJJdGVtLFxuICAgIHNob3VsZEFuaW1hdGUsXG4gICAgYW5pbWF0aW9uVHlwZSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvblRvZ2dsZSwgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICBwcmV2U3RhdGUgPT4gIXByZXZTdGF0ZSxcbiAgICBCb29sZWFuKHRvZ2dsZSksXG4gIClcblxuICBjb25zdCB0cmlnZ2VyVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gIH0sIFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBTdHlsZWRDb250YWluZXIud2l0aENvbXBvbmVudChjb250YWluZXJUYWcpLFxuICAgIFtjb250YWluZXJUYWddLFxuICApXG5cbiAgY29uc3QgQ2F0ZWdvcnlJY29uVXNlZCA9IGNhdGVnb3J5SWNvblxuICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICBgJHtcbiAgICAgICAgICBjYXRlZ29yeUljb24uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYXRlZ29yeUljb24uc2xpY2UoMSlcbiAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgXVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiAhaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIGNvbnN0IGV4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghc2hvdWxkQW5pbWF0ZSB8fCBhbmltYXRpb25UeXBlID09PSAnc2ltcGxlJykgcmV0dXJuIDBcblxuICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgaWYgKHNob3VsZEFuaW1hdGUgJiYgdHlwZW9mIGFuaW1hdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBBTklNQVRJT05fRFVSQVRJT05cbiAgICB9XG5cbiAgICByZXR1cm4gMFxuICB9LCBbYW5pbWF0aW9uLCBzaG91bGRBbmltYXRlLCBhbmltYXRpb25UeXBlXSlcblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXtzaG91bGRBbmltYXRlID8gYW5pbWF0aW9uIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgZGF0YS10ZXN0SWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxFeHBhbmRlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2V4cGFuZGFibGVBbmltYXRpb25EdXJhdGlvbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBpY29uPXshY2F0ZWdvcnlJY29uID8gJ2RvdHMtaG9yaXpvbnRhbCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblVzZWRcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDb25zb2xlQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L01lbnVTdGFjaz5cbiAgICApXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hhdCBpcyBpbnNpZGUgYSBtZW51IGl0ZW0gdGhlIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkXG4gIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNZW51SXRlbVxuICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */",
|
|
201
|
+
styles: "min-width:20px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThQMkMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0ICogYXMgQ2F0ZWdvcnlJY29uIGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9jYXRlZ29yeSdcbmltcG9ydCB7IENvbnNvbGVDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2xlZ2FjeSdcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIE1lbnVWMixcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG4gIGZhZGVJbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBKU1gsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgY2xvbmVFbGVtZW50LFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2aWdhdGlvbiB9IGZyb20gJy4uL05hdmlnYXRpb25Qcm92aWRlcidcbmltcG9ydCB7IEFOSU1BVElPTl9EVVJBVElPTiwgc2hyaW5rSGVpZ2h0IH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQoSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXSxcbiAgJjpob3ZlcltkYXRhLWhhcy1hY3RpdmU9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiY29sbGFwc2VcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImV4cGFuZFwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAke1N0eWxlZFN0YWNrfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBNZW51U3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAwICR7dGhlbWUuc3BhY2VbJzInXX1gfTtcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgQ29udGFpbmVyQ2F0ZWdvcnlJY29uID0gc3R5bGVkKFN0YWNrKWBcbiAgbWluLXdpZHRoOiAyMHB4O1xuYFxuXG50eXBlIEl0ZW1UeXBlID0gJ2RlZmF1bHQnIHwgJ3Bpbm5lZCcgfCAncGlubmVkR3JvdXAnXG5cbnR5cGUgSXRlbVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxuICAvKipcbiAgICogU2V0cyBhIGNhdGVnb3J5IGljb24gb24gdGhlIGxlZnQgb2YgdGhlIGl0ZW1cbiAgICovXG4gIGNhdGVnb3J5SWNvbj86IFBhc2NhbFRvQ2FtZWxDYXNlV2l0aG91dFN1ZmZpeDxcbiAgICBrZXlvZiB0eXBlb2YgQ2F0ZWdvcnlJY29uLFxuICAgICdDYXRlZ29yeUljb24nXG4gID5cbiAgY2F0ZWdvcnlJY29uVmFyaWFudD86IENvbXBvbmVudFByb3BzPFxuICAgICh0eXBlb2YgQ2F0ZWdvcnlJY29uKVsnQmFyZW1ldGFsQ2F0ZWdvcnlJY29uJ11cbiAgPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICdkYXRhLXRlc3RpZCc/OiBzdHJpbmdcbn1cblxuY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcxJ1xufVxuXG5leHBvcnQgY29uc3QgSXRlbSA9IG1lbW8oXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2F0ZWdvcnlJY29uLFxuICAgIGNhdGVnb3J5SWNvblZhcmlhbnQsXG4gICAgbGFiZWwsXG4gICAgc3ViTGFiZWwsXG4gICAgYmFkZ2VUZXh0LFxuICAgIGJhZGdlU2VudGltZW50LFxuICAgIGhyZWYsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBoYXNQYXJlbnRzLFxuICAgIGFzLFxuICAgIGRpc2FibGVkLFxuICAgIG5vRXhwYW5kID0gZmFsc2UsXG4gICAgaW5kZXgsXG4gICAgaWQsXG4gICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgfTogSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuICAgIGlmICghY29udGV4dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTmF2aWdhdGlvbi5JdGVtIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgTmF2aWdhdGlvblByb3ZpZGVyLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgICByZWdpc3Rlckl0ZW0oeyBbaWRdOiB7IGxhYmVsLCBhY3RpdmUsIG9uVG9nZ2xlLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgW2FjdGl2ZSwgaWQsIGxhYmVsLCByZWdpc3Rlckl0ZW1dLFxuICAgIClcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgICApIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBDb250YWluZXIgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKSxcbiAgICAgIFtjb250YWluZXJUYWddLFxuICAgIClcblxuICAgIGNvbnN0IENhdGVnb3J5SWNvblVzZWQgPSBjYXRlZ29yeUljb25cbiAgICAgID8gQ2F0ZWdvcnlJY29uW1xuICAgICAgICAgIGAke1xuICAgICAgICAgICAgY2F0ZWdvcnlJY29uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2F0ZWdvcnlJY29uLnNsaWNlKDEpXG4gICAgICAgICAgfUNhdGVnb3J5SWNvbmAgYXMga2V5b2YgdHlwZW9mIENhdGVnb3J5SWNvblxuICAgICAgICBdXG4gICAgICA6IG51bGxcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgfVxuXG4gICAgY29uc3QgZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEFuaW1hdGUgfHwgYW5pbWF0aW9uVHlwZSA9PT0gJ3NpbXBsZScpIHJldHVybiAwXG5cbiAgICAgIC8vIEF2b2lkIGFuaW1hdGlvbiBvZiBhbGwgZXhwZW5kYWJsZSBJdGVtIGR1cmluZyBjb2xsYXBzZSwgZXhwZW5kIG9mIHRoZSBOYXZpZ2F0aW9uXG4gICAgICBpZiAoc2hvdWxkQW5pbWF0ZSAmJiB0eXBlb2YgYW5pbWF0aW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gQU5JTUFUSU9OX0RVUkFUSU9OXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAwXG4gICAgfSwgW2FuaW1hdGlvbiwgc2hvdWxkQW5pbWF0ZSwgYW5pbWF0aW9uVHlwZV0pXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICBjb25zdCByZW5kZXJDaGlsZHJlbiA9IENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT5cbiAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgICBoYXNQYXJlbnRzOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNoaWxkLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIHRhcmdldD17aHJlZiA/ICdfYmxhbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj17aGFzQWN0aXZlQ2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICBkYXRhLXRlc3RJZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Q2F0ZWdvcnlJY29uVXNlZCA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cImRyYWctdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9e1xuICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJMYWJlbFxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2JhZGdlVGV4dCB8fCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDxTdGFjayBnYXA9ezF9IGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2ludGVybmFsRXhwYW5kZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7IW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17ZXhwYW5kYWJsZUFuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICAgIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1lbnVcbiAgICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0NhdGVnb3J5SWNvblVzZWQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25Vc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZE1lbnU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtDYXRlZ29yeUljb25Vc2VkID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uVXNlZFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29uc29sZUNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiPlxuICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */",
|
|
209
202
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
210
203
|
});
|
|
211
|
-
const
|
|
204
|
+
const onDragStopTrigger = (event) => {
|
|
205
|
+
event.currentTarget.style.opacity = "1";
|
|
206
|
+
};
|
|
207
|
+
const Item = memo(({
|
|
212
208
|
children,
|
|
213
209
|
categoryIcon,
|
|
214
210
|
categoryIconVariant,
|
|
@@ -332,9 +328,6 @@ const Item = ({
|
|
|
332
328
|
}));
|
|
333
329
|
event.currentTarget.style.opacity = "0.5";
|
|
334
330
|
};
|
|
335
|
-
const onDragStopTrigger = (event) => {
|
|
336
|
-
event.currentTarget.style.opacity = "1";
|
|
337
|
-
};
|
|
338
331
|
const expandableAnimationDuration = useMemo(() => {
|
|
339
332
|
if (!shouldAnimate || animationType === "simple") return 0;
|
|
340
333
|
if (shouldAnimate && typeof animation !== "string") {
|
|
@@ -390,13 +383,13 @@ const Item = ({
|
|
|
390
383
|
{
|
|
391
384
|
triggerMethod: "hover",
|
|
392
385
|
dynamicDomRendering: false,
|
|
393
|
-
disclosure: /* @__PURE__ */ jsx(Button, { sentiment: "neutral", variant: hasActiveChildren ? "filled" : "ghost", size: "small", icon: !categoryIcon ? "dots-horizontal" : void 0, children: CategoryIconUsed ? /* @__PURE__ */ jsx(Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx(CategoryIconUsed, { variant: active ? "primary" : categoryIconVariant }) }) : null }),
|
|
386
|
+
disclosure: /* @__PURE__ */ jsx(Button, { sentiment: "neutral", variant: hasActiveChildren ? "filled" : "ghost", size: "small", icon: !categoryIcon ? "dots-horizontal" : void 0, "aria-label": label, children: CategoryIconUsed ? /* @__PURE__ */ jsx(Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsx(CategoryIconUsed, { variant: active ? "primary" : categoryIconVariant }) }) : null }),
|
|
394
387
|
placement: "right",
|
|
395
388
|
children: Children.map(children, (child) => isValidElement(child) ? cloneElement(child, {
|
|
396
389
|
hasParents: true
|
|
397
390
|
}) : child)
|
|
398
391
|
}
|
|
399
|
-
) : /* @__PURE__ */ jsx(Tooltip, { text: label, placement: "right", tabIndex: -1, children: /* @__PURE__ */ jsx(Button, { sentiment: "neutral", variant: active ? "filled" : "ghost", size: "small", children: /* @__PURE__ */ jsx(Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "center", children: CategoryIconUsed ? /* @__PURE__ */ jsx(CategoryIconUsed, { variant: active ? "primary" : categoryIconVariant }) : /* @__PURE__ */ jsx(ConsoleCategoryIcon, { variant: active ? "primary" : categoryIconVariant }) }) }) }) });
|
|
392
|
+
) : /* @__PURE__ */ jsx(Tooltip, { text: label, placement: "right", tabIndex: -1, children: /* @__PURE__ */ jsx(Button, { sentiment: "neutral", variant: active ? "filled" : "ghost", size: "small", "aria-label": label, children: /* @__PURE__ */ jsx(Stack, { direction: "row", gap: 1, alignItems: "center", justifyContent: "center", children: CategoryIconUsed ? /* @__PURE__ */ jsx(CategoryIconUsed, { variant: active ? "primary" : categoryIconVariant }) : /* @__PURE__ */ jsx(ConsoleCategoryIcon, { variant: active ? "primary" : categoryIconVariant }) }) }) }) });
|
|
400
393
|
}
|
|
401
394
|
if (hasParents) {
|
|
402
395
|
return /* @__PURE__ */ jsx(StyledMenuItem, { href, borderless: true, active, disabled, sentiment: active ? "primary" : "neutral", isPinnable: shouldShowPinnedButton, onClick: () => onToggle?.(!!active), children: /* @__PURE__ */ jsxs(Stack, { gap: 1, direction: "row", alignItems: "center", justifyContent: "space-between", flex: 1, width: "100%", children: [
|
|
@@ -428,7 +421,7 @@ const Item = ({
|
|
|
428
421
|
return /* @__PURE__ */ jsx(Tooltip, { text: label, placement: "right", children: /* @__PURE__ */ jsx(MenuStack, { gap: 1, alignItems: "start", justifyContent: "start", children: /* @__PURE__ */ jsx(Container, { gap: 1, alignItems: "center", justifyContent: "center", href, target: "_blank", children: /* @__PURE__ */ jsx(AnimatedIcon, { name: "open-in-new", sentiment: "neutral", prominence: "weak" }) }) }) });
|
|
429
422
|
}
|
|
430
423
|
return null;
|
|
431
|
-
};
|
|
424
|
+
});
|
|
432
425
|
export {
|
|
433
426
|
Item
|
|
434
427
|
};
|