@ultraviolet/ui 1.77.4 → 1.78.1

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 (159) hide show
  1. package/dist/components/Alert/index.cjs +2 -4
  2. package/dist/components/Alert/index.js +2 -4
  3. package/dist/components/Breadcrumbs/components/Item.cjs +3 -3
  4. package/dist/components/Breadcrumbs/components/Item.d.ts +1 -1
  5. package/dist/components/Breadcrumbs/components/Item.js +3 -3
  6. package/dist/components/Button/index.cjs +7 -5
  7. package/dist/components/Button/index.d.ts +2 -0
  8. package/dist/components/Button/index.js +7 -5
  9. package/dist/components/Card/index.cjs +1 -2
  10. package/dist/components/Card/index.js +1 -2
  11. package/dist/components/Carousel/index.cjs +1 -2
  12. package/dist/components/Carousel/index.js +1 -2
  13. package/dist/components/Checkbox/index.cjs +10 -13
  14. package/dist/components/Checkbox/index.js +10 -13
  15. package/dist/components/CheckboxGroup/index.cjs +9 -10
  16. package/dist/components/CheckboxGroup/index.js +9 -10
  17. package/dist/components/Chip/index.d.ts +1 -1
  18. package/dist/components/DateInput/Context.cjs +20 -0
  19. package/dist/components/DateInput/Context.d.ts +43 -0
  20. package/dist/components/DateInput/Context.js +20 -0
  21. package/dist/components/DateInput/components/CalendarDaily.cjs +184 -0
  22. package/dist/components/DateInput/components/CalendarDaily.d.ts +3 -0
  23. package/dist/components/DateInput/components/CalendarDaily.js +182 -0
  24. package/dist/components/DateInput/components/CalendarMonthly.cjs +130 -0
  25. package/dist/components/DateInput/components/CalendarMonthly.d.ts +3 -0
  26. package/dist/components/DateInput/components/CalendarMonthly.js +128 -0
  27. package/dist/components/DateInput/components/Popup.cjs +112 -0
  28. package/dist/components/DateInput/components/Popup.d.ts +9 -0
  29. package/dist/components/DateInput/components/Popup.js +110 -0
  30. package/dist/components/DateInput/constants.cjs +10 -0
  31. package/dist/components/DateInput/constants.d.ts +4 -0
  32. package/dist/components/DateInput/constants.js +10 -0
  33. package/dist/components/DateInput/helpers.cjs +50 -0
  34. package/dist/components/DateInput/helpers.d.ts +10 -0
  35. package/dist/components/DateInput/helpers.js +50 -0
  36. package/dist/components/DateInput/helpersLocale.cjs +64 -0
  37. package/dist/components/DateInput/helpersLocale.d.ts +4 -0
  38. package/dist/components/DateInput/helpersLocale.js +64 -0
  39. package/dist/components/DateInput/index.cjs +111 -160
  40. package/dist/components/DateInput/index.d.ts +14 -12
  41. package/dist/components/DateInput/index.js +112 -160
  42. package/dist/components/Dialog/index.d.ts +2 -0
  43. package/dist/components/EmptyState/index.cjs +1 -2
  44. package/dist/components/EmptyState/index.js +1 -2
  45. package/dist/components/LineChart/CustomLegend.cjs +55 -33
  46. package/dist/components/LineChart/CustomLegend.js +55 -33
  47. package/dist/components/LineChart/helpers.cjs +6 -6
  48. package/dist/components/LineChart/helpers.js +6 -6
  49. package/dist/components/List/ListContext.cjs +69 -2
  50. package/dist/components/List/ListContext.d.ts +3 -1
  51. package/dist/components/List/ListContext.js +70 -3
  52. package/dist/components/List/Row.cjs +34 -12
  53. package/dist/components/List/Row.js +33 -11
  54. package/dist/components/List/SelectBar.cjs +1 -2
  55. package/dist/components/List/SelectBar.js +1 -2
  56. package/dist/components/List/SkeletonRows.cjs +2 -4
  57. package/dist/components/List/SkeletonRows.js +2 -4
  58. package/dist/components/List/index.cjs +2 -12
  59. package/dist/components/List/index.d.ts +2 -0
  60. package/dist/components/List/index.js +2 -12
  61. package/dist/components/Loader/index.cjs +18 -5
  62. package/dist/components/Loader/index.js +18 -5
  63. package/dist/components/Menu/index.cjs +3 -6
  64. package/dist/components/Menu/index.js +3 -6
  65. package/dist/components/Modal/components/Dialog.cjs +7 -7
  66. package/dist/components/Modal/components/Dialog.js +7 -7
  67. package/dist/components/NumberInputV2/index.cjs +7 -8
  68. package/dist/components/NumberInputV2/index.js +7 -8
  69. package/dist/components/Pagination/index.cjs +1 -2
  70. package/dist/components/Pagination/index.js +1 -2
  71. package/dist/components/PasswordStrengthMeter/index.cjs +1 -2
  72. package/dist/components/PasswordStrengthMeter/index.js +1 -2
  73. package/dist/components/PieChart/Legends.cjs +2 -4
  74. package/dist/components/PieChart/Legends.js +2 -4
  75. package/dist/components/PieChart/Tooltip.cjs +2 -4
  76. package/dist/components/PieChart/Tooltip.js +2 -4
  77. package/dist/components/Popup/index.cjs +10 -9
  78. package/dist/components/Popup/index.js +11 -10
  79. package/dist/components/Radio/index.cjs +2 -4
  80. package/dist/components/Radio/index.js +2 -4
  81. package/dist/components/RadioGroup/index.cjs +8 -8
  82. package/dist/components/RadioGroup/index.js +8 -8
  83. package/dist/components/Row/index.cjs +1 -1
  84. package/dist/components/Row/index.d.ts +0 -1
  85. package/dist/components/Row/index.js +1 -1
  86. package/dist/components/SelectInput/index.cjs +19 -19
  87. package/dist/components/SelectInput/index.js +19 -19
  88. package/dist/components/SelectInputV2/Dropdown.cjs +12 -14
  89. package/dist/components/SelectInputV2/Dropdown.js +12 -14
  90. package/dist/components/SelectInputV2/DropdownOption.cjs +3 -6
  91. package/dist/components/SelectInputV2/DropdownOption.js +3 -6
  92. package/dist/components/SelectInputV2/SearchBarDropdown.cjs +6 -3
  93. package/dist/components/SelectInputV2/SearchBarDropdown.js +6 -3
  94. package/dist/components/SelectInputV2/SelectBar.cjs +3 -6
  95. package/dist/components/SelectInputV2/SelectBar.js +3 -6
  96. package/dist/components/SelectInputV2/SelectInputProvider.cjs +14 -7
  97. package/dist/components/SelectInputV2/SelectInputProvider.js +14 -7
  98. package/dist/components/SelectInputV2/findOptionInOptions.cjs +1 -1
  99. package/dist/components/SelectInputV2/findOptionInOptions.js +1 -1
  100. package/dist/components/SelectInputV2/index.cjs +1 -2
  101. package/dist/components/SelectInputV2/index.js +1 -2
  102. package/dist/components/SelectableCard/index.cjs +16 -13
  103. package/dist/components/SelectableCard/index.js +16 -13
  104. package/dist/components/SelectableCardGroup/index.cjs +8 -8
  105. package/dist/components/SelectableCardGroup/index.js +8 -8
  106. package/dist/components/Skeleton/Donut.cjs +1 -2
  107. package/dist/components/Skeleton/Donut.js +1 -2
  108. package/dist/components/Skeleton/List.cjs +1 -2
  109. package/dist/components/Skeleton/List.js +1 -2
  110. package/dist/components/Skeleton/index.cjs +1 -2
  111. package/dist/components/Skeleton/index.js +1 -2
  112. package/dist/components/Slider/components/DoubleSlider.cjs +8 -8
  113. package/dist/components/Slider/components/DoubleSlider.js +8 -8
  114. package/dist/components/Slider/components/SingleSlider.cjs +4 -4
  115. package/dist/components/Slider/components/SingleSlider.js +4 -4
  116. package/dist/components/Slider/styles.d.ts +1 -1
  117. package/dist/components/Snippet/index.cjs +11 -13
  118. package/dist/components/Snippet/index.js +11 -13
  119. package/dist/components/Stepper/Step.cjs +1 -2
  120. package/dist/components/Stepper/Step.js +1 -2
  121. package/dist/components/Stepper/index.cjs +7 -10
  122. package/dist/components/Stepper/index.js +7 -10
  123. package/dist/components/Table/Row.cjs +35 -12
  124. package/dist/components/Table/Row.js +34 -11
  125. package/dist/components/Table/SelectBar.cjs +1 -2
  126. package/dist/components/Table/SelectBar.js +1 -2
  127. package/dist/components/Table/SkeletonRows.cjs +2 -4
  128. package/dist/components/Table/SkeletonRows.js +2 -4
  129. package/dist/components/Table/TableContext.cjs +57 -2
  130. package/dist/components/Table/TableContext.d.ts +3 -1
  131. package/dist/components/Table/TableContext.js +58 -3
  132. package/dist/components/Table/index.cjs +2 -16
  133. package/dist/components/Table/index.d.ts +2 -0
  134. package/dist/components/Table/index.js +2 -16
  135. package/dist/components/Tabs/TabMenu.cjs +1 -2
  136. package/dist/components/Tabs/TabMenu.js +1 -2
  137. package/dist/components/Tag/index.cjs +1 -2
  138. package/dist/components/Tag/index.js +1 -2
  139. package/dist/components/TagInput/index.cjs +10 -10
  140. package/dist/components/TagInput/index.js +10 -10
  141. package/dist/components/TagList/index.cjs +9 -10
  142. package/dist/components/TagList/index.js +9 -10
  143. package/dist/components/TextArea/index.cjs +4 -5
  144. package/dist/components/TextArea/index.js +4 -5
  145. package/dist/components/TextInput/index.cjs +4 -8
  146. package/dist/components/TextInput/index.js +4 -8
  147. package/dist/components/Toggle/index.cjs +1 -2
  148. package/dist/components/Toggle/index.js +1 -2
  149. package/dist/components/ToggleGroup/index.cjs +8 -8
  150. package/dist/components/ToggleGroup/index.js +8 -8
  151. package/dist/components/Tooltip/index.cjs +1 -2
  152. package/dist/components/Tooltip/index.js +1 -2
  153. package/dist/components/VerificationCode/index.cjs +16 -33
  154. package/dist/components/VerificationCode/index.js +16 -33
  155. package/dist/helpers/isJSON.cjs +1 -1
  156. package/dist/helpers/isJSON.js +1 -1
  157. package/package.json +1 -1
  158. package/dist/components/DateInput/datepicker.css.cjs +0 -3
  159. package/dist/components/DateInput/datepicker.css.js +0 -4
@@ -23,7 +23,7 @@ const StyledSeparator = /* @__PURE__ */ _styled__default.default(index.Separator
23
23
  label: "StyledSeparator"
24
24
  })("background-color:", ({
25
25
  theme
26
- }) => theme.colors.neutral.border, ";height:100%;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1Q3lDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydjb250cm9sJ10gfHwge30pLFxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uXG4gICAgICA/IGAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICAgKGFuaW1hdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Yga2V5ZnJhbWVzPj4pW1xuICAgICAgICAgICAgYW5pbWF0aW9uXG4gICAgICAgICAgXVxuICAgICAgICB9YFxuICAgICAgOiAnbm9uZScsXG4gIH0pLFxuICBpbmRpY2F0b3JzQ29udGFpbmVyOiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIG1heEhlaWdodDogJzQ4cHgnLFxuICB9KSxcbiAgaW5kaWNhdG9yU2VwYXJhdG9yOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddIHx8IHt9KSxcbiAgfSksXG4gIGlucHV0OiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGZsZXhHcm93OiAxLFxuICAgIG1hcmdpbkxlZnQ6IDAsXG4gICAgcGFkZGluZ1RvcDogbm9Ub3BMYWJlbCA/IDAgOiAxMSxcbiAgfSksXG4gIG1lbnU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51J10gfHwge30pLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51TGlzdCddIHx8IHt9KSxcbiAgfSksXG4gIG1lbnVQb3J0YWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgekluZGV4OiAxMDAwMCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2Vbbm9Ub3BMYWJlbCA/ICcwLjUnIDogJzInXSxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZUxhYmVsJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZCxcbiAgICAgICAgICBjdXJzb3I6ICdub25lJyxcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgICB9KSxcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ3BvaW50ZXInLFxuICAgICAgcG9pbnRlckV2ZW50czogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdmaWxsJyxcbiAgICB9LFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddIHx8IHt9KSxcbiAgfSksXG4gIG9wdGlvbjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5nZXRPcHRpb25Db2xvcih7IHN0YXRlLCB0aGVtZSB9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInLFxuICAgICc6YWN0aXZlJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZCxcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICB9LFxuICAgICc6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydvcHRpb24nXSB8fCB7fSksXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydwbGFjZWhvbGRlciddIHx8IHt9KSxcbiAgfSksXG4gIHNpbmdsZVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIG1hcmdpbkxlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5SaWdodDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblRvcDogIXN0YXRlLmhhc1ZhbHVlIHx8IG5vVG9wTGFiZWwgPyAwIDogJzVweCcsXG4gICAgcGFkZGluZ0xlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgdmFsdWVDb250YWluZXI6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWyd2YWx1ZUNvbnRhaW5lciddIHx8IHt9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgIHJlZj17aW5uZXJSZWYgYXMgYW55fVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIGlkPXtpZFByb3B9XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpbWUgcHJvcCBkb2Vzbid0IGV4aXN0IGluIHJlYWN0LXNlbGVjdCBidXQgaXMgdXNlZFxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"));
26
+ }) => theme.colors.neutral.border, ";height:100%;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1Q3lDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSxcbiAgICBhbmltYXRpb246IGFuaW1hdGlvblxuICAgICAgPyBgJHthbmltYXRpb25EdXJhdGlvbn1tcyAke1xuICAgICAgICAgIChhbmltYXRpb25zIGFzIFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGtleWZyYW1lcz4+KVtcbiAgICAgICAgICAgIGFuaW1hdGlvblxuICAgICAgICAgIF1cbiAgICAgICAgfWBcbiAgICAgIDogJ25vbmUnLFxuICB9KSxcbiAgaW5kaWNhdG9yc0NvbnRhaW5lcjogcHJvdmlkZWQgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBtYXhIZWlnaHQ6ICc0OHB4JyxcbiAgfSksXG4gIGluZGljYXRvclNlcGFyYXRvcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudSddLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10sXG4gIH0pLFxuICBtZW51UG9ydGFsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIHpJbmRleDogMTAwMDAsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZSddLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWVSZW1vdmU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8ge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWQsXG4gICAgICAgICAgY3Vyc29yOiAnbm9uZScsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgICAgfSksXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdwb2ludGVyJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAnZmlsbCcsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/Llsnb3B0aW9uJ10sXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10sXG4gIH0pLFxuICBzaW5nbGVWYWx1ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBtYXJnaW5MZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luUmlnaHQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5Ub3A6ICFzdGF0ZS5oYXNWYWx1ZSB8fCBub1RvcExhYmVsID8gMCA6ICc1cHgnLFxuICAgIHBhZGRpbmdMZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10sXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsndmFsdWVDb250YWluZXInXSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgaW5uZXJSZWYgdHlwZSBpc3N1ZVxuICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICBpZD17aWRQcm9wfVxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"));
27
27
  const getControlColor = ({
28
28
  state,
29
29
  error,
@@ -98,7 +98,7 @@ const getSelectStyles = ({
98
98
  borderColor: error ? theme.colors.danger.borderHover : theme.colors.primary.borderHover
99
99
  }
100
100
  },
101
- ...customStyle(state)?.["control"] || {},
101
+ ...customStyle(state)?.["control"],
102
102
  animation: animation ? `${animationDuration}ms ${animations[animation]}` : "none"
103
103
  }),
104
104
  indicatorsContainer: (provided) => ({
@@ -109,7 +109,7 @@ const getSelectStyles = ({
109
109
  ...provided,
110
110
  backgroundColor: theme.colors.neutral.border,
111
111
  display: "none",
112
- ...customStyle(state)?.["indicatorSeparator"] || {}
112
+ ...customStyle(state)?.["indicatorSeparator"]
113
113
  }),
114
114
  input: (provided) => ({
115
115
  ...provided,
@@ -119,19 +119,19 @@ const getSelectStyles = ({
119
119
  }),
120
120
  menu: (provided, state) => ({
121
121
  ...provided,
122
- ...customStyle(state)?.["menu"] || {},
122
+ ...customStyle(state)?.["menu"],
123
123
  boxShadow: theme.shadows.menu
124
124
  }),
125
125
  menuList: (provided, state) => ({
126
126
  ...provided,
127
127
  backgroundColor: theme.colors.neutral.backgroundWeak,
128
128
  maxHeight: "225px",
129
- ...customStyle(state)?.["menuList"] || {}
129
+ ...customStyle(state)?.["menuList"]
130
130
  }),
131
131
  menuPortal: (provided, state) => ({
132
132
  ...provided,
133
133
  zIndex: 1e4,
134
- ...customStyle(state)?.["menuPortal"] || {}
134
+ ...customStyle(state)?.["menuPortal"]
135
135
  }),
136
136
  multiValue: (provided, state) => ({
137
137
  ...provided,
@@ -145,7 +145,7 @@ const getSelectStyles = ({
145
145
  justifyContent: "center",
146
146
  marginTop: theme.space[noTopLabel ? "0.5" : "2"],
147
147
  textOverflow: "ellipsis",
148
- ...customStyle(state)?.["multiValue"] || {}
148
+ ...customStyle(state)?.["multiValue"]
149
149
  }),
150
150
  multiValueLabel: (provided, state) => ({
151
151
  ...provided,
@@ -153,7 +153,7 @@ const getSelectStyles = ({
153
153
  fontSize: "14px",
154
154
  fontWeight: "normal",
155
155
  lineHeight: "20px",
156
- ...customStyle(state)?.["multiValueLabel"] || {}
156
+ ...customStyle(state)?.["multiValueLabel"]
157
157
  }),
158
158
  multiValueRemove: (provided, state) => ({
159
159
  ...provided,
@@ -169,7 +169,7 @@ const getSelectStyles = ({
169
169
  cursor: state.isDisabled ? "none" : "pointer",
170
170
  pointerEvents: state.isDisabled ? "none" : "fill"
171
171
  },
172
- ...customStyle(state)?.["multiValueRemove"] || {}
172
+ ...customStyle(state)?.["multiValueRemove"]
173
173
  }),
174
174
  option: (provided, state) => ({
175
175
  ...provided,
@@ -186,7 +186,7 @@ const getSelectStyles = ({
186
186
  backgroundColor: state.isDisabled ? theme.colors.neutral.backgroundDisabled : theme.colors.primary.background,
187
187
  color: state.isDisabled ? theme.colors.neutral.textDisabled : theme.colors.neutral.text
188
188
  },
189
- ...customStyle(state)?.["option"] || {}
189
+ ...customStyle(state)?.["option"]
190
190
  }),
191
191
  placeholder: (provided, state) => ({
192
192
  ...provided,
@@ -195,7 +195,7 @@ const getSelectStyles = ({
195
195
  state,
196
196
  theme
197
197
  }),
198
- ...customStyle(state)?.["placeholder"] || {}
198
+ ...customStyle(state)?.["placeholder"]
199
199
  }),
200
200
  singleValue: (provided, state) => ({
201
201
  ...provided,
@@ -204,11 +204,11 @@ const getSelectStyles = ({
204
204
  marginRight: state.hasValue ? 0 : void 0,
205
205
  marginTop: !state.hasValue || noTopLabel ? 0 : "5px",
206
206
  paddingLeft: state.hasValue ? 0 : void 0,
207
- ...customStyle(state)?.["singleValue"] || {}
207
+ ...customStyle(state)?.["singleValue"]
208
208
  }),
209
209
  valueContainer: (provided, state) => ({
210
210
  ...provided,
211
- ...customStyle(state)?.["valueContainer"] || {},
211
+ ...customStyle(state)?.["valueContainer"],
212
212
  cursor: state.isDisabled ? "not-allowed" : void 0,
213
213
  height: "100%",
214
214
  label: {
@@ -228,7 +228,7 @@ const StyledContainer = /* @__PURE__ */ _styled__default.default("div", process.
228
228
  isDisabled
229
229
  }) => isDisabled && `pointer-events: initial;`, ";", ({
230
230
  additionalStyles
231
- }) => /* @__PURE__ */ react.css(additionalStyles, process.env.NODE_ENV === "production" ? "" : ";label:StyledContainer;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrVThCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydjb250cm9sJ10gfHwge30pLFxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uXG4gICAgICA/IGAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICAgKGFuaW1hdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Yga2V5ZnJhbWVzPj4pW1xuICAgICAgICAgICAgYW5pbWF0aW9uXG4gICAgICAgICAgXVxuICAgICAgICB9YFxuICAgICAgOiAnbm9uZScsXG4gIH0pLFxuICBpbmRpY2F0b3JzQ29udGFpbmVyOiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIG1heEhlaWdodDogJzQ4cHgnLFxuICB9KSxcbiAgaW5kaWNhdG9yU2VwYXJhdG9yOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddIHx8IHt9KSxcbiAgfSksXG4gIGlucHV0OiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGZsZXhHcm93OiAxLFxuICAgIG1hcmdpbkxlZnQ6IDAsXG4gICAgcGFkZGluZ1RvcDogbm9Ub3BMYWJlbCA/IDAgOiAxMSxcbiAgfSksXG4gIG1lbnU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51J10gfHwge30pLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51TGlzdCddIHx8IHt9KSxcbiAgfSksXG4gIG1lbnVQb3J0YWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgekluZGV4OiAxMDAwMCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2Vbbm9Ub3BMYWJlbCA/ICcwLjUnIDogJzInXSxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZUxhYmVsJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZCxcbiAgICAgICAgICBjdXJzb3I6ICdub25lJyxcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgICB9KSxcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ3BvaW50ZXInLFxuICAgICAgcG9pbnRlckV2ZW50czogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdmaWxsJyxcbiAgICB9LFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddIHx8IHt9KSxcbiAgfSksXG4gIG9wdGlvbjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5nZXRPcHRpb25Db2xvcih7IHN0YXRlLCB0aGVtZSB9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInLFxuICAgICc6YWN0aXZlJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZCxcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICB9LFxuICAgICc6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydvcHRpb24nXSB8fCB7fSksXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydwbGFjZWhvbGRlciddIHx8IHt9KSxcbiAgfSksXG4gIHNpbmdsZVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIG1hcmdpbkxlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5SaWdodDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblRvcDogIXN0YXRlLmhhc1ZhbHVlIHx8IG5vVG9wTGFiZWwgPyAwIDogJzVweCcsXG4gICAgcGFkZGluZ0xlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgdmFsdWVDb250YWluZXI6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWyd2YWx1ZUNvbnRhaW5lciddIHx8IHt9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgIHJlZj17aW5uZXJSZWYgYXMgYW55fVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIGlkPXtpZFByb3B9XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpbWUgcHJvcCBkb2Vzbid0IGV4aXN0IGluIHJlYWN0LXNlbGVjdCBidXQgaXMgdXNlZFxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"), ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErVHdCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydjb250cm9sJ10gfHwge30pLFxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uXG4gICAgICA/IGAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICAgKGFuaW1hdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Yga2V5ZnJhbWVzPj4pW1xuICAgICAgICAgICAgYW5pbWF0aW9uXG4gICAgICAgICAgXVxuICAgICAgICB9YFxuICAgICAgOiAnbm9uZScsXG4gIH0pLFxuICBpbmRpY2F0b3JzQ29udGFpbmVyOiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIG1heEhlaWdodDogJzQ4cHgnLFxuICB9KSxcbiAgaW5kaWNhdG9yU2VwYXJhdG9yOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddIHx8IHt9KSxcbiAgfSksXG4gIGlucHV0OiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGZsZXhHcm93OiAxLFxuICAgIG1hcmdpbkxlZnQ6IDAsXG4gICAgcGFkZGluZ1RvcDogbm9Ub3BMYWJlbCA/IDAgOiAxMSxcbiAgfSksXG4gIG1lbnU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51J10gfHwge30pLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51TGlzdCddIHx8IHt9KSxcbiAgfSksXG4gIG1lbnVQb3J0YWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgekluZGV4OiAxMDAwMCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2Vbbm9Ub3BMYWJlbCA/ICcwLjUnIDogJzInXSxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZUxhYmVsJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZCxcbiAgICAgICAgICBjdXJzb3I6ICdub25lJyxcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgICB9KSxcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ3BvaW50ZXInLFxuICAgICAgcG9pbnRlckV2ZW50czogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdmaWxsJyxcbiAgICB9LFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddIHx8IHt9KSxcbiAgfSksXG4gIG9wdGlvbjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5nZXRPcHRpb25Db2xvcih7IHN0YXRlLCB0aGVtZSB9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInLFxuICAgICc6YWN0aXZlJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZCxcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICB9LFxuICAgICc6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydvcHRpb24nXSB8fCB7fSksXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydwbGFjZWhvbGRlciddIHx8IHt9KSxcbiAgfSksXG4gIHNpbmdsZVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIG1hcmdpbkxlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5SaWdodDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblRvcDogIXN0YXRlLmhhc1ZhbHVlIHx8IG5vVG9wTGFiZWwgPyAwIDogJzVweCcsXG4gICAgcGFkZGluZ0xlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgdmFsdWVDb250YWluZXI6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWyd2YWx1ZUNvbnRhaW5lciddIHx8IHt9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgIHJlZj17aW5uZXJSZWYgYXMgYW55fVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIGlkPXtpZFByb3B9XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpbWUgcHJvcCBkb2Vzbid0IGV4aXN0IGluIHJlYWN0LXNlbGVjdCBidXQgaXMgdXNlZFxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"));
231
+ }) => /* @__PURE__ */ react.css(additionalStyles, process.env.NODE_ENV === "production" ? "" : ";label:StyledContainer;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrVThCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSxcbiAgICBhbmltYXRpb246IGFuaW1hdGlvblxuICAgICAgPyBgJHthbmltYXRpb25EdXJhdGlvbn1tcyAke1xuICAgICAgICAgIChhbmltYXRpb25zIGFzIFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGtleWZyYW1lcz4+KVtcbiAgICAgICAgICAgIGFuaW1hdGlvblxuICAgICAgICAgIF1cbiAgICAgICAgfWBcbiAgICAgIDogJ25vbmUnLFxuICB9KSxcbiAgaW5kaWNhdG9yc0NvbnRhaW5lcjogcHJvdmlkZWQgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBtYXhIZWlnaHQ6ICc0OHB4JyxcbiAgfSksXG4gIGluZGljYXRvclNlcGFyYXRvcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudSddLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10sXG4gIH0pLFxuICBtZW51UG9ydGFsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIHpJbmRleDogMTAwMDAsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZSddLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWVSZW1vdmU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8ge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWQsXG4gICAgICAgICAgY3Vyc29yOiAnbm9uZScsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgICAgfSksXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdwb2ludGVyJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAnZmlsbCcsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/Llsnb3B0aW9uJ10sXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10sXG4gIH0pLFxuICBzaW5nbGVWYWx1ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBtYXJnaW5MZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luUmlnaHQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5Ub3A6ICFzdGF0ZS5oYXNWYWx1ZSB8fCBub1RvcExhYmVsID8gMCA6ICc1cHgnLFxuICAgIHBhZGRpbmdMZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10sXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsndmFsdWVDb250YWluZXInXSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgaW5uZXJSZWYgdHlwZSBpc3N1ZVxuICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICBpZD17aWRQcm9wfVxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"), ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErVHdCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSxcbiAgICBhbmltYXRpb246IGFuaW1hdGlvblxuICAgICAgPyBgJHthbmltYXRpb25EdXJhdGlvbn1tcyAke1xuICAgICAgICAgIChhbmltYXRpb25zIGFzIFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGtleWZyYW1lcz4+KVtcbiAgICAgICAgICAgIGFuaW1hdGlvblxuICAgICAgICAgIF1cbiAgICAgICAgfWBcbiAgICAgIDogJ25vbmUnLFxuICB9KSxcbiAgaW5kaWNhdG9yc0NvbnRhaW5lcjogcHJvdmlkZWQgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBtYXhIZWlnaHQ6ICc0OHB4JyxcbiAgfSksXG4gIGluZGljYXRvclNlcGFyYXRvcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudSddLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10sXG4gIH0pLFxuICBtZW51UG9ydGFsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIHpJbmRleDogMTAwMDAsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZSddLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWVSZW1vdmU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8ge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWQsXG4gICAgICAgICAgY3Vyc29yOiAnbm9uZScsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgICAgfSksXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdwb2ludGVyJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAnZmlsbCcsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/Llsnb3B0aW9uJ10sXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10sXG4gIH0pLFxuICBzaW5nbGVWYWx1ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBtYXJnaW5MZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luUmlnaHQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5Ub3A6ICFzdGF0ZS5oYXNWYWx1ZSB8fCBub1RvcExhYmVsID8gMCA6ICc1cHgnLFxuICAgIHBhZGRpbmdMZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10sXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsndmFsdWVDb250YWluZXInXSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgaW5uZXJSZWYgdHlwZSBpc3N1ZVxuICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICBpZD17aWRQcm9wfVxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"));
232
232
  const StyledError = /* @__PURE__ */ _styled__default.default("div", process.env.NODE_ENV === "production" ? {
233
233
  target: "e11gt5pw3"
234
234
  } : {
@@ -238,7 +238,7 @@ const StyledError = /* @__PURE__ */ _styled__default.default("div", process.env.
238
238
  theme
239
239
  }) => theme.colors.danger.text, ";padding-top:", ({
240
240
  theme
241
- }) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxVThCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydjb250cm9sJ10gfHwge30pLFxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uXG4gICAgICA/IGAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICAgKGFuaW1hdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Yga2V5ZnJhbWVzPj4pW1xuICAgICAgICAgICAgYW5pbWF0aW9uXG4gICAgICAgICAgXVxuICAgICAgICB9YFxuICAgICAgOiAnbm9uZScsXG4gIH0pLFxuICBpbmRpY2F0b3JzQ29udGFpbmVyOiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIG1heEhlaWdodDogJzQ4cHgnLFxuICB9KSxcbiAgaW5kaWNhdG9yU2VwYXJhdG9yOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddIHx8IHt9KSxcbiAgfSksXG4gIGlucHV0OiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGZsZXhHcm93OiAxLFxuICAgIG1hcmdpbkxlZnQ6IDAsXG4gICAgcGFkZGluZ1RvcDogbm9Ub3BMYWJlbCA/IDAgOiAxMSxcbiAgfSksXG4gIG1lbnU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51J10gfHwge30pLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51TGlzdCddIHx8IHt9KSxcbiAgfSksXG4gIG1lbnVQb3J0YWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgekluZGV4OiAxMDAwMCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2Vbbm9Ub3BMYWJlbCA/ICcwLjUnIDogJzInXSxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZUxhYmVsJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZCxcbiAgICAgICAgICBjdXJzb3I6ICdub25lJyxcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgICB9KSxcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ3BvaW50ZXInLFxuICAgICAgcG9pbnRlckV2ZW50czogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdmaWxsJyxcbiAgICB9LFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddIHx8IHt9KSxcbiAgfSksXG4gIG9wdGlvbjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5nZXRPcHRpb25Db2xvcih7IHN0YXRlLCB0aGVtZSB9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInLFxuICAgICc6YWN0aXZlJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZCxcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICB9LFxuICAgICc6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydvcHRpb24nXSB8fCB7fSksXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydwbGFjZWhvbGRlciddIHx8IHt9KSxcbiAgfSksXG4gIHNpbmdsZVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIG1hcmdpbkxlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5SaWdodDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblRvcDogIXN0YXRlLmhhc1ZhbHVlIHx8IG5vVG9wTGFiZWwgPyAwIDogJzVweCcsXG4gICAgcGFkZGluZ0xlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgdmFsdWVDb250YWluZXI6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWyd2YWx1ZUNvbnRhaW5lciddIHx8IHt9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgIHJlZj17aW5uZXJSZWYgYXMgYW55fVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIGlkPXtpZFByb3B9XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpbWUgcHJvcCBkb2Vzbid0IGV4aXN0IGluIHJlYWN0LXNlbGVjdCBidXQgaXMgdXNlZFxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"));
241
+ }) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxVThCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSxcbiAgICBhbmltYXRpb246IGFuaW1hdGlvblxuICAgICAgPyBgJHthbmltYXRpb25EdXJhdGlvbn1tcyAke1xuICAgICAgICAgIChhbmltYXRpb25zIGFzIFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGtleWZyYW1lcz4+KVtcbiAgICAgICAgICAgIGFuaW1hdGlvblxuICAgICAgICAgIF1cbiAgICAgICAgfWBcbiAgICAgIDogJ25vbmUnLFxuICB9KSxcbiAgaW5kaWNhdG9yc0NvbnRhaW5lcjogcHJvdmlkZWQgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBtYXhIZWlnaHQ6ICc0OHB4JyxcbiAgfSksXG4gIGluZGljYXRvclNlcGFyYXRvcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudSddLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10sXG4gIH0pLFxuICBtZW51UG9ydGFsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIHpJbmRleDogMTAwMDAsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZSddLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWVSZW1vdmU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8ge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWQsXG4gICAgICAgICAgY3Vyc29yOiAnbm9uZScsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgICAgfSksXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdwb2ludGVyJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAnZmlsbCcsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/Llsnb3B0aW9uJ10sXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10sXG4gIH0pLFxuICBzaW5nbGVWYWx1ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBtYXJnaW5MZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luUmlnaHQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5Ub3A6ICFzdGF0ZS5oYXNWYWx1ZSB8fCBub1RvcExhYmVsID8gMCA6ICc1cHgnLFxuICAgIHBhZGRpbmdMZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10sXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsndmFsdWVDb250YWluZXInXSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgaW5uZXJSZWYgdHlwZSBpc3N1ZVxuICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICBpZD17aWRQcm9wfVxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"));
242
242
  const SelectContainer = (props) => {
243
243
  const {
244
244
  children,
@@ -281,7 +281,7 @@ const StyledPlaceholder = /* @__PURE__ */ _styled__default.default("label", proc
281
281
  `, " ", ({
282
282
  isDisabled,
283
283
  hasValue
284
- }) => hasValue && isDisabled && "opacity: 0.5", ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpWDBCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydjb250cm9sJ10gfHwge30pLFxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uXG4gICAgICA/IGAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICAgKGFuaW1hdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Yga2V5ZnJhbWVzPj4pW1xuICAgICAgICAgICAgYW5pbWF0aW9uXG4gICAgICAgICAgXVxuICAgICAgICB9YFxuICAgICAgOiAnbm9uZScsXG4gIH0pLFxuICBpbmRpY2F0b3JzQ29udGFpbmVyOiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIG1heEhlaWdodDogJzQ4cHgnLFxuICB9KSxcbiAgaW5kaWNhdG9yU2VwYXJhdG9yOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddIHx8IHt9KSxcbiAgfSksXG4gIGlucHV0OiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGZsZXhHcm93OiAxLFxuICAgIG1hcmdpbkxlZnQ6IDAsXG4gICAgcGFkZGluZ1RvcDogbm9Ub3BMYWJlbCA/IDAgOiAxMSxcbiAgfSksXG4gIG1lbnU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51J10gfHwge30pLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51TGlzdCddIHx8IHt9KSxcbiAgfSksXG4gIG1lbnVQb3J0YWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgekluZGV4OiAxMDAwMCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2Vbbm9Ub3BMYWJlbCA/ICcwLjUnIDogJzInXSxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZUxhYmVsJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZCxcbiAgICAgICAgICBjdXJzb3I6ICdub25lJyxcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgICB9KSxcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ3BvaW50ZXInLFxuICAgICAgcG9pbnRlckV2ZW50czogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdmaWxsJyxcbiAgICB9LFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddIHx8IHt9KSxcbiAgfSksXG4gIG9wdGlvbjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5nZXRPcHRpb25Db2xvcih7IHN0YXRlLCB0aGVtZSB9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInLFxuICAgICc6YWN0aXZlJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZCxcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICB9LFxuICAgICc6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydvcHRpb24nXSB8fCB7fSksXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydwbGFjZWhvbGRlciddIHx8IHt9KSxcbiAgfSksXG4gIHNpbmdsZVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIG1hcmdpbkxlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5SaWdodDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblRvcDogIXN0YXRlLmhhc1ZhbHVlIHx8IG5vVG9wTGFiZWwgPyAwIDogJzVweCcsXG4gICAgcGFkZGluZ0xlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgdmFsdWVDb250YWluZXI6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWyd2YWx1ZUNvbnRhaW5lciddIHx8IHt9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgIHJlZj17aW5uZXJSZWYgYXMgYW55fVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIGlkPXtpZFByb3B9XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpbWUgcHJvcCBkb2Vzbid0IGV4aXN0IGluIHJlYWN0LXNlbGVjdCBidXQgaXMgdXNlZFxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"));
284
+ }) => hasValue && isDisabled && "opacity: 0.5", ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpWDBCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSxcbiAgICBhbmltYXRpb246IGFuaW1hdGlvblxuICAgICAgPyBgJHthbmltYXRpb25EdXJhdGlvbn1tcyAke1xuICAgICAgICAgIChhbmltYXRpb25zIGFzIFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGtleWZyYW1lcz4+KVtcbiAgICAgICAgICAgIGFuaW1hdGlvblxuICAgICAgICAgIF1cbiAgICAgICAgfWBcbiAgICAgIDogJ25vbmUnLFxuICB9KSxcbiAgaW5kaWNhdG9yc0NvbnRhaW5lcjogcHJvdmlkZWQgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBtYXhIZWlnaHQ6ICc0OHB4JyxcbiAgfSksXG4gIGluZGljYXRvclNlcGFyYXRvcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudSddLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10sXG4gIH0pLFxuICBtZW51UG9ydGFsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIHpJbmRleDogMTAwMDAsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZSddLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWVSZW1vdmU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8ge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWQsXG4gICAgICAgICAgY3Vyc29yOiAnbm9uZScsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgICAgfSksXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdwb2ludGVyJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAnZmlsbCcsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/Llsnb3B0aW9uJ10sXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10sXG4gIH0pLFxuICBzaW5nbGVWYWx1ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBtYXJnaW5MZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luUmlnaHQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5Ub3A6ICFzdGF0ZS5oYXNWYWx1ZSB8fCBub1RvcExhYmVsID8gMCA6ICc1cHgnLFxuICAgIHBhZGRpbmdMZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10sXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsndmFsdWVDb250YWluZXInXSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgaW5uZXJSZWYgdHlwZSBpc3N1ZVxuICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICBpZD17aWRQcm9wfVxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"));
285
285
  const StyledText = /* @__PURE__ */ _styled__default.default(index$1.Text, process.env.NODE_ENV === "production" ? {
286
286
  shouldForwardProp: (prop) => !["isSelectedAndNotFocused", "isInline"].includes(prop),
287
287
  target: "e11gt5pw1"
@@ -295,7 +295,7 @@ const StyledText = /* @__PURE__ */ _styled__default.default(index$1.Text, proces
295
295
  }) => isInline ? theme.space["1"] : 0, ";color:", ({
296
296
  isSelectedAndNotFocused,
297
297
  theme
298
- }) => isSelectedAndNotFocused ? theme.colors.primary.textStrong : void 0, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpWkUiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvdWkvc3JjL2NvbXBvbmVudHMvU2VsZWN0SW5wdXQvaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NPYmplY3QsIFRoZW1lLCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IGNzcywgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9sZWdhY3knXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LFxuICBGb3J3YXJkZWRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCwge1xuICBDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUge1xuICBDbGVhckluZGljYXRvclByb3BzLFxuICBDb21tb25Qcm9wcyxcbiAgQ29udGFpbmVyUHJvcHMsXG4gIERyb3Bkb3duSW5kaWNhdG9yUHJvcHMsXG4gIEdyb3VwQmFzZSxcbiAgSW5wdXRQcm9wcyxcbiAgTXVsdGlWYWx1ZVByb3BzLFxuICBPcHRpb25Qcm9wcyxcbiAgUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBTZWxlY3QsIHsgY29tcG9uZW50cyB9IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBpc0pTT05TdHJpbmcgZnJvbSAnLi4vLi4vaGVscGVycy9pc0pTT04nXG5pbXBvcnQgKiBhcyBhbmltYXRpb25zIGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBFeHBhbmRhYmxlIH0gZnJvbSAnLi4vRXhwYW5kYWJsZSdcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gJy4uL1NlcGFyYXRvcidcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3QgU3R5bGVkU2VwYXJhdG9yID0gc3R5bGVkKFNlcGFyYXRvcilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW5saW5lRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxudHlwZSBTZWxlY3RTdHlsZUdldHRlclByb3BzID0ge1xuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wc1xuICBlcnJvcj86IHN0cmluZ1xuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0Q29udHJvbENvbG9yID0gKHsgc3RhdGUsIGVycm9yLCB0aGVtZSB9OiBTZWxlY3RTdHlsZUdldHRlclByb3BzKSA9PiB7XG4gIGlmIChzdGF0ZS5pc0Rpc2FibGVkKSByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIGlmIChlcnJvcikgcmV0dXJuIHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dFxuXG4gIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG59XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyQ29sb3IgPSAoe1xuICBzdGF0ZSxcbiAgZXJyb3IsXG4gIHRoZW1lLFxufTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtcbn1cblxuY29uc3QgZ2V0T3B0aW9uQ29sb3IgPSAoeyBzdGF0ZSwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBsZXQgY29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRcbiAgbGV0IGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtFbGV2YXRlZFxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgIGNvbG9yID0gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNTZWxlY3RlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRTdHJvbmdcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmdcbiAgfSBlbHNlIGlmIChzdGF0ZS5pc0ZvY3VzZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kXG4gIH1cblxuICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yIH1cbn1cblxudHlwZSBTZWxlY3RTdHlsZUZhY3RvcnkgPSAoXG4gIHByb3ZpZGVkOiBDU1NPYmplY3QsXG4gIHN0YXRlOiBTZWxlY3RQcm9wcyAmIE9wdGlvblByb3BzICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiBDU1NPYmplY3RcblxudHlwZSBTZWxlY3RTdHlsZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlbGVjdFN0eWxlRmFjdG9yeT5cblxudHlwZSBTZWxlY3RTdHlsZVByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICAvKipcbiAgICogQ3VzdG9tIHN0eWxlcyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9zdHlsZXMpXG4gICAqL1xuICBjdXN0b21TdHlsZTogKFxuICAgIHN0YXRlOiBTZWxlY3RQcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBDU1NPYmplY3Q+XG4gIGFuaW1hdGlvbj86IHN0cmluZ1xuICAvKipcbiAgICogVGltZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gIC8qKlxuICAgKiBTaG93L2hpZGUgdGhlIGxhYmVsIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBub1RvcExhYmVsPzogYm9vbGVhblxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0U2VsZWN0U3R5bGVzID0gKHtcbiAgZXJyb3IsXG4gIGN1c3RvbVN0eWxlLFxuICBhbmltYXRpb24sXG4gIGFuaW1hdGlvbkR1cmF0aW9uLFxuICBub1RvcExhYmVsLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlUHJvcHMpOiBTZWxlY3RTdHlsZU1hcCA9PiAoe1xuICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZCxcbiAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgIGNvbG9yOiBnZXRDb250cm9sQ29sb3IoeyBlcnJvciwgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc0OHB4JyxcbiAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZScsXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcblxuICAgIC4uLighc3RhdGUuaXNEaXNhYmxlZCAmJiB7XG4gICAgICAnOmZvY3VzLXdpdGhpbic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlclxuICAgICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyLFxuICAgICAgICBib3hTaGFkb3c6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5zaGFkb3dzLmZvY3VzRGFuZ2VyXG4gICAgICAgICAgOiB0aGVtZS5zaGFkb3dzLmZvY3VzUHJpbWFyeSxcbiAgICAgIH0sXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSB8fCB7fSksXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb25cbiAgICAgID8gYCR7YW5pbWF0aW9uRHVyYXRpb259bXMgJHtcbiAgICAgICAgICAoYW5pbWF0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBrZXlmcmFtZXM+PilbXG4gICAgICAgICAgICBhbmltYXRpb25cbiAgICAgICAgICBdXG4gICAgICAgIH1gXG4gICAgICA6ICdub25lJyxcbiAgfSksXG4gIGluZGljYXRvcnNDb250YWluZXI6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgbWF4SGVpZ2h0OiAnNDhweCcsXG4gIH0pLFxuICBpbmRpY2F0b3JTZXBhcmF0b3I6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5ib3JkZXIsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnaW5kaWNhdG9yU2VwYXJhdG9yJ10gfHwge30pLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnUnXSB8fCB7fSksXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLm1lbnUsXG4gIH0pLFxuICBtZW51TGlzdDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrLFxuICAgIG1heEhlaWdodDogJzIyNXB4JyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10gfHwge30pLFxuICB9KSxcbiAgbWVudVBvcnRhbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICB6SW5kZXg6IDEwMDAwLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudVBvcnRhbCddIHx8IHt9KSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ211bHRpVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlTGFiZWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlUmVtb3ZlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLihzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkLFxuICAgICAgICAgIGN1cnNvcjogJ25vbmUnLFxuICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICAgIH0pLFxuICAgICc6aG92ZXInOiB7XG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAncG9pbnRlcicsXG4gICAgICBwb2ludGVyRXZlbnRzOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ2ZpbGwnLFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlUmVtb3ZlJ10gfHwge30pLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ29wdGlvbiddIHx8IHt9KSxcbiAgfSksXG4gIHBsYWNlaG9sZGVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBnZXRQbGFjZWhvbGRlckNvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10gfHwge30pLFxuICB9KSxcbiAgc2luZ2xlVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgbWFyZ2luTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblJpZ2h0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luVG9wOiAhc3RhdGUuaGFzVmFsdWUgfHwgbm9Ub3BMYWJlbCA/IDAgOiAnNXB4JyxcbiAgICBwYWRkaW5nTGVmdDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/Llsnc2luZ2xlVmFsdWUnXSB8fCB7fSksXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3ZhbHVlQ29udGFpbmVyJ10gfHwge30pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiB1bmRlZmluZWQsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgbGFiZWw6IHtcbiAgICAgIGRpc3BsYXk6IG5vVG9wTGFiZWwgPyAnbm9uZScgOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICBwYWRkaW5nVG9wOiAwLFxuICB9KSxcbn0pXG5cbnR5cGUgV2l0aFNlbGVjdFByb3BzID0ge1xuICBzZWxlY3RQcm9wczogU2VsZWN0UHJvcHNcbn1cblxudHlwZSBTZWxlY3RQcm9wcyA9IFN0eWxlZENvbnRhaW5lclByb3BzICZcbiAgT21pdDxQcm9wczxTZWxlY3RPcHRpb24+LCAndmFsdWUnPiAmXG4gIENvbW1vblByb3BzPFNlbGVjdE9wdGlvbiwgYm9vbGVhbiwgR3JvdXBCYXNlPFNlbGVjdE9wdGlvbj4+ICYge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uXG4gICAgY2hlY2tlZD86IGJvb2xlYW5cbiAgICBlcnJvcj86IHN0cmluZ1xuICAgIGxhYmVsSWQ/OiBzdHJpbmdcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0aW1lPzogYm9vbGVhblxuICB9XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGFkZGl0aW9uYWxTdHlsZXM/OiBQYXJhbWV0ZXJzPHR5cGVvZiBjc3M+WzBdXG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc0Rpc2FibGVkJywgJ2FkZGl0aW9uYWxTdHlsZXMnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gICR7KHsgaXNEaXNhYmxlZCB9KSA9PiBpc0Rpc2FibGVkICYmIGBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtgfTtcbiAgJHsoeyBhZGRpdGlvbmFsU3R5bGVzIH0pID0+IGNzcyhhZGRpdGlvbmFsU3R5bGVzKX1cbmBcblxuY29uc3QgU3R5bGVkRXJyb3IgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dH07XG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTZWxlY3RDb250YWluZXIgPSAoXG4gIHByb3BzOiBDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyBvbktleURvd24gfSA9IHt9LFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0UHJvcHM6IHsgbmFtZSA9ICcnLCBlcnJvciwgY2xhc3NOYW1lOiBzZWxlY3RQcm9wc0NsYXNzTmFtZSB9ID0ge30sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS10ZXN0aWQ9e2BzZWxlY3QtaW5wdXQtJHtuYW1lfWB9XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzPXtnZXRTdHlsZXM/LignY29udGFpbmVyJywgcHJvcHMpfVxuICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgc2VsZWN0UHJvcHNDbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RXhwYW5kYWJsZSBvcGVuZWQ9eyEhZXJyb3J9PlxuICAgICAgICA8U3R5bGVkRXJyb3I+e2Vycm9yfTwvU3R5bGVkRXJyb3I+XG4gICAgICA8L0V4cGFuZGFibGU+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gIClcbn1cblxudHlwZSBTdHlsZWRQbGFjZWhvbGRlclByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICBpc011bHRpOiBib29sZWFuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGhhc1ZhbHVlOiBib29sZWFuXG59XG5cbmNvbnN0IFN0eWxlZFBsYWNlaG9sZGVyID0gc3R5bGVkKCdsYWJlbCcsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydlcnJvcicsICdoYXNWYWx1ZScsICdpc0Rpc2FibGVkJywgJ2lzTXVsdGknXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBsYWNlaG9sZGVyUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgZXJyb3IgfSkgPT5cbiAgICBlcnJvciA/IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dCA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xuICAkeyh7IGhhc1ZhbHVlIH0pID0+XG4gICAgaGFzVmFsdWUgJiZcbiAgICBgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLThweCkgc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgYH1cbiAgJHsoeyBpc0Rpc2FibGVkLCBoYXNWYWx1ZSB9KSA9PiBoYXNWYWx1ZSAmJiBpc0Rpc2FibGVkICYmICdvcGFjaXR5OiAwLjUnfVxuYFxuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFRleHQsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCcsICdpc0lubGluZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZDogYm9vbGVhblxuICBpc0lubGluZT86IGJvb2xlYW5cbn0+YFxuICBtYXJnaW4tbGVmdDogJHsoeyB0aGVtZSwgaXNJbmxpbmUgfSkgPT4gKGlzSW5saW5lID8gdGhlbWUuc3BhY2VbJzEnXSA6IDApfTtcbiAgY29sb3I6ICR7KHsgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQsIHRoZW1lIH0pID0+XG4gICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQgPyB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nIDogdW5kZWZpbmVkfTtcbmBcblxuY29uc3QgTWF4TGluZVN0eWxlZFRleHQgPSBzdHlsZWQoU3R5bGVkVGV4dClgXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMSddfTtcbmBcblxuY29uc3QgVmFsdWVDb250YWluZXIgPSAoe1xuICBpc0Rpc2FibGVkLFxuICBjaGlsZHJlbixcbiAgc2VsZWN0UHJvcHM6IHsgZXJyb3IsIGxhYmVsSWQsIGlucHV0SWQsIC4uLnNlbGVjdFByb3BzIH0sXG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBjbGVhclZhbHVlLFxuICBnZXRTdHlsZXMsXG4gIGdldFZhbHVlLFxuICBnZXRDbGFzc05hbWVzLFxuICBpc1J0bCxcbiAgY3gsXG4gIG9wdGlvbnMsXG4gIHNlbGVjdE9wdGlvbixcbiAgc2V0VmFsdWUsXG4gIHRoZW1lLFxuICBjbGFzc05hbWUsXG4gIGlubmVyUHJvcHMsXG59OiBWYWx1ZUNvbnRhaW5lclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMpID0+IChcbiAgPGNvbXBvbmVudHMuVmFsdWVDb250YWluZXJcbiAgICBjbGVhclZhbHVlPXtjbGVhclZhbHVlfVxuICAgIGdldFN0eWxlcz17Z2V0U3R5bGVzfVxuICAgIGdldFZhbHVlPXtnZXRWYWx1ZX1cbiAgICBpc1J0bD17aXNSdGx9XG4gICAgY3g9e2N4fVxuICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgc2VsZWN0T3B0aW9uPXtzZWxlY3RPcHRpb259XG4gICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgIHRoZW1lPXt0aGVtZX1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpbm5lclByb3BzPXtpbm5lclByb3BzfVxuICAgIHNlbGVjdFByb3BzPXtzZWxlY3RQcm9wc31cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgIGdldENsYXNzTmFtZXM9e2dldENsYXNzTmFtZXN9XG4gID5cbiAgICA8PlxuICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyID8gKFxuICAgICAgICA8U3R5bGVkUGxhY2Vob2xkZXJcbiAgICAgICAgICBhcz1cImxhYmVsXCJcbiAgICAgICAgICBpZD17bGFiZWxJZH1cbiAgICAgICAgICBodG1sRm9yPXtpbnB1dElkfVxuICAgICAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiXG4gICAgICAgICAgZXJyb3I9e2Vycm9yfVxuICAgICAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgICAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgICAgID5cbiAgICAgICAgICB7c2VsZWN0UHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgIDwvU3R5bGVkUGxhY2Vob2xkZXI+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgPC9jb21wb25lbnRzLlZhbHVlQ29udGFpbmVyPlxuKVxuXG5jb25zdCBpbnB1dFN0eWxlcyA9ICh7IGlzTXVsdGkgfTogUGFydGlhbDxTZWxlY3RQcm9wcz4pID0+IGNzc2BcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgJHshaXNNdWx0aSAmJiAnY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50J307XG5gXG5cbmNvbnN0IElucHV0ID0gKHtcbiAgaXNNdWx0aSxcbiAgaGFzVmFsdWUsXG4gIHNlbGVjdFByb3BzOiB7IGlucHV0SWQsIGxhYmVsSWQsIHBsYWNlaG9sZGVyLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBjbGVhclZhbHVlLFxuICBnZXRTdHlsZXMsXG4gIGdldFZhbHVlLFxuICBpc1J0bCxcbiAgY3gsXG4gIG9wdGlvbnMsXG4gIHNlbGVjdE9wdGlvbixcbiAgc2V0VmFsdWUsXG4gIHRoZW1lLFxuICBjbGFzc05hbWUsXG4gIGlzSGlkZGVuLFxuICAuLi5wcm9wc1xufTogSW5wdXRQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLklucHV0XG4gICAgey4uLnByb3BzfVxuICAgIGNzcz17aW5wdXRTdHlsZXMoeyBpc011bHRpIH0pfVxuICAgIGlkPXtpbnB1dElkfVxuICAgIGFyaWEtY29udHJvbHM9e2xhYmVsSWR9XG4gICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaXNIaWRkZW49e2lzSGlkZGVufVxuICAgIHNlbGVjdFByb3BzPXtcbiAgICAgIHsgLi4uc2VsZWN0UHJvcHMsIHBsYWNlaG9sZGVyIH0gYXMgSW5wdXRQcm9wczxTZWxlY3RPcHRpb24+WydzZWxlY3RQcm9wcyddXG4gICAgfVxuICAvPlxuKVxuXG5jb25zdCBPcHRpb24gPSAoe1xuICBzZWxlY3RQcm9wcyxcbiAgdmFsdWUsXG4gIGxhYmVsLFxuICBjaGlsZHJlbixcbiAgZGF0YTogeyBpbmxpbmVEZXNjcmlwdGlvbiwgZGVzY3JpcHRpb24gfSxcbiAgaXNTZWxlY3RlZCxcbiAgZGF0YSxcbiAgLi4ucHJvcHNcbn06IE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24pID0+IHtcbiAgY29uc3QgW2lzRm9jdXNlZCwgc2V0SXNGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS10ZXN0aWQ9e2BvcHRpb24tJHtzZWxlY3RQcm9wcy5uYW1lIHx8ICcnfS0ke1xuICAgICAgICBpc0pTT05TdHJpbmcodmFsdWUpID8gbGFiZWwgOiB2YWx1ZVxuICAgICAgfWB9XG4gICAgICBvbk1vdXNlT3Zlcj17KCkgPT4gc2V0SXNGb2N1c2VkKHRydWUpfVxuICAgICAgb25Gb2N1cz17KCkgPT4gc2V0SXNGb2N1c2VkKHRydWUpfVxuICAgICAgb25Nb3VzZU91dD17KCkgPT4gc2V0SXNGb2N1c2VkKGZhbHNlKX1cbiAgICAgIG9uQmx1cj17KCkgPT4gc2V0SXNGb2N1c2VkKGZhbHNlKX1cbiAgICA+XG4gICAgICA8Y29tcG9uZW50cy5PcHRpb25cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgZGF0YT17ZGF0YX1cbiAgICAgICAgaXNTZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgICB7aW5saW5lRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgPFN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgICBpc0lubGluZT17ISFpbmxpbmVEZXNjcmlwdGlvbn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2Rlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxNYXhMaW5lU3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9NYXhMaW5lU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2NvbXBvbmVudHMuT3B0aW9uPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RQcm9wczogeyBpc0Rpc2FibGVkLCB0aW1lLCByZXF1aXJlZCB9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxjb21wb25lbnRzLkRyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIHtyZXF1aXJlZCA/IDxJY29uIG5hbWU9XCJhc3Rlcmlza1wiIHNpemU9ezEwfSBjb2xvcj1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAge3RpbWUgPyA8U3R5bGVkU2VwYXJhdG9yIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgLz4gOiBudWxsfVxuICAgICAgICA8SWNvblxuICAgICAgICAgIG5hbWU9e3RpbWUgPyAnY2xvY2stb3V0bGluZScgOiAnYXJyb3ctZG93bid9XG4gICAgICAgICAgc2l6ZT17dGltZSA/IDI0IDogMTZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvY29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBDbGVhckluZGljYXRvciA9IChcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgY2hlY2tlZCwgZXJyb3IgfSxcbiAgICBpbm5lclByb3BzOiB7IHJlZiwgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5DbGVhckluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPEljb25cbiAgICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgICAgY29sb3I9eyhjaGVja2VkICYmICdwcmltYXJ5JykgfHwgKGVycm9yICYmICdkYW5nZXInKSB8fCAnbmV1dHJhbCd9XG4gICAgICAvPlxuICAgIDwvY29tcG9uZW50cy5DbGVhckluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZUxhYmVsID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlTGFiZWwgey4uLnByb3BzfSAvPlxuKVxuXG5jb25zdCBNdWx0aVZhbHVlUmVtb3ZlID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgPEljb24gbmFtZT1cImNsb3NlXCIgc2l6ZT17MTZ9IC8+XG4gIDwvY29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlPlxuKVxuXG50eXBlIFNlbGVjdENvbXBvbmVudHMgPSBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG5cbnR5cGUgU3RhdGVNYW5hZ2VkU2VsZWN0ID0gdHlwZW9mIFNlbGVjdFxuXG50eXBlIFNlbGVjdElucHV0UHJvcHMgPSBTZWxlY3RQcm9wcyAmXG4gIFNlbGVjdFN0eWxlUHJvcHMgJiB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAgICovXG4gICAgYW5pbWF0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIHZhbHVlIGNoYW5nZVxuICAgICAqL1xuICAgIGFuaW1hdGlvbk9uQ2hhbmdlPzogYm9vbGVhblxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIHJlYWRPbmx5PzogYm9vbGVhblxuICAgIGlubmVyUmVmPzogRm9yd2FyZGVkUmVmPFN0YXRlTWFuYWdlZFNlbGVjdD5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gY29tcG9uZW50cyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9jb21wb25lbnRzKVxuICAgICAqL1xuICAgIGN1c3RvbUNvbXBvbmVudHM/OiBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAgIGVtcHR5U3RhdGU/OiBDb21wb25lbnRQcm9wczxTZWxlY3Q+Wydub09wdGlvbnNNZXNzYWdlJ11cbiAgICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIH1cblxuY29uc3QgZGVmYXVsdEN1c3RvbVN0eWxlID0gKCkgPT4gKHt9KVxuXG5jb25zdCBGd2RTZWxlY3RJbnB1dCA9ICh7XG4gIGFuaW1hdGlvbiA9ICdwdWxzZScsXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwMCxcbiAgYW5pbWF0aW9uT25DaGFuZ2UgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY3VzdG9tQ29tcG9uZW50cyxcbiAgY3VzdG9tU3R5bGUgPSBkZWZhdWx0Q3VzdG9tU3R5bGUsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGVycm9yLFxuICBpbm5lclJlZixcbiAgaW5wdXRJZDogaW5wdXRJZFByb3AsXG4gIGlzQ2xlYXJhYmxlID0gZmFsc2UsXG4gIGlzTXVsdGkgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlID0gdHJ1ZSxcbiAgbWVudVBvcnRhbFRhcmdldCxcbiAgbm9Ub3BMYWJlbCA9IGZhbHNlLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlkOiBpZFByb3AsXG4gIHRpbWUsXG4gIGlzTG9hZGluZyxcbiAgcmVxdWlyZWQsXG4gIGVtcHR5U3RhdGUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKVxuICBjb25zdCBpbnB1dElkID0gaW5wdXRJZFByb3AgPz8gaWRcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtpc0FuaW1hdGVkLCBzZXRJc0FuaW1hdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBjdXJyZW50VmFsdWUgPSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uKT8udmFsdWVcblxuICAvLyBPcHRpb25zIG5lZWQgdG8ga2VlcCB0aGUgc2FtZSByZWZlcmVuY2Ugb3RoZXJ3aXNlIHJlYWN0LXNlbGVjdCBkb2Vzbid0IGZvY3VzIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMgfHxcbiAgICAgIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLnJlZHVjZTxTZWxlY3RPcHRpb25bXT4oKGFjYywgY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50PHsgY2hpbGRyZW46IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSksXG4gICAgW29wdGlvbnMsIGNoaWxkcmVuXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbk9uQ2hhbmdlKSB7XG4gICAgICBzZXRJc0FuaW1hdGVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldElzQW5pbWF0ZWQoZmFsc2UpLCBhbmltYXRpb25EdXJhdGlvbilcbiAgICB9XG4gIH0sIFtzZXRJc0FuaW1hdGVkLCBhbmltYXRpb25PbkNoYW5nZSwgYW5pbWF0aW9uRHVyYXRpb24sIGN1cnJlbnRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0XG4gICAgICBjb21wb25lbnRzPXtcbiAgICAgICAge1xuICAgICAgICAgIENsZWFySW5kaWNhdG9yLFxuICAgICAgICAgIERyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICAgIElucHV0LFxuICAgICAgICAgIE11bHRpVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgIE11bHRpVmFsdWVSZW1vdmUsXG4gICAgICAgICAgT3B0aW9uLFxuICAgICAgICAgIFNlbGVjdENvbnRhaW5lcixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICAuLi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICB9IGFzIFNlbGVjdENvbXBvbmVudHNcbiAgICAgIH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaXNEaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZE9ubHl9XG4gICAgICBpc09wdGlvbkRpc2FibGVkPXtvcHRpb24gPT4gISFvcHRpb24uZGlzYWJsZWR9XG4gICAgICBzdHlsZXM9e2dldFNlbGVjdFN0eWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbjogaXNBbmltYXRlZCA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGN1c3RvbVN0eWxlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgbm9Ub3BMYWJlbCxcbiAgICAgICAgdGhlbWUsXG4gICAgICB9KX1cbiAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICBtZW51UG9ydGFsVGFyZ2V0PXttZW51UG9ydGFsVGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgIGlzU2VhcmNoYWJsZT17aXNTZWFyY2hhYmxlfVxuICAgICAgaXNDbGVhcmFibGU9e2lzQ2xlYXJhYmxlfVxuICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHZhbHVlPXt2YWx1ZSBhcyBTZWxlY3RPcHRpb259XG4gICAgICBtYXhNZW51SGVpZ2h0PXsyNTB9XG4gICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgcmVmPXtpbm5lclJlZiBhcyBhbnl9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaWQ9e2lkUHJvcH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGltZSBwcm9wIGRvZXNuJ3QgZXhpc3QgaW4gcmVhY3Qtc2VsZWN0IGJ1dCBpcyB1c2VkXG4gICAgICB0aW1lPXt0aW1lfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICBub09wdGlvbnNNZXNzYWdlPXtlbXB0eVN0YXRlfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgLz5cbiAgKVxufVxuXG50eXBlIE9wdGlvbkNvbXBvbmVudCA9IChcbiAgcHJvcHM6IFBhcnRpYWw8T3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbj4sXG4pID0+IEpTWC5FbGVtZW50XG5cbi8qKlxuICogU2VsZWN0SW5wdXQgY29tcG9uZW50IGlzIGEgd3JhcHBlciBhcm91bmQgW3JlYWN0LXNlbGVjdF0oaHR0cHM6Ly9yZWFjdC1zZWxlY3QuY29tKSBjb21wb25lbnQuXG4gKiBJdCBwcm92aWRlcyBhIHN0eWxlZCBzZWxlY3QgaW5wdXQgd2l0aCBhIGxhYmVsIGFuZCBhbiBlcnJvciBtZXNzYWdlLlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlbGVjdElucHV0VjIgY29tcG9uZW50IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHByb3BzOiBTZWxlY3RJbnB1dFByb3BzLCByZWY6IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+KSA9PiAoXG4gICAgPEZ3ZFNlbGVjdElucHV0IGlubmVyUmVmPXtyZWZ9IHsuLi5wcm9wc30gLz5cbiAgKSxcbikgYXMgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+PiAmIHtcbiAgT3B0aW9uOiBPcHRpb25Db21wb25lbnRcbn1cblxuU2VsZWN0SW5wdXQuZGlzcGxheU5hbWUgPSAnU2VsZWN0SW5wdXQnXG5cblNlbGVjdElucHV0Lk9wdGlvbiA9IE9wdGlvbiBhcyBPcHRpb25Db21wb25lbnRcbiJdfQ== */"));
298
+ }) => isSelectedAndNotFocused ? theme.colors.primary.textStrong : void 0, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpWkUiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvdWkvc3JjL2NvbXBvbmVudHMvU2VsZWN0SW5wdXQvaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NPYmplY3QsIFRoZW1lLCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCB7IGNzcywgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJ0B1bHRyYXZpb2xldC9pY29ucy9sZWdhY3knXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50LFxuICBGb3J3YXJkZWRSZWYsXG4gIEpTWCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCwge1xuICBDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUge1xuICBDbGVhckluZGljYXRvclByb3BzLFxuICBDb21tb25Qcm9wcyxcbiAgQ29udGFpbmVyUHJvcHMsXG4gIERyb3Bkb3duSW5kaWNhdG9yUHJvcHMsXG4gIEdyb3VwQmFzZSxcbiAgSW5wdXRQcm9wcyxcbiAgTXVsdGlWYWx1ZVByb3BzLFxuICBPcHRpb25Qcm9wcyxcbiAgUHJvcHMsXG4gIFZhbHVlQ29udGFpbmVyUHJvcHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBTZWxlY3QsIHsgY29tcG9uZW50cyB9IGZyb20gJ3JlYWN0LXNlbGVjdCdcbmltcG9ydCBpc0pTT05TdHJpbmcgZnJvbSAnLi4vLi4vaGVscGVycy9pc0pTT04nXG5pbXBvcnQgKiBhcyBhbmltYXRpb25zIGZyb20gJy4uLy4uL3V0aWxzL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBFeHBhbmRhYmxlIH0gZnJvbSAnLi4vRXhwYW5kYWJsZSdcbmltcG9ydCB7IFNlcGFyYXRvciB9IGZyb20gJy4uL1NlcGFyYXRvcidcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnLi4vU3RhY2snXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vVGV4dCdcblxuY29uc3QgU3R5bGVkU2VwYXJhdG9yID0gc3R5bGVkKFNlcGFyYXRvcilgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyfTtcbiAgaGVpZ2h0OiAxMDAlO1xuYFxuXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW5saW5lRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxudHlwZSBTZWxlY3RTdHlsZUdldHRlclByb3BzID0ge1xuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wc1xuICBlcnJvcj86IHN0cmluZ1xuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0Q29udHJvbENvbG9yID0gKHsgc3RhdGUsIGVycm9yLCB0aGVtZSB9OiBTZWxlY3RTdHlsZUdldHRlclByb3BzKSA9PiB7XG4gIGlmIChzdGF0ZS5pc0Rpc2FibGVkKSByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIGlmIChlcnJvcikgcmV0dXJuIHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dFxuXG4gIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG59XG5cbmNvbnN0IGdldFBsYWNlaG9sZGVyQ29sb3IgPSAoe1xuICBzdGF0ZSxcbiAgZXJyb3IsXG4gIHRoZW1lLFxufTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtcbn1cblxuY29uc3QgZ2V0T3B0aW9uQ29sb3IgPSAoeyBzdGF0ZSwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBsZXQgY29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRcbiAgbGV0IGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtFbGV2YXRlZFxuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgIGNvbG9yID0gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNTZWxlY3RlZCkge1xuICAgIGJhY2tncm91bmRDb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRTdHJvbmdcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHRTdHJvbmdcbiAgfSBlbHNlIGlmIChzdGF0ZS5pc0ZvY3VzZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kXG4gIH1cblxuICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yIH1cbn1cblxudHlwZSBTZWxlY3RTdHlsZUZhY3RvcnkgPSAoXG4gIHByb3ZpZGVkOiBDU1NPYmplY3QsXG4gIHN0YXRlOiBTZWxlY3RQcm9wcyAmIE9wdGlvblByb3BzICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiBDU1NPYmplY3RcblxudHlwZSBTZWxlY3RTdHlsZU1hcCA9IFJlY29yZDxzdHJpbmcsIFNlbGVjdFN0eWxlRmFjdG9yeT5cblxudHlwZSBTZWxlY3RTdHlsZVByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICAvKipcbiAgICogQ3VzdG9tIHN0eWxlcyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9zdHlsZXMpXG4gICAqL1xuICBjdXN0b21TdHlsZTogKFxuICAgIHN0YXRlOiBTZWxlY3RQcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbiAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBDU1NPYmplY3Q+XG4gIGFuaW1hdGlvbj86IHN0cmluZ1xuICAvKipcbiAgICogVGltZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gIC8qKlxuICAgKiBTaG93L2hpZGUgdGhlIGxhYmVsIGluc2lkZSB0aGUgY29tcG9uZW50XG4gICAqL1xuICBub1RvcExhYmVsPzogYm9vbGVhblxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgZ2V0U2VsZWN0U3R5bGVzID0gKHtcbiAgZXJyb3IsXG4gIGN1c3RvbVN0eWxlLFxuICBhbmltYXRpb24sXG4gIGFuaW1hdGlvbkR1cmF0aW9uLFxuICBub1RvcExhYmVsLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlUHJvcHMpOiBTZWxlY3RTdHlsZU1hcCA9PiAoe1xuICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZCxcbiAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6ICcxcHgnLFxuICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgIGNvbG9yOiBnZXRDb250cm9sQ29sb3IoeyBlcnJvciwgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICBtaW5IZWlnaHQ6ICc0OHB4JyxcbiAgICB0cmFuc2l0aW9uOiAnYm9yZGVyLWNvbG9yIDIwMG1zIGVhc2UsIGJveC1zaGFkb3cgMjAwbXMgZWFzZScsXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcblxuICAgIC4uLighc3RhdGUuaXNEaXNhYmxlZCAmJiB7XG4gICAgICAnOmZvY3VzLXdpdGhpbic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlclxuICAgICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYm9yZGVyLFxuICAgICAgICBib3hTaGFkb3c6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5zaGFkb3dzLmZvY3VzRGFuZ2VyXG4gICAgICAgICAgOiB0aGVtZS5zaGFkb3dzLmZvY3VzUHJpbWFyeSxcbiAgICAgIH0sXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBib3JkZXJDb2xvcjogZXJyb3JcbiAgICAgICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVySG92ZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlckhvdmVyLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnY29udHJvbCddLFxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uXG4gICAgICA/IGAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICAgKGFuaW1hdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Yga2V5ZnJhbWVzPj4pW1xuICAgICAgICAgICAgYW5pbWF0aW9uXG4gICAgICAgICAgXVxuICAgICAgICB9YFxuICAgICAgOiAnbm9uZScsXG4gIH0pLFxuICBpbmRpY2F0b3JzQ29udGFpbmVyOiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIG1heEhlaWdodDogJzQ4cHgnLFxuICB9KSxcbiAgaW5kaWNhdG9yU2VwYXJhdG9yOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnaW5kaWNhdG9yU2VwYXJhdG9yJ10sXG4gIH0pLFxuICBpbnB1dDogcHJvdmlkZWQgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBmbGV4R3JvdzogMSxcbiAgICBtYXJnaW5MZWZ0OiAwLFxuICAgIHBhZGRpbmdUb3A6IG5vVG9wTGFiZWwgPyAwIDogMTEsXG4gIH0pLFxuICBtZW51OiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51J10sXG4gICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzLm1lbnUsXG4gIH0pLFxuICBtZW51TGlzdDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrLFxuICAgIG1heEhlaWdodDogJzIyNXB4JyxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudUxpc3QnXSxcbiAgfSksXG4gIG1lbnVQb3J0YWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgekluZGV4OiAxMDAwMCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudVBvcnRhbCddLFxuICB9KSxcbiAgbXVsdGlWYWx1ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZCxcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIGhlaWdodDogJzI0cHgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNlW25vVG9wTGFiZWwgPyAnMC41JyA6ICcyJ10sXG4gICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlJ10sXG4gIH0pLFxuICBtdWx0aVZhbHVlTGFiZWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ211bHRpVmFsdWVMYWJlbCddLFxuICB9KSxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZCxcbiAgICAgICAgICBjdXJzb3I6ICdub25lJyxcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgICB9KSxcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ3BvaW50ZXInLFxuICAgICAgcG9pbnRlckV2ZW50czogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdmaWxsJyxcbiAgICB9LFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlUmVtb3ZlJ10sXG4gIH0pLFxuICBvcHRpb246IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uZ2V0T3B0aW9uQ29sb3IoeyBzdGF0ZSwgdGhlbWUgfSksXG4gICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyxcbiAgICAnOmFjdGl2ZSc6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LnRleHQsXG4gICAgfSxcbiAgICAnOmhvdmVyJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZCxcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICB9LFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydvcHRpb24nXSxcbiAgfSksXG4gIHBsYWNlaG9sZGVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBnZXRQbGFjZWhvbGRlckNvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsncGxhY2Vob2xkZXInXSxcbiAgfSksXG4gIHNpbmdsZVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIG1hcmdpbkxlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5SaWdodDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblRvcDogIXN0YXRlLmhhc1ZhbHVlIHx8IG5vVG9wTGFiZWwgPyAwIDogJzVweCcsXG4gICAgcGFkZGluZ0xlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/Llsnc2luZ2xlVmFsdWUnXSxcbiAgfSksXG4gIHZhbHVlQ29udGFpbmVyOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWyd2YWx1ZUNvbnRhaW5lciddLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiB1bmRlZmluZWQsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgbGFiZWw6IHtcbiAgICAgIGRpc3BsYXk6IG5vVG9wTGFiZWwgPyAnbm9uZScgOiAnaW5pdGlhbCcsXG4gICAgfSxcbiAgICBwYWRkaW5nVG9wOiAwLFxuICB9KSxcbn0pXG5cbnR5cGUgV2l0aFNlbGVjdFByb3BzID0ge1xuICBzZWxlY3RQcm9wczogU2VsZWN0UHJvcHNcbn1cblxudHlwZSBTZWxlY3RQcm9wcyA9IFN0eWxlZENvbnRhaW5lclByb3BzICZcbiAgT21pdDxQcm9wczxTZWxlY3RPcHRpb24+LCAndmFsdWUnPiAmXG4gIENvbW1vblByb3BzPFNlbGVjdE9wdGlvbiwgYm9vbGVhbiwgR3JvdXBCYXNlPFNlbGVjdE9wdGlvbj4+ICYge1xuICAgIHZhbHVlPzogc3RyaW5nIHwgU2VsZWN0T3B0aW9uXG4gICAgY2hlY2tlZD86IGJvb2xlYW5cbiAgICBlcnJvcj86IHN0cmluZ1xuICAgIGxhYmVsSWQ/OiBzdHJpbmdcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0aW1lPzogYm9vbGVhblxuICB9XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGFkZGl0aW9uYWxTdHlsZXM/OiBQYXJhbWV0ZXJzPHR5cGVvZiBjc3M+WzBdXG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc0Rpc2FibGVkJywgJ2FkZGl0aW9uYWxTdHlsZXMnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gICR7KHsgaXNEaXNhYmxlZCB9KSA9PiBpc0Rpc2FibGVkICYmIGBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtgfTtcbiAgJHsoeyBhZGRpdGlvbmFsU3R5bGVzIH0pID0+IGNzcyhhZGRpdGlvbmFsU3R5bGVzKX1cbmBcblxuY29uc3QgU3R5bGVkRXJyb3IgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dH07XG4gIHBhZGRpbmctdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBTZWxlY3RDb250YWluZXIgPSAoXG4gIHByb3BzOiBDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlbixcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyBvbktleURvd24gfSA9IHt9LFxuICAgIGlzRGlzYWJsZWQgPSBmYWxzZSxcbiAgICBjbGFzc05hbWUsXG4gICAgc2VsZWN0UHJvcHM6IHsgbmFtZSA9ICcnLCBlcnJvciwgY2xhc3NOYW1lOiBzZWxlY3RQcm9wc0NsYXNzTmFtZSB9ID0ge30sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgZGF0YS10ZXN0aWQ9e2BzZWxlY3QtaW5wdXQtJHtuYW1lfWB9XG4gICAgICBhZGRpdGlvbmFsU3R5bGVzPXtnZXRTdHlsZXM/LignY29udGFpbmVyJywgcHJvcHMpfVxuICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGNsYXNzTmFtZT17W2NsYXNzTmFtZSwgc2VsZWN0UHJvcHNDbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICA8RXhwYW5kYWJsZSBvcGVuZWQ9eyEhZXJyb3J9PlxuICAgICAgICA8U3R5bGVkRXJyb3I+e2Vycm9yfTwvU3R5bGVkRXJyb3I+XG4gICAgICA8L0V4cGFuZGFibGU+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gIClcbn1cblxudHlwZSBTdHlsZWRQbGFjZWhvbGRlclByb3BzID0ge1xuICBlcnJvcj86IHN0cmluZ1xuICBpc011bHRpOiBib29sZWFuXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuXG4gIGhhc1ZhbHVlOiBib29sZWFuXG59XG5cbmNvbnN0IFN0eWxlZFBsYWNlaG9sZGVyID0gc3R5bGVkKCdsYWJlbCcsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydlcnJvcicsICdoYXNWYWx1ZScsICdpc0Rpc2FibGVkJywgJ2lzTXVsdGknXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBsYWNlaG9sZGVyUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgZXJyb3IgfSkgPT5cbiAgICBlcnJvciA/IHRoZW1lLmNvbG9ycy5kYW5nZXIudGV4dCA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBlYXNlO1xuICBvcGFjaXR5OiAwO1xuICAkeyh7IGhhc1ZhbHVlIH0pID0+XG4gICAgaGFzVmFsdWUgJiZcbiAgICBgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLThweCkgc2NhbGUoMC44KTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogOHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMTtcbiAgYH1cbiAgJHsoeyBpc0Rpc2FibGVkLCBoYXNWYWx1ZSB9KSA9PiBoYXNWYWx1ZSAmJiBpc0Rpc2FibGVkICYmICdvcGFjaXR5OiAwLjUnfVxuYFxuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFRleHQsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZCcsICdpc0lubGluZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZDogYm9vbGVhblxuICBpc0lubGluZT86IGJvb2xlYW5cbn0+YFxuICBtYXJnaW4tbGVmdDogJHsoeyB0aGVtZSwgaXNJbmxpbmUgfSkgPT4gKGlzSW5saW5lID8gdGhlbWUuc3BhY2VbJzEnXSA6IDApfTtcbiAgY29sb3I6ICR7KHsgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQsIHRoZW1lIH0pID0+XG4gICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQgPyB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nIDogdW5kZWZpbmVkfTtcbmBcblxuY29uc3QgTWF4TGluZVN0eWxlZFRleHQgPSBzdHlsZWQoU3R5bGVkVGV4dClgXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMSddfTtcbmBcblxuY29uc3QgVmFsdWVDb250YWluZXIgPSAoe1xuICBpc0Rpc2FibGVkLFxuICBjaGlsZHJlbixcbiAgc2VsZWN0UHJvcHM6IHsgZXJyb3IsIGxhYmVsSWQsIGlucHV0SWQsIC4uLnNlbGVjdFByb3BzIH0sXG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBjbGVhclZhbHVlLFxuICBnZXRTdHlsZXMsXG4gIGdldFZhbHVlLFxuICBnZXRDbGFzc05hbWVzLFxuICBpc1J0bCxcbiAgY3gsXG4gIG9wdGlvbnMsXG4gIHNlbGVjdE9wdGlvbixcbiAgc2V0VmFsdWUsXG4gIHRoZW1lLFxuICBjbGFzc05hbWUsXG4gIGlubmVyUHJvcHMsXG59OiBWYWx1ZUNvbnRhaW5lclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMpID0+IChcbiAgPGNvbXBvbmVudHMuVmFsdWVDb250YWluZXJcbiAgICBjbGVhclZhbHVlPXtjbGVhclZhbHVlfVxuICAgIGdldFN0eWxlcz17Z2V0U3R5bGVzfVxuICAgIGdldFZhbHVlPXtnZXRWYWx1ZX1cbiAgICBpc1J0bD17aXNSdGx9XG4gICAgY3g9e2N4fVxuICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgc2VsZWN0T3B0aW9uPXtzZWxlY3RPcHRpb259XG4gICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgIHRoZW1lPXt0aGVtZX1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpbm5lclByb3BzPXtpbm5lclByb3BzfVxuICAgIHNlbGVjdFByb3BzPXtzZWxlY3RQcm9wc31cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc0Rpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgIGdldENsYXNzTmFtZXM9e2dldENsYXNzTmFtZXN9XG4gID5cbiAgICA8PlxuICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyID8gKFxuICAgICAgICA8U3R5bGVkUGxhY2Vob2xkZXJcbiAgICAgICAgICBhcz1cImxhYmVsXCJcbiAgICAgICAgICBpZD17bGFiZWxJZH1cbiAgICAgICAgICBodG1sRm9yPXtpbnB1dElkfVxuICAgICAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiXG4gICAgICAgICAgZXJyb3I9e2Vycm9yfVxuICAgICAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICAgICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgICAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgICAgID5cbiAgICAgICAgICB7c2VsZWN0UHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgIDwvU3R5bGVkUGxhY2Vob2xkZXI+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgPC9jb21wb25lbnRzLlZhbHVlQ29udGFpbmVyPlxuKVxuXG5jb25zdCBpbnB1dFN0eWxlcyA9ICh7IGlzTXVsdGkgfTogUGFydGlhbDxTZWxlY3RQcm9wcz4pID0+IGNzc2BcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgJHshaXNNdWx0aSAmJiAnY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50J307XG5gXG5cbmNvbnN0IElucHV0ID0gKHtcbiAgaXNNdWx0aSxcbiAgaGFzVmFsdWUsXG4gIHNlbGVjdFByb3BzOiB7IGlucHV0SWQsIGxhYmVsSWQsIHBsYWNlaG9sZGVyLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBjbGVhclZhbHVlLFxuICBnZXRTdHlsZXMsXG4gIGdldFZhbHVlLFxuICBpc1J0bCxcbiAgY3gsXG4gIG9wdGlvbnMsXG4gIHNlbGVjdE9wdGlvbixcbiAgc2V0VmFsdWUsXG4gIHRoZW1lLFxuICBjbGFzc05hbWUsXG4gIGlzSGlkZGVuLFxuICAuLi5wcm9wc1xufTogSW5wdXRQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLklucHV0XG4gICAgey4uLnByb3BzfVxuICAgIGNzcz17aW5wdXRTdHlsZXMoeyBpc011bHRpIH0pfVxuICAgIGlkPXtpbnB1dElkfVxuICAgIGFyaWEtY29udHJvbHM9e2xhYmVsSWR9XG4gICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaXNIaWRkZW49e2lzSGlkZGVufVxuICAgIHNlbGVjdFByb3BzPXtcbiAgICAgIHsgLi4uc2VsZWN0UHJvcHMsIHBsYWNlaG9sZGVyIH0gYXMgSW5wdXRQcm9wczxTZWxlY3RPcHRpb24+WydzZWxlY3RQcm9wcyddXG4gICAgfVxuICAvPlxuKVxuXG5jb25zdCBPcHRpb24gPSAoe1xuICBzZWxlY3RQcm9wcyxcbiAgdmFsdWUsXG4gIGxhYmVsLFxuICBjaGlsZHJlbixcbiAgZGF0YTogeyBpbmxpbmVEZXNjcmlwdGlvbiwgZGVzY3JpcHRpb24gfSxcbiAgaXNTZWxlY3RlZCxcbiAgZGF0YSxcbiAgLi4ucHJvcHNcbn06IE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24pID0+IHtcbiAgY29uc3QgW2lzRm9jdXNlZCwgc2V0SXNGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS10ZXN0aWQ9e2BvcHRpb24tJHtzZWxlY3RQcm9wcy5uYW1lIHx8ICcnfS0ke1xuICAgICAgICBpc0pTT05TdHJpbmcodmFsdWUpID8gbGFiZWwgOiB2YWx1ZVxuICAgICAgfWB9XG4gICAgICBvbk1vdXNlT3Zlcj17KCkgPT4gc2V0SXNGb2N1c2VkKHRydWUpfVxuICAgICAgb25Gb2N1cz17KCkgPT4gc2V0SXNGb2N1c2VkKHRydWUpfVxuICAgICAgb25Nb3VzZU91dD17KCkgPT4gc2V0SXNGb2N1c2VkKGZhbHNlKX1cbiAgICAgIG9uQmx1cj17KCkgPT4gc2V0SXNGb2N1c2VkKGZhbHNlKX1cbiAgICA+XG4gICAgICA8Y29tcG9uZW50cy5PcHRpb25cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgZGF0YT17ZGF0YX1cbiAgICAgICAgaXNTZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgICB7aW5saW5lRGVzY3JpcHRpb24gPyAoXG4gICAgICAgICAgPFN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgICBpc0lubGluZT17ISFpbmxpbmVEZXNjcmlwdGlvbn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2Rlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxNYXhMaW5lU3R5bGVkVGV4dFxuICAgICAgICAgICAgYXM9XCJwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJib2R5U21hbGxcIlxuICAgICAgICAgICAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ9e2lzU2VsZWN0ZWQgJiYgIWlzRm9jdXNlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9NYXhMaW5lU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L2NvbXBvbmVudHMuT3B0aW9uPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKFxuICBwcm9wczogRHJvcGRvd25JbmRpY2F0b3JQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzLFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RQcm9wczogeyBpc0Rpc2FibGVkLCB0aW1lLCByZXF1aXJlZCB9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxjb21wb25lbnRzLkRyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIHtyZXF1aXJlZCA/IDxJY29uIG5hbWU9XCJhc3Rlcmlza1wiIHNpemU9ezEwfSBjb2xvcj1cImRhbmdlclwiIC8+IDogbnVsbH1cbiAgICAgICAge3RpbWUgPyA8U3R5bGVkU2VwYXJhdG9yIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgLz4gOiBudWxsfVxuICAgICAgICA8SWNvblxuICAgICAgICAgIG5hbWU9e3RpbWUgPyAnY2xvY2stb3V0bGluZScgOiAnYXJyb3ctZG93bid9XG4gICAgICAgICAgc2l6ZT17dGltZSA/IDI0IDogMTZ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvY29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBDbGVhckluZGljYXRvciA9IChcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgY2hlY2tlZCwgZXJyb3IgfSxcbiAgICBpbm5lclByb3BzOiB7IHJlZiwgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5DbGVhckluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPEljb25cbiAgICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgICBuYW1lPVwiY2xvc2VcIlxuICAgICAgICBjdXJzb3I9XCJwb2ludGVyXCJcbiAgICAgICAgY29sb3I9eyhjaGVja2VkICYmICdwcmltYXJ5JykgfHwgKGVycm9yICYmICdkYW5nZXInKSB8fCAnbmV1dHJhbCd9XG4gICAgICAvPlxuICAgIDwvY29tcG9uZW50cy5DbGVhckluZGljYXRvcj5cbiAgKVxufVxuXG5jb25zdCBNdWx0aVZhbHVlQ29udGFpbmVyID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlQ29udGFpbmVyIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZUxhYmVsID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlTGFiZWwgey4uLnByb3BzfSAvPlxuKVxuXG5jb25zdCBNdWx0aVZhbHVlUmVtb3ZlID0gKHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8U2VsZWN0T3B0aW9uPikgPT4gKFxuICA8Y29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgPEljb24gbmFtZT1cImNsb3NlXCIgc2l6ZT17MTZ9IC8+XG4gIDwvY29tcG9uZW50cy5NdWx0aVZhbHVlUmVtb3ZlPlxuKVxuXG50eXBlIFNlbGVjdENvbXBvbmVudHMgPSBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG5cbnR5cGUgU3RhdGVNYW5hZ2VkU2VsZWN0ID0gdHlwZW9mIFNlbGVjdFxuXG50eXBlIFNlbGVjdElucHV0UHJvcHMgPSBTZWxlY3RQcm9wcyAmXG4gIFNlbGVjdFN0eWxlUHJvcHMgJiB7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgYW5pbWF0aW9uXG4gICAgICovXG4gICAgYW5pbWF0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogUGxheSB0aGUgYW5pbWF0aW9uIHdoZW4gdGhlIHZhbHVlIGNoYW5nZVxuICAgICAqL1xuICAgIGFuaW1hdGlvbk9uQ2hhbmdlPzogYm9vbGVhblxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIHJlYWRPbmx5PzogYm9vbGVhblxuICAgIGlubmVyUmVmPzogRm9yd2FyZGVkUmVmPFN0YXRlTWFuYWdlZFNlbGVjdD5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gY29tcG9uZW50cyBvZiB0aGUgU2VsZWN0SW5wdXQuIFNlZSBbUmVhY3Qgc2VsZWN0IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbS9jb21wb25lbnRzKVxuICAgICAqL1xuICAgIGN1c3RvbUNvbXBvbmVudHM/OiBTZWxlY3RQcm9wc1snY29tcG9uZW50cyddXG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAgIGVtcHR5U3RhdGU/OiBDb21wb25lbnRQcm9wczxTZWxlY3Q+Wydub09wdGlvbnNNZXNzYWdlJ11cbiAgICAnZGF0YS10ZXN0aWQnPzogc3RyaW5nXG4gIH1cblxuY29uc3QgZGVmYXVsdEN1c3RvbVN0eWxlID0gKCkgPT4gKHt9KVxuXG5jb25zdCBGd2RTZWxlY3RJbnB1dCA9ICh7XG4gIGFuaW1hdGlvbiA9ICdwdWxzZScsXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gMTAwMCxcbiAgYW5pbWF0aW9uT25DaGFuZ2UgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY3VzdG9tQ29tcG9uZW50cyxcbiAgY3VzdG9tU3R5bGUgPSBkZWZhdWx0Q3VzdG9tU3R5bGUsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGVycm9yLFxuICBpbm5lclJlZixcbiAgaW5wdXRJZDogaW5wdXRJZFByb3AsXG4gIGlzQ2xlYXJhYmxlID0gZmFsc2UsXG4gIGlzTXVsdGkgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlID0gdHJ1ZSxcbiAgbWVudVBvcnRhbFRhcmdldCxcbiAgbm9Ub3BMYWJlbCA9IGZhbHNlLFxuICBvbkJsdXIsXG4gIG9uQ2hhbmdlLFxuICBvbkZvY3VzLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlkOiBpZFByb3AsXG4gIHRpbWUsXG4gIGlzTG9hZGluZyxcbiAgcmVxdWlyZWQsXG4gIGVtcHR5U3RhdGUsXG4gICdkYXRhLXRlc3RpZCc6IGRhdGFUZXN0SWQsXG59OiBQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKVxuICBjb25zdCBpbnB1dElkID0gaW5wdXRJZFByb3AgPz8gaWRcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtpc0FuaW1hdGVkLCBzZXRJc0FuaW1hdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBjdXJyZW50VmFsdWUgPSAodmFsdWUgYXMgU2VsZWN0T3B0aW9uKT8udmFsdWVcblxuICAvLyBPcHRpb25zIG5lZWQgdG8ga2VlcCB0aGUgc2FtZSByZWZlcmVuY2Ugb3RoZXJ3aXNlIHJlYWN0LXNlbGVjdCBkb2Vzbid0IGZvY3VzIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMgfHxcbiAgICAgIENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pLnJlZHVjZTxTZWxlY3RPcHRpb25bXT4oKGFjYywgY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50PHsgY2hpbGRyZW46IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICAgICAgbGFiZWw6IGNoaWxkLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSksXG4gICAgW29wdGlvbnMsIGNoaWxkcmVuXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbk9uQ2hhbmdlKSB7XG4gICAgICBzZXRJc0FuaW1hdGVkKHRydWUpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHNldElzQW5pbWF0ZWQoZmFsc2UpLCBhbmltYXRpb25EdXJhdGlvbilcbiAgICB9XG4gIH0sIFtzZXRJc0FuaW1hdGVkLCBhbmltYXRpb25PbkNoYW5nZSwgYW5pbWF0aW9uRHVyYXRpb24sIGN1cnJlbnRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0XG4gICAgICBjb21wb25lbnRzPXtcbiAgICAgICAge1xuICAgICAgICAgIENsZWFySW5kaWNhdG9yLFxuICAgICAgICAgIERyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICAgIElucHV0LFxuICAgICAgICAgIE11bHRpVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgIE11bHRpVmFsdWVSZW1vdmUsXG4gICAgICAgICAgT3B0aW9uLFxuICAgICAgICAgIFNlbGVjdENvbnRhaW5lcixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcixcbiAgICAgICAgICAuLi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICB9IGFzIFNlbGVjdENvbXBvbmVudHNcbiAgICAgIH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgaXNEaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZE9ubHl9XG4gICAgICBpc09wdGlvbkRpc2FibGVkPXtvcHRpb24gPT4gISFvcHRpb24uZGlzYWJsZWR9XG4gICAgICBzdHlsZXM9e2dldFNlbGVjdFN0eWxlcyh7XG4gICAgICAgIGFuaW1hdGlvbjogaXNBbmltYXRlZCA/IGFuaW1hdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGN1c3RvbVN0eWxlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgbm9Ub3BMYWJlbCxcbiAgICAgICAgdGhlbWUsXG4gICAgICB9KX1cbiAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICBtZW51UG9ydGFsVGFyZ2V0PXttZW51UG9ydGFsVGFyZ2V0IHx8IHVuZGVmaW5lZH1cbiAgICAgIGlzU2VhcmNoYWJsZT17aXNTZWFyY2hhYmxlfVxuICAgICAgaXNDbGVhcmFibGU9e2lzQ2xlYXJhYmxlfVxuICAgICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHZhbHVlPXt2YWx1ZSBhcyBTZWxlY3RPcHRpb259XG4gICAgICBtYXhNZW51SGVpZ2h0PXsyNTB9XG4gICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBpbm5lclJlZiB0eXBlIGlzc3VlXG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIGlkPXtpZFByb3B9XG4gICAgICB0aW1lPXt0aW1lfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICBub09wdGlvbnNNZXNzYWdlPXtlbXB0eVN0YXRlfVxuICAgICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWR9XG4gICAgLz5cbiAgKVxufVxuXG50eXBlIE9wdGlvbkNvbXBvbmVudCA9IChcbiAgcHJvcHM6IFBhcnRpYWw8T3B0aW9uUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFNlbGVjdE9wdGlvbj4sXG4pID0+IEpTWC5FbGVtZW50XG5cbi8qKlxuICogU2VsZWN0SW5wdXQgY29tcG9uZW50IGlzIGEgd3JhcHBlciBhcm91bmQgW3JlYWN0LXNlbGVjdF0oaHR0cHM6Ly9yZWFjdC1zZWxlY3QuY29tKSBjb21wb25lbnQuXG4gKiBJdCBwcm92aWRlcyBhIHN0eWxlZCBzZWxlY3QgaW5wdXQgd2l0aCBhIGxhYmVsIGFuZCBhbiBlcnJvciBtZXNzYWdlLlxuICogQGRlcHJlY2F0ZWQgdXNlIFNlbGVjdElucHV0VjIgY29tcG9uZW50IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHByb3BzOiBTZWxlY3RJbnB1dFByb3BzLCByZWY6IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+KSA9PiAoXG4gICAgPEZ3ZFNlbGVjdElucHV0IGlubmVyUmVmPXtyZWZ9IHsuLi5wcm9wc30gLz5cbiAgKSxcbikgYXMgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQYXJ0aWFsPFNlbGVjdElucHV0UHJvcHM+PiAmIHtcbiAgT3B0aW9uOiBPcHRpb25Db21wb25lbnRcbn1cblxuU2VsZWN0SW5wdXQuZGlzcGxheU5hbWUgPSAnU2VsZWN0SW5wdXQnXG5cblNlbGVjdElucHV0Lk9wdGlvbiA9IE9wdGlvbiBhcyBPcHRpb25Db21wb25lbnRcbiJdfQ== */"));
299
299
  const MaxLineStyledText = /* @__PURE__ */ _styled__default.default(StyledText, process.env.NODE_ENV === "production" ? {
300
300
  target: "e11gt5pw0"
301
301
  } : {
@@ -303,7 +303,7 @@ const MaxLineStyledText = /* @__PURE__ */ _styled__default.default(StyledText, p
303
303
  label: "MaxLineStyledText"
304
304
  })("-webkit-line-clamp:3;margin-top:", ({
305
305
  theme
306
- }) => theme.space["1"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1WjRDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydjb250cm9sJ10gfHwge30pLFxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uXG4gICAgICA/IGAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICAgKGFuaW1hdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Yga2V5ZnJhbWVzPj4pW1xuICAgICAgICAgICAgYW5pbWF0aW9uXG4gICAgICAgICAgXVxuICAgICAgICB9YFxuICAgICAgOiAnbm9uZScsXG4gIH0pLFxuICBpbmRpY2F0b3JzQ29udGFpbmVyOiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIG1heEhlaWdodDogJzQ4cHgnLFxuICB9KSxcbiAgaW5kaWNhdG9yU2VwYXJhdG9yOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddIHx8IHt9KSxcbiAgfSksXG4gIGlucHV0OiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGZsZXhHcm93OiAxLFxuICAgIG1hcmdpbkxlZnQ6IDAsXG4gICAgcGFkZGluZ1RvcDogbm9Ub3BMYWJlbCA/IDAgOiAxMSxcbiAgfSksXG4gIG1lbnU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51J10gfHwge30pLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51TGlzdCddIHx8IHt9KSxcbiAgfSksXG4gIG1lbnVQb3J0YWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgekluZGV4OiAxMDAwMCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2Vbbm9Ub3BMYWJlbCA/ICcwLjUnIDogJzInXSxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZUxhYmVsJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZCxcbiAgICAgICAgICBjdXJzb3I6ICdub25lJyxcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgICB9KSxcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ3BvaW50ZXInLFxuICAgICAgcG9pbnRlckV2ZW50czogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdmaWxsJyxcbiAgICB9LFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddIHx8IHt9KSxcbiAgfSksXG4gIG9wdGlvbjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5nZXRPcHRpb25Db2xvcih7IHN0YXRlLCB0aGVtZSB9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInLFxuICAgICc6YWN0aXZlJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZCxcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICB9LFxuICAgICc6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydvcHRpb24nXSB8fCB7fSksXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydwbGFjZWhvbGRlciddIHx8IHt9KSxcbiAgfSksXG4gIHNpbmdsZVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIG1hcmdpbkxlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5SaWdodDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblRvcDogIXN0YXRlLmhhc1ZhbHVlIHx8IG5vVG9wTGFiZWwgPyAwIDogJzVweCcsXG4gICAgcGFkZGluZ0xlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgdmFsdWVDb250YWluZXI6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWyd2YWx1ZUNvbnRhaW5lciddIHx8IHt9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgIHJlZj17aW5uZXJSZWYgYXMgYW55fVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIGlkPXtpZFByb3B9XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpbWUgcHJvcCBkb2Vzbid0IGV4aXN0IGluIHJlYWN0LXNlbGVjdCBidXQgaXMgdXNlZFxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"));
306
+ }) => theme.space["1"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1WjRDIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSxcbiAgICBhbmltYXRpb246IGFuaW1hdGlvblxuICAgICAgPyBgJHthbmltYXRpb25EdXJhdGlvbn1tcyAke1xuICAgICAgICAgIChhbmltYXRpb25zIGFzIFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGtleWZyYW1lcz4+KVtcbiAgICAgICAgICAgIGFuaW1hdGlvblxuICAgICAgICAgIF1cbiAgICAgICAgfWBcbiAgICAgIDogJ25vbmUnLFxuICB9KSxcbiAgaW5kaWNhdG9yc0NvbnRhaW5lcjogcHJvdmlkZWQgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBtYXhIZWlnaHQ6ICc0OHB4JyxcbiAgfSksXG4gIGluZGljYXRvclNlcGFyYXRvcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudSddLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10sXG4gIH0pLFxuICBtZW51UG9ydGFsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIHpJbmRleDogMTAwMDAsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZSddLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWVSZW1vdmU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8ge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWQsXG4gICAgICAgICAgY3Vyc29yOiAnbm9uZScsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgICAgfSksXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdwb2ludGVyJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAnZmlsbCcsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/Llsnb3B0aW9uJ10sXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10sXG4gIH0pLFxuICBzaW5nbGVWYWx1ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBtYXJnaW5MZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luUmlnaHQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5Ub3A6ICFzdGF0ZS5oYXNWYWx1ZSB8fCBub1RvcExhYmVsID8gMCA6ICc1cHgnLFxuICAgIHBhZGRpbmdMZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10sXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsndmFsdWVDb250YWluZXInXSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgaW5uZXJSZWYgdHlwZSBpc3N1ZVxuICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICBpZD17aWRQcm9wfVxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */"));
307
307
  const ValueContainer = ({
308
308
  isDisabled,
309
309
  children,
@@ -333,7 +333,7 @@ const ValueContainer = ({
333
333
  ] }) });
334
334
  const inputStyles = ({
335
335
  isMulti
336
- }) => /* @__PURE__ */ react.css("margin-left:0px;", !isMulti && "caret-color: transparent", ";" + (process.env.NODE_ENV === "production" ? "" : ";label:inputStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxZDhEIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydjb250cm9sJ10gfHwge30pLFxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uXG4gICAgICA/IGAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICAgKGFuaW1hdGlvbnMgYXMgUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Yga2V5ZnJhbWVzPj4pW1xuICAgICAgICAgICAgYW5pbWF0aW9uXG4gICAgICAgICAgXVxuICAgICAgICB9YFxuICAgICAgOiAnbm9uZScsXG4gIH0pLFxuICBpbmRpY2F0b3JzQ29udGFpbmVyOiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIG1heEhlaWdodDogJzQ4cHgnLFxuICB9KSxcbiAgaW5kaWNhdG9yU2VwYXJhdG9yOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYm9yZGVyLFxuICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddIHx8IHt9KSxcbiAgfSksXG4gIGlucHV0OiBwcm92aWRlZCA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGZsZXhHcm93OiAxLFxuICAgIG1hcmdpbkxlZnQ6IDAsXG4gICAgcGFkZGluZ1RvcDogbm9Ub3BMYWJlbCA/IDAgOiAxMSxcbiAgfSksXG4gIG1lbnU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51J10gfHwge30pLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtZW51TGlzdCddIHx8IHt9KSxcbiAgfSksXG4gIG1lbnVQb3J0YWw6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgekluZGV4OiAxMDAwMCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSB8fCB7fSksXG4gIH0pLFxuICBtdWx0aVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2Vbbm9Ub3BMYWJlbCA/ICcwLjUnIDogJzInXSxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZUxhYmVsJ10gfHwge30pLFxuICB9KSxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi4oc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZCxcbiAgICAgICAgICBjdXJzb3I6ICdub25lJyxcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgICB9KSxcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgICAgY3Vyc29yOiBzdGF0ZS5pc0Rpc2FibGVkID8gJ25vbmUnIDogJ3BvaW50ZXInLFxuICAgICAgcG9pbnRlckV2ZW50czogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdmaWxsJyxcbiAgICB9LFxuICAgIC4uLihjdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddIHx8IHt9KSxcbiAgfSksXG4gIG9wdGlvbjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5nZXRPcHRpb25Db2xvcih7IHN0YXRlLCB0aGVtZSB9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInLFxuICAgICc6YWN0aXZlJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZCxcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICB9LFxuICAgICc6aG92ZXInOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIH0sXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydvcHRpb24nXSB8fCB7fSksXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWydwbGFjZWhvbGRlciddIHx8IHt9KSxcbiAgfSksXG4gIHNpbmdsZVZhbHVlOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIG1hcmdpbkxlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5SaWdodDogc3RhdGUuaGFzVmFsdWUgPyAwIDogdW5kZWZpbmVkLFxuICAgIG1hcmdpblRvcDogIXN0YXRlLmhhc1ZhbHVlIHx8IG5vVG9wTGFiZWwgPyAwIDogJzVweCcsXG4gICAgcGFkZGluZ0xlZnQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICAuLi4oY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10gfHwge30pLFxuICB9KSxcbiAgdmFsdWVDb250YWluZXI6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKGN1c3RvbVN0eWxlKHN0YXRlKT8uWyd2YWx1ZUNvbnRhaW5lciddIHx8IHt9KSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgIHJlZj17aW5uZXJSZWYgYXMgYW55fVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIGlkPXtpZFByb3B9XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHRpbWUgcHJvcCBkb2Vzbid0IGV4aXN0IGluIHJlYWN0LXNlbGVjdCBidXQgaXMgdXNlZFxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */");
336
+ }) => /* @__PURE__ */ react.css("margin-left:0px;", !isMulti && "caret-color: transparent", ";" + (process.env.NODE_ENV === "production" ? "" : ";label:inputStyles;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxZDhEIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1NlbGVjdElucHV0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0LCBUaGVtZSwga2V5ZnJhbWVzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgeyBjc3MsIHVzZVRoZW1lIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMvbGVnYWN5J1xuaW1wb3J0IHR5cGUge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudCxcbiAgRm9yd2FyZGVkUmVmLFxuICBKU1gsXG4gIFJlYWN0Tm9kZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHtcbiAgQ2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHtcbiAgQ2xlYXJJbmRpY2F0b3JQcm9wcyxcbiAgQ29tbW9uUHJvcHMsXG4gIENvbnRhaW5lclByb3BzLFxuICBEcm9wZG93bkluZGljYXRvclByb3BzLFxuICBHcm91cEJhc2UsXG4gIElucHV0UHJvcHMsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgT3B0aW9uUHJvcHMsXG4gIFByb3BzLFxuICBWYWx1ZUNvbnRhaW5lclByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgU2VsZWN0LCB7IGNvbXBvbmVudHMgfSBmcm9tICdyZWFjdC1zZWxlY3QnXG5pbXBvcnQgaXNKU09OU3RyaW5nIGZyb20gJy4uLy4uL2hlbHBlcnMvaXNKU09OJ1xuaW1wb3J0ICogYXMgYW5pbWF0aW9ucyBmcm9tICcuLi8uLi91dGlscy9hbmltYXRpb25zJ1xuaW1wb3J0IHsgRXhwYW5kYWJsZSB9IGZyb20gJy4uL0V4cGFuZGFibGUnXG5pbXBvcnQgeyBTZXBhcmF0b3IgfSBmcm9tICcuLi9TZXBhcmF0b3InXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJy4uL1N0YWNrJ1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uL1RleHQnXG5cbmNvbnN0IFN0eWxlZFNlcGFyYXRvciA9IHN0eWxlZChTZXBhcmF0b3IpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcn07XG4gIGhlaWdodDogMTAwJTtcbmBcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0ge1xuICB2YWx1ZTogc3RyaW5nXG4gIGxhYmVsOiBSZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGlubGluZURlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbnR5cGUgU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcyA9IHtcbiAgc3RhdGU6IFNlbGVjdFByb3BzICYgT3B0aW9uUHJvcHNcbiAgZXJyb3I/OiBzdHJpbmdcbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldENvbnRyb2xDb2xvciA9ICh7IHN0YXRlLCBlcnJvciwgdGhlbWUgfTogU2VsZWN0U3R5bGVHZXR0ZXJQcm9wcykgPT4ge1xuICBpZiAoc3RhdGUuaXNEaXNhYmxlZCkgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICBpZiAoZXJyb3IpIHJldHVybiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHRcblxuICByZXR1cm4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFxufVxuXG5jb25zdCBnZXRQbGFjZWhvbGRlckNvbG9yID0gKHtcbiAgc3RhdGUsXG4gIGVycm9yLFxuICB0aGVtZSxcbn06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHJldHVybiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgaWYgKGVycm9yKSByZXR1cm4gdGhlbWUuY29sb3JzLmRhbmdlci50ZXh0XG5cbiAgcmV0dXJuIHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrXG59XG5cbmNvbnN0IGdldE9wdGlvbkNvbG9yID0gKHsgc3RhdGUsIHRoZW1lIH06IFNlbGVjdFN0eWxlR2V0dGVyUHJvcHMpID0+IHtcbiAgbGV0IGNvbG9yOiBzdHJpbmcgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0XG4gIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrRWxldmF0ZWRcbiAgaWYgKHN0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICB9IGVsc2UgaWYgKHN0YXRlLmlzU2VsZWN0ZWQpIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kU3Ryb25nXG4gICAgY29sb3IgPSB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0U3Ryb25nXG4gIH0gZWxzZSBpZiAoc3RhdGUuaXNGb2N1c2VkKSB7XG4gICAgYmFja2dyb3VuZENvbG9yID0gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZFxuICB9XG5cbiAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yLCBjb2xvciB9XG59XG5cbnR5cGUgU2VsZWN0U3R5bGVGYWN0b3J5ID0gKFxuICBwcm92aWRlZDogQ1NTT2JqZWN0LFxuICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBPcHRpb25Qcm9wcyAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4gQ1NTT2JqZWN0XG5cbnR5cGUgU2VsZWN0U3R5bGVNYXAgPSBSZWNvcmQ8c3RyaW5nLCBTZWxlY3RTdHlsZUZhY3Rvcnk+XG5cbnR5cGUgU2VsZWN0U3R5bGVQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEN1c3RvbSBzdHlsZXMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vc3R5bGVzKVxuICAgKi9cbiAgY3VzdG9tU3R5bGU6IChcbiAgICBzdGF0ZTogU2VsZWN0UHJvcHMgJiBXaXRoU2VsZWN0UHJvcHMsXG4gICkgPT4gUmVjb3JkPHN0cmluZywgQ1NTT2JqZWN0PlxuICBhbmltYXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRpbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb246IG51bWJlclxuICAvKipcbiAgICogU2hvdy9oaWRlIHRoZSBsYWJlbCBpbnNpZGUgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgbm9Ub3BMYWJlbD86IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lXG59XG5cbmNvbnN0IGdldFNlbGVjdFN0eWxlcyA9ICh7XG4gIGVycm9yLFxuICBjdXN0b21TdHlsZSxcbiAgYW5pbWF0aW9uLFxuICBhbmltYXRpb25EdXJhdGlvbixcbiAgbm9Ub3BMYWJlbCxcbiAgdGhlbWUsXG59OiBTZWxlY3RTdHlsZVByb3BzKTogU2VsZWN0U3R5bGVNYXAgPT4gKHtcbiAgY29udHJvbDogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZERpc2FibGVkXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICA/IHRoZW1lLmNvbG9ycy5kYW5nZXIuYm9yZGVyXG4gICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiAnMXB4JyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICBjb2xvcjogZ2V0Q29udHJvbENvbG9yKHsgZXJyb3IsIHN0YXRlLCB0aGVtZSB9KSxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjRweCcsXG4gICAgbWluSGVpZ2h0OiAnNDhweCcsXG4gICAgdHJhbnNpdGlvbjogJ2JvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UnLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG5cbiAgICAuLi4oIXN0YXRlLmlzRGlzYWJsZWQgJiYge1xuICAgICAgJzpmb2N1cy13aXRoaW4nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuY29sb3JzLmRhbmdlci5ib3JkZXJcbiAgICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJvcmRlcixcbiAgICAgICAgYm94U2hhZG93OiBlcnJvclxuICAgICAgICAgID8gdGhlbWUuc2hhZG93cy5mb2N1c0RhbmdlclxuICAgICAgICAgIDogdGhlbWUuc2hhZG93cy5mb2N1c1ByaW1hcnksXG4gICAgICB9LFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IGVycm9yXG4gICAgICAgICAgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLmJvcmRlckhvdmVyXG4gICAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5ib3JkZXJIb3ZlcixcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2NvbnRyb2wnXSxcbiAgICBhbmltYXRpb246IGFuaW1hdGlvblxuICAgICAgPyBgJHthbmltYXRpb25EdXJhdGlvbn1tcyAke1xuICAgICAgICAgIChhbmltYXRpb25zIGFzIFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGtleWZyYW1lcz4+KVtcbiAgICAgICAgICAgIGFuaW1hdGlvblxuICAgICAgICAgIF1cbiAgICAgICAgfWBcbiAgICAgIDogJ25vbmUnLFxuICB9KSxcbiAgaW5kaWNhdG9yc0NvbnRhaW5lcjogcHJvdmlkZWQgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBtYXhIZWlnaHQ6ICc0OHB4JyxcbiAgfSksXG4gIGluZGljYXRvclNlcGFyYXRvcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJvcmRlcixcbiAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ2luZGljYXRvclNlcGFyYXRvciddLFxuICB9KSxcbiAgaW5wdXQ6IHByb3ZpZGVkID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgZmxleEdyb3c6IDEsXG4gICAgbWFyZ2luTGVmdDogMCxcbiAgICBwYWRkaW5nVG9wOiBub1RvcExhYmVsID8gMCA6IDExLFxuICB9KSxcbiAgbWVudTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbWVudSddLFxuICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93cy5tZW51LFxuICB9KSxcbiAgbWVudUxpc3Q6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2VhayxcbiAgICBtYXhIZWlnaHQ6ICcyMjVweCcsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVMaXN0J10sXG4gIH0pLFxuICBtZW51UG9ydGFsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIHpJbmRleDogMTAwMDAsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ21lbnVQb3J0YWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWQsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBoZWlnaHQ6ICcyNHB4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjZVtub1RvcExhYmVsID8gJzAuNScgOiAnMiddLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZSddLFxuICB9KSxcbiAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0LFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIC4uLmN1c3RvbVN0eWxlKHN0YXRlKT8uWydtdWx0aVZhbHVlTGFiZWwnXSxcbiAgfSksXG4gIG11bHRpVmFsdWVSZW1vdmU6IChwcm92aWRlZCwgc3RhdGUpID0+ICh7XG4gICAgLi4ucHJvdmlkZWQsXG4gICAgLi4uKHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgID8ge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWQsXG4gICAgICAgICAgY3Vyc29yOiAnbm9uZScsXG4gICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgICAgfSksXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiBzdGF0ZS5pc0Rpc2FibGVkXG4gICAgICAgID8gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dERpc2FibGVkXG4gICAgICAgIDogdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dCxcbiAgICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub25lJyA6ICdwb2ludGVyJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm9uZScgOiAnZmlsbCcsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsnbXVsdGlWYWx1ZVJlbW92ZSddLFxuICB9KSxcbiAgb3B0aW9uOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoe1xuICAgIC4uLnByb3ZpZGVkLFxuICAgIC4uLmdldE9wdGlvbkNvbG9yKHsgc3RhdGUsIHRoZW1lIH0pLFxuICAgIGN1cnNvcjogc3RhdGUuaXNEaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicsXG4gICAgJzphY3RpdmUnOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kRGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kLFxuICAgICAgY29sb3I6IHN0YXRlLmlzRGlzYWJsZWRcbiAgICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgICAgOiB0aGVtZS5jb2xvcnMucHJpbWFyeS50ZXh0LFxuICAgIH0sXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmQsXG4gICAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgICA/IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHREaXNhYmxlZFxuICAgICAgICA6IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHQsXG4gICAgfSxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/Llsnb3B0aW9uJ10sXG4gIH0pLFxuICBwbGFjZWhvbGRlcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogZ2V0UGxhY2Vob2xkZXJDb2xvcih7IGVycm9yLCBzdGF0ZSwgdGhlbWUgfSksXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3BsYWNlaG9sZGVyJ10sXG4gIH0pLFxuICBzaW5nbGVWYWx1ZTogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICBjb2xvcjogc3RhdGUuaXNEaXNhYmxlZFxuICAgICAgPyB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0RGlzYWJsZWRcbiAgICAgIDogdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dCxcbiAgICBtYXJnaW5MZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgbWFyZ2luUmlnaHQ6IHN0YXRlLmhhc1ZhbHVlID8gMCA6IHVuZGVmaW5lZCxcbiAgICBtYXJnaW5Ub3A6ICFzdGF0ZS5oYXNWYWx1ZSB8fCBub1RvcExhYmVsID8gMCA6ICc1cHgnLFxuICAgIHBhZGRpbmdMZWZ0OiBzdGF0ZS5oYXNWYWx1ZSA/IDAgOiB1bmRlZmluZWQsXG4gICAgLi4uY3VzdG9tU3R5bGUoc3RhdGUpPy5bJ3NpbmdsZVZhbHVlJ10sXG4gIH0pLFxuICB2YWx1ZUNvbnRhaW5lcjogKHByb3ZpZGVkLCBzdGF0ZSkgPT4gKHtcbiAgICAuLi5wcm92aWRlZCxcbiAgICAuLi5jdXN0b21TdHlsZShzdGF0ZSk/LlsndmFsdWVDb250YWluZXInXSxcbiAgICBjdXJzb3I6IHN0YXRlLmlzRGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogdW5kZWZpbmVkLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIGxhYmVsOiB7XG4gICAgICBkaXNwbGF5OiBub1RvcExhYmVsID8gJ25vbmUnIDogJ2luaXRpYWwnLFxuICAgIH0sXG4gICAgcGFkZGluZ1RvcDogMCxcbiAgfSksXG59KVxuXG50eXBlIFdpdGhTZWxlY3RQcm9wcyA9IHtcbiAgc2VsZWN0UHJvcHM6IFNlbGVjdFByb3BzXG59XG5cbnR5cGUgU2VsZWN0UHJvcHMgPSBTdHlsZWRDb250YWluZXJQcm9wcyAmXG4gIE9taXQ8UHJvcHM8U2VsZWN0T3B0aW9uPiwgJ3ZhbHVlJz4gJlxuICBDb21tb25Qcm9wczxTZWxlY3RPcHRpb24sIGJvb2xlYW4sIEdyb3VwQmFzZTxTZWxlY3RPcHRpb24+PiAmIHtcbiAgICB2YWx1ZT86IHN0cmluZyB8IFNlbGVjdE9wdGlvblxuICAgIGNoZWNrZWQ/OiBib29sZWFuXG4gICAgZXJyb3I/OiBzdHJpbmdcbiAgICBsYWJlbElkPzogc3RyaW5nXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdGltZT86IGJvb2xlYW5cbiAgfVxuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBhZGRpdGlvbmFsU3R5bGVzPzogUGFyYW1ldGVyczx0eXBlb2YgY3NzPlswXVxufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoJ2RpdicsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNEaXNhYmxlZCcsICdhZGRpdGlvbmFsU3R5bGVzJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICAkeyh7IGlzRGlzYWJsZWQgfSkgPT4gaXNEaXNhYmxlZCAmJiBgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7YH07XG4gICR7KHsgYWRkaXRpb25hbFN0eWxlcyB9KSA9PiBjc3MoYWRkaXRpb25hbFN0eWxlcyl9XG5gXG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHR9O1xuICBwYWRkaW5nLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbmBcblxuY29uc3QgU2VsZWN0Q29udGFpbmVyID0gKFxuICBwcm9wczogQ29udGFpbmVyUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgb25LZXlEb3duIH0gPSB7fSxcbiAgICBpc0Rpc2FibGVkID0gZmFsc2UsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNlbGVjdFByb3BzOiB7IG5hbWUgPSAnJywgZXJyb3IsIGNsYXNzTmFtZTogc2VsZWN0UHJvcHNDbGFzc05hbWUgfSA9IHt9LFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIGRhdGEtdGVzdGlkPXtgc2VsZWN0LWlucHV0LSR7bmFtZX1gfVxuICAgICAgYWRkaXRpb25hbFN0eWxlcz17Z2V0U3R5bGVzPy4oJ2NvbnRhaW5lcicsIHByb3BzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBjbGFzc05hbWU9e1tjbGFzc05hbWUsIHNlbGVjdFByb3BzQ2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEV4cGFuZGFibGUgb3BlbmVkPXshIWVycm9yfT5cbiAgICAgICAgPFN0eWxlZEVycm9yPntlcnJvcn08L1N0eWxlZEVycm9yPlxuICAgICAgPC9FeHBhbmRhYmxlPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApXG59XG5cbnR5cGUgU3R5bGVkUGxhY2Vob2xkZXJQcm9wcyA9IHtcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaXNNdWx0aTogYm9vbGVhblxuICBpc0Rpc2FibGVkPzogYm9vbGVhblxuICBoYXNWYWx1ZTogYm9vbGVhblxufVxuXG5jb25zdCBTdHlsZWRQbGFjZWhvbGRlciA9IHN0eWxlZCgnbGFiZWwnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnZXJyb3InLCAnaGFzVmFsdWUnLCAnaXNEaXNhYmxlZCcsICdpc011bHRpJ10uaW5jbHVkZXMocHJvcCksXG59KTxTdHlsZWRQbGFjZWhvbGRlclByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUsIGVycm9yIH0pID0+XG4gICAgZXJyb3IgPyB0aGVtZS5jb2xvcnMuZGFuZ2VyLnRleHQgOiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgZWFzZTtcbiAgb3BhY2l0eTogMDtcbiAgJHsoeyBoYXNWYWx1ZSB9KSA9PlxuICAgIGhhc1ZhbHVlICYmXG4gICAgYFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpIHNjYWxlKDAuOCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gIGB9XG4gICR7KHsgaXNEaXNhYmxlZCwgaGFzVmFsdWUgfSkgPT4gaGFzVmFsdWUgJiYgaXNEaXNhYmxlZCAmJiAnb3BhY2l0eTogMC41J31cbmBcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQnLCAnaXNJbmxpbmUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNTZWxlY3RlZEFuZE5vdEZvY3VzZWQ6IGJvb2xlYW5cbiAgaXNJbmxpbmU/OiBib29sZWFuXG59PmBcbiAgbWFyZ2luLWxlZnQ6ICR7KHsgdGhlbWUsIGlzSW5saW5lIH0pID0+IChpc0lubGluZSA/IHRoZW1lLnNwYWNlWycxJ10gOiAwKX07XG4gIGNvbG9yOiAkeyh7IGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkLCB0aGVtZSB9KSA9PlxuICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkID8gdGhlbWUuY29sb3JzLnByaW1hcnkudGV4dFN0cm9uZyA6IHVuZGVmaW5lZH07XG5gXG5cbmNvbnN0IE1heExpbmVTdHlsZWRUZXh0ID0gc3R5bGVkKFN0eWxlZFRleHQpYFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzEnXX07XG5gXG5cbmNvbnN0IFZhbHVlQ29udGFpbmVyID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgY2hpbGRyZW4sXG4gIHNlbGVjdFByb3BzOiB7IGVycm9yLCBsYWJlbElkLCBpbnB1dElkLCAuLi5zZWxlY3RQcm9wcyB9LFxuICBpc011bHRpLFxuICBoYXNWYWx1ZSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgZ2V0Q2xhc3NOYW1lcyxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpbm5lclByb3BzLFxufTogVmFsdWVDb250YWluZXJQcm9wczxTZWxlY3RPcHRpb24+ICYgV2l0aFNlbGVjdFByb3BzKSA9PiAoXG4gIDxjb21wb25lbnRzLlZhbHVlQ29udGFpbmVyXG4gICAgY2xlYXJWYWx1ZT17Y2xlYXJWYWx1ZX1cbiAgICBnZXRTdHlsZXM9e2dldFN0eWxlc31cbiAgICBnZXRWYWx1ZT17Z2V0VmFsdWV9XG4gICAgaXNSdGw9e2lzUnRsfVxuICAgIGN4PXtjeH1cbiAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgIHNlbGVjdE9wdGlvbj17c2VsZWN0T3B0aW9ufVxuICAgIHNldFZhbHVlPXtzZXRWYWx1ZX1cbiAgICB0aGVtZT17dGhlbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgaW5uZXJQcm9wcz17aW5uZXJQcm9wc31cbiAgICBzZWxlY3RQcm9wcz17c2VsZWN0UHJvcHN9XG4gICAgaXNNdWx0aT17aXNNdWx0aX1cbiAgICBoYXNWYWx1ZT17aGFzVmFsdWV9XG4gICAgaXNEaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICBnZXRDbGFzc05hbWVzPXtnZXRDbGFzc05hbWVzfVxuICA+XG4gICAgPD5cbiAgICAgIHtzZWxlY3RQcm9wcy5wbGFjZWhvbGRlciA/IChcbiAgICAgICAgPFN0eWxlZFBsYWNlaG9sZGVyXG4gICAgICAgICAgYXM9XCJsYWJlbFwiXG4gICAgICAgICAgaWQ9e2xhYmVsSWR9XG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgIGVycm9yPXtlcnJvcn1cbiAgICAgICAgICBpc011bHRpPXtpc011bHRpfVxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgaGFzVmFsdWU9e2hhc1ZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdFByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICA8L1N0eWxlZFBsYWNlaG9sZGVyPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIDwvY29tcG9uZW50cy5WYWx1ZUNvbnRhaW5lcj5cbilcblxuY29uc3QgaW5wdXRTdHlsZXMgPSAoeyBpc011bHRpIH06IFBhcnRpYWw8U2VsZWN0UHJvcHM+KSA9PiBjc3NgXG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICR7IWlzTXVsdGkgJiYgJ2NhcmV0LWNvbG9yOiB0cmFuc3BhcmVudCd9O1xuYFxuXG5jb25zdCBJbnB1dCA9ICh7XG4gIGlzTXVsdGksXG4gIGhhc1ZhbHVlLFxuICBzZWxlY3RQcm9wczogeyBpbnB1dElkLCBsYWJlbElkLCBwbGFjZWhvbGRlciwgLi4uc2VsZWN0UHJvcHMgfSxcbiAgY2xlYXJWYWx1ZSxcbiAgZ2V0U3R5bGVzLFxuICBnZXRWYWx1ZSxcbiAgaXNSdGwsXG4gIGN4LFxuICBvcHRpb25zLFxuICBzZWxlY3RPcHRpb24sXG4gIHNldFZhbHVlLFxuICB0aGVtZSxcbiAgY2xhc3NOYW1lLFxuICBpc0hpZGRlbixcbiAgLi4ucHJvcHNcbn06IElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcykgPT4gKFxuICA8Y29tcG9uZW50cy5JbnB1dFxuICAgIHsuLi5wcm9wc31cbiAgICBjc3M9e2lucHV0U3R5bGVzKHsgaXNNdWx0aSB9KX1cbiAgICBpZD17aW5wdXRJZH1cbiAgICBhcmlhLWNvbnRyb2xzPXtsYWJlbElkfVxuICAgIGhhc1ZhbHVlPXtoYXNWYWx1ZX1cbiAgICBpc011bHRpPXtpc011bHRpfVxuICAgIGNsZWFyVmFsdWU9e2NsZWFyVmFsdWV9XG4gICAgZ2V0U3R5bGVzPXtnZXRTdHlsZXN9XG4gICAgZ2V0VmFsdWU9e2dldFZhbHVlfVxuICAgIGlzUnRsPXtpc1J0bH1cbiAgICBjeD17Y3h9XG4gICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICBzZWxlY3RPcHRpb249e3NlbGVjdE9wdGlvbn1cbiAgICBzZXRWYWx1ZT17c2V0VmFsdWV9XG4gICAgdGhlbWU9e3RoZW1lfVxuICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgIGlzSGlkZGVuPXtpc0hpZGRlbn1cbiAgICBzZWxlY3RQcm9wcz17XG4gICAgICB7IC4uLnNlbGVjdFByb3BzLCBwbGFjZWhvbGRlciB9IGFzIElucHV0UHJvcHM8U2VsZWN0T3B0aW9uPlsnc2VsZWN0UHJvcHMnXVxuICAgIH1cbiAgLz5cbilcblxuY29uc3QgT3B0aW9uID0gKHtcbiAgc2VsZWN0UHJvcHMsXG4gIHZhbHVlLFxuICBsYWJlbCxcbiAgY2hpbGRyZW4sXG4gIGRhdGE6IHsgaW5saW5lRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uIH0sXG4gIGlzU2VsZWN0ZWQsXG4gIGRhdGEsXG4gIC4uLnByb3BzXG59OiBPcHRpb25Qcm9wczxTZWxlY3RPcHRpb24+ICYgU2VsZWN0T3B0aW9uKSA9PiB7XG4gIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPXtgb3B0aW9uLSR7c2VsZWN0UHJvcHMubmFtZSB8fCAnJ30tJHtcbiAgICAgICAgaXNKU09OU3RyaW5nKHZhbHVlKSA/IGxhYmVsIDogdmFsdWVcbiAgICAgIH1gfVxuICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHNldElzRm9jdXNlZCh0cnVlKX1cbiAgICAgIG9uTW91c2VPdXQ9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgICBvbkJsdXI9eygpID0+IHNldElzRm9jdXNlZChmYWxzZSl9XG4gICAgPlxuICAgICAgPGNvbXBvbmVudHMuT3B0aW9uXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgc2VsZWN0UHJvcHM9e3NlbGVjdFByb3BzfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2lubGluZURlc2NyaXB0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRUZXh0XG4gICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFwiXG4gICAgICAgICAgICBpc1NlbGVjdGVkQW5kTm90Rm9jdXNlZD17aXNTZWxlY3RlZCAmJiAhaXNGb2N1c2VkfVxuICAgICAgICAgICAgaXNJbmxpbmU9eyEhaW5saW5lRGVzY3JpcHRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lubGluZURlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICA8TWF4TGluZVN0eWxlZFRleHRcbiAgICAgICAgICAgIGFzPVwicFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsXCJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWRBbmROb3RGb2N1c2VkPXtpc1NlbGVjdGVkICYmICFpc0ZvY3VzZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvTWF4TGluZVN0eWxlZFRleHQ+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9jb21wb25lbnRzLk9wdGlvbj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBEcm9wZG93bkluZGljYXRvciA9IChcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8U2VsZWN0T3B0aW9uPiAmIFdpdGhTZWxlY3RQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0UHJvcHM6IHsgaXNEaXNhYmxlZCwgdGltZSwgcmVxdWlyZWQgfSxcbiAgfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8Y29tcG9uZW50cy5Ecm9wZG93bkluZGljYXRvciB7Li4ucHJvcHN9PlxuICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICB7cmVxdWlyZWQgPyA8SWNvbiBuYW1lPVwiYXN0ZXJpc2tcIiBzaXplPXsxMH0gY29sb3I9XCJkYW5nZXJcIiAvPiA6IG51bGx9XG4gICAgICAgIHt0aW1lID8gPFN0eWxlZFNlcGFyYXRvciBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIC8+IDogbnVsbH1cbiAgICAgICAgPEljb25cbiAgICAgICAgICBuYW1lPXt0aW1lID8gJ2Nsb2NrLW91dGxpbmUnIDogJ2Fycm93LWRvd24nfVxuICAgICAgICAgIHNpemU9e3RpbWUgPyAyNCA6IDE2fVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TdGFjaz5cbiAgICA8L2NvbXBvbmVudHMuRHJvcGRvd25JbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgQ2xlYXJJbmRpY2F0b3IgPSAoXG4gIHByb3BzOiBDbGVhckluZGljYXRvclByb3BzPFNlbGVjdE9wdGlvbj4gJiBXaXRoU2VsZWN0UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlbGVjdFByb3BzOiB7IGNoZWNrZWQsIGVycm9yIH0sXG4gICAgaW5uZXJQcm9wczogeyByZWYsIC4uLnJlc3RJbm5lclByb3BzIH0sXG4gIH0gPSBwcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGNvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3Igey4uLnByb3BzfT5cbiAgICAgIDxJY29uXG4gICAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXG4gICAgICAgIGNvbG9yPXsoY2hlY2tlZCAmJiAncHJpbWFyeScpIHx8IChlcnJvciAmJiAnZGFuZ2VyJykgfHwgJ25ldXRyYWwnfVxuICAgICAgLz5cbiAgICA8L2NvbXBvbmVudHMuQ2xlYXJJbmRpY2F0b3I+XG4gIClcbn1cblxuY29uc3QgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUNvbnRhaW5lciB7Li4ucHJvcHN9IC8+XG4pXG5cbmNvbnN0IE11bHRpVmFsdWVMYWJlbCA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZUxhYmVsIHsuLi5wcm9wc30gLz5cbilcblxuY29uc3QgTXVsdGlWYWx1ZVJlbW92ZSA9IChwcm9wczogTXVsdGlWYWx1ZVByb3BzPFNlbGVjdE9wdGlvbj4pID0+IChcbiAgPGNvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgIDxJY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9ezE2fSAvPlxuICA8L2NvbXBvbmVudHMuTXVsdGlWYWx1ZVJlbW92ZT5cbilcblxudHlwZSBTZWxlY3RDb21wb25lbnRzID0gU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuXG50eXBlIFN0YXRlTWFuYWdlZFNlbGVjdCA9IHR5cGVvZiBTZWxlY3RcblxudHlwZSBTZWxlY3RJbnB1dFByb3BzID0gU2VsZWN0UHJvcHMgJlxuICBTZWxlY3RTdHlsZVByb3BzICYge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIGFuaW1hdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFBsYXkgdGhlIGFuaW1hdGlvbiB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VcbiAgICAgKi9cbiAgICBhbmltYXRpb25PbkNoYW5nZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgICByZWFkT25seT86IGJvb2xlYW5cbiAgICBpbm5lclJlZj86IEZvcndhcmRlZFJlZjxTdGF0ZU1hbmFnZWRTZWxlY3Q+XG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGNvbXBvbmVudHMgb2YgdGhlIFNlbGVjdElucHV0LiBTZWUgW1JlYWN0IHNlbGVjdCBkb2N1bWVudGF0aW9uXShodHRwczovL3JlYWN0LXNlbGVjdC5jb20vY29tcG9uZW50cylcbiAgICAgKi9cbiAgICBjdXN0b21Db21wb25lbnRzPzogU2VsZWN0UHJvcHNbJ2NvbXBvbmVudHMnXVxuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgICBlbXB0eVN0YXRlPzogQ29tcG9uZW50UHJvcHM8U2VsZWN0Plsnbm9PcHRpb25zTWVzc2FnZSddXG4gICAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICB9XG5cbmNvbnN0IGRlZmF1bHRDdXN0b21TdHlsZSA9ICgpID0+ICh7fSlcblxuY29uc3QgRndkU2VsZWN0SW5wdXQgPSAoe1xuICBhbmltYXRpb24gPSAncHVsc2UnLFxuICBhbmltYXRpb25EdXJhdGlvbiA9IDEwMDAsXG4gIGFuaW1hdGlvbk9uQ2hhbmdlID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGN1c3RvbUNvbXBvbmVudHMsXG4gIGN1c3RvbVN0eWxlID0gZGVmYXVsdEN1c3RvbVN0eWxlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvcixcbiAgaW5uZXJSZWYsXG4gIGlucHV0SWQ6IGlucHV0SWRQcm9wLFxuICBpc0NsZWFyYWJsZSA9IGZhbHNlLFxuICBpc011bHRpID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZSA9IHRydWUsXG4gIG1lbnVQb3J0YWxUYXJnZXQsXG4gIG5vVG9wTGFiZWwgPSBmYWxzZSxcbiAgb25CbHVyLFxuICBvbkNoYW5nZSxcbiAgb25Gb2N1cyxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIsXG4gIHJlYWRPbmx5ID0gZmFsc2UsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpZDogaWRQcm9wLFxuICB0aW1lLFxuICBpc0xvYWRpbmcsXG4gIHJlcXVpcmVkLFxuICBlbXB0eVN0YXRlLFxuICAnZGF0YS10ZXN0aWQnOiBkYXRhVGVzdElkLFxufTogUGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPikgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKClcbiAgY29uc3QgaW5wdXRJZCA9IGlucHV0SWRQcm9wID8/IGlkXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICBjb25zdCBbaXNBbmltYXRlZCwgc2V0SXNBbmltYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY3VycmVudFZhbHVlID0gKHZhbHVlIGFzIFNlbGVjdE9wdGlvbik/LnZhbHVlXG5cbiAgLy8gT3B0aW9ucyBuZWVkIHRvIGtlZXAgdGhlIHNhbWUgcmVmZXJlbmNlIG90aGVyd2lzZSByZWFjdC1zZWxlY3QgZG9lc24ndCBmb2N1cyB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvcHRpb25zIHx8XG4gICAgICBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5yZWR1Y2U8U2VsZWN0T3B0aW9uW10+KChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudDx7IGNoaWxkcmVuOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY2hpbGQucHJvcHMsXG4gICAgICAgICAgICAgIGxhYmVsOiBjaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pLFxuICAgIFtvcHRpb25zLCBjaGlsZHJlbl0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb25PbkNoYW5nZSkge1xuICAgICAgc2V0SXNBbmltYXRlZCh0cnVlKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiBzZXRJc0FuaW1hdGVkKGZhbHNlKSwgYW5pbWF0aW9uRHVyYXRpb24pXG4gICAgfVxuICB9LCBbc2V0SXNBbmltYXRlZCwgYW5pbWF0aW9uT25DaGFuZ2UsIGFuaW1hdGlvbkR1cmF0aW9uLCBjdXJyZW50VmFsdWVdKVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFxuICAgICAgY29tcG9uZW50cz17XG4gICAgICAgIHtcbiAgICAgICAgICBDbGVhckluZGljYXRvcixcbiAgICAgICAgICBEcm9wZG93bkluZGljYXRvcixcbiAgICAgICAgICBJbnB1dCxcbiAgICAgICAgICBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICBNdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICAgIE9wdGlvbixcbiAgICAgICAgICBTZWxlY3RDb250YWluZXIsXG4gICAgICAgICAgVmFsdWVDb250YWluZXIsXG4gICAgICAgICAgLi4uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgfSBhcyBTZWxlY3RDb21wb25lbnRzXG4gICAgICB9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGlzRGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHJlYWRPbmx5fVxuICAgICAgaXNPcHRpb25EaXNhYmxlZD17b3B0aW9uID0+ICEhb3B0aW9uLmRpc2FibGVkfVxuICAgICAgc3R5bGVzPXtnZXRTZWxlY3RTdHlsZXMoe1xuICAgICAgICBhbmltYXRpb246IGlzQW5pbWF0ZWQgPyBhbmltYXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBjdXN0b21TdHlsZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIG5vVG9wTGFiZWwsXG4gICAgICAgIHRoZW1lLFxuICAgICAgfSl9XG4gICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgbWVudVBvcnRhbFRhcmdldD17bWVudVBvcnRhbFRhcmdldCB8fCB1bmRlZmluZWR9XG4gICAgICBpc1NlYXJjaGFibGU9e2lzU2VhcmNoYWJsZX1cbiAgICAgIGlzQ2xlYXJhYmxlPXtpc0NsZWFyYWJsZX1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICB2YWx1ZT17dmFsdWUgYXMgU2VsZWN0T3B0aW9ufVxuICAgICAgbWF4TWVudUhlaWdodD17MjUwfVxuICAgICAgaW5wdXRJZD17aW5wdXRJZH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgaW5uZXJSZWYgdHlwZSBpc3N1ZVxuICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICBpZD17aWRQcm9wfVxuICAgICAgdGltZT17dGltZX1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgbm9PcHRpb25zTWVzc2FnZT17ZW1wdHlTdGF0ZX1cbiAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBPcHRpb25Db21wb25lbnQgPSAoXG4gIHByb3BzOiBQYXJ0aWFsPE9wdGlvblByb3BzPFNlbGVjdE9wdGlvbj4gJiBTZWxlY3RPcHRpb24+LFxuKSA9PiBKU1guRWxlbWVudFxuXG4vKipcbiAqIFNlbGVjdElucHV0IGNvbXBvbmVudCBpcyBhIHdyYXBwZXIgYXJvdW5kIFtyZWFjdC1zZWxlY3RdKGh0dHBzOi8vcmVhY3Qtc2VsZWN0LmNvbSkgY29tcG9uZW50LlxuICogSXQgcHJvdmlkZXMgYSBzdHlsZWQgc2VsZWN0IGlucHV0IHdpdGggYSBsYWJlbCBhbmQgYW4gZXJyb3IgbWVzc2FnZS5cbiAqIEBkZXByZWNhdGVkIHVzZSBTZWxlY3RJbnB1dFYyIGNvbXBvbmVudCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3RJbnB1dCA9IGZvcndhcmRSZWYoXG4gIChwcm9wczogU2VsZWN0SW5wdXRQcm9wcywgcmVmOiBGb3J3YXJkZWRSZWY8U3RhdGVNYW5hZ2VkU2VsZWN0PikgPT4gKFxuICAgIDxGd2RTZWxlY3RJbnB1dCBpbm5lclJlZj17cmVmfSB7Li4ucHJvcHN9IC8+XG4gICksXG4pIGFzIEZvcndhcmRSZWZFeG90aWNDb21wb25lbnQ8UGFydGlhbDxTZWxlY3RJbnB1dFByb3BzPj4gJiB7XG4gIE9wdGlvbjogT3B0aW9uQ29tcG9uZW50XG59XG5cblNlbGVjdElucHV0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdElucHV0J1xuXG5TZWxlY3RJbnB1dC5PcHRpb24gPSBPcHRpb24gYXMgT3B0aW9uQ29tcG9uZW50XG4iXX0= */");
337
337
  const Input = ({
338
338
  isMulti,
339
339
  hasValue,