@ultraviolet/plus 3.0.0-beta.9 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +1 -1
  2. package/dist/components/CodeEditor/CodeEditor.d.ts +3 -2
  3. package/dist/components/CodeEditor/CodeEditor.js +44 -13
  4. package/dist/components/ContentCard/Skeleton.d.ts +1 -1
  5. package/dist/components/ContentCard/Skeleton.js +13 -8
  6. package/dist/components/ContentCard/index.d.ts +2 -1
  7. package/dist/components/ContentCard/index.js +131 -50
  8. package/dist/components/ContentCardGroup/Card.d.ts +2 -1
  9. package/dist/components/ContentCardGroup/Card.js +65 -86
  10. package/dist/components/ContentCardGroup/SkeletonCard.d.ts +1 -1
  11. package/dist/components/ContentCardGroup/SkeletonCard.js +4 -22
  12. package/dist/components/ContentCardGroup/index.d.ts +3 -1
  13. package/dist/components/ContentCardGroup/index.js +12 -18
  14. package/dist/components/ContentCardGroup/styles.css.d.ts +7 -0
  15. package/dist/components/ContentCardGroup/styles.css.js +17 -0
  16. package/dist/components/Conversation/index.d.ts +25 -17
  17. package/dist/components/Conversation/index.js +37 -103
  18. package/dist/components/Conversation/styles.css.d.ts +7 -0
  19. package/dist/components/Conversation/styles.css.js +17 -0
  20. package/dist/components/CustomerSatisfaction/index.d.ts +3 -1
  21. package/dist/components/CustomerSatisfaction/index.js +70 -96
  22. package/dist/components/CustomerSatisfaction/styles.css.d.ts +17 -0
  23. package/dist/components/CustomerSatisfaction/styles.css.js +6 -0
  24. package/dist/components/EstimateCost/Components/CustomUnitInput.d.ts +1 -1
  25. package/dist/components/EstimateCost/Components/CustomUnitInput.js +47 -27
  26. package/dist/components/EstimateCost/Components/Item.d.ts +3 -2
  27. package/dist/components/EstimateCost/Components/Item.js +308 -288
  28. package/dist/components/EstimateCost/Components/LineThrough.d.ts +3 -5
  29. package/dist/components/EstimateCost/Components/LineThrough.js +12 -12
  30. package/dist/components/EstimateCost/Components/NumberInput.d.ts +1 -1
  31. package/dist/components/EstimateCost/Components/NumberInput.js +18 -10
  32. package/dist/components/EstimateCost/Components/Region.d.ts +2 -2
  33. package/dist/components/EstimateCost/Components/Region.js +44 -33
  34. package/dist/components/EstimateCost/Components/Regular.d.ts +3 -2
  35. package/dist/components/EstimateCost/Components/Regular.js +21 -29
  36. package/dist/components/EstimateCost/Components/Strong.d.ts +3 -10
  37. package/dist/components/EstimateCost/Components/Strong.js +13 -24
  38. package/dist/components/EstimateCost/Components/Unit.d.ts +3 -1
  39. package/dist/components/EstimateCost/Components/Unit.js +23 -31
  40. package/dist/components/EstimateCost/Components/Zone.d.ts +3 -1
  41. package/dist/components/EstimateCost/Components/Zone.js +42 -32
  42. package/dist/components/EstimateCost/Components/components.css.d.ts +77 -0
  43. package/dist/components/EstimateCost/Components/components.css.js +124 -0
  44. package/dist/components/EstimateCost/EstimateCost.d.ts +29 -29
  45. package/dist/components/EstimateCost/EstimateCost.js +74 -25
  46. package/dist/components/EstimateCost/EstimateCostContent.d.ts +1 -1
  47. package/dist/components/EstimateCost/EstimateCostContent.js +270 -174
  48. package/dist/components/EstimateCost/EstimateCostProvider.d.ts +1 -1
  49. package/dist/components/EstimateCost/EstimateCostProvider.js +24 -21
  50. package/dist/components/EstimateCost/OverlayComponent.d.ts +1 -1
  51. package/dist/components/EstimateCost/OverlayComponent.js +57 -81
  52. package/dist/components/EstimateCost/OverlayContext.d.ts +1 -1
  53. package/dist/components/EstimateCost/OverlayContext.js +2 -4
  54. package/dist/components/EstimateCost/constants.js +0 -4
  55. package/dist/components/EstimateCost/styles.css.d.ts +76 -0
  56. package/dist/components/EstimateCost/styles.css.js +50 -0
  57. package/dist/components/EstimateCost/types.d.ts +2 -1
  58. package/dist/components/FAQ/index.d.ts +3 -1
  59. package/dist/components/FAQ/index.js +4 -3
  60. package/dist/components/InfoTable/InfoTable.d.ts +9 -6
  61. package/dist/components/InfoTable/InfoTable.js +14 -18
  62. package/dist/components/InfoTable/components/Cell.d.ts +3 -6
  63. package/dist/components/InfoTable/components/Cell.js +28 -34
  64. package/dist/components/InfoTable/components/Row.d.ts +3 -14
  65. package/dist/components/InfoTable/components/Row.js +25 -18
  66. package/dist/components/InfoTable/context.d.ts +3 -0
  67. package/dist/components/InfoTable/context.js +5 -0
  68. package/dist/components/InfoTable/styles.css.d.ts +6 -0
  69. package/dist/components/InfoTable/styles.css.js +15 -0
  70. package/dist/components/Navigation/Footer.d.ts +1 -1
  71. package/dist/components/Navigation/Footer.js +35 -33
  72. package/dist/components/Navigation/Header.d.ts +1 -1
  73. package/dist/components/Navigation/Header.js +13 -26
  74. package/dist/components/Navigation/Navigation.d.ts +11 -8
  75. package/dist/components/Navigation/Navigation.js +2 -5
  76. package/dist/components/Navigation/NavigationContent.d.ts +1 -1
  77. package/dist/components/Navigation/NavigationContent.js +60 -71
  78. package/dist/components/Navigation/NavigationProvider.d.ts +1 -1
  79. package/dist/components/Navigation/NavigationProvider.js +108 -70
  80. package/dist/components/Navigation/animations.css.d.ts +6 -0
  81. package/dist/components/Navigation/components/Group.d.ts +3 -2
  82. package/dist/components/Navigation/components/Group.js +21 -43
  83. package/dist/components/Navigation/components/Item.d.ts +3 -2
  84. package/dist/components/Navigation/components/Item.js +552 -405
  85. package/dist/components/Navigation/components/ItemProvider.d.ts +1 -1
  86. package/dist/components/Navigation/components/ItemProvider.js +2 -4
  87. package/dist/components/Navigation/components/PinnedItems.d.ts +3 -2
  88. package/dist/components/Navigation/components/PinnedItems.js +94 -74
  89. package/dist/components/Navigation/components/Separator.d.ts +1 -1
  90. package/dist/components/Navigation/components/Separator.js +3 -11
  91. package/dist/components/Navigation/components/items.css.d.ts +70 -0
  92. package/dist/components/Navigation/components/items.css.js +47 -0
  93. package/dist/components/Navigation/components/styles.css.d.ts +23 -0
  94. package/dist/components/Navigation/components/styles.css.js +17 -0
  95. package/dist/components/Navigation/constants.d.ts +0 -12
  96. package/dist/components/Navigation/constants.js +1 -28
  97. package/dist/components/Navigation/styles.css.d.ts +33 -0
  98. package/dist/components/Navigation/styles.css.js +23 -0
  99. package/dist/components/Navigation/types.d.ts +2 -1
  100. package/dist/components/Navigation/variables.css.d.ts +1 -0
  101. package/dist/components/Navigation/variables.css.js +4 -0
  102. package/dist/components/OfferList/OfferList.d.ts +8 -5
  103. package/dist/components/OfferList/OfferList.js +43 -22
  104. package/dist/components/OfferList/OfferListProvider.d.ts +1 -1
  105. package/dist/components/OfferList/OfferListProvider.js +25 -15
  106. package/dist/components/OfferList/components/Banner.d.ts +1 -1
  107. package/dist/components/OfferList/components/Banner.js +32 -95
  108. package/dist/components/OfferList/components/Cell.d.ts +1 -1
  109. package/dist/components/OfferList/components/Cell.js +16 -37
  110. package/dist/components/OfferList/components/Row.d.ts +4 -2
  111. package/dist/components/OfferList/components/Row.js +141 -125
  112. package/dist/components/OfferList/styles.css.d.ts +42 -0
  113. package/dist/components/OfferList/styles.css.js +38 -0
  114. package/dist/components/OrderSummary/NonScrollableContent.d.ts +4 -1
  115. package/dist/components/OrderSummary/NonScrollableContent.js +80 -36
  116. package/dist/components/OrderSummary/Provider.js +1 -4
  117. package/dist/components/OrderSummary/ScrollableContent.d.ts +1 -1
  118. package/dist/components/OrderSummary/ScrollableContent.js +217 -69
  119. package/dist/components/OrderSummary/constants.js +7 -1
  120. package/dist/components/OrderSummary/helpers.js +39 -21
  121. package/dist/components/OrderSummary/index.d.ts +1 -1
  122. package/dist/components/OrderSummary/index.js +145 -83
  123. package/dist/components/OrderSummary/styles.css.d.ts +19 -0
  124. package/dist/components/OrderSummary/styles.css.js +24 -0
  125. package/dist/components/OrderSummary/types.d.ts +11 -2
  126. package/dist/components/Plans/FeatureHint.d.ts +1 -1
  127. package/dist/components/Plans/FeatureHint.js +27 -25
  128. package/dist/components/Plans/PlanHeader.d.ts +1 -1
  129. package/dist/components/Plans/PlanHeader.js +80 -84
  130. package/dist/components/Plans/index.d.ts +8 -1
  131. package/dist/components/Plans/index.js +166 -109
  132. package/dist/components/Plans/styles.css.d.ts +61 -0
  133. package/dist/components/Plans/styles.css.js +26 -0
  134. package/dist/components/SteppedListCard/Step.d.ts +6 -1
  135. package/dist/components/SteppedListCard/Step.js +44 -32
  136. package/dist/components/SteppedListCard/SteppedListCard.d.ts +9 -5
  137. package/dist/components/SteppedListCard/SteppedListCard.js +70 -45
  138. package/dist/components/SteppedListCard/SteppedListContent.d.ts +4 -3
  139. package/dist/components/SteppedListCard/SteppedListContent.js +20 -51
  140. package/dist/components/SteppedListCard/helper.d.ts +1 -1
  141. package/dist/components/SteppedListCard/helper.js +4 -1
  142. package/dist/components/SteppedListCard/styles.css.d.ts +8 -0
  143. package/dist/components/SteppedListCard/styles.css.js +19 -0
  144. package/dist/plus.css +1 -1
  145. package/package.json +14 -18
  146. package/dist/components/CodeEditor/CodeEditor.cjs +0 -49
  147. package/dist/components/CodeEditor/styles.css.cjs +0 -9
  148. package/dist/components/ContentCard/Skeleton.cjs +0 -23
  149. package/dist/components/ContentCard/index.cjs +0 -61
  150. package/dist/components/ContentCard/styles.css.cjs +0 -28
  151. package/dist/components/ContentCardGroup/Card.cjs +0 -94
  152. package/dist/components/ContentCardGroup/SkeletonCard.cjs +0 -35
  153. package/dist/components/ContentCardGroup/index.cjs +0 -31
  154. package/dist/components/Conversation/index.cjs +0 -127
  155. package/dist/components/CustomerSatisfaction/assets/1-5.svg.cjs +0 -3
  156. package/dist/components/CustomerSatisfaction/assets/1-5NB.svg.cjs +0 -3
  157. package/dist/components/CustomerSatisfaction/assets/2-5.svg.cjs +0 -3
  158. package/dist/components/CustomerSatisfaction/assets/2-5NB.svg.cjs +0 -3
  159. package/dist/components/CustomerSatisfaction/assets/3-5.svg.cjs +0 -3
  160. package/dist/components/CustomerSatisfaction/assets/3-5NB.svg.cjs +0 -3
  161. package/dist/components/CustomerSatisfaction/assets/4-5.svg.cjs +0 -3
  162. package/dist/components/CustomerSatisfaction/assets/4-5NB.svg.cjs +0 -3
  163. package/dist/components/CustomerSatisfaction/assets/5-5.svg.cjs +0 -3
  164. package/dist/components/CustomerSatisfaction/assets/5-5NB.svg.cjs +0 -3
  165. package/dist/components/CustomerSatisfaction/index.cjs +0 -123
  166. package/dist/components/EstimateCost/Components/CustomUnitInput.cjs +0 -34
  167. package/dist/components/EstimateCost/Components/Item.cjs +0 -303
  168. package/dist/components/EstimateCost/Components/LineThrough.cjs +0 -19
  169. package/dist/components/EstimateCost/Components/NumberInput.cjs +0 -31
  170. package/dist/components/EstimateCost/Components/Region.cjs +0 -43
  171. package/dist/components/EstimateCost/Components/Regular.cjs +0 -37
  172. package/dist/components/EstimateCost/Components/Strong.cjs +0 -30
  173. package/dist/components/EstimateCost/Components/Unit.cjs +0 -53
  174. package/dist/components/EstimateCost/Components/Zone.cjs +0 -42
  175. package/dist/components/EstimateCost/EstimateCost.cjs +0 -90
  176. package/dist/components/EstimateCost/EstimateCostContent.cjs +0 -256
  177. package/dist/components/EstimateCost/EstimateCostProvider.cjs +0 -37
  178. package/dist/components/EstimateCost/OverlayComponent.cjs +0 -123
  179. package/dist/components/EstimateCost/OverlayContext.cjs +0 -15
  180. package/dist/components/EstimateCost/componentStyle.cjs +0 -221
  181. package/dist/components/EstimateCost/componentStyle.d.ts +0 -106
  182. package/dist/components/EstimateCost/componentStyle.js +0 -219
  183. package/dist/components/EstimateCost/constants.cjs +0 -32
  184. package/dist/components/EstimateCost/helper.cjs +0 -16
  185. package/dist/components/EstimateCost/locales/en.cjs +0 -23
  186. package/dist/components/FAQ/index.cjs +0 -48
  187. package/dist/components/FAQ/styles.css.cjs +0 -5
  188. package/dist/components/InfoTable/InfoTable.cjs +0 -32
  189. package/dist/components/InfoTable/components/Cell.cjs +0 -44
  190. package/dist/components/InfoTable/components/Row.cjs +0 -26
  191. package/dist/components/Navigation/Footer.cjs +0 -71
  192. package/dist/components/Navigation/Header.cjs +0 -36
  193. package/dist/components/Navigation/Navigation.cjs +0 -18
  194. package/dist/components/Navigation/NavigationContent.cjs +0 -163
  195. package/dist/components/Navigation/NavigationProvider.cjs +0 -129
  196. package/dist/components/Navigation/components/Group.cjs +0 -62
  197. package/dist/components/Navigation/components/Item.cjs +0 -429
  198. package/dist/components/Navigation/components/ItemProvider.cjs +0 -14
  199. package/dist/components/Navigation/components/PinnedItems.cjs +0 -116
  200. package/dist/components/Navigation/components/Separator.cjs +0 -18
  201. package/dist/components/Navigation/constants.cjs +0 -37
  202. package/dist/components/Navigation/locales/en.cjs +0 -11
  203. package/dist/components/OfferList/OfferList.cjs +0 -58
  204. package/dist/components/OfferList/OfferListProvider.cjs +0 -38
  205. package/dist/components/OfferList/components/Banner.cjs +0 -108
  206. package/dist/components/OfferList/components/Cell.cjs +0 -50
  207. package/dist/components/OfferList/components/Row.cjs +0 -192
  208. package/dist/components/OrderSummary/NonScrollableContent.cjs +0 -68
  209. package/dist/components/OrderSummary/Provider.cjs +0 -18
  210. package/dist/components/OrderSummary/ScrollableContent.cjs +0 -109
  211. package/dist/components/OrderSummary/constants.cjs +0 -12
  212. package/dist/components/OrderSummary/helpers.cjs +0 -91
  213. package/dist/components/OrderSummary/index.cjs +0 -135
  214. package/dist/components/OrderSummary/locales/en.cjs +0 -11
  215. package/dist/components/Plans/FeatureHint.cjs +0 -42
  216. package/dist/components/Plans/PlanHeader.cjs +0 -102
  217. package/dist/components/Plans/index.cjs +0 -152
  218. package/dist/components/Plans/locales/en.cjs +0 -7
  219. package/dist/components/SteppedListCard/Step.cjs +0 -51
  220. package/dist/components/SteppedListCard/SteppedListCard.cjs +0 -82
  221. package/dist/components/SteppedListCard/SteppedListContent.cjs +0 -86
  222. package/dist/components/SteppedListCard/helper.cjs +0 -38
  223. package/dist/index.cjs +0 -33
@@ -1,427 +1,574 @@
1
1
  "use client";
2
- import { jsxs, Fragment, jsx } from "@emotion/react/jsx-runtime";
3
- import _styled from "@emotion/styled/base";
4
- import { css } from "@emotion/react";
2
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
5
3
  import { ArrowDownIcon, ArrowRightIcon, UnpinIcon, PinOutlineIcon, DragIcon, OpenInNewIcon } from "@ultraviolet/icons";
6
4
  import { OrganizationDashboardCategoryIcon } from "@ultraviolet/icons/category";
7
- import { theme } from "@ultraviolet/themes";
8
- import { Stack, Tooltip, Expandable, Button, fadeIn, Text, Badge, Menu } from "@ultraviolet/ui";
5
+ import { Stack, Text, Badge, Tooltip, Expandable, Menu, Button } from "@ultraviolet/ui";
9
6
  import { memo, useContext, useEffect, useReducer, useCallback, useMemo, Children, isValidElement } from "react";
10
- import { shrinkHeight, ANIMATION_DURATION } from "../constants.js";
11
7
  import { useNavigation } from "../NavigationProvider.js";
12
8
  import { ItemContext, ItemProvider } from "./ItemProvider.js";
13
- function _EMOTION_STRINGIFIED_CSS_ERROR__() {
14
- return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
15
- }
16
- const RelativeDiv = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
17
- target: "e134hokc14"
18
- } : {
19
- target: "e134hokc14",
20
- label: "RelativeDiv"
21
- })(process.env.NODE_ENV === "production" ? {
22
- name: "bjn8wh",
23
- styles: "position:relative"
24
- } : {
25
- name: "bjn8wh",
26
- styles: "position:relative/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThDOEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
27
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
28
- });
29
- const PaddedSpan = /* @__PURE__ */ _styled("span", process.env.NODE_ENV === "production" ? {
30
- target: "e134hokc13"
31
- } : {
32
- target: "e134hokc13",
33
- label: "PaddedSpan"
34
- })("padding-left:", ({
35
- theme: theme2
36
- }) => theme2.space[1], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtEOEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
37
- const StyledPinIconOutline = /* @__PURE__ */ _styled(PinOutlineIcon, process.env.NODE_ENV === "production" ? {
38
- shouldForwardProp: (prop) => !["active"].includes(prop),
39
- target: "e134hokc12"
40
- } : {
41
- shouldForwardProp: (prop) => !["active"].includes(prop),
42
- target: "e134hokc12",
43
- label: "StyledPinIconOutline"
44
- })("position:absolute;top:0;bottom:0;margin:auto 0;padding:", ({
45
- theme: theme2
46
- }) => theme2.space["0.25"], ";border-radius:", ({
47
- theme: theme2
48
- }) => theme2.radii.default, ";&:hover{background:", ({
49
- theme: theme2
50
- }) => theme2.colors.neutral.backgroundWeakHover, ";", ({
51
- active,
52
- theme: theme2
53
- }) => active ? `background: ${theme2.colors.primary.backgroundHover};` : null, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdEd0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
54
- const StyledUnpinIcon = StyledPinIconOutline.withComponent(UnpinIcon, process.env.NODE_ENV === "production" ? {
55
- target: "e134hokc15"
56
- } : {
57
- target: "e134hokc15",
58
- label: "StyledUnpinIcon"
59
- });
60
- const NeutralButtonLink = process.env.NODE_ENV === "production" ? {
61
- name: "rhgg7c",
62
- styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left"
63
- } : {
64
- name: "1kb8ns1-NeutralButtonLink",
65
- styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left;label:NeutralButtonLink;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlFNkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
66
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
67
- };
68
- const LocalExpandButton = /* @__PURE__ */ _styled(Button, process.env.NODE_ENV === "production" ? {
69
- target: "e134hokc11"
70
- } : {
71
- target: "e134hokc11",
72
- label: "LocalExpandButton"
73
- })(process.env.NODE_ENV === "production" ? {
74
- name: "9hkyle",
75
- styles: "opacity:0;right:0;position:absolute;left:-24px;top:0;bottom:0;margin:auto;&:hover,&:focus,&:active{opacity:1;}"
76
- } : {
77
- name: "9hkyle",
78
- 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtGd0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
79
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
80
- });
81
- const PinnedButton = LocalExpandButton.withComponent("div", process.env.NODE_ENV === "production" ? {
82
- target: "e134hokc16"
83
- } : {
84
- target: "e134hokc16",
85
- label: "PinnedButton"
86
- });
87
- const GrabIcon = /* @__PURE__ */ _styled(DragIcon, process.env.NODE_ENV === "production" ? {
88
- target: "e134hokc10"
89
- } : {
90
- target: "e134hokc10",
91
- label: "GrabIcon"
92
- })("opacity:0;margin:0 ", ({
93
- theme: theme2
94
- }) => theme2.space["0.25"], ";cursor:grab;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9HaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
95
- const StyledBadge = /* @__PURE__ */ _styled(Badge, process.env.NODE_ENV === "production" ? {
96
- target: "e134hokc9"
97
- } : {
98
- target: "e134hokc9",
99
- label: "StyledBadge"
100
- })(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBHaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */");
101
- const StyledMenuItem = /* @__PURE__ */ _styled(Menu.Item, process.env.NODE_ENV === "production" ? {
102
- shouldForwardProp: (prop) => !["isPinnable", "pinnedFeature"].includes(prop),
103
- target: "e134hokc8"
104
- } : {
105
- shouldForwardProp: (prop) => !["isPinnable", "pinnedFeature"].includes(prop),
106
- target: "e134hokc8",
107
- label: "StyledMenuItem"
108
- })("text-align:left;&:hover,&:focus,&:active{", PinnedButton, "{opacity:1;}", StyledBadge, "{opacity:", ({
109
- isPinnable,
110
- pinnedFeature
111
- }) => isPinnable && pinnedFeature ? 0 : 1, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlIRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHtcbiAgQXJyb3dEb3duSWNvbixcbiAgQXJyb3dSaWdodEljb24sXG4gIERyYWdJY29uLFxuICBPcGVuSW5OZXdJY29uLFxuICBQaW5PdXRsaW5lSWNvbixcbiAgVW5waW5JY29uLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQgeyBPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvY2F0ZWdvcnknXG5pbXBvcnQgeyB0aGVtZSBhcyB2YW5pbGxhVGhlbWUgfSBmcm9tICdAdWx0cmF2aW9sZXQvdGhlbWVzJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgZmFkZUluLFxuICBNZW51LFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L3VpJ1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRHJhZ0V2ZW50LFxuICBFbGVtZW50VHlwZSxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBpc1ZhbGlkRWxlbWVudCxcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgSXRlbUNvbnRleHQsIEl0ZW1Qcm92aWRlciB9IGZyb20gJy4vSXRlbVByb3ZpZGVyJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgUGFkZGVkU3BhbiA9IHN0eWxlZC5zcGFuYFxuICBwYWRkaW5nLWxlZnQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbMV19XG5gXG5cbmNvbnN0IFN0eWxlZFBpbkljb25PdXRsaW5lID0gc3R5bGVkKFBpbk91dGxpbmVJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRVbnBpbkljb24gPSBTdHlsZWRQaW5JY29uT3V0bGluZS53aXRoQ29tcG9uZW50KFVucGluSWNvbilcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChEcmFnSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnUuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJywgJ3Bpbm5lZEZlYXR1cmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbiAgcGlubmVkRmVhdHVyZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgb3BhY2l0eTogJHsoeyBpc1Bpbm5hYmxlLCBwaW5uZWRGZWF0dXJlIH0pID0+XG4gICAgICAgIGlzUGlubmFibGUgJiYgcGlubmVkRmVhdHVyZSA/IDAgOiAxfTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkTWVudSA9IHN0eWxlZChNZW51KWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoT3BlbkluTmV3SWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0KWBcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG5gXG5cbmNvbnN0IFN0eWxlZFN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gY3NzYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHt2YW5pbGxhVGhlbWUucmFkaWkuZGVmYXVsdH07XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAke2BjYWxjKCR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjI1J119ICsgJHt2YW5pbGxhVGhlbWUuc3BhY2VbJzAuNSddfSkgJHt2YW5pbGxhVGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD1cInRydWVcIl0ge1xuICAgIHBhZGRpbmc6ICR7YCR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0gJHt2YW5pbGxhVGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPVwidHJ1ZVwiXVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoXG4gICAgICBbZGlzYWJsZWRdW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdW2RhdGEtcGlubmVkLWZlYXR1cmU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdW2RhdGEtcGlubmVkLWZlYXR1cmU9XCJ0cnVlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl1bZGF0YS1pcy1waW5uYWJsZT1cInRydWVcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmVbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl0sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtEaXNhYmxlZH07XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImNvbGxhcHNlXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJleHBhbmRcIl1bZGF0YS1hbmltYXRpb24tdHlwZT1cImNvbXBsZXhcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IFN0YWNrSWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIExpbmtQcm9wcyA9IHtcbiAgdG86IHN0cmluZ1xuICBjaGlsZHJlbj86IHsgcHJvcHM6IEl0ZW1Qcm9wcyB9XG59XG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiB0aGUgaXRlbSB0aGF0IHdpbGwgYmUgc2hvd24uXG4gICAqIEl0IGlzIGFsc28gdXNlZCBhcyB0aGUga2V5IGZvciBwaW5uaW5nLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBiZSBhZGRlZCBhZnRlciB0aGUgbGFiZWwgd2hlbiB5b3Ugd2FudCB0byBoYXZlIGNvbXBsZW1lbnRvcnkgaW5mb3JtYXRpb24gd2l0aCB0aGUgbGFiZWxcbiAgICovXG4gIGxhYmVsRGVzY3JpcHRpb24/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IEhUTUxBbmNob3JFbGVtZW50WydocmVmJ11cbiAgdGFyZ2V0PzogSFRNTEFuY2hvckVsZW1lbnRbJ3RhcmdldCddXG4gIHJlbD86IEhUTUxBbmNob3JFbGVtZW50WydyZWwnXVxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uVG9nZ2xlPzogKHRvZ2dsZTogYm9vbGVhbikgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzogRWxlbWVudFR5cGVcbiAgLyoqXG4gICAqIFVzZSB0aGlzIHByb3AgaWYgeW91IHdhbnQgdG8gcmVtb3ZlIHRoZSBleHBhbmQgYmVoYXZpb3Igd2hlbiB0aGUgaXRlbVxuICAgKiBoYXMgc3ViIGl0ZW1zLlxuICAgKi9cbiAgbm9FeHBhbmQ/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG59XG5cbmNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSBtZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNhdGVnb3J5SWNvbixcbiAgICBsYWJlbCxcbiAgICBsYWJlbERlc2NyaXB0aW9uLFxuICAgIHN1YkxhYmVsLFxuICAgIGJhZGdlVGV4dCxcbiAgICBiYWRnZVNlbnRpbWVudCxcbiAgICBocmVmLFxuICAgIHRhcmdldCxcbiAgICByZWwsXG4gICAgb25Ub2dnbGUsXG4gICAgb25DbGlja1BpblVucGluLFxuICAgIHRvZ2dsZSxcbiAgICBhY3RpdmUsXG4gICAgbm9QaW5CdXR0b24sXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICBub0V4cGFuZCA9IGZhbHNlLFxuICAgIGluZGV4LFxuICAgIGlkLFxuICAgICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG4gIH06IEl0ZW1Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VOYXZpZ2F0aW9uKClcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1Qcm92aWRlciA9IHVzZUNvbnRleHQoSXRlbUNvbnRleHQpXG4gICAgY29uc3QgaGFzUGFyZW50cyA9ICEhaXRlbVByb3ZpZGVyXG5cbiAgICBjb25zdCB7XG4gICAgICBleHBhbmRlZCxcbiAgICAgIGxvY2FsZXMsXG4gICAgICBwaW5uZWRGZWF0dXJlLFxuICAgICAgcGluSXRlbSxcbiAgICAgIHVucGluSXRlbSxcbiAgICAgIHBpbm5lZEl0ZW1zLFxuICAgICAgcGluTGltaXQsXG4gICAgICBhbmltYXRpb24sXG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgICBzaG91bGRBbmltYXRlLFxuICAgICAgYW5pbWF0aW9uVHlwZSxcbiAgICB9ID0gY29udGV4dFxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnICYmIHBpbm5lZEZlYXR1cmUpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBhY3RpdmUsIGxhYmVsLCBvbkNsaWNrUGluVW5waW4sIG9uVG9nZ2xlIH0gfSlcbiAgICAgIH1cbiAgICAgIC8vIG94bGludC1kaXNhYmxlIHJlYWN0L2V4aGF1c3RpdmUtZGVwc1xuICAgIH0sIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSlcblxuICAgIGNvbnN0IFtpbnRlcm5hbEV4cGFuZGVkLCBvblRvZ2dsZUV4cGFuZF0gPSB1c2VSZWR1Y2VyKFxuICAgICAgcHJldlN0YXRlID0+ICFwcmV2U3RhdGUsXG4gICAgICBCb29sZWFuKHRvZ2dsZSksXG4gICAgKVxuXG4gICAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlRXhwYW5kKClcbiAgICAgIG9uVG9nZ2xlPy4oaW50ZXJuYWxFeHBhbmRlZClcbiAgICB9LCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVdKVxuXG4gICAgY29uc3QgUGFkZGVkU3RhY2sgPVxuICAgICAgbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gICAgY29uc3QgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPVxuICAgICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gICAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gICAgY29uc3Qgc2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gICAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIENoaWxkcmVuLm1hcChjaGlsZHJlbiwgY2hpbGQgPT4ge1xuICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHMgfCBMaW5rUHJvcHM+KGNoaWxkKSkge1xuICAgICAgICAgICAgLy8gSW4gY2FzZSB0aGUgSXRlbSBpcyB3cmFwcGVkIGluIGEgbGlua1xuICAgICAgICAgICAgaWYgKCd0bycgaW4gY2hpbGQucHJvcHMpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkLnByb3BzLmNoaWxkcmVuPy5wcm9wcy5hY3RpdmVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkLnByb3BzLmFjdGl2ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH0pIGFzIGJvb2xlYW5bXVxuICAgICAgKS5pbmNsdWRlcyh0cnVlKVxuICAgIH0sIFtjaGlsZHJlbl0pXG5cbiAgICBjb25zdCBjb250YWluZXJUYWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhcykge1xuICAgICAgICByZXR1cm4gYXNcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiAnYSdcbiAgICAgIH1cblxuICAgICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICAgIHJldHVybiAnZGl2J1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ2J1dHRvbidcbiAgICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgICBjb25zdCBBcnJvd0ljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGludGVybmFsRXhwYW5kZWQgPyBBcnJvd0Rvd25JY29uIDogQXJyb3dSaWdodEljb24pLFxuICAgICAgW2ludGVybmFsRXhwYW5kZWRdLFxuICAgIClcblxuICAgIGNvbnN0IFBpblVucGluSWNvbiA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoaXNJdGVtUGlubmVkID8gU3R5bGVkVW5waW5JY29uIDogU3R5bGVkUGluSWNvbk91dGxpbmUpLFxuICAgICAgW2lzSXRlbVBpbm5lZF0sXG4gICAgKVxuXG4gICAgY29uc3QgYXJpYUV4cGFuZGVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxFeHBhbmRlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgIWludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsRXhwYW5kZWRdKVxuXG4gICAgY29uc3QgaXNQaW5EaXNhYmxlZCA9IHBpbm5lZEl0ZW1zLmxlbmd0aCA+PSBwaW5MaW1pdFxuICAgIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi5saW1pdCddXG4gICAgICB9XG5cbiAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgICB9LCBbaXNJdGVtUGlubmVkLCBpc1BpbkRpc2FibGVkLCBsb2NhbGVzXSlcblxuICAgIGNvbnN0IG9uRHJhZ1N0YXJ0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoXG4gICAgICAgICAgICAndGV4dC9wbGFpbicsXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7IGluZGV4LCBsYWJlbCB9KSxcbiAgICAgICAgICApXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH0sXG4gICAgICBbZXhwYW5kZWQsIGluZGV4LCBsYWJlbF0sXG4gICAgKVxuXG4gICAgY29uc3Qgb25EcmFnRW5kID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkLFxuICAgICAgW2V4cGFuZGVkXSxcbiAgICApXG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICAgIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz17Y2F0ZWdvcnlJY29uID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgICBhcz17Y29udGFpbmVyVGFnfVxuICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17c2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uLXR5cGU9e2FuaW1hdGlvblR5cGV9XG4gICAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgICAgZGF0YS1pcy1hY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgIGRhdGEtaXMtcGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgICBkYXRhLXBpbm5lZC1mZWF0dXJlPXtwaW5uZWRGZWF0dXJlfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZGlzYWJsZWQ9e2NvbnRhaW5lclRhZyA9PT0gJ2J1dHRvbicgPyBkaXNhYmxlZCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJUb2dnbGV9XG4gICAgICAgICAgICBvbkRyYWdFbmQ9e29uRHJhZ0VuZH1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0PXtvbkRyYWdTdGFydH1cbiAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiA/IChcbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgICAgeyFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdHJvbmcnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgICAgICB7bGFiZWxEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3Bhbj57bGFiZWxEZXNjcmlwdGlvbn08L1BhZGRlZFNwYW4+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c3ViTGFiZWwgJiYgIWFuaW1hdGlvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZT1cInByZS13cmFwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgIGdhcD17aHJlZiA/IDEgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgJiYgIWFuaW1hdGlvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBpbm5lZEl0ZW1zLmxlbmd0aCA8IHBpbkxpbWl0IHx8IGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFBpblVucGluSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgICA8U3RhY2tJY29uIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBkaXJlY3Rpb249XCJyb3dcIiBnYXA9ezF9PlxuICAgICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgICA8QXJyb3dJY29uIHByb21pbmVuY2U9XCJ3ZWFrXCIgc2VudGltZW50PVwibmV1dHJhbFwiIC8+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1N0YWNrSWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPEV4cGFuZGFibGUgYW5pbWF0aW9uRHVyYXRpb249ezB9IG9wZW5lZD17aW50ZXJuYWxFeHBhbmRlZH0+XG4gICAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjayB3aWR0aD17YW5pbWF0aW9uID8gJzEwMCUnIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxQYWRkZWRTdGFjayB3aWR0aD17YW5pbWF0aW9uID8gJzEwMCUnIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgPC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICAgICA8L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGlzIGNvbnRlbnQgaXMgdGhlIG1lbnUgb2YgdGhlIG5hdmlnYXRpb24gd2hlbiBjb2xsYXBzZWRcbiAgICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICAgIGRpc2Nsb3N1cmU9e1xuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17aGFzQWN0aXZlQ2hpbGRyZW4gPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgIHRyaWdnZXJNZXRob2Q9XCJob3ZlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+e2NoaWxkcmVufTwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0gdGV4dD17bGFiZWx9PlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7Y2F0ZWdvcnlJY29uIHx8IChcbiAgICAgICAgICAgICAgICAgICAgPE9yZ2FuaXphdGlvbkRhc2hib2FyZENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICAgIGlmIChoYXNQYXJlbnRzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgaXNQaW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblRvZ2dsZT8uKCEhYWN0aXZlKX1cbiAgICAgICAgICBwaW5uZWRGZWF0dXJlPXtwaW5uZWRGZWF0dXJlfVxuICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBmbGV4PXsxfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgeyFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCIgd2hpdGVTcGFjZT1cInByZS13cmFwXCI+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7bGFiZWxEZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICAgIHtiYWRnZVRleHQgJiYgIWFuaW1hdGlvbiA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJzdHJvbmdcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuICYmIHRhcmdldCA9PT0gJ19ibGFuaycgPyAoXG4gICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICAgIGlmICghaGFzUGFyZW50cyAmJiBocmVmKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8VG9vbHRpcCBwbGFjZW1lbnQ9XCJyaWdodFwiIHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICA8TWVudVN0YWNrIGFsaWduSXRlbXM9XCJzdGFydFwiIGdhcD17MX0ganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBhcz17Y29udGFpbmVyVGFnfVxuICAgICAgICAgICAgICBjc3M9e1N0eWxlZENvbnRhaW5lcn1cbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgIHJlbD17cmVsfVxuICAgICAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG4pXG4iXX0= */"));
112
- const StyledMenu = /* @__PURE__ */ _styled(Menu, process.env.NODE_ENV === "production" ? {
113
- target: "e134hokc7"
114
- } : {
115
- target: "e134hokc7",
116
- label: "StyledMenu"
117
- })(process.env.NODE_ENV === "production" ? {
118
- name: "educr3",
119
- styles: "width:180px"
120
- } : {
121
- name: "educr3",
122
- styles: "width:180px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlJK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
123
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
124
- });
125
- const PaddingStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
126
- target: "e134hokc6"
127
- } : {
128
- target: "e134hokc6",
129
- label: "PaddingStack"
130
- })(process.env.NODE_ENV === "production" ? {
131
- name: "13feash",
132
- styles: "padding-left:28px"
133
- } : {
134
- name: "13feash",
135
- styles: "padding-left:28px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFJa0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
136
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
137
- });
138
- const AnimatedIcon = /* @__PURE__ */ _styled(OpenInNewIcon, process.env.NODE_ENV === "production" ? {
139
- target: "e134hokc5"
140
- } : {
141
- target: "e134hokc5",
142
- label: "AnimatedIcon"
143
- })(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlJMEMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */");
144
- const WrapText = /* @__PURE__ */ _styled(Text, process.env.NODE_ENV === "production" ? {
145
- target: "e134hokc4"
146
- } : {
147
- target: "e134hokc4",
148
- label: "WrapText"
149
- })(process.env.NODE_ENV === "production" ? {
150
- name: "16qfaam",
151
- styles: "overflow-wrap:anywhere;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2"
152
- } : {
153
- name: "16qfaam",
154
- styles: "overflow-wrap:anywhere;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJJNkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
155
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
156
- });
157
- const StyledStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
158
- target: "e134hokc3"
159
- } : {
160
- target: "e134hokc3",
161
- label: "StyledStack"
162
- })(process.env.NODE_ENV === "production" ? {
163
- name: "13feash",
164
- styles: "padding-left:28px"
165
- } : {
166
- name: "13feash",
167
- styles: "padding-left:28px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1KaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
168
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
169
- });
170
- const StyledContainer = /* @__PURE__ */ css(NeutralButtonLink, ";border-radius:", theme.radii.default, ';&[data-has-no-expand="false"]{cursor:pointer;}margin-top:', theme.space["0.25"], ";padding:", `calc(${theme.space["0.25"]} + ${theme.space["0.5"]}) ${theme.space["1"]}`, ';&[data-has-sub-label="true"]{padding:', `${theme.space["0.5"]} ${theme.space["1"]}`, ';}width:100%;&:hover[data-has-no-expand="false"]:not([disabled]):not(\n [data-is-active="true"]\n ),&:focus[data-has-no-expand="false"]:not([disabled]):not(\n [data-is-active="true"]\n ){background-color:', theme.colors.neutral.backgroundWeak, ';}&[data-has-active-children="true"][data-has-no-expand="false"]:not(\n [disabled][data-is-active="true"]\n ){background-color:', theme.colors.neutral.backgroundWeakHover, ";", WrapText, "{color:", theme.colors.neutral.textWeakHover, ";}", PinnedButton, '{opacity:1;}&[data-is-pinnable="true"][data-pinned-feature="true"]{', StyledBadge, '{opacity:0;}}}&[data-has-no-expand="false"][data-pinned-feature="true"][data-is-pinnable="true"]:not([disabled]){&:hover,&:focus,&:active{', PinnedButton, ",", GrabIcon, "{opacity:1;}", StyledBadge, '{opacity:0;}}}&:hover[data-has-children="false"][data-is-active="false"][data-is-pinnable="true"]:not([disabled]){', WrapText, "{color:", theme.colors.neutral.textWeakHover, ';}}&:active[data-has-no-expand="false"]:not([disabled]):not(\n [data-is-active="true"]\n ){background-color:', theme.colors.neutral.backgroundHover, ';}&[data-is-active="true"],&:hover[data-has-active="true"]{background-color:', theme.colors.primary.background, ";&:hover{background-color:", theme.colors.primary.backgroundHover, ";}}&[disabled]{cursor:not-allowed;background-color:unset;", WrapText, "{color:", 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" ? "" : ";label:StyledContainer;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVKMkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */");
171
- const MenuStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
172
- target: "e134hokc2"
173
- } : {
174
- target: "e134hokc2",
175
- label: "MenuStack"
176
- })("padding:", ({
177
- theme: theme2
178
- }) => `0 ${theme2.space["2"]}`, ";margin-top:", ({
179
- theme: theme2
180
- }) => theme2.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlRK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
181
- const StackIcon = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
182
- target: "e134hokc1"
183
- } : {
184
- target: "e134hokc1",
185
- label: "StackIcon"
186
- })("padding-top:", ({
187
- theme: theme2
188
- }) => theme2.space["0.5"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNRK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */"));
189
- const ContainerCategoryIcon = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
190
- target: "e134hokc0"
191
- } : {
192
- target: "e134hokc0",
193
- label: "ContainerCategoryIcon"
194
- })(process.env.NODE_ENV === "production" ? {
195
- name: "d47oax",
196
- styles: "min-width:20px"
197
- } : {
198
- name: "d47oax",
199
- styles: "min-width:20px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBRMkMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7XG4gIEFycm93RG93bkljb24sXG4gIEFycm93UmlnaHRJY29uLFxuICBEcmFnSWNvbixcbiAgT3BlbkluTmV3SWNvbixcbiAgUGluT3V0bGluZUljb24sXG4gIFVucGluSWNvbixcbn0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uRGFzaGJvYXJkQ2F0ZWdvcnlJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zL2NhdGVnb3J5J1xuaW1wb3J0IHsgdGhlbWUgYXMgdmFuaWxsYVRoZW1lIH0gZnJvbSAnQHVsdHJhdmlvbGV0L3RoZW1lcydcbmltcG9ydCB7XG4gIEJhZGdlLFxuICBCdXR0b24sXG4gIEV4cGFuZGFibGUsXG4gIGZhZGVJbixcbiAgTWVudSxcbiAgU3RhY2ssXG4gIFRleHQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgRWxlbWVudFR5cGUsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBDaGlsZHJlbixcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIG1lbW8sXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZHVjZXIsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHR5cGUgeyBQaW5VblBpblR5cGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IEl0ZW1Db250ZXh0LCBJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0l0ZW1Qcm92aWRlcidcblxuY29uc3QgUmVsYXRpdmVEaXYgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gXG5cbmNvbnN0IFBhZGRlZFNwYW4gPSBzdHlsZWQuc3BhbmBcbiAgcGFkZGluZy1sZWZ0OiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWzFdfVxuYFxuXG5jb25zdCBTdHlsZWRQaW5JY29uT3V0bGluZSA9IHN0eWxlZChQaW5PdXRsaW5lSWNvbiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydhY3RpdmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHsgYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG5cbiAgICAkeyh7IGFjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICAgIGFjdGl2ZSA/IGBiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07YCA6IG51bGx9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkVW5waW5JY29uID0gU3R5bGVkUGluSWNvbk91dGxpbmUud2l0aENvbXBvbmVudChVbnBpbkljb24pXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoRHJhZ0ljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51Lkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZScsICdwaW5uZWRGZWF0dXJlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG4gIHBpbm5lZEZlYXR1cmU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSwgcGlubmVkRmVhdHVyZSB9KSA9PlxuICAgICAgICBpc1Bpbm5hYmxlICYmIHBpbm5lZEZlYXR1cmUgPyAwIDogMX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudSlgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKE9wZW5Jbk5ld0ljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dClgXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IGNzc2BcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7dmFuaWxsYVRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHtgY2FsYygke3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC4yNSddfSArICR7dmFuaWxsYVRoZW1lLnNwYWNlWycwLjUnXX0pICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAke2Ake3ZhbmlsbGFUaGVtZS5zcGFjZVsnMC41J119ICR7dmFuaWxsYVRoZW1lLnNwYWNlWycxJ119YH07XG4gIH1cblxuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXSB7XG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXVtkYXRhLXBpbm5lZC1mZWF0dXJlPVwidHJ1ZVwiXVtkYXRhLWlzLXBpbm5hYmxlPVwidHJ1ZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49XCJmYWxzZVwiXVtkYXRhLWlzLWFjdGl2ZT1cImZhbHNlXCJdW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHt2YW5pbGxhVGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbmlsbGFUaGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7dmFuaWxsYVRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXVtkYXRhLWFuaW1hdGlvbi10eXBlPVwiY29tcGxleFwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdW2RhdGEtYW5pbWF0aW9uLXR5cGU9XCJjb21wbGV4XCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTdGFja0ljb24gPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC41J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBMaW5rUHJvcHMgPSB7XG4gIHRvOiBzdHJpbmdcbiAgY2hpbGRyZW4/OiB7IHByb3BzOiBJdGVtUHJvcHMgfVxufVxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIGxhYmVsIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBjb21wbGVtZW50b3J5IGluZm9ybWF0aW9uIHdpdGggdGhlIGxhYmVsXG4gICAqL1xuICBsYWJlbERlc2NyaXB0aW9uPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBIVE1MQW5jaG9yRWxlbWVudFsnaHJlZiddXG4gIHRhcmdldD86IEhUTUxBbmNob3JFbGVtZW50Wyd0YXJnZXQnXVxuICByZWw/OiBIVE1MQW5jaG9yRWxlbWVudFsncmVsJ11cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvblRvZ2dsZT86ICh0b2dnbGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DbGlja1BpblVucGluPzogKHBhcmFtZXRlcnM6IFBpblVuUGluVHlwZSkgPT4gdm9pZFxuICAvKipcbiAgICogVGhpcyBwcm9wIGlzIHVzZWQgdG8gY29udHJvbCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCBvciBjb2xsYXBzZWRcbiAgICovXG4gIHRvZ2dsZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHRvIHRydWUgaWYgeW91ciBjdXJyZW50IHBhZ2UgaXMgdGhpcyBpdGVtLlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gcmVtb3ZlIHBpbiBidXR0b24gb24geW91ciBpdGVtIHVzZSB0aGlzIHByb3BcbiAgICovXG4gIG5vUGluQnV0dG9uPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIHRoZSB0eXBlIG9mIHRoZSBpdGVtXG4gICAqL1xuICB0eXBlPzogSXRlbVR5cGVcbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IEVsZW1lbnRUeXBlXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xufVxuXG5jb25zdCBvbkRyYWdTdG9wVHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gbWVtbyhcbiAgKHtcbiAgICBjaGlsZHJlbixcbiAgICBjYXRlZ29yeUljb24sXG4gICAgbGFiZWwsXG4gICAgbGFiZWxEZXNjcmlwdGlvbixcbiAgICBzdWJMYWJlbCxcbiAgICBiYWRnZVRleHQsXG4gICAgYmFkZ2VTZW50aW1lbnQsXG4gICAgaHJlZixcbiAgICB0YXJnZXQsXG4gICAgcmVsLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uQ2xpY2tQaW5VbnBpbixcbiAgICB0b2dnbGUsXG4gICAgYWN0aXZlLFxuICAgIG5vUGluQnV0dG9uLFxuICAgIHR5cGUgPSAnZGVmYXVsdCcsXG4gICAgYXMsXG4gICAgZGlzYWJsZWQsXG4gICAgbm9FeHBhbmQgPSBmYWxzZSxcbiAgICBpbmRleCxcbiAgICBpZCxcbiAgICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxuICB9OiBJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtUHJvdmlkZXIgPSB1c2VDb250ZXh0KEl0ZW1Db250ZXh0KVxuICAgIGNvbnN0IGhhc1BhcmVudHMgPSAhIWl0ZW1Qcm92aWRlclxuXG4gICAgY29uc3Qge1xuICAgICAgZXhwYW5kZWQsXG4gICAgICBsb2NhbGVzLFxuICAgICAgcGlubmVkRmVhdHVyZSxcbiAgICAgIHBpbkl0ZW0sXG4gICAgICB1bnBpbkl0ZW0sXG4gICAgICBwaW5uZWRJdGVtcyxcbiAgICAgIHBpbkxpbWl0LFxuICAgICAgYW5pbWF0aW9uLFxuICAgICAgcmVnaXN0ZXJJdGVtLFxuICAgICAgc2hvdWxkQW5pbWF0ZSxcbiAgICAgIGFuaW1hdGlvblR5cGUsXG4gICAgfSA9IGNvbnRleHRcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodHlwZSAhPT0gJ3Bpbm5lZEdyb3VwJyAmJiBwaW5uZWRGZWF0dXJlKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgYWN0aXZlLCBsYWJlbCwgb25DbGlja1BpblVucGluLCBvblRvZ2dsZSB9IH0pXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZSByZWFjdC9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0pXG5cbiAgICBjb25zdCBbaW50ZXJuYWxFeHBhbmRlZCwgb25Ub2dnbGVFeHBhbmRdID0gdXNlUmVkdWNlcihcbiAgICAgIHByZXZTdGF0ZSA9PiAhcHJldlN0YXRlLFxuICAgICAgQm9vbGVhbih0b2dnbGUpLFxuICAgIClcblxuICAgIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZUV4cGFuZCgpXG4gICAgICBvblRvZ2dsZT8uKGludGVybmFsRXhwYW5kZWQpXG4gICAgfSwgW2ludGVybmFsRXhwYW5kZWQsIG9uVG9nZ2xlXSlcblxuICAgIGNvbnN0IFBhZGRlZFN0YWNrID1cbiAgICAgIG5vRXhwYW5kIHx8IHR5cGUgPT09ICdwaW5uZWRHcm91cCcgPyBTdGFjayA6IFBhZGRpbmdTdGFja1xuXG4gICAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICAgIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICAgIHBpbm5lZEZlYXR1cmUgJiYgIWNoaWxkcmVuICYmICFub1BpbkJ1dHRvblxuICAgIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICAgIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChocmVmIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZGlzYWJsZWQsIGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuLCBocmVmLCB0eXBlXSlcblxuICAgIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+IHtcbiAgICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzIHwgTGlua1Byb3BzPihjaGlsZCkpIHtcbiAgICAgICAgICAgIC8vIEluIGNhc2UgdGhlIEl0ZW0gaXMgd3JhcHBlZCBpbiBhIGxpbmtcbiAgICAgICAgICAgIGlmICgndG8nIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5jaGlsZHJlbj8ucHJvcHMuYWN0aXZlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjaGlsZC5wcm9wcy5hY3RpdmVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9KSBhcyBib29sZWFuW11cbiAgICAgICkuaW5jbHVkZXModHJ1ZSlcbiAgICB9LCBbY2hpbGRyZW5dKVxuXG4gICAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgcmV0dXJuIGFzXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gJ2EnXG4gICAgICB9XG5cbiAgICAgIGlmIChub0V4cGFuZCkge1xuICAgICAgICByZXR1cm4gJ2RpdidcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICdidXR0b24nXG4gICAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gICAgY29uc3QgQXJyb3dJY29uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IChpbnRlcm5hbEV4cGFuZGVkID8gQXJyb3dEb3duSWNvbiA6IEFycm93UmlnaHRJY29uKSxcbiAgICAgIFtpbnRlcm5hbEV4cGFuZGVkXSxcbiAgICApXG5cbiAgICBjb25zdCBQaW5VbnBpbkljb24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGlzSXRlbVBpbm5lZCA/IFN0eWxlZFVucGluSWNvbiA6IFN0eWxlZFBpbkljb25PdXRsaW5lKSxcbiAgICAgIFtpc0l0ZW1QaW5uZWRdLFxuICAgIClcblxuICAgIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmIGludGVybmFsRXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbEV4cGFuZGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSwgW2hhc0hyZWZBbmROb0NoaWxkcmVuLCBpbnRlcm5hbEV4cGFuZGVkXSlcblxuICAgIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgICBjb25zdCBwaW5Ub29sdGlwTG9jYWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gICAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgICBjb25zdCBvbkRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBpbmRleCwgbGFiZWwgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuc3R5bGUub3BhY2l0eSA9ICcwLjUnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgW2V4cGFuZGVkLCBpbmRleCwgbGFiZWxdLFxuICAgIClcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PlxuICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZCxcbiAgICAgIFtleHBhbmRlZF0sXG4gICAgKVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbiAgICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGFsaWduSXRlbXM9e2NhdGVnb3J5SWNvbiA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgIGNzcz17U3R5bGVkQ29udGFpbmVyfVxuICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e3Nob3VsZEFuaW1hdGUgPyBhbmltYXRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkYXRhLWFuaW1hdGlvbi10eXBlPXthbmltYXRpb25UeXBlfVxuICAgICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICAgIGRhdGEtaGFzLWNoaWxkcmVuPXshIWNoaWxkcmVufVxuICAgICAgICAgICAgZGF0YS1oYXMtbm8tZXhwYW5kPXtub0V4cGFuZH1cbiAgICAgICAgICAgIGRhdGEtaGFzLXN1Yi1sYWJlbD17ISFzdWJMYWJlbH1cbiAgICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgICAgZGF0YS1waW5uZWQtZmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtjb250YWluZXJUYWcgPT09ICdidXR0b24nID8gZGlzYWJsZWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0cmlnZ2VyVG9nZ2xlfVxuICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9XG4gICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPXtjYXRlZ29yeUljb24gPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgPENvbnRhaW5lckNhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbn1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHt0eXBlID09PSAncGlubmVkJyAmJiBleHBhbmRlZCA/IChcbiAgICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFN0YWNrPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5SWNvbiB8fCAhaGFzUGFyZW50cykgJiYgIWFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFBhZGRlZFNwYW4+e2xhYmVsRGVzY3JpcHRpb259PC9QYWRkZWRTcGFuPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N1YkxhYmVsICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtzdWJMYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaW5uZWRJdGVtcy5sZW5ndGggPCBwaW5MaW1pdCB8fCBpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIC8vIFRoaXMgaXMgdG8gYXZvaWQgY2xpY2sgc3ByZWFkIHRvIHRoZSBwYXJlbnQgYW5kIGNoYW5nZSB0aGUgcm91dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXRlbVBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxQaW5VbnBpbkljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgdGFyZ2V0ID09PSAnX2JsYW5rJyAmJiAhYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgICAgPFN0YWNrSWNvbiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZGlyZWN0aW9uPVwicm93XCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPEFycm93SWNvbiBwcm9taW5lbmNlPVwid2Vha1wiIHNlbnRpbWVudD1cIm5ldXRyYWxcIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TdGFja0ljb24+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgICAgPEl0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxFeHBhbmRhYmxlIGFuaW1hdGlvbkR1cmF0aW9uPXswfSBvcGVuZWQ9e2ludGVybmFsRXhwYW5kZWR9PlxuICAgICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICA8L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICAgICAgPC9FeHBhbmRhYmxlPlxuICAgICAgICAgICAgICAgIDwvSXRlbVByb3ZpZGVyPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxJdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2sgd2lkdGg9e2FuaW1hdGlvbiA/ICcxMDAlJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgIDwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgICAgPC9JdGVtUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gICAgaWYgKGNhdGVnb3J5SWNvbiB8fCAoQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCAmJiAhaGFzUGFyZW50cykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNZW51U3RhY2sgYWxpZ25JdGVtcz1cInN0YXJ0XCIgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAge0NoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgPyAoXG4gICAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkeW5hbWljRG9tUmVuZGVyaW5nPXtmYWxzZX0gLy8gQXMgd2UgcGFyc2UgdGhlIGNoaWxkcmVuIHdlIGRvbid0IG5lZWQgZHluYW1pYyByZW5kZXJpbmdcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SXRlbVByb3ZpZGVyPntjaGlsZHJlbn08L0l0ZW1Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9IHRleHQ9e2xhYmVsfT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiB8fCAoXG4gICAgICAgICAgICAgICAgICAgIDxPcmdhbml6YXRpb25EYXNoYm9hcmRDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgICBpZiAoaGFzUGFyZW50cykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGU/LighIWFjdGl2ZSl9XG4gICAgICAgICAgcGlubmVkRmVhdHVyZT17cGlubmVkRmVhdHVyZX1cbiAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICB0YXJnZXQ9e3RhcmdldH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHshYW5pbWF0aW9uID8gKFxuICAgICAgICAgICAgICA8V3JhcFRleHQgYXM9XCJzcGFuXCIgdmFyaWFudD1cImJvZHlTbWFsbFwiIHdoaXRlU3BhY2U9XCJwcmUtd3JhcFwiPlxuICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2xhYmVsRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTcGFuPntsYWJlbERlc2NyaXB0aW9ufTwvUGFkZGVkU3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgICAgICB7YmFkZ2VUZXh0ICYmICFhbmltYXRpb24gPyAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEJhZGdlXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtiYWRnZVRleHR9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiB0YXJnZXQgPT09ICdfYmxhbmsnID8gKFxuICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICA6IHBpblRvb2x0aXBMb2NhbGVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGlubmVkSXRlbXMubGVuZ3RoIDwgcGluTGltaXQgfHwgaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGluVW5waW5JY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwicmlnaHRcIiB0ZXh0PXtsYWJlbH0+XG4gICAgICAgICAgPE1lbnVTdGFjayBhbGlnbkl0ZW1zPVwic3RhcnRcIiBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgYXM9e2NvbnRhaW5lclRhZ31cbiAgICAgICAgICAgICAgY3NzPXtTdHlsZWRDb250YWluZXJ9XG4gICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICByZWw9e3JlbH1cbiAgICAgICAgICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb24gcHJvbWluZW5jZT1cIndlYWtcIiBzZW50aW1lbnQ9XCJuZXV0cmFsXCIgLz5cbiAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPC9NZW51U3RhY2s+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9LFxuKVxuIl19 */",
200
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
201
- });
9
+ import { navigationItemContainer, navigationItemContainerAnimated, navigationItemShowDraggable, navigationItemShowPinButton, navigationItemWeakText, navigationItemCategoryIcon, navigationItemDragIcon, navigationItemWrapText, navigationItemPadded, navigationItemBadge, navigationItemRelative, navigationItemPinnedButton, navigationItemPinIcon, navigationItemStackIcon, navigationItemPaddingStack, navigationItemMenuStack, navigationItemMenuContainer, navigationItemMenu, navigationItemMenuPinned, navigationItemAnimatedIcon } from "./items.css.js";
202
10
  const onDragStopTrigger = (event) => {
203
11
  event.currentTarget.style.opacity = "1";
204
12
  };
205
- const Item = memo(({
206
- children,
207
- categoryIcon,
208
- label,
209
- labelDescription,
210
- subLabel,
211
- badgeText,
212
- badgeSentiment,
213
- href,
214
- target,
215
- rel,
216
- onToggle,
217
- onClickPinUnpin,
218
- toggle,
219
- active,
220
- noPinButton,
221
- type = "default",
222
- as,
223
- disabled,
224
- noExpand = false,
225
- index,
226
- id,
227
- "data-testid": dataTestId
228
- }) => {
229
- const context = useNavigation();
230
- if (!context) {
231
- throw new Error("Navigation.Item can only be used inside a NavigationProvider.");
232
- }
233
- const itemProvider = useContext(ItemContext);
234
- const hasParents = !!itemProvider;
235
- const {
236
- expanded,
237
- locales,
238
- pinnedFeature,
239
- pinItem,
240
- unpinItem,
241
- pinnedItems,
242
- pinLimit,
243
- animation,
244
- registerItem,
245
- shouldAnimate,
246
- animationType
247
- } = context;
248
- useEffect(() => {
249
- if (type !== "pinnedGroup" && pinnedFeature) {
250
- registerItem({
251
- [id]: {
252
- active,
253
- label,
254
- onClickPinUnpin,
255
- onToggle
256
- }
257
- });
258
- }
259
- }, [active, id, label, registerItem]);
260
- const [internalExpanded, onToggleExpand] = useReducer((prevState) => !prevState, Boolean(toggle));
261
- const triggerToggle = useCallback(() => {
262
- onToggleExpand();
263
- onToggle?.(internalExpanded);
264
- }, [internalExpanded, onToggle]);
265
- const PaddedStack = noExpand || type === "pinnedGroup" ? Stack : PaddingStack;
266
- const hasHrefAndNoChildren = href && !children;
267
- const hasPinnedFeatureAndNoChildren = pinnedFeature && !children && !noPinButton;
268
- const isItemPinned = pinnedItems.includes(id);
269
- const shouldShowPinnedButton = useMemo(() => {
270
- if (href || disabled) {
271
- return false;
13
+ const Item = memo(
14
+ ({
15
+ children,
16
+ categoryIcon,
17
+ label,
18
+ labelDescription,
19
+ subLabel,
20
+ badgeText,
21
+ badgeSentiment,
22
+ href,
23
+ target,
24
+ rel,
25
+ onToggle,
26
+ onClickPinUnpin,
27
+ toggle,
28
+ active,
29
+ noPinButton,
30
+ type = "default",
31
+ as,
32
+ disabled,
33
+ noExpand = false,
34
+ index,
35
+ id,
36
+ "data-testid": dataTestId,
37
+ style
38
+ }) => {
39
+ const context = useNavigation();
40
+ if (!context) {
41
+ throw new Error(
42
+ "Navigation.Item can only be used inside a NavigationProvider."
43
+ );
272
44
  }
273
- if (hasPinnedFeatureAndNoChildren && type !== "default") {
274
- return true;
275
- }
276
- if (hasPinnedFeatureAndNoChildren) {
277
- return true;
278
- }
279
- return false;
280
- }, [disabled, hasPinnedFeatureAndNoChildren, href, type]);
281
- const hasActiveChildren = useMemo(() => {
282
- if (!children) {
45
+ const itemProvider = useContext(ItemContext);
46
+ const hasParents = !!itemProvider;
47
+ const {
48
+ expanded,
49
+ locales,
50
+ pinnedFeature,
51
+ pinItem,
52
+ unpinItem,
53
+ pinnedItems,
54
+ pinLimit,
55
+ animation,
56
+ registerItem,
57
+ shouldAnimate,
58
+ animationType
59
+ } = context;
60
+ useEffect(() => {
61
+ if (type !== "pinnedGroup" && pinnedFeature) {
62
+ registerItem({ [id]: { active, label, onClickPinUnpin, onToggle } });
63
+ }
64
+ }, [active, id, label, registerItem]);
65
+ const [internalExpanded, onToggleExpand] = useReducer(
66
+ (prevState) => !prevState,
67
+ Boolean(toggle)
68
+ );
69
+ const triggerToggle = useCallback(() => {
70
+ onToggleExpand();
71
+ onToggle?.(internalExpanded);
72
+ }, [internalExpanded, onToggle]);
73
+ const hasHrefAndNoChildren = href && !children;
74
+ const hasPinnedFeatureAndNoChildren = pinnedFeature && !children && !noPinButton;
75
+ const isItemPinned = pinnedItems.includes(id);
76
+ const shouldShowPinnedButton = useMemo(() => {
77
+ if (href || disabled) {
78
+ return false;
79
+ }
80
+ if (hasPinnedFeatureAndNoChildren && type !== "default") {
81
+ return true;
82
+ }
83
+ if (hasPinnedFeatureAndNoChildren) {
84
+ return true;
85
+ }
283
86
  return false;
284
- }
285
- return Children.map(children, (child) => {
286
- if (isValidElement(child)) {
287
- if ("to" in child.props) {
288
- return child.props.children?.props.active;
87
+ }, [disabled, hasPinnedFeatureAndNoChildren, href, type]);
88
+ const hasActiveChildren = useMemo(() => {
89
+ if (!children) {
90
+ return false;
91
+ }
92
+ return Children.map(children, (child) => {
93
+ if (isValidElement(child)) {
94
+ if ("to" in child.props) {
95
+ return child.props.children?.props.active;
96
+ }
97
+ return child.props.active;
289
98
  }
290
- return child.props.active;
99
+ return null;
100
+ }).includes(true);
101
+ }, [children]);
102
+ const containerTag = useMemo(() => {
103
+ if (as) {
104
+ return as;
291
105
  }
292
- return null;
293
- }).includes(true);
294
- }, [children]);
295
- const containerTag = useMemo(() => {
296
- if (as) {
297
- return as;
298
- }
299
- if (hasHrefAndNoChildren) {
300
- return "a";
301
- }
302
- if (noExpand) {
303
- return "div";
304
- }
305
- return "button";
306
- }, [as, hasHrefAndNoChildren, noExpand]);
307
- const ArrowIcon = useMemo(() => internalExpanded ? ArrowDownIcon : ArrowRightIcon, [internalExpanded]);
308
- const PinUnpinIcon = useMemo(() => isItemPinned ? StyledUnpinIcon : StyledPinIconOutline, [isItemPinned]);
309
- const ariaExpanded = useMemo(() => {
310
- if (hasHrefAndNoChildren && internalExpanded) {
311
- return true;
312
- }
313
- if (hasHrefAndNoChildren && !internalExpanded) {
314
- return false;
315
- }
316
- return void 0;
317
- }, [hasHrefAndNoChildren, internalExpanded]);
318
- const isPinDisabled = pinnedItems.length >= pinLimit;
319
- const pinTooltipLocale = useMemo(() => {
320
- if (isPinDisabled) {
321
- return locales["navigation.pin.limit"];
106
+ if (hasHrefAndNoChildren) {
107
+ return "a";
108
+ }
109
+ if (noExpand) {
110
+ return "div";
111
+ }
112
+ return "button";
113
+ }, [as, hasHrefAndNoChildren, noExpand]);
114
+ const ArrowIcon = useMemo(
115
+ () => internalExpanded ? ArrowDownIcon : ArrowRightIcon,
116
+ [internalExpanded]
117
+ );
118
+ const PinUnpinIcon = useMemo(
119
+ () => isItemPinned ? UnpinIcon : PinOutlineIcon,
120
+ [isItemPinned]
121
+ );
122
+ const ariaExpanded = useMemo(() => {
123
+ if (hasHrefAndNoChildren && internalExpanded) {
124
+ return true;
125
+ }
126
+ if (hasHrefAndNoChildren && !internalExpanded) {
127
+ return false;
128
+ }
129
+ return void 0;
130
+ }, [hasHrefAndNoChildren, internalExpanded]);
131
+ const isPinDisabled = pinnedItems.length >= pinLimit;
132
+ const pinTooltipLocale = useMemo(() => {
133
+ if (isPinDisabled) {
134
+ return locales["navigation.pin.limit"];
135
+ }
136
+ if (isItemPinned) {
137
+ return locales["navigation.unpin.tooltip"];
138
+ }
139
+ return locales["navigation.pin.tooltip"];
140
+ }, [isItemPinned, isPinDisabled, locales]);
141
+ const onDragStart = useCallback(
142
+ (event) => {
143
+ if (expanded) {
144
+ event.dataTransfer.setData(
145
+ "text/plain",
146
+ JSON.stringify({ index, label })
147
+ );
148
+ event.currentTarget.style.opacity = "0.5";
149
+ }
150
+ return void 0;
151
+ },
152
+ [expanded, index, label]
153
+ );
154
+ const onDragEnd = useCallback(
155
+ (event) => expanded ? onDragStopTrigger(event) : void 0,
156
+ [expanded]
157
+ );
158
+ const showDraggableIcon = !noExpand && pinnedFeature && shouldShowPinnedButton && !disabled;
159
+ const showPinIcon = !noExpand && !disabled && shouldShowPinnedButton && pinnedFeature;
160
+ const shouldHaveWeakText = !!children && !active && shouldShowPinnedButton && !disabled;
161
+ if (expanded || !expanded && animation === "expand") {
162
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
163
+ /* @__PURE__ */ jsxs(
164
+ Stack,
165
+ {
166
+ alignItems: categoryIcon ? "flex-start" : "center",
167
+ "aria-expanded": ariaExpanded,
168
+ as: containerTag,
169
+ className: `${navigationItemContainer({ disabled, hasActive: hasActiveChildren, isActive: !!active, noExpand, subLabel: !!subLabel })} ${shouldAnimate && animationType === "complex" ? navigationItemContainerAnimated[animation === "collapse" ? "collapse" : "expand"] : ""} ${showDraggableIcon ? navigationItemShowDraggable : ""} ${showPinIcon ? navigationItemShowPinButton : ""} ${shouldHaveWeakText ? navigationItemWeakText : ""}`,
170
+ "data-testid": dataTestId,
171
+ direction: "row",
172
+ disabled: containerTag === "button" ? disabled : void 0,
173
+ draggable: type === "pinned" && expanded,
174
+ gap: 1,
175
+ href,
176
+ id,
177
+ justifyContent: "space-between",
178
+ onClick: triggerToggle,
179
+ onDragEnd,
180
+ onDragStart,
181
+ rel,
182
+ style,
183
+ target,
184
+ children: [
185
+ /* @__PURE__ */ jsxs(
186
+ Stack,
187
+ {
188
+ alignItems: categoryIcon ? "flex-start" : "center",
189
+ direction: "row",
190
+ gap: 1,
191
+ justifyContent: "center",
192
+ children: [
193
+ categoryIcon ? /* @__PURE__ */ jsx(
194
+ Stack,
195
+ {
196
+ alignItems: "center",
197
+ className: navigationItemCategoryIcon,
198
+ justifyContent: "center",
199
+ children: categoryIcon
200
+ }
201
+ ) : null,
202
+ type === "pinned" && expanded ? /* @__PURE__ */ jsx(
203
+ DragIcon,
204
+ {
205
+ className: navigationItemDragIcon,
206
+ disabled,
207
+ prominence: "weak",
208
+ sentiment: "neutral",
209
+ size: "small"
210
+ }
211
+ ) : null,
212
+ /* @__PURE__ */ jsxs(Stack, { children: [
213
+ !animation ? /* @__PURE__ */ jsxs(
214
+ Text,
215
+ {
216
+ as: "span",
217
+ className: navigationItemWrapText({
218
+ disabled,
219
+ weak: hasActiveChildren && !noExpand && !disabled && !!active
220
+ }),
221
+ "data-animation": animation,
222
+ disabled,
223
+ prominence: (categoryIcon || !hasParents) && !active ? "strong" : "default",
224
+ sentiment: active ? "primary" : "neutral",
225
+ variant: "bodySmallStrong",
226
+ whiteSpace: "pre-wrap",
227
+ children: [
228
+ label,
229
+ labelDescription ? /* @__PURE__ */ jsx("span", { className: navigationItemPadded, children: labelDescription }) : null
230
+ ]
231
+ }
232
+ ) : null,
233
+ subLabel && !animation ? /* @__PURE__ */ jsx(
234
+ Text,
235
+ {
236
+ as: "span",
237
+ className: navigationItemWrapText({
238
+ disabled,
239
+ weak: hasActiveChildren && !noExpand && !disabled && !!active
240
+ }),
241
+ "data-animation": animation,
242
+ disabled,
243
+ prominence: "weak",
244
+ sentiment: "neutral",
245
+ variant: "caption",
246
+ whiteSpace: "pre-wrap",
247
+ children: subLabel
248
+ }
249
+ ) : null
250
+ ] })
251
+ ]
252
+ }
253
+ ),
254
+ /* @__PURE__ */ jsxs(
255
+ Stack,
256
+ {
257
+ alignItems: "center",
258
+ direction: "row",
259
+ gap: href ? 1 : void 0,
260
+ children: [
261
+ badgeText || hasPinnedFeatureAndNoChildren ? /* @__PURE__ */ jsxs(Fragment, { children: [
262
+ badgeText && !animation ? /* @__PURE__ */ jsx(
263
+ Badge,
264
+ {
265
+ className: navigationItemBadge,
266
+ disabled,
267
+ prominence: "strong",
268
+ sentiment: badgeSentiment,
269
+ size: "small",
270
+ children: badgeText
271
+ }
272
+ ) : null,
273
+ shouldShowPinnedButton ? /* @__PURE__ */ jsx(
274
+ Tooltip,
275
+ {
276
+ placement: "right",
277
+ text: isItemPinned ? locales["navigation.unpin.tooltip"] : pinTooltipLocale,
278
+ children: /* @__PURE__ */ jsx("div", { className: navigationItemRelative, children: /* @__PURE__ */ jsx(
279
+ "div",
280
+ {
281
+ "aria-disabled": isItemPinned ? false : isPinDisabled,
282
+ "aria-label": isItemPinned ? "unpin" : "pin",
283
+ className: navigationItemPinnedButton,
284
+ onClick: (event) => {
285
+ if (pinnedItems.length < pinLimit || isItemPinned) {
286
+ event.preventDefault();
287
+ event.stopPropagation();
288
+ let newValue;
289
+ if (isItemPinned) {
290
+ newValue = unpinItem(id);
291
+ } else {
292
+ newValue = pinItem(id);
293
+ }
294
+ onClickPinUnpin?.({
295
+ id,
296
+ state: isItemPinned ? "unpin" : "pin",
297
+ totalPinned: newValue
298
+ });
299
+ }
300
+ },
301
+ onKeyDown: () => {
302
+ },
303
+ role: "button",
304
+ children: /* @__PURE__ */ jsx(
305
+ PinUnpinIcon,
306
+ {
307
+ className: navigationItemPinIcon[active ? "active" : "inactive"],
308
+ disabled: isItemPinned ? false : isPinDisabled,
309
+ sentiment: active ? "primary" : "neutral",
310
+ size: "medium"
311
+ }
312
+ )
313
+ }
314
+ ) })
315
+ }
316
+ ) : null
317
+ ] }) : null,
318
+ hasHrefAndNoChildren && target === "_blank" && !animation ? /* @__PURE__ */ jsx(
319
+ OpenInNewIcon,
320
+ {
321
+ disabled,
322
+ prominence: "default",
323
+ sentiment: "neutral"
324
+ }
325
+ ) : null,
326
+ children ? /* @__PURE__ */ jsx(
327
+ Stack,
328
+ {
329
+ alignItems: "center",
330
+ className: navigationItemStackIcon,
331
+ direction: "row",
332
+ gap: 1,
333
+ children: !animation && !noExpand ? /* @__PURE__ */ jsx(ArrowIcon, { prominence: "weak", sentiment: "neutral" }) : null
334
+ }
335
+ ) : null
336
+ ]
337
+ }
338
+ )
339
+ ]
340
+ }
341
+ ),
342
+ children ? /* @__PURE__ */ jsx(Fragment, { children: !noExpand ? /* @__PURE__ */ jsx(ItemProvider, { children: /* @__PURE__ */ jsx(Expandable, { animationDuration: 0, opened: internalExpanded, children: /* @__PURE__ */ jsx(
343
+ Stack,
344
+ {
345
+ className: noExpand || type === "pinnedGroup" ? "" : navigationItemPaddingStack({
346
+ hide: shouldAnimate && animationType === "complex" && animation === "expand"
347
+ }),
348
+ width: animation ? "100%" : void 0,
349
+ children
350
+ }
351
+ ) }) }) : /* @__PURE__ */ jsx(ItemProvider, { children: /* @__PURE__ */ jsx(
352
+ Stack,
353
+ {
354
+ className: noExpand || type === "pinnedGroup" ? "" : navigationItemPaddingStack({
355
+ hide: shouldAnimate && animationType === "complex" && animation === "expand"
356
+ }),
357
+ width: animation ? "100%" : void 0,
358
+ children
359
+ }
360
+ ) }) }) : null
361
+ ] });
322
362
  }
323
- if (isItemPinned) {
324
- return locales["navigation.unpin.tooltip"];
363
+ if (categoryIcon || Children.count(children) > 0 && !hasParents) {
364
+ return /* @__PURE__ */ jsx(
365
+ Stack,
366
+ {
367
+ alignItems: "start",
368
+ className: navigationItemMenuStack,
369
+ gap: 1,
370
+ justifyContent: "start",
371
+ style,
372
+ children: Children.count(children) > 0 ? /* @__PURE__ */ jsx(
373
+ Menu,
374
+ {
375
+ className: navigationItemMenuContainer,
376
+ disclosure: /* @__PURE__ */ jsx(
377
+ Button,
378
+ {
379
+ "aria-label": label,
380
+ sentiment: "neutral",
381
+ size: "small",
382
+ variant: hasActiveChildren ? "filled" : "ghost",
383
+ children: categoryIcon ? /* @__PURE__ */ jsx(
384
+ Stack,
385
+ {
386
+ alignItems: "center",
387
+ direction: "row",
388
+ gap: 1,
389
+ justifyContent: "center",
390
+ children: categoryIcon
391
+ }
392
+ ) : null
393
+ }
394
+ ),
395
+ dynamicDomRendering: false,
396
+ placement: "right",
397
+ triggerMethod: "hover",
398
+ children: /* @__PURE__ */ jsx(ItemProvider, { children })
399
+ }
400
+ ) : /* @__PURE__ */ jsx(Tooltip, { placement: "right", tabIndex: -1, text: label, children: /* @__PURE__ */ jsx(
401
+ Button,
402
+ {
403
+ "aria-label": label,
404
+ sentiment: "neutral",
405
+ size: "small",
406
+ variant: active ? "filled" : "ghost",
407
+ children: /* @__PURE__ */ jsx(
408
+ Stack,
409
+ {
410
+ alignItems: "center",
411
+ direction: "row",
412
+ gap: 1,
413
+ justifyContent: "center",
414
+ children: categoryIcon || /* @__PURE__ */ jsx(
415
+ OrganizationDashboardCategoryIcon,
416
+ {
417
+ variant: active ? "primary" : "neutral"
418
+ }
419
+ )
420
+ }
421
+ )
422
+ }
423
+ ) })
424
+ }
425
+ );
325
426
  }
326
- return locales["navigation.pin.tooltip"];
327
- }, [isItemPinned, isPinDisabled, locales]);
328
- const onDragStart = useCallback((event) => {
329
- if (expanded) {
330
- event.dataTransfer.setData("text/plain", JSON.stringify({
331
- index,
332
- label
333
- }));
334
- event.currentTarget.style.opacity = "0.5";
427
+ if (hasParents) {
428
+ return /* @__PURE__ */ jsx(
429
+ Menu.Item,
430
+ {
431
+ active,
432
+ borderless: true,
433
+ className: `${navigationItemMenu}${pinnedFeature && shouldShowPinnedButton ? ` ${navigationItemMenuPinned}` : ""}`,
434
+ disabled,
435
+ href,
436
+ onClick: () => onToggle?.(!!active),
437
+ rel,
438
+ sentiment: active ? "primary" : "neutral",
439
+ style,
440
+ target,
441
+ children: /* @__PURE__ */ jsxs(
442
+ Stack,
443
+ {
444
+ alignItems: "center",
445
+ direction: "row",
446
+ flex: 1,
447
+ gap: 1,
448
+ justifyContent: "space-between",
449
+ width: "100%",
450
+ children: [
451
+ !animation ? /* @__PURE__ */ jsx(
452
+ Text,
453
+ {
454
+ as: "span",
455
+ className: navigationItemWrapText({
456
+ disabled,
457
+ weak: hasActiveChildren && !noExpand && !disabled && !!active
458
+ }),
459
+ variant: "bodySmall",
460
+ whiteSpace: "pre-wrap",
461
+ children: label
462
+ }
463
+ ) : null,
464
+ labelDescription ? /* @__PURE__ */ jsx("span", { className: navigationItemPadded, children: labelDescription }) : null,
465
+ /* @__PURE__ */ jsxs(Stack, { direction: "row", children: [
466
+ badgeText && !animation ? /* @__PURE__ */ jsx(
467
+ Badge,
468
+ {
469
+ className: navigationItemBadge,
470
+ disabled,
471
+ prominence: "strong",
472
+ sentiment: badgeSentiment,
473
+ size: "small",
474
+ children: badgeText
475
+ }
476
+ ) : null,
477
+ hasHrefAndNoChildren && target === "_blank" ? /* @__PURE__ */ jsx(
478
+ OpenInNewIcon,
479
+ {
480
+ className: shouldAnimate && animationType === "complex" ? navigationItemAnimatedIcon[animation === "expand" ? "expand" : "collapse"] : "",
481
+ disabled,
482
+ prominence: "weak",
483
+ sentiment: "neutral"
484
+ }
485
+ ) : null,
486
+ shouldShowPinnedButton ? /* @__PURE__ */ jsx(
487
+ Tooltip,
488
+ {
489
+ placement: "right",
490
+ text: isItemPinned ? locales["navigation.unpin.tooltip"] : pinTooltipLocale,
491
+ children: /* @__PURE__ */ jsx("div", { className: navigationItemRelative, children: /* @__PURE__ */ jsx(
492
+ "div",
493
+ {
494
+ "aria-disabled": isItemPinned ? false : isPinDisabled,
495
+ "aria-label": isItemPinned ? "unpin" : "pin",
496
+ className: navigationItemPinnedButton,
497
+ onClick: (event) => {
498
+ if (pinnedItems.length < pinLimit || isItemPinned) {
499
+ event.preventDefault();
500
+ event.stopPropagation();
501
+ let newValue;
502
+ if (isItemPinned) {
503
+ newValue = unpinItem(id);
504
+ } else {
505
+ newValue = pinItem(id);
506
+ }
507
+ onClickPinUnpin?.({
508
+ id,
509
+ state: isItemPinned ? "unpin" : "pin",
510
+ totalPinned: newValue
511
+ });
512
+ }
513
+ },
514
+ onKeyDown: () => {
515
+ },
516
+ role: "button",
517
+ children: /* @__PURE__ */ jsx(
518
+ PinUnpinIcon,
519
+ {
520
+ className: navigationItemPinIcon[active ? "active" : "inactive"],
521
+ disabled: isItemPinned ? false : isPinDisabled,
522
+ sentiment: active ? "primary" : "neutral",
523
+ size: "medium"
524
+ }
525
+ )
526
+ }
527
+ ) })
528
+ }
529
+ ) : null
530
+ ] })
531
+ ]
532
+ }
533
+ )
534
+ }
535
+ );
335
536
  }
336
- return void 0;
337
- }, [expanded, index, label]);
338
- const onDragEnd = useCallback((event) => expanded ? onDragStopTrigger(event) : void 0, [expanded]);
339
- if (expanded || !expanded && animation === "expand") {
340
- return /* @__PURE__ */ jsxs(Fragment, { children: [
341
- /* @__PURE__ */ jsxs(Stack, { alignItems: categoryIcon ? "flex-start" : "center", "aria-expanded": ariaExpanded, as: containerTag, css: StyledContainer, "data-animation": shouldAnimate ? animation : void 0, "data-animation-type": animationType, "data-has-active-children": hasActiveChildren, "data-has-children": !!children, "data-has-no-expand": noExpand, "data-has-sub-label": !!subLabel, "data-is-active": active, "data-is-pinnable": shouldShowPinnedButton, "data-pinned-feature": pinnedFeature, "data-testid": dataTestId, direction: "row", disabled: containerTag === "button" ? disabled : void 0, draggable: type === "pinned" && expanded, gap: 1, href, id, justifyContent: "space-between", onClick: triggerToggle, onDragEnd, onDragStart, rel, target, children: [
342
- /* @__PURE__ */ jsxs(Stack, { alignItems: categoryIcon ? "flex-start" : "center", direction: "row", gap: 1, justifyContent: "center", children: [
343
- categoryIcon ? /* @__PURE__ */ jsx(ContainerCategoryIcon, { alignItems: "center", justifyContent: "center", children: categoryIcon }) : null,
344
- type === "pinned" && expanded ? /* @__PURE__ */ jsx(GrabIcon, { disabled, prominence: "weak", sentiment: "neutral", size: "small" }) : null,
345
- /* @__PURE__ */ jsxs(Stack, { children: [
346
- !animation ? /* @__PURE__ */ jsxs(WrapText, { as: "span", "data-animation": animation, disabled, prominence: (categoryIcon || !hasParents) && !active ? "strong" : "default", sentiment: active ? "primary" : "neutral", variant: "bodySmallStrong", whiteSpace: "pre-wrap", children: [
347
- label,
348
- labelDescription ? /* @__PURE__ */ jsx(PaddedSpan, { children: labelDescription }) : null
349
- ] }) : null,
350
- subLabel && !animation ? /* @__PURE__ */ jsx(WrapText, { as: "span", "data-animation": animation, disabled, prominence: "weak", sentiment: "neutral", variant: "caption", whiteSpace: "pre-wrap", children: subLabel }) : null
351
- ] })
352
- ] }),
353
- /* @__PURE__ */ jsxs(Stack, { alignItems: "center", direction: "row", gap: href ? 1 : void 0, children: [
354
- badgeText || hasPinnedFeatureAndNoChildren ? /* @__PURE__ */ jsxs(Fragment, { children: [
355
- badgeText && !animation ? /* @__PURE__ */ jsx(StyledBadge, { disabled, prominence: "strong", sentiment: badgeSentiment, size: "small", children: badgeText }) : null,
356
- shouldShowPinnedButton ? /* @__PURE__ */ jsx(Tooltip, { placement: "right", text: isItemPinned ? locales["navigation.unpin.tooltip"] : pinTooltipLocale, children: /* @__PURE__ */ jsx(RelativeDiv, { children: /* @__PURE__ */ jsx(PinnedButton, { "aria-label": isItemPinned ? "unpin" : "pin", disabled: isItemPinned ? false : isPinDisabled, onClick: (event) => {
357
- if (pinnedItems.length < pinLimit || isItemPinned) {
358
- event.preventDefault();
359
- event.stopPropagation();
360
- let newValue;
361
- if (isItemPinned) {
362
- newValue = unpinItem(id);
363
- } else {
364
- newValue = pinItem(id);
537
+ if (!hasParents && href) {
538
+ return /* @__PURE__ */ jsx(Tooltip, { placement: "right", text: label, children: /* @__PURE__ */ jsx(
539
+ Stack,
540
+ {
541
+ alignItems: "start",
542
+ className: navigationItemMenuStack,
543
+ gap: 1,
544
+ justifyContent: "start",
545
+ children: /* @__PURE__ */ jsx(
546
+ Stack,
547
+ {
548
+ alignItems: "center",
549
+ as: containerTag,
550
+ className: `${navigationItemContainer({ disabled })} ${shouldAnimate && animationType === "complex" ? navigationItemContainerAnimated[animation === "collapse" ? "collapse" : "expand"] : ""}`,
551
+ gap: 1,
552
+ href,
553
+ justifyContent: "center",
554
+ rel,
555
+ target,
556
+ children: /* @__PURE__ */ jsx(
557
+ OpenInNewIcon,
558
+ {
559
+ className: shouldAnimate && animationType === "complex" ? navigationItemAnimatedIcon[animation === "expand" ? "expand" : "collapse"] : "",
560
+ prominence: "weak",
561
+ sentiment: "neutral"
365
562
  }
366
- onClickPinUnpin?.({
367
- id,
368
- state: isItemPinned ? "unpin" : "pin",
369
- totalPinned: newValue
370
- });
371
- }
372
- }, role: "button", sentiment: active ? "primary" : "neutral", size: "xsmall", variant: "ghost", children: /* @__PURE__ */ jsx(PinUnpinIcon, { active, disabled: isItemPinned ? false : isPinDisabled, sentiment: active ? "primary" : "neutral", size: "medium" }) }) }) }) : null
373
- ] }) : null,
374
- hasHrefAndNoChildren && target === "_blank" && !animation ? /* @__PURE__ */ jsx(AnimatedIcon, { disabled, prominence: "default", sentiment: "neutral" }) : null,
375
- children ? /* @__PURE__ */ jsx(StackIcon, { alignItems: "center", direction: "row", gap: 1, children: !animation && !noExpand ? /* @__PURE__ */ jsx(ArrowIcon, { prominence: "weak", sentiment: "neutral" }) : null }) : null
376
- ] })
377
- ] }),
378
- children ? /* @__PURE__ */ jsx(Fragment, { children: !noExpand ? /* @__PURE__ */ jsx(ItemProvider, { children: /* @__PURE__ */ jsx(Expandable, { animationDuration: 0, opened: internalExpanded, children: /* @__PURE__ */ jsx(PaddedStack, { width: animation ? "100%" : void 0, children }) }) }) : /* @__PURE__ */ jsx(ItemProvider, { children: /* @__PURE__ */ jsx(PaddedStack, { width: animation ? "100%" : void 0, children }) }) }) : null
379
- ] });
380
- }
381
- if (categoryIcon || Children.count(children) > 0 && !hasParents) {
382
- return /* @__PURE__ */ jsx(MenuStack, { alignItems: "start", gap: 1, justifyContent: "start", children: Children.count(children) > 0 ? /* @__PURE__ */ jsx(
383
- StyledMenu,
384
- {
385
- disclosure: /* @__PURE__ */ jsx(Button, { "aria-label": label, sentiment: "neutral", size: "small", variant: hasActiveChildren ? "filled" : "ghost", children: categoryIcon ? /* @__PURE__ */ jsx(Stack, { alignItems: "center", direction: "row", gap: 1, justifyContent: "center", children: categoryIcon }) : null }),
386
- dynamicDomRendering: false,
387
- placement: "right",
388
- triggerMethod: "hover",
389
- children: /* @__PURE__ */ jsx(ItemProvider, { children })
390
- }
391
- ) : /* @__PURE__ */ jsx(Tooltip, { placement: "right", tabIndex: -1, text: label, children: /* @__PURE__ */ jsx(Button, { "aria-label": label, sentiment: "neutral", size: "small", variant: active ? "filled" : "ghost", children: /* @__PURE__ */ jsx(Stack, { alignItems: "center", direction: "row", gap: 1, justifyContent: "center", children: categoryIcon || /* @__PURE__ */ jsx(OrganizationDashboardCategoryIcon, { variant: active ? "primary" : "neutral" }) }) }) }) });
392
- }
393
- if (hasParents) {
394
- return /* @__PURE__ */ jsx(StyledMenuItem, { active, borderless: true, disabled, href, isPinnable: shouldShowPinnedButton, onClick: () => onToggle?.(!!active), pinnedFeature, rel, sentiment: active ? "primary" : "neutral", target, children: /* @__PURE__ */ jsxs(Stack, { alignItems: "center", direction: "row", flex: 1, gap: 1, justifyContent: "space-between", width: "100%", children: [
395
- !animation ? /* @__PURE__ */ jsx(WrapText, { as: "span", variant: "bodySmall", whiteSpace: "pre-wrap", children: label }) : null,
396
- labelDescription ? /* @__PURE__ */ jsx(PaddedSpan, { children: labelDescription }) : null,
397
- /* @__PURE__ */ jsxs(Stack, { direction: "row", children: [
398
- badgeText && !animation ? /* @__PURE__ */ jsx(StyledBadge, { disabled, prominence: "strong", sentiment: badgeSentiment, size: "small", children: badgeText }) : null,
399
- hasHrefAndNoChildren && target === "_blank" ? /* @__PURE__ */ jsx(AnimatedIcon, { disabled, prominence: "weak", sentiment: "neutral" }) : null,
400
- shouldShowPinnedButton ? /* @__PURE__ */ jsx(Tooltip, { placement: "right", text: isItemPinned ? locales["navigation.unpin.tooltip"] : pinTooltipLocale, children: /* @__PURE__ */ jsx(RelativeDiv, { children: /* @__PURE__ */ jsx(PinnedButton, { "aria-label": isItemPinned ? "unpin" : "pin", disabled: isItemPinned ? false : isPinDisabled, onClick: (event) => {
401
- if (pinnedItems.length < pinLimit || isItemPinned) {
402
- event.preventDefault();
403
- event.stopPropagation();
404
- let newValue;
405
- if (isItemPinned) {
406
- newValue = unpinItem(id);
407
- } else {
408
- newValue = pinItem(id);
563
+ )
409
564
  }
410
- onClickPinUnpin?.({
411
- id,
412
- state: isItemPinned ? "unpin" : "pin",
413
- totalPinned: newValue
414
- });
415
- }
416
- }, role: "button", sentiment: active ? "primary" : "neutral", size: "xsmall", variant: "ghost", children: /* @__PURE__ */ jsx(PinUnpinIcon, { active, disabled: isItemPinned ? false : isPinDisabled, sentiment: active ? "primary" : "neutral", size: "medium" }) }) }) }) : null
417
- ] })
418
- ] }) });
419
- }
420
- if (!hasParents && href) {
421
- return /* @__PURE__ */ jsx(Tooltip, { placement: "right", text: label, children: /* @__PURE__ */ jsx(MenuStack, { alignItems: "start", gap: 1, justifyContent: "start", children: /* @__PURE__ */ jsx(Stack, { alignItems: "center", as: containerTag, css: StyledContainer, gap: 1, href, justifyContent: "center", rel, target, children: /* @__PURE__ */ jsx(AnimatedIcon, { prominence: "weak", sentiment: "neutral" }) }) }) });
565
+ )
566
+ }
567
+ ) });
568
+ }
569
+ return null;
422
570
  }
423
- return null;
424
- });
571
+ );
425
572
  export {
426
573
  Item
427
574
  };